Granska Din NPM Beroenden, De står för 86% av Säkerhet Buggar

0
183

En färsk studie utförd av Snyk på tillstånd av öppen källkod säkerhet har vänt upp alarmerande resultat—för NPM paket, 86% av säkerhetsproblem bo i sekundära beroenden som du ofta har liten kontroll över.

Vad Är Sekundära Beroenden?

När du installerar något från NPM, du inte bara att installera ett paket, kan du installera det paketet, plus någon av dess nödvändiga beroenden också. Du kan visa detta beroende träd för dina egna projekt med npm ls –djup=10. Även ett grundläggande projekt, med två paket installerade faktiskt innehåller fyra nivåer av beroenden totalt 10 faktiska paket:

Problemet då, är uppenbart. Du drar kod från många fler paket än ditt paket.json skulle föreslå. Och var och en av dessa paket är en potentiell säkerhetsrisk fel.

Enligt rapporten från Snyk, detta är precis vad som händer i open-source-miljöer som NPM och Ruby Pärlor. Problemet är att frodas, och de flesta buggar kommer från indirekta paket som du inte installera manuellt.

Den ljusa sidan: det här problemet är inte så illa som det låter. NPM har ett inbyggt verktyg för revision som kommer att fånga mest otäcka och kära och berätta att uppdatera. På grund av förekomsten av revision, dessa säkerhetsfel som får mer uppmärksamhet och blir fast när de uppstår, med uppdateringar trycks ut snabbt till de drabbade användarna.

De flesta av de buggar som hittas av Snyk var potentiella XSS-attacker, och även om det är inte bra, deras verkliga inverkan är relativt låg. De viktigaste effektfulla buggar kom ner till ett par dussin prototyp föroreningar attacker—risk för godtycklig kod—samt några skadliga eller hacka paket som utformats speciellt för att försöka smyga sig in intet ont anande paket.json är.

Problemet är också att bli bättre, eller åtminstone få mer uppmärksamhet. Antalet buggar rapporteras i NPM var nere på 20 procent jämfört med förra året, och samma trend gäller för andra package manager ekosystem.

De viktigaste takeaway från allt detta: du bör tänka på som gör att din kod kommer från. Med anledning av FOSS-program, det är lätt att fastna i beroende helvetet med koden du inte planerar på att lägga till.

Lösningen: Revision

Det finns säkert fel i slumpmässiga bitar av öppen källkod, och medan du kan verkligen inte fixa några av de små utan att utveckla allt in-house, du kan fånga några av de särskilt otäcka dem med regelbundna revisioner.

Problemet är inte särskilt nytt men, och npm har ett inbyggt verktyg för detta—npm revision. Du har definitivt sett det innan, eftersom det körs automatiskt när du installerar:

NPM: s inbyggda revision mest bara kontroller för uppdateringar av paket att åtgärda vissa fel, så det finns alltid en uppgradering du kan göra (även om potentiellt bryta) som kan åtgärda problemet. Andra säkerhet skannrar finns dock, liksom Snyk de som själva kör en tjänst för att kontrollera GitHub projekt, och upprätthålla en offentligt tillgänglig databas av kända buggar som du kan kolla in.