Pour vérifier la sécurité d’une application web, il est nécessaire de réaliser des tests de sécurité.
Réalisez des tests
Ces tests font partie du processus de développement d’une application web ; cependant, il est nécessaire de les réaliser tout au long du cycle de vie de l’application pour s’assurer que la sécurité est toujours maintenue.
Une partie des tests consiste à effectuer des scans de vulnérabilité. Ces scans utilisent des attaques typiques basées sur les dix principaux risques de sécurité de l’OWASP et les vulnérabilités connues des composants du framework utilisé. Ils permettront d’identifier rapidement une vulnérabilité commune ou une mauvaise configuration.
Une fois que l’application respecte les bonnes pratiques de sécurité de base de l’OWASP, il sera possible d’apporter des mesures de sécurité supplémentaires pour être conforme aux normes telles que PCI DSS, par exemple. Les tests de sécurité doivent fournir à l’entreprise une bonne idée du niveau de sécurité de son application web.
Toutefois, cela ne signifie pas qu’une application web est conforme et prête à être utilisée. Une entreprise ne peut pas utiliser ses propres services pour prouver qu’elle est accréditée, parce qu’il serait difficile de rester impartial par rapport à des lignes directrices strictes. Un prestataire tiers est tenu de certifier la conformité d’une application web.
Les prestataires tiers spécialisés dans la conformité de la sécurité des applications web utilisent des techniques d’analyse des vulnérabilités et de tests d’intrusion pour vérifier la sécurité de l’application web. Dans le cas de l’OWASP, la sécurité de l’application web et de ses composants sera testée.
Vous devriez vérifier régulièrement la conformité à l’OWASP. Ensuite, retestez à mesure que de nouvelles vulnérabilités et de nouveaux correctifs apparaissent. Toute nouvelle vulnérabilité devra être atténuée pour satisfaire les normes en vigueur.
Les entreprises sont responsables de l’acquisition et du maintien de la conformité en fonction de leurs exigences en matière de sécurité.
Découvrez différentes techniques de tests
Savoir qu’il faut tester, c’est bien. Mais quelles sont les techniques de tests ?
Le fuzzing
Le fuzzing est une technique utilisée pour tester les zones où les données sont entrées sur votre application web. Il teste les entrées aléatoirement pour s’assurer que les techniques de validation appropriées sont utilisées. Le fuzzing va permettre de tester l’injection SQL et les attaques XSS, par exemple !
L’audit de code
L’audit de code peut être effectué manuellement ou à l’aide d’un outil automatisé. Il implique souvent une analyse ligne par ligne du code source pour trouver les éléments ou fonctions vulnérables.
Ce test garantit que les fonctions vulnérables communes ne sont pas utilisées dans le code. Cela peut permettre de détecter des injections SQL, par exemple.
Bien que votre code puisse réussir un test d’analyse de code, il peut toujours être vulnérable au contrôle d’accès, au piratage de session, aux problèmes de configuration dans le framework et aux algorithmes cryptographiques faibles.
Découvrez les modèles de menace (Threat Modeling)
Un modèle de menace est un processus par lequel des menaces potentielles telles que les vulnérabilités structurelles (c’est-à-dire inhérentes à la structure de votre application) peuvent être identifiées, énumérées et classées par ordre de priorité, et ce avant le démarrage du développement.
Pour s’aider dans l’établissement d’un modèle de menace, l’entreprise peut s’aider d’outils ou de bases de connaissances comme le MITRE ATT&CK (pour “Adversarial Tactics, Techniques and Common Knowledge”)
Il s’agit d’une base de connaissances qui a pour but de documenter diverses techniques utilisées par des attaquants au cours des différentes étapes d’une cyberattaque : enquêter, outiller, déployer, exploiter, contrôler, exécuter et maintenir.

Le MITRE fournit, via sa base ATT&CK, différentes données, comme des techniques, tactiques ou un listing de logiciels utilisés.

Enfin, la matrice MITRE ATT&CK va permettre de planifier la stratégie de sécurité qui aura été définie. Mais elle peut aussi servir au RSSI sur les points suivants :
Identifier les menaces potentielles qui peuvent cibler son organisation.
Évaluer les contrôles de sécurité existants pour déterminer s’ils sont efficaces pour protéger contre ces menaces.
Identifier les lacunes dans les contrôles de sécurité.
Élaborer des plans pour combler ces lacunes.
Lorsqu’une entreprise établit un modèle de menace, elle tient compte des différents adversaires qui tenteront de compromettre le système. En fonction du profil des adversaires, vous pouvez établir un modèle de menace afin de déterminer quelles parties doivent être verrouillées pour atténuer votre risque.
Voici quelques questions que vous pouvez poser pour créer votre modèle de menace :
Quelles sont les données que vous devez protéger ?
Qui exploitera les données ?
Quelle est la probabilité qu’une vulnérabilité soit exploitée ?
Quels dommages cette exploitation peut-elle causer ?
Quelle est votre protection contre cet exploit ?
Corrigez les vulnérabilités zero day
Vous ne pouvez jamais être entièrement sûr que votre application web ne sera pas attaquée via l’exploitation d’une vulnérabilité qui n’a pas de correctif. C’est ce qu’on appelle les vulnérabilités zero day.
Lorsque des vulnérabilités zero day sont découvertes, les éditeurs de logiciels développent un correctif pour corriger la vulnérabilité. Cependant, dans de nombreux cas, le correctif est appliqué après avoir fait beaucoup de dégâts. C’est pour cette raison qu’il est important de maintenir la sécurité de votre application et de la défendre contre les vulnérabilités en la patchant régulièrement.
Ces différents éléments peuvent vous permettre de réduire le risque de compromission et d’améliorer la sécurité de votre application tout au long de son cycle de vie.
En résumé
L’entreprise ne peut pas simplement s’accréditer comme étant conforme aux réglementations telles qu’OWASP ou PCI-DSS ; elle aura besoin d’un prestataire tiers spécialisé dans l’examen de la conformité.
L’analyse de vulnérabilité et les tests d’intrusion sont parfaits pour tester les attaques sur une application web.
L’audit de code source permet d’identifier les fonctionnalités vulnérables.
Le threat modeling peut vous permettre d’identifier les potentiels attaquants et d’ajuster vos défenses.
Les vulnérabilités zero day représentent un risque majeur pour vos applications.
Maintenant que vous avez adopté des pratiques de développement sécurisé pour fournir un produit de qualité, voyons comment appliquer le cycle de vie du développement sécurisé.