Qu’est-ce que DevSecOps ?

DevSecOps :définition

Les principes et les pratiques DevSecOps sont parallèles à ceux de DevOps traditionnel, avec des équipes intégrées et multidisciplinaires, travaillant ensemble pour permettre une livraison logicielle continue sécurisée. Le cycle de vie du développement DevSecOps est un processus répétitif qui commence par l’écriture de code par un développeur, le déclenchement d’un build, le déploiement du package logiciel dans un environnement de production et sa surveillance pour détecter les problèmes identifiés dans le runtime. Mais en plus de cela, il inclut la sécurité à chacune de ces étapes.

Les meilleures pratiques DevSecOps doivent garantir que la sécurité fait partie intégrante du cycle de vie du développement logiciel. Le processus se répète à mesure que de nouvelles fonctionnalités sont développées et que des bugs sont corrigés. Pour développer et publier plus rapidement, et mener à bien leurs projets, les développeurs s'appuient sur des logiciels open source. L’application moderne typique est composée jusqu’à 90 % de logiciels open source. Cela a le potentiel d’introduire les éléments suivants dans une organisation :

  • Failles de sécurité
  • Problèmes de conformité des licences

L'appui sur les rapports des développeurs et les processus manuels ne fournit qu’une image partielle. La sécurité et la conformité constituent donc une partie essentielle du processus DevSecOps.

 

Il existe actuellement un ratio de 200:5:1 entre les développeurs et les opérations et les agents de sécurité. Cela signifie que tout problème de sécurité identifié par un outil d’analyse des vulnérabilités de sécurité doit être examiné par une très petite équipe de sécurité, qui peut même ne pas disposer de toutes les connaissances techniques nécessaires. Il est possible de réduire ce défi en se déplaçant vers les équipes de développement et d’exploitation, en les rendant également responsables de la sécurité et de la conformité, et en traitant la sécurité plus tôt dans le processus SDLC.

Il est crucial de mettre en œuvre l’identification des problèmes de sécurité plus tôt dans le pipeline CI/CD, ainsi que d’automatiser les politiques de sécurité et de conformité dans le cycle de vie du développement logiciel (SDLC), plutôt que d’utiliser des processus manuels. De plus, les organisations qui laissent la Sec en dehors de DevOps peuvent être confrontées à des problèmes de sécurité et de conformité à un stade plus rapproché de leur publication, ce qui entraîne des coûts supplémentaires liés à la résolution de ces problèmes.


Lancez-vous avec JFrog Xray GRATUITEMENT et analysez les vulnérabilités de sécurité

Démarrer Gratuitement


Culture DevSecOps

Une culture DevSecOps est une culture dans laquelle chacun assume ses responsabilités en matière de sécurité et se l'approprie. En s’appuyant sur les meilleures pratiques de DevOps, chaque équipe de développement doit désigner un champion de la sécurité qui dirigera les processus et les actions de sécurité et de conformité au sein de l’équipe, afin de maximiser la sécurité du logiciel livré.

La nature de DevOps consiste à automatiser autant que possible, afin d'éviter les erreurs humaines et de créer des portes automatisées pour éviter que du code instable ne pénètre dans la production. En substance, le code présentant une vulnérabilité de sécurité ou une licence non conforme est instable.

Principes DevSecOps

L’introduction et la mise en œuvre de DevSecOps dans une organisation nécessitent des changements culturels et opérationnels. Notamment, les suivants : formation, outils et ressources en matière de sécurité. Voici quelques concepts utiles pour réussir la transition dans votre culture organisationnelle.

JFrog Xray met la sécurité à la portée de main du développeur, en fournissant des informations sur les vulnérabilités de sécurité concernant les dépendances utilisées dans le code.

JFrog Xray peut être intégré à n’importe quel serveur CI pour mettre en échec les builds si des failles de sécurité ou des violations de conformité de licence open source sont détectées dans des artefacts ou des dépendances de build.

DevSecOps peut être automatisé dans votre pipeline, créant ainsi une superposition abstraite de sécurité.

Outils DevSecOps

Il existe plusieurs familles d’outils de sécurité et de conformité pour traiter différents aspects du SDLC. Il s’agit notamment des éléments suivants : Analyse Statique du Code (SAST, Static Code Analysis), Analyse de la Composition Logicielle (SCA, Software Composition Analysis) et différentes approches pour tester le code à la recherche de vulnérabilités (DAST et IAST). En outre, il existe des outils destinés à surveiller et à protéger vos fichiers binaires dans les environnements de production contre les attaques qui exploitent votre code ou les vulnérabilités de votre environnement. Idéalement, les équipes doivent viser à adopter tous ces domaines pour une sécurité SDLC complète.

Les outils SAST (Static Application Security Testing) peuvent vous aider à identifier les vulnérabilités dans votre propre code propriétaire. Les développeurs doivent connaître et utiliser les outils SAST en tant que partie automatisée de leur processus de développement. Cela aidera à détecter et à corriger les vulnérabilités potentielles dès le début du cycle DevOps.

L’Analyse de la Composition Logicielle (SCA) englobe la gestion et la surveillance de la conformité des licences et des vulnérabilités de sécurité dans les composants open source dont dépend votre code. Il est primordial de savoir quels composants OSS sont utilisés et quelles sont leurs dépendances. Après avoir identifié les composants open source, les outils SCA tels que JFrog Xray fourniront des informations sur les licences et indiqueront s’il existe des vulnérabilités de sécurité connues associées à ces composants. Les outils SCA avancés offrent des fonctionnalités d’application des stratégies, empêchant le téléchargement de fichiers binaires, la mise en échec de builds et la notification d’autres systèmes.

Les outils de test dynamique et interactif de sécurité des applications (DAST et IAST) testent les interfaces exposées de l’application en cours d’exécution, à la recherche de vulnérabilités et de failles. Alors que DAST considère l’application comme une boîte noire, IAST utilise une instrumentation qui associe des techniques de test de sécurité d’application dynamique (DAST) et de test de sécurité d’analyse statique (SAST) pour augmenter la précision des tests de sécurité des applications.

Les outils de sécurité d'exécution du conteneur surveillent les conteneurs dans leur environnement d’exécution. Ces outils offrent différentes capacités, notamment un pare-feu à différents niveaux, l’identification des anomalies basées sur l’analyse comportementale et plus encore.

Meilleures pratiques pour DevSecOps

  • Former les équipes de développement au développement de code sécurisé
  • Suivre les problèmes de sécurité de la même manière que les problèmes logiciels
  • Sécurité en tant que code, Sécurité Intégrée
  • Intégrer les contrôles de sécurité dans le pipeline de développement logiciel
  • Automatiser les tests de sécurité dans le processus de build
  • Détecter les vulnérabilités connues dans l’ensemble du pipeline
  • Surveiller la sécurité en production
  • Injecter un échec pour s’assurer que la sécurité est renforcée
    Source : The Divine and Felonious Nature of Cyber Security – John Willis @botchagalupe

    The DevOps Handbook, Gene Kim, Patrick Debois, John Willis, Jez Humble

FAQ

Qu'est-ce que l'Analyse de Composition Logicielle (SCA) ?

La nécessité de l’analyse de composition logicielle (SCA) est née de l’utilisation croissante de composants logiciels open source, employés par les développeurs pour suivre le rythme de l’innovation. Les entreprises avaient du mal à gérer et à suivre l’utilisation de l’open source entre les équipes et les sites, et avaient ainsi besoin d’une méthode plus automatisée.

Les logiciels open source représentent généralement 90 % du code d’une application. Il est essentiel de vous assurer que cette partie de votre code est gérée et sécurisée.

Trop d’entreprises négligent le risque que présentent les composants open source, tout en se concentrant uniquement sur le code qu’elles écrivent. Cela peut conduire à des violations notoires de la sécurité et des licences, avec à la clé un coût de plusieurs millions de dollars pour des entreprises telles qu’Equifax et Capital One. Une solution SCA peut résoudre ce problème !

La SCA englobe la gestion et la surveillance de la conformité des licences et des vulnérabilités de sécurité dans les composants open source. Savoir quels composants OSS sont utilisés et quelles sont leurs dépendances est une préoccupation majeure. Une fois les composants OSS d’une organisation identifiés, les outils SCA offrent une visibilité sur chaque composant, y compris les informations sur la licence, son numéro de version et l'existence de vulnérabilités de sécurité connues qui lui sont associées.

Quels sont les risques liés à l’utilisation de composants open source ?

Les applications modernes peuvent désormais être composées de 90 % de composants OSS. Cela signifie que la majorité des logiciels que nous créons, déployons et consommons quotidiennement sont plus susceptibles de contenir des vulnérabilités que jamais auparavant. En raison de son ouverture, le code est facile d'accès pour les pirates, qui peuvent y rechercher des vulnérabilités. En plus de présenter un risque en raison de leurs vulnérabilités, les logiciels open source peuvent également introduire des problèmes complexes de conformité des licences pour les organisations. Une complication potentielle pourrait être liée à l'exigence d'une licence : « Si vous utilisez ce composant, vous devez rendre votre code open source ».

Idéalement, vous devez analyser et identifier les problèmes de conformité et de vulnérabilité des licences sur tous vos composants OSS le plus tôt possible dans le processus de développement. Connaître les composants que vous avez dans l’ensemble de votre portefeuille d’applications et les suivre est une exigence absolue et devrait être automatisée. Cette démarche devrait faire partie intégrante de votre pipeline CI/CD, afin de maintenir votre vitesse de développement et de publication.

Auparavant, la sécurisation de votre SDLC et de la production nécessitait d'exécuter des agents pour effectuer l’analyse des composants. Aujourd’hui, il existe différentes solutions qui peuvent atteindre un niveau supérieur de surveillance de la sécurité et de la conformité. Elles sont intégrées directement dans votre IDE, gestionnaire de dépôts ou pipeline CI/CD, et peuvent même analyser vos images de conteneur. Pour la surveillance de la sécurité et de la conformité open source, il serait plus efficace de dispose d’une solution SCA intégrée nativement.

Qu’offrent les outils SCA ?

Les outils SCA avancés offrent des capacités de mise en application des stratégies, permettant une surveillance automatisée des composants open source. Ceux-ci sont configurables pour permettre différents comportements sur les violations de sécurité ou de conformité identifiées, en fonction du contexte des éléments analysés. Un exemple serait l'échec de l'assemblage d’une application hautement sensible basée sur une vulnérabilité, tout en réussissant l'assemblage d’une application de test comportant le même composant vulnérable. Les outils SCA comparent chaque composant open source de votre code à vos stratégies et déclenchent différents types d’actions automatisées en fonction du résultat.

Un outil SCA utilise une base de données de référence de vulnérabilités et de licences connues avec laquelle il compare les dépendances OSS utilisées par votre application. Plus les bases de données sont complètes, plus le risque que votre code de production contienne des vulnérabilités connues ou des problèmes de licence est faible.

Quelles sont les principaux éléments à prendre en compte lors du choix d’un outil SCA ?

Il est important de prendre en compte les éléments suivants lorsque vous examinez les outils d’analyse de la composition logicielle :
1. Prise en charge des technologies : Dans quelle mesure est-il universel et prend-il en charge tous les langages de codage et types de packages utilisés par votre organisation ?
2. Intégration des Écosystèmes : L’outil SCA doit s’intégrer aux dépôts, aux IDE, aux gestionnaires de packages, aux serveurs CI et plus encore, via des intégrations prêtes à l’emploi et via de riches API ouvertes.
3. Base de données : Une base de données complète sur les licences et les vulnérabilités est indispensable pour assurer la meilleure couverture.

En quoi les outils SCA sont-ils différents des autres outils de sécurité des applications ?

Une pile de sécurité complète doit se composer des outils suivants :
- Tests dynamiques de sécurité des applications (DAST, Dynamic Application Security Testing)
- Tests interactifs de sécurité des applications (IAST, Interactive Application Security Testing)
- Analyse de Composition Logicielle (SCA, Software Composition Analysis)
- Tests statiques de sécurité des applications (SAST, Static Application Security Testing)

JFrog Xray est un outil SCA qui se concentre sur la détection et l’élimination des vulnérabilités de sécurité open source et des problèmes de conformité des licences dans les composants OSS et dans les dépendances que vous utilisez pour écrire le code de votre application. Les bases de code étant composées jusqu’à 90 % d’OSS, Xray peut avoir un impact énorme sur la stabilité et la sécurité de vos versions de production.

Les organisations qui adoptent une telle approche constatent des améliorations dans l’ensemble du SDLC, notamment : amélioration de la qualité grâce à l’identification précoce des problèmes, visibilité sur le code propriétaire et open source, réduction des coûts de correction en détectant et en corrigeant les vulnérabilités dès le début du processus de développement, minimisation du risque de failles de sécurité et optimisation des tests de sécurité

Quels sont les risques liés au recours à des bases de données CVE/NVD gratuites ?

Même si vous avez la meilleure intégration d’outils SCA, la qualité d'une solution d’analyse de sécurité dépend de la base de données de vulnérabilités qui la génère. L'utilisation d'une base de données qui n’est pas à jour avec les dernières vulnérabilités revient à essayer de trouver une personne au beau milieu de la foule, sans savoir à quoi elle ressemble. Certaines entreprises considèrent l’utilisation de l’énumération des vulnérabilités communes (CVE, Common Vulnerability Enumeration) de MITRE dans la base de données nationale sur les vulnérabilités (NVD, National Vulnerability Database) comme la norme de référence en matière de sécurité. De nombreux experts en sécurité sont catégoriques sur le fait qu'il ne suffit pas de s’appuyer sur la CVE et la NVD pour les données de vulnérabilité.

Par exemple, Risk Based Security, connu pour disposer de l’un des services de renseignement sur les vulnérabilités les plus complets et à jour disponibles, VulnDB, a systématiquement éclipsé le nombre total de vulnérabilités identifiées et cataloguées par la CVE et la NVD chaque année. Plus de 249 155 vulnérabilités, couvrant les produits de 27 676 fournisseurs, y compris des dizaines de milliers de vulnérabilités introuvables dans la CVE/la NVD, font de VulnDB la solution la plus complète du marché. Plus de 2 000 bibliothèques tierces ont été identifiées et surveillées afin d'y détecter des vulnérabilités.

JFrog Xray bénéficie d’une intégration étroite avec VulnDB, sa principale source d’informations sur les vulnérabilités et la conformité des licences.

Quels sont les avantages liés à l’utilisation d’une base de données de sécurité externe telle que VulnDB ?

Tout d’abord, de nombreux experts en sécurité du secteur sont catégoriques sur le fait qu'il ne suffit plus de s’appuyer sur les bases de données CVE et NVD pour les données de vulnérabilité. Un long délai peut s'écouler avant qu’une vulnérabilité ne soit publiée dans les bases de données CVE/NVD et, en attendant, les acteurs malveillants peuvent analyser ces vulnérabilités et déterminer comment ils peuvent les utiliser pour leurs activités néfastes.

Plus tôt votre solution SCA présente une vulnérabilité dans la base de données, plus tôt vous pouvez sécuriser votre code de production contre cette vulnérabilité. Il en va de même pour la vérification des types et des versions de licence. Vos services de conformité ou juridiques disposeront d’un ensemble de directives concernant l’utilisation de licences de logiciels open source. Le fait de disposer d’une base de données à jour de licences vous permet de minimiser le risque d’avoir des types de licences imprévus dans votre code de production, un problème qui peut être coûteux et compliqué à gérer.

Pourquoi devez-vous vérifier la conformité des licences ?

Assurer la conformité des licences dans les dépendances OSS est une préoccupation croissante pour les responsables de la conformité, les équipes juridiques et les CEO. Personne ne veut être victime d’un audit raté ou d’un cas coûteux de violation de propriété intellectuelle ou de licence. Il est primordial de savoir quels logiciels libres sont utilisés, par quels développeurs et dans quels builds et versions.

Nous sommes tous bien conscients du coût des failles de sécurité. Il suffit de repenser à la récente violation de SolarWinds, ou au fiasco notoire d’Equifax, qui a coûté des milliards à l'entreprise. La non-conformité aux licences logicielles présente un risque énorme et peut vous amener jusqu'à une bataille complexe et coûteuse de propriété intellectuelle. Il est possible que les conditions de certaines licences indiquent que si vous utilisez leur code, vous devez rendre tout votre code d’application open source ! Et je ne connais pas beaucoup de CEO prêts à offrir gratuitement leurs précieux trésors. Certaines entreprises en particulier, en raison de la nature du logiciel, peuvent être soumises à des audits de leur logiciel ; et un audit raté peut être passible d’amendes élevées, selon le secteur dans lequel vous vous trouvez.

Analysez Vos Images

Essayez JFrog DevSecOps Tools dès maintenant !
Exécutez une analyse de sécurité GRATUITE de vos images !

LANCEZ L'ANALYSE DÈS MAINTENANT !