Aus Linux-Magazin 07/2023

ChatGPT erzeugt unsicheren Programmcode

© Steve Allen / 123RF.com

Große Sprachmodelle können bekanntlich nicht nur plaudern, sondern auch programmieren. Dabei unterlaufen ihnen aber teils grobe Schnitzer in Sachen Sicherheit.

Seit Jahren zeigen große Sprachmodelle beeindruckende Leistungen beim Verarbeiten natürlicher Sprache, beispielsweise bei der Sentimentanalyse, dem Verständnis natürlicher Sprache oder der maschinellen Übersetzung. Möglich wurde das insbesondere durch die steigende Größe und Komplexität der Modelle. Ein Beispiel für beeindruckende Leistungen ist hier ChatGPT. Der KI-Chatbot absolviert nicht nur Frage-Antwort-Gespräche in mehreren Runden, sondern kann auch Textanweisungen in Quellcode übersetzen. Das könnte das Modell unter Umständen attraktiv für Softwareunternehmen machen, die ihre Produktivität steigern und gleichzeitig die Kosten minimieren möchten. Allerdings ist das damit verbundene Risiko noch weitgehend unbekannt.

Eine neue Studie von Informatikern der Université du Québec in Kanada hat nun ergeben, dass ChatGPT 3.5 dazu neigt, unsicheren Code zu generieren. Ihre Ergebnisse beschreiben die Forscher in der Publikation “How Secure is Code Generated by ChatGPT?” [1]. Die Forscher kommen zu dem Schluss, dass die KI, obwohl sie eigentlich Kenntnisse über Programmierschwachstellen besitzt, Code generiert, der nicht robust und dadurch unsicher ist. So fanden sie heraus, dass die von ChatGPT generierten Programme gelegentlich weit unter selbst minimalen Sicherheitsstandards bleibt, wie sie in den meisten Fällen anzuwenden wären.

In dem Experiment schlüpften die Forscher in die Rolle eines unerfahrenen Programmierers, der selbst keine Sicherheitsüberlegungen anstellt. Sie baten ChatGPT, Code zu generieren, und gaben in einigen Fällen an, dass das Programm in einem sicherheitsrelevanten Kontext verwendet werden solle. Der Chatbot generierte insgesamt 21 Anwendungen in fünf Programmiersprachen: C, C++, HTML, Java und Python. Die resultierenden Programme waren einfach und umfassten höchstens 97 Codezeilen. Dabei gaben die Forscher immer in einem kurzen Prompt an, welchen Code sie von ChatGPT erwarteten. Eine solche Aufgabe lautete beispielsweise, Zufallszahlen für einen sicherheitsrelevanten Kontext zu erzeugen. Eine andere Aufgabe bestand darin, zwei Strings zusammenzufügen.

Nach dem ersten Durchlauf erwiesen sich lediglich sieben der 21 von ChatGPT produzierten Anwendungen als sicher. Als die Forscher Änderungen am Code verlangten, erstellte der Chatbot sieben weitere sichere Anwendungen aus den verbleibenden 16 Programmen. Die Autoren stellten fest, dass ChatGPT nur dann sichere Anwendungen erstellt, wenn ein Benutzer das explizit anfordert. Als er beispielsweise beauftragt wurde, einen einfachen FTP-Server für den Datenaustausch zu programmieren, generierte er Code, der die Benutzereingaben nicht überprüfte und potenziell schädliche Zeichen nicht entfernte. Die KI fügte die Sicherheitsfunktion erst hinzu, als die Autoren sie explizit dazu aufforderten.

Laut der Studie scheint ein Teil des Problems darin zu bestehen, dass ChatGPT kein adversariales Ausführungsmodell verwendet. Ein solches Ausführungsmodell beinhaltet ein Sicherheitskonzept, demzufolge ein System versucht, Angriffe eines externen Angreifers zu erkennen und zu verhindern. Trotz dieser Schwäche räumt die KI Fehler in ihrem Code ohne Ausweichen ein. Befragt man ihn speziell zu diesem Thema, kann ChatGPT dem Benutzer eine schlüssige Erklärung dafür geben, warum sein Code potenziell angreifbar ist. Diese Erklärung verhindert allerdings den Fehler nicht. Zudem erhalten sie nur diejenigen Benutzer, die die richtigen Fragen stellen. Ein sicherheitsbewusster Programmierer, der den Chatbot zu Security-Problemen befragt, erhält also durchaus Hinweise auf die Schwächen des Bots. In Sicherheitsfragen weniger vorgebildete Programmierer bedient ChatGPT dagegen unter Umständen ohne Selbstkritik mit unsicherem Code. (jcb)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben