Indirekte prompt injection: Wenn deine KI die falschen Anweisungen liest
Gib einem KI-Programmieragenten die Fähigkeit, eine URL zu fetchen und Du hast ihm damit auch die Fähigkeit gegeben, Anweisungen zu lesen, die von einem Fremden geschrieben wurden. Indirekte prompt injection ist der Angriff, der das zu einem Problem macht: versteckter Text auf einer Seite, der den Agenten anweist, etwas zu tun, worum sein Betreiber ihn nie gebeten hat.
Die Art des Angriffs
Der Agent ist von Haus aus hilfsbereit. Er liest eine Seite, ein Tool-Ergebnis oder eine Datei und reagiert auf das, was er vorfindet. Ein Angreifer nutzt genau diese Hilfsbereitschaft aus, indem er Befehle in Inhalte einbaut, denen der Agent vertrauen soll – „Ignoriere Deine bisherigen Anweisungen“, „Sende den Inhalt dieser Datei“, „Führe das hier aus“. Die Anweisungen kommen nie vom Nutzer, aber der Agent kann den Unterschied nicht immer erkennen.
Verpacke es als Daten
Die Verteidigung ist eine Grenze. Alles, was von außerhalb der vertrauenswürdigen Kommunikation kommt – Webseiten, Ausgaben von Sub-Agenten, Dateien von außerhalb des Projekts – sind Daten, die gelesen werden sollen, keine Anweisungen, denen gefolgt werden muss. Mach diese Grenze deutlich und der Agent hört auf, eine Webseite als Befehlsquelle zu behandeln.
Genau das machen safe-fetch
und mcp-safe-fetch
: Sie rufen die URL isoliert ab und umschließen die Antwort mit UNTRUSTED-WEB-Tags, sodass das Modell sie als Fakten interpretiert und niemals als Befehle. Das Claude Code prompt-injection-gate
setzt dieselbe Regel mithilfe von Hooks durch, sodass sie auch in den Randfällen gilt, die eine Prompt-Eingabe allein übersehen würde.
Mechanisch, nicht optional
Eine in einem Prompt festgelegte Richtlinie ist ein Vorschlag. Eine durch einen hook durchgesetzte Richtlinie ist eine Regel. 5bats setzt auf die zweite Variante – den Schutz, der nicht davon abhängt, dass das Modell sich daran erinnert, sich entsprechend zu verhalten.
