L’Audit NPM Dipendenze, Che rappresentano l ‘ 86% dei Bug di Sicurezza

0
34

Un recente studio condotto da Snyk sullo stato dell’open-source di sicurezza ha scoperto allarmanti risultati per NPM pacchetti, l ‘ 86% delle vulnerabilità di sicurezza risiedono secondaria delle dipendenze che spesso hanno poco controllo.

Quali Sono Secondarie, Dipendenze?

Quando si installa qualcosa da NPM, non solo l’installazione di un pacchetto, si installa il pacchetto, oltre a una qualsiasi delle sue dipendenze richieste pure. È possibile visualizzare l’albero delle dipendenze per i tuoi progetti con npm ls –profondità=10. Anche un progetto di base con due pacchetti installati, in realtà contiene quattro livelli di dipendenze un totale di 10 pacchetti attuali:

Il problema, quindi, è evidente. Stai tirando codice da molti più pacchetti di pacchetto.json suggerirebbe. E, ognuno di questi pacchetti è un potenziale bug di sicurezza.

Secondo la relazione Snyk, questo è esattamente ciò che accade in open-source per ambienti come NPM e Rubino Gemme. Il problema è dilagante, e la maggior parte dei bug provengono dalla indiretti pacchetti che non si è installato manualmente.

Il lato positivo: questo problema non è così male come sembra. NPM ha un built-in strumento di controllo che cattura più di quelle brutte e dirvi di aggiornamento. A causa della prevalenza di controllo, questi bug di sicurezza sono sempre più attenzione e sono sempre fissi al loro sorgere, con aggiornamenti spinto fuori rapidamente per gli utenti interessati.

La maggior parte dei bug riscontrati da Snyk erano potenziali attacchi XSS, e mentre non è grande, il loro impatto reale è piuttosto bassa. Il principale impatto bug è venuto giù per un paio di dozzine di prototipo inquinamento attacchi potenziale esecuzione di codice arbitrario—così come alcuni dannosi o hacked pacchetti appositamente studiati per provare e nascosto la loro strada nel ignari pacchetto.json è.

Il problema è sempre meglio, o almeno di ottenere più attenzione. Il numero di bug segnalati in NPM è stato un calo del 20% rispetto allo scorso anno, e la stessa tendenza applicato ad altri package manager ecosistemi.

Il principale da asporto da tutto questo: si dovrebbe pensare a dove il codice viene. Con l’ascesa di software FOSS, è facile farsi prendere in dipendenza dell’inferno con il codice che non hai intenzione di aggiungere.

La Soluzione: Controllo

Ci sono tenuti ad essere dei bug casuale di pezzi di codice open-source, e mentre non si può davvero risolvere alcuni piccoli senza via di sviluppo di tutto in casa, si può prendere un po di particolarmente sgradevole, quelli con controlli regolari.

Il problema non è particolarmente nuovo se, e npm ha un costruito in strumento per questo—npm di controllo. Sicuramente hai visto prima, perché esso viene eseguito automaticamente ogni volta che si installa:

NPM built-in di controllo per lo più controlli per gli aggiornamenti dei pacchetti che correggere alcuni bug, quindi c’è sempre un aggiornamento si può fare (anche se potenzialmente rottura) che può risolvere il problema. Altri scanner di sicurezza esistono, però, come Snyk stessi, che esegue un servizio per il controllo GitHub progetti, e mantenere una banca dati accessibile al pubblico dei bug noti che è possibile controllare.