Eine Gruppe von Forschern der Stanford University untersuchte die Auswirkungen des Einsatzes intelligenter Assistenten beim Schreiben von Code auf die Entstehung von Schwachstellen im Code. Dabei kamen Lösungen auf Basis der Machine-Learning-Plattform OpenAI Codex zum Einsatz, wie etwa GitHub Copilot, das die Bildung von relativ komplexen Codeblöcken bis hin zu vorgefertigten Funktionen ermöglicht. Die Bedenken bestehen darin, dass zum Trainieren des maschinellen Lernmodells echter Code aus öffentlichen GitHub-Repositorys verwendet wurde, darunter auch Code mit Schwachstellen. Daher kann es sein, dass der synthetisierte Code Fehler wiederholt und Code mit Schwachstellen nahelegt. Außerdem wird die Notwendigkeit zusätzlicher Prüfungen bei der Verarbeitung externer Daten nicht berücksichtigt.
An der Studie nahmen 47 Freiwillige mit unterschiedlicher Programmiererfahrung teil, vom Studenten bis zum Profi mit zehn Jahren Erfahrung. Die Teilnehmer wurden in zwei Gruppen aufgeteilt: Experimentalgruppe (33 Personen) und Kontrollgruppe (14 Personen). Beide Gruppen hatten Zugriff auf alle Bibliotheken und Internetressourcen, einschließlich der Möglichkeit, vorgefertigte Beispiele von Stack Overflow zu verwenden. Der Experimentalgruppe wurde die Möglichkeit gegeben, einen KI-Assistenten zu nutzen.
Jeder Teilnehmer erhielt fünf Aufgaben, bei denen es darum ging, potenziell fehleranfälligen Code zu schreiben, der zu Sicherheitslücken führen könnte. Es gab beispielsweise Aufgaben zum Schreiben von Verschlüsselungs- und Entschlüsselungsfunktionen, zur Verwendung digitaler Signaturen, zur Verarbeitung von Daten, die bei der Bildung von Dateipfaden oder SQL-Abfragen anfallen, zur Manipulation großer Zahlen in C-Code und zur Verarbeitung von auf Webseiten angezeigten Eingaben. Um den Einfluss von Programmiersprachen auf die Sicherheit des von KI-Assistenten erstellten Codes zu untersuchen, umfassten die Aufgaben Python, C und JavaScript.
Die Ergebnisse zeigten, dass Teilnehmer, die den intelligenten KI-Assistenten auf Basis des Codex-DaVinci-002-Modells nutzten, deutlich weniger sicheren Code produzierten als Teilnehmer, die den KI-Assistenten nicht nutzten. Insgesamt waren in der Gruppe, die den KI-Assistenten nutzte, nur 67 % der Teilnehmer in der Lage, korrekten und sicheren Code anzugeben, in der anderen Gruppe lag dieser Wert bei 79 %.
Gleichzeitig war das Selbsteinschätzungsverhalten umgekehrt: Teilnehmer, die den KI-Assistenten nutzten, glaubten, ihr Code sei sicherer als der der Teilnehmer aus der anderen Gruppe. Darüber hinaus wurde festgestellt, dass Teilnehmer, die dem KI-Assistenten weniger vertrauten und mehr Zeit damit verbrachten, die Eingabeaufforderungen zu analysieren und Änderungen daran vorzunehmen, weniger Schwachstellen im Code zuließen.
Beispielsweise enthielt aus kryptografischen Bibliotheken kopierter Code sicherere Standardparameterwerte als der vom KI-Assistenten vorgeschlagene Code. Auch bei der Nutzung des KI-Assistenten wurde die Wahl weniger zuverlässiger Verschlüsselungsalgorithmen und das Fehlen von Prüfungen auf die Authentizität zurückgegebener Werte festgestellt. Bei der C-Nummernmanipulationsaufgabe wies der mit dem KI-Assistenten geschriebene Code mehr Ganzzahlüberlauffehler auf.
Darüber hinaus umfasste eine ähnliche Studie einer Gruppe der New York University im November 58 Studenten, die aufgefordert wurden, eine Struktur zur Verarbeitung einer Einkaufsliste in C zu implementieren. Die Ergebnisse zeigten, dass der KI-Assistent kaum Auswirkungen auf die Codesicherheit hatte – Benutzer, die den KI-Assistenten verwendeten, machten im Durchschnitt etwa 10 % mehr sicherheitsrelevante Fehler.

Source: opennet.ru
