Menschen von oben fotografiert, die an einem Tisch sitzen.

adesso Blog

Schwachstellenmanagement

Wird eine Schwachstelle in einem Softwareprodukt gefunden, wird diese in der Regel öffentlich bekanntgegeben. Das hat folgenden Grund: Die Nutzer oder Softwareanbieter können sofort Sicherheitsmaßnahmen – beispielsweise die Installation von Patches − ergreifen.

Nach der Veröffentlichung einer Schwachstelle müssen Unternehmen schnell reagieren, damit das Angriffsrisiko möglichst minimiert wird. Bei Unternehmen, in denen verschiedene Softwareprodukte auf hunderten von Computern installiert sind, ist es daher zwingend notwendig, dass Schwachstellenmanagementsysteme − wie etwa OpenVAS − eingesetzt werden.

Ein Schwachstellenmanagementsystem sammelt Informationen, wie etwa den Hersteller oder die Version der installierten Softwareprodukte, und speichert sie gegebenenfalls in einer Datenbank. Die gesammelten Informationen werden dann mit einer Datenbank, die Informationen über bekannte Softwareschwachstellen enthält, verglichen. Dieser Prozess wird Verwundbarkeitsanalyse (VA) genannt. Dabei wird täglich festgestellt, ob die installierte Software verwundbar ist.


Überblick eines Schwachstellenmanagementsystems

Damit ihr eine VA durchführen könnt, ist es erforderlich, dass ihr eine Quelle von bekannten Schwachstellen habt. Eine der am meisten benutzten ist die „Common Vulnerabilities and Exposures“-Datenbank. Zusammen mit dem „Common Platform Enumeration Dictionary“ bietet euch die CVE-Datenbank eine gute Alternative für die Implementierung einer VA. Allerdings haben diese Datenbanken auch einige Nachteile, die zu inkorrekten Resultaten führen können. Im Folgenden möchten wir euch einen kurzen Überblick geben:

Common Platform Enumeration (CPE)

CPE ist eine standardisierte Methode, die ein Benennungsschema für Hardware und Softwareprodukte definiert. Die Idee dahinter ist, IDs, die eine formale Struktur haben, bestimmten IT-Produkten zuzuweisen. Damit kann die formale und eindeutige Identifizierung dieser Produkte in dem Inventar eines Unternehmens unterstützt werden.

Die National Vulnerability Database (NVD) bietet euch eine öffentlich zugängliche XML-basierte Datenbank (CPE-Dictionary) an, die offizielle CPEs von IT-Produkten enthält. Um euch ein Beispiel zu nennen: dem Softwareprodukt „Microsoft Internet Explorer 8“ wurde beispielsweise die CPE-URI „cpe:/a:microsoft:ie:8“ zugewiesen.

Common Vulnerabilities and Exposures (CVE)

CVE ist eine Methode, die für die Zuweisung von IDs zu öffentlich bekannten Schwachstellen in IT-Produkten genutzt wird. Ein Beispiel dafür wäre eine Pufferüberlauf-Schwachstelle, die im Flash Player im Jahr 2017 entdeckt wurde. Ihr wurde die ID „CVE-2017-2997“ zugewiesen.

Ähnlich wie bei der CPEs, stellt die NVD euch eine öffentliche XML-basierte Datenbank zur Verfügung, die alle CVE-IDs enthält. Jeder Eintrag der CVE-Datenbank enthält nicht nur eine CVE-ID, sondern auch zusätzliche Information wie etwa eine Liste von IT-Produkten, die von der Schwachstelle betroffen sind. Diese Liste ist im CPE-Format, mit der die CVE-Datenbank mit dem CPE-Dictionary kompatibel ist.

Verwundbarkeitsanalyse mit der CPE und den CVE-Datenbanken

Die folgende Abbildung zeigt euch den Überblick einer VA anhand des CPE-Dictionary und der CVE-Datenbank. Der erste Schritt ist die Zuweisung von CPEs zu den Softwareprodukten des Inventars – die sogenannte CPE-Zuweisung. Danach werden mit Hilfe der zugewiesenen CPEs die CVEs für die Softwareprodukte gesucht, was als CVE-Suche bezeichnet wird. Die Suche sollte einfach sein, da jeder CVE-Eintrag eine Liste von betroffenen Softwareprodukten im CPE-Format enthält. Am Ende, falls CVEs für die zugewiesene CPEs gefunden wurden, wird eine Liste von verwundbaren Softwareprodukten ausgegeben.


Überblick einer Verwundbarkeitsanalyse

Wichtige zu beachtende Vor- und Nachteile von der CPE und von CVE-Datenbanken

Die CVE-Datenbank und das CPE-Dictionary haben mehrere Vorteile für euch. Der wichtigste Aspekt ist, dass beide Datenbaken öffentlich zugänglich sind und den CPE- und CVE-Standards entsprechen. Dies ermöglicht kleinen und mittelständischen Unternehmen, die lediglich ein geringes Budget haben, die Umsetzung einer kostengünstigen VA. Zudem ermöglicht euch die Verwendung von Standardschnittstellen den Austausch von Informationen zwischen Systemen, welche die CPE- und CVE-Standards erfüllen.

Wie gesagt, ihr müsst einige Dinge berücksichtigen, um fehlerhafte Resultate in einer VA zu vermeiden:

  • In der CVE-Datenbank gibt es CVEs, die keine CPE enthalten. Daher kann eine Suche von CVEs nur mit der Software-CPE unvollständige Ergebnisse liefern.
  • Es gibt Softwareprodukte, die keine passende CPE im CPE-Dictionary haben. In diesem Fall kann keine automatische CPE-Zuweisung zu diesen Softwareprodukten funktionieren.
  • Es findet keine Synchronisierung zwischen die CPE-Dictionary und die CVE-Datenbank statt. Bis zum 14.02.2017 gab es 105.591 CPEs in der CVE-Datenbank, die nicht im CPE-Dictionary waren.
  • Es existieren CPE- und CVE-Einträge, die Tippfehler enthalten. Außerdem gibt es CPEs, die semantisch gleich sind, aber syntaktisch unterschiedlich.

Fazit

Wie ihr euch vorstellen könnt, verursachen verwundbare Softwareprodukte einen großen Schaden in einem Unternehmen. Daher ist eine effektive und effiziente VA sehr wichtig. Die Verwendung des CPE-Dictionary und der CVE-Datenbank in einer VA kann ein guter Ansatz sein, solange ihr die genannten Nachteile berücksichtigt. Andernfalls könnten die Resultate einer VA fehlerhaft sein. Solche Fehler können zum Beispiel verursachen, dass das VA-Tool ein verwundbares Softwareprodukt nicht als verwundbar klassifiziert. Als Folge davon kann einer Cyberangreifer die verwundbare Software ausnutzen.

Bild Luis Alberto Benthin Sanguino

Autor Luis Alberto Benthin Sanguino

Luis Alberto Benthin Sanguino ist bei adesso in der Line of Business Automotiv DEV am Standort München tätig. Er befasst sich mit verschiedenen Themen im Bereich IT-Sicherheit - insbesondere Verwundbarkeitsanalyse, Honeypot Systemen und Analyse von bösartige Webseiten.

Diese Seite speichern. Diese Seite entfernen.