Defending Code Reference Harness 소개
소프트웨어 보안팀은 오랫동안 소스 코드를 사람이 직접 읽어 내려가며 취약점을 찾고, 의심스러운 지점을 수기로 검증한 뒤, 패치를 손으로 작성해 왔습니다. 이 과정은 느리고, 검토자의 경험에 크게 의존하며, 코드베이스가 커질수록 사람이 따라가기 어려워집니다. Defending Code Reference Harness는 이 흐름을 Claude 기반의 자율 에이전트 파이프라인으로 옮기려는 시도로, 취약점을 찾고(find), 실제로 재현되는지 검증하고(verify), 패치를 만들어 검증(patch)하는 루프를 코드로 구현한 참조 구현(reference implementation)입니다.
이 저장소는 Anthropic이 여러 조직의 보안팀과 협업하며 얻은 경험을 바탕으로 공개한 것으로, 함께 공개된 블로그 글에 그 모범 사례가 정리되어 있습니다. 중요한 전제는 이것이 완성된 제품이 아니라 참조 구현(reference, not a product) 이라는 점입니다. 일반적인 모범 사례를 코드로 보여주는 것이 목적이며, 모든 코드베이스에서 그대로 동작하도록 만들어진 것은 아닙니다. 저장소 자체는 더 이상 유지보수되지 않고 기여도 받지 않으며, 관리형 옵션이 필요한 경우 Anthropic은 별도의 호스팅 제품인 Claude Security를 안내하고 있습니다.
크게 두 가지 요소로 구성됩니다. 하나는 Claude Code에서 바로 실행하는 대화형 스킬 모음(/quickstart, /threat-model, /vuln-scan, /triage, /patch, /customize) 이고, 다른 하나는 harness/ 디렉토리에 담긴 자율 참조 파이프라인입니다. 파이프라인은 C/C++ 메모리 취약점 탐지를 위해 Docker와 ASAN(AddressSanitizer, C/C++용 메모리 오류 탐지기)을 사용하도록 구성되어 있으며, Bedrock, Vertex, Azure 등 사용자가 접근 가능한 Claude API 환경에서 동작합니다.
Defending Code Reference Harness의 파이프라인 동작 방식
자율 파이프라인은 여러 단계를 거쳐 동작하며, 각 단계는 격리된 에이전트가 맡습니다. 핵심은 한 에이전트의 추론이 다른 에이전트로 새어 들어가지 않도록 단계 사이를 분리해, 거짓 양성(false positive)을 줄이는 데 있습니다.
- 빌드(Build): 대상의
Dockerfile을 ASAN으로 계측한 Docker 이미지로 빌드합니다. 이 이미지는 find, grade, 재공격 단계에서 재사용되어 모든 에이전트가 동일한 환경에서 같은 코드를 보게 됩니다. - 정찰(Recon): 한 에이전트가 소스 트리를 읽고 공격 표면을 분할합니다. 예를 들어 "여기 별도로 공격할 가치가 있는 파서가 8개 있다" 처럼 영역을 나눠, 병렬 실행되는 에이전트들이 같은 버그로 수렴하지 않게 합니다.
--auto-focus플래그로 이 단계를 파이프라인에 포함시킬 수 있습니다. - 탐색(Find): 루프의 핵심입니다. 각 실행은 네트워크가 격리된 컨테이너 안에서 에이전트 하나를 받아, 소스를 읽고 잘못된 입력(malformed input)을 만들어 ASAN 바이너리에 넣습니다. 같은 입력이 3번 중 3번 크래시를 낼 때까지 반복하며, 결과로 보고서가 아니라 크래시를 일으킨 입력 파일을 내놓습니다.
- 채점(Grade): 별도의 에이전트가 새 컨테이너에서 그 PoC(개념 증명 입력)를 다시 실행해, 크래시가 실제로 재현되는지, 프로젝트 코드에서 발생하는지, 단순한 메모리 고갈은 아닌지 확인합니다. find 컨테이너에서 grade 컨테이너로 넘어가는 것은 오직 PoC 바이트뿐이므로, 채점 에이전트는 탐색 에이전트의 추론에 영향받지 않습니다.
- 심사(Judge)·중복 제거(Dedupe): 채점을 통과한 발견을 도구 없이 동작하는 짧은 에이전트가 이미 기록된 버그 목록과 비교해, 새 버그인지, 기존 버그의 더 나은 사례인지, 건너뛸 중복인지 판단합니다.
- 보고(Report): 고유한 버그마다 보고 에이전트가 프리미티브 종류, 도달 가능성(reachability), 권한 상승 경로, 심각도를 담은 구조화된 익스플로잇 가능성 분석을 작성합니다.
- 패치(Patch): 별도의
patch명령으로 실행됩니다. 패치 에이전트가 수정안을 작성하면, 채점 에이전트가 새 코드가 빌드되는지, 원래 PoC가 더 이상 크래시를 내지 않는지, 대상의 테스트가 여전히 통과하는지, 그리고 새 탐색 에이전트가 그 수정을 우회할 방법을 찾지 못하는지를 확인합니다.
Defending Code Reference Harness의 Claude Code 스킬
파이프라인과 별개로, 저장소를 Claude Code에서 열면 바로 쓸 수 있는 대화형 스킬이 함께 제공됩니다. /threat-model 은 위협 모델을 세우고, /vuln-scan 은 그 위협 모델로 범위를 좁힌 정적 스캔을 수행하며, /triage 는 결과를 검증·중복 제거·순위화하고, /patch 는 검증된 발견에 대한 후보 패치를 만듭니다.
/quickstart, /threat-model, /vuln-scan, /triage 와 정적 결과(TRIAGE.json 또는 VULN-FINDINGS.json)에 대한 /patch 실행은 파일을 읽고 쓰기만 합니다. 따라서 Claude Code에서 각 도구 호출을 직접 승인하며 사용하는 한 샌드박스 없이도 안전합니다. 반면 대상 코드를 실제로 실행하는 자율 파이프라인은 기본적으로 gVisor 샌드박스 밖에서는 실행을 거부하며, 이를 우회하려면 명시적인 설정이 필요합니다. 샌드박스 구성과 주의 사항은 저장소의 docs/security.md 와 docs/agent-sandbox.md 에 정리되어 있습니다.
Defending Code Reference Harness 설치 및 사용
저장소를 받아 Claude Code에서 /quickstart 를 실행하면 30초 분량의 소개와 함께 canary 대상에 대한 첫 실행을 안내받을 수 있습니다.
git clone https://github.com/anthropics/defending-code-reference-harness
cd defending-code-reference-harness
claude
# 30초 소개 + canary 대상에 대한 첫 실행 안내
> /quickstart
자율 파이프라인을 직접 돌리려면 가상 환경 설치와 샌드박스 설정(Docker 필요)을 먼저 거친 뒤, bin/vp-sandboxed 로 recon → find → verify → report 루프를 실행합니다. 패치는 같은 명령의 patch 서브커맨드로 생성합니다.
# 1회 설정
python3 -m venv .venv && .venv/bin/pip install -e .
./scripts/setup_sandbox.sh # gVisor 설치, 에이전트 이미지 빌드, 격리 검증 (Docker 필요)
export ANTHROPIC_API_KEY=sk-ant-... # 또는 CLAUDE_CODE_OAUTH_TOKEN
# recon → find → verify → report 루프 실행
bin/vp-sandboxed run drlibs --model <model-id> --runs 3 --parallel --stream --auto-focus
# 각 발견에 대한 후보 패치 생성
bin/vp-sandboxed patch results/drlibs/<timestamp>/ --model <model-id>
저자들은 가장 빠르게 성과를 낸 보안팀일수록 완벽한 파이프라인을 설계하느라 시간을 쓰기보다 작게 시작해 직접 손을 댄 팀이었다고 정리하며, 1일 차에는 대화형 스킬로 전체 루프를 한 번 돌려 보고, 2일 차에 알려진 취약점이 있는 C/C++ 라이브러리에 파이프라인을 적용한 뒤, 3~5일 차에 자신의 대상에 맞게 /customize 로 이식하고, 2주 차에 자율 스캔·심사·패치를 본격적으로 돌리는 단계적 접근을 권합니다.
Defending Code Reference Harness의 라이선스
Defending Code Reference Harness는 Apache 2.0 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
Defending Code Reference Harness 블로그 글
Defending Code Reference Harness 프로젝트 GitHub 저장소
더 읽어보기
-
Anthropic, AI 기반 취약점 탐지 도구 Claude Code Security 발표 및 연구용 미리보기 사용 신청 시작
-
Sandbox Runtime(srt): Anthropic이 공개한 AI 에이전트를 위한 안전하고 가벼운 코드 실행 환경
-
Burp AI Agent: Web App의 보안 취약점 점검 및 침투 테스트를 위한 Burp Suite 기반 AI 에이전트
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

