Improper Output Handling
- Ausgabe / Aktion
Vom Modell erzeugte Inhalte werden nachgelagert weitergereicht — in eine Shell, eine Datenbankabfrage, einen Browser, einen anderen Agenten — ohne ausreichende Validierung oder Bereinigung, sodass der Modelltext zu einem Ausführungspfad wird.
Was es ist
Fehlerhafte Ausgabeverarbeitung ist eine Lücke zwischen dem, was ein Modell erzeugt, und dem, was ein nachgelagertes System damit macht: Unzureichende Validierung oder Bereinigung der Ausgabe, bevor sie eine Shell, eine Datenbank, einen Browser oder einen anderen Agenten erreicht, macht generierten Text zu einem Ausführungspfad. Da die Ausgabe letztlich durch den Prompt geformt wird, kontrolliert eine Person, die die Eingabe kontrolliert, indirekt auch, was nachgelagert ausgeführt wird — das Modell ist ein nicht vertrauenswürdiger Vermittler, kein Client, dessen Text standardmäßig vertraut werden darf. Das Risiko verstärkt sich in einem agentischen System, in dem die Ausgabe eines Agenten routinemäßig zur Eingabe eines anderen wird: Ein nachgelagerter Agent, der dem generierten Text eines Peers so vertraut wie seiner eigenen Überlegung, übernimmt jeden unvalidierten Payload, den der vorgelagerte Agent erzeugt hat, ohne Aufzeichnung darüber, woher er stammt.
Arten
- Code-/Befehls-Injektion
- Generierter Text wird direkt in eine System-Shell oder eine Funktion wie exec oder eval übergeben, sodass ein gestalteter Prompt über das Modell als Übertragungsmechanismus Remotecodeausführung erreicht.
- Markup-/Skript-Injektion
- Generiertes JavaScript oder Markdown wird ohne Bereinigung von einem Browser gerendert und erzeugt Cross-Site-Scripting aus Inhalten, die das Modell selbst zusammengestellt hat.
- Injektion strukturierter Abfragen
- Ein generiertes SQL-Fragment oder eine ähnliche strukturierte Abfrage wird ohne Parametrisierung in eine Live-Anweisung eingefügt, sodass ein eingeschleustes Zeichen den vorgesehenen Abfragebereich verlassen kann.
Angriffsszenarien
Ein von einem Agenten erzeugtes SQL-Fragment wird direkt in eine Live-Abfrage eingefügt, und ein eingeschleustes Zeichen lässt die Abfrage über die eigenen Datensätze des Aufrufers hinaus lesen.
Unvalidierte Antwort zwischen Komponenten
Ein Allzweck-Modell gibt seine Antwort ohne Ausgabevalidierung direkt an eine privilegierte Erweiterung weiter, und die Erweiterung handelt auf Basis von Inhalten, die sie als nicht vertrauenswürdig hätte behandeln müssen.
Durch Prompt Injection getriebene Exfiltration
Ein webseiten-zusammenfassender Agent verarbeitet eine in der Seite versteckte Anweisung, kodiert vertrauliche Konversationsinhalte und sendet sie an einen von Angreifenden kontrollierten Server, ohne dass eine Ausgabevalidierung den ausgehenden Payload abfängt.
Ungeprüftes generiertes SQL
Eine Chat-Funktion erlaubt es einer Person, eine Datenbankabfrage in natürlicher Sprache anzufordern; das vom Modell generierte SQL wird ohne Prüfung ausgeführt, und eine destruktive Anfrage löscht Produktionstabellen.
Reflektiertes Skript in generiertem Inhalt
Ein gestalteter Prompt veranlasst das Modell, einen unbereinigten Skript-Payload zurückzugeben, der im Browser eines Opfers ausgeführt wird, sobald er gerendert wird, weil die Anwendung der Ausgabe des Modells als sicherem HTML vertraute.
Abwehrmaßnahmen
- Modellausgabe als nicht vertrauenswürdige Eingabe behandeln
- Wenden Sie auf jede Modellantwort eine Zero-Trust-Validierung an, bevor sie eine Backend-Funktion erreicht — dieselbe Prüfung, die jedem anderen nicht vertrauenswürdigen Client gilt, im Einklang mit Output Validation / Schema Enforcement.
- Ausgabe für ihr Ziel kodieren
- Wenden Sie kontextbezogene Kodierung an — HTML-Kodierung für Webinhalte, parametrisierte Abfragen für SQL, Pfadbereinigung für Dateioperationen — abhängig davon, wo die Ausgabe tatsächlich verwendet wird, nie einen einzigen allgemeinen Filter.
- Alles, was die Ausgabe ausführen kann, sandboxen
- Führen Sie generierten Code oder generierte Befehle innerhalb einer Sandbox Execution isoliert vom Host aus, sodass eine erfolgreiche Injektion nichts Privilegiertes erreichen kann.
- Ausgehende Muster protokollieren und überwachen
- Achten Sie auf ungewöhnliche Muster in dem, was das Modell ausgibt — die Aufzeichnung des Audit Trail darüber, was das System verlassen hat, macht aus einem einzelnen Exploit-Versuch ein erkennbares Muster.