Jailbreaking und Prompt-Injection sind Versuche, Claude dazu zu bringen, seine Richtlinien oder deine Anweisungen zu ignorieren. Obwohl Claude von Natur aus widerstandsfähig gegen solche Angriffe ist, stärken die zusätzlichen Schritte auf dieser Seite deine Schutzmechanismen, insbesondere gegen Nutzungen, die gegen unsere Nutzungsbedingungen oder Nutzungsrichtlinie verstoßen.
Diese Angriffe lassen sich in zwei Kategorien mit unterschiedlichen Bedrohungsmodellen einteilen:
In diesem Bedrohungsmodell erstellt ein Nutzer absichtlich Eingaben, um deine Anwendung dazu zu bringen, Inhalte zu erzeugen oder Aktionen auszuführen, die du nicht möchtest. Diese Maßnahmen stärken die Schutzmechanismen deiner Anwendung:
Harmlosigkeitsprüfungen: Verwende ein leichtgewichtiges Modell wie Claude Haiku 4.5, um Nutzereingaben vorab zu prüfen, bevor sie deine Hauptkonversation erreichen. Verwende strukturierte Ausgaben, um die Antwort auf eine einfache Klassifizierung zu beschränken.
Eingabevalidierung: Filtere Nutzereingaben auf bekannte Injection-Muster, bevor sie Claude erreichen. Du kannst ein LLM verwenden, um eine generalisierte Validierungsprüfung zu erstellen, indem du bekannte Jailbreaking-Formulierungen als Beispiele bereitstellst.
Prompt-Engineering: Erstelle System-Prompts, die ethische und rechtliche Grenzen betonen und Claude explizit mitteilen, wie es ablehnen soll.
Auf Wiederholungstäter reagieren: Passe Antworten an und erwäge, Nutzer zu drosseln oder zu sperren, die wiederholt versuchen, die Schutzmechanismen deiner Anwendung zu umgehen. Wenn beispielsweise ein bestimmter Nutzer mehrfach dieselbe Art von Ablehnung auslöst (etwa „Ausgabe durch Inhaltsfilterrichtlinie blockiert"), teile dem Nutzer mit, dass seine Aktionen gegen die relevanten Nutzungsrichtlinien verstoßen, und handle entsprechend.
In diesem Bedrohungsmodell schützt du deine Nutzer vor Anweisungen, die in Inhalten eingebettet sind, die Claude in ihrem Auftrag liest: der Text einer eingehenden E-Mail, eine abgerufene Webseite, OCR-Ausgabe aus einer hochgeladenen Datei oder das Ergebnis eines Tool-Aufrufs. Ein Angreifer, der diesen Inhalt beeinflussen kann, könnte Anweisungen einbetten, die versuchen, Claude umzulenken.
Strukturiere deine Anwendung so, dass Claude nicht vertrauenswürdige Inhalte zuverlässig von deinen Anweisungen unterscheiden kann:
Platziere nicht vertrauenswürdige Inhalte nur in Tool-Ergebnissen. Liefere Inhalte von Drittanbietern an Claude innerhalb von tool_result-Blöcken, niemals in system-Prompts oder einfachen User-text-Blöcken. Claude ist darauf trainiert, Anweisungen, die innerhalb von Tool-Ergebnissen erscheinen, mit angemessener Skepsis zu behandeln. Siehe Tool-Aufrufe verarbeiten für das tool_result-Format.
Teile Claude mit, was der Inhalt ist und woher er stammt. Mache in der description des Tools oder in der Struktur des Ergebnisses selbst die Art und Quelle des Inhalts explizit: zum Beispiel, dass es sich um den Text einer eingehenden E-Mail von einem unbekannten Absender handelt oder um OCR-Text, der aus einem vom Nutzer hochgeladenen Bild extrahiert wurde. Dieser Kontext hilft Claude einzuschätzen, wie sehr es eingebetteten Anweisungen vertrauen kann.
Gib die Richtlinie in deinem System-Prompt an. Teile Claude explizit mit, dass Inhalte, die von Tools, Dokumenten oder Suchen zurückgegeben werden, nicht vertrauenswürdige Daten sind und niemals den System-Prompt oder die ursprüngliche Anfrage des Nutzers überschreiben dürfen.
Kodiere nicht vertrauenswürdige Inhalte als JSON. Verpacke Strings von Drittanbietern nach Möglichkeit in ein JSON-Objekt, anstatt sie in Freitext zu verketten. JSON-Escaping bietet eindeutige Trennzeichen zwischen der nicht vertrauenswürdigen Nutzlast und der umgebenden Struktur, sodass ein Angreifer kein Anführungszeichen oder Tag schließen kann, um in einen Anweisungskontext „auszubrechen".
Platziere deine eigenen Anweisungen nicht in Tool-Ergebnissen. Da Claude Tool-Ergebnis-Inhalte als nicht vertrauenswürdige Daten behandelt, könnten Anweisungen, die du dort platzierst, ignoriert oder als potenzielle Injection markiert werden. Sende deine Anweisungen in einem user-Turn, der auf den tool_result-Block folgt. Ab Claude Opus 4.8 kannst du auch eine Systemnachricht mitten in der Konversation verwenden.
Beschränke Claudes Zugriff auf sensible Daten und Aktionen. Wende das Prinzip der geringsten Rechte an, damit eine erfolgreiche Injection minimalen Schaden anrichten kann: Gib Claude keinen Zugriff auf Geheimnisse, die es nicht benötigt, führe Tools in Sandbox-Umgebungen aus und beschränke Berechtigungen so eng wie möglich.
Prüfe Tool-Ausgaben, bevor Claude darauf reagiert. Wende dasselbe Prüfmuster mit einem leichtgewichtigen Modell, das du für Nutzereingaben verwendest, auf die Inhalte an, die deine Tools zurückgeben. Führe jedes Tool aus, übergib seine Rohausgabe an einen kleinen Klassifizierungsaufruf mit Claude Haiku 4.5 und gib den Inhalt nur dann als tool_result-Block zurück, wenn die Prüfung keinen Injection-Versuch meldet. Verwende strukturierte Ausgaben, damit das Urteil des Klassifizierers ein parsbarer Wert ist, auf dessen Basis deine Anwendung verzweigen kann.
Du kannst auch die Eingabevalidierungsmuster aus dem vorherigen Abschnitt auf Tool-Ergebnisse anwenden, bevor du sie an Claude übergibst.
Führe Red-Teaming für deinen eigenen Agenten durch. Teste vor der Bereitstellung deinen Workflow mit Dokumenten, E-Mails und Tool-Ausgaben, die absichtlich Injection-Versuche enthalten, und bestätige, dass Claude sie ignoriert und dass deine Prüf- und Bestätigungsschritte den Rest abfangen.
Analysiere regelmäßig Ausgaben auf Anzeichen erfolgreicher Injection. Nutze diese Überwachung, um deine Prompts, Validierung und Filterstrategien iterativ zu verfeinern.
Kombiniere Strategien für robusten Schutz. Hier ist ein Beispiel auf Enterprise-Niveau mit Tool-Nutzung:
Durch das Schichten dieser Strategien schaffst du eine robuste Verteidigung gegen Jailbreaking und Prompt-Injections und stellst sicher, dass deine Claude-basierten Anwendungen die höchsten Standards für Sicherheit und Compliance einhalten.
Was this page helpful?