Audit Ihrer NPM-Abhängigkeiten, auf Sie entfallen 86% der Sicherheitsfehler

0
270

Eine aktuelle Studie von Snyk über den Zustand von open-source-Sicherheit hat sich bis erschreckenden Ergebnissen—für NPM-Pakete, 86% der Sicherheitslücken befinden sich in sekundären Abhängigkeiten, die Sie haben oft wenig Kontrolle über.

Was Sind Sekundäre Abhängigkeiten?

Wenn Sie etwas installieren von NPM, Sie sind nicht nur die Installation von einem Paket, das Sie installieren Sie das Paket, plus alle seine erforderlichen Abhängigkeiten. Sie können diese Abhängigkeit Baum für Ihre eigenen Projekte mit npm ls –depth=10. Sogar ein basic-Projekt mit zwei installierten Pakete enthält eigentlich vier Ebenen der Abhängigkeiten von insgesamt 10 Pakete:

Der problem, dann, ist offensichtlich. Sie abziehst code aus vielen mehr Pakete als dein Paket.json vermuten würde. Und jedes dieser Pakete ist eine potentielle Sicherheitslücke.

Nach dem Bericht von Snyk, das ist genau das, was passiert in der open-source-Umgebungen wie NPM und Ruby-Gems. Das problem ist weit verbreitet, und die meisten bugs aus indirekten Pakete, die Sie nicht manuell installieren.

Die helle Seite: dieses problem ist nicht so schlimm wie es klingt. NPM hat ein integriertes tool für die überwachung, die wird fangen die meisten das böse lieben, und sagen Sie zu aktualisieren. Wegen der Verbreitung von Prüfungs -, diese Sicherheits-bugs werden immer mehr Aufmerksamkeit und sind immer behoben, wenn Sie entstehen, mit updates geschoben, rasch zu den betroffenen Benutzer.

Die Mehrheit der bugs gefunden, die von Snyk potentielle XSS-Angriffe, und während das ist nicht toll, Ihre realen Auswirkungen relativ gering. Die wichtigsten wirkungsvollen Fehler kam nach ein paar Dutzend Prototypen Verschmutzung Angriffe—Potenzial Ausführung von beliebigem code—sowie einige bösartige oder gehackte Pakete, die speziell entworfen, um zu versuchen und schleichen sich Ihren Weg in die ahnungslose Paket.json ist.

Das problem ist auch immer besser, oder zumindest immer mehr Aufmerksamkeit. Die Anzahl der gemeldeten Fehler in NPM wurde um 20% gegenüber dem Vorjahr, und die gleiche Tendenz auch bei anderen Paket-manager ökosysteme.

Die wichtigsten take-aways von allen: Sie sollten darüber nachdenken, in denen der code stammt. Mit dem Aufstieg von FOSS-software, es ist leicht zu verfangen in der dependency-Hölle mit code, den Sie nicht planen, auf hinzufügen.

Die Lösung: Überwachung

Es werden zwangsläufig Fehler in zufällige Stücke von open-source-code, und während Sie können nicht wirklich fix einige von den kleinen ohne die Entwicklung alles in-house haben, können Sie fangen einige der besonders bösen diejenigen mit regelmäßigen audits.

Das problem ist nicht gerade neu aber, und npm hat eine eingebaute tool, das npm-audit. Sie haben auf jeden Fall gesehen, denn es läuft automatisch, wenn Sie installieren:

NPM gebaut-in der Prüfung meist nur prüft, ob updates zu Paketen, die fix bestimmte Fehler auf, so gibt es immer ein upgrade, die Sie machen können (obwohl potenziell brechen), die das problem beheben können. Zu anderen Sicherheits-Scannern bestehen, obwohl, wie Snyk selbst, die ein Dienst für die überprüfung GitHub-Projekte und unterhält eine öffentlich zugängliche Datenbank der bekannten Fehler, die Sie heraus überprüfen können.