Avant de se pencher sur la question “Qu’est-ce que le DevSecOps ?”, parlons plutôt du but et des avantages du DevOps !
Le but principal du DevOps est d’éliminer les barrières entre les équipes chargées du développement des applications (Dev) et de l’exploitation des systèmes (Ops). L’intérêt de faire cela est de rendre les entreprises plus flexibles et compétitives.
Cette nouveauté offre d’une part de la rapidité du cycle de développement des applications grâce à l’intégration et le déploiement contenu. D’autre part, il permet la réduction des risques via l’automatisation et donc la réduction d’interventions humaines.
Par conséquent, le DevOps nous permet d’atteindre les attentes du client tout en respectant les évolutions du marché.
Auparavant, les processus liés à la sécurité étaient isolés dans une équipe spécifique lors de l’étape finale du développement. Cela ne posait pas de problème. Pendant cette époque, il y avait des cycles de développement qui pouvaient durer plusieurs mois. Cet usage correspondait à des cycles de développement plus long qu’aujourd’hui, étalés sur plusieurs mois.
Si une approche DevOps efficace garanti des cycles de développement rapides et fréquents, les pratiques de sécurité dépassées peuvent réduire à néant les bénéfices des projets.
La sécurité intégrée avec le DevOps
Avec le DevSecOps, la sécurité est devenue une responsabilité partagée et intégrée du début jusqu’à la fin d’un projet DevOps. Cela montre qu’il faut faire attention à la sécurité de l’application et de l’infrastructure dès le démarrage. De ce fait, chaque intervenant du cycle de développement d’un logiciel est également responsable de la sécurité. Même si cela vous paraît évident, ce n’est pas toujours une réalité !
À titre d’exemple, prenons les développeurs qui se focalisent sur les aspects fonctionnels d’une application ainsi que le respect des délais. La sécurité n’est pas toujours leur priorité durant le cycle de développement des applications.
Le DevSecOps est une approche qui souligne la nécessité de collaborer avec les développeurs à coder tout en gardant de la sécurité. Pour se faire, les équipes de sécurité doivent partager la visibilité dont elles bénéficient. De plus, elles fournissent des outils d’aide au Secure Coding qui seront utilisés pendant le développement telles que SAST (Static Application Security Testing) et DAST (Dynamic Application Security Testing).
Ces outils peuvent être intégrés aux environnements de développement (Eclipse, Visual Studio, NetBeans). En plus des tests unitaires et fonctionnels, le développeur doit ajouter des tests unitaires de sécurité.
L’automatisation au cœur de l’approche DevSecOps
L’un des principaux composants de l’approche DevSecOps est l’automatisation. Elle nous permet de minimiser l’intervention humaine sur le cycle de développement des applications.
Tout comme le DevOps, le DevSecOps tourne autour de l’automatisation lors des phases du développement d’applications. L’approche se concentre sur l’intégration et l’automatisation de la sécurité. Il s’agit d’industrialiser les vérifications de sécurité en supprimant le besoin de le faire manuellement au niveau de chaque développeur.
De plus, il existe différentes étapes dans un pipeline DevOps typique dans un pipeline DevSecOps. Il y a des contrôles de sécurité spécifiques sont appliqués à chaque phase :
- Plan : Exécuter une analyse de sécurité et créer un plan de test pour déterminer les scénarios. Nous nous demandons où, comment et quand les tests seront effectués.
- Code : Déployer des outils de linting et des contrôles Git pour sécuriser les mots de passe et les clés API.
- Build : Lors de la construction du code, il faut incorporer des outils statiques de test de sécurité des applications (SAST). Nous pourrons détecter les failles du code avant le déploiement en production. Ces outils sont spécifiques aux langages de programmation.
- Test : Utiliser les outils de test de sécurité d’application dynamique (DAST) pour tester l’application pendant l’exécution. Ces outils peuvent détecter les erreurs associées à l’authentification des utilisateurs, à l’autorisation, à l’injection SQL et aux points de terminaison liés à l’API.
- Release : Juste avant de publier l’application, il faut utiliser des outils d’analyse de sécurité pour effectuer des tests de pénétration approfondis et une analyse des vulnérabilités.
- Deploy : Après avoir terminé les tests lors de l’exécution, nous pourrons envoyer une version sécurisée en production pour le déploiement final.
(Source : Ambient Intelligence Room)
DevSecOps, l’avenir de DevOps
Lorsque nous décidons d’adopter une démarche DevOps, la dimension sécurité est indispensable. En intégrant une démarche de sécurité continue à toutes les étapes du projet, le DevSecOps est la suite logique du DevOps.
Pour conclure, je tiens à souligner que loin d’être une lubie marketing pour redonner du sang neuf à la démarche DevOps. Le DevSecOps est une évolution naturelle et indispensable à un moment où les cyberattaques franchissent un nouveau degré d’intensité.
Abdelhakim, Team NEXTON