đ”ïž Un rappel des faits (ou lâart de la rĂ©pĂ©tition)
Depuis plus dâun an, les attaques contre la supply chain NPM sont devenues un sport de compĂ©tition internationale. Chaque semaine (ou presque), on dĂ©couvre :
- des packages piégés publiés par des pseudo-contributeurs,
- des typosquats (vous tapezÂ
expresss au lieu deÂexpress, et bam, un malware en cadeau), - des packages dĂ©tournĂ©s suite au vol de comptes mainteneurs,
- et bien sĂ»r, les scripts post-install qui exĂ©cutent des charges malicieuses direct chez vous, sans mĂȘme vous demander si vous avez envie de participer au bingo des ransomwares.
Pendant ce temps, GitHub (propriĂ©taire de NPM depuis 2020) sâest contentĂ© de coller des rustines, comme un mĂ©cano qui met du scotch sur un rĂ©acteur dâavion en plein vol. RĂ©sultat : une Ă©rosion massive de confiance dans lâĂ©cosystĂšme JavaScript, dĂ©jĂ bien connu pour sa dĂ©pendance pathologique Ă des modules de trois lignes de code maintenus par des Ă©tudiants insomniaques.
Retour sur les problĂšmes NPM
đ„ Les attaques marquantes (chronologie du chaos)
Petit best of, juste pour se remémorer le feuilleton :
- 2021 : EventStream â Le package open source est compromis pour miner des cryptos. Bien avant le rachat par GitHub, mais le signal Ă©tait clair : âHouston, on a un problĂšme.â
- 2022 : ua-parser-js â 7 millions de tĂ©lĂ©chargements/semaine, infiltrĂ© par un malware qui installe un voleur de mots de passe. Ambiance garantie.
- 2023 : packageÂ
colors etÂfaker.js â Le mainteneur dĂ©cide de âtrollerâ et casse dĂ©libĂ©rĂ©ment son propre code. MoralitĂ© : la supply chain nâa pas besoin dâattaquants, parfois ce sont les devs eux-mĂȘmes qui sabotent. - 2024 : XZ Utils â Pas NPM, mais un coup de maĂźtre de supply chain qui a traumatisĂ© tout le monde. Depuis, les attaquants savent que la patience paie.
- 2025 : Typosquats et comptes volés à répétition. Chaque semaine, des malwares passent entre les mailles et infectent des milliers de projets. Oui, chaque semaine.
đĄïž Les mesures annoncĂ©es (mieux vaut tard que jamais ?)
GitHub sort enfin de son sommeil avec trois annonces phares :
- Publication locale obligatoire avec 2FA â Finies les publications sauvages avec juste un mot de passe. On impose une double authentification. (Applaudissements en fond de salle, mais on aurait aimĂ© ça en 2022).
- Tokens granulaires avec expiration de 7 jours â TerminĂ© le âtoken Ă vieâ qui traĂźne sur un vieux laptop oubliĂ©. DĂ©sormais, ça sâautodĂ©truit. (Oui, comme Snapchat, sauf que lĂ câest sĂ©rieux).
- Trusted publishing â Des mĂ©canismes pour lier directement la CI/CD au registre, sans intermĂ©diaire foireux. On serre les vis sur la chaĂźne.
Soyons clairs : ces mesures vont dans le bon sens. Mais pourquoi avoir attendu des mois de carnage médiatique et des tonnes de projets compromis pour les mettre en place ?
đ€Ą Le malaise persistant
Le vrai problĂšme reste la culture du âpublish fast, break thingsâ dans lâĂ©cosystĂšme JavaScript. Quelques chiffres pour mesurer lâampleur du dĂ©sastre :
- Plus de 2,5 millions de packages sur NPM.
- Une dépendance moyenne de plus de 1 000 packages dans une seule app web moderne.
- Des mainteneurs bénévoles (souvent fatigués et sous-payés) qui se retrouvent en premiÚre ligne face à des groupes APT.
RĂ©sultat ? Les DSI doivent aujourdâhui considĂ©rer NPM comme un territoire minĂ©. On ne parle plus dâopen source mais de roulette russe logicielle.
đ§© Et maintenant ?
GitHub a beau annoncer des rĂ©formes, lâĂ©cosystĂšme a dĂ©jĂ montrĂ© sa fragilitĂ©. Les prochaines Ă©tapes devraient inclure :
- Scanning proactif et obligatoire des packages avant publication, pas aprÚs coup.
- Audit de code automatisé renforcé (type sigstore + vérification cryptographique des builds).
- Soutien financier aux mainteneurs critiques, parce que la sécurité ne peut pas reposer uniquement sur la bonne volonté.
Sinon, on continuera de dĂ©couvrir chaque lundi matin le nouveau package piĂ©gĂ© du week-end, comme un Ă©pisode dâune sĂ©rie Netflix sans fin.
⥠Conclusion
GitHub a enfin dĂ©cidĂ© dâagir, mais soyons honnĂȘtes : la maison brĂ»le depuis longtemps. Ces annonces ressemblent Ă un pompier qui arrive aprĂšs lâincendie, lâextincteur Ă la main, fier de dire âregardez, jâai de la mousseâ.
La morale ? Tant que les dĂ©veloppeurs continueront Ă installer des dĂ©pendances comme on collectionne des stickers Panini, et tant que GitHub ne traitera pas la sĂ©curitĂ© comme une prioritĂ© absolue plutĂŽt quâun correctif de derniĂšre minute, les attaques sur la supply chain NPM resteront notre pain quotidien.
Et vous, chers devs, la prochaine fois que vous tapez npm install, souvenez-vous : câest peut-ĂȘtre la commande la plus risquĂ©e de toute votre journĂ©e.
