Par Gologic en collaboration avec Alexandre Couëdelo.
Nous nous rapprochons d’un monde où le DevOps devient la norme, mais étant donné le nombre important de cybermenaces qui ont fait surface récemment, il est évident qu’il manque encore quelque chose dans notre approche du développement du logiciel. La sécurité est devenue une priorité absolue pour les entreprises de toutes tailles, et le mouvement « DevSecOps » est l’un des meilleurs moyens de rallier développement (Dev), sécurité (SEC) et opérations (Ops).
Le DevSecOps est relativement nouveau et peut sembler très déroutant, car il est difficile de savoir par où commencer ou même d’identifier quels sont les composants de sécurité requis. Vous pourrez passer des heures à lire sur les outils, mais quand même échouer à assembler les éléments nécessaires pour assurer la sécurité des applications, de votre entreprise et de vos utilisateurs.
Alors, laissez-nous vous aider à démarrer avec cette série d’articles sur le comment établir une stratégie DevSecOps. Le DevSecOps et la sécurité, en général, sont des sujets très vastes touchant tous les aspects de la chaîne de livraison logicielle, plusieurs articles sont donc à prévoir pour couvrir ce sujet.
Dans un premier temps, nous n’aborderons que la pointe de l’iceberg en expliquant :
— Pourquoi avons-nous besoin du DevSecOps?
— Qu’est-ce que la méthodologie DevSecOps?
— Comment l’automatisation joue-t-elle un rôle dans le DevSecOps?
Pourquoi avons-nous besoin du DevSecOps?
Pour comprendre le processus DevSecOps, vous devez comprendre ce qu’est la sécurité informatique. Il faut comprendre deux choses. La première est qu’il n’y aura jamais de systèmes parfaitement sécurisés.
La seconde est qu’en matière de sécurité, on ne fait que minimiser les risques. En ce sens, investir dans les pratiques de sécurité informatique est similaire à souscrire une police d’assurance pour votre voiture ou maison.
Auparavant, afin de mitiger les risques, les experts en sécurité avaient davantage un rôle d’approbation et d’auditeur dans lequel ils validaient les décisions et la mise en place de l’infrastructure. Cependant, l’essor de l’agilité et du DevOps ont rendu ce modèle obsolète.
En bref, le DevSecOps consiste à concilier et intégrer la sécurité avec les cycles de développement courts que vous avez pu adopter.
Qu’est-ce que la méthodologie DevSecOps?
Nous venons de le voir, le DevSecOps est nécessaire pour équilibrer deux priorités : la livraison rapide et fiable de logiciels en production (DevOps) et la sécurité (Sec). De nombreuses organisations adoptant l’approche DevOps sont probablement coupables de se concentrer un peu trop sur la livraison et d’oublier la sécurité.
Pour remédier à cela, il faut automatiser un bon nombre de tâches reliées à la sécurité, afin de pallier aux manques d’expertise en matière de sécurité et ainsi d’éviter les erreurs humaines.
L’objectif est donc de faciliter la sécurité pour les équipes de développement, les ingénieurs QA et les équipes opérationnelles. Car tout le monde ne peut pas devenir un expert en sécurité du jour au lendemain.
En conséquence, les principaux avantages du DevSecOps visent à doter les équipes DevOps d’une capacité de cybersécurité qui protège l’entreprise contre les cyberattaques en déployant des outils d’automatisation sur tous les composants à risque : endpoints, réseaux, bases de données, applications, CI/CD, etc.
L’erreur serait de penser que le DevSecOps n’est qu’une question d’outils, bien que les outils soient la partie attrayante du sujet. Il vous faut également mettre en œuvre des politiques de gouvernance, telles que la gestion des accès et les permissions, la mise en vigueur des politiques de sécurité pour les développeurs, ainsi que la définition d’un moyen de mesurer les résultats.
Comment l’automatisation joue-t-elle un rôle
dans le DevSecOps?
De la même manière que DevOps a adopté le shift-left testing pour améliorer la livraison des logiciels, nous devons déplacer la sécurité en amont et automatiser la « livraison » de nos analyses de sécurité. Cela signifie que les contrôles de sécurité (security gates) doivent être exécutés aussi souvent que possible et dès le début du processus de développement et ainsi appliquer l’une des devises DevOps : « fail fast ».
Cela signifie qu’il faut s’assurer que toutes les étapes du processus incluent une évaluation des risques et des problèmes de sécurité afin de construire la meilleure ligne de défense possible. Les contrôles de sécurité doivent être intégrés autour de plusieurs éléments de la boucle DevOps.
Le DevSecOps s’appuie fortement sur les outils CICD. Il est donc important d’avoir de solides bases dans ce domaine, car il sera beaucoup plus facile d’ajouter des contrôles de sécurité entre des étapes existantes. La sécurité n’est plus le travail d’un seul expert ; les rôles et responsabilités doivent être repensés pour que la sécurité soit l’affaire de tous.
Heureusement, les rôles DevSecOps équivalent à une organisation appliquant les principes du DevOps. Dans le sens que les responsabilités en matière de sécurité sont réparties entre les rôles déjà existants. La planification des équipes agiles doit inclure une analyse des menaces et tenir compte des initiatives de sécurité dans la planification des tâches.
Les développeurs doivent être sensibilisés aux meilleures pratiques en matière de code sécuritaire et analyser leur code contre les vulnérabilités connues. Les administrateurs DevOps responsables de la plateforme de surveillance doivent inclure des audits de sécurité et les alertes associées.
Allez plus loin et adoptez le DevSecOps
Nous espérons qu’après cette lecture, vous aurez une meilleure idée des raisons motivant la transition du DevOps au DevSecOps.
Le silo de sécurité doit être, lui aussi, détruit et entièrement intégré à la méthodologie DevOps. Le DevSecOps est le nom inventé pour faire pousser de nouvelles idées et la destruction d’un autre silo dans votre entreprise.
Heureusement, beaucoup de progrès ont été réalisés en matière d’automatisation du processus de livraison continue, donc l’ajout de contrôle de sécurité peut être facilité avec des étapes supplémentaires dans votre pipeline. Cependant, se doter des bons outils n’est pas suffisant. Il faut mettre en place un plan d’action pour gouverner tout ce qui concerne la sécurité et investir intelligemment dans les initiatives de sécurité.
L’établissement d’une stratégie DevSecOps peut être assez décourageant, car cela nécessite :
- Une bonne compréhension des menaces auxquelles vous êtes confrontées.
- Des connaissances en matière de sécurité pour sélectionner les outils DevSecOps à intégrer à votre pipeline.
- Une liste de travaux préparatoires à faire pour intégrer ces outils à votre infrastructure et vos pipelines.
Dans le prochain article, afin de défricher le terrain, nous parlerons des outils DevSecOps indispensables pour vous protéger au mieux des incidents de sécurité.
Par Gologic en collaboration avec Alexandre Couëdelo.
Sources :
https://termly.io/resources/articles/biggest-data-breaches/ (le nombre important)
https://www.bmc.com/blogs/what-is-shift-left-shift-left-testing-explained/ (shift-left testing)