Font size
  • A-
  • A
  • A+
Site color
  • R
  • A
  • A
  • A
Article
UriskTrainer
  • Devenir Coach
  • S’inscrire
  • Connexion
  • Blog
Passer au contenu principal
  • Date: lundi 11 juillet 2022, 08:00

    DevSecOps, comment ça marche ? définition et enjeux

    Comment allier rapidité et sécurité dans la création et le déploiement des logiciels d’entreprise ? Bien que ces objectifs puissent sembler contradictoires, l’approche DevSecOps vous permet de les atteindre en même temps...

    En intégrant la sécurité efficacement à DevOps pour en faire DevSecOps, votre production d’applications peut gagner encore en stabilité qualité et sécurité.
    Des ingénieur(e)s DevSecOps compétent(e)s sont la solution pour réussir ce défi. Ce sont des ingénieurs qui comprennent les principes de DevOps et DevSecOps. Ils (elles) sont capables de les communiquer aux intéressés, et savent les appliquer dans leurs organisations. Une formation adaptée avec un accompagnement par des coachs experts peut être un excellent tremplin pour la compréhension et la mise en œuvre de ces capacités.

    Qu’est-ce que DevSecOps ?
    Pourquoi mettre en place DevSecOps dans l’entreprise ?
    Quels sont les enjeux de DevSecOps pour le CISO ?
    Des cyberattaques qu’on aurait pu éviter avec DevSecOps
    Quels sont les éléments clés de DevSecOps ?
    Comment devenir ingénieur(e) DevSecOps ?
    Quelles sont les qualités d'un(e) ingénieur(e) DevSecOps ?
    Quelle formation pour devenir ingénieur(e) DevSecOps ?

    Qu’est-ce que DevSecOps ?

    DevSecOps est la combinaison équilibrée et efficace de trois éléments dans la production de logiciels : le développement, la sécurité, et les opérations. Bâti sur DevOps, il diffère sensiblement des approches du passé pour la partie sécurité. Traditionnellement, on attendait la fin des activités de développement pour tenter de sécuriser un logiciel déjà fini. Avec DevSecOps, on instaure une automatisation des actions de sécurité dès le début.

    Comme la qualité, la sécurité est d'autant plus grande, lorsqu' elle fait partie du logiciel dès sa conception, est maintenue tout le long de sa construction, et entretenue sur la durée de son utilisation. Les problèmes de sécurité révélés par des tests effectués en amont et en continu se corrigent plus facilement et plus efficacement. Avec DevSecOps, vous pouvez faire « des logiciels plus sûrs, plus rapidement ».

    Pourquoi mettre en place DevSecOps dans l’entreprise ?

    Les entreprises ont besoin non seulement de vélocité dans leurs développements, mais aussi de logiciels qui résistent aux Cyberattaques. Les logiciels plus sécurisés protègent l’organisation en augmentant la confiance et la productivité des utilisateurs.

    En revanche, plus longtemps on attend pour corriger un problème de sécurité, plus coûteuse est sa réparation. Plus nombreuses sont les failles de sécurité dans une application, plus grand est le risque pour l’entreprise d'être victime d'une cyberattaque, et donc de subir des dégâts financiers ou un préjudice sur sa réputation. Dans certains cas, les problèmes de sécurité peuvent même provoquer la faillite de l’entreprise (80% des petites et moyennes entreprises ayant perdu des données informatiques à la suite d'une cyberattaque font faillite dans les 12 mois, d'après une étude Hiscox menée en 2019).

    Mais avec DevSecOps :

    • Toute la chaîne de production des logiciels devient plus rapide, et plus sûre
    • Les problèmes sont traités plus tôt dans le cycle de vie et à moindre coût
    • Les fenêtres d’opportunité pour les cyberattaquants sont considérablement réduites
    • Les processus de sécurité sont reproductibles et adaptifs
    • Une bonne posture de sécurité peut être maintenue et s’adapter aux changements pour tout l’environnement.

    Quels sont les enjeux de DevSecOps pour le CISO ?

    La multiplication des équipes de projets agile dans l'entreprise rend inefficace les anciennes stratégies de contrôle centralisé de la sécurité par la seule fonction du CISO ou RSSI. L'utilisation massive du Cloud ainsi que des technologies de conteneurisation comme docker ou kubernetes, introduisent de nouvelles frontières qui échappent tout aussi à la visibilité du CISO. Enfin, la sécurité du code source devient un axe d'importance majeur, car on estime que plus de 90% du code source des applications développées, provient de sources externes à l'organisation (Rapport Sonatype 2020)

    Dans ce contexte, la sécurité des applications doit couvrir des dizaines voire des centaines d'applications, toutes génératrices de code impactant potentiellement toute l'organisation. Ce passage à l'échelle repousse les frontières au-delà du champ de visibilité traditionnel du CISO, qui doit néanmoins y faire face avec les méthodes adaptées.

    DevSecOps apporte une réponse à ce besoin de sécurité à l'échelle, en créant un nouveau rôle, le "security champion" dont la mission est d'apporter la sécurité au plus près des équipes devops ou agiles. D'autre part, DevSecOps introduit de nouveaux outils de tests continu de la sécurité, pour faire face à la fréquence des mises à jour de codes produits par l'automatisation massive des pipelines DevOps. Ce sont ces nouveaux outils qui fournissent aux organisations, les indicateurs pertinents sur les failles de sécurité potentielles présentes dans chaque livraison logicielle. En d'autres termes, le modèle de pilotage de la sécurité dans les équipes de développeurs évolue dans le cadre de DevSecOps en s'appuyant sur de nouveaux outils mieux alignés avec les sprints agiles et les pipelines DevOps.

    Des cyberattaques qu’on aurait pu éviter avec DevSecOps

    Les exemples suivants montrent comment DevSecOps auraient pu empêcher ou atténuer la propagation de graves failles de sécurité :

    • L’entreprise FedEx a laissé des données sans protection jusqu’en 2019 sur le serveur d’une autre société rachetée, compromettant ainsi la sécurité de 119 000 personnes.
      DevSecOps comprend des des outils de scans automatisés de secrets exposés dans les applications. La présence de ce type de contrôle aurait permis de détecter très tôt et de corriger de telles vulnérabilités.

    • Des pirates ont eu un accès complet aux systèmes informatiques de la société pétrolière Saudi Aramco en 2012. Son réseau entier à plat, a facilité la diffusion rapide de l'attaque.
      Avec DevSecOps, vous renforcez la protection de l’accès aux réseaux, par une gestion centralisée des fonctions d'iam (identity and access management). Cette approche couplée à une gestion automatisée des accès (policy as code), aurait pu permettre de détecter et révoquer rapidement les accès des utilisateurs malveillants, à l'origine de l'attaque.

    • Des milliers de clients de Solar Winds ont été victimes en 2019 d’un code malveillant introduit dans son logiciel de surveillance et de gestion avec une porte dérobée permettant d’attaquer ses clients.
      Les contrôles de sécurité prônés par DevSecOps comprennent des examens renforcés de demande d’intégration de nouveau code (demandes d'extraction ou « pull requests »), ils comprennent aussi l'implémentation d'analyseurs de code source externes (Source Composition Analysers) permettant d'identifier très tôt la présence de portes dérobées dans les librairies de code utilisées.

    • Les informations personnelles de 143 millions de personnes ont été exfiltrées du bureau de crédit Equifax. L’expiration de certificats de sécurité et l’oubli d’une vulnérabilité critique et connue ont mené à un piratage monumental en 2017.
      Avec DevSecOps, ces problèmes de sécurité auraient pu être évités par les scans de vulnérabilités continus, ainsi que des procédures plus robustes de gestion de certificats et de correctifs portés localement dans chaque équipe par les security champions. En effet ces derniers sont beaucoup plus au fait de l'état de mise à jour des systèmes en raison de leur proximité avec les équipes qui les emploient.

    Selon un rapport récent d'IBM et du Ponemon Institute, le coût moyen d'une violation de données en 2021 était de 4,24 millions de dollars US. Mais selon une communication des résultats de la société Equifax dernièrement, le coût dans son cas était déjà monté à 1,5 milliard de dollars plus les frais juridiques.

    Quels sont les éléments clés de DevSecOps ?

    Pour apporter une vraie valeur tout en gardant l’élan déjà créé par DevOps, voici les caractéristiques clés de DevSecOps :

    1. La sécurité intégrée est un concept clé, aussi bien dans le cycle de vie du logiciel que dans l’esprit des acteurs qui y participent. Dès la conception d’une application ou de sa nouvelle version, la sécurité est pensée, actionnée, et validée pour éliminer les failles de sécurité. Les ingénieurs de développement et des opérations sont sensibilisés continuellement pour que la prise de conscience concernant la sécurité soit générale.

    2. La sécurité se « déplace vers la gauche ». C’est-à-dire, elle intervient aussitôt que possible dans le cycle de vie logiciel. Sur l'axe du temps de développements, le début est situé à gauche, et la fin à droite. Ainsi, le « déplacement vers la gauche » ou le « Shift Left » en anglais, de la sécurité, fait remonter le temps pour intervenir plus tôt, et baisser significativement le coût total de la sécurité (la prévention coûtant bien moins cher que la réparation).

    3. La sécurité dans DevSecOps est conçue pour des architectures à base de conteneurs et de micro-services. Ces modules disposent d'interfaces précisément définies qui permettent l’intégration de la sécurité de manière systématique par l'analyse continuelle et le contrôle du comportement de ces interfaces.

    4. DevSecOps applique le principe de l’automatisation comme dans DevOps. Entre autres, les contrôles de sécurité tels que les scans de vulnérabilité, les tests statiques de sécurité d'application (SAST), les tests dynamiques de sécurité d'application (DAST) ainsi que différents outils DevSecOps sont automatisés dans les chaînes CI/CD. Ce faisant DevSecOps réduit le temps et l’effort de correction des failles en favorisant la collaboration entre les équipes de développement, des opérations, et de la sécurité qui toutes interviennent sur une chaîne de livraison logicielle commune.

    Comment devenir ingénieur DevSecOps ?

    Si vous souhaitez devenir ingénieur DevSecOps, il vous faudra des compétences préalables en sécurité informatique, en particulier dans la sécurité des applications. Vous devez également acquérir des compétences de base en développement informatique sur quelques langages, ainsi que sur des outils DevSecOps de manière à pouvoir remplir convenablement les exigences de la fonction.

    Sur le plan technique, vous devez :

    • Comprendre et pratiquer des langages de programmation et de scripting qui sont couramment utilisés dans votre entreprise ou par vos clients, par exemple, Java, PHP, Perl, Python, Ruby et Terraform

    • Comprendre les logiciels employés dans les pratiques DevOps, pour la conteneurisation et la gestion automatisée des configurations, entre autres. Vous devez bien connaître les écosystèmes des outillages d'intégration et la livraison continues (CI/CD).

    • Maîtriser au moins un outil de gestion centralisée des risques et contrôles (grc) qui fournira aux responsables de la sécurité une visibilité continuelle sur le niveau de vulnérabilité des différents domaines applicatifs aux cyber risques.

    • Enfin, maîtriser le fonctionnement d'outils DevSecOps spécifiques dont les plus essentiels sont les analyseurs de codes source externes (Source Composition Analysers), les analyseurs statiques de code, les analyseurs dynamiques de code, ou les applications de tests d'intrusion automatisés des applications web.

    Sur le plan de la gouvernance sécurité, vous devez :

    • Comprendre le spectre des vulnérabilités propres aux applications et leurs causes, par exemple le Top 10 OWASP dans le cadre du web, ainsi que les modèles de menaces (threat modelling) qui leur sont propres.

    • Maîtriser des frameworks de gestion de la sécurité adaptés aux organisations de développement DevOps ou agiles. Certains cadres, biens que pertinents et fiables comme l'ISO27001 ou le NIST sont beaucoup trop larges et s'adaptent difficilement aux contextes de sécurité agiles. La maîtrise d'un cadre de gouvernance tel que l'OWASP SAMM (Software Assurance Maturity Model) est un bon prérequis à apprendre afin de pouvoir organiser la sécurité de manière conforme aux pratiques DevSecOps. Ce cadre de gouvernance est pensé pour des contextes de développement logiciel. Il organise la sécurité sur l'ensemble du cycle de développement, en traitant les risques, et en apportant des réponses concrètes aux contrôles de sécurité à mettre œuvre, dans chaque étape du cycle, du commit, jusqu'à la mise en production.

    • Disposer de compétences en architecture IT, ceci afin de pouvoir répondre à l'impératif de proposer sans cesse des architectures proportionnées de systèmes de contrôles continu de sécurité, dans les chaînes de livraison logicielle.

    De manière plus générale, vous devez vous former pour acquérir les compétences requises par la fonction.

    Quelles sont les qualités d'un(e) ingénieur(e) DevSecOps ?

    Selon certaines statistiques, pour 200 développeurs, il n’y a que 5 ingénieurs des opérations et 1 seul(e) ingénieur(e) de sécurité. Votre influence en tant qu’ingénieur DevSecOps doit être d’autant plus grande que positive sur toute l'organisation de développement des produits logiciel.

    Un(e) bon(ne) ingénieur(e) DevSecOps est donc capable de faire adhérer l'ensemble de son organisation à la sécurité. Il ou elle instaure une prise de conscience collective de l'intérêt la sécurité, et crée une forte adhésion autour des avantages à l'adopter. Il ou elle bâtit une culture de sécurité faisant de la recherche et de la correction des vulnérabilités une priorité incontournable dans les équipes projet.

    Vous tisserez donc des relations constructives avec les autres ingénieurs de sécurité, les ingénieurs de développement, et les ingénieurs des opérations. Chaque acteur prendra la responsabilité partagée d’une sécurité robuste, quitte à être incité lorsque les applications correctement sécurisées sont déployées.

    Être un(e) bon(ne) ingénieur(e) DevSecOps requiert donc, de développer d'excellentes capacités de communication et de leadership. Il requiert aussi bien des qualités pédagogiques particulières pour porter la voix de la sécurité informatique au plus près des équipes de développement.

    Quelle formation pour devenir ingénieur DevSecOps ?

    La cybersécurité est un domaine technique et complexe, en particulier DevSecOps. Les compétences s’acquèrent par la formation initiale, l’expérience dans les entreprises, les stages, ou des parcours certifiants.

    Dans tous les cas une formation initiale d'ingénieur dans l'IT, doublée d'une solide expérience en DevOps est pré-requise pour disposer des connaissances de base à l'exercice du métier. Alternativement à l'expérience en DevOps, une formation certifiante spécifique est tout aussi acceptable. La composante DevSecOps sera apportée par des formations certifiantes comme la DevSecOps Foundation, garantie par la DevOps Institute, ainsi que des formations spécifiques sur des outils d'éditeurs implémentant les différents contrôles de sécurité déjà cités dans l'article.

    Une excellente source d'identification de ces outils d'éditeur, peut être consultée dans "Tableau périodique du DevOps" mis en place par l'entreprise Digital ai, initialement XebiaLabs.

    RETOUR AUX ARTICLES
    • Accueil
    • Contact: 01.76.36.19.55
    • Se connecter
  • 30, Avenue Carnot 91300 Massy, propriété de la société Cost Solutions @www.cost-solutions.com"