Understanding npm Developers' Practices, Challenges, and Recommendations for Secure Package Development
Cette étude examine les perceptions, les pratiques et les défis en matière de sécurité de 75 développeurs de packages npm à travers une enquête utilisant des méthodes mixtes, révélant que bien que la sécurité soit une priorité, les développeurs sont confrontés à des obstacles importants tels que les contraintes de temps et les limites des outils, ce qui incite à recommander l'amélioration des outils de détection, de la documentation et de l'éducation afin de renforcer la fiabilité de l'écosystème.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez le monde du développement logiciel comme une ville immense et bouillonnante appelée Node City. Dans cette ville, presque chaque bâtiment (une application ou un site web) n'est pas construit à partir de rien, mais en assemblant des briques préfabriquées. Ces briques sont appelées paquets npm. Il y en a plus de 2 millions, et elles sont téléchargées des milliards de fois par mois.
Les personnes qui construisent, entretiennent et distribuent ces briques sont les développeurs npm. Ils sont les architectes et les gardiens de cette ville.
Ce document est comme une réunion de l'hôtel de ville où les chercheurs ont interrogé 75 de ces fabricants de briques : « À quel point pensez-vous que vos briques sont sûres ? Qu'est-ce qui vous empêche de dormir ? Et quels outils utilisez-vous pour garder la ville en sécurité ? »
Voici ce qu'ils ont trouvé, expliqué simplement :
1. Le paradoxe du « Je sais que c'est important, mais... »
Les développeurs sont tous d'accord : la sécurité est super importante. Ils s'en soucient profondément. Cependant, lorsqu'on leur a demandé d'évaluer la sécurité de leurs propres briques, la plupart leur ont attribué une note de « C+ » ou « B- ». Ils n'ont pas dit : « Mes briques sont parfaites ». Ils ont dit : « Elles sont correctes, mais pas géniales ».
- L'analogie : C'est comme un chef qui sait que la sécurité alimentaire est critique, mais qui admet : « Ma cuisine est propre, mais je ne suis pas sûr à 100 % de ne pas avoir laissé une minuscule poussière dans la soupe ». Ils valorisent la sécurité, mais ils savent que leur propre travail n'est pas sans faille.
2. Les grands monstres effrayants (Menaces)
Lorsqu'on leur a demandé ce qui les effrayait le plus, les développeurs ont désigné trois monstres principaux :
- Attaques de la chaîne d'approvisionnement (Supply Chain Attacks) : Imaginez un voleur qui se faufile dans l'entrepôt où les briques sont stockées et remplace une brique rouge sûre par une bombe. C'est la peur n°1.
- Vulnérabilités de dépendance : Votre brique peut être sûre, mais elle est collée à une autre brique qui présente une fissure. Si cette autre brique casse, la vôtre tombe aussi.
- Code malveillant : Quelqu'un qui place intentionnellement un piège à l'intérieur d'une brique.
3. Les outils : Le problème du « dossier Spam »
Les développeurs possèdent des outils pour vérifier la présence de ces monstres (comme npm audit ou Dependabot). Mais seulement 40 % d'entre eux sont satisfaits de ces outils.
- L'analogie : Imaginez que vous avez un détecteur de fumée dans votre cuisine. Il fonctionne très bien, mais il se déclenche chaque fois que vous grillez du pain ou que vous ouvrez une fenêtre. Après un certain temps, vous ressentez une fatigue liée aux alertes. Vous commencez à ignorer les bips parce que vous vous dites : « Oh, c'est encore le grille-pain ».
- Les développeurs ont déclaré que les outils crient « DANGER ! » trop souvent pour des choses qui ne sont pas réellement dangereuses (fausses alertes). Cela les fatigue et les rend moins enclins à écouter lorsqu'un vrai incendie se déclare.
4. Comment ils réparent les choses
Lorsqu'un développeur trouve une fissure dans sa brique, il agit généralement vite.
- Le processus : Il vérifie la gravité de la fissure, la répare et publie une nouvelle version immédiatement.
- La stratégie de « l'abandon » : Si une brique sur laquelle ils comptent est abandonnée (plus personne ne l'entretient) ou possède une fissure connue qui ne sera pas réparée, ils cessent de l'utiliser. C'est comme réaliser qu'un fournisseur a fait faillite, donc on change immédiatement de fournisseur.
5. Les obstacles (Pourquoi c'est difficile)
Pourquoi ne rendent-ils pas tout parfait ? Le plus grand obstacle est le Temps.
- L'analogie : Imaginez que vous construisez une maison pendant que quelqu'un vous tend constamment de nouveaux plans, vous demande de peindre les murs et vous dit de réparer le toit. Vous n'avez tout simplement pas assez d'heures dans la journée pour vérifier chaque clou pour la sécurité.
- D'autres obstacles incluent le fait que les outils sont déroutants, le « bruit » dû à trop d'alertes, et la complexité pure de gérer des milliers de connexions entre les briques.
6. Ce qu'ils veulent (La liste de souhaits)
Si le conseil municipal (npm) pouvait leur accorder trois vœux pour rendre la ville plus sûre, voici ce que les développeurs ont demandé :
- De meilleurs détecteurs : Des outils qui arrêtent de hurler pour du pain grillé et ne hurlent que pour de vrais incendies. Ils veulent des outils plus intelligents, pas seulement plus d'outils.
- Des instructions plus claires : De meilleurs guides et une meilleure documentation sur la façon de construire en toute sécurité.
- Plus de soutien : Ils veulent une aide financière ou des incitations. La sécurité prend du temps, et ils veulent être récompensés pour passer ce temps.
Une chose qu'ils ne veulent absolument pas : Ils ne veulent pas d'outils qui réparent automatiquement les briques pour eux sans demander. Ils se méfient des robots essayant de colmater les brèches car ils pourraient colmater la mauvaise chose. Ils préfèrent faire les réparations eux-mêmes une fois qu'ils savent ce qui ne va pas.
L'essentiel
Les développeurs npm sont bien intentionnés et conscients des dangers, mais ils sont dépassés. Ils essaient de garder une ville massive et interconnectée en sécurité avec des outils qui crient trop souvent au loup, et ils manquent de temps. Pour rendre le monde du logiciel plus sûr, nous devons leur donner de meilleurs outils, plus silencieux, des instructions plus claires et un peu plus de temps pour faire le travail correctement.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.