
Benchmark- und Verteidigungscode für persistente Speicherangriffe auf Computer-Use-Agenten im OpenClaw-Stil, mit Memory-Zoning-Mitigation, Angriffsszenarien und Evaluierungsskripten.
Experimentiercode für ZoneClaw: Mitigating Persistent Memory Attack by Establishing Memory-Zoning among OpenClaw-Style Computer-Use Agents.
Dieses Repository enthält die Benchmark-Aufgaben, Defense-Implementierungen und Evaluierungsskripte, die im Paper verwendet werden. Der Benchmark untersucht sitzungsübergreifende persistente Speicherangriffe in OpenClaw-Style Computer-Use Agents. Er deckt zwei Angriffsklassen ab:
ZoneClaw trennt zurückbehaltene externe Beobachtungen von autoritätstragendem Speicher und verwendet dann rollengetrennte Agents, um persistente Informationen zu beobachten, zu klassifizieren und darauf zu reagieren.
Diese reine Code-Edition enthält keine Experimentergebnisse. Die Transkripte, Verifier-Nachweise und Zusammenfassungen des Papers sind im zugehörigen Artefakt-Repository verfügbar.
uvReservieren Sie mindestens 20 GB freien Speicherplatz für Abhängigkeiten, Docker-Images und generierte Runs. Wir empfehlen 16 GB RAM für parallele Experimente. Das initiale Setup dauert typischerweise 10-20 Minuten, abhängig vom Netzwerk und dem Docker-Build-Cache.
Für einen anonymen Download entpacken Sie die ZIP-Datei, öffnen Sie ein Terminal im obersten Verzeichnis und führen Sie aus:
bash setup.sh
Das Setup ruft die gepinnten Abhängigkeiten OpenClaw, Harbor und WorkspaceBench direkt aus ihren öffentlichen Upstream-Repositories ab. Ein Zugriff auf das ursprüngliche private Repository ist nicht erforderlich.
Für einen Git-Checkout ersetzen Sie <repository-url> unten durch die Clone-URL des Repositories:
git clone --depth 1 --recurse-submodules --shallow-submodules \
<repository-url> ZoneClaw-code
cd ZoneClaw-code
bash setup.sh
Das Skript validiert die lokalen Tools und den Docker-Daemon, baut die erforderlichen Images und erstellt .env aus .env.example. Es generiert OPENCLAW_GATEWAY_TOKEN lokal; bearbeiten Sie .env nur, um die für einen Run benötigten Provider-Schlüssel festzulegen. Committen Sie .env nicht.
| Experiment | Erforderliche API-Schlüssel |
|---|---|
| Anthropic-Hauptmodell | ANTHROPIC_API_KEY |
| OpenAI-Hauptmodell | OPENAI_API_KEY |
| Z.AI-Hauptmodell | ZAI_API_KEY |
| Alibaba-Qwen-Hauptmodell | ALIBABA_KEY |
| Watcher oder MELON mit einem Nicht-Anthropic-Hauptmodell | Hauptmodell-Schlüssel und ANTHROPIC_API_KEY |
| WorkspaceBench-Autoritäts- und Benign-Utility-Evaluierungen | OPENAI_API_KEY und ANTHROPIC_API_KEY |
Experimente führen kostenpflichtige Provider-Aufrufe durch. Beginnen Sie mit einem Trial, um den vollständigen Pfad zu verifizieren:
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-userprompt N=1 P=1 bash bench.sh
Die Hauptexperimente des Papers verwenden Claude Sonnet 4.6. Nachdem der Smoke-Test erfolgreich war, reproduzieren Sie die vollständige Zeile mit:
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-userprompt N=15 P=3 bash bench.sh
Ausgaben werden nach runs/<timestamp>__e2e-<experiment>/ geschrieben. Der Befehl gibt nach der Aggregation eine Aufschlüsselung pro Trial aus; ein vorhandener Run kann erneut angezeigt werden mit:
bash show-bench.sh runs/<run-directory>
Benannte End-to-End-Experimente folgen dem Schema:
<scenario>[-<defense>]-<setting>
| Paper-Begriff | Befehlstoken |
|---|---|
| BCC-Exfiltration | bcc |
| Chat-Mirror | chat |
| Source-Redirection | sr |
| Marketplace-Redirection | market |
| Benutzerausgelöstes Update | userprompt |
| Periodisches Update | heartbeat |
| Keine Defense | Defense-Token weglassen |
| ClawKeeper-Style Watcher | auditor |
| Privilege Separation | privsep |
| ClawGuard | clawguard |
| MELON | melon |
| ZoneClaw | zoneclaw |
Beispiele:
# Undefended BCC, user-triggered update
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-userprompt N=15 P=3 bash bench.sh
# ClawKeeper-style Watcher, periodic Chat Mirror update
MODEL=anthropic/claude-sonnet-4-6 \
E2E=chat-auditor-heartbeat N=15 P=3 bash bench.sh
# ZoneClaw, user-triggered source-redirection update
MODEL=anthropic/claude-sonnet-4-6 \
E2E=sr-zoneclaw-userprompt N=15 P=3 bash bench.sh
Alle gültigen Namen und ihre Injection/Exploitation-Aufgabenpaare sind in experiments/e2e.tsv aufgeführt.
Um ein anderes unterstütztes Modell zu verwenden, ersetzen Sie MODEL; zum Beispiel:
MODEL=openai/gpt-5.5 OPENCLAW_THINKING=medium \
E2E=bcc-zoneclaw-userprompt N=15 P=3 bash bench.sh
MODEL=zai/glm-5.2 \
E2E=bcc-zoneclaw-userprompt N=15 P=3 bash bench.sh
BENCH_TOKEN_PRICES_FILE="$PWD/experiments/measurement/qwen3.7-plus-2026-05-26.json" \
MODEL=alibaba/qwen3.7-plus-2026-05-26 OPENCLAW_THINKING=medium \
E2E=bcc-zoneclaw-userprompt N=15 P=3 bash bench.sh
Gemessene Runs archivieren pro Phase die Laufzeit, Modellnutzung und Helper-Modell-Nutzung
neben jedem Trial. Alibaba-Qwen-Runs behalten zusätzlich ein inhaltsfreies rohes
Nutzungs-Ledger bei, damit Reasoning-Tokens nicht durch den Kompatibilitäts-
Adapter doppelt gezählt werden. Siehe docs/measurement.md für das Schema und die Aggregationsregeln.
Das Paper evaluiert jede Ablation in der benutzerausgelösten Form aller vier Szenarien. Die BCC-Befehle sind:
# w/o Zone
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-no-authority-metadata-userprompt N=15 P=3 bash bench.sh
# w/o Gatekeeper
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-auto-promotion-userprompt N=15 P=3 bash bench.sh
# w/o Cross-check
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-low-context-userprompt N=15 P=3 bash bench.sh
Ersetzen Sie bcc durch chat, sr oder market für die übrigen Szenarien.
for experiment in \
bcc-prompt-aware-promotion-userprompt \
bcc-zoneclaw-prompt-aware-promotion-userprompt \
bcc-prompt-aware-composed-userprompt \
bcc-zoneclaw-prompt-aware-composed-userprompt \
sr-prompt-aware-finegrained-userprompt \
sr-zoneclaw-prompt-aware-finegrained-userprompt
do
MODEL=anthropic/claude-sonnet-4-6 \
E2E="$experiment" N=15 P=3 bash bench.sh
done
MODEL=anthropic/claude-sonnet-4-6 \
TASK=bcc-exfiltration-zoneclaw-promotion/benign-only \
N=30 P=3 bash bench.sh
MODEL=anthropic/claude-sonnet-4-6 \
TASK=bcc-exfiltration-zoneclaw-promotion/malicious-only \
N=30 P=3 bash bench.sh
Das Paper verwendet den BCC-Wiederholungsangriffs-Zeitplan, zehn Update-Sitzungen und Checkpoints nach 0, 1, 2, 3, 5 und 10 Updates:
MODEL=anthropic/claude-sonnet-4-6 \
SYSTEM=no-defense SCHEDULE=repeated-attack \
N=3 P=1 bash longitudinal-bench.sh
MODEL=anthropic/claude-sonnet-4-6 \
SYSTEM=zoneclaw SCHEDULE=repeated-attack \
N=3 P=1 bash longitudinal-bench.sh
WorkspaceBench-Experimente erfordern seine Lite-Metadaten und Workspace-Dateien:
uv run --with huggingface_hub python \
workspace-bench/evaluation/scripts/download_hf_assets.py \
--eval-root workspace-bench/evaluation \
--language en --lite --workspaces
Nach dem Herunterladen der Upstream-Aufgaben generieren Sie die beiden disjunkten 15-Aufgaben-Subsets des Papers mit dem festen Auswahl-Seed: