7 Tipps zur Priorisierung von Schwachstellen in Containern und Webanwendungen
22. September 2020
0 Min. LesezeitDa es schlicht unmöglich ist, jede einzelne Schwachstelle in Ihrer Webanwendung aus dem Backlog zu beheben, müssen Sie Prioritäten setzen. So können Sie sich auf die Probleme konzentrieren, die für Ihr Unternehmen am wichtigsten sind, und Ihre begrenzte Zeit und Ihre Ressourcen bestmöglich einsetzen, um die Sicherheit optimal zu stärken.
Wo fängt man bei der Priorisierung von Schwachstellen an?
Es gibt verschiedene Methoden zur Priorisierung. Welche Sie verwenden, hängt von dem Sicherheitsansatz ab, für den Sie sich entschieden haben. Damit Sie die verschiedenen Aspekte der Priorisierung besser verstehen, finden Sie im Folgenden einige der beliebtesten Tools zur Priorisierung von Schwachstellen in Webanwendungen, die Sie auf Ihrem Weg unterstützen.
1. CWE
Was ist CWE?
CWE steht für Common Weakness Enumeration, ein Online-Glossar, das Schwachstellen in Software und Hardware verschiedenen Typen zuordnet. Beispiele: CWE-20 (Eingabevalidierung), CWE-125 (Lesen außerhalb des zulässigen Bereichs), CWE-79 (XSS) und CWE-200 (Informationsleck/-offenlegung).
CWE wird von MITRE gepflegt. Ziel von CWE ist es, Software-Sicherheitsprobleme möglichst schnell und effektiv zu erkennen, aufzuspüren und zu beheben. CWE lässt sich aber auch auf verschiedene Weise gezielt zur Priorisierung von Schwachstellen in Webanwendungen einsetzen:
Wenn Sie unter Zeitdruck stehen und die gefundenen Schwachstellen in Ihrem Code nicht genauer untersuchen können, nutzen Sie die Liste CWE Top 25 als Ausgangspunkt. Priorisieren Sie zunächst die Behebung der CWEs, die von der Community als besonders wichtig eingestuft wurden.
Priorisieren Sie nach Auswirkung mithilfe von CWE: CWE-Einträge enthalten Informationen zu den technischen Auswirkungen einer Schwachstelle. Statt zu versuchen, alles zu beheben, können Sie sich so auf die CWEs konzentrieren, die für Ihr Unternehmen besonders gefährlich sind.
Nutzen Sie CWSS und CWRAF – zwei Bewertungssysteme für CWEs, mit denen Sie nach der Relevanz für Ihr Unternehmen priorisieren können.
2. CVSS/Schweregrad
Das Common Vulnerability Scoring System (CVSS) ist die am häufigsten verwendete Methode zur Priorisierung und ein branchenweiter Standard zur Bewertung des Schweregrads von Schwachstellen. Auf Grundlage der Ausnutzbarkeit einer Schwachstelle in einer Webanwendung und der möglichen Auswirkungen einer erfolgreichen Ausnutzung vergibt CVSS einen Wert zwischen 0 und 10. 10 ist dabei der höchste Schweregrad.
Laut NVD gilt ein CVSS-Basiswert (v3) von 0,0–3,9 als „niedrig“, ein Wert von 4,0–6,9 als „mittel“, ein Wert von 7,0–8,9 als „hoch“ und ein Wert von 9,0–10,0 als „kritisch“.
CVSS ist zwar ein guter Ausgangspunkt, doch sollten Sie bedenken, dass es kein ausreichend genaues Bild des Risikos einer Schwachstelle vermittelt. Wie in der offiziellen CVSS-Dokumentation erläutert wird: „CVSS dient dazu, den Schweregrad einer Schwachstelle zu messen, und sollte nicht allein zur Risikobewertung herangezogen werden … Der CVSS-Basiswert sollte durch eine kontextbezogene Analyse der Umgebung und durch Attribute ergänzt werden, die sich im Laufe der Zeit ändern können.“
3. Ausnutzbarkeit
Eine Möglichkeit, das tatsächliche Risiko einer Schwachstelle für Ihr Unternehmen einzuschätzen, besteht darin, zu verstehen, wie einfach sie sich ausnutzen lässt. Ein Faktor, der es Angreifern besonders leicht macht, eine Schwachstelle auszunutzen, ist die Verfügbarkeit von Exploit-Code. Sobald solcher Code veröffentlicht wird, spricht man von einem „Exploit in the Wild“.
Wenn Sie wissen, ob es für die Probleme in Ihrem Backlog „Exploits in the Wild“ gibt, können Sie sich auf eine besonders riskante Teilmenge konzentrieren. Wenn Sie zwischen verschiedenen Arten veröffentlichter Exploits unterscheiden, können Sie den Fokus weiter eingrenzen: Ein ausgereifter, veröffentlichter und praktisch einsetzbarer Exploit birgt ein anderes Risiko als ein akademischer, theoretischer Exploit. Weitere Informationen dazu, warum Ausnutzbarkeit bei der Priorisierung wichtig ist, finden Sie hier.
4. Erreichbarkeit
Entwickler nehmen häufig ganze Open-Source-Komponenten in ihre Codebasis auf, verwenden für die Anwendungslogik aber nur einen kleinen Teil davon. Das bedeutet, dass manche Schwachstellen möglicherweise nicht im Ausführungspfad der Anwendung aufgerufen werden und deshalb ein geringeres Risiko darstellen und nachrangig behandelt werden können.
Wenn Ihr AppSec-Tool diese Erkenntnisse bereitstellt, nutzen Sie sie, um sich auf dringendere Probleme zu konzentrieren. Statt eine Schwachstelle mit hohem Schweregrad in einer Funktion zu priorisieren, die von Ihrer Anwendung nicht aufgerufen wird, ist es deutlich effektiver, eine Schwachstelle mit mittlerem Schweregrad zu priorisieren, die im Ausführungspfad liegt und ein größeres Risiko darstellt.
Sie können einen oder beide der folgenden sich ergänzenden Ansätze zur Priorisierung nutzen:
Die Erreichbarkeit durch statische Analyse Ihres Quellcodes ermitteln
Feststellen, ob Schwachstellen tatsächlich zur Laufzeit aufgerufen werden
Beachten Sie, dass Schwachstellen, die nicht erreicht werden, deshalb nicht unwichtig sind und ignoriert werden können. Auch sie müssen bewertet und behoben werden, insbesondere solche mit hohem Schweregrad. Die Erreichbarkeit hilft Ihnen jedoch, besser zwischen dem Wichtigen und dem Dringenden zu unterscheiden.
5. Alter
Berücksichtigen Sie bei der Priorisierung auch das Alter einer Schwachstelle. Je neuer eine Schwachstelle ist, desto geringer ist beispielsweise die Wahrscheinlichkeit, dass bereits eine Fehlerbehebung verfügbar ist. Außerdem ziehen neue, viel beachtete Schwachstellen Angreifer häufig besonders an, wodurch sie ein höheres Risiko darstellen. Die Algorithmen hinter dem Priority Score von Snyk beziehen beispielsweise aus genau diesem Grund das Alter in den endgültigen Wert ein.
6. Behebbarkeit
Ein möglicher Sicherheitsansatz besteht darin, innerhalb eines bestimmten Zeitraums möglichst viele Probleme zu beheben. Wenn es vor allem auf Geschwindigkeit ankommt, sollten Sie die Probleme priorisieren, die sich am einfachsten, schnellsten und kostengünstigsten beheben lassen.
Stellen Sie sich dazu folgende Fragen:
Lässt sich die Schwachstelle durch ein kleineres Upgrade beheben?
Ist ein Patch für die Schwachstelle verfügbar?
Lässt sich die anfällige Komponente einfach ersetzen?
7. Automatisierung
Hunderte oder gar Tausende Probleme in den verschiedenen Projekten Ihres Unternehmens lassen sich nur mithilfe von Automatisierung priorisieren und zurückstufen. Wenn Ihre Sicherheitstools diese Funktion bieten, können Sie Richtlinien verwenden, um die Parameter für Priorisierungsentscheidungen bei der Behebung automatisch festzulegen.
Sie könnten beispielsweise den Schweregrad aller Schwachstellen mit einer bestimmten CWE erhöhen. Oder Sie könnten den Schweregrad von Problemen ohne bekannte Exploits automatisch herabsetzen.
Diese Entscheidungen hängen vom jeweiligen Unternehmen und Team ab. Die Automatisierung und detaillierte Steuerung durch Richtlinien sind jedoch unverzichtbar für jede Priorisierungsstrategie.
Die Vorteile einer effektiven Priorisierung von Schwachstellen in Webanwendungen
Durch eine effektive Priorisierung können Sie sich auf die Schwachstellen konzentrieren, die das größte Risiko für Ihr Unternehmen darstellen. So nutzen Sie Ihre Zeit und Ihren Aufwand optimal und stärken letztlich Ihre gesamte Sicherheitslage.
Wie oben gezeigt, brauchen Unternehmen für eine gute Priorisierung mehr als CVSS. Sie benötigen Lösungen, die mehr und tiefergehenden Kontext liefern. Je einfacher und entwicklerfreundlicher diese Tools sind, desto eher werden Entwickler sie einsetzen – ein entscheidender Faktor für den Erfolg Ihrer Priorisierungs- und Behebungsmaßnahmen. Genau das bietet Snyk.
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.
