Eine kürzlich durchgeführte Studie hat ergeben, dass Softwareingenieure, die Code generierende KI-Systeme verwenden, mit größerer Wahrscheinlichkeit Sicherheitslücken in den von ihnen entwickelten Apps verursachen. Das Papier, das von einem mit Stanford verbundenen Forscherteam mitverfasst wurde, hebt die potenziellen Fallstricke von Code-generierenden Systemen hervor, wenn Anbieter wie GitHub beginnen, sie ernsthaft zu vermarkten.
„Codegenerierende Systeme sind derzeit kein Ersatz für menschliche Entwickler“, sagte Neil Perry, Doktorand an der Stanford University und leitender Co-Autor der Studie, in einem E-Mail-Interview mit Tech. „Entwickler, die sie verwenden, um Aufgaben außerhalb ihres eigenen Fachgebiets zu erledigen, sollten besorgt sein, und diejenigen, die sie verwenden, um Aufgaben zu beschleunigen, in denen sie bereits Erfahrung haben, sollten die Ergebnisse und den Kontext, in dem sie insgesamt verwendet werden, sorgfältig überprüfen Projekt.“
Die Stanford-Studie befasste sich speziell mit Codex, dem KI-Codegenerierungssystem, das vom in San Francisco ansässigen Forschungslabor OpenAI entwickelt wurde. (Codex treibt Copilot an.) Die Forscher rekrutierten 47 Entwickler – von Studenten im Grundstudium bis hin zu Branchenexperten mit jahrzehntelanger Programmiererfahrung –, um Codex zu verwenden, um sicherheitsbezogene Probleme in Programmiersprachen wie Python, JavaScript und C zu lösen.
Codex wurde mit Milliarden von Zeilen öffentlichen Codes trainiert, um zusätzliche Codezeilen und Funktionen im Kontext des vorhandenen Codes vorzuschlagen. Das System zeigt einen Programmieransatz oder eine Lösung als Reaktion auf eine Beschreibung dessen, was ein Entwickler erreichen möchte (z. B. „Sag hallo Welt“), wobei es sowohl auf seine Wissensbasis als auch auf den aktuellen Kontext zurückgreift.
Laut den Forschern schrieben die Studienteilnehmer, die Zugang zu Codex hatten, im Vergleich zu einer Kontrollgruppe mit größerer Wahrscheinlichkeit falsche und „unsichere“ (im Sinne der Cybersicherheit) Lösungen für Programmierprobleme. Noch besorgniserregender war, dass sie eher sagten, dass ihre unsicheren Antworten im Vergleich zu den Leuten in der Kontrolle sicher waren.
Megha Srivastava, eine Postgraduierte in Stanford und die zweite Co-Autor der Studie, betonte, dass die Ergebnisse keine vollständige Verurteilung von Codex und anderen Code-generierenden Systemen darstellen. Zum einen verfügten die Studienteilnehmer nicht über Sicherheitsexpertise, die es ihnen ermöglicht hätte, Code-Schwachstellen besser zu erkennen. Abgesehen davon glaubt Srivastava, dass Codegenerierungssysteme zuverlässig hilfreich für Aufgaben sind, die kein hohes Risiko darstellen, wie etwa explorativer Forschungscode, und könnten mit Feinabstimmung ihre Codierungsvorschläge verbessern.
„Unternehmen, die ihre eigenen entwickeln [systems]die möglicherweise weiter in ihrem internen Quellcode geschult wurden, sind möglicherweise besser dran, da das Modell ermutigt werden kann, Ausgaben zu generieren, die besser mit ihren Codierungs- und Sicherheitspraktiken übereinstimmen“, sagte Srivastava.
Wie können Anbieter wie GitHub also verhindern, dass Sicherheitslücken von Entwicklern eingeführt werden, die ihre Code generierenden KI-Systeme verwenden? Die Co-Autoren haben einige Ideen, darunter einen Mechanismus, um die Eingabeaufforderungen der Benutzer zu „verfeinern“, um sie sicherer zu machen – ähnlich wie ein Supervisor, der grobe Codeentwürfe durchsieht und überarbeitet. Sie schlagen auch vor, dass Entwickler von Kryptographie-Bibliotheken sicherstellen, dass ihre Standardeinstellungen sicher sind, da Code-generierende Systeme dazu neigen, sich an Standardwerte zu halten, die nicht immer frei von Exploits sind.
„KI-Assistenten zur Codegenerierung sind eine wirklich aufregende Entwicklung, und es ist verständlich, dass so viele Menschen sie gerne verwenden. Diese Tools werfen jedoch Probleme auf, die in Betracht gezogen werden müssen, um voranzukommen … Unser Ziel ist es, eine breitere Aussage über die Verwendung von Codegenerierungsmodellen zu treffen“, sagte Perry. „Es muss mehr daran gearbeitet werden, diese Probleme zu untersuchen und Techniken zu entwickeln, um sie anzugehen.“
Für Perry ist das Einführen von Sicherheitslücken nicht der einzige Fehler von Code-generierenden KI-Systemen. Mindestens ein Teil des Codes, mit dem Codex trainiert wurde, unterliegt einer restriktiven Lizenz; Benutzer konnten Copilot auffordern, Code aus Quake, Codeausschnitte in persönlichen Codebasen und Beispielcode aus Büchern wie „Mastering JavaScript“ und „Think JavaScript“ zu generieren. Einige Rechtsexperten haben argumentiert, dass Copilot Unternehmen und Entwickler gefährden könnte, wenn sie unwissentlich urheberrechtlich geschützte Vorschläge aus dem Tool in ihre Produktionssoftware integrieren würden.
GitHubs Versuch, dies zu korrigieren, ist ein Filter, der erstmals im Juni auf der Copilot-Plattform eingeführt wurde und Codevorschläge mit ihrem umgebenden Code von etwa 150 Zeichen gegen öffentlichen GitHub-Code prüft und Vorschläge ausblendet, wenn es eine Übereinstimmung oder „nahezu Übereinstimmung“ gibt. Aber es ist ein unvollkommenes Maß. Tim Davis, Informatikprofessor an der Texas A&M University, stellte fest, dass Copilot durch Aktivieren des Filters große Teile seines urheberrechtlich geschützten Codes ausgab, einschließlich aller Zuordnungs- und Lizenztexte.
„[For these reasons,] Wir äußern weitgehende Vorsicht gegenüber der Verwendung dieser Tools, um die Schulung von Entwicklern im Anfangsstadium über starke Programmierpraktiken zu ersetzen“, fügte Srivastava hinzu.