Aujourd’hui, les exigences de qualité et de rapidité de lancement pour les applications ont contribué à populariser la culture DevOps. Le marché progresse en effet à un taux de croissance annuel composé (TCAC) de 27,6 % depuis 2019 et devrait excéder 20 milliards de dollars en valeur d’ici 2026. Le processus de test et de développement continu comporte cependant des lacunes sur le plan de la sécurité, exposant le processus à des interférences et à des compromissions. Cet article explore les grands principes DevOps et DevSecOps, met en lumière les difficultés propres aux environnements DevOps et à la mise en œuvre DevSecOps, tout en soulignant les avantages de ces approches.
Au sommaire de cet article :
• Tour d’horizon du DevOps
• Sécurité : les lacunes de l’approche DevOps
• Qu’est-ce que le DevSecOps et pourquoi est-ce important ?
• Les principales différences entre DevOps et DevSecOps
• Les briques de la sécurité DevSecOps
• DevSecOps : les difficultés de mise en œuvre
• Les avantages du DevSecOps
• Le rôle de la PKI dans le DevSecOps
Tour d’horizon du DevOps
Le DevOps, qui est l’abréviation de Development Operations ou « opérations de développement », désigne le processus collaboratif utilisé pour créer, développer et déployer de nouvelles applications logicielles. Le cycle de vie DevOps comprend de nombreuses parties en mouvement, avec plusieurs équipes qui développent et vérifient [le code] à chaque étape du pipeline.
Dans un cycle de développement classique, les phases de création, de tests et de distribution sont réalisées en ordre séquentiel par les équipes de développement. Avec l’émergence des philosophies et des pratiques liées au cycle de vie DevOps, l’approche a évolué pour devenir un processus continu où les tests et l’application de correctifs s’enchaînent. L’ensemble a été intégré dans les phases de construction et de publication. Dans des modèles plus récents, on note une optimisation continue des applications.
Sécurité : les lacunes de l’approche DevOps
Quels sont donc les défis de sécurité auxquels les équipes DevOps sont confrontées ?
- Vulnérabilités des conteneurs — Isolés de la dimension opérationnelle du DevOps, les environnements conteneurisés présentent des avantages en termes de sécurité par rapport aux environnements DevOps. Cependant, leur déploiement dans le cloud, la présence de parties mouvantes et l’utilisation de registres de conteneurs non sécurisés peuvent générer des risques.
- Sécurité du cloud — L’utilisation du cloud pour les machines virtuelles et les environnements conteneurisés peut représenter des risques de sécurité importants, car les communications au service cloud s’effectuent via l’internet public. Les API publiques et les erreurs de configuration dans le cloud accroissent la menace pour les équipes DevOps qui utilisent le cloud pour sécuriser leurs conteneurs.
- Rapidité — Si la rapidité est cruciale pour les équipes de développement afin de respecter les délais de conception et de déploiement des applications, cela accroît également les risques de passer à côté de certaines vulnérabilités de sécurité. Dans les environnements DevOps, les équipes sont souvent inconsciemment contraintes de faire des compromis entre la sécurité, et la rapidité et l’efficacité.
- Écart de compétences — Un écart de compétence persiste entre les ingénieurs DevOps et les experts en cybersécurité. Selon une enquête Gartner, 38 % des personnes interrogées déclaraient ne pas avoir reçu de formation adéquate au DevSecOps, et 60 % jugeaient cette approche techniquement difficile à mettre en œuvre. Alors que les ingénieurs DevOps concentrent leurs efforts sur la mise en œuvre rapide et agile du logiciel, les experts en sécurité dans l’équipe DevOps veillent à garantir la sécurité des logiciels et de l’environnement. Ces différences peuvent provoquer des retards et des problèmes de collaboration au sein de l’équipe DevOps.
Découvrez comment protéger vos pipelines DevOps avec la PKI
Qu’est-ce que le DevSecOps et pourquoi est-ce important ?
Le DevSecOps combine plusieurs processus et approches qui intègrent la sécurité en toute transparence au pipeline DevOps. L’approche repose sur des tests réguliers, des contrôles de vulnérabilité, des audits et une gestion proactive des risques. Le DevSecOps met l’accent sur la sécurité et son adoption est en progression, soutenue par les approches nouvelles et les changements culturels qui intègrent la sécurité au DevOps. Selon une étude Gartner en 2022, 36 % des personnes interrogées ont mis en œuvre une approche DevSecOps, alors qu’elles n’étaient que 27 % en 2020. Autre point notable : parmi les personnes qui n’avaient pas mis en œuvre tous les principes du DevSecOps, 96 % avaient toutefois intégré une partie de ses fondements, tels que l’automatisation des opérations de sécurité et de conformité.
Les principales différences entre DevOps et DevSecOps
La différence fondamentale entre DevOps et DevSecOps réside dans l’importance que le DevSecOps porte à la sécurité. Les deux approches reposent sur un socle commun axé sur une intégration transparente et sur l’aspect collaboratif, le DevSecOps mettant cependant davantage la priorité sur la sécurité.
Tout comme le DevOps inclut des tests à chaque étape du développement, du déploiement et de la surveillance, le DevSecOps intègre les contrôles de sécurité à chaque étape du cycle de vie DevOps. Le DevSecOps fonctionne également avec un pipeline d’intégration et de développement continus (CI/CD) — les pratiques de sécurité étant appliquées tout au long du processus de développement, plutôt qu’à la fin, comme c’est le cas dans les environnements DevOps. La démarche comprend des contrôles de sécurité, la gestion des actifs et des audits réguliers.
De nombreux environnements DevSecOps pratiquent aussi des tests d’intrusion, également connus sous le nom de « pen testing » ou « hacking éthique ». Ces tests simulent des cyberattaques ou une intrusion afin de tester le niveau de sécurité et d’identifier les vulnérabilités au sein de l’infrastructure, du code et du réseau.
Les briques de la sécurité DevSecOps
- Surveillance continue de la sécurité : C’est la fonction principale d’un environnement DevSecOps. Il s’agit de s’assurer que les risques pour la sécurité sont contrôlés à chaque étape à l’aide de tests, d’évaluations des risques, et par le biais de procédures de gestion des actifs.
- Sécurisation des pipelines CI/CD : Le pipeline d’intégration et de développement continus ou « CI/CD » (Continuous Integration/Continuous Development) réunit deux pratiques DevOps qui fonctionnent ensemble pour automatiser la création, les tests et le déploiement des applications. L’intégration et la livraison continues créent un pipeline ininterrompu du début à la fin. La livraison et les mises à jour de nouvelles fonctionnalités s’effectuent plus facilement et plus rapidement, contribuant à améliorer l’efficacité de l’environnement DevOps.
- Sécurité de l’infrastructure en tant que code (IaC) : L’infrastructure en tant que code automatise la configuration de l’infrastructure de développement par le code. En d’autres termes, il n’est plus nécessaire de reconfigurer ou de mettre à jour manuellement la gestion des systèmes, des serveurs, des applications, des appareils et d’autres outils à chaque étape du développement. De plus, l’environnement reste identique chaque fois qu’une infrastructure de développement est déployée. Dans la mesure où il n’est pas recréé manuellement, cela diminue le nombre de points d’accès potentiellement exploitables par des cybermalfaiteurs et uniformise la configuration de l’environnement.
- Tests de sécurité des applications (AST) : Il existe différents types de tests de sécurité des applications. On a ainsi les tests dynamiques de sécurité des applications (DAST, Dynamic Application Security Testing), les tests statiques de sécurité des applications (SAST, Static Application Security Testing), les tests interactifs de sécurité des applications (IAST, Interactive Application Security Testing) et l’autoprotection des applications en cours d’exécution (RASP, Runtime Application Self-Protection). Ces types de tests sont intégrés à différents stades du développement afin d’identifier les failles de sécurité dans l’environnement et dans le code, de surveiller les performances de l’application et de collecter des données dans le but de détecter et de résoudre les problèmes de sécurité au fur et à mesure qu’ils surviennent.
- Modélisation des menaces et évaluation des risques : Ces deux processus sont utilisés pour détecter les vulnérabilités dans un environnement DevSecOps. Ils permettent d’évaluer et de classer les actifs ainsi que les mesures de sécurité pour identifier et localiser les points faibles. La modélisation des menaces va encore plus loin en identifiant les acteurs potentiels de la menace et en analysant les tactiques couramment employées. Objectif : déterminer quels actifs sont susceptibles d’être ciblés et comment ces menaces pourraient être mises en œuvre.
Combler la pénurie de compétences DevSecOps avec un accompagnement à la sécurité g
DevSecOps : les difficultés de mise en œuvre
La transition vers les modèles DevSecOps ne va pas sans poser certaines difficultés pour les équipes DevOps.
Au fur et à mesure que les pratiques DevOps et DevSecOps évoluent, les équipes doivent rester en permanence informées sur les nouvelles technologies et menaces… en plus de veiller au bon déroulement du processus de développement. Lorsque la sécurité DevOps est intégrée au pipeline de développement, des protocoles de sécurité distincts peuvent être requis selon les équipes. L’ajout d’une phase supplémentaire au cycle de vie [de développement] peut aussi engendrer des interruptions dans les processus de développement optimisés.
Mais ce n’est pas tout. La complexification des outils et des intégrations utilisés par les équipes introduit une couche de process supplémentaire qui doit être sécurisée et surveillée — avec le risque d’erreurs humaines ou d’exploitation par des individus malintentionnés. Or, tous les membres de l’équipe DevSecOps ne sont pas nécessairement des experts en sécurité. Si l’aspect « continu » du cycle de vie DevSecOps implique de faire de la sécurité une priorité à chaque étape du pipeline, les équipes DevSecOps doivent par conséquent monter en compétences. Pour pouvoir répondre de la sécurité, elles doivent aussi collaborer avec des experts en sécurité afin d’identifier et de résoudre les problèmes, mais aussi pour intégrer la sécurité au framework DevOps.
Le cycle de vie DevSecOps repose logiquement sur un pipeline en constante et rapide évolution pour mener à bien le développement et le déploiement des logiciels. Prioriser l’aspect « sécurité » de ce processus peut être compliqué. En effet, la conception, les tests et le déploiement rapide des applications logicielles peuvent être entravés par la sécurité. L’intégration de bonnes pratiques de sécurité introduisant souvent des étapes supplémentaires dans un processus déjà complexe.
Le succès du développement dépend souvent de l’incorporation de pratiques de sécurité visant à protéger les actifs et à prévenir des interruptions prolongées de la production. En août 2022 et en février 2023, LastPass, une entreprise spécialisée dans la gestion des mots de passe, a été victime de deux violations, entraînant un accès non autorisé à son coffre-fort qui renfermait des informations cruciales, des ressources basées sur le cloud et des sauvegardes de bases de données critiques. Ces incidents mettent en lumière la nécessité impérative d’une surveillance constante et de mises à jour régulières dans les environnements DevOps afin d’assurer une protection robuste des clés et des coffres-forts.
En savoir plus sur la sécurisation des secrets avec HashiCorp Vault
Chacun de ces éléments a des exigences de sécurité qui lui sont propres. Lorsqu’on intègre le DevSecOps aux environnements de développement de logiciels, le processus doit être le plus transparent possible pour garantir sa bonne intégration au pipeline de développement. L’automatisation de nombreux processus nécessaires à la sécurité DevOps permet de décharger les équipes DevOps et les experts en sécurité de la pression qu’ils ressentent fréquemment, tout en rehaussant le niveau de sécurité dans le pipeline de développement.
Les avantages du DevSecOps : un déplacement de la sécurité en amont du processus (shift-left)
Dans les environnements DevOps, les vulnérabilités peuvent être nombreuses. Vulnérabilités que les équipes DevOps et experts en sécurité peuvent avoir du mal à maîtriser, dans un contexte de menaces en pleine expansion. En priorisant la sécurité à chaque étape du développement, le DevSecOps apporte des réponses avec les avantages suivants :
- Amélioration de la sécurité des applications — En mettant en œuvre et en automatisant les processus de sécurité à chaque étape du développement, les vulnérabilités sont éliminées plus en amont dans le processus. Les « chances » de voir les problèmes surgir aux étapes ultérieures du développement et de l’exploitation sont moindres, ce qui permet de lancer des applications plus sûres. Selon une enquête de GitLab, 37 % des personnes interrogées ayant déclaré utiliser une plateforme DevSecOps citaient l’amélioration de la sécurité comme l’une des principales raisons ayant motivé sa mise en œuvre.
- Détection anticipée des vulnérabilités — Les tests continus offrent aux environnements DevSecOps la capacité d’identifier rapidement les problèmes au sein de leur infrastructure, réduisant ainsi les risques de violations, de pertes de travail ou de retards dans le pipeline. Cette efficacité est particulièrement notable avec les tests d’intrusion.
- Réponse plus rapide aux problèmes de sécurité — L’application et l’automatisation des pratiques de sécurité tout au long du pipeline permettent de réduire le nombre de ressources nécessaires en cas de problèmes. Grâce à la détection précoce, les problèmes sont détectés avant qu’ils ne provoquent des intrusions. En résumé : ils sont plus simples et plus rapides à résoudre, et monopolisent moins de ressources. 90 % des développeurs utilisant une plateforme DevSecOps estiment que leur organisation leur donne les moyens d’identifier et d’atténuer les failles de sécurité, alors qu’ils sont 68 % à avoir automatisé les tests ou prévoir de le faire au cours de l’année à venir.
- Amélioration de la conformité et de la gouvernance — La mise en œuvre de contrôles de sécurité à chaque étape du développement réduit les risques de non-conformité liés au déploiement et à la mise en service des applications, et les risques d’infraction.
Le rôle de la PKI dans le DevSecOps
L’infrastructure à clé publique (PKI) est le processus cryptographique qui permet de gérer les identités, et favorise les pratiques de sécurité DevOps grâce au déploiement de certificats numériques (SSL/TLS). Ce type de sécurité joue un rôle crucial pour les équipes DevSecOps qui s’appuient sur divers outils, comme la gestion sécurisée des clés, des tests de sécurité continus et des outils de détection rapide des vulnérabilités pour sécuriser leurs environnements et leurs actifs. Avec le décalage à gauche de la sécurité (le shift-left), les PKI ont le vent en poupe dans les environnements DevSecOps. 45 % des personnes interrogées dans le cadre d’une enquête HubSpot citaient la PKI comme un cas d’utilisation prioritaire cette année, contre 40 % en 2021. Quant au DevSecOps, il s’agit du cas d’utilisation qui connaît la croissance la plus rapide pour les PKI.
La sécurité basée sur la PKI intègre par ailleurs des solutions d’automatisation robustes sur lesquelles les équipes DevSecOps peuvent s’appuyer pour gérer la sécurité tout au long du cycle de développement. Dans les environnements DevSecOps, la PKI permet d’avoir une visibilité sur l’ensemble des certificats pour les contrôler de manière centralisée. L’accès est simplifié et le déploiement des certificats s’effectue en temps réel afin de sécuriser rapidement les environnements avec moins de ressources, et réduire les risques.
En savoir plus sur les avantages de la PKI
La PKI facilite aussi l’intégration de l’automatisation des processus DevSecOps. Les protocoles comme ACME contribuent à faciliter la tâche des équipes DevSecOps pour gérer la sécurité et les inventaires de certificats. Ils permettent également de supprimer le risque d’erreurs humaines lors de la gestion des certificats visant à protéger les actifs.
Dans un contexte d’expansion de la menace et de pénurie des compétences, l’automatisation de la sécurité PKI devient indispensable pour les équipes DevSecOps. Comparativement [à d’autres solutions], le coût d’une telle mise en œuvre est très raisonnable. Le DevSecOps décharge les équipes qui gèrent la sécurité des actifs et les clés en automatisant de nombreux processus de sécurité et en réduisant les besoins en ressources. L’automatisation favorise l’évolutivité, la visibilité, l’efficacité et la conformité dans tout votre pipeline DevSecOps. Retrouvez une sérénité d’esprit en confiant la gestion des certificats à GlobalSign !