La sécurité des applications (abréviation AppSec ) comprend toutes les tâches qui introduisent un cycle de vie de développement logiciel sécurisé pour les équipes de développement. Son objectif final est d'améliorer les pratiques de sécurité et, par là même, de trouver, de corriger et, de préférence, de prévenir les problèmes de sécurité au sein des applications. Elle englobe l'ensemble du cycle de vie de l'application, depuis l'analyse des exigences, la conception, la mise en œuvre, la vérification ainsi que la maintenance.
La sécurité des applications Web est une branche de la sécurité de l'information qui traite spécifiquement de la sécurité des sites Web , des applications Web et des services Web . À un niveau élevé, la sécurité des applications Web s'appuie sur les principes de la sécurité des applications, mais les applique spécifiquement à Internet et aux systèmes Web . La sécurité des applications se concentre également sur les applications mobiles et leur sécurité, qui incluent les applications iOS et Android
Les outils de sécurité des applications Web sont des outils spécialisés pour travailler avec le trafic HTTP, par exemple les pare-feu d'applications Web .
Approches
Différentes approches permettent de détecter différents sous-ensembles de vulnérabilités de sécurité cachées dans une application et sont plus efficaces à différents moments du cycle de vie du logiciel. Chacune d'entre elles représente un compromis différent en termes de temps, d'effort, de coût et de vulnérabilités détectées.
- Examen de la conception . Avant l'écriture du code, l'architecture et la conception de l'application peuvent être examinées pour détecter d'éventuels problèmes de sécurité. Une technique courante dans cette phase est la création d'un modèle de menace .
- Examen de sécurité en boîte blanche , ou examen du code . Il s'agit d'un ingénieur de sécurité qui comprend en profondeur l'application en examinant manuellement le code source et en remarquant les failles de sécurité. Grâce à la compréhension de l'application, des vulnérabilités propres à l'application peuvent être trouvées.
- Audit de sécurité de la boîte noire . Cela se fait uniquement par l'utilisation d'une application pour la tester à la recherche de vulnérabilités de sécurité, aucun code source n'est requis.
- Outils automatisés. De nombreux outils de sécurité peuvent être automatisés en les intégrant à l'environnement de développement ou de test. Par exemple, les outils DAST/SAST automatisés intégrés à des éditeurs de code ou à des plateformes CI/CD.
- Plateformes coordonnées de vulnérabilité . Il s'agit de solutions de sécurité des applications optimisées par des pirates informatiques proposées par de nombreux sites Web et développeurs de logiciels, grâce auxquelles les individus peuvent recevoir une reconnaissance et une compensation pour avoir signalé des bugs.
Menaces à la sécurité
L'Open Worldwide Application Security Project ( OWASP ) fournit des ressources gratuites et ouvertes. Il est dirigé par une organisation à but non lucratif appelée The OWASP Foundation. Le Top 10 de l'OWASP - 2017 est le résultat d'une recherche récente basée sur des données complètes compilées auprès de plus de 40 organisations partenaires. Ces données ont révélé environ 2,3 millions de vulnérabilités dans plus de 50 000 applications. Selon le Top 10 de l'OWASP - 2021, les dix risques de sécurité des applications Web les plus critiques comprennent :
- Contrôle d'accès brisé
- Défaillances cryptographiques
- Injection
- Conception non sécurisée
- Mauvaise configuration de sécurité
- Composants vulnérables et obsolètes
- Échecs d'identification et d'authentification
- Défaillances en matière d'intégrité des logiciels et des données
- Journalisation de sécurité et échecs de surveillance*
- Falsification de requête côté serveur (SSRF)*
Contrôles de sécurité
L'OWASP Top 10 Proactive Controls 2024 est une liste de techniques de sécurité que chaque architecte et développeur de logiciels doit connaître et prendre en compte.
La liste actuelle contient :
- Mettre en œuvre le contrôle d'accès
- Utiliser la cryptographie de manière appropriée
- Valider toutes les entrées et gérer les exceptions
- Aborder la sécurité dès le départ
- Configurations sécurisées par défaut
- Gardez vos composants en sécurité
- Mettre en œuvre l'identité numérique
- Utiliser les fonctionnalités de sécurité du navigateur
- Mettre en œuvre la journalisation et la surveillance de la sécurité
- Arrêter la falsification des requêtes côté serveur
Outillage pour les tests de sécurité
Les techniques de test de sécurité recherchent les vulnérabilités ou les failles de sécurité dans les applications. Ces vulnérabilités rendent les applications vulnérables à l'exploitation . Idéalement, les tests de sécurité sont mis en œuvre tout au long du cycle de vie du développement logiciel (SDLC) afin que les vulnérabilités puissent être traitées rapidement et de manière approfondie.
Il existe de nombreux types d'outils automatisés permettant d'identifier les vulnérabilités des applications. Les catégories d'outils couramment utilisées pour identifier les vulnérabilités des applications comprennent :
- Les tests de sécurité statiques des applications (SAST) analysent le code source pour détecter les vulnérabilités de sécurité au cours du développement d'une application. Par rapport aux tests DAST, les tests SAST peuvent être utilisés avant même que l'application ne soit exécutable. Comme les tests SAST ont accès à l'intégralité du code source, il s'agit d'une approche en boîte blanche. Cela peut donner des résultats plus détaillés, mais peut entraîner de nombreux faux positifs qui doivent être vérifiés manuellement.
- Les tests de sécurité des applications dynamiques (DAST, souvent appelés scanners de vulnérabilité ) détectent automatiquement les vulnérabilités en parcourant et en analysant les sites Web. Cette méthode est hautement évolutive, facilement intégrable et rapide. Les outils DAST sont bien adaptés pour traiter les attaques de bas niveau telles que les failles d'injection, mais ne sont pas bien adaptés pour détecter les failles de haut niveau, par exemple les failles de logique ou de logique métier. de fuzzing sont couramment utilisés pour les tests d'entrée.
- Les tests de sécurité des applications interactives (IAST) évaluent les applications de l'intérieur à l'aide d'une instrumentation logicielle. Cela combine les points forts des méthodes SAST et DAST et donne accès au code, au trafic HTTP, aux informations de la bibliothèque, aux connexions back-end et aux informations de configuration. Certains produits IAST nécessitent que l'application soit attaquée, tandis que d'autres peuvent être utilisés pendant les tests d'assurance qualité normaux.
- L'autoprotection des applications d'exécution augmente les applications existantes pour fournir une détection et une prévention des intrusions à partir d'un environnement d'exécution d'application.
- Les scanners de dépendances (également appelés analyse de composition logicielle ) tentent de détecter l'utilisation de composants logiciels présentant des vulnérabilités connues. Ces outils peuvent fonctionner soit à la demande, par exemple pendant le processus de création du code source, soit périodiquement.
Normes et réglementations de sécurité
- Norme de codage sécurisé CERT
- ISO/IEC 27034-1:2011 Technologies de l'information — Techniques de sécurité — Sécurité des applications — Partie 1: Aperçu et concepts
- ISO/IEC TR 24772:2013 Technologies de l'information — Langages de programmation — Lignes directrices pour éviter les vulnérabilités dans les langages de programmation grâce au choix et à l'utilisation du langage
- Publication spéciale NIST 800-53
- OWASP ASVS : norme de vérification de la sécurité des applications Web