Journal npm et badaboum

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
11
17
sept.
2025

Bon, l'heure est grave, npm est complètement pété. Globalement, des hackers ont pris le contrôle de pas mal de paquets npm et en profitent pour voler pleins de trucs.

un user/dev fait un npm update/install puis par le jeu des dépendances on se retrouve a download et exec un paquet compromis.

Y'a pas longtemps un pirate a installé des paquets pour voler des cryptomonnaies. Bon il a pas été très intelligent et il s'est vautré dans l'adresse de son wallet et il a gagné moins de 50€ j'ai lu.

Là, il y a le ver Shai Hulud qui se promène de repo en repo (plus de 450 repos touchés à cette heure)
https://jfrog.com/blog/shai-hulud-npm-supply-chain-attack-new-compromised-packages-detected/?

voilà, je ne sais pas quoi faire de cette info.

  • # Je me demande

    Posté par  (site web personnel) . Évalué à 6 (+4/-0).

    Ça fait quelques années maintenant que npm est une source de problèmes avec ses dépendances vérolées, mais je me demande : pourquoi n'avons nous pas le même problème avec d'autres dépôts de paquets ? Les dépôts Maven, ceux des distribs Linux, crates.io pour Rust, etc. Il y a quand même de nombreuses opportunités pour pourrir la vie des devs. Pourquoi cela n'arrive-t-il que sur npm ?

    • [^] # Re: Je me demande

      Posté par  (site web personnel, Mastodon) . Évalué à 6 (+4/-0).

      Je dirais que les autres gestionnaires de dépendances, du moins ceux que je connais (Maven, distributions Linux) :

      • Découpent leurs modules en un nombre moins stupidement énorme de paquets ;
      • Sont plus sérieux sur la sécurité de qui y met quoi ;
      • On un écosystème qui fait qu’on a moins tendance à prendre n’importe quoi en dépendance ;
      • Évitent les versions flottantes, donc les nouvelles versions (vérolées) ne sont pas téléchargée par défaut sans action de l’utilisateur sur les numéros de version.

      La connaissance libre : https://zestedesavoir.com

    • [^] # Re: Je me demande

      Posté par  (site web personnel) . Évalué à -10 (+0/-15). 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.

      • [^] # Re: Je me demande

        Posté par  . Évalué à 10 (+14/-0).

        J’ai demandé à mon cochon d’inde, voic sa réponse :

        Uiii, uiiiiii, uiiiiii, uiiiiii.

        Ça me semble important à partager ici car même si tout le lectorat de LinuxFr peut obtenir une réponse sans intérêt avec un LLM, tout le monde n’a pas un cochon d’inde à domicile.

        De rien.

        • [^] # Re: Je me demande

          Posté par  (site web personnel) . Évalué à 6 (+3/-0).

          Ton cochon d'Inde couine comme un cochon tout court on dirait. Le cri normal du cochon d'Inde ne serait-il pas plutôt « couille, couille, couille » ?

          • [^] # Re: Je me demande

            Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

            C'est plutôt un genre de gazouillis qui fait penser à des oiseaux. (oui c'est une réponse sérieuse)

            « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

        • [^] # Re: Je me demande

          Posté par  (site web personnel, Mastodon) . Évalué à 5 (+2/-0).

          Et on te remercie pour cette réponse pertinente.

          Faut maintenant mettre des gens sur la réponse de ton cochon d'inde pour la décrypter.

          « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

        • [^] # Re: Je me demande

          Posté par  . Évalué à 3 (+1/-0).

          La réponse du LLM est pourtant pertinente, je m'apprêtais à rédiger quelque chose du même style mais bien plus court et sorti tout droit de ma tête. Je m'auto-cite : « C'est comme les virus Windows vs Linux. Le web est énorme, la quantité de projets et de dev aussi, donc c'est juste plus rentable de cibler npm» . En fait il aurait dû se contenter d'une portion de la dernière phrase : « 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. »

          • [^] # Re: Je me demande

            Posté par  (site web personnel) . Évalué à 1 (+0/-1). Dernière modification le 17 septembre 2025 à 16:05.

            C'est bien pour cela que je l'ai copié en brute de décoffrage et éviter certains d'en refaire une sur ce LLM ou un autre.
            Après, je comprends que cela soit dérangeant et qu'elle n'a pas spécialement de valeur. Valeur dans le sens que n'importe qui auraient pu la faire de lui même.

            Mais honnêtement pour moi, elle a été pertinente.

            • [^] # Re: Je me demande

              Posté par  . Évalué à 5 (+2/-0).

              Mais honnêtement pour moi, elle a été pertinente.

              Il est hyper important d'avoir des endroits du web préservés des sorties de LLM, ça inclut Wikipédia, et divers forums d'aide comme celui-ci. Les LLM ne pourront plus progresser s'ils bootstrappent sur leurs propres sorties, donc merci de préserver des espaces dépollués.

              La consultation de LLM est devenue standard, à peu près autant qu'une recherche dans un moteur. Quand quelqu'un répond dans un forum STFW, il donne la bonne info : tu trouveras des réponses intéressantes sur Google. Tu peux faire pareil, indiquer qu'il suffit de demander à chatGPT pour avoir des réponses intéressantes à la question. Mais personne ne recopie les sorties de Google dans un forum, et de la même manière personne ne devrait utiliser des octets des disques de linuxfr pour y stocker les sorties d'un autre site, fussent-elles librement recopiables.

              • [^] # Re: Je me demande

                Posté par  (site web personnel) . Évalué à 5 (+2/-0).

                Il est hyper important d'avoir des endroits du web préservés des sorties de LLM, ça inclut Wikipédia, et divers forums d'aide comme celui-ci.

                Tout à fait d'accord, mais pas pour les mêmes raison. À mon avis, c'est important pour les humains qui les fréquentent. Tandis que :

                Les LLM ne pourront plus progresser s'ils bootstrappent sur leurs propres sorties

                Tant mieux ! Je serais ravi de voir le ramdam autour de l'IA éclater comme une bulle, le monde s'en porterait mieux.

              • [^] # Re: Je me demande

                Posté par  (site web personnel) . Évalué à 2 (+0/-0).

                Je comprends ton point de vue, merci de l'avoir exposé.
                Après si c'est une règle, elle était implicite et je ne l'ai jamais lu explicitement ici.

            • [^] # Re: Je me demande

              Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

              Ce que je n'arrive pas à comprendre c'est le besoin de demander à l'IA ce qu'on doit penser. Surtout si c'est en fait une idée qu'on a déjà.

              « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

      • [^] # Re: Je me demande

        Posté par  (site web personnel) . Évalué à 5 (+2/-0).

        J'ai demandé à mon androïde de compagnie Sara Bot :

        Les devs js codent comme des cochons depuis des années. Ils s'en battent les couilles de la sécurité et un node_modules de 42 Gio ne les choquent pas. De plus avec l'IA générative, on ne recrute plus que des débiles.
        Plutôt que de parler de ça, tu ne veux pas un massage thaïlandais en écoutant du Barry Whi…

        Heu merci Sara, ça ira comme ça.

        Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

  • # Shai-Hulud

    Posté par  (site web personnel) . Évalué à 4 (+1/-0).

    J'aime bien le nom du ver des sables.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.