Philip - stock.adobe.com

Was versteht man unter Vulnerability Assessment?

Eine Schwachstellenbewertung ist ein Testprozess, der dazu dient, in einem gegebenen Zeitrahmen möglichst viele Security-Mängel zu identifizieren und ihnen Schweregrade zuzuordnen.

Der Prozess der Schwachstellenbewertung oder auch Schwachstellenanalyse umfasst sowohl automatisierte wie manuelle Techniken und wird mit einem unterschiedlichen Grad an Strenge und mit verschiedenen Schwerpunkten hinsichtlich einer möglichst umfassenden Abdeckung durchgeführt.

Mithilfe eines risikobasierten Ansatzes lassen sich Schwachstellenbewertungen auf verschiedenen Technologieebenen durchführen, wobei Host-, Netzwerk- und Anwendungsebene die häufigsten sind.

Mithilfe dieser Tests identifizieren Firmen Schwachstellen in ihrer Software und der unterstützenden Infrastruktur, bevor eine Kompromittierung stattfinden kann. Aber was genau ist eine Softwareschwachstelle?

Eine Schwachstelle lässt sich auf zwei Arten definieren:

  • Ein Fehler im Code oder ein Fehler im Softwaredesign, die sich ausnutzen lassen, um Schaden anzurichten. Dabei kann die Schwachstelle sowohl durch einen authentifizierten als auch einen nicht authentifizierten Angreifer ausgenutzt werden.

  • Eine Lücke in den Sicherheitsverfahren oder eine Schwäche in den internen Kontrollen, die, wenn sie ausgenutzt werden, zu einer Sicherheitsverletzung führen.

Wie funktioniert eine Schwachstellenbewertung?

Eine Schwachstellenbewertung hat drei Hauptziele:

  1. Die Identifizierung von Schwachstellen, die von kritischen Designfehlern bis hin zu einfachen Fehlkonfigurationen reichen.

  2. Die Dokumentation der Schwachstellen, so dass Entwickler die Ergebnisse leicht identifizieren und reproduzieren können.

  3. Eine Anleitung für Entwickler zu erstellen, um die identifizierten Schwachstellen zu beheben.

Schwachstellentests finden in unterschiedlichen Formen statt. Eine Methode ist Dynamic Application Security Testing (DAST). Hierbei handelt es sich um eine dynamische Analyse-Testtechnik, bei der eine Anwendung (meistens eine Webanwendung) ausgeführt wird. DAST dient speziell der Identifizierung von Sicherheitsmängeln, indem Input oder andere Fehlerbedingungen bereitgestellt werden, um Mängel in Echtzeit zu finden. Static Application Security Testing (SAST) analysiert demgegenüber den Quell- oder Objektcode einer Anwendung, um Schwachstellen zu identifizieren, ohne das Programm auszuführen.

Boris Cipot, Synopsys

„Mithilfe eines risikobasierten Ansatzes lassen sich Schwachstellenbewertungen auf verschiedenen Technologieebenen durchführen.“

Boris Cipot, Synopsys

Beiden Methoden gehen sehr unterschiedlich an Anwendungen heran. Dementsprechend sind sie in verschiedenen Phasen des Software Development Life Cycle (SDLC) am effektivsten, und finden unterschiedliche Arten von Schwachstellen.

SAST beispielsweise erkennt kritische Schwachstellen wie Cross-Site-Scripting (XSS) und SQL Injection zu einem früheren Zeitpunkt im SDLC. DAST hingegen verwendet einen Outside-in-Ansatz für Penetrationstests, um Sicherheitsschwachstellen zu identifizieren, während eine Webanwendung ausgeführt wird.

Penetrationstests sind für sich betrachtet eine weitere Methode zur Schwachstellenbewertung und für zielgerichtete Sicherheitstests. Penetrationstests legen Wert auf einen kontradiktorischen Ansatz (Simulation der Methoden eines Angreifers) und verfolgen ein oder mehrere spezifische Ziele (zum Beispiel, Capture the Flag, CTF).

Wie man feststellt, ob eine Schwachstellenbewertung nötig ist

Führen Sie eine Schwachstellenbewertung durch, um zu überprüfen, ob die zuvor im SDLC eingeführten Sicherheitsinitiativen wirksam sind. Beispielsweise wird eine Organisation, die über Entwickler verfügt, die in sicherer Codierung versiert sind, und die ihre Sicherheitsarchitektur sowie den Quellcode überprüft, höchstwahrscheinlich weniger Schwachstellen aufweisen als eine, die das nicht tut.

Unabhängig davon, ob man selbst Anwendungen entwickelt oder solche von Drittanbietern einsetzt, sollte man einmal im Jahr oder nach der Implementierung signifikanter Änderungen an Anwendungen oder Umgebungen Schwachstellentests durchführen, um die Sicherheitsbemühungen auf ein tragfähiges Fundament zu stellen.

Über den Autor:
Boris Cipot ist Senior Sales Engineer bei der Synopsys Software Integrity Group.

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Fortsetzung des Inhalts unten

ComputerWeekly.de

Close