Défis et considérations relatifs à la sécurité DevOps
L'introduction de la méthodologie Infrastructure-as-Code (IaC) a obligé les organisations à s'adapter rapidement et à implémenter de nouveaux processus pour l'exploitation, le développement et la maintenance des applications dans différents environnements, tels que sur site et multicloud. Toute augmentation du nombre de processus et du rythme peut entraîner des lacunes en matière de sécurité. Par conséquent, les processus ont été affinés au fil du temps pour implémenter des cycles de déploiement et de lancement de produits plus efficaces et plus sécurisés. Les nouveaux processus de sécurité intégrés à la méthodologie IaC sont appelés DevSecOps.
Utilisez le service Oracle Cloud Infrastructure (OCI) DevOps pour atteindre vos objectifs DevOps.
Le service OCI DevOps est une plate-forme complète d'intégration continue et de déploiement continu qui simplifie et automatise le cycle de vie du développement logiciel. Le service DevOps permet de collaborer lors du développement, de la création, du test et du déploiement de logiciels. Vous bénéficiez d'une visibilité sur l'ensemble du cycle de développement et d'un historique des validations source via des phases de création, de test et de déploiement.
Au cours du processus de définition DevSecOps, vous devez analyser les composants du pipeline d'intégration continue et de déploiement continu de votre processus de déploiement pour renforcer les défenses de sécurité. Etudiez également comment améliorer le code source et protéger les référentiels de code.
Fonctionnement et utilité de DevSecOps
Les objectifs de la méthodologie DevOps ont toujours été d'accroître l'efficacité et d'accélérer la mise en production des applications déployées. Les objectifs de DevSecOps sont identiques à ceux de DevOps, à quoi s'ajoute la sécurisation de tous les composants utilisés dans les divers processus de déploiement.
DevSecOps est une responsabilité partagée par tous les intervenants, y compris le fournisseur de cloud, les ingénieurs DevOps, les ingénieurs de test, les propriétaires d'application et les analystes de sécurité. Vous devez trouver le bon équilibre pour conserver rapidité et réactivité pendant tout le cycle de vie du logiciel tout en maintenant un niveau de sécurité approprié de bout en bout.
Le modèle de maturité DevSecOps (DSOMM) définit des mesures de sécurité appliquées lors de l'utilisation des stratégies DevOps et indique comment les hiérarchiser pour améliorer la sécurité. Par exemple, utilisez le modèle afin de déterminer comment tester chaque composant, tel que les bibliothèques d'applications et les bibliothèques de système d'exploitation dans les images Docker, pour détecter des vulnérabilités connues.
Application de DevSecOps dans OCI
Les informations suivantes décrivent le workflow DevSecOps standard qui tire parti des fonctionnalités OCI.
-
Un développeur crée du code dans un référentiel (par exemple, dans le service DevOps avec policies/permission et des référentiels de code tiers tels que GitHub et GitLab). Pour effectuer une intégration à des référentiels de code tiers comme GitHub et GitLab, créez un jeton d'accès personnel dans GitHub ou GitLab, puis stockez le jeton dans un coffre OCI.
-
Les modifications sont validées dans l'outil d'intégration continue et de déploiement continu en vue de la création.
-
L'outil d'intégration continue et de déploiement continu peut effectuer l'une des opérations suivantes :
- Il peut appeler un outil tiers (tel que Sonatype, SonarQube ou OverOps) afin d'analyser le code statique et dynamique pour identifier tout bug ou faille de sécurité dans le code.
- Il propage l'image de conteneur nouvellement créée vers un référentiel Oracle Cloud Infrastructure Registry dont la fonction d'analyse est activée. L'outil d'intégration continue et de déploiement continu obtient alors les résultats de l'analyse d'image à l'aide de l'API REST Vulnerability Scanning. En fonction des résultats de l'analyse d'image, l'outil d'intégration continue et de déploiement continu détermine si l'image doit passer à la phase suivante du cycle de vie.
-
Si l'analyse de code ou d'image est concluante, des tests automatisés sont effectués, relatifs à la sécurité, l'intégration d'API et l'interface utilisateur par exemple.
-
Une fois que l'application et le code ont réussi ces tests, la meilleure pratique du pipeline de déploiement consiste à ajouter une phase de contrôle d'approbation. La phase d'approbation suspend le déploiement pour une période donnée. Un approbateur est alors informé des déploiements, puis procède à une approbation manuelle.
-
Une fois le pipeline de déploiement approuvé, l'application et le code sont déployés vers les plates-formes OCI de l'environnement de production, qui incluent des instances Compute (machine virtuelle et Bare Metal), des clusters Container Engine for Kubernetes (clusters Kubernetes gérés) et OCI Functions (fonctions sans serveur).
-
L'environnement dans lequel l'application est déployée doit être surveillé en permanence pour identifier les problèmes de sécurité. En outre, effectuez la surveillance classique des mesures et des journaux de service à l'aide de services OCI comme Application Performance Monitoring (APM), Logging et Monitoring. Configurez des systèmes de surveillance pour réagir rapidement aux menaces de sécurité à l'aide de fonctions OCI natives, telles que Notifications. Vous pouvez également intégrer des journaux comportant des systèmes de tickets (par exemple, ServiceNow) ou des systèmes SIEM tiers.
Meilleures pratiques pour DevSecOps
Nous recommandons les meilleures pratiques suivantes pour DevSecOps.
-
Appliquez la stratégie et la gouvernance.
Pour aboutir, un processus DevSecOps doit respecter et implémenter une gouvernance forte axée sur des fonctions de sécurité, comme Identity and Access Management (IAM) et la gestion des accès avec privilèges (PAM, Privileged Access Management). Il doit également définir des rôles pour le modèle DevSecOps, donner accès à une formation appropriée et tenir compte des dernières techniques de sécurité.
-
Automatisez les processus et outils de sécurité DevOps.
Utilisez l'automatisation dans votre processus DevOps pour réduire les risques liés aux erreurs humaines et aux incidents de sécurité. L'utilisation d'une automatisation et d'outils plus efficaces accélère les processus de sécurité DevOps et améliore la résilience des applications. OCI fournit des outils de sécurité pour l'analyse du code, la gestion de la configuration, l'application des patches et la gestion des vulnérabilités avec OS Management et Oracle Vulnerability Scanning Service. La gestion des informations d'identification et des clés secrètes avec privilèges est assurée par Vault.
-
Effectuez un repérage complet.
Conformément à votre stratégie de sécurité, validez, surveillez et intégrez en permanence tous les appareils, outils et comptes. Ce processus permet d'harmoniser vos ressources OCI et d'adopter un modèle de sécurité "confiance zéro".
-
Gérez les vulnérabilités.
Tous les types de vulnérabilité doivent être pris en compte, catalogués, validés et corrigés avant la mise en production des applications déployées. Nous vous recommandons d'intégrer la directive DevSecOps OWASP aux tests de sécurité DevSecOps.
-
Sécurisez l'accès grâce à la gestion des clés secrètes DevOps.
Lorsque vous implémentez des processus DevOps, hiérarchisez la gestion de la sécurité et du cycle de vie des informations d'identification et des comptes d'identité dans le code. Vault peut vous aider à gérer les clés secrètes.
-
Contrôlez, surveillez et auditez l'accès grâce à la gestion des accès avec privilèges.
L'adoption de services OCI comme IAM, les stratégies IAM DevOps, Logging et Monitoring peut vous aider à gérer les accès avec privilèges.
-
Segmentez les réseaux.
Lorsque vous définissez des processus DevOps, vous devez segmenter les réseaux pour réduire les surfaces d'exposition aux attaques tout en isolant les différents environnements de travail (environnements de production et de développement/test par exemple).
Pour plus d'informations, reportez-vous à la zone de renvoi en libre-service conforme aux références CIS pour Oracle Cloud.
En savoir plus
Pour plus d'informations, reportez-vous aux ressources suivantes :