Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Manipulating-Web-Agents — Forschungsdemonstration von indirekten Prompt-Injection-Angriffen zur Kontrolle autonomer LLM-basierter Web-Agenten, mit Werkzeugen zur Trigger-Optimierung und -Bewertung. | Kitploit
Tools/GitHubGitHub/sej2020/manipulating-web-agents
ExploitationWebsicherheitPapers & ForschungLernen & BildungKI-SicherheitAdversarial-Angriff
GitHubsej2020/manipulating-web-agents

Manipulating-Web-Agents

Forschungsdemonstration von indirekten Prompt-Injection-Angriffen zur Kontrolle autonomer LLM-basierter Web-Agenten, mit Werkzeugen zur Trigger-Optimierung und -Bewertung.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
63vor 1 JahrNoch nicht geprüft

Manipulation autonomer LLM-basierter Web-Agenten durch indirekte Prompt-Injection-Angriffe

Angesichts der Allgegenwart von LLM-integrierten Anwendungen ist die Untersuchung potenzieller Sicherheitsrisiken von entscheidender Bedeutung. Eine der bedeutendsten Schwachstellen dieser Systeme ist ihre Anfälligkeit für adversariale Angriffe durch indirekte Prompt-Injection. In diesem Repository zeigen wir eine Methode, mit der ein böswilliger Akteur einen universellen Trigger erzeugen könnte, der es ihm ermöglicht, die Aktionen eines LLM-basierten Web-Navigationsagenten zu steuern. Wir hoffen, dass die Präsentation dieser Informationen Praktikern hilft, sich ihrer potenziellen Verwundbarkeit bewusst zu werden, und Forscher dazu anregt, Schutzmaßnahmen gegen Angriffe dieser Art zu entwickeln.

Einrichtung

Nach dem Klonen dieses Repos sind die folgenden Befehle erforderlich, um die Web-Navigationsinfrastruktur von Browser Gym einzurichten:

root@kitploit:~
conda create -n browser-gym
conda init
conda activate browser-gym
pip install browsergym-core
playwright install chromium
pip install transformers

Die Details können je nach Rechenumgebung variieren.

Wenn Sie daran interessiert sind, ein Verfahren zur Optimierung universeller Trigger auszuführen, müssen Sie einen Datensatz mit Websites und Web-Navigationszielen generieren. Dies kann mit den Befehlen aus der Datei src/actions/mask_dataset.py bewerkstelligt werden. Außerdem müssen Sie einige API-Schlüssel erstellen und in einer sicheren Umgebung speichern.

  1. Führen Sie pip install python-dotenv und dann touch .env aus.
  2. Speichern Sie einen OpenAI-API-Schlüssel zusammen mit den Informationen für eine Google Programmable Search Engine in der Datei. Befolgen Sie die Anweisungen im ersten Abschnitt dieses Links, um Ihre Suchmaschine einzurichten. Die Syntax Ihrer '.env'-Datei sollte wie folgt aussehen:
    root@kitploit:~
    OPENAI_API_KEY=<key>
    GOOGLE_API_KEY=<key>
    GOOGLE_ENGINE_NAME=<name>
    GOOGLE_CX=<engine ID>
    
  3. Führen Sie python -m src.dataset.actions.make_dataset get_webs aus, bis Sie eine geeignete Anzahl von Website-JSON-Dateien in Ihrem Datenordner haben.
  4. Führen Sie python -m src.dataset.actions.make_dataset set_goals aus, um JSONs nach blockierten Websites zu filtern, die Website-Klassen neu auszubalancieren und einen Batch-Auftrag an die OpenAI-API zu senden, um Zielobjekte für die verbleibenden Websites zu generieren. Sie sollten das Flag --n_batch_splits <int> hinzufügen, wenn Sie über 10.000 Website-JSONs verfügen.
  5. Wenn Sie den Befehl set_goals ausführen, werden Ihre Batch-IDs im Terminal ausgegeben. Führen Sie python -m src.dataset.actions.make_dataset get_goals --batch_ids <batch ID 1> <batch ID 2> ... aus, um die Zielobjekte in die entsprechenden Website-JSONs zu schreiben, sofern die Batch-Aufträge abgeschlossen sind. Ein Batch-Auftrag kann bis zu 24 Stunden dauern, bis OpenAI ihn abschließt. Möglicherweise müssen Sie also einen Tag warten, bevor dieser Befehl erfolgreich ausgeführt werden kann.

Demo 1 ausführen

Demo #1 zeigt, wie ein Angreifer eine Website mit einem in einen Link eingebetteten Schadcode hosten und einen Web-Navigationsagenten dazu zwingen könnte, jedes Mal auf diesen Link zu klicken. Eine Website-JSON und ein Trigger zur Steuerung der Web-Agenten-Ausgabe sind im Ordner data/ bzw. im Ordner triggers/ gespeichert.

Kontrolle

Das Ausführen von python -m src.attack.actions.run_demo startet einen Browser mit einer Beispiel-Webseite und einer LLM-Chat-Oberfläche. Der LLM-Chat fordert Sie auf, ein Ziel für den Web-Navigationsagenten anzugeben. Schreiben Sie eine Aufgabe wie „Suche nach einem Flug nach Chicago“ in das Fenster. Der Agent wird die Aufgabe wie erwartet auf dem Tab mit der Beispiel-Webseite ausführen.

Angriff

Führen Sie python -m src.attack.actions.run_demo --trigger_json triggers/zzz_travel_ad_demo_1_trigger_uni_secondary.json aus, um den Web-Navigationsagenten bei dieser Aufgabe anzugreifen. Wie zuvor wird ein Browser mit der Beispiel-Webseite und der LLM-Chat-Oberfläche gestartet. Bitte geben Sie wie zuvor ein Ziel im Chat-Fenster ein. Der Ablauf ist identisch mit dem der Kontrolle, mit dem einzigen Unterschied, dass der Trigger aus der Datei zzz_travel_ad_demo_1_trigger_uni_secondary.json in einen versteckten Link auf der Website eingefügt wird. Sie sollten sehen, dass der Web-Agent diesmal die von Ihnen bereitgestellte Anweisung ignoriert und auf die Werbung in der Fußzeile klickt!

Optimieren Ihres eigenen adversarialen Triggers

Um einen adversarialen Trigger zu optimieren, der die Ausgabe eines Web-Navigationsagenten auf einer Website Ihrer Wahl steuert, können Sie die Datei find_narrow_trigger.py verwenden. Sobald Sie mithilfe des Dataset-Erstellungstools eine Website-JSON generiert haben, können Sie den Text '{optim_str}' an einer beliebigen Stelle im ax-Tree einfügen. Dies teilt der nanogcg-Bibliothek, die wir verwenden werden, mit, dass Sie den Trigger an dieser Stelle in der Website einfügen möchten.

  1. Führen Sie pip install nanogcg aus.
  2. Stimmen Sie den Nutzungsbedingungen für Llama-/Mistral-Modelle auf Hugging Face zu und erstellen Sie in den Einstellungen ein Zugriffstoken.
  3. Fügen Sie '{optim_str}' in das ax_tree-Objekt in der Website-Daten-JSON Ihrer Wahl ein.
  4. Führen Sie python -m src.attack.actions.find_narrow_trigger aus. Die Optionen und Flags für dieses Befehlszeilenprogramm sind wie folgt:
root@kitploit:~
-h, --help            show this help message and exit
--json JSON           File and path for the JSON file to find a trigger for.
--target TARGET       The desired output when triggered.
--device DEVICE       Device to run the model on.
--trigger_length TRIGGER_LENGTH
--include_target, --no-include_target
--loss_fn {cw,mm,ce}
--search_width SEARCH_WIDTH
--top_k TOP_K
--model {mistral-7B,mistral-24B,llama2,llama3}
                    The model to use for generation.
--dtype DTYPE         Data type to use for the model.

Damit der Angriff in unserer Umgebung funktioniert, sollte das Ziel Ihrer Optimierung eine Funktion im Web-Navigations-Aktionsraum von Browser Gym sein. Siehe dazu die Datei action_space.txt.

Der optimierte Trigger wird in einer JSON-Datei im Ordner triggers/ gespeichert, wobei der Dateiname der zugehörigen Website-Daten-JSON entspricht. Sie können diesen Trigger verwenden, um Ihre eigene Demo mit dem Dienstprogramm python -m src.attack.actions.run_demo und den entsprechenden Flags auszuführen.

Tool herunterladen