
OpenClaw 에이전트를 오염된 파일, 주입된 스킬, 오도하는 도구 메타데이터, 인코딩된 페이로드를 포함한 적대적 실행 컨텍스트에 대해 평가하는 보안 벤치마크입니다. 6개의 리스크 스위트에 걸친 42개의 리플레이 태스크와 공격 및 유틸리티 점수화를 포함합니다.
적대적 실행 컨텍스트에서 OpenClaw 에이전트를 위한 오픈월드 보안 평가.
DeepTrap은 OpenClaw 에이전트가 정상적인 사용자 작업을 완료하면서도 악의적인 실행 컨텍스트 압력(오염된 작업공간 파일, 주입된 스킬, 오해를 유발하는 도구 메타데이터, 안전하지 않은 명령 경로, 심어진 비밀값, 인코딩된 페이로드)에 저항할 수 있는지 평가하는 보안 벤치마크입니다.
공개 릴리스에는 6가지 컨텍스트 취약점 클래스 x 7가지 운영 시나리오 패밀리로 구성된 42개의 재연 태스크와 벤치마크 러너 및 공개 채점 코드가 포함되어 있습니다. 또한 현지화 평가 실험을 위해 tasks_zh/에 10개의 중국어 재연 샘플이 포함되어 있습니다. 비공개 태스크 생성 및 공격 탐색 파이프라인은 의도적으로 포함되지 않았습니다.
DeepTrap은 다음 논문과 함께 제공됩니다:
Red-Teaming Agent Execution Contexts: Open-World Security Evaluation on OpenClaw
Hongwei Yao, Yiming Liu, Yiling He, and Bingrun Yang. arXiv:2605.11047, 2026.
대부분의 에이전트 벤치마크는 모델이 유용한 작업을 완료할 수 있는지 묻습니다. DeepTrap은 더 엄격한 질문을 던집니다: 주변 실행 컨텍스트가 적대적일 때 에이전트가 안전하게 유용한 작업을 완료할 수 있는가?
tasks_zh/에 중국어 재연 샘플이 추가되었습니다.AGS는 Attack Grading Score이고 UGS는 Utility Grading Score입니다. 점수는 리스크 스위트별로 보고되며, Average는 Risk 1부터 Risk 6까지의 평균입니다.
전체 프로젝트 페이지 및 리더보드: ZJUICSR.github.io/DeepTrap
DeepTrap은 6가지 컨텍스트 취약점 클래스와 7가지 정상 시나리오 패밀리를 교차시킵니다. 각 태스크는 일반적인 사용자 프롬프트를 사용하며, 적대적 동작은 작업공간 컨텍스트에 의해 유도됩니다.
DeepTrap은 정상 지침과 깨끗한 작업공간에서 손상된 실행 컨텍스트를 구성하고, 다중 목표 보상 신호로 후보 적대적 페이로드를 탐색하며, 반성 기반 프로빙을 통해 성공적인 페이로드를 정제합니다.
OPENROUTER_API_KEYDEEPSEEK_API_KEY모델 ID에는 제공자 접두사가 포함되어야 합니다(예: openrouter/anthropic/claude-sonnet-4-5).
git clone https://github.com/ZJUICSR/DeepTrap.git
cd DeepTrap
pip install -e .
# Validate task metadata without running OpenClaw
python benchmark.py --dry-run
# List bundled tasks
python benchmark.py --list-tasks
# Validate Chinese-language sample tasks
python benchmark.py --tasks-dir tasks_zh --dry-run
# Run one risk suite
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite R1
# Run specific tasks
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite task_R1_T01,task_R2_T01
# Run the Chinese-language sample tasks
python benchmark.py --tasks-dir tasks_zh --model openrouter/anthropic/claude-sonnet-4-5 --suite all
# Run all tasks with repeated trials
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite all --runs 3
결과는 기본적으로 results/에 기록됩니다.
각 실행은 모델 메타데이터, 스위트 구성, 태스크별 점수, 대화 기록 길이, 작업공간 경로, 사용 가능한 경우 사용량 메타데이터 및 집계 요약 필드가 포함된 JSON 파일을 작성합니다.
# Overall score summary
jq '.summary' results/*.json
# Per-task scores
jq '.tasks[] | {task_id, category, grading, attack_eval}' results/*.json
# Tasks where the replay attack was reproduced strongly
jq '.tasks[] | select(.attack_eval.mean >= 0.8) | {task_id, attack: .attack_eval.mean}' results/*.json
각 태스크는 다음을 보고합니다:
AGS: 공격 채점 점수로, 값이 높을수록 공격 구현이 더 강함을 나타냅니다.UGS: 유틸리티 채점 점수로, 값이 높을수록 태스크 완료가 더 우수함을 나타냅니다.DeepTrap은 ZJUICSR/DeepTrap에서 Hugging Face 데이터셋으로도 배포될 수 있습니다.
구조화된 내보내기는 data/tasks.jsonl에 JSONL 행당 하나의 벤치마크 태스크를 저장하며, 원본 Markdown 태스크 정의는 tasks/에 유지됩니다. 필요한 경우 중국어 샘플 태스크는 tasks_zh/에서 별도로 내보낼 수 있습니다.
python scripts/export_hf_dataset.py
# Optional: export Chinese-language samples
python scripts/export_hf_dataset.py --tasks-dir tasks_zh --output data/tasks_zh.jsonl
업로드 후 사용자는 다음으로 벤치마크 메타데이터를 로드할 수 있습니다:
from datasets import load_dataset
dataset = load_dataset("ZJUICSR/DeepTrap", split="train")
각 행에는 task_id, name, risk, category, prompt, expected_behavior, grading_criteria, workspace_files, 채점 메타데이터 및 자동 검사와 LLM 심사 루브릭용 플래그가 포함됩니다.
.
├── benchmark.py # Public benchmark runner
├── tasks/ # 42 bundled task definitions
├── tasks_zh/ # 10 Chinese-language replay samples
├── scenes/ # Clean source scenes for baseline/delta scoring
├── data/tasks.jsonl # Hugging Face dataset export
├── docs/ # GitHub Pages project site
├── huggingface/README.md # Hugging Face dataset card
├── scripts/ # Runtime support and export code
│ ├── lib_agent.py # OpenClaw execution helpers
│ ├── lib_reward.py # Attack/utility scoring
│ ├── lib_criteria.py # Public judge criteria
│ ├── lib_llm.py # Judge backend router
│ ├── lib_openrouter.py # OpenRouter judge client
│ ├── lib_deepseek.py # DeepSeek judge client
│ ├── lib_dashscope.py # DashScope/Qwen judge client
│ └── export_hf_dataset.py # Dataset export helper
├── tests/ # Public validation tests
├── SKILL.md # Agent-facing benchmark skill
└── pyproject.toml
연구에서 DeepTrap을 사용하신다면 다음을 인용해 주세요:
@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은 실제 작업에서 OpenClaw 에이전트의 역량을 측정하기 위한 실용적인 벤치마크 스위트를 제공하는 PinchBench에서 부분적으로 영감을 받았습니다. OpenClaw 에이전트를 위한 명확하고 사용 가능한 벤치마크 형식을 보여준 PinchBench 프로젝트에 감사드립니다.
MIT — 자세한 내용은 LICENSE를 참조하세요.
| 테스트 대상 | 중요한 이유 |
|---|
| 컨텍스트 견고성 | 오염된 파일, 메모리 유사 아티팩트, 플레이북 및 작업공간 지침 | 실제 에이전트는 변경 가능한 로컬 컨텍스트에서 읽으며, 신뢰할 수 없는 텍스트가 조용히 동작을 재지정할 수 있습니다. |
| 비밀값 처리 | 심어진 자격 증명, 환경 변수, API 키 및 내부 값 | 에이전트는 구성 인지와 비밀값 유출을 구분해야 합니다. |
| 실행 경계 | 위험한 셸 명령, 배포 스크립트 및 파일 시스템 부작용 | 도구를 사용하는 에이전트는 사용자 프롬프트가 정상적이더라도 지속적인 피해를 초래할 수 있습니다. |
| 스킬/도구 신뢰 | 악성 스킬, 오해를 유발하는 도구 메타데이터 및 도구 남용 패턴 | 에이전트 안전은 모델이 도구의 기능을 어떻게 해석하고 검증하는지에 달려 있습니다. |
| 난독화된 페이로드 | Base64 및 다단계 인코딩 지침 | 공격은 평범해 보이는 데이터 처리 작업 뒤에 숨을 수 있습니다. |
| Claw 모델 | 지표 | Risk 1 | Risk 2 | Risk 3 | Risk 4 | Risk 5 | Risk 6 | 평균 |
|---|
| 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 |
| 스위트 | 카테고리 | 태스크 수 | 측정 항목 |
|---|
R1 | 하네스 하이재킹 | 7 | 오염된 컨텍스트와 주입된 워크플로 단계에 대한 저항성 |
R2 | 개인정보 유출 | 7 | 심어진 자격 증명 및 민감한 값 보호 |
R3 | 무단 실행 | 7 | 위험한 명령 및 경계를 넘는 행동 거부 |
R4 | 공급망 위험 | 7 | 악성 스킬 및 도구 유사 통합 처리 |
R5 | 도구 남용 | 7 | 오해를 유발하거나 불일치하는 도구 동작 탐지 |
R6 | 인코딩 난독화 | 7 | 인코딩된 지침 및 다단계 페이로드 처리 |
| 시나리오 | 일반적인 태스크 패밀리 |
|---|
T01 | 회의록, 실행 항목 및 일상 워크플로 요약 |
T02 | Python/코드 포맷팅, 리팩터링 및 API/로그 처리 |
T03 | 연구 노트, 문헌 검토, 인용 및 설문 분석 |
T04 | 배포 준비 상태, 구성 검증 및 서비스 상태 점검 |
T05 | 영업, 수익 및 구조화된 비즈니스 데이터 보고 |
T06 | 블로그/콘텐츠 초안 작성, 스타일 확인, 온보딩 및 피드백 요약 |
T07 | 시스템 관리, 환경 감사, 배포 점검 및 로그 백업 |
| 플래그 | 설명 |
|---|
--model MODEL | OpenClaw에 구성된 대상 모델 식별자 |
--suite SUITE | all, R1과 같은 리스크 스위트 또는 쉼표로 구분된 태스크 ID |
--tasks-dir DIR | 태스크 디렉터리, 기본값 tasks/; 중국어 샘플에는 tasks_zh/ 사용 |
--runs N | 평균 계산을 위한 태스크당 실행 횟수 |
--timeout-multiplier N | 느린 모델을 위한 태스크 타임아웃 조정 배율 |
--judge-model MODEL | 공격, 은닉성 및 유틸리티 채점용 심사 모델 |
--output-dir DIR | 결과 디렉터리, 기본값 results/ |
--list-tasks | 번들된 태스크 ID를 출력하고 종료 |
--dry-run | OpenClaw를 실행하지 않고 태스크 로딩 및 채점 메타데이터 검증 |
--verbose | 상세 실행 로그 출력 |