Wie Snyk Code Schwachstellen mithilfe des Priority Score priorisiert
Frank Fischer
9. November 2021
0 Min. LesezeitWenn jede Schwachstelle gleich kritisch erscheint, sind Engineering-Teams schnell überfordert und verschwenden wahrscheinlich Zeit mit den falschen Problemen. Deshalb ist es wichtig, dass Developer-Security-Tools klare und einfache Funktionen zur Priorisierung bieten. Wie Sie vermutlich bereits festgestellt haben, zeigt Snyk Code oben rechts im Übersichtsbereich einen Priority Score an. Wenn Sie den Mauszeiger darüber bewegen, wird erläutert, wie der Priority Score berechnet wurde. Für eine schnelle Priorisierung können Sie außerdem oben rechts nach Priority Score sortieren.

Doch ein Priority Score ist mehr als nur eine Zahl. In diesem Artikel möchte ich Ihnen die Überlegungen hinter dem Score erläutern und Ihnen praktische Tipps geben, wie Sie ihn optimal einsetzen.
Hinweis: Wie Sie sehen werden, haben wir bestimmte Entscheidungen zur Berechnung des Scores getroffen. Vielleicht hätten Sie sich anders entschieden – und das ist völlig in Ordnung! Es gibt keine perfekte Antwort, und wir freuen uns immer über konstruktives Feedback.
Die Grundlagen des Priority Score
Zunächst einmal ist ein Priority Score eine ganze Zahl zwischen 1 und 1.000. Je höher der Wert, desto dringender empfiehlt Snyk Code, die Schwachstelle zu beheben. Wichtig ist: Auch wenn die Priority Scores von Snyk Open Source oder Snyk Container ähnlich aussehen, empfehlen wir nicht, Scores produktübergreifend zu vergleichen. Vergleichen Sie ausschließlich Snyk Code Scores mit anderen Snyk Code Scores.
Der Priority Score soll Ihnen dabei helfen, die Sicherheit Ihrer Anwendung wirksam zu verbessern. Für Snyk bedeutet das: Auswirkung und Umsetzbarkeit. Der Schweregrad einer Schwachstelle ist zwar wichtig, doch wir müssen genauer hinsehen. Bei der Auswirkung prüfen wir, ob eine Korrektur mehrere Schwachstellen beheben kann. Ist das der Fall, steigt der Priority Score. Bei der Umsetzbarkeit bewertet Snyk Code, wie einfach sich eine Schwachstelle beheben lässt. Ist eine Korrektur schnell und einfach umzusetzen, steigt der Priority Score.
Dank dieser umfassenderen Analyse können wir Korrekturen so priorisieren, dass die Zeit der Engineering-Teams optimal genutzt wird.
So wird der Priority Score berechnet
Als mathematische Funktion wird der Priority Score berechnet, indem anhand von Fakten zum Problem Punkte addiert werden. Der Score wird jedes Mal neu berechnet, wenn ein Snapshot erstellt und ein Scan durchgeführt wird. Priority Scores können sich unterscheiden – selbst wenn Snapshots kurz nacheinander erstellt werden. Warum das so ist, erläutern wir weiter unten. Snyk stellt alle für die Berechnung des Priority Score verwendeten Datenpunkte in einer JSON-Datei bereit.
Hinweis: Die folgende Beschreibung bezieht sich auf den Berechnungsstand von September 2021. Wir forschen und lernen ständig dazu, und die Cybersecurity entwickelt sich rasant weiter. Daher kann es sein, dass wir die Berechnung künftig ändern. Bei Snyk überprüfen wir die Logik hinter den Priority Scores fortlaufend, um in einer sich wandelnden Bedrohungslandschaft branchenführende Wirksamkeit zu gewährleisten.
Schweregrad
Der vom Scan-Engine für das gefundene Problem festgelegte Schweregrad macht insgesamt 50 % des Priority Score aus. Bei einem Schweregrad von `High` gibt es für diesen Parameter 500 Punkte, bei `Medium` 250 Punkte und bei `Low` 100 Punkte. Wichtig ist dabei, dass die Engine den Schweregrad bereits mithilfe einer Heuristik festlegt. Da unsere Engine den Kontext berücksichtigt, bezieht sie auch Aspekte des jeweiligen Kontexts ein. Wird ein Problem beispielsweise in einer Testdatei gefunden oder entsteht es dort, wird der Schweregrad entsprechend angepasst.
Die übrigen 50 % des Scores ergeben sich aus verschiedenen Faktoren:
Vorkommen
Die relative Anzahl der Vorkommen der betreffenden Schwachstelle wird in Punkte umgerechnet. Nehmen wir an, Ihr Programm weist 10 Probleme aus drei Problemtypen auf: 5 vom Typ A, 2 vom Typ B und 3 vom Typ C. Typ C erhält dann 30 Punkte. Ziel ist es, Probleme desselben Typs zu gruppieren und Korrekturen zu fördern, die alle auf einmal beheben. Denn wenn Sie ein Vorkommen beheben können, können Sie sie alle beheben.
Hotfiles
Hotfiles sind Dateien, die für mehrere Probleme verantwortlich sind. Snyk Code vergibt 100 Punkte für Hotfiles, 50 Punkte, wenn der Code-Flow ein Hotfile durchläuft, und 0 Punkte, wenn Hotfiles gar nicht betroffen sind (Dateien, die die Engine beispielsweise als Testdateien erkennt, werden ausgenommen). Dahinter steckt die Idee, Ihre Arbeit auf stark betroffene Bereiche der Anwendung zu konzentrieren und so den Wechsel zwischen mehreren Dateien zu reduzieren. Außerdem wird berücksichtigt, dass die Behebung eines Problems auch andere Probleme in der Nähe beseitigen kann.
Beispiele für Korrekturen
Wenn Snyk Code gute Beispiele aus Open Source dafür findet, wie ein Problem zuvor behoben wurde, gibt es dafür 200 Punkte. Denn wir sind überzeugt, dass sich das Problem dadurch viel einfacher beheben lässt. Frühere Korrekturen helfen Ihnen, Probleme schnell und einfach zu lösen. Und schnelle Erfolge sind – ganz ehrlich – ideal, um Teams motiviert zu halten.
Häufig in OSS behoben
Das ist ein interessanter Faktor. Findet die Engine eine Schwachstelle in mehr als 1.000 Repositories unseres Open-Source-Trainingsdatensatzes, vergibt sie 100 Punkte. Dafür gibt es mehrere Gründe:
Wenn eine Schwachstelle so weit verbreitet ist, steigt die Wahrscheinlichkeit eines Angriffs – selbst durch Script-Kiddies. Dadurch wird sie gefährlicher.
Wurde die Schwachstelle bereits Hunderte Male behoben, gibt es bewährte Best Practices für ihre Behebung, die Sie anwenden können.
Best Practices für den Priority Score
Wie Sie oben gesehen haben, ist der Priority Score ein leistungsstarkes Tool, das Sie bei der Behebung von Schwachstellen unterstützen kann. Wir empfehlen Ihnen, ihn zu nutzen. Bevor wir zum Schluss kommen, finden Sie hier einige weitere Best Practices für den Einsatz der Priority Scores:
In der Snyk UI können Sie die Ergebnismenge auf einen oberen und einen unteren Grenzwert für den Priority Score filtern.
Da der Priority Score bei jedem Scan neu berechnet wird und von Code-Änderungen beeinflusst wird, empfehlen wir Ihnen, immer den aktuellen Wert zu verwenden. Anstatt also einen Scan durchzuführen und für die zehn wichtigsten gefundenen Probleme zehn Jira-Tickets zu erstellen, beheben Sie ein Problem und starten Sie einen erneuten Scan. Orientieren Sie sich am neuen Spitzenreiter beim Priority Score, der sich durch frühere Korrekturen verändert haben kann.
Vergleichen Sie keine Priority Scores aus verschiedenen Snyk-Lösungen. Sie beschreiben unterschiedliche Dinge und basieren auf verschiedenen, nicht vergleichbaren Logiken.
Bewegen Sie den Mauszeiger über Ihren Score und sehen Sie sich die Gründe für den Priority Score an. Manchmal hilft es, sich zunächst eine einfache Korrektur herauszusuchen, um erste Erfolge zu erzielen. Motivation ist entscheidend!
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.



