18. April 2023

ChatGPT ein Segen für Pentester:innen oder nicht zu gebrauchen? #3

Suche nach CVEs anhand von Versionsnummern – Kann ChatGPT anhand von übergebenen Produktinformationen und Versionsnummern CVEs ausfindig machen?

Ein wesentlicher Bestandteil von Penetrationstests kann die Suche nach bereits öffentlich bekannten Schwachstellen für die zu testende Softwareversion sein. Viele Anwendungen und Systeme verwenden veraltete und verwundbare Software, die nur darauf wartet, von Angreifern ausgenutzt zu werden. Mit Hilfe von ChatGPT kann die Suche nach bereits öffentlich bekannten Schwachstellen erleichtert werden. Um dies zu testen, wurden zwei verschiedene Softwarelösungen verwendet, die definitiv Schwachstellen aufweisen: „TikiWiki 21.1“ & „Apache XAMPP 7.4.3“ wurden dafür ausgewählt. Die ausgewählte TikiWiki-Instanz ist anfällig für eine Authentifizierungsumgehung, die es anonymen Benutzern erlaubt, sich als Administrator anzumelden (CVE-2020-15906), wodurch Angreifer Code auf dem zugrundeliegenden Server ausführen können. Die ausgewählte Version von Apache XAMPP weist wiederum eine Schwachstelle auf, die die direkte Ausführung von Code ermöglicht (CVE-2020-11107). Beide Schwachstellen wurden 2020 bekannt. Die ChatAI wurde wiederum mit Daten trainiert, die bis ins Jahr 2021 zurückreichen. Es besteht also eine gute Chance, dass ChatGPT die Softwareversionen den CVE-Nummern zuordnen kann. Oder?

Leider hat der Test gezeigt, dass ChatGPT dazu nicht in der Lage ist. Als die Versionsnummern an die KI übergeben wurden, konnte diese den Versionen keine öffentlichen Schwachstellen zuordnen. Die XAMPP-Schwachstelle hat bei ihrem Bekanntwerden keinen wirklichen Aufschrei in der CyberSecurity-Szene ausgelöst. Daher kann davon ausgegangen werden, dass sie der KI nicht bekannt ist. Im Gegensatz dazu hat die TikiWiki-Schwachstelle für Aufsehen gesorgt, da alle bisherigen Installationen betroffen sind. Die Erwartung, dass zumindest dieser Softwareversion eine CVE-Nummer zugeordnet werden kann, hat sich daher leider nicht erfüllt.

ChatGPT antwortete im zweiten Beispiel mit Schwachstellen welche nicht Apache Xampp direkt betrafen. So referenziert CVE-2020-8270 auf eine Command Execution Schwachstelle in Citrix Virtual Apps and Desktops (CVAD), CVE-2020-8169 auf eine Information Disclosure Schwachstelle in cURL und CVE-2019-15846 auf eine Remote-Code-Execution Schwachstelle in EXIM.

Daraus folgt, dass wahrscheinlich nur Schwachstellen mit einer wirklich hohen Medienpräsenz von ChatGPT erfasst werden. Weniger bekannte Schwachstellen werden nicht zugeordnet. Auch liefert ChatGPT oft Falschaussagen. Somit ist die KI zumindest in diesem Punkt keine Hilfe und es sollte weiterhin eine Suchmaschine verwendet werden, um öffentliche Schwachstellen für Softwareversionen zu finden.

Schreiben von Schwachstellen Beschreibungen – Kann ChatGPT Schwachstellen beschreiben und Lösungsvorschläge unterbreiten?

ChatGPT ist eine KI, die in erster Linie dazu dient, komplexe Sachverhalte einfach zu erklären und Texte zu verfassen. Auch Penetrationstester verfassen Texte, schließlich müssen sie Berichte über gefundene Sicherheitsrisiken erstellen. Es wurde daher getestet, ob ChatGPT in der Lage ist, den Autoren wertvolle Zeit zu ersparen, indem es Schwachstellentexte generiert, die dann nur noch in den Bericht kopiert werden müssen.

Dazu wurde versucht, sowohl eine CORS- als auch eine Path-Traversal-Schwachstelle für Laien verständlich zu erklären. Für die CORS-Schwachstelle wurden eine Beschreibung, technische Beispiele sowie Möglichkeiten zur Vermeidung der Schwachstelle abgefragt.

Dies funktionierte erwartungsgemäß sehr gut. ChatGPT erklärte die Schwachstelle verständlich, gab Beispiele, wann sie auftritt und auch, welche Möglichkeiten es gibt, CORS-Schwachstellen zu beheben.

Im zweiten Test wurde nach einer Path Traversal Schwachstelle gefragt. Hier sollte ChatGPT anhand eines Beispiels einen kompletten Bericht mit Beschreibung, Auswirkung, Beispiel zur Reproduktion, CVSS Score und einer abschließenden Empfehlung schreiben. Auch das klappte ganz gut. Lediglich mit dem CVSS-Score hatte die KI Probleme. So wurde zwar der CVSS-Score ermittelt, eine Begründung fehlte jedoch. Daher wurde hier gehackt, wie die Begründung erstellt wurde. ChatGPT las hier Felder des CVSS 3.1 Standards einfach aus und bewertete ein Feld doppelt. Nach einer zweiten Nachfrage waren die Felder nun korrekt, nur die Begründung fehlte wieder.

Bemerkenswert ist auch, dass der CVSS Base Score auf wiederholte Nachfrage von 8,8 auf 7,5 geändert wurde. Es war also auch im Test möglich, sich die Schwachstellen von ChatGPT leicht verständlich erklären zu lassen. Allerdings sind die Texte meist nicht sehr formal geschrieben. Daher sollte der von der KI generierte Text immer kontrolliert werden. Auch ChatGPT macht manchmal Fehler. Um diese zu erkennen, sollte ein Penetrationstester jedoch bereits über das Wissen zum jeweiligen Thema verfügen. Er sollte sich niemals blind auf die Ausgabe von ChatGPT verlassen. Den Test, Texte für Penetrationstesting-Berichte zu schreiben, hat ChatGPT mit Bravour bestanden. CVSS-Bewertungen sollten jedoch immer selbst durchgeführt werden.

Sie haben die weiteren Teile von „ChatGPT ein Segen für Pentester:innen oder nicht zu gebrauchen?“ verpasst?

In Teil 1 finden Sie die Ergebnisse zu folgenden Beispielen:

  • Hilfe bei Programmfehlern – Kann ChatGPT bei Fehlermeldungen assistieren?
  • Vorschläge für Tools durch beschreiben der Situation – Kann ChatGPT Tools empfehlen womit z.B. Schwachstellen besser identifiziert werden können?

In Teil 2 wird außerdem folgende Fragestellung thematisiert:

  • Code Analyse – Kann ChatGPT Schwachstellen in Codeschnipseln finden?