Ist es sicher, einen API-Schlüssel in den System-Prompt eines LLM zu schreiben, wenn man dem Modell verbietet, ihn zu verraten?
Kurzantwort
Nein. Die OWASP-Vorgabe LLM07 lautet: Der System-Prompt sollte weder als Geheimnis betrachtet noch als Sicherheitskontrolle genutzt werden, und Zugangsdaten oder Verbindungsstrings gehören nicht hinein. Da LLMs per Prompt Injection gelenkt werden können, ist ein Satz wie „verrate das nie“ kein Durchsetzungsmechanismus. Geheimnisse gehören in einen Secrets-Manager, Autorisierung und Filterung werden deterministisch außerhalb des Modells erzwungen.
Man ist versucht, den System-Prompt wie serverseitige Konfiguration zu behandeln: für Nutzer unsichtbar, also sicher. Die Frage prüft, ob Sie verstehen, dass ein LLM keine Vertrauensgrenze ist.
Was OWASP sagt
OWASP LLM07:2025 (System Prompt Leakage) hält fest, dass der System-Prompt weder als Geheimnis betrachtet noch als Sicherheitskontrolle verwendet werden sollte. Sensible Inhalte wie Zugangsdaten und Verbindungsstrings gehören nie hinein. Genannte Gegenmaßnahmen: sensible Daten (API-Schlüssel, Datenbanknamen, Rollenstrukturen) vom Prompt trennen, wo möglich nicht auf System-Prompts zur Steuerung des Modellverhaltens vertrauen, unabhängige Guardrails außerhalb des LLM einsetzen und Rechtetrennung sowie Autorisierungsprüfungen deterministisch außerhalb des Modells durchsetzen.
Warum „verrate das nie“ nicht funktioniert
Das Verhalten des Modells wird durch Text geprägt — und Angreifer liefern ebenfalls Text. Prompt Injection kann das Modell dazu bringen, Anweisungen preiszugeben oder zu ignorieren; ein Verbot in natürlicher Sprache ist eine Bitte, keine Zugriffskontrolle. OWASP betont außerdem, dass die Offenlegung des Prompts nicht das Hauptrisiko ist: Die Fehler sind offengelegte Geheimnisse, umgangene Guardrails und an das LLM delegierte Autorisierungslogik.
Warum die Distraktoren scheitern
- „Modelle gehorchen zuverlässig“ — nichts garantiert das; injizierte Anweisungen konkurrieren mit Ihren.
- „In der Oberfläche versteckt“ — Verstecken ist kein Schutz, wenn das Modell zur Ausgabe verleitet werden kann.
- „Base64-kodiert“ — Kodierung ist keine Verschlüsselung, und das Modell kann sie dekodieren oder wiedergeben.
Was Interviewer hören wollen
„Gehen Sie davon aus, dass der Prompt leaken kann.“ Dann: Geheimnisse im Tresor, vom Backend-Code abgerufen, Tool-Zugangsdaten mit minimalen Rechten und Autorisierung im Code statt in Prosa.
Wahrscheinliche Anschlussfragen
- Wie würde ein Angreifer versuchen, einen System-Prompt zu extrahieren, und warum scheitert „verrate es nicht“?
- Ist ein Prompt-Leak auch ohne Geheimnisse im Prompt ein Risiko? Was sind laut OWASP die eigentlichen Fehler?
- Wo sollte stattdessen die Autorisierung für Tool-Aufrufe eines LLM-Agenten durchgesetzt werden?