KI-gestützte Programmierung: Risiken, aber auch viel Potenzial
Autor/Redakteur: Nathan Hamiel, Senior Director of Research bei Kudelski Security/gg
KI-Tools wie ChatGPT sorgen fast täglich für Schlagzeilen. Programme, die Sprachmodelle für große Textmengen (Large Language Models, kurz LLM) verwenden, gelten für viele als Allheilmittel für die Bewältigung praktischer Probleme in Wirtschaft und Gesellschaft. Andere machen sich Sorgen über die sicherheitsrelevanten Auswirkungen der sogenannten Generative AI.
Wie so oft liegt die Wahrheit in der Mitte. Denn die Effektivität solcher KI-Assistenten oder Chatbots hängt zu großen Teilen davon ab, wie sie konkret eingesetzt werden, und wie gut sie ihre spezifischen Aufgaben erledigen. Dazu zählen beispielsweise das Schreiben von Computercode und der Einsatz von Modellen in Werkzeugen zum Programmieren und Verstehen von Code. Mit der steigenden Verbreitung von LLM-basierten Tools werden sich auch die Entwickler zunehmend mit diesen Werkzeugen beschäftigen. Sie werden versuchen herauszufinden, wie sie damit ihre Produktivität steigern können, ohne die integrierte Entwicklungsumgebung verlassen und spezielle Ratgeberplattformen konsultieren zu müssen.
Irrationale Bedenken
Die Gefährdung bestimmter Berufsbilder ist ein häufig diskutiertes Thema im Zusammenhang mit LLM. So fürchten Juristen um den Anwaltsberuf, weil mithilfe von ChatGPT praktisch jeder in der Lage sei, das Staatsexamen zu bestehen. Auch in Bezug auf das KI-gestützte Schreiben von Code halten sich solche Bedenken hartnäckig. Sie sind jedoch stark übertrieben. Denn beim Anwaltsberuf geht es nicht nur darum, einfache juristische Fragen zu beantworten. Und Entwickler haben neben dem Schreiben von Code ebenfalls noch weitere, wesentlich komplexere Aufgaben.
Zudem können KI-gestützte Tools keine kompletten Programme schreiben oder kontextbezogene Entscheidungen auf Basis einer großen, vernetzten Code-Basis fällen. Denn die Eingabeaufforderungen sind auf eine bestimmte Anzahl von Tokens begrenzt. Das heißt, es lässt sich nur eine bestimmte Menge an Informationen aus dem aktuellen Kontext in die Anfrage an das Tool aufnehmen. Die derzeit verfügbaren Codierungsassistenten sind jedoch nicht in der Lage, große Dokumente zu analysieren, Anforderungen daraus abzuleiten und auf dieser Basis den entsprechenden Code zu generieren. Bevor diese Aufgabe mit einer akzeptablen Fehlerquote umsetzbar ist, müssen erst noch einige Herausforderungen bewältigt werden.
Gefahren bei der KI-gestützten Programmierung
Gleichzeitig ist nicht von der Hand zu weisen, dass der Einsatz automatischer Codierungsassistenten eine Reihe von Risiken birgt. So wenden sie – ähnlich wie herkömmliche LLMs – zum Teil sehr ungewöhnliche und rätselhafte Ergebnisse auf die menschliche Sprache an.
Ein weiteres Risiko stellt das „Automation Bias“ dar – also das Phänomen, dass Menschen den Vorschlägen eines automatisierten Systems folgen, die ihrer eigenen Logik oder ihrem Bauchgefühl widersprechen. Auf Entwickler angewandt, kann deren implizites Vertrauen in die Ergebnisse des LLM die Implementierung von potenziell fehlerhaftem Code zur Folge haben und die Sicherheitslage des Unternehmens gefährden. Selbst funktionalen Code gibt ein KI-Tool nie ganz ohne Risiko aus.
Hinzu kommen architektonische Herausforderungen. LLMs haben kein kontextbezogenes Wissen über das Softwaresystem, das erstellt werden soll. Auch die damit verbundenen Ziele kennen sie nicht. Sie haben nur einen limitierten Einblick in den bereits geschriebenen Code. Arbeiten Entwickler beispielsweise an einer großen Code-Basis aus miteinander verbundenen Komponenten, kann das KI-Tool diesen Gesamtzusammenhang nicht verstehen und wird daher wahrscheinlich nur punktuelle Vorschläge machen. Dadurch kann es den Code unnötig aufblähen und Wartungsprobleme verursachen.