Understanding npm Developers' Practices, Challenges, and Recommendations for Secure Package Development
Deze studie onderzoekt de percepties, praktijken en uitdagingen op het gebied van beveiliging van 75 npm-pakketontwikkelaars via een enquête met gemengde methoden, waarbij wordt onthuld dat hoewel beveiliging een prioriteit is, ontwikkelaars te maken hebben met aanzienlijke barrières zoals tijdgebrek en beperkingen in hulpmiddelen, wat aanleiding geeft tot aanbevelingen voor verbeterde detectietools, documentatie en educatie om de betrouwbaarheid van het ecosysteem te vergroten.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je de wereld van softwareontwikkeling voor als een enorme, bruisende stad genaamd Node City. In deze stad wordt bijna elk gebouw (een app of website) niet vanaf nul opgebouwd, maar door vooraf gemaakte Lego-blokjes aan elkaar te klikken. Deze blokjes worden npm-packages genoemd. Er zijn er meer dan 2 miljoen en ze worden miljarden keren per maand gedownload.
De mensen die deze blokjes bouwen, onderhouden en uitdelen, zijn de npm-ontwikkelaars. Zij zijn de architecten en verzorgers van deze stad.
Dit document is als een buurtvergadering waar onderzoekers 75 van deze blokjesmakers hebben gevraagd: "Hoe veilig denk je dat jouw blokjes zijn? Wat houdt je wakker? En welke hulpmiddelen gebruik je om de stad veilig te houden?"
Dit is wat zij vonden, eenvoudig uitgelegd:
1. De "Ik weet dat het belangrijk is, maar..." paradox
De ontwikkelaars waren het er allemaal over eens: Veiligheid is superbelangrijk. Ze geven er diep om. Echter, wanneer gevraagd werd naar de veiligheid van hun eigen blokjes, gaven de meesten een "C+" of "B-". Ze zeiden niet: "Mijn blokjes zijn perfect." Ze zeerden: "Ze zijn oké, maar niet geweldig."
- De Analogie: Het is als een chef-kok die weet dat voedselveiligheid cruciaal is, maar toegeeft: "Mijn keuken is schoon, maar ik weet niet 100% zeker of ik niet een minuscuul stofje in de soep heb achtergelaten." Ze hechten waarde aan veiligheid, maar weten dat hun eigen werk niet foutloos is.
2. De Grote Griezelige Monsters (Bedreigingen)
Wanneer gevraagd werd wat hen het meest bang maakt, wezen de ontwikkelaars naar drie hoofdmonsters:
- Supply Chain Attacks (Aanvallen op de toeleveringsketen): Stel je voor dat een dief het magazijn binnenslupt waar de blokjes worden opgeslagen en een veilige rode blok voor een bom vervangt. Dit is de nummer 1 angst.
- Dependency Vulnerabilities (Kwetsbaarheden in afhankelijkheden): Jouw blokje kan veilig zijn, maar het is vastgeplakt aan een ander blokje dat een barst heeft. Als dat andere blokje breekt, valt jouw blokje ook.
- Malicious Code (Kwaadaardige code): Iemand die opzettelijk een val binnen een blokje plaatst.
3. De Hulpmiddelen: Het "Spamfolder"-probleen
Ontwikkelaars hebben hulpmiddelen om deze monsters te controleren (zoals npm audit of Dependabot). Maar slechts 40% van hen is tevreden met deze tools.
- De Analogie: Stel je voor dat je een rookmelder in je keuken hebt. Hij werkt geweldig, maar hij gaat af elke keer als je een sneetje brood roostert of een raam openzet. Na een tijdje krijg je last van alert fatigue (waarschuwingsmoeheid). Je begint de piep te negeren omdat je denkt: "Oh, dat is weer de broodrooster."
- De ontwikkelaars zeiden dat de tools te vaak "GEVAAR!" schreeuwen over dingen die eigenlijk niet gevaarlijk zijn (vals alarm). Dit maakt hen moe en minder geneigd om te luisteren wanneer er een echte brand uitbreekt.
4. Hoe ze dingen oplossen
Wanneer een ontwikkelaar een barst in zijn blokje vindt, handelen ze meestal snel.
- Het Proces: Ze controleren hoe erg de barst is, repareren het en brengen onmiddellijk een nieuwe versie uit.
- De "Drop"-strategie: Als een blokje waar ze op vertrouwen wordt verlaten (niemand onderhoudt het meer) of een bekende barst heeft die niet gerepareerd wordt, stoppen ze met het gebruiken ervan. Het is alsof je beseft dat een leverancier failliet is gegaan, dus stap je direct over naar een nieuwe leverancier.
5. De Blokkades (Waarom het moeilijk is)
Waarom maken ze niet alles perfect? De grootste hindernis is Tijd.
- De Analogie: Stel je voor dat je een huis bouwt terwijl iemand constant nieuwe blauwdrukken aan je geeft, je vraagt om de muren te schilderen en je vertelt om het dak te repareren. Je hebt simpelweg niet genoeg uren in de dag om elke enkele spijker op veiligheid te controleren.
- Andere hindernissen zijn de tools die verwarrend zijn, de "ruis" van te veel meldingen, en de enorme complexiteit van het beheren van duizenden verbindingen tussen blokjes.
6. Wat ze willen (De Wensenlijst)
Als de stadsraad (npm) hen drie wensen zou kunnen doen om de stad veiliger te maken, dan is dit wat de ontwikkelaars vroegen:
- Betere Detectoren: Tools die niet schreeuwen over toast, maar alleen schreeuwen over echte branden. Ze willen slimmere tools, niet zomaar meer tools.
- Duidelijkere Instructies: Betere gidsen en documentatie over hoe je veilig bouwt.
- Meer Ondersteuning: Ze willen financiële hulp of prikkels. Veiligheid kost tijd, en ze willen beloond worden voor het besteden van die tijd.
Eén ding wat ze specifiek niet willen: Ze willen geen tools die de blokjes automatisch voor hen repareren zonder te vragen. Ze zijn wantrouwig tegenover robots die gaten proberen te dichten, omdat ze de verkeerde dingen zouden kunnen repareren. Ze geven de voorkeur aan het zelf repareren zodra ze weten wat er mis is.
De Kernboodschap
De npm-ontwikkelaars zijn welwillend en zich bewust van de gevaren, maar ze zijn overweldigd. Ze proberen een enorme, onderling verbonden stad veilig te houden met tools die soms te vaak als een wolf wordt gezien. Ze raken de tijd kwijt. Om de softwarewereld veiliger te maken, moeten we hen betere, stillere tools, duidelijkere instructies en een beetje meer tijd geven om het werk goed te doen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.