• [^] # Re: Je me demande

    Posté par (site web personnel) . En réponse au journal npm et badaboum. Évalué à -10. Dernière modification le 17 septembre 2025 à 14:54.

    J'ai posé la question à Gemini :

    Bien que l'attaque "Shai-Hulud" ait spécifiquement ciblé npm, il est faux de dire que ce type d'attaque ne touche que les dépôts de packages JavaScript. Les attaques sur la chaîne d'approvisionnement logicielle, qui consistent à injecter du code malveillant dans des dépendances, affectent potentiellement tous les écosystèmes.

    Vulnérabilité et différences des écosystèmes

    Chaque gestionnaire de paquets a des caractéristiques qui peuvent le rendre plus ou moins vulnérable ou ciblé.

    npm (JavaScript): L'écosystème npm est l'un des plus grands au monde, avec des millions de packages et des milliards de téléchargements. Sa popularité, sa vitesse de développement rapide et sa culture de la micro-dépendance (utiliser de nombreux petits packages) en font une cible très attrayante pour les attaquants. Les packages sont souvent créés et maintenus par des contributeurs individuels, ce qui peut rendre leur sécurité plus difficile à vérifier.
    Maven (Java): L'écosystème Java/Maven est généralement perçu comme plus mature et plus stable. Les dépendances sont souvent gérées par des entreprises ou des communautés bien établies, et le processus de publication peut être plus formel et plus lent. La nature plus verbale et plus rigide du langage Java réduit également la "liberté" de ce qui peut être fait discrètement à l'exécution.

    Crates (Rust) et Go: Ces écosystèmes sont plus jeunes et de taille plus modeste que npm. Bien qu'ils ne soient pas à l'abri des attaques, leur plus petite taille et leur adoption moindre les rendent moins prioritaires pour les cybercriminels cherchant à maximiser leur impact.
    Facteurs favorisant les attaques sur npm

    Volume et taille du marché : Avec des millions de développeurs et d'entreprises utilisant npm, un attaquant peut atteindre un public très large. C'est un marché immense pour la distribution de logiciels malveillants.
    Culture de la dépendance transitive: Un projet JavaScript typique peut avoir des centaines, voire des milliers de dépendances (directes et indirectes). Un seul package compromis peut se propager dans un nombre impressionnant de projets en aval.

    Simplicité de publication: La publication d'un nouveau package npm est relativement simple, ce qui permet à des acteurs malveillants de créer rapidement de faux packages ou de prendre le contrôle de packages existants via des identifiants volés.
    Le phénomène de typosquatting : Les attaquants créent souvent des packages avec des noms très similaires à des packages populaires (par exemple, ajs au lieu de js). La culture de la micro-dépendance et la taille de l'écosystème facilitent l'insertion de ces packages malveillants, qui sont souvent inclus dans les dépendances d'autres projets sans vérification.

    En résumé, si les attaques de la chaîne d'approvisionnement sont une menace universelle, l'écosystème npm est particulièrement ciblé en raison de sa taille massive, de sa complexité et de ses processus de publication qui favorisent la propagation rapide des dépendances.