Aller au contenu
Sécurité medium

Intégration, build & pipeline CI : vecteurs d'attaque (SOCLE)

2 min de lecture

L'étape Intégration, build & pipeline CI de la chaîne logicielle regroupe 13 vecteurs d'attaque, ancrés dans SLSA (D)(E) · OWASP CICD-SEC · LOTP. Chaque vecteur décrit ce que vise l'attaquant et renvoie aux exigences SOCLE qui le neutralisent.

PPE direct (d-PPE)
PPE indirect (i-PPE)
PPE public

Techniques principales observées à cette étape : ce sont des approches alternatives, pas une séquence.

Vecteurs d'attaque

Les pastilles renvoient aux exigences SOCLE qui neutralisent chaque vecteur.

V-CI-1PPE direct (d-PPE)
Poisoned Pipeline Execution directe : l'attaquant modifie la définition du pipeline (fichier de CI) pour y injecter des commandes exécutées avec les privilèges du build. Le contrôle du fichier de workflow donne le contrôle de l'exécution.
V-CI-2PPE indirect (i-PPE)
Poisoned Pipeline Execution indirecte : l'injection passe par un fichier consommé par le pipeline (Makefile, script, configuration d'outil) plutôt que par le fichier de CI. Le résultat est identique : exécution de code attaquant dans le pipeline.
Ancré dansCICD-SEC-4, LOTP
V-CI-3PPE public
Un pipeline déclenché par une contribution publique exécute du code non fiable dans un contexte privilégié, exposant secrets et droits du projet. La surface vient de l'ouverture du pipeline aux contributions externes.
Ancré dansCICD-SEC-4
V-CI-4Empoisonnement de cache CI
Un attaquant écrit dans un cache partagé du CI (dépendances, couches d'image, artefacts intermédiaires) une charge réutilisée par d'autres builds. Le cache, supposé sûr, propage la compromission entre exécutions ou projets.
Ancré dansCICD-SEC-4
V-CI-5Extraction de jeton OIDC en mémoire
Pendant un job, l'attaquant lit en mémoire le jeton OIDC court ou les identifiants fédérés pour s'authentifier auprès de services en aval. L'éphémérité du jeton ne protège pas si le job lui-même est compromis.
V-CI-6Action tierce non épinglée
Une action ou un step tiers référencé par tag mutable (non épinglé par digest) est remplacé par une version malveillante, exécutée dans tous les pipelines qui l'utilisent. Le défaut d'épinglage transforme une dépendance CI en porte dérobée (cas tj-actions).
Ancré dansCICD-SEC-3
Exigences qui le neutralisent SOCLE-INT-GEN-8
V-CI-7Build depuis source / fork non officiel
Le build est lancé depuis une source ou un fork non officiel, produisant un artefact d'apparence légitime à partir de code non vérifié. L'origine du build n'est pas garantie sans provenance liant artefact et source.
Ancré dansSLSA (D), SLSA (E)
V-CI-8Runner auto-hébergé persistant
Un runner auto-hébergé non éphémère conserve un état entre jobs (fichiers, secrets, processus), permettant à un job compromis de piéger les suivants ou d'exfiltrer des données d'autres pipelines. La persistance du runner est l'angle mort.
V-CI-9Exposition du socket Docker
Le socket Docker monté dans un job donne un contrôle équivalent à root sur l'hôte : conteneurs privilégiés, accès au système de fichiers hôte. Une fonctionnalité de commodité devient une évasion.
Ancré dansCICD-SEC-7, LOTP
Exigences qui le neutralisent SOCLE-ORC-EXE-2
V-CI-10Évasion de conteneur (escape)
Un job exploite une mauvaise configuration ou une faille du runtime de conteneurs pour s'échapper vers l'hôte du runner et atteindre d'autres charges. Le cloisonnement supposé entre jobs est rompu.
V-CI-11Accès aux périphériques de l'hôte
Un conteneur de build accède aux périphériques ou capacités de l'hôte (montages, capabilities, hostPath) pour lire ou altérer des ressources hors de son périmètre. Les privilèges excessifs du conteneur ouvrent l'hôte.
Ancré dansCIS K8s
V-CI-12Compromission de la plateforme CI
La plateforme d'orchestration CI/CD elle-même (serveur, contrôleur, base de secrets) est compromise, donnant le contrôle de tous les pipelines, secrets et déploiements. C'est le vecteur de plus haut impact : il rend caducs les contrôles en aval.
Ancré dansCNCF Publishing, CICD-SEC-7
V-CI-13Service tiers du pipeline compromis
Un service externe intégré au pipeline (scanner, notificateur, déployeur SaaS) est compromis et abuse de son accès au CI, aux secrets ou au code. La confiance déléguée à une tierce partie devient un chemin d'attaque (cas Codecov).
Ancré dansCICD-SEC-8
Exigences qui le neutralisent SOCLE-ORC-GEN-6SOCLE-ORC-GEN-7

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn