Audit van Uw NPM Afhankelijkheden, Ze zijn goed voor 86% van de Security Bugs

0
35

Een recente studie uitgevoerd door Snyk op de staat van open-source beveiliging heeft ingeschakeld alarmerende resultaten—voor de NPM-pakketten, 86% van de kwetsbaarheden bevinden zich in het secundair afhankelijkheden die u vaak weinig controle over.

Wat Zijn Secundaire Afhankelijkheden?

Wanneer u installeren iets van NPM, je bent niet alleen maar het installeren van een pakket, u de installatie van het pakket, vermeerderd met de eventuele van de vereiste dependencies ook. U kunt deze dependency tree voor uw eigen projecten met npm ls –depth=10. Zelfs een basic-project met twee pakketten geïnstalleerd eigenlijk bevat de vier niveaus van de afhankelijkheden van in totaal 10 actuele pakketten:

Het probleem is duidelijk. U bent te trekken code van veel meer pakketten dan in uw pakket.json zou suggereren. En elk van die pakketten is een potentieel security bug.

Volgens het rapport van Snyk, dit is precies wat er gebeurt in open source omgevingen zoals NPM en Ruby Edelstenen. Het probleem is aanwezig, en de meeste bugs komen van indirecte pakketten die je niet zelf handmatig installeren.

De zonnige kant: dit probleem is niet zo slecht als het klinkt. NPM heeft een ingebouwde tool voor de controle van die vangen het grootste deel van het vervelende is en vertellen u wilt bijwerken. Omdat de prevalentie van auditing, deze beveiligingsproblemen worden steeds meer aandacht en worden steeds vast wanneer ze zich voordoen, met updates geduwd snel aan de getroffen gebruikers.

De meerderheid van de bugs gevonden door Snyk mogelijke XSS aanvallen, en hoewel dat niet geweldig is, hun impact op de wereld is vrij laag. De belangrijkste en opvallende bugs kwam naar beneden om een paar dozijn prototype vervuiling aanvallen op—kans op het uitvoeren van willekeurige code—evenals een aantal kwaadaardige of gehackte pakketten die speciaal zijn ontworpen om te proberen en stiekem hun weg naar de nietsvermoedende pakket.json is.

Het probleem is ook beter, of ten minste krijgen meer aandacht. Het aantal gerapporteerde bugs in NPM was een daling van 20% ten opzichte van vorig jaar, en dezelfde trend geldt voor andere package manager ecosystemen.

De belangrijkste afhaalmaaltijd van dit alles: je moet nadenken over waar uw code komt uit. Met de opkomst van de FOSS, het is gemakkelijk te raken in afhankelijkheid van de hel met de code die u niet van plan toe te voegen.

De Oplossing: Het Uitvoeren Van Audits

Er zijn ongetwijfeld bugs in willekeurige stukken van open-source code, en terwijl je niet echt kunt vast een aantal van de kleintjes zonder de ontwikkeling van alles in-huis, kunt u de vangst van een aantal van de bijzonder vervelende degenen met regelmatige controles.

Het probleem is niet bijzonder nieuw maar, en npm heeft een ingebouwde tool voor dit—npm audit. U beslist hebben gezien, want het wordt automatisch uitgevoerd wanneer u installeren:

NPM ingebouwde controle meestal alleen controles voor updates van de pakketten die het oplossen van bepaalde bugs, dus er is altijd een upgrade die je kunt maken (hoewel mogelijk breken) die het probleem kan oplossen. Andere security scanners bestaan al, zoals Snyk zelf, die een service uitvoert voor het controleren van GitHub projecten en het onderhouden van een publiek toegankelijke databank van bekende bugs die u kunt controleren.