Qu'est-ce que le DevSecOps ?

Qu'est-ce que le DevSecOps ?

Publié le


Do not index
Do not index
Primary Keyword
Lié à Analyse sémantique (Articles liés) 1
Lié à Analyse sémantique (Articles liés)
Statut rédaction
A optimiser SEO
Lié à Analyse sémantique (Articles liés) 2

Définition du DevSecOps

DevSecOps est une culture qui hérite du DevOps qui consiste à introduire la sécurité plus tôt dans le cycle de vie du développement logiciel.
DevSecOps élargit également la collaboration entre les équipes de développement et d'exploitation pour intégrer les équipes de sécurité dans le cycle de livraison des logiciels.
DevSecOps nécessite un changement de culture, de processus et d'outils au sein de ces équipes fonctionnelles principales et fait de la sécurité une responsabilité partagée.
Toutes les collaborateurs impliquées dans le développement et le maintient en condition opérationnelle ont un rôle à jouer dans l'intégration de la sécurité dans la chaîne d'intégration continue et
de livraison continue (CI/CD) DevOps.

La genèse du DevSecOps

Dans le monde entier, l’intérêt et l’adoption du DevSecOps se développent rapidement. Mais qu’est-ce que le DevSecOps ?
Développer et mettre sur le marché un SaaS ou un logiciel peut être long et complexe.
 
Les développeurs (Dev), les équipes opérationnelles (Ops) et les équipes sécurités (Sec) interagissent ensemble pour répondre à 3 enjeux précis :
  • Time To Market (TTM) : Mettre en ligne de nouvelles fonctionnalités toujours plus rapidement pour aligner les applications de l’entreprise aux attentes des clients.
  • Stabiliser les applications : Garantir que les applications soient toujours disponibles et fonctionnelles pour les clients afin de limiter le risque de perdre du chiffre d’affaire ou d’impacter l’image de marque négativement
  • Sécurité des données : Garantir un niveau de sécurité important en continu pour ne pas se faire hacker ses données.
 
Dans les organisations traditionnelles, chaque acteur (Dev, Ops, Sec) est responsable de traiter un seul enjeu.
Le développeur s’occupe de développer de nouvelles fonctionnalités, l’équipe opérationnelle stabilise les applications et l’équipe sécurité s’occupe de la sécurité.
 
Cette organisation est bien souvent inefficace et a un impact négatif sur la productivité des équipes :
Les développeurs :
  • Pour livrer dans les temps, créent involontairement des bugs et engendrent de la dette technique.
  • Parce qu’ils ne sont pas des experts en sécurité, créent des failles sur la production sans le savoir.
 
Les équipes opérationnelles :
  • Pour éviter de créer des instabilités sur la production pour les clients, elles ralentissent ou bloquent les développeurs dans la mise en ligne de nouvelles fonctionnalités.
  • Ne maîtrisent toujours pas les technologies utilisées par les développeurs, elles n’arrivent donc pas à gérer le support des applications.
 
Les équipes sécurités :
  • Pour éviter de créer des failles de sécurité sur la production pour les clients, elles ralentissent ou bloquent les développeurs dans la mise en ligne de nouvelles fonctionnalités.
  • Elles créent des recommandations de sécurité qui ne sont jamais appliquées car les développeurs ou Ops n’ont pas le temps pour les traiter.
 
Avoir un développeur, une équipe Ops et une équipe sécurité ne suffit pas à répondre correctement à tous les enjeux de l’entreprise. Il est donc nécessaire de travailler profondément la culture et l’organisation.
La culture DevSecOps qui combine le développement (Dev), sécurité (Sec) et opération (Ops) résout ces enjeux en coordonnant les équipes, les processus et les technologies.

Qu’est ce que le DevSecOps : Une culture avant tout

Plus qu’une méthodologie de développement de logiciels, le DevSecOps est une culture.
Afin d'intégrer les bonnes pratiques de sécurité et de développement, le DevSecOps nécessite la mise en place d’une culture d’entreprise forte, d’une organisation de fer ainsi que des outils, sur toute la durée du projet.
Voici les notions que la culture DevSecOps apporte :
  • « Security by design » : Pour garantir un niveau de sécurité élevé, les experts sécurités doivent être acteurs. Ils sont intégrés dans les équipes projets et doivent mettre en place des processus de sécurité qui sont assimilés dans les processus de travail des développeurs et des équipes opérationnelles.
  • « You build It, You run It » : Pour responsabiliser les développeurs à la qualité du code et améliorer la qualité de service sur les projets, les développeurs doivent aider les équipes supports à traiter les incidents de production.
  • « Everything as Code » : Pour améliorer l’auditabilité, la reproductibilité, la qualité du code et corriger plus rapidement les anomalies, tout ce qui est réalisé doit être réalisé as code (Infrastructure as code, Compliance as Code, Test as Code…)
  • « Always improve » : Pour améliorer la stabilité et la sécurité dans le temps, les équipes doivent se former en continue et chaque incident doit donner lieu à un post-mortem.

Qu’est-ce que le DevSecOps : Une méthodologie éprouvée

La culture DevSecOps est centrée vers une méthodologie de planification, d’exécution et d’amélioration continue. Cette méthodologie est composée de 8 phases :
DevSecOps Chaine CI / CD
DevSecOps Chaine CI / CD
Plan :
Cette phase, consiste à planifier les développements via un ensemble de différents livrable comme les dossier d’analyse de risques, la roadmap technique, le dossier d’architecture, le plan de monitoring ou même les plans de formations.
Code :
Après avoir planifié les travaux, vient la phase de développement.
C’est dans cette phase que tous les livrables de développement sont réalisés. Cette phase comprends les développements applicatifs, mais aussi le développement as code de l’infrastructure, des outils sécurité, de monitoring et de supervision.
Afin de garantir une forte sécurité et d’éviter au maximum des failles de sécurité comme par exemple les injection SQL ou XSS, les bonnes pratiques DevSecOps impose de réaliser dans cette phase une analyse statique du code (SAST) et des dépendances (SCA).
L’analyse SAST consiste à intégrer dans ses processus de développement des outils de relecture statique sur les IDE ou via des pre-commits.
Pour détecter les failles de sécurité, les données sensible et les mauvaises pratiques de développement qu’il ne faut pas pousser en production ou dans les outils de gestion de code. De la même façon que l’analyse SAST l’analyse des dépendances (SCA) met en évidence les vulnérabilités (CVE) des dépendances utilisés dans les livrables et permet aux développeurs de les corriger avant de les pousser en production.
Build :
C’est dans cette phase que les développements sont compilés. C’est en général dans cette phase que l’on peut mettre en évidence les plus gros bugs techniques à corriger et aussi de préparer la mise en production du code.
Test :
La phase de test est l’une des plus importante de cette méthodologie DevSecOps. Cette phase va permettre de garantir un niveau de contrôle, de qualité, de code et de sécurité by design sur tous les livrables.
Plusieurs types de tests sont lancés sur les livrables :
  • les tests de qualité
  • les tests unitaires
  • les tests d’intégration
  • les tests de sécurité dynamique (DAST)
Tout comme le SAST, les analyses DAST permettent de détecter différents problèmes de sécurité. Néanmoins, il n’est pas possible de réaliser l’analyse DAST directement sur des livrables. Cette analyse s’effectue sur les endpoints et web services des livrables déployés sur les environnements de test dédié. Afin d’accélérer les développements et d’augmenter la stabilité de la production, il est commun de mettre en place des environnements de test à la demande pour réaliser des tests supplémentaires. Il est à noter que les bonnes pratiques DevSecOps préconise de réaliser TOUS les tests as code et de limiter au maximum les tests manuels.
Dans le DevSecOps cette phase est très souvent automatisé dans un pipeline d’intégration continue (CI) via des outils de CI / CD comme Gitlab-CI.
Release :
Après avoir compilé et testé les développements, vient la phase de release. Cette phase consiste à versionner, packager et stocker un ensemble de code sous forme d’artifact / binaire inaltérables qui seront utilisés lors de la mise en production.
Deploy :
Le code étant packagé et testé, il est maintenant prêt pour partir en production. C’est dans la phase de déploiement que les nouvelles fonctionnalités sont mise en production.
Dans le DevSecOps cette phase est très souvent automatisé dans un pipeline déploiement continue (CD) via des outils de CI / CD comme Github Action.
Monitor :
Une fois les développements mis en production, vient la phase de monitoring. Cette phase consiste à analyser en continue les métriques et les logs des solutions déployés. Elle permets donc de détecter et bloquer les comportements qui pourrait mettre à mal l’application. De par des enjeux de disponibilité ou bien de sécurité (SIEM, RASP).
Il existe un très grand nombre d’outils DevSecOps permettant de monitorer les logs, les connexions et les usages des logiciels pour obtenir une visibilité à 360 des logiciels déployés.
Operate :
Dans le cas où un incident et/ou un problème est détecté vient la phase de supervision. Une analyse est réalisée afin de détecter les différentes root causes. Alors un rapport de problème est émis, avec les différentes informations de l’incident et les éléments qui permettront de planifier un correctif sur la prochaine itération de la méthodologie.
C’est dans cette phase que les rapports de disponibilité et de sécurité sont émis.
 
Pour plus d’informations sur les différentes étapes de la méthodologie DevSecOps, je te conseille de consulter cette article :
📑
Les différentes étapes du DevSecOps

Qu’est-ce que le DevSecOps : Des outils et technologies

Pour plus d’informations sur les différents outils et technologies DevSecOps, je te conseille de consulter cette article :
🎉
Les outils et technologies DevSecOps

Qu’est-ce que le DevSecOps : Conclusion

Comme tu l’auras compris, le DevSecOps n’est pas qu’un ensemble d’outils, c’est une culture avant tout. Elle mélange un ensemble de préceptes et permet sont application via une méthodologie et un ensemble d’outils.
Il est important de souligner que pour réussir à mettre en place le DevSecOps dans son entreprise, il faudra impliquer au maximum les équipes de développement, opérationnel et sécurité.
 

S'inscrire à la newsletter DevSecOps Keltio

Pour recevoir tous les mois des articles d'expertise du domaine

S'inscrire

Écrit par

Kévin Didelot
Kévin Didelot

Kévin est notre super expert DevSecOps et le fondateur de Keltio 👨🏻‍💻