Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ZoneClaw-code — OpenClaw 스타일 컴퓨터 사용 에이전트에 대한 지속적 메모리 공격을 위한 벤치마크 및 방어 코드로, 메모리 구역화 완화, 공격 시나리오, 평가 스크립트를 포함합니다. | Kitploit
도구/GitHubGitHub/euph00/zoneclaw-code
Defensive ToolsPenetration TestingMachine LearningPapers & ResearchLearning & EducationAI SecurityAdversarial AttackLabs & Practice
GitHubeuph00/zoneclaw-code

ZoneClaw-code

OpenClaw 스타일 컴퓨터 사용 에이전트에 대한 지속적 메모리 공격을 위한 벤치마크 및 방어 코드로, 메모리 구역화 완화, 공격 시나리오, 평가 스크립트를 포함합니다.

저장소 보기
39일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ZoneClaw

ZoneClaw: OpenClaw 스타일 컴퓨터 사용 에이전트 간의 메모리 구역화를 통한 지속적 메모리 공격 완화 논문의 실험 코드입니다.

이 저장소에는 논문에서 사용된 벤치마크 작업, 방어 구현, 평가 스크립트가 포함되어 있습니다. 이 벤치마크는 OpenClaw 스타일 컴퓨터 사용 에이전트의 세션 간 지속적 메모리 공격을 연구합니다. 두 가지 공격 클래스를 다룹니다:

  • 숨겨진 부작용: BCC 유출 및 채팅 미러링.
  • 출처 손상: 소스 리다이렉션 및 마켓플레이스 리다이렉션.

ZoneClaw는 보존된 외부 관찰과 권한을 가진 메모리를 분리한 다음, 역할이 분리된 에이전트를 사용하여 지속적 정보를 관찰, 분류, 행동합니다.

이 코드 전용 에디션에는 실험 결과가 포함되어 있지 않습니다. 논문의 대화 기록, 검증자 증거, 요약은 함께 제공되는 아티팩트 저장소에서 확인할 수 있습니다.

설정

사전 요구 사항

  • Linux 또는 WSL2 (WSL2의 Ubuntu 24.04, x86-64에서 테스트됨)
  • Compose 지원이 포함된 Docker
  • Git
  • Python 3.12+
  • uv

종속성, Docker 이미지, 생성된 실행을 위해 최소 20 GB의 여유 디스크 공간을 확보하세요. 병렬 실험을 위해서는 16 GB의 RAM을 권장합니다. 초기 설정은 일반적으로 네트워크와 Docker 빌드 캐시에 따라 10-20분 정도 소요됩니다.

익명 다운로드의 경우 ZIP 파일의 압축을 풀고 최상위 디렉터리에서 터미널을 열고 다음을 실행하세요:

bash setup.sh

설정은 고정된 OpenClaw, Harbor, WorkspaceBench 종속성을 공개 업스트림 저장소에서 직접 가져옵니다. 원래의 비공개 저장소에 접근할 필요가 없습니다.

Git 체크아웃의 경우 아래의 <repository-url>을 저장소의 클론 URL로 바꾸세요:

git clone --depth 1 --recurse-submodules --shallow-submodules \
  <repository-url> ZoneClaw-code
cd ZoneClaw-code
bash setup.sh

이 스크립트는 로컬 도구와 Docker 데몬을 검증하고, 필요한 이미지를 빌드하며, .env.example에서 .env를 생성합니다. OPENCLAW_GATEWAY_TOKEN을 로컬에서 생성합니다. 실행에 필요한 제공자 키를 설정하기 위해서만 .env를 편집하세요. .env를 커밋하지 마세요.

실험필요한 API 키
Anthropic 메인 모델ANTHROPIC_API_KEY
OpenAI 메인 모델OPENAI_API_KEY
Z.AI 메인 모델ZAI_API_KEY
Alibaba Qwen 메인 모델ALIBABA_KEY
비-Anthropic 메인 모델을 사용하는 Watcher 또는 MELON메인 모델 키 및 ANTHROPIC_API_KEY
WorkspaceBench 권한 및 무해 유틸리티 평가OPENAI_API_KEY 및 ANTHROPIC_API_KEY

실험은 유료 제공자 호출을 수행합니다. 전체 경로를 확인하기 위해 하나의 시도로 시작하세요:

MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-userprompt N=1 P=1 bash bench.sh

주요 논문 실험은 Claude Sonnet 4.6을 사용합니다. 스모크 테스트가 성공한 후 다음으로 전체 행을 재현하세요:

MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-userprompt N=15 P=3 bash bench.sh

출력은 runs/<timestamp>__e2e-<experiment>/에 기록됩니다. 이 명령은 집계 후 시도별 분석을 출력합니다. 기존 실행은 다음으로 다시 볼 수 있습니다:

bash show-bench.sh runs/<run-directory>

주요 공격 및 완화 실험

명명된 엔드투엔드 실험은 다음을 따릅니다:

<scenario>[-<defense>]-<setting>
논문 용어명령 토큰
BCC 유출bcc
채팅 미러chat
소스 리다이렉션sr
마켓플레이스 리다이렉션market
사용자 트리거 업데이트userprompt
주기적 업데이트heartbeat
방어 없음방어 토큰 생략
ClawKeeper 스타일 Watcherauditor
권한 분리privsep
ClawGuardclawguard
MELONmelon
ZoneClawzoneclaw

예시:

# 방어되지 않은 BCC, 사용자 트리거 업데이트
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-userprompt N=15 P=3 bash bench.sh

# ClawKeeper 스타일 Watcher, 주기적 Chat Mirror 업데이트
MODEL=anthropic/claude-sonnet-4-6 \
E2E=chat-auditor-heartbeat N=15 P=3 bash bench.sh

# ZoneClaw, 사용자 트리거 소스 리다이렉션 업데이트
MODEL=anthropic/claude-sonnet-4-6 \
E2E=sr-zoneclaw-userprompt N=15 P=3 bash bench.sh

모든 유효한 이름과 해당 주입/악용 작업 쌍은 experiments/e2e.tsv에 나열되어 있습니다.

다른 지원 모델을 사용하려면 MODEL을 바꾸세요. 예를 들어:

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

측정된 실행은 각 시도와 함께 단계별 런타임, 모델 사용량, 헬퍼 모델 사용량을 보관합니다. Alibaba Qwen 실행은 추가로 내용 없는 원시 사용량 원장을 보관하여 호환성 어댑터가 추론 토큰을 이중 계산하지 않도록 합니다. 스키마와 집계 규칙은 docs/measurement.md를 참조하세요.

추가 실험

ZoneClaw 절제

논문은 네 가지 시나리오 모두의 사용자 트리거 형태에 대해 각 절제를 평가합니다. BCC 명령은 다음과 같습니다:

# Zone 없음
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-no-authority-metadata-userprompt N=15 P=3 bash bench.sh

# Gatekeeper 없음
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-auto-promotion-userprompt N=15 P=3 bash bench.sh

# Cross-check 없음
MODEL=anthropic/claude-sonnet-4-6 \
E2E=bcc-zoneclaw-low-context-userprompt N=15 P=3 bash bench.sh

나머지 시나리오의 경우 bcc를 chat, sr, market으로 바꾸세요.

방어 인식 공격

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

세션 간 반복 사용

논문은 BCC 반복 공격 일정, 10개의 업데이트 세션, 0, 1, 2, 3, 5, 10회 업데이트 후 체크포인트를 사용합니다:

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 권한 프로브

WorkspaceBench 실험은 Lite 메타데이터와 워크스페이스 파일이 필요합니다:

uv run --with huggingface_hub python \
  workspace-bench/evaluation/scripts/download_hf_assets.py \
  --eval-root workspace-bench/evaluation \
  --language en --lite --workspaces

업스트림 작업을 다운로드한 후, 고정된 선택 시드로 논문의 두 개의 서로소인 15개 작업 부분집합을 생성하세요:

WB_SUBSETS="$PWD/workspace-bench/evaluation/.generated/memory_authority_probe/subsets"
python3 scripts/workspacebench_privilege_probe.py make-subset \
  --n 15 --seed 20260709 --language en \
  --dest "$WB_SUBSETS/lite-en-15-seed20260709"
python3 scripts/workspacebench_privilege_probe.py make-subset \
  --n 15 --seed 20260709 --language en \
  --exclude-selection "$WB_SUBSETS/lite-en-15-seed20260709/selection.json" \
  --dest "$WB_SUBSETS/lite-en-15-extension-seed20260709"

두 부분집합 모두에서 네 가지 권한 조건 각각을 실행하세요:

for batch in lite-en-15-seed20260709 lite-en-15-extension-seed20260709; do
  for condition in \
    benign-instruction memory-injection \
    memory-instruction-conflict intra-memory-conflict
  do
    python3 scripts/workspacebench_privilege_probe.py run \
      --docker-run \
      --condition "$condition" \
      --probe-kind risk-assumption-section \
      --seed-file all \
      --harness openclaw \
      --model gpt-5.5 \
      --dataset lite \
      --task-path "workspace-bench/evaluation/.generated/memory_authority_probe/subsets/$batch" \
      --task-parallel-workers 3 \
      --run-name "Authority-${batch}-${condition}"
  done
done

래퍼는 WorkspaceBench의 러너와 작업 구성을 유지합니다. 논문의 유틸리티 값은 WorkspaceBench의 공식 루브릭 심사를 사용합니다.

WorkspaceBench 무해 유틸리티

이 러너는 방어되지 않은 시스템과 다섯 가지 방어 모두를 동일한 30개의 무해 작업에서 평가하며, 세 개의 서로소인 10개 작업 배치로 나눕니다. 업스트림 작업 수집기와 루브릭 심사를 실행합니다:

for subset in pilot10 pilot20-add10 pilot30-add10; do
  for condition in undefended watcher privsep clawguard melon zoneclaw; do
    python3 scripts/workspacebench_benign_utility.py all \
      --subset "$subset" \
      --condition "$condition" \
      --workers 2 \
      --judge-workers 2
  done
done

경계별 분석

분석 스크립트는 attack-evaluation/ 및 mitigation-evaluation/ 디렉터리로 구성된 외부에서 제공된 실행 패키지를 받습니다. 아티팩트 저장소에서 다운로드한 패키지를 분석하려면:

python3 scripts/analyze_memory_boundaries.py \
  --artifacts-root /path/to/experiment-runs \
  --output-dir runs/analysis/memory-boundaries

저장소 레이아웃

agents/           Harbor 에이전트 어댑터
experiments/      엔드투엔드 레지스트리 및 반복 세션 매니페스트
scripts/          WorkspaceBench, 반복 세션, 분석 러너
tasks/            공격, 기준선, 절제, ZoneClaw 작업 정의
harbor/           고정된 Harbor 서브모듈
openclaw/         고정된 OpenClaw 서브모듈
workspace-bench/ 고정된 WorkspaceBench 서브모듈
도구 다운로드