Dieser Beitrag setzt unsere Untersuchung der Sicherheit in Large Language Model (LLM)-Anwendungen fort und knüpft an die erste Diskussion in „Aufbau robuster Verteidigungen: Der Einfluss von OWASP auf LLM-Anwendungen” an, in der wir die wichtigsten OWASP-Schwachstellen für solche Systeme dargelegt haben. Hier befassen wir uns mit dem relevanten Thema der Prompt-Injektion.
Prompt-Injektion erklärt: Direkte und indirekte Bedrohungen für LLMs entpacken
Die Prompt-Injektion umfasst das Manipulieren von LLMs durch die Änderung von Prompts, die für die Steuerung von Reaktionen oder Aktionen entscheidend sind. Zwei Hauptmethoden, die Direkte Prompt-Injektion und die Indirekte Prompt-Injektion, werfen erhebliche Sicherheitsbedenken auf. Direkte Einschleusung ist ein direktes Einfügen schädlicher Inhalte in Eingabeaufforderungen, wobei die direkte Schnittstelle eines LLM ausgenutzt wird, um dessen Funktionen fehlzuleiten. Die indirekte Injektion arbeitet verdeckt und nimmt Einfluss auf LLMs, indem Aufforderungen in externe Datenquellen eingebettet werden, die das Modell später verarbeitet, wodurch Steuerbefehle ohne direkten Systemzugang eingeschleust werden.
Solche Injektionen können LLM-Funktionen untergraben und möglicherweise unbefugte Aktionen, die Offenlegung von Daten oder Dienstunterbrechungen und auslösen. In einigen Fällen können sie auch manipuliert werden, um böswillige Absichten wie die Verbreitung von Fehlinformationen voranzutreiben. Angesichts ihrer weitreichenden Auswirkungen sind Bedrohungen wie das Prompt-Leaking, bei dem sensible Informationen extrahiert werden, und das Jailbreaking, bei dem LLM-Sicherheitsfunktionen umgangen werden, aufgetaucht.
Fallstudien: Beispiele für Prompt Injection Exploits in der realen Welt
Wir werden konkrete Fälle untersuchen, die zeigen, wie Prompt-Injektions-Angriffe die LLM-Funktionalitäten untergraben.
- Das Unternehmen Remoteli.io integrierte ein LLM, um mit Tweets zum Thema Fernarbeit zu interagieren. Es dauerte jedoch nicht lange, bis die X-Benutzer entdeckten, dass sie das automatische System manipulieren und es dazu bringen konnten, ihre selbst verfassten Nachrichten wiederzugeben.
- Das folgende Beispiel zeigt, wie „Sydney”, der Codename für eine frühere Version von Bing Search, einem Problem ausgesetzt war, das als Prompt Leaking bekannt ist. Indem das Unternehmen nur einen Ausschnitt seiner Eingabeaufforderung preisgab, ermöglichte es den Nutzern versehentlich das Extrahieren der vollständigen Aufforderung ohne die ordnungsgemäße Authentifizierung, die normalerweise zur Anzeige erforderlich ist.
- Beim Jailbreaking werden die eingebauten Beschränkungen eines Systems außer Kraft gesetzt, um Reaktionen auszulösen, die normalerweise aus sicherheitsbezogenen oder ethischen Gründen blockiert sind. Angreifer verwenden häufig Kodierungsmethoden wie Base 64, HTML, Unicode, UTF-7, UTF-8, Octal oder Hex, um die Sicherheit durch Veränderung der Zeichendarstellung zu umgehen. Das folgende Beispiel zeigt Jailbreaking.
- Eine weitere gängige Jailbreaking-Methode ist der Einsatz der Do Anything Now (DAN)-Aufforderung. DAN besteht aus Befehlen, die das Modell in einen kompromittierten oder unbeschränkten Zustand zu zwingen scheinen.
Schauen Sie sich diesen Thread an, um ein Beispiel für einen solchen Angriff zu sehen: https://chat.openai.com/share/1bee521e-8011-4b70-b5bc-4f480f01c77e
- Die Prompt-Hacking-Techniken haben sich über rein textbasierte Angriffe hinaus weiterentwickelt und umfassen nun auch multimodale Angriffe, wie in der folgenden Abbildung zu sehen ist.
Personen mit akademischen Interessen können eine Vielzahl von Prompt-Injektions-Angriffen auf der vorgeschlagenen Website erkunden – jailbreakchat.com.
Glücklicherweise sind sich die Entwickler von LLMs der potenziellen Bedrohungen bewusst und integrieren rasch Sicherheitsverbesserungen, um solche Exploits abzuwehren, und passen sich so an den Takt der neu identifizierten Angriffstechniken in diesem Entwicklungsbereich an. Sollten Sie also versuchen, die vorgenannten Beispiele nachzuahmen, würde die LLM Ihre Bemühungen wahrscheinlich blockieren.
Resilienz aufbauen: Umfassende Verteidigungstaktiken
Schwachstellen durch Prompt-Injection entstehen dadurch, dass LLMs alle Eingaben in natürlicher Sprache gleich behandeln, ohne zwischen Benutzeranweisungen und externen Daten zu unterscheiden. Eine narrensichere Vorbeugung ist in LLM nicht möglich, aber praktische Schritte und Lösungen mit gesundem Menschenverstand können die Anfälligkeit für solche Angriffe verringern. Trotz aller Herausforderungen werden wir hier einige wirksame Abwehrmaßnahmen erörtern:
- Verwaltung von Privilegien:
-
- Implementierung des Least Privilege Access für den LLM unter Verwendung eindeutiger API-Tokens mit eingeschränkten Berechtigungen.
- Fordern der Genehmigung durch einen Menschen für sensible Vorgänge, um sicherzustellen, dass die Aktionen beabsichtigt und genehmigt sind.
- Strukturelle Verteidigungsmaßnahmen:
-
- Verwenden Sie Strukturen wie ChatML, XML-Tagging und Random Sequence Enclosures, um Benutzereingaben von Systemanweisungen zu unterscheiden.
- Schließen Sie die Benutzereingabe innerhalb bestimmter Grenzen ein, z. B. der „Sandwich-Verteidigung”, um den Kontext zu erhalten und Änderungen zu verhindern.
- Unterrichtliche Maßnahmen:
-
- Leiten Sie das LLM mit klaren Anweisungen an, die mögliche Manipulationsversuche vorhersehen und ihnen entgegenwirken.
- Strukturieren Sie Prompts mit Benutzereingaben, die den Systemanweisungen vorangestellt sind (‘Post-Prompting‘), um die Wirksamkeit von eingefügten Befehlen zu verringern.
- Überprüfung der Eingaben:
-
- Verwenden Sie Filtertechniken mit Blocklisten und Erlaubnislisten, um zulässige Wörter und Ausdrücke zu kontrollieren.
- Maskieren Sie Benutzereingaben, die Systembefehlen ähneln, um potenzielle Injektionen zu neutralisieren.
- Überwachung und Visualisierung:
-
- Überwachen Sie regelmäßig LLM-Interaktionen und heben Sie Antworten, die von nicht vertrauenswürdigen Quellen stammen oder verdächtig erscheinen, visuell hervor.
- Fortgeschrittene LLM-Techniken:
-
- Setzen Sie moderne, injektionsresistentere LLMs wie GPT-4 ein, um die Sicherheit zu erhöhen.
- Erwägen Sie eine Feinabstimmung des Modells mit aufgabenspezifischen Daten, um die Abhängigkeit von Prompts zu verringern, und Soft Prompting als eine potenziell kostengünstigere Alternative.
- Betriebliche Kontrollen:
-
- Verwenden Sie ein sekundäres, sicherheitsorientiertes LLM, um Prompts vor der Verarbeitung auf mögliche Bösartigkeit zu prüfen.
- Legen Sie Beschränkungen für die Länge von Eingaben und Dialogen fest, um komplexe Injektionstaktiken zu verhindern.
Durch die Umsetzung dieser Strategien wird eine vielseitige Verteidigung gegen Prompt-Injektionen geschaffen, die den Sicherheitsrahmen stärkt und Angreifer abschreckt. Da sich die Bedrohungen weiterentwickeln, müssen diese Schutzmaßnahmen flexibel und aktualisierbar sein, um einen robusten Schutz für Systeme mit LLM zu gewährleisten.
Innovationen im Bereich Prompt-Sicherheit: Tools und Lösungen zur Verbesserung der LLM-Verteidigung
Das Engagement der Entwicklergemeinschaft bei der Entwicklung einer Reihe von Lösungen und Werkzeugen zur Abwehr von Prompt-Injektions-Angriffen und zur Verbesserung der Prompt-Qualität für eine optimale LLM-Leistung ist vielversprechend. Wir werden eine Auswahl dieser innovativen Beispiele vorstellen, von denen sich einige derzeit in der Prototyp- oder Versuchsphase befinden.
- Rebuff sichert KI-Anwendungen mit einem mehrschichtigen Ansatz gegen Prompt-Injektion. Dieser Ansatz kombiniert heuristische Filter, spezielle LLM-Erkennung, eine Datenbank mit Angriffsmustern und Canary-Tokens für Leckwarnungen und Prävention.
- Deberta-v3-base-injection – Dieses Modell identifiziert und kennzeichnet Prompt-Injektionsversuche als „INJECTION”, während echte Anfragen unter der Annahme, dass gültige Anfragen verschiedene Fragen oder Stichwortsuchen umfassen, als „LEGIT” kategorisiert werden.
- Better Prompt ist ein Testframework für LLM-Prompts, das die Leistung durch die Messung der Prompt-Perplexität einschätzt und auf dem Prinzip basiert, dass Prompts mit geringerer Perplexität (nahe Null) tendenziell zu einer höheren Aufgabenleistung führen.
- Garak ist ein Tool zum Testen der Widerstandsfähigkeit eines LLM, das unerwünschte Fehler wie Halluzinationen, Datenlecks, Prompt-Injektion, Verbreitung von Fehlinformationen, Erzeugung von Toxizität, Jailbreaking und andere potenzielle Schwachstellen aufdeckt.
- HouYi ist eine Plattform, die für Red-Teaming-Übungen entwickelt wurde und es den Benutzern ermöglicht, programmgesteuert Befehle in LLM-integrierte Anwendungen für Penetrationstests einzufügen, indem sie benutzerdefinierte Testumgebungen erstellen und die Angriffsziele definieren.
- Promptmap ist ein Tool, das entwickelt wurde, um die Anfälligkeit von ChatGPT für Prompt-Injektionen zu bewerten, indem es die Regeln und den Kontext der Instanz versteht und so gezielte Angriffs-Prompts erstellt und liefert. Anschließend bewertet Promptmap den Erfolg jedes Angriffs anhand der erhaltenen Antworten.
Nachwort
Die LLM-Sicherheit ist ein umkämpfter Entwicklungsbereich, in dem die Dynamik der Prompt-Injektion eine reale und allgegenwärtige Gefahr darstellt. Dennoch sind die laufenden Bemühungen, die LLMs gegen solche Bedrohungen zu abzuhärten, dringlich und innovativ. Mit dem Aufkommen spezialisierter Erkennungstools und der Integration robuster Abwehrtechniken wird ein neuer Standard gesetzt, um potenzielle Manipulationen sowohl zu antizipieren als auch ihnen entgegenzuwirken. Die Branche ruht sich gewiss nicht auf ihren Lorbeeren aus, wie die kontinuierliche Forschung und Entwicklung von Lösungen zeigt, die geleistet wird, um den Tätern einen Schritt voraus zu sein. Wir stehen an der Schwelle zu einem bedeutenden Wandel – von reaktiven Sicherheitsmaßnahmen hin zu proaktiven, belastbaren Strategien, die die Sicherheit und Zuverlässigkeit von LLM-Anwendungen in einer sich ständig verändernden technologischen Landschaft gewährleisten. In Zukunft wird es entscheidend sein, diese Ansätze zu übernehmen und zu verfeinern, um LLMs in die Lage zu versetzen, ihr Potenzial auszuschöpfen, ohne die Grundsätze der Sicherheit und des Vertrauens der Nutzer zu gefährden.