Les DevSecOps permettent de tester la sécurité plus tôt dans le cycle de développement des logiciels (SDLC). Cette pratique est communément appelée « Shift Left », ou « décalage à gauche de la sécurité ». Les DevSecOps permettent d'intégrer uniformément la sécurité des applications plus tôt dans le cycle de développement et non plus à la fin, lorsque la correction des vulnérabilités découvertes est alors plus complexe et plus coûteuse à implémenter.
Les DevSecOps sont une extension des DevOps, et sont parfois appelées DevOps sécurisées. Si les DevOps peuvent signifier différentes choses selon les personnes ou les organisations, dans tous les cas elles impliquent à la fois des changements culturels et techniques. Dans l'idéal, la sécurité est une exigence implicite pour réussir vos DevOps.
Les DevSecOps impliquent de planifier la sécurité des applications et de l'infrastructure dès le début. Les bons outils peuvent vous aider à atteindre l'objectif d'intégration continue de la sécurité, et également à choisir un Environnement de développement intégré (IDE) doté de fonctions de sécurité. Les outils et les processus doivent également pouvoir automatiser certaines barrières de sécurité pour empêcher tout ralentissement du flux des DevOps.
Avantages des DevSecOps
Les DevSecOps optimisent l'automatisation à l'échelle du réseau de distribution des logiciels, éliminent les erreurs de codage et, au final, limitent les failles.
Les équipes qui implémenteront les outils et processus DevSecOps pour intégrer la sécurité dans leur infrastructure DevOps seront alors à même de publier plus vite des logiciels sécurisés. Les développeurs peuvent tester la sécurité du code et déceler les problèmes à mesure de sa rédaction. Pour améliorer l'aspect sécuritaire du développement des applications Web, il est préférable que ces équipes puissent continuer à utiliser les outils existants.
Composants clés des DevSecOps
Les approches DevSecOps peuvent inclure les composants essentiels suivants :
- Inventaire des applications/API
- Automatisez la découverte, le profilage et la surveillance du code en continu à l'échelle du portefeuille. Cela peut inclure le code en production dans les centres de données, les environnements virtuels, les clouds privés et publics, les conteneurs, les environnements sans serveur, etc. Combinez les outils de découverte automatisée et d'inventaire en libre-service. Les outils de découverte vous aident à identifier les applications et les API existantes. Les outils de génération automatique de rapports permettent à vos applications de s'inventorier elles-mêmes et d'enregistrer leurs métadonnées dans une base de données centrale.
- Personnalisation de la sécurité du code
- Pour mieux déceler les vulnérabilités tout au long du développement, des tests et des opérations, surveillez vos logiciels en permanence. Publiez fréquemment le code pour que ses vulnérabilités soient identifiées rapidement, à chaque mise à jour.
- Les tests statiques de sécurité des applications (SAST) analysent les fichiers source des applications, identifient avec précision l'origine des problèmes et facilitent la correction des failles sous-jacentes.
- Les tests dynamiques de sécurité des applications (DAST) simulent des attaques contrôlées sur une application ou un service Web en cours d'exécution afin d'identifier les vulnérabilités exploitables dans un environnement en production.
- Les tests interactifs de sécurité des applications (IAST) effectuent une analyse en profondeur en orchestrant l'application à l'aide d'agents et de capteurs pour analyser en continu son fonctionnement, son infrastructure, ses dépendances, le flux de données, de même que le code dans son intégralité.
- Sécurité de l'Open Source
- Les logiciels Open Source (OSS) incluant souvent des failles de sécurité, une approche complète de la sécurité implique une solution capable de surveiller les bibliothèques OSS et de signaler les vulnérabilités et violations de licence.
- L'analyse de la composition des logiciels (SCA) automatise la visibilité sur les logiciels Open Source (OSS) pour vous aider à gérer les risques, la sécurité et la conformité des licences.
- Prévention des exécutions
- Protégez les applications en production : de nouvelles vulnérabilités peuvent être découvertes et certaines applications héritées peuvent être sorties du cycle de développement.
- La journalisation peut vous indiquer quels types de vecteurs d'attaque et de systèmes sont ciblés. L'évaluation des menaces renseigne les processus de modélisation des menaces et de l'architecture de sécurité.
- La protection autonome des applications à l'exécution (RASP, Runtime Application Self-Protection) orchestre les applications, mesure directement les attaques provenant de l'intérieur et empêche les exploits de l'intérieur.
- Surveillance de la conformité
- Assurez la préparation aux audits et la conformité permanente aux réglementations RGPD, CCPA, PCI, etc.
- Facteurs culturels
- Identifiez les champions de la sécurité, formez vos développeurs à la sécurité, etc.
Adapter les DevSecOps à votre environnement
Étape 1 : Intégrer la sécurité dans le cahier des charges des logiciels
Étape 2 : Tester tôt, souvent et rapidement
Étape 3 : Exploiter les intégrations pour que la sécurité fasse intégralement partie du cycle de vie des applications
Étape 4 : Automatiser la sécurité dans le cadre des processus de développement et de test
Étape 5 : Surveiller et protéger après la publication
Fortify : faciliter l'intégration de la sécurité dans les DevOps
- Convivial pour les développeurs
- Automatisation des pipelines CI/CD
- Tests SAST avec Fortify Static Code Analyzer
- Tests DAST avec Fortify WebInspect
- Tests RASP avec Fortify Application Defender
- Analyse de la composition des logiciels (SCA) / Sécurité des logiciels Open Source (OSS) avec Sonatype et Fortify
- Généraliser la sécurité des applications