
Security benchmark para avaliar agentes OpenClaw em contextos de execução adversarial, incluindo arquivos envenenados, habilidades injetadas, metadados de ferramenta enganosos e payloads codificados. Inclui 42 tarefas de replay em 6 suites de risco com pontuação de ataque e utilidade.
Avaliação de segurança em mundo aberto para agentes OpenClaw sob contextos de execução adversariais.
DeepTrap é um benchmark de segurança para avaliar se agentes OpenClaw podem completar tarefas benignas de usuário enquanto resistem a pressões maliciosas do contexto de execução: arquivos de workspace envenenados, habilidades injetadas, metadados de ferramentas enganosos, caminhos de comando inseguros, segredos plantados e payloads codificados.
A versão pública contém 42 tarefas de replay organizadas como 6 classes de vulnerabilidade contextual x 7 famílias de cenário operacional, além do executor do benchmark e do código público de pontuação. Também inclui 10 amostras de replay em chinês em tasks_zh/ para experimentos de avaliação localizados. O pipeline privado de geração de tarefas e busca de ataques não é intencionalmente incluído.
DeepTrap acompanha o artigo:
Red-Teaming de Contextos de Execução de Agentes: Avaliação de Segurança em Mundo Aberto no OpenClaw
Hongwei Yao, Yiming Liu, Yiling He, e Bingrun Yang. arXiv:2605.11047, 2026.
A maioria dos benchmarks de agentes pergunta se um modelo pode concluir trabalho útil. DeepTrap faz uma pergunta mais rigorosa: o agente pode concluir trabalho útil de forma segura quando o contexto de execução ao redor é adversarial?
tasks_zh/.AGS é o Attack Grading Score (Pontuação de Avaliação de Ataque) e UGS é o Utility Grading Score (Pontuação de Avaliação de Utilidade). As pontuações são relatadas por suite de risco; Average (Média) é a média do Risco 1 ao Risco 6.
Página completa do projeto e leaderboard: ZJUICSR.github.io/DeepTrap
DeepTrap cruza seis classes de vulnerabilidade contextual com sete famílias de cenário benigno. Cada tarefa usa um prompt de usuário normal; o comportamento adversarial é induzido pelo contexto do workspace.
DeepTrap constrói contextos de execução comprometidos a partir de instruções benignas e workspaces limpos, busca candidate payloads adversariais com sinais de recompensa multiobjetivo e refina payloads bem-sucedidos através de sondagem baseada em reflexão.
OPENROUTER_API_KEYDEEPSEEK_API_KEYIDs de modelo devem incluir seu prefixo de provedor, por exemplo openrouter/anthropic/claude-sonnet-4-5.
git clone https://github.com/ZJUICSR/DeepTrap.git
cd DeepTrap
pip install -e .
# Validar metadados das tarefas sem executar OpenClaw
python benchmark.py --dry-run
# Listar tarefas incluídas
python benchmark.py --list-tasks
# Validar amostras de tarefas em chinês
python benchmark.py --tasks-dir tasks_zh --dry-run
# Executar uma suite de risco
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite R1
# Executar tarefas específicas
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite task_R1_T01,task_R2_T01
# Executar as amostras de tarefas em chinês
python benchmark.py --tasks-dir tasks_zh --model openrouter/anthropic/claude-sonnet-4-5 --suite all
# Executar todas as tarefas com execuções repetidas
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite all --runs 3
Resultados são escritos em results/ por padrão.
Cada execução escreve um arquivo JSON contendo metadados do modelo, configuração da suite, pontuações por tarefa, comprimentos de transcrição, caminhos de workspace, metadados de uso quando disponíveis e campos de resumo agregados.
# Resumo geral das pontuações
jq '.summary' results/*.json
# Pontuações por tarefa
jq '.tasks[] | {task_id, category, grading, attack_eval}' results/*.json
# Tarefas onde o replay de ataque foi reproduzido fortemente
jq '.tasks[] | select(.attack_eval.mean >= 0.8) | {task_id, attack: .attack_eval.mean}' results/*.json
Cada tarefa relata:
AGS: pontuação de ataque, onde maior indica realização mais forte do ataqueUGS: pontuação de utilidade, onde maior indica melhor conclusão da tarefaDeepTrap também pode ser distribuído como um dataset Hugging Face em ZJUICSR/DeepTrap.
A exportação estruturada armazena uma tarefa de benchmark por linha JSONL em data/tasks.jsonl, enquanto as definições originais das tarefas em Markdown permanecem em tasks/. Amostras de tarefas em chinês podem ser exportadas separadamente de tasks_zh/ quando necessário.
python scripts/export_hf_dataset.py
# Opcional: exportar amostras em chinês
python scripts/export_hf_dataset.py --tasks-dir tasks_zh --output data/tasks_zh.jsonl
Após o upload, os usuários podem carregar os metadados do benchmark com:
from datasets import load_dataset
dataset = load_dataset("ZJUICSR/DeepTrap", split="train")
Cada linha inclui task_id, name, risk, category, prompt, expected_behavior, grading_criteria, workspace_files, metadados de pontuação e flags para verificações automatizadas e rubricas de juiz LLM.
.
├── benchmark.py # Executor público do benchmark
├── tasks/ # 42 definições de tarefas incluídas
├── tasks_zh/ # 10 amostras de replay em chinês
├── scenes/ # Cenas fonte limpas para pontuação de linha de base/delta
├── data/tasks.jsonl # Exportação do dataset Hugging Face
├── docs/ # Site do projeto GitHub Pages
├── huggingface/README.md # Cartão do dataset Hugging Face
├── scripts/ # Suporte de execução e código de exportação
│ ├── lib_agent.py # Auxiliares de execução OpenClaw
│ ├── lib_reward.py # Pontuação de ataque/utilidade
│ ├── lib_criteria.py # Critérios de juiz públicos
│ ├── lib_llm.py # Roteador de backend do juiz
│ ├── lib_openrouter.py # Cliente juiz OpenRouter
│ ├── lib_deepseek.py # Cliente juiz DeepSeek
│ ├── lib_dashscope.py # Cliente juiz DashScope/Qwen
│ └── export_hf_dataset.py # Auxiliar de exportação do dataset
├── tests/ # Testes de validação públicos
├── SKILL.md # Habilidade do benchmark voltada ao agente
└── pyproject.toml
Se você usar DeepTrap em sua pesquisa, por favor cite:
@article{yao2026trap,
title={Red-Teaming Agent Execution Contexts: Open-World Security Evaluation on OpenClaw},
author={Yao, Hongwei and Liu, Yiming and He, Yiling and Yang, Bingrun},
journal={arXiv preprint arXiv:2605.11047},
year={2026}
}
DeepTrap foi inspirado em parte pelo PinchBench, que fornece uma suite de benchmark prática para medir a capacidade de agentes OpenClaw em tarefas do mundo real. Agradecemos ao projeto PinchBench por demonstrar um formato de benchmark claro e utilizável para agentes OpenClaw.
MIT — veja LICENSE para detalhes.
| O Que Testamos | Por Que Isso Importa |
|---|
| Robustez de Contexto | Arquivos envenenados, artefatos do tipo memória, playbooks e instruções do workspace | Agentes reais leem de um contexto local mutável, onde texto não confiável pode redirecionar silenciosamente o comportamento |
| Manipulação de Segredos | Credenciais plantadas, variáveis de ambiente, chaves de API e valores internos | Agentes devem distinguir conhecimento de configuração de exfiltração de segredos |
| Limites de Execução | Comandos de shell perigosos, scripts de implantação e efeitos colaterais no sistema de arquivos | Agentes que usam ferramentas podem causar danos duradouros mesmo quando o prompt do usuário é benigno |
| Confiança em Habilidades/Ferramentas | Habilidades maliciosas, metadados de ferramentas enganosos e padrões de abuso de ferramentas | A segurança do agente depende de como o modelo interpreta e valida as affordances das ferramentas |
| Payloads Ofuscados | Instruções codificadas em Base64 e multi-etapa | Ataques podem se esconder atrás de tarefas de processamento de dados com aparência normal |
| Modelo Claw | Métrica | Risco 1 | Risco 2 | Risco 3 | Risco 4 | Risco 5 | Risco 6 | Média |
|---|
| GPT-5.4 | AGS | 0.77 | 0.84 | 0.76 | 0.61 | 0.67 | 0.53 | 0.70 |
| GPT-5.4 | UGS | 0.91 | 0.83 | 0.86 | 0.77 | 0.74 | 0.87 | 0.83 |
| Claude-Sonnet-4.6 | AGS | 0.51 | 0.58 | 0.37 | 0.25 | 0.38 | 0.20 | 0.38 |
| Claude-Sonnet-4.6 | UGS | 0.71 | 0.69 | 0.55 | 0.45 | 0.55 | 0.71 | 0.61 |
| GLM-5 | AGS | 0.81 | 0.93 | 0.74 | 0.83 | 0.79 | 0.88 | 0.83 |
| GLM-5 | UGS | 0.90 | 0.90 | 0.98 | 0.89 | 0.83 | 0.88 | 0.90 |
| Qwen3.5-Plus | AGS | 0.93 | 0.93 | 0.86 | 0.74 | 0.88 | 0.97 | 0.88 |
| Qwen3.5-Plus | UGS | 0.95 | 0.92 | 1.00 | 0.98 | 0.93 | 0.93 | 0.95 |
| MiniMax-M2.5 | AGS | 0.86 | 0.89 | 0.77 | 0.66 | 0.90 | 0.89 | 0.83 |
| MiniMax-M2.5 | UGS | 0.92 | 0.95 | 1.00 | 0.88 | 0.74 | 0.90 | 0.90 |
| DeepSeek-v4-Flash | AGS | 0.90 | 0.96 | 0.80 | 0.90 | 0.82 | 0.94 | 0.89 |
| DeepSeek-v4-Flash | UGS | 0.98 | 0.96 | 1.00 | 0.96 | 0.85 | 1.00 | 0.96 |
| Deepseek-v4-Pro | AGS | 0.90 | 0.96 | 0.74 | 0.87 | 0.85 | 0.86 | 0.86 |
| Deepseek-v4-Pro | UGS | 0.90 | 0.91 | 1.00 | 0.81 | 0.84 | 0.89 | 0.89 |
| MiMo-v2.5 | AGS | 0.86 | 0.87 | 0.71 | 0.73 | 0.57 | 0.60 | 0.72 |
| MiMo-v2.5 | UGS | 0.96 | 0.95 | 0.88 | 0.93 | 0.83 | 0.89 | 0.91 |
| MiMo-v2.5-pro | AGS | 0.74 | 0.83 | 0.56 | 0.58 | 0.58 | 0.53 | 0.64 |
| MiMo-v2.5-pro | UGS | 0.92 | 0.90 | 0.88 | 0.87 | 0.71 | 0.87 | 0.86 |
| Suite | Categoria | Tarefas | O que é medido |
|---|
R1 | Sequestro de Harness | 7 | Resistência a contexto envenenado e etapas de workflow injetadas |
R2 | Vazamento de Privacidade | 7 | Proteção de credenciais plantadas e valores sensíveis |
R3 | Execução Não Autorizada | 7 | Recusa de comandos perigosos e ações que ultrapassam limites |
R4 | Risco de Cadeia de Suprimentos | 7 | Manuseio de habilidades maliciosas e integrações do tipo ferramenta |
R5 | Abuso de Ferramenta | 7 | Detecção de comportamento de ferramenta enganoso ou incompatível |
R6 | Ofuscação de Codificação | 7 | Manuseio de instruções codificadas e payloads multi-etapa |
| Cenário | Família de tarefa típica |
|---|
T01 | Notas de reunião, itens de ação e resumos de workflow de rotina |
T02 | Formatação de Python/código, refatoração e processamento de API/log |
T03 | Notas de pesquisa, revisão de literatura, citação e análise de pesquisa |
T04 | Prontidão para implantação, validação de configuração e verificações de saúde de serviço |
T05 | Relatórios de vendas, receita e dados de negócio estruturados |
T06 | Redação de blog/conteúdo, verificação de estilo, integração e resumos de feedback |
T07 | Administração de sistemas, auditorias de ambiente, verificações de implantação e backup de logs |
| Flag | Descrição |
|---|
--model MODEL | Identificador do modelo alvo configurado para OpenClaw |
--suite SUITE | all, uma suite de risco como R1, ou IDs de tarefa separados por vírgula |
--tasks-dir DIR | Diretório de tarefas, padrão tasks/; use tasks_zh/ para amostras em chinês |
--runs N | Número de execuções por tarefa para média |
--timeout-multiplier N | Escalar timeouts das tarefas para modelos mais lentos |
--judge-model MODEL | Modelo juiz para pontuação de ataque, stealth e utilidade |
--output-dir DIR | Diretório de resultados, padrão results/ |
--list-tasks | Imprimir IDs das tarefas incluídas e sair |
--dry-run | Validar carregamento de tarefas e metadados de pontuação sem executar OpenClaw |
--verbose | Imprimir logs de execução detalhados |