Priorisierung mit tiefgreifendem Kontext auf Anwendungsebene optimieren
Michael Komraz
28. Juli 2020
0 Min. LesezeitDie Priorisierung von Schwachstellenbehebungen wird zunehmend schwieriger – sowohl aufgrund der stetig wachsenden Zahl von Schwachstellen als auch wegen der komplexen Risikobewertung. Schwachstellen sind nicht alle gleich, und ihre unterschiedlichen Risiken werden von einer Vielzahl objektiver und subjektiver Faktoren beeinflusst. Eine effektive Priorisierung setzt eine genaue Bewertung dieser Faktoren voraus.
CVSS wird häufig genutzt, um diese Herausforderung zu bewältigen, weist jedoch einige systembedingte Einschränkungen auf. CVSS v3 erweitert zwar den Basiswert und kann zeitliche sowie umgebungsbezogene Metriken einbeziehen. Der Kontext der Anwendung fehlt jedoch weiterhin: CVSS berücksichtigt nicht die verschiedenen spezifischen Abhängigkeiten und Wechselwirkungen zwischen der Anwendung und den aufgerufenen Open-Source-Bibliotheken und -Funktionen.
Hier kommen die Reachable Vulnerabilities von Snyk ins Spiel.
Warum „Erreichbarkeit“ wichtig ist
Die meisten Lösungen analysieren Ihre Anwendung, um festzustellen, welche Open-Source-Abhängigkeiten eingebunden werden. Diese Liste wird anschließend mit einer Schwachstellendatenbank abgeglichen, um einen Bericht über anfällige Abhängigkeiten zu erstellen.
Eine Schwachstelle in einem Teil Ihres Codes bedeutet jedoch nicht zwangsläufig, dass die gesamte Bibliothek anfällig ist. Entwickler verwenden häufig nur einen kleinen Teil einer Bibliothek oder eines Pakets. Daher ist es gut möglich, dass die anfällige Funktion im Ausführungspfad der Anwendung gar nicht „erreicht“ wird. Schwachstellen, die nicht erreicht werden, gefährden in der Regel nicht die gesamte Anwendung und stellen deshalb ein geringeres Risiko dar als tatsächlich erreichte Schwachstellen.

Die Reachable Vulnerabilities von Snyk analysieren den Codefluss der Anwendung bis ins Detail und ermitteln, ob die Anwendung eine anfällige Funktion „erreicht“. Die Ergebnisse dieser Analyse können dann für eine effektivere Priorisierung genutzt werden.
Reachable Vulnerabilities in Zahlen
Wir verbessern die Algorithmen und Heuristiken hinter Reachable Vulnerabilities kontinuierlich. Schon jetzt können wir jedoch mit Sicherheit sagen: Der durch Reachable Vulnerabilities gewonnene Kontext reduziert die Zahl der Schwachstellen, die dringend Aufmerksamkeit erfordern, erheblich. Bei den 300 getesteten Java-Maven-Projekten waren nur 2 % der gefundenen Schwachstellen für die Anwendung tatsächlich erreichbar. Weitere 20 % waren möglicherweise erreichbar.
Das bedeutet nicht, dass die verbleibenden 78 % der Schwachstellen allesamt Fehlalarme sind. Im Gegenteil: Auch diese Schwachstellen müssen mithilfe des Priority Score von Snyk und weiterer Priorisierungsfunktionen bewertet und eingeordnet werden. Mit Reachable Vulnerabilities erhalten Sie jedoch den nötigen Kontext, um schnell die Schwachstellen zu erkennen, die zuerst behoben werden sollten.
Wie funktioniert das?
Um festzustellen, ob eine Schwachstelle erreichbar ist, ermitteln wir mithilfe verschiedener Algorithmen einen Aufrufgraphen für den proprietären Code der Anwendung und ihre Open-Source-Abhängigkeiten. Der Aufrufgraph bildet alle Ausführungspfade in der Anwendung ab. So erhalten wir die nötigen Erkenntnisse, um festzustellen, ob diese tatsächlich den anfälligen Teil der Abhängigkeit erreichen.
Die verschiedenen im Aufrufgraphen abgebildeten Abhängigkeiten und Funktionen werden mit der Snyk Intel Vulnerability Database abgeglichen – der umfassendsten, genauesten und aktuellsten Schwachstellendatenbank auf dem Markt. Die Datenbank enthält sorgfältig kuratierte, angereicherte und praxisrelevante Informationen zu Abhängigkeiten und ihren anfälligen Funktionen und gewährleistet so genaue Analyseergebnisse von Reachable Vulnerabilities.
Das Sicherheitsexpertise von Snyk kommt zum Tragen, wenn ein Aufrufgraph allein nicht ausreicht, um die Erreichbarkeit genau zu bestimmen. In manchen Anwendungen wird beispielsweise der zur Laufzeit verwendete Abhängigkeitsbaum von externen Faktoren beeinflusst. In anderen Anwendungen sind als erreichbar eingestufte Schwachstellen tatsächlich harmlos, während weitere Schwachstellen unabhängig vom Aufrufgraphen so priorisiert werden müssen, als wären sie erreichbar. Reachable Vulnerabilities wendet zusätzliche heuristische Techniken und Analyselogik an, um genaue Ergebnisse sicherzustellen.
Projekte mit Reachable Vulnerabilities testen
Sie können Projekte mit Reachable Vulnerabilities über die Snyk CLI testen. Fügen Sie dafür einfach den Parameter --reachable-vulns zum Befehl snyk test hinzu (Hinweis: Projekte müssen vor dem Test kompiliert werden):
snyk test --reachable-vulns
Snyk startet die Analyse. Im Hintergrund erstellt Snyk den Aufrufgraphen für die Anwendung und gleicht ihn mit den Schwachstellendaten von Snyk ab.
Nach Abschluss werden die Testergebnisse in der CLI angezeigt. Dazu gehören die Anzahl der getesteten Abhängigkeiten, die Zahl der erkannten Schwachstellen und die Anzahl der Schwachstellen, die als erreichbar eingestuft wurden. Neben der Schwachstelle wird eine Erreichbarkeitsstufe angezeigt. Darunter sehen Sie den Pfad vom Anwendungscode zur anfälligen Funktion.

Es gibt drei Erreichbarkeitsstufen:
Erreichbar – Es wurde ein eindeutiger Pfad von der Anwendung zur anfälligen Funktion identifiziert. Diese Schwachstelle sollte zuerst behoben werden.
Möglicherweise erreichbar – Es wurden teilweise Hinweise darauf gefunden, dass die anfällige Funktion erreichbar sein könnte. Diese Schwachstelle sollte überprüft werden.
Keine Informationen – Es liegen nicht genügend Informationen vor, um festzustellen, ob die Schwachstelle erreichbar ist.
Mit Reachable Vulnerabilities priorisieren
Die Snyk-Benutzeroberfläche erleichtert die Priorisierung mit Reachable Vulnerabilities innerhalb einzelner Projekte und projektübergreifend. Um Reachable Vulnerabilities in der Snyk-Benutzeroberfläche zu verwenden, führen Sie den folgenden CLI-Befehl aus:
snyk monitor --reachable-vulns
Auf der Projektseite in der Snyk-Benutzeroberfläche werden den Issue-Karten Erreichbarkeitsindikatoren hinzugefügt – neben den anderen Indikatoren für die Priorisierung, dem Schweregrad und der Exploit-Reife. Mit den neuen Reachable-Vulnerabilities-Filtern können Sie Schwachstellen schnell nach ihrer Erreichbarkeit filtern:

Damit Sie erreichbare Schwachstellen schnell beheben können, zeigt Snyk außerdem detaillierte Informationen zum genauen Pfad an, über den die Anwendung die anfällige Funktion aufruft.

Erreichbarkeitsdaten finden Sie auch auf der Seite Reports > Issues. So können Sie Ihre Schwachstellen im Laufe der Zeit einfacher überwachen und nachverfolgen.

Jetzt loslegen!
Eine präzise und schnelle Bewertung des Schwachstellenrisikos ist entscheidend für eine effektive Priorisierung. Genauigkeit setzt wiederum voraus, dass Sie auf Kontextinformationen zu den objektiven und subjektiven Faktoren einer Schwachstelle zugreifen können. Dieser Kontext ist nur schwer zu erhalten.
Durch die detaillierte Analyse des Ausführungspfads der Anwendung und den Abgleich mit den umfangreichen Sicherheitsdaten von Snyk liefern die Reachable Vulnerabilities von Snyk den tiefgreifenden Kontext auf Anwendungsebene, der für eine präzise Risikobewertung und entsprechende Priorisierung erforderlich ist.
Reachable Vulnerabilities ist als Betaversion für alle kostenpflichtigen Snyk-Tarife ab Standard und ausschließlich für Java-(Maven-)Projekte verfügbar. Registrieren Sie sich kostenlos und probieren Sie es selbst aus!
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.