DevSecOps : définition

Les principes et pratiques DevSecOps sont similaires à ceux de DevOps traditionnel : ils reposent sur des équipes intégrées et multidisciplinaires qui collaborent pour assurer la livraison continue de logiciels sécurisée. Le cycle de développement DevSecOps est un processus répétitif qui commence par l’écriture du code par un développeur, le lancement d’un build, le déploiement du logiciel dans un environnement de production et le suivi des problèmes identifiés lors de l’exécution, mais il inclut également la sécurité à chacune de ces étapes.

Les bonnes pratiques DevSecOps doivent veiller à ce que la sécurité fasse partie intégrante du cycle de vie de développement logiciel. Ce processus se répète au fur et à mesure que de nouvelles fonctionnalités sont développées et que les bugs sont corrigés. Pour développer et livrer plus rapidement, les développeurs s’appuient sur un logiciel open source afin de terminer leurs projets. Une application moderne typique se compose d’un maximum de 90 pour cent de logiciels open source. Cette pratique est susceptible d’avoir les conséquences suivantes dans une organisation :

  • Vulnérabilités de sécurité
  • Problèmes de conformité des licences

S’appuyer sur les rapports des développeurs et les processus manuels ne donne qu’une vision partielle. La sécurité et la conformité sont donc des aspects essentiels du processus DevSecOps.

 

 

DevSecOps - developers to Operations and Security Engineers ratio

DevSEcOps - ratio of developers to Operations and Security Engineers

Il existe un ratio de 200 développeurs, pour 5 opérationnels et 1 personne chargée de la sécurité. Cela signifie que tout problème de sécurité identifié par un outil de scan de vulnérabilité de sécurité doit être examiné par une équipe de sécurité très réduite qui manque parfois de connaissances techniques. Ce risque peut être maîtrisé en confiant la responsabilité de la sécurité et de la conformité aux équipes de développement et d’opérations et en déplaçant la sécurité plus tôt dans le cycle de développement.

Il faut impérativement identifier les failles de sécurité le plus tôt possible dans le pipeline CI/CD, ainsi qu’automatiser les politiques de sécurité et de conformité dans le cycle, plutôt que de recourir aux processus manuels. Par ailleurs, les entreprises qui n’intègrent pas Sec dans DevOps risquent d’être confrontées à des problèmes de sécurité et de conformité à un stade plus proche de la livraison, ce qui entraîne des coûts supplémentaires pour y remédier.


Démarrez avec JFrog Xray GRATUITEMENT et scannez les vulnérabilités de sécurité.

Démarrer Gratuitement


Culture DevSecOps

Une culture DevSecOps implique que tous les intervenants assument la responsabilité et la propriété de la sécurité. Dans le cadre de l'intégration des bonnes pratiques DevOps, toute équipe de développement doit désigner le meilleur professionnel de la sécurité pour diriger les processus et les actions de sécurité et de conformité au sein de l'équipe afin de garantir la sécurité du logiciel livré.

La nature de DevOps est d'automatiser autant que possible pour éviter les erreurs humaines et de créer des portes automatisées pour éviter que du code instable ne soit envoyé en production. En substance, un code comportant une faille de sécurité ou une licence non conforme est instable.

Principes DevSecOps

L'introduction et l'implémentation DevSecOps dans une entreprise nécessitent des changements culturels et opérationnels. Les voici : formation sur la sécurité, outils et ressources. Voici quelques concepts utiles pour faire évoluer la culture d'entreprise.

  • Les experts de la sécurité

    Ces intervenants sont responsables de l'ensemble des aspects liés à la sécurité, ils veillent à ce qu'ils soient mis en œuvre dans le pipeline DevOps et les exposent aux autres membres de l'équipe. Par exemple, l'expert de la sécurité d'une équipe de développement dirigera la mise en œuvre et l'utilisation au sein de son équipe de :

    • Test statique de sécurité des applications (SAST), pour détecter les failles de sécurité dans le code source.
    • Analyse de composition logicielle (SCA), pour la visibilité des dépendances open source.

    L'expert en sécurité d'une équipe QA implémentera :

    • Le test dynamique de sécurité des applications (DAST) dans le cadre des cycles de QA.

  • La sécurité comme partie intégrante du processus

    Les pratiques DevSecOps exigent que la sécurité fasse partie intégrante du cycle de développement logiciel, et non plus seulement avant la mise en production du logiciel. Cela signifie que les développeurs intègrent l'analyse de sécurité dans le processus de build, ainsi que dans leur environnement d'IDE pour identifier les dépendances vulnérables.

  • Données accessibles facilement

    Les développeurs sont 200 fois plus nombreux que les professionnels de la sécurité. Des plugins IDE dédiés peuvent fournir des données de sécurité directement dans les outils des développeurs, ce qui facilite leur adoption. Présentez aux développeurs les meilleures pratiques pour éviter les problèmes de sécurité lorsqu'ils écrivent leur code.

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

  • Gouvernance automatisée

    Outre les vérifications manuelles, telles que les relectures de code, des points de contrôle de sécurité peuvent être appliqués à chaque phase du pipeline DevOps afin de déterminer si votre logiciel peut passer à la phase suivante. Un système de gouvernance applique automatiquement les politiques de l'entreprise et peut prendre des mesures en conséquence sans intervention :

    • Notification des violations de sécurité ou de conformité (email, Slack, messages instantanés, Jira, etc.)
    • Blocage des téléchargements
    • Échec des builds qui dépendent de composants vulnérables ou qui ne respectent pas les politiques des licences.
    • Prévention du déploiement de release bundles vulnérables

JFrog Xray peut être intégré à n'importe quel serveur CI pour faire échouer les builds si des failles de sécurité ou des violations de la conformité des licences open source sont détectées dans les artefacts ou les dépendances.

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

Outils DevSecOps

Il existe plusieurs familles d’outils de sécurité et de conformité pour aborder différents aspects du cycle de développement logiciel. Elles comprennent : l’analyse statique de code (SAST), l’analyse de composition logicielle (SCA) et différentes approches pour tester le code à la recherche de failles (DAST et IAST). Il existe en outre des outils destinés à contrôler et à protéger vos fichiers binaires dans les environnements de production contre les attaques qui exploitent les failles du code ou de l’environnement. Idéalement, les équipes doivent adopter tous ces outils pour garantir la sécurité de l’ensemble du cycle de développement logiciel.

Les outils d’analyse statique de sécurité des applications (SAST) vous aident à identifier les failles de votre code développé en interne. L’équipe de développement doit être informée et utiliser les outils SAST dans le cadre de l’automatisation des processus de développement. De cette manière, ils peuvent détecter les failles éventuelles et y remédier au plus tôt dans le cycle DevOps.

L’analyse de composition logicielle (SCA) englobe la gestion et la surveillance de la conformité des licences et des failles de sécurité dans les composants open source dont dépend votre code. Connaître le code open source utilisé et les dépendances est une priorité. Après avoir identifié ces composants, les outils SCA tels que JFrog Xray, fourniront des informations sur leurs licences et indiqueront si des failles de sécurité sont connues. Les outils SCA avancés offrent des fonctionnalités d’exécution de politiques pour empêcher le téléchargement de fichiers binaires, gérer les échecs de builds et notifier les autres systèmes.

Les outils de test dynamique et interactif de sécurité des applications (DAST et IAST) évaluent les interfaces exposées de l’application en cours d’exécution à la recherche de vulnérabilités et de failles. Alors que DAST voit l’application comme une boîte noire, IAST utilise une instrumentation qui combine les techniques d’analyse dynamique de sécurité des applications (DAST) et de test de sécurité par 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 contrôlent les conteneurs dans leur environnement d’exécution. Ces outils proposent différentes possibilités, notamment un pare-feu à différents niveaux, l’identification d’anomalies sur la base d’analyses comportementales, etc.

Bonnes pratiques DevSecOps

  • Formez l'équipe de développement à la conception d'un code sécurisé
  • Détectez 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égrez des contrôles de sécurité dans le pipeline de développement logiciel
  • Automatisez les tests de sécurité dans le processus de build
  • Détectez les vulnérabilités connues tout au long du pipeline
  • Surveillez la sécurité en production
  • Injectez une faille pour vérifier la sécurité
    Source : The Divine and Felonious Nature of Cyber Security – John Willis @botchagalupe

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

Démarrer

Familiarisez-vous avec les outils JFrog DevSecOps.
Bénéficiez d'un essai gratuit sur site ou démarrez gratuitement dans le Cloud.

Démarrer Gratuitement