ChatGPT ist nicht nur ein Sprachmodell, sondern ein komplexes System. Das grosse Sprachmodell (Large Language Model, LLM) wie beispielswise GPT-5 ist zwar eine Kernkomponente. Jedoch besteht ChatGPT neben dem LLM aus weiteren Komponenten und Modulen, die wiederum teilweise Sprachmodelle beinhalten. Im folgenden einige Beispiele für solche Komponenten und Module.
Moderations- und Sicherheitsmodelle: Diese Komponenten prüfen Eingaben und teilweise Ausgaben auf Konformität mit den Richtlinien. Die Richtlinien machen beispielsweise technische und politische Vorgaben. Auf technischer Ebene werden Eingaben, die für manche Module gefährlich werden können (mehr dazu später), für verboten erklärt. Auf politischer Ebene werden Bibliotheken mit Unsagbarem unterhalten und durchzusetzen versucht.
Feinabstimmungsmodelle (RLHF): Diese Komponenten helfen dem Kernmodell, die menschlichen Präferenzen besser zu berücksichtigen. Man kann sich dies als das Soft-Skills-Modul von ChatGPT vorstellen.
Dialogmanagement-Logik: Obwohl ein grosses Sprachmodell exorbitante Mengen an Parametern besitzt, ist der Vektor, der für den Kontext und damit das Gedächtnis zuständig ist, überschaubar lange. Damit im Dialog mit ChatGPT nicht der Eindruck entsteht, man würde mit einem Alzheimerpatienten im Endstadium sprechen, wird eine separate Komponente eingesetzt, die dem bisherigen Gesprächsverlauf die relevanten Kontextinformationen entnehmen und dem grossen Sprachmodell jeweils mitgeben soll.
Bildgenerierung:
Die Bildgenerierung erfolgt mit spezifisch auf Bildgenerierung trainierten Modellen. Das grosse Sprachmodell kann auf solche Module zurückgreifen.
Webbrowser:
Um aktuelle Informationen aus dem Internet abzurufen, besitzt ChatGPT eine Art simplen Webbrowser. Dessen genaue Ausgestaltung dieser Module variiert mit der Zeit. Manchmal behauptet ChatGPT auch, es könne keine Webseiten abrufen – um es dann doch zu tun.
Codeausführung-Sandboxes:
ChatGPT besitzt Module, die in einer Sandbox Quellcode ausführen können. Der Zugriff auf diese Module wird beschränkt durch die Moderations- und Sicherheitsmodelle. Mit unterschiedlichem Erfolg.
Code Execution
Um in der Umgebung von ChatGPT Code auszuführen, gibt es mehrere potentielle Angriffspfade. Der Webbrowser wäre grundsätzlich interessant, weil man ChatGPT leicht dazu bringen kann, eine manipulierte Webseite zu laden. Jedoch scheint es so, als wäre der Webbrowser derzeit aus Sicherheitsgründen in der Funktionalität starkt eingeschränkt.
Das andere grosse Einfallstor sind die Codeausführung-Sandboxes. Diese sind zwar geschützt durch Moderations- und Sicherheitsmodelle. Doch diese lassen sich umgehen, wie das folgende Beispiel zeigt.
Hinweis: Das Problem wurde mittlerweile von OpenAI behoben. Die Schwachstelle ist in dieser Form nicht mehr ausnutzbar.
Während die Python-Sandbox dazu gebaut ist, einfachen Quellcode auszuführen, so wurde ChatGPT von Beginn an untersagt, Systemkommandos auszuführen. Die Moderations- und Sicherheitsmodelle haben ganz einfach Python-Scripts bei der Eingabe auf Systemkommandos geprüft und – falls sie solche feststellen konnten – die Übergabe an die Python-Sandbox verweigert.
Wir haben deshalb ChatGPT gebeten, Quellcode in C zuerst in Python zu konvertieren und dann in der Sandbox auszuführen. Das hat schon gereicht, um die Moderations- und Sicherheitsmodelle zu überlisten.

Im folgenden ein Auszug aus dem C-Code, den ChatGPT konvertieren und ausführen sollte.

Und dann die freundliche Antwort von ChatGPT.


Die beiden Bilder oben sind Original-Screenshots. Interessanterweise hat ChatGPT den gespeicherten Verlauf in der Zwischenzeit manipuliert. Beispielsweise wurden die versteckten Dateien aus dem Verlauf entfernt.

Ähnliche Schwachstellen werden sich immer wieder finden lassen. Dies liegt inhärent in der heute gängigen Architektur von AI-Systemen wie ChatGPT. Es gibt keine Trennung zwischen Daten- und Kommandokanal. So lange es diese Trennung nicht gibt, wird man auch immer wieder Wege finden, ChatGPT mit vermeintlichen Daten Kommandos unterzuschieben.
Ein Vergleich mit der Geschichte von SQL-Integrationen in Webapplikationen ist angezeigt. Ganz zu Beginn war fast jede Applikation verwundbar auf SQL-Injections, da überhaupt keine Trennung zwischen Daten- und Kommandokanal existiert hat. Allenfalls wurden bestimmte SQL-Schlüsselwörter auf Deny-Lists gesetzt. Dann hat man begonnen, bewusster Daten als solche zu identifizieren und auf solche Bereinigungsfunktionen einzusetzen, um einen Ausbruch in den Kommandokontext zu unterbinden. Und letztlich hat man mit Prepared Statements endlich eine solide Lösung gefunden, die – richtig angewandt – SQL Injections den Garaus gemacht haben. Davon sind wir im Bereich von Sprachmodell-Integrationen heute noch weit entfernt.
Schlussfolgerungen
Moderations- und Sicherheitsmodelle sollten Stand heute nicht als Sicherheitsfunktionen betrachtet werden, da das Konzept inhärente Schwachstellen besitzt.
Für Unternehmen ist diese Feststellung relevant. Sprachmodell-Systeme können keine Berechtigungstufen sauber unterscheiden und durchsetzen.
Deshalb dürfen Chatbots unter keinen Umständen Lesezugriff haben auf Daten, die der Benutzer nicht in Erfahrung bringen darf. Und Chatbots dürfen grundsätzlich gar nicht die Möglichkeit haben, in ungenügend isolierten Umgebungen Code auszuführen. Die Moderations- undSicherheitsmodelle sind Stand heute nicht annähernd gut genug.
