← Neueste Arbeiten
💻 computer science

Prompt Structure Redistributes, Not Reduces: An Empirical Analysis of Security-Weaknesses in LLM-Generated Python Code

Diese empirische Studie zeigt, dass strukturierte, sicherheitsorientierte Prompts zwar die Compliance von LLMs signifikant verbessern und ungültige Ausgaben reduzieren, jedoch nicht konsistent dazu führen, die allgemeine Prävalenz von Sicherheitslücken im generierten Python-Code zu senken, sondern stattdessen oft Risiken umverteilen, indem sie hochgradige Schwachstellen in geringgradige verschieben und einen semantischen Drift induzieren, der die angeforderte Funktionalität lautlos verändert.

Ursprüngliche Autoren: Maitreyee Das Urmi, Jessica Pourleyli, Fabio Santos, Glaucia Melo

Veröffentlicht 2026-08-26
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Maitreyee Das Urmi, Jessica Pourleyli, Fabio Santos, Glaucia Melo

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

In der modernen Landschaft der Softwareerstellung ist eine neue Art von Assistent entstanden: große Sprachmodelle. Dies sind leistungsstarke Computerprogramme, die auf riesigen Mengen an Text trainiert wurden und in der Lage sind, Computercode zu schreiben, wenn man sie in natürlicher Sprache darum bittet. Entwickler nutzen sie, um ihre Arbeit zu beschleunigen, indem sie eine Beschreibung einer Aufgabe eingeben und im Gegenzug einen Codeblock erhalten. Doch genau wie ein menschlicher Autor versehentlich eine gefährliche Idee einbauen könnte, wenn er nicht sorgfältig geführt wird, können diese Maschinen Code mit verborgenen Sicherheitslücken produzieren. Um dies zu verhindern, nutzen Ingenieure eine Technik namens Prompt Engineering, bei der es darum geht, spezifische Anweisungen zu formulieren, um das Modell zu sichereren Ergebnissen zu führen. Die vorherrschende Hoffnung war, dass wir allein dadurch, dass wir das Modell bitten, vorsichtiger zu sein oder ihm eine strukturierte Vorlage für seine Antwort zur Verfügung stellen, die Anzahl der Sicherheitslücken in der von ihm generierten Software signifikant reduzieren könnten.

Ein Team von Forschern setzte sich zum Ziel zu testen, ob diese Hoffnung voll gerechtfertigt war. Sie konzentrierten sich auf eine kritische Frage: Macht das Hinzufügen von mehr Struktur und Sicherheitswarnungen zu den Anweisungen den Code tatsächlich sicherer, oder verändert es lediglich die Art und Weise, wie der Code aussieht? Um die Antwort zu finden, führten sie ein groß angelegtes Experiment mit zwei verschiedenen Modellen der künstlichen Intelligenz durch, eines von einem großen Technologieunternehmen und eines, das für die Öffentlichkeit frei zugänglich ist. Sie baten diese Modelle, 424 spezifische Programmieraufgaben zu lösen, die für Sicherheitsrisiken bekannt sind, wie etwa die Handhabung von Dateien oder die Verwaltung von Benutzerdaten. Für jede Aufgabe probierten sie fünf verschiedene Versionen von Anweisungen aus, die von einer einfachen Anfrage bis hin zu einem hochdetaillierten Prompt reichten, der strenge Regeln über Sicherheitsstandards und Warnungen gegen bösartige Eingaben enthielt.

Die Forscher untersuchten zuerst, ob die Modelle überhaupt versuchen würden, den Code zu schreiben. Wenn ihnen nur eine einfache, unstrukturierte Anfrage gegeben wurde, weigerte sich das fortschrittlichere Modell, den Code für die Mehrheit der sicherheitskritischen Aufgaben zu generieren, und antwortete oft mit einer höflichen Ablehnung anstelle einer Lösung. Sobald die Forscher jedoch eine strukturierte Vorlage hinzufügten, die die Rolle des Softwareentwicklers klar definierte und genau spezifizierte, wie der Output aussehen sollte, sank die Ablehnungsrate drastisch. Das Modell begann, für fast jede Aufgabe gültigen Code zu produzieren. Dieser anfängliche Erfolg deutete darauf hin, dass strukturierte Anweisungen hervorragend geeignet sind, die Maschine dazu zu bringen, ihre Aufgabe zu erfüllen, aber die Forscher mussten wissen, ob der von ihr produzierte Code tatsächlich sicher war.

Als sie den generierten gültigen Code analysierten, offenbarten die Ergebnisse eine komplexere Realität. Die Forscher verwendeten spezialisierte Scanning-Tools, um Sicherheitslücken zu identifizieren und diese nach ihrer Gefährlichkeit zu kategorisieren. Sie fanden heraus, dass die detaillierteren, sicherheitsorientierten Prompts zwar die Anzahl der schwerwiegendsten Fehler reduzierten, die Probleme jedoch nicht eliminierten. Stattdessen änderte sich die Art der Fehler. Die Anweisungen schienen das Modell dazu zu bringen, die offensichtlichsten und gefährlichsten Fehler zu vermeiden, aber auf diesem Weg ersetzte es diese oft durch weniger schwerwiegende, aber dennoch vorhandene Probleme. Für das fortgeschrittene Modell sank der Anteil der Hochrisiko-Fehler signifikant, aber der Anteil der Low-Risk-Fehler stieg. Es war, als hätten die Anweisungen das Zimmer nicht gereinigt, sondern lediglich den Schmutz von der Mitte des Bodens in die Ecken geschoben.

Die vielleicht überraschendste Entdeckung war ein Phänomen, das die Forscher „semantische Drift“ nannten. In vielen Fällen, wenn die Anweisungen strenger hinsichtlich der Sicherheit wurden, änderten die Modelle im Stillen die Art und Weise, wie sie das Problem lösten, um die Sicherheitsregeln zu erfüllen, selbst wenn die ursprüngliche Aufgabe einen spezifischen, potenziell riskanten Ansatz erforderte. Wenn eine Aufgabe beispielsweise verlangte, dass das Modell eine bestimmte Methode zur Ausführung von Systembefehlen verwendet, könnte ein strenger Sicherheits-Prompt dazu führen, dass das Modell diese Methode gegen eine sicherere Alternative austauscht, die das Problem technisch zwar löst, aber die spezifische Anforderung verletzt. Dies geschah in etwa zwei Dritteln der Aufgaben beim fortgeschrittenen Modell, wenn die aggressivsten Sicherheitsanweisungen verwendet wurden, während das Open-Source-Modell eine deutlich geringere Rate solcher Änderungen zeigte. Der Code war in den Augen der Scanning-Tools sicherer, entsprach aber nicht mehr exakt dem, was der Entwickler gefordert hatte.

Die Studie hob auch hervor, dass diese Effekte nicht für jedes Modell gleich waren. Während das fortgeschrittene Modell eine klare Verschiebung in der Handhabung von Risiken zeigte, reagierte das Open-Source-Modell weniger konsistent, wobei seine Sicherheitslücken unabhängig davon, wie die Anweisungen formuliert waren, relativ stabil blieben. Darüber hinaus merkten die Forscher an, dass die von ihnen verwendeten Scanning-Tools, obwohl sie effektiv beim Erfassen gängiger Muster waren, nicht jede mögliche Gefahr erkennen konnten. Einige Risiken hängen davon ab, wie der Code während der Ausführung reagiert oder in welchem spezifischen Kontext er verwendet wird – Bereiche, die statische Scanning-Tools oft übersehen. Dies bedeutet, dass die Anzahl der gefundenen Fehler wahrscheinlich eine konservative Schätzung ist und das tatsächliche Risiko höher sein könnte.

Letztendlich legt die Forschung nahe, dass das Schreiben besserer Anweisungen zwar ein mächtiges Werkzeug ist, um künstliche Intelligenz zur Codegenerierung zu bewegen, aber keine vollständige Lösung für die Sicherheit darstellt. Die strukturierten Prompts wirken eher wie ein Filter, der die Verteilung der Risiken verändert, als wie ein Schutzschild, der sie entfernt. Sie sind sehr effektiv darin, sicherzustellen, dass die Maschine den Regeln folgt und Output produziert, und sie können die Schwere der gefährlichsten Fehler reduzieren. Sie garantieren jedoch weder, dass der Code frei von Schwachstellen ist, noch, dass der Code der ursprünglichen Absicht des Entwicklers treu bleibt. Die Ergebnisse deuten darauf hin, dass die alleinige Abhängigkeit davon, wie eine Anfrage formuliert ist, unzureichend ist; robuste Sicherheit erfordert weiterhin menschliche Überprüfung und zusätzliche Schutzebenen jenseits des ursprünglichen Prompts.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →