Retour
25 oct. 2024
Améliorer la sécurité du pipeline CI/CD avec le renforcement, l'audit réseau et la confiance zéro
Frank Lyonnet
Dans le développement logiciel moderne, les pipelines d'Intégration Continue et de Déploiement Continu (CI/CD) sont la colonne vertébrale d'une livraison rapide et fiable de logiciels. Cependant, ils sont également devenus des cibles privilégiées pour des menaces cybernétiques sophistiquées, y compris l'injection de code et l'exfiltration de secrets. Comprendre ces risques et mettre en œuvre des stratégies de durcissement robustes est crucial pour maintenir l'intégrité de votre chaîne d'approvisionnement logiciel.
Comprendre les Risques dans les Pipelines CI/CD
Attaques par Injection de Code
Scénario : Les attaquants exploitent les vulnérabilités dans votre pipeline pour injecter du code malveillant. Cela peut se produire par le biais de dépendances compromises ou d'actions vulnérables.
Impact :
Déploiement d'Applications Compromise : Le code malveillant devient une partie de votre logiciel de production, introduisant potentiellement des portes dérobées ou des fuites de données.
Dommage à la Réputation : Les utilisateurs perdent confiance dans votre logiciel en raison des violations de sécurité.
Exfiltration de Secrets
Scénario : Les pipelines CI/CD gèrent souvent des informations sensibles telles que des clés API, des certificats et des identifiants. Les attaquants peuvent tenter d'exfiltrer ces secrets en les interceptant pendant le processus de construction ou par des scripts malveillants.
Impact :
Accès Non Autorisé : Les secrets compromis peuvent donner aux attaquants un accès à des infrastructures critiques.
Fuites de Données : Exposition de données confidentielles d'utilisateur ou d'entreprise.
Durcissement du Pipeline CI/CD
Pour atténuer ces risques, une stratégie de durcissement complète doit être appliquée à tous les composants de l'environnement CI/CD, en particulier aux runners de construction.
L'Importance du Durcissement du Système d'Exploitation
Le durcissement du système d'exploitation (OS) sécurise les systèmes en réduisant les vulnérabilités grâce à la désactivation des logiciels et services inutiles, et à la configuration des paramètres de sécurité. Dans les pipelines CI/CD, les runners exécutent des workflows et ont accès à des actifs sensibles tels que le code source et les identifiants, ce qui les rend critiques à sécuriser.
Pratiques Clés de Durcissement de l'OS :
Désactiver les Services Inutiles
Mettre à Jour et Corriger Régulièrement les Systèmes
Configurer les Pare-feux et les Paramètres Réseau
Exemple : Désactiver RDP sur les Runners Windows
Remote Desktop Protocol (RDP) permet des connexions à distance aux ordinateurs mais pose des risques de sécurité s'il est activé sur des runners CI/CD. Il est activé par défaut même sur les runners GitHub standard…
Risques Associés à RDP :
Accès Non Autorisé : Les attaquants exploitent les vulnérabilités ou utilisent des attaques par force brute.
Déplacement Latéral : Les attaquants se déplacent vers d'autres systèmes au sein du réseau.
Exfiltration de Données : Accès au code et aux secrets sur le runner.
Assurer une Segmentation Réseau Appropriée
Isoler les Runners : Placer les runners dans des segments de réseau sécurisés avec des contrôles d'accès stricts.
Limiter la Connectivité : N'autoriser que les connexions entrantes et sortantes nécessaires.
Introduction de edamame_posture_action
Le edamame_posture_action
est une Action GitHub conçue pour améliorer la sécurité de vos pipelines CI/CD grâce à un durcissement et un monitoring rigoureux.
Fonctionnalités Clés
Intégration Zero Trust : S'aligne avec les principes du Zero Trust, garantissant une vérification continue de la posture de sécurité.
Durcissement Automatisé : Applique des politiques de sécurité en désactivant les services inutiles et en configurant des paramètres sécurisés.
Validation de la Segmentation Réseau : Vérifie que les runners sont configurés avec une isolation réseau appropriée.
Capture Complet de Trafic : Capture tous les paquets réseau entrant et sortant du runner GitHub.
Trails d'Audit Detaillés : Fournit des journaux au format Zeek pour une analyse approfondie du réseau
Scénarios de Menace du Monde Réel
Exemple 1 : Injection de Dépendance Malveillante
Une bibliothèque open-source utilisée dans votre projet est compromise. L'attaquant introduit un code malveillant qui, lorsqu'il est construit dans votre pipeline CI/CD, infecte votre application.
Atténuation avec edamame_posture_action :
Analyse du Trafic : Détecte des connexions sortantes inhabituelles initiées par le pipeline compromis pendant la construction.
Exemple 2 : Exfiltration de Secrets via des Scripts Malveillants
Un initié ou un attaquant externe injecte un script dans le pipeline qui tente d'envoyer des variables d'environnement à un serveur externe.
Atténuation avec edamame_posture_action :
Capture de Paquets : Enregistre toutes les requêtes sortantes, y compris les tentatives d'exfiltration de données.
Analyse Zeek : Facilite la détection d'anomalies, y compris l'exfiltration de données basée sur DNS.
Intégration de edamame_posture_action dans Votre Workflow
Pour tirer parti des capacités de edamame_posture_action
, intégrez-le dans votre workflow d'Actions GitHub :
Options de Configuration
network_scan : Active le scan de l'environnement réseau du runner pour détecter des appareils ou des connexions non autorisés.
auto_remediate : Applique automatiquement des corrections aux problèmes de sécurité identifiés.
dump_sessions_log : Une étape de post-traitement qui fournit des journaux de session complets à des fins d'audit et de conformité.
Alignement avec les Principes du Zero Trust
L'action fait partie de l'approche plus large d'EDAMAME en matière de Zero Trust dans le cycle de vie du développement logiciel (SDLC). Elle garantit que :
Cet Appareil Est Vérifié : Tous les appareils interagissant avec des dépôts de code sont évalués pour leur conformité aux politiques de sécurité.
Surveillance Continue : La posture de sécurité est surveillée en permanence, et toute déviation déclenche des alertes ou des remédiations automatiques.
La Productivité des Développeurs Est Maintenue : Les améliorations de sécurité sont mises en œuvre sans entraver le processus de développement.
Conclusion
Sécuriser les pipelines CI/CD nécessite une approche multifacette qui aborde à la fois les aspects technologiques et orientés processus du développement logiciel. Le edamame_posture_action
fournit un outil puissant aux spécialistes visant à améliorer la sécurité de leur pipeline grâce à :
Durcissement Automatisé : Applique les meilleures pratiques sans intervention manuelle.
Surveillance Complète : Visibilité totale sur les activités réseau au sein de l'environnement du runner.
Atténuation des Risques : Crée un suivi des tentatives d'injection de code et d'exfiltration de secrets.
En intégrant de tels outils et en adhérant aux principes du Zero Trust, les organisations peuvent considérablement réduire leur exposition aux attaques de la chaîne d'approvisionnement et protéger l'intégrité de leurs processus de livraison de logiciels.
Frank Lyonnet
Partagez ce post