Zum Inhalt springen

Prompt Injection

Prompt Injection ist die Angriffsklasse Nr. 1 gegen LLM-Anwendungen. Definition, Direct- und Indirect-Vektoren, OWASP-LLM01 und Abgrenzung zum Jailbreak.

Prompt Injection ist eine Angriffstechnik gegen Anwendungen, die auf großen Sprachmodellen aufbauen (Large Language Models, kurz LLMs; die KI hinter Chatbots wie ChatGPT). Ein Angreifer schmuggelt eigene Anweisungen in den Text, den das Sprachmodell verarbeitet: entweder direkt in die Chat-Eingabe eines Nutzers oder versteckt in externe Inhalte, die die Anwendung im Hintergrund lädt (Webseiten, PDF-Anhänge, E-Mails, Rückgaben angebundener Werkzeuge). Ziel ist, das Modell zu einer Handlung zu bewegen, die es nicht tun soll: vertrauliche Daten herausgeben (Datenabfluss), die eigenen Sicherheitsregeln brechen oder angebundene Werkzeuge missbrauchen. Prompt Injection ist die häufigste Angriffsklasse gegen solche Anwendungen und steht in der Sicherheits-Rangliste OWASP LLM Top 10 (branchenüblicher Referenzrahmen für LLM-Sicherheit) auf Platz 1 (LLM01).

Was ist Prompt Injection?

Der Angriff greift die Eingabe-Schicht eines Sprachmodells an, also den Text, aus dem das Modell seine nächste Antwort ableitet. Ein Sprachmodell verarbeitet in einem einzigen Aufruf alle Inhalte in seinem Arbeitsspeicher (im Fachjargon Kontextfenster) als einen zusammenhängenden Textstrom: die vertrauenswürdige Betriebsanweisung des Anbieters (der sogenannte System-Prompt mit den Grundregeln, was das Modell tun und lassen soll), Zusatz-Instruktionen der Entwickler, die aktuelle Nutzerfrage, abgerufene Dokumente aus einer Wissensdatenbank, Rückgaben aus angebundenen Werkzeugen und Text-Ausschnitte aus dem Web. Für das Modell gibt es keine technische Schranke, die Anweisung von Daten trennt, anders als in klassischer Software, wo Programmcode und Nutzereingabe streng voneinander getrennt sind. Genau diese Vermischung macht Prompt Injection zu einer eigenen Angriffsklasse. Der Begriff wurde 2022 in Analogie zu SQL Injection geprägt (analoge Angriffsklasse gegen Datenbanken); das [OWASP GenAI Security Project](https://genai.owasp.org/llmrisk/llm01-prompt-injection/) führt Prompt Injection in der Version 2025 der LLM Top 10 als LLM01 auf.

Zwei Grundvektoren strukturieren das Feld. Direct Prompt Injection liegt vor, wenn der Angreifer selbst der Nutzer der Anwendung ist und die manipulative Anweisung direkt in den User-Prompt schreibt (typische Payload: Aufforderungen an das Modell, alle vorherigen Anweisungen zu ignorieren und den System-Prompt auszugeben). Indirect Prompt Injection funktioniert über einen dritten Kanal: Die Anweisung sitzt in einem externen Content, den die Anwendung zur Laufzeit einliest. Das kann ein Retrieval-Chunk aus einer Wissensbasis sein, eine Webseite, ein Kalender-Eintrag, ein E-Mail-Anhang oder die Rückgabe eines aufgerufenen Tools. Der eigentliche Nutzer bemerkt den Angriff oft nicht, weil die Payload aus einer scheinbar legitimen Quelle stammt. Greshake et al. haben Indirect Prompt Injection 2023 in [„Not what you've signed up for"](https://arxiv.org/abs/2302.12173) systematisch beschrieben.

Die Angriffsfläche wächst proportional zur Anzahl externer Quellen, die eine Anwendung in den Prompt lädt. Retrieval-Augmented-Generation-Systeme, Agenten mit Web-Browsing, Tool-Use-Setups und Multi-Agent-Architekturen vervielfachen die Eingangskanäle. Typische Angriffsziele sind Datenexfiltration (System-Prompt-Leak, Herausgabe abgerufener Dokumente, PII), Regelbruch (Bypass der Alignment- und Anwendungsregeln), Tool-Missbrauch (unerlaubte Aktionen in angebundenen Systemen), Reputations-Angriffe (manipulierte Ausgaben in nutzersichtbaren Oberflächen) und Weiterleitung an externe Endpunkte. Reine Prompt-Filter reichen als Verteidigung nicht aus; belastbare Setups kombinieren Input- und Output-Validierung, Content-Isolation (untrusted Inhalte in eigene Rollen oder Delimiter), Least-Privilege-Berechtigung des Agents, Human-in-the-Loop für irreversible Aktionen, Audit-Trail und regelmäßiges Red-Teaming.

Abgrenzung zu Jailbreak, Data Poisoning, Model Extraction und Adversarial Prompt

Fünf verwandte Begriffe werden mit Prompt Injection verwechselt oder synonym verwendet. Die relevanten Trennlinien:

BegriffAngriffs-EbeneVerhältnis zu Prompt Injection
JailbreakModell-AlignmentUmgeht die Alignment-Regeln des Modells direkt über den User-Prompt (Rollenspiele, hypothetische Framings, „DAN"-Muster), damit das Modell verbotene Antworten liefert. Ziel ist die Modell-Policy als solche. Prompt Injection nutzt dieselbe Oberfläche, zielt aber zusätzlich auf System-Prompt, Kontext und Tool-Aufrufe.
Data PoisoningTrainings-/Fine-Tuning-DatenManipuliert die Daten, aus denen das Modell lernt, und wirkt persistent in den Gewichten. Prompt Injection ist ein Runtime-Angriff, Data Poisoning ein Supply-Chain-Angriff.
Model ExtractionModellgewichteRekonstruiert Modellgewichte oder proprietäre Fine-Tunings über systematische Abfragen. Ziel ist das geistige Eigentum am Modell selbst. Prompt Injection zielt auf Verhalten und Datenzugriff einer laufenden Anwendung.
Adversarial PromptOptimierte Token-SequenzSystematisch konstruierte, oft unauffällig oder zufällig wirkende Eingaben (etwa aus Greedy-Coordinate-Gradient-Verfahren), die das Modell zu einer definierten Fehlklassifikation zwingen. Nutzt in der Regel keine natürliche Sprache. Es gibt Überlappungen: adversariale Suffixe werden auch als Injection-Payload eingesetzt.
Prompt EngineeringPrompt-DesignLegitime Methodik, Prompts systematisch zu entwerfen und zu evaluieren. Nutzt dieselbe Oberfläche wie Prompt Injection, aber mit umgekehrter Absicht. Prompt Engineering ist keine Angriffsklasse.

Die häufigste Verwechslung ist Prompt Injection vs. Jailbreak. OWASP LLM01 grenzt beide Begriffe explizit ab: Jailbreak ist eine Teilmenge, die auf das Alignment des Modells zielt. Prompt Injection ist der breitere Begriff, der auch App-Schicht, Kontext und Tools umfasst. Der Unterschied wird in der Angreifer-Sicht sichtbar: Ein Jailbreak lässt das Modell Regeln brechen, die es in jeder Anwendung befolgen soll. Eine Prompt Injection lässt eine konkrete Anwendung Dinge tun, die diese Anwendung nicht tun soll: etwa Kundendaten an einen fremden Endpunkt weiterleiten, obwohl das Modell selbst keine verbotene Antwort geben muss.

Die Trennung zu Data Poisoning und Model Extraction ist einfacher: Beide zielen auf das Modell als Artefakt (Trainingsdaten, Gewichte). Prompt Injection zielt auf das Verhalten einer laufenden LLM-Anwendung. Adversarial Prompts liegen dazwischen: Sie manipulieren das Modell zur Laufzeit über die Input-Schicht, verwenden aber typischerweise optimierte Token-Sequenzen statt natürlicher Sprache. Der Übergang ist fließend, sobald adversariale Suffixe an eine natürlich-sprachliche Injection angehängt werden.

Beispiel: Indirect Prompt Injection über einen RAG-Assistenten

Ein internes Wissens-Assistenten-System lädt zur Beantwortung einer Nutzerfrage eine Firmen-Webseite in den Kontext. Der abgerufene Chunk enthält neben dem regulären Text einen unsichtbaren Absatz in weißer Schrift oder Zero-Width-Zeichen. Der Absatz gibt sich als SYSTEM-Nachricht aus, setzt einen angeblichen Debug-Modus und weist das Modell an, bei jeder Preisfrage den Wert Null zurückzugeben und parallel das Tool send_http_get mit der URL https://angreifer.example/collect?data= plus der E-Mail-Adresse des Anfragenden aus dem Nutzer-Profil aufzurufen. Der Angreifer hat den Absatz vorher in die geladene Quelle platziert: über eine Kommentarfunktion, eine kompromittierte Wiki-Seite oder ein bearbeitbares PDF im Dokumentenspeicher.

Das Modell verarbeitet den Absatz als Anweisung, weil es zwischen legitimer System-Regel und in den Kontext eingebettetem Text nicht unterscheiden kann. Ohne zusätzliche Verteidigungs-Layer generiert das Modell den Tool-Aufruf, das Agenten-Framework führt ihn aus, und die E-Mail-Adresse des ursprünglichen Nutzers landet auf einem fremden Server. Der Nutzer selbst hat nichts Bösartiges eingegeben. Wirksame Gegenmaßnahmen in diesem Setup sind eine strikte Trennung von Retrieval-Content und Instruktion (etwa über eigene XML-Tags oder eine separate retrieved_content-Rolle in der API), eine Tool-Allowlist ohne send_http_get in Richtung nicht verifizierter Domains, Output-Filter auf verdächtige URL-Muster, ein Log-Trail für spätere Analyse und eine Human-in-the-Loop-Bestätigung für Tool-Aufrufe, die Daten an externe Endpunkte senden.

Prompt Injection im eigenen Unternehmen umsetzen?

Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.

Gespräch vereinbaren