Source: filippo.io (Filippo Valsorda). L’auteur analyse les compromissions de la chaîne d’approvisionnement open source sur 2024/2025, en recensant des cas concrets et en les classant par causes racines afin d’identifier des mitigations actionnables pour les mainteneurs.

Principales causes identifiées: phishing (le vecteur le plus fréquent, y compris contre 2FA TOTP), control handoff (transfert d’accès/contrôle à un acteur malveillant), et déclencheurs GitHub Actions privilégiés comme pull_request_target et certains issue_comment conduisant à des injections shell. Les jetons à longue durée de vie (exfiltration et réutilisation), l’usurpation de Dependabot, la résurrection de domaines/identifiants, et des facteurs aggravants (tags d’Actions mutables, scripts post-install npm, permissions CI en écriture, artefacts non reproductibles, configuration CI par branche) reviennent régulièrement.

Cas marquants cités:

  • XZ Utils: pression prolongée sur un mainteneur menant à un control handoff (artefacts non reproductibles comme facteur aggravant).
  • Nx S1ingularity / Ultralytics / Kong Ingress Controller: exploitation de pull_request_target avec injection shell, permissions CI excessives, empoisonnement du cache Actions, et exfiltration de PAT/tokens.
  • Shai-Hulud: propagation via jetons npm compromis (scripts post-install malveillants) et workflows GitHub malveillants.
  • polyfill.io / MavenGate: prise de contrôle via rachat de domaine/org ou résurrection de nom (domaines expirés, changements d’identifiants GitHub).
  • npm debug/chalk/color, eslint-config-prettier, num2words, @solana/web3.js, rustfoundation.dev: multiples campagnes de phishing (mails “vérification/2FA”).

Mitigations mises en avant:

  • Authentification résistante au phishing (passkeys/WebAuthn) sur tous les comptes développeurs et amont; éviter de recourir à TOTP en pratique si un facteur résistant est activé.
  • Éviter pull_request_target et autres triggers privilégiés avec contexte contrôlé par un attaquant; préférer des approches réduisant l’interpolation YAML et l’injection (p. ex. code dédié) et limiter les permissions CI.
  • Réduire l’usage de jetons longue durée: publication de confiance (OIDC) pour les registres, alternatives aux PAT quand possible; prudence sur les fonctionnalités nécessitant des jetons puissants.
  • Pinning immuable pour GitHub Actions (commit hashes) et gestion de versions conservatrice (p. ex. npm ci), et vigilance sur les branches anciennes.

IOCs et TTPs:

  • IOCs: aucun indicateur technique (hash, domaine, IP) fourni.
  • TTPs: phishing d’identifiants/2FA, injection shell dans GitHub Actions, exfiltration de jetons (PAT, npm, PyPI, GitHub), empoisonnement du cache GitHub Actions, usurpation de Dependabot, scripts npm post-install, résurrection de domaines/utilisateurs, tags mutables d’Actions, artefacts non reproductibles.

Conclusion: article de synthèse visant à classifier les vecteurs dominants des compromissions de la chaîne d’approvisionnement open source en 2024/2025 et à proposer des mitigations priorisées pour les mainteneurs.


🔗 Source originale : https://words.filippo.io/compromise-survey/

🖴 Archive : https://web.archive.org/web/20251011133413/https://words.filippo.io/compromise-survey/