Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
WebMirage — Ataques de imagem adversariais em agentes web de visão-linguagem, do grounding visual à execução no navegador | Kitploit
Ferramentas/GitHubGitHub/moontea0416/webmirage
Análise de CódigoSegurança WebTestes de PenetraçãoAprendizado de MáquinaPapers e PesquisaRed TeamingSegurança de IAAtaque Adversário
GitHubmoontea0416/webmirage

WebMirage

Ataques de imagem adversariais em agentes web de visão-linguagem, do grounding visual à execução no navegador

Ver Repositório
114há 2 diasAinda 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

WebMirage

Imagens Adversariais Sequestram Agentes Web do Visual Grounding à Execução no Navegador

Wanjing Han, Levi Taiji Li, Mu Zhang, Yue Jiang, Guanhong Tao — University of Utah

WebMirage é um framework de red-teaming para agentes web baseados em visão. Ele cria perturbações adversariais localizadas em imagens de páginas web controladas pelo atacante (por exemplo, uma miniatura de produto ou uma foto de perfil) que fazem o agente selecionar o elemento do atacante e executar a ação de navegador correspondente, em diferentes renderizações da página web. O ataque é formulado de ponta a ponta, do visual grounding à execução no navegador, em vez de apenas na inferência do modelo.

Dois componentes fazem isso funcionar:

  • Abstração de role-slot e recomposição de página web — modela a competição entre o elemento do atacante e seus companheiros recompondo páginas com diferentes conjuntos de companheiros e posições de slot, de modo que a perturbação generalize para renderizações não vistas.
  • Supervisão alinhada à execução — uma análise de fluxo de dados CodeQL do código de pós-processamento do agente identifica quais tokens de saída realmente determinam a ação executada, e a otimização é supervisionada apenas nesses tokens.

O framework é avaliado contra agentes SeeAct e VisualWebArena em seis backbones VLM (LLaVA, MiniCPM-o, Phi-3 Vision e outros). Consulte o artigo para a avaliação completa.


Estrutura do Repositório

.
├── src/            # Perturbation optimization, one subdirectory per backbone
│   ├── LLaVA/
│   ├── MiniCPM-o/
│   └── Phi-3-vision/
├── scripts/        # Training / evaluation launch scripts, one subdirectory per backbone
├── dataflow/       # CodeQL query pack for agent dataflow analysis (DataflowAnalysis.ql)
├── data/           # Recomposed training / test screenshots and conversation templates
└── test/           # Pre-generated clean and perturbed samples for quick verification

Pré-requisitos

Os modelos base devem ser configurados manualmente antes de usar este framework.

Como os backbones têm requisitos de bibliotecas conflitantes, cada um precisa de seu próprio ambiente e pesos baixados localmente.

1. MiniCPM-o

  • Repositório: OpenBMB/MiniCPM-o
  • Configuração: Clone o repositório, crie um ambiente dedicado (por exemplo, conda create -n minicpm) e instale as dependências.
  • Pesos: Baixe os pesos oficiais localmente e registre o caminho.

2. LLaVA

  • Repositório: haotian-liu/LLaVA
  • Configuração: Clone o repositório e crie um ambiente dedicado (por exemplo, conda create -n llava).
  • Pesos: Baixe os pesos LLaVA-v1.5/v1.6 localmente e registre o caminho.

3. Phi-3 Vision

  • Repositório: microsoft/Phi-3-vision-128k-instruct
  • Configuração: Instale a versão compatível de transformers em um ambiente dedicado.
  • Pesos: Baixe os pesos Phi-3-vision-128k-instruct localmente.

Verificação Rápida (Phi-3 Vision)

Um teste mínimo executa inferência em capturas de tela limpas e perturbadas e compara as seleções do agente lado a lado.

Nota: Este teste requer Phi-3 Vision (veja Pré-requisitos §3). As imagens perturbadas fornecidas foram otimizadas para Phi-3; dados de teste para outros backbones podem ser gerados com os scripts de treinamento em scripts/.

Dados de Teste

Casos de teste pré-gerados estão localizados em test/:

test/
├── clean_fix_slot/         # Clean screenshots, target in a fixed slot position
├── clean_multi_slot/       # Clean screenshots, target across multiple slot positions
├── perturbed_fix_slot/     # Perturbed screenshots (ε=16/255), target in a fixed slot
├── perturbed_multi_slot/   # Perturbed screenshots (ε=16/255), target across multiple slots
├── conv.json               # Conversation data (system prompt, user query, grounding prompt)
└── verify.py               # Runs inference on clean vs. perturbed and compares results

Os casos fix_slot testam variação de companheiros (posição do alvo fixa, elementos ao redor variam); os casos multi_slot testam variação de companheiros e deslocamento posicional simultaneamente.

Executando o Teste

conda activate phi3vision

# Fixed slot position
python test/verify.py \
    --model-path /path/to/Phi-3-vision-128k-instruct \
    --conv-path test/conv.json \
    --clean-image test/clean_fix_slot/sample_0.png \
    --perturbed-image test/perturbed_fix_slot/sample_0.png

# Varying slot positions
python test/verify.py \
    --model-path /path/to/Phi-3-vision-128k-instruct \
    --conv-path test/conv.json \
    --clean-image test/clean_multi_slot/sample_0.png \
    --perturbed-image test/perturbed_multi_slot/sample_0.png

Saída Esperada

O script imprime uma tabela de comparação mostrando, para cada caso de teste, o elemento selecionado com entrada limpa vs. perturbada. Em capturas de tela limpas, o agente deve selecionar o candidato com melhor correspondência; em capturas de tela perturbadas, ele deve selecionar consistentemente o candidato controlado pelo atacante.


Otimizando uma Perturbação (Exemplo com LLaVA)

Com um ambiente Conda dedicado para cada backbone configurado, o fluxo de trabalho abaixo usa LLaVA como exemplo.

1. Clone o LLaVA

Os scripts referenciam o código oficial do LLaVA a partir do seu diretório home (~/):

cd ~
git clone https://github.com/haotian-liu/LLaVA.git

2. Configure o Script de Treinamento

Abra scripts/LLaVA/train_with_mask.sh e defina cada caminho (pesos do modelo, dados de treinamento, template de conversa, máscara, diretório de saída) para corresponder à sua configuração local.

3. Execute

bash scripts/LLaVA/train_with_mask.sh

Formato dos Dados

Os dados de treinamento ficam em data/<scenario>/, com capturas de tela recombinadas e um arquivo de conversa train_samples.json. O placeholder de token de imagem no arquivo de conversa deve corresponder ao backbone alvo:

BackbonePlaceholder
MiniCPM-o(<image>./</image>)\n
LLaVA<image>\n
Phi-3<|image_1|>\n

Avaliação de Agente de Ponta a Ponta

A avaliação de ponta a ponta requer os frameworks de agente alvo.

SeeAct

  • Repositório: OSU-NLP-Group/SeeAct
  • Configuração: Clone o repositório e siga as instruções oficiais de instalação.
  • Uso: A avaliação usa o protocolo de substituição de ativos do lado do cliente descrito no artigo. Veja scripts/seeact/.

VisualWebArena

  • Repositório: web-arena-x/visualwebarena
  • Configuração: Siga as instruções oficiais para configurar o sandbox, incluindo a implantação do site de compras OneStopShop.
  • Uso: Veja scripts/visualwebarena/ para scripts de avaliação com os modos de observação Accessibility Tree e Set-of-Mark.

Análise de Fluxo de Dados

dataflow/DataflowAnalysis.ql é a consulta CodeQL usada para rastrear quais tokens de saída do modelo fluem para a ação de navegador executada no código de pós-processamento de um agente. Execute-a contra o código-fonte do agente alvo com a CodeQL CLI usando a definição de pacote em dataflow/codeql-pack.yml.


Ética

Todos os experimentos em sites públicos no artigo usam substituição de ativos do lado do cliente: imagens adversariais são substituídas apenas na visualização local do navegador do agente, e nenhum conteúdo é enviado ou modificado em qualquer site de terceiros. Use este framework apenas para pesquisa defensiva.

Citação

Baixar ferramenta