En bref
Que s'est-il passé ?
En 2021, le chercheur Alex Birsan démontre la confusion de dépendances, une technique de substitution exploitant la résolution de noms de certains gestionnaires de paquets.
De nombreuses organisations utilisent des paquets internes dont les noms ne sont pas réservés sur les registres publics. En publiant sur le registre public des paquets de même nom avec une version supérieure, Birsan fait tirer automatiquement la version publique attaquante au lieu de l'interne.
Sans compte compromis ni paquet détourné, le code s'exécute chez des dizaines de grandes entreprises : une faille systémique de la consommation d'OSS. La technique a depuis engendré des milliers de paquets opportunistes sur npm et PyPI.
Router l'ingestion OSS via un proxy ou miroir interne à liste d'autorisation, réserver les noms internes sur les registres publics, épingler sources et versions, et garantir une résolution non ambiguë privilégiant l'interne.
Chronologie de l'attaque
Alex Birsan publie des paquets publics homonymes de paquets internes avec une version supérieure, exécutant son code chez des dizaines de grandes entreprises.
Comment l'attaquant a procédé
Cet incident met en jeu les vecteurs d'attaque suivants du catalogue SOCLE ; chacun renvoie à sa fiche, où l'on trouve les exigences qui le neutralisent :
La leçon à en tirer
Proxy/miroir interne avec allowlist ; réservation des noms internes ; résolution non ambiguë des sources.
Les exigences SOCLE qui auraient limité cet incident
Cet incident se rattache à 4 exigences du référentiel, par domaine. Les satisfaire n'aurait pas forcément tout empêché, mais aurait réduit la probabilité de l'attaque, limité son impact ou accéléré sa détection :