Les meilleures pratiques pour la sécurité des applications Web pour les PME 2022
Publié: 2022-04-23En matière de sécurité de la pile d'entreprise, les applications logicielles sont le maillon le plus faible. Dans The State of Application Security, 2020 , Forrester indique que la majorité des attaques externes se produisent soit en exploitant une vulnérabilité logicielle (42 %) soit via une application Web (35 %).
Les développeurs sont sous pression pour publier des fonctionnalités dès que possible à mesure que les applications deviennent plus complexes et que les délais de développement se raccourcissent. Pour obtenir des fonctionnalités d'application différenciées et convaincantes, les développeurs s'appuient de plus en plus sur des bibliothèques tierces.
Cette évolution vers les composants open source rend les pratiques de sécurité plus complexes pour les entreprises. Les nouveaux frameworks tels que les conteneurs et les API compliquent davantage la sécurité des applications.
Les développeurs étant contraints de publier constamment de nouvelles fonctionnalités, les entreprises sont confrontées à un risque très réel que la sécurité ne puisse pas suivre le rythme. La sécurité peut être obtenue en incorporant les meilleures pratiques de sécurité des applications dans le cycle de vie du développement logiciel et en les mettant en œuvre.
Table des matières
Pourquoi les tests de sécurité Web sont-ils importants ?
Tester les applications Web et leurs configurations pour les vulnérabilités de sécurité est l'objectif des tests de sécurité Web. Les attaques de la couche application (c'est-à-dire ciblant les applications basées sur HTTP) sont les principales cibles.
Il est courant de soumettre différents types d'entrées à une application Web pour provoquer des erreurs et provoquer un comportement inattendu. Dans ces soi-disant « tests négatifs », le système est inspecté pour un comportement qui n'est pas prévu.
Il est également important de noter que les tests de sécurité Web ne consistent pas simplement à tester les fonctionnalités de sécurité mises en œuvre dans l'application (par exemple, l'authentification et l'autorisation).
Il est également nécessaire de tester que d'autres fonctionnalités (par exemple, la logique métier et la validation des entrées et des sorties) sont mises en œuvre de manière sécurisée. L'objectif est de sécuriser l'accès aux fonctions de l'application Web.
Comment les tests de sécurité des applications réduisent-ils les risques pour votre organisation ?
Majorité des attaques d'applications Web
- La technique d'injection SQL
- Script intersite (XSS)
- Exécution des commandes à distance
- Traversée de chemin
Résultats d'attaque
- Contenu restreint
- Comptes compromis
- Installation de logiciels malveillants
- Revenu perdu
- Les clients perdent confiance
- Atteinte à la réputation
- Ainsi que bien plus
L'environnement Web d'aujourd'hui est sujet à un large éventail de problèmes. En plus de savoir comment une application peut être exploitée, connaître les résultats potentiels de l'attaque aidera votre entreprise à traiter de manière préventive les vulnérabilités et à les tester avec précision.
Des contrôles d'atténuation peuvent être appliqués au cours des premières étapes du SDLC après avoir identifié la cause première des vulnérabilités. De plus, un test de sécurité des applications Web peut tirer parti de la connaissance du fonctionnement de ces attaques pour cibler des points d'intérêt connus.
Pour gérer le risque de votre entreprise, vous devez comprendre l'impact d'une attaque, car il peut être utilisé pour évaluer la gravité totale de la vulnérabilité.
À la suite d'un test de sécurité, la détermination de la gravité des problèmes détectés peut vous aider à hiérarchiser les efforts de correction de manière efficace et efficiente. Minimisez le risque de votre entreprise en commençant par les problèmes de gravité critique et en passant aux problèmes de moindre impact.
Une évaluation de l'impact potentiel de chaque application dans la bibliothèque d'applications de votre entreprise avant d'identifier un problème peut aider à hiérarchiser les tests de sécurité des applications.
Lorsque les tests de sécurité Web ont une liste établie d'applications de haut niveau, nous pouvons programmer les tests pour cibler d'abord les applications critiques de votre entreprise afin que le risque contre votre entreprise puisse être réduit.
Quelles fonctionnalités doivent être examinées lors d'un test de sécurité d'application Web ?
Plusieurs fonctionnalités doivent être examinées lors des tests de sécurité des applications Web, mais la liste n'est pas exhaustive. Votre organisation pourrait être exposée à un risque sérieux par une mise en œuvre inappropriée de chacun.
Top 10 des meilleures pratiques pour la sécurité des applications Web
Voici les dix meilleures pratiques de sécurité des applications que votre organisation devrait déjà mettre en œuvre.
#1 Suivez vos actifs
Si vous ne savez pas ce que vous avez, vous ne pouvez pas le protéger.
Pour quelles fonctions ou applications utilisez-vous des serveurs spécifiques ? Dans quelles applications Web utilisez-vous des composants open source ?
Vous pensez qu'il n'est pas important de suivre vos actifs ? Il est très important de se rappeler quel logiciel s'exécute dans chaque application - il suffit de demander à Equifax, qui a été condamné à une amende de 700 millions de dollars pour ne pas avoir protégé les données de plus de 145 millions de clients.
L'un des portails Web des clients de l'agence de notation de crédit a été compromis après qu'un composant open source, Apache Struts, n'ait pas été corrigé. La société affirme qu'elle ne savait pas que le portail client utilisait le composant open source vulnérable.
Plus tôt vous commencerez à suivre vos actifs, moins vous aurez de maux de tête et de catastrophes plus tard. Au fur et à mesure que les organisations étendent leur développement, ce processus peut ressembler à une tâche de Sisyphe.
Vous devez également classer vos actifs, en notant ceux qui sont essentiels aux fonctions de votre entreprise et ceux qui sont de moindre importance. Ensuite, vous pouvez évaluer les menaces et y remédier ultérieurement.

#2 Effectuez une évaluation des menaces
Si vous faites une liste de ce que vous devez protéger, vous pouvez alors identifier les menaces auxquelles vous faites face et comment elles peuvent être atténuées.
Comment des pirates informatiques pourraient-ils s'introduire dans votre application ? Quelles sont les mesures de sécurité existantes que vous avez mises en place ? Quels outils supplémentaires sont nécessaires ?
Vous devez répondre à ces questions et à d'autres dans le cadre de votre évaluation des menaces.
Cependant, vous devez également être réaliste quant au niveau de sécurité dont vous pouvez bénéficier. Peu importe la sécurité de votre système, vous pouvez toujours le pirater. De plus, vous devez être honnête sur les mesures que votre équipe peut maintenir au fil du temps.
Vous pouvez risquer de voir vos normes et pratiques de sécurité ignorées en poussant trop fort. Prenez la sécurité au sérieux et ne vous précipitez pas.
Utilisez la formule suivante pour évaluer votre risque :
Risque = probabilité d'attaque x impact de l'attaque.
Le risque peut également être considéré comme la probabilité que quelque chose se produise par rapport à la gravité des conséquences.
Même si ce serait catastrophique si une baleine tombait du ciel et vous écrasait, il est peu probable que cela se produise.
Une piqûre de moustique lors d'une randonnée, en revanche, est tout à fait probable, mais peu susceptible de causer des dommages importants au-delà de quelques bosses qui démangent.
#3 Restez au top de vos patchs
Vous installez les derniers correctifs sur vos systèmes d'exploitation ? Utilisez-vous un logiciel tiers ? Il y a de fortes chances que vous soyez à la traîne, ce qui signifie que vous êtes exposé.
L'une des étapes les plus importantes à suivre pour garantir la sécurité de votre logiciel consiste à mettre à jour le logiciel, soit à partir d'un fournisseur commercial, soit à partir d'une communauté open source.
Lorsqu'une vulnérabilité est découverte et signalée de manière responsable aux propriétaires du produit ou du projet, elle est publiée sur des sites de conseil en sécurité et des bases de données telles que WhiteSource Vulnerability Database.
Si possible, un correctif doit être créé et publié avant la publication, offrant aux utilisateurs la possibilité de sécuriser leur logiciel.
Si, toutefois, vous n'appliquez pas de correctif lorsqu'il devient disponible, vous ne bénéficierez pas d'une sécurité améliorée.
Si vous craignez que la mise à jour vers la dernière version puisse casser votre produit, les outils automatisés peuvent vous aider beaucoup. N'importe quel jour de la semaine, vous devez donner la priorité aux mises à jour et aux correctifs dans le cadre des meilleures pratiques de sécurité de vos applications.
#4 Gérez vos conteneurs
Ces dernières années, les conteneurs ont gagné en popularité à mesure que de plus en plus d'organisations adoptent la technologie en raison de sa flexibilité, qui simplifie le processus de développement, de test et de déploiement de composants dans divers environnements tout au long du cycle de vie du développement logiciel (SDLC).
Il est généralement admis que les conteneurs offrent des avantages de sécurité qui leur confèrent un avantage. De plus, en raison de leur environnement de système d'exploitation autonome, ils sont segmentés par conception, ce qui réduit le niveau de risque.
Pourtant, les conteneurs continuent d'être vulnérables aux exploits tels qu'une attaque par évasion, dans laquelle l'isolement a été rompu. Les conteneurs peuvent également contenir une vulnérabilité dans le code qui y est stocké.
Pour la sécurité du pipeline CI/CD, vous devez rechercher les vulnérabilités du début à la fin, y compris dans vos registres.
En plus de ces analyses, les meilleures pratiques pour la sécurité des applications lors de l'utilisation de conteneurs incluent également des tâches importantes telles que la signature de vos propres images avec des outils tels que Docker Content Trust si vous utilisez Docker Hub ou Shared Access Signature si votre équipe utilise Microsoft Azure. .
#5 Donnez la priorité à vos opérations de remédiation
Il y a eu un nombre croissant de vulnérabilités ces dernières années, et cette tendance ne montre aucun signe de ralentissement de sitôt.
Par conséquent, les développeurs sont occupés par la correction. Pour les équipes qui souhaitent sécuriser leurs applications tout en restant saines d'esprit, la hiérarchisation est essentielle.
Les évaluations des menaces sont effectuées en fonction de la gravité d'une vulnérabilité (cote CVSS), de la criticité de l'application impactée et d'un certain nombre d'autres facteurs.
Vous devez savoir si la vulnérabilité open source affecte réellement votre code propriétaire en ce qui concerne les vulnérabilités open source.
Inefficace et pas à haut risque même si la cote CVSS du composant vulnérable est critique s'il ne reçoit pas d'appels de votre produit.
Les stratégies intelligentes sont celles qui priorisent d'abord les menaces les plus urgentes, en fonction des facteurs présents, et laissent celles à faible risque pour plus tard.
#6 Crypter, crypter, crypter
Le Top 10 de l'OWASP inclut le chiffrement des données au repos et en transit depuis des années, ce qui en fait une exigence pour toute liste des meilleures pratiques de sécurité des applications.
Les attaques de l'homme du milieu et d'autres formes d'intrusion peuvent exposer des données sensibles lorsque vous ne parvenez pas à verrouiller correctement votre trafic.
Lorsque vous stockez des mots de passe et des identifiants d'utilisateur en texte brut, par exemple, vous mettez vos clients en danger.
Assurez-vous d'utiliser SSL avec un certificat mis à jour dans le cadre de votre liste de contrôle de base pour le chiffrement. Ne vous laissez pas distancer maintenant que HTTPS est la norme. Le hachage est également recommandé.
De plus, vous ne devriez jamais "rouler votre propre crypto" comme on dit. Envisagez des produits de sécurité pris en charge par une équipe dédiée ayant l'expérience nécessaire pour bien faire le travail.
#7 Gérer les privilèges
Vous n'êtes pas obligé de donner accès à tout à tout le monde dans votre organisation. Les applications et les données ne sont accessibles qu'à ceux qui en ont besoin en suivant les meilleures pratiques de sécurité réseau et les meilleures pratiques de sécurité des applications.
Il y a deux raisons à cela. La première chose que vous devez faire est d'empêcher un pirate d'utiliser des informations d'identification marketing pour accéder à un système contenant d'autres données plus sensibles, telles que des données financières ou juridiques.
Les menaces internes sont également préoccupantes, qu'elles soient involontaires, comme la perte d'un ordinateur portable ou l'envoi de la mauvaise pièce jointe à un e-mail, ou malveillantes.
Le principe du moindre privilège consistant à ne fournir aux employés que les données dont ils ont besoin lorsqu'il s'agit d'accéder aux données pourrait réduire votre exposition par rapport à l'absence de contrôle en place.
#8 Adoptez l'automatisation pour votre gestion des vulnérabilités
La sécurité de leurs applications est devenue de plus en plus importante pour les développeurs au cours des dernières années, en particulier lorsqu'il s'agit de tâches telles que la gestion des vulnérabilités.
Pour faire face au déplacement vers la gauche de la sécurité, les équipes de développeurs testent tôt et souvent, poussant autant de leurs vérifications de sécurité au début du processus de développement lorsqu'il est plus facile et moins coûteux de corriger les vulnérabilités.
Pour gérer le processus de test lourd en raison de la quantité de vulnérabilités, les développeurs ont besoin d'outils automatisés.
Pour trouver des vulnérabilités de sécurité potentielles dans votre code propriétaire, des tests de sécurité d'application statiques (SAST) et des tests de sécurité d'application dynamiques (DAST) peuvent être utilisés pendant le développement.
Les failles de sécurité sont fermées avec les SAST et les DAST, mais le code propriétaire représente une partie relativement petite de votre code global.
Dans plus de 92 % de toutes les applications modernes, les composants open source représentent 60 à 80 % de votre base de code. Votre liste de contrôle de la sécurité des applications doit donner la priorité à la sécurisation des composants open source.
À l'aide d'outils d'analyse de la composition logicielle, les équipes peuvent exécuter des contrôles et des rapports de sécurité automatisés dans l'ensemble du SDLC, en identifiant chaque composant open source dans leur environnement et en indiquant lequel d'entre eux présente une vulnérabilité connue qui pose un risque de sécurité pour vos applications.
Vous pouvez mieux gérer vos vulnérabilités en déplaçant vos tests automatisés pour les problèmes de sécurité open source vers la gauche.
#9 Tests de pénétration
Une liste des meilleures pratiques en matière de sécurité des applications serait incomplète sans mentionner les tests d'intrusion, même si les outils automatisés aident à détecter la grande majorité des problèmes de sécurité.
Les tests avec un stylo et du papier vous permettent de pousser et de pousser votre application pour trouver des faiblesses. Si un pirate informatique déterminé tente de s'introduire dans votre application, les bons testeurs de stylet savent exactement quelles mesures ils doivent prendre.
Des entreprises de piratage peuvent être embauchées ou des pigistes peuvent participer à des programmes de primes de bogues comme BugCrowd et HackerOne. Votre entreprise devrait parrainer une prime de bogue si vous ne le faites pas déjà.
Si vous embauchez des testeurs de stylo, il vaut bien mieux les payer que de faire face aux conséquences d'une véritable violation.
#10 Soyez prudent avec les jetons
Bien qu'il soit facile à sécuriser, de nombreux développeurs ne sécurisent pas correctement leurs jetons pour les tiers.
En recherchant des sites Web de développeurs populaires, vous pouvez facilement trouver des jetons non sécurisés en ligne. Au lieu de stocker les détails des jetons ailleurs, les développeurs les incluent simplement dans leurs référentiels open source.
Une bonne pratique de base en matière de sécurité des applications consiste à sécuriser correctement vos jetons tiers. Vous ne devriez pas laisser les jetons que vous avez achetés traîner dans votre code pour que quiconque puisse les prendre.
Meilleures pratiques de sécurité des applications en tant que pratiques de base
Chacune des meilleures pratiques décrites ici doit être intégrée dans le processus de développement continu de votre organisation. Les applications et les données de votre entreprise sont à risque si vous ne minimisez pas le risque. Suivez ces étapes pour minimiser les risques.
Éviter les erreurs que les autres sont susceptibles de commettre est un moyen de garder une longueur d'avance sur les pirates, vous êtes donc plus difficile à cibler pour les attaques. Il n'y aura jamais de mesure de sécurité de périmètre ou d'application totalement à l'épreuve du piratage.
Cependant, suivre ces meilleures pratiques de base peut grandement contribuer à ce que votre application ne vaille pas la peine pour les pirates.







