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 des 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 logicielle.
Comprendre les Risques dans les Pipelines CI/CD
Attaques par Injection de Code
Scénario : Les attaquants exploitent des 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 compromises : Le code malveillant devient partie intégrante de votre logiciel de production, introduisant potentiellement des portes dérobées ou des fuites de données.
Dommages à la réputation : Les utilisateurs perdent confiance dans votre logiciel en raison de 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 durant le processus de construction ou via des scripts malveillants.
Impact :
Accès non autorisé : Des secrets compromis peuvent accorder aux attaquants un accès à des infrastructures critiques.
Fuites de données : Exposition de données confidentielles des utilisateurs ou de l'entreprise.
Durcissement du Pipeline CI/CD
Pour atténuer ces risques, une stratégie de durcissement complète doit être employée sur tous les composants de l'environnement CI/CD, en particulier les 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 par la désactivation des logiciels et services non nécessaires, et en configurant les paramètres de sécurité. Dans les pipelines CI/CD, les runners exécutent des flux de travail 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 du Système d'Exploitation :
Désactiver les Services Non Nécessaires
Mettre à Jour et Patch Systèmes Régulièrement
Configurer les Pare-feux et Paramètres Réseau
Exemple : Désactivation de RDP sur les Runners Windows
Protocole de Bureau à Distance (RDP) permet des connexions à distance aux ordinateurs mais pose des risques de sécurité s'il est activé sur les 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 exploitant des vulnérabilités ou utilisant des attaques par force brute.
Mouvement Latéral : Les attaquants se déplaçant 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é : Autoriser uniquement 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 par un durcissement et un suivi rigoureux.
Fonctionnalités Clés
Intégration Zero Trust : S'aligne sur les principes de 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 non nécessaires 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 de Trafic Complète : Capture tous les paquets réseau entrant et sortant du runner GitHub.
Traçabilité Auditable Détailée : Fournit des journaux au format Zeek pour une analyse approfondie du réseau
Scénarios de Menace dans le Monde Réel
Exemple 1 : Injection Malveillante de Dépendance
Une bibliothèque open-source utilisée dans votre projet est compromise. L'attaquant introduit du code malveillant qui, lors de la construction 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 : Journalise toutes les requêtes sortantes, y compris les tentatives d'exfiltration de données.
Analyse Zeek : Facilite la détection des anomalies, y compris l'exfiltration de données basée sur des DNS
Intégration de edamame_posture_action dans Votre Flux de Travail
Pour tirer parti des capacités de edamame_posture_action
, intégrez-le dans votre flux de travail GitHub Actions :
Options de Configuration
network_scan : Active le scan de l'environnement réseau du runner pour les appareils ou connexions non autorisées.
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 pour des vérifications et des fins de conformité.
Alignement avec les Principes de Zero Trust
L'action fait partie de l’approche Zero Trust plus large d'EDAMAME pour le Cycle de Vie du Développement Logiciel (SDLC). Elle garantit que :
Chaque Appareil est Vérifié : Tous les appareils interagissant avec les dépôts de code sont évalués pour leur conformité avec les politiques de sécurité.
Surveillance Continue : La posture de sécurité est surveillée en continu, et toute déviation déclenche des alertes ou une remédiation automatique.
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
La sécurisation des 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 pour les spécialistes cherchant à renforcer 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éer une piste d'audit pour les tentatives d'injection de code et d'exfiltration de secrets.
En intégrant de tels outils et en adhérant aux principes de 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