Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Manipulating-Web-Agents — Demonstração de pesquisa de ataques de injeção de prompt indireta para controlar agentes web autônomos baseados em LLM, com ferramentas para otimização de gatilho e avaliação. | Kitploit
Ferramentas/GitHubGitHub/sej2020/manipulating-web-agents
ExploraçãoSegurança WebPapers e PesquisaAprendizado e EducaçãoSegurança de IAAtaque Adversário
GitHubsej2020/manipulating-web-agents

Manipulating-Web-Agents

Demonstração de pesquisa de ataques de injeção de prompt indireta para controlar agentes web autônomos baseados em LLM, com ferramentas para otimização de gatilho e avaliação.

Ver Repositório
634há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Manipulando Agentes Web Autônomos Baseados em LLM com Ataques de Injeção Indireta de Prompt

Com a onipresença de aplicações integradas a LLMs, investigar possíveis riscos de segurança é crucial. Uma das vulnerabilidades mais significativas nesses sistemas é a suscetibilidade a ataques adversários por meio de injeção indireta de prompt. Neste repositório, mostramos um método pelo qual um ator malicioso poderia gerar um trigger universal permitindo controlar as ações de um agente remoto de navegação web derivado de um LLM. Esperamos que apresentar essas informações ajude profissionais a tomar consciência de sua potencial vulnerabilidade e inspire pesquisadores a desenvolver contramedidas contra ataques dessa natureza.

Configuração

Após clonar este repositório, os seguintes comandos são necessários para configurar a infraestrutura de navegação web do 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

Os detalhes podem variar dependendo do ambiente computacional.

Se você estiver interessado em executar um procedimento de otimização de trigger universal, terá que gerar um conjunto de dados de sites e objetivos de navegação web. Isso pode ser feito com os comandos fornecidos pelo arquivo src/actions/mask_dataset.py. Você também precisará criar algumas chaves de API e armazená-las em um ambiente seguro.

  1. Execute pip install python-dotenv e depois
touch .env
  • Armazene uma chave da API OpenAI no arquivo, juntamente com as informações de um Google Programmable Search Engine. Siga as instruções na primeira seção deste link para configurar seu mecanismo de busca. A sintaxe do seu arquivo '.env' deve ser a seguinte:
    root@kitploit:~
    OPENAI_API_KEY=<key>
    GOOGLE_API_KEY=<key>
    GOOGLE_ENGINE_NAME=<name>
    GOOGLE_CX=<engine ID>
    
  • Execute python -m src.dataset.actions.make_dataset get_webs até ter um número adequado de arquivos json de sites em sua pasta de dados.
  • Execute python -m src.dataset.actions.make_dataset set_goals para filtrar os jsons de sites bloqueados, rebalancear as classes de sites e enviar um job em lote para a API da OpenAI a fim de gerar objetos de objetivo para os sites restantes. Você deve adicionar a flag --n_batch_splits <int> se tiver mais de 10 mil jsons de sites.
  • Ao executar o comando set_goals, seus IDs de lote serão impressos no terminal. Execute python -m src.dataset.actions.make_dataset get_goals --batch_ids <batch ID 1> <batch ID 2> ... para gravar os objetos de objetivo nos respectivos jsons de sites, caso os jobs em lote estejam concluídos. Um job em lote pode levar 24 horas para a OpenAI concluir, então talvez seja necessário esperar um dia antes que esse comando seja executado com sucesso.
  • Executando a Demonstração 1

    A Demonstração #1 mostra como um atacante poderia hospedar um site com malware incorporado em um link e forçar um agente de navegação web a clicar nesse link toda vez. Um json de site e um trigger para controlar a saída do agente web estão armazenados nas pastas data/ e triggers/, respectivamente.

    Controle

    Executar python -m src.attack.actions.run_demo iniciará um navegador com uma página web de exemplo e uma interface de chat com LLM. O chat do LLM pedirá que você forneça um objetivo para o agente de navegação web. Escreva uma tarefa como "Pesquise um voo para Chicago" na janela. O agente concluirá a tarefa na aba com a página web de exemplo, como esperado.

    Ataque

    Execute python -m src.attack.actions.run_demo --trigger_json triggers/zzz_travel_ad_demo_1_trigger_uni_secondary.json para atacar o agente de navegação web nessa tarefa. Um navegador será iniciado com a página web de exemplo e a interface de chat com LLM, como antes, e, como antes, escreva algum objetivo na janela de chat. O processo será idêntico ao do controle, com a única diferença de que o trigger do arquivo zzz_travel_ad_demo_1_trigger_uni_secondary.json será inserido em um link oculto no site. Você verá que, desta vez, o agente web ignora a instrução fornecida por você e clica no anúncio no rodapé!

    Otimizando seu próprio trigger adversarial

    Para otimizar um trigger adversarial que controle a saída de um agente de navegação web em um site de sua escolha, você pode usar o arquivo find_narrow_trigger.py. Depois de gerar um json de site usando o utilitário de criação de conjunto de dados, você pode inserir o texto '{optim_str}' em algum lugar na ax tree. Isso informa à biblioteca nanogcg que usaremos que você deseja inserir o trigger naquele local do site.

    1. Execute pip install nanogcg
    2. Aceite os termos de uso dos modelos Llama/Mistral no Hugging Face e crie um token de acesso nas configurações.
    3. Insira '{optim_str}' no objeto ax_tree no json de dados do site de sua escolha.
    4. Execute python -m src.attack.actions.find_narrow_trigger. As opções e flags para este utilitário de linha de comando são as seguintes:
    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.
    

    Para que o ataque funcione em nosso ambiente, o alvo da sua otimização deve ser uma função no espaço de ações de navegação web do Browser Gym. Consulte o arquivo action_space.txt.

    O trigger otimizado será salvo em um arquivo json na pasta triggers/, com o nome do arquivo correspondendo ao json de dados do site acompanhante. Você pode usar esse trigger para executar sua própria demonstração usando o utilitário python -m src.attack.actions.run_demo com as flags apropriadas.

    Baixar ferramenta