Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Manipulating-Web-Agents | Kitploit
Strumenti/GitHubGitHub/sej2020/manipulating-web-agents
ExploitSicurezza WebPaper e RicercaApprendimento e FormazioneSicurezza dell'IAAttacco Avversario
GitHubsej2020/manipulating-web-agents

Manipulating-Web-Agents

Vedi Repository
631 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Manipolazione di agenti web autonomi basati su LLM con attacchi di prompt injection indiretti

Con l'ubiquità delle applicazioni integrate con LLM, indagare i potenziali rischi per la sicurezza è fondamentale. Una delle vulnerabilità più significative di questi sistemi è la loro suscettibilità ad attacchi avversari tramite prompt injection indiretti. In questo repository, mostriamo un metodo con cui un attore malintenzionato potrebbe generare un trigger universale che gli consente di controllare le azioni di un agente remoto di navigazione web derivato da un LLM. Speriamo che la presentazione di queste informazioni aiuti i professionisti a rendersi conto della loro potenziale vulnerabilità e ispiri i ricercatori a sviluppare difese contro attacchi di questo tipo.

Configurazione

Dopo aver clonato questo repository, i seguenti comandi sono necessari per configurare l'infrastruttura di navigazione web da Browser Gym:

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

I dettagli possono variare a seconda dell'ambiente di calcolo.

Se sei interessato a eseguire una procedura di ottimizzazione del trigger universale, dovrai generare un dataset di siti web e obiettivi di navigazione web. Ciò può essere realizzato con i comandi forniti dal file src/actions/mask_dataset.py. Dovrai inoltre creare alcune chiavi API e conservarle in un ambiente sicuro.

  1. Esegui pip install python-dotenv e poi touch .env
  2. Conserva una chiave API OpenAI nel file, insieme alle informazioni per un Google Programmable Search Engine. Segui le istruzioni nella prima sezione di questo link per configurare il tuo motore di ricerca. La sintassi del tuo file '.env' dovrebbe essere la seguente:
    root@kitploit:~
    OPENAI_API_KEY=<key>
    GOOGLE_API_KEY=<key>
    GOOGLE_ENGINE_NAME=<name>
    GOOGLE_CX=<engine ID>
    
  3. Esegui python -m src.dataset.actions.make_dataset get_webs finché non hai un numero adeguato di file json di siti web nella tua cartella data.
  4. Esegui python -m src.dataset.actions.make_dataset set_goals per filtrare i json per i siti web bloccati, riequilibrare le classi dei siti e inviare un processo batch all'API OpenAI per generare gli oggetti goal per i siti web rimanenti. Dovresti aggiungere il flag --n_batch_splits <int> se hai più di 10.000 json di siti web.
  5. Quando esegui il comando set_goals, i tuoi ID batch verranno stampati sul terminale. Esegui python -m src.dataset.actions.make_dataset get_goals --batch_ids <batch ID 1> <batch ID 2> ... per scrivere gli oggetti goal nei corrispondenti json dei siti web se i processi batch sono completi. Un processo batch può richiedere 24 ore per essere completato da OpenAI, quindi potresti dover aspettare un giorno prima che questo comando venga eseguito con successo.

Esecuzione della Demo 1

La Demo #1 mostra come un attaccante potrebbe ospitare un sito web con malware incorporato in un link e costringere un agente di navigazione web a fare clic su quel link ogni volta. Un json del sito web e un trigger per controllare l'output dell'agente web sono memorizzati rispettivamente nelle cartelle data/ e triggers/.

Controllo

Eseguire python -m src.attack.actions.run_demo avvierà un browser con una pagina web di esempio e un'interfaccia chat LLM. La chat LLM ti chiederà di fornire un obiettivo per l'agente di navigazione web. Scrivi un'attività come "Cerca un volo per Chicago" nella finestra. L'agente completerà l'attività nella scheda con la pagina web di esempio come previsto.

Attacco

Esegui python -m src.attack.actions.run_demo --trigger_json triggers/zzz_travel_ad_demo_1_trigger_uni_secondary.json per attaccare l'agente di navigazione web su questo compito. Verrà avviato un browser con la pagina web di esempio e l'interfaccia chat LLM come prima, e come prima, scrivi un obiettivo nella finestra della chat. Il processo sarà identico a quello del controllo, con l'unica differenza che il trigger del file zzz_travel_ad_demo_1_trigger_uni_secondary.json verrà inserito in un link nascosto sul sito web. Dovresti vedere che questa volta l'agente web ignora l'istruzione fornita e fa clic sulla pubblicità nel footer!

Ottimizzazione del tuo trigger avversario

Per ottimizzare un trigger avversario per controllare l'output di un agente di navigazione web su un sito web a tua scelta, puoi usare il file find_narrow_trigger.py. Una volta generato un json del sito web tramite l'utilità di creazione del dataset, puoi inserire il testo '{optim_str}' in un punto dell'albero ax. Questo dice alla libreria nanogcg che useremo che desideri inserire il trigger in quel punto del sito web.

  1. Esegui pip install nanogcg
  2. Accetta i termini di utilizzo per i modelli Llama/Mistral su Hugging Face e crea un token di accesso nelle impostazioni.
  3. Inserisci '{optim_str}' nell'oggetto ax_tree nel json dei dati del sito web di tua scelta.
  4. Esegui python -m src.attack.actions.find_narrow_trigger. Le opzioni e i flag per questa utilità a riga di comando sono i seguenti:
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.

Affinché l'attacco funzioni nel nostro ambiente, l'obiettivo della tua ottimizzazione dovrebbe essere una funzione nello spazio delle azioni di navigazione web di Browser Gym. Fai riferimento al file action_space.txt.

Il trigger ottimizzato verrà salvato in un file json nella cartella triggers/, con il nome del file che corrisponde al json dei dati del sito web associato. Puoi usare questo trigger per eseguire la tua demo utilizzando l'utilità python -m src.attack.actions.run_demo con i flag appropriati.

Scarica lo strumento