Qu'est-ce que le DevSecOps ?
đŸ€”

Qu'est-ce que le DevSecOps ?

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é.
Â