
당신의 코드에 Anthropic의 Vuln-Discovery Harness 실행하기
요약
Anthropic이 공개한 오픈 소스 보안 에이전트 파이프라인인 'defending-code-reference-harness'의 운영 가이드를 소개합니다. 이 시스템은 위협 모델링부터 스캐닝, 분류, 패치까지 이어지는 자율 보안 루프를 제공합니다.
핵심 포인트
- Claude를 활용한 자율 보안 에이전트 파이프라인 제공
- 위협 모델링, 스캐닝, 분류, 패치로 구성된 전체 루프 포함
- gVisor 샌드박싱 및 멀티 에이전트 검증 인프라 지원
- Claude Code 기술을 활용한 실질적인 보안 작업 수행
차트와 임베디드 소스가 포함된 전체 버전을 AgentConn에서 읽어보세요
Anthropic이 이례적인 일을 저질렀습니다. 그들의 AI 취약점 발견 (vulnerability discovery) 시스템 뒤에 숨겨진 엔지니어링 패턴을 공개한 것입니다. #1 on Hacker News에서 504포인트와 140개 이상의 댓글을 기록하며 1위를 차지한 defending-code-reference-harness는 Claude를 자율 보안 에이전트 (autonomous security agent)로 실행하기 위한 완전한 오픈 소스 파이프라인 (pipeline)입니다. 위협 모델링 (Threat modeling), 스캐닝 (scanning), 분류 (triage), 패치 (patching). 전체 루프 (loop)를 포함합니다.
이 저장소는 출시 이후 2,200개 이상의 GitHub stars를 모았습니다. 그리고 마케팅처럼 느껴지는 대부분의 "참조 구현 (reference implementations)"와 달리, 이 프로젝트는 실제 인프라를 제공합니다: gVisor 샌드박싱 (sandboxing), 멀티 에이전트 검증 (multi-agent verification), 그리고 오늘 바로 실행할 수 있는 6가지 Claude Code 기술 (skills)입니다.
하지만 주의할 점이 있습니다. 사실 여러 가지가 있습니다. 저장소에는 "유지 관리되지 않으며 기여를 받지 않음"이라고 명시되어 있습니다. 이를 대규모로 실행하는 데는 실제 비용이 발생합니다. 또한 Anthropic은 운영상의 번거로움을 줄이면서 동일한 기능을 수행하는 호스팅 제품인 Claude Security도 판매하고 있습니다. 이 글은 운영 가이드입니다: 이 하네스 (harness)가 실제로 무엇을 하는지, 어떻게 설정하는지, 비용은 얼마나 드는지, 그리고 언제 호스팅 대안 대신 이를 사용해야 하는지에 대해 다룹니다.
하네스의 실제 정체
defending-code-reference-harness는 두 가지를 제공합니다: 대화형 보안 작업을 위한 일련의 Claude Code 기술 (skills), 그리고 이들을 하나로 묶는 **자율 스캐닝 파이프라인 (autonomous scanning pipeline)**입니다.
기술 (skills)은 구성 요소입니다:
- /quickstart — 대화형 스코핑 (Interactive scoping). 무엇을 스캔할지 묻고 컨텍스트 (context)를 설정합니다.
- /threat-model — 코드베이스를 위한 위협 모델 (threat model)을 생성합니다. 스캔이 시작되기 전에 무엇을 취약점으로 간주할지 결정하며, 이는 대부분의 보안 도구들이 완전히 건너뛰는 단계입니다.
- /vuln-scan — 소스 코드를 읽고 정규 표현식 (regex)이 아닌 추론 (reasoning)을 통해 취약점을 찾습니다. 파일, 데이터 흐름 (data flows), 모듈 간 의존성 (cross-module dependencies)을 분석합니다.
- /triage — 심각도 (severity)와 공격 가능성 (exploitability)에 따라 발견 사항을 필터링합니다. 노이즈를 줄여줍니다.
- /patch — 인간의 검토를 거쳐 확인된 취약점에 대해 타겟팅된 패치 (patch)를 생성합니다.
- /customize — 하네스 (harness) 설정을 편집할 수 있게 해줍니다: 대상 언어, 중요한 취약점 클래스 (vulnerability classes), 에이전트 오케스트레이션 (agent orchestration) 방식 등을 설정합니다.
기술 (skills)은 .claude/skills/에 위치하며, 모든 Claude Code 기술과 마찬가지로 터미널에서 대화형으로 실행할 수 있습니다. /quickstart, /threat-model, /vuln-scan, /triage, /patch는 파일을 읽고 쓰기만 하므로, 각 도구 사용을 검토하는 한 샌드박스 (sandboxed) 없이 실행해도 안전합니다. /customize는 하네스 코드를 편집하고 검증 명령을 실행하므로, 코드를 실행하는 에이전트에게 부여하는 것과 동일한 주의를 기울여 다루어야 합니다.
자율 파이프라인 (autonomous pipeline)은 이들을 6단계 루프 (six-step loop)로 연결합니다: 정찰 (recon) → 발견 (find) → 검증 (verify) → 보고 (report) → 패치 (patch). 이것이 진정한 아키텍처 (architecture)가 존재하는 지점입니다.
파이프라인: 정찰 → 발견 → 검증 → 보고 → 패치
공식 문서 (official documentation)는 인간 보안 연구원이 작업하는 방식과 유사한 6단계 프로세스를 설명합니다:
1단계 — 위협 모델 (Threat Model). 스캔을 시작하기 전에 에이전트는 위협 모델을 구축합니다: 어떤 공격 표면 (attack surfaces)이 존재하는지, 이 코드베이스에서 어떤 취약점 클래스가 중요한지, 무엇이 스코프 (scope) 내에 있는지 등을 정의합니다. 이 단계는 매우 중요합니다. 대부분의 자동 스캐너는 이 단계를 건너뛰고 무관한 발견 사항들로 사용자를 압도합니다.
2단계 — 샌드박스(Sandbox) 구축. 이 하네스(harness)는 각 에이전트를 Claude API로의 송신(egress)이 제한된 gVisor 컨테이너 내부에서 실행합니다. 인터넷 접속은 불가능하며, 파일 시스템 탈출(filesystem escape)도 허용되지 않습니다. 이러한 격리는 선택 사항이 아닙니다. 자율 파이프라인(autonomous pipeline)은 사용자가 명시적으로 재정의하지 않는 한 gVisor 샌드박스 외부에서의 실행을 거부합니다. 그 이유는 에이전트가 익스플로잇(exploit)을 검증하기 위해 대상 코드를 실행하기 때문입니다. 이러한 작업은 반드시 격리된 공간(cage) 안에서 이루어져야 합니다.
3단계 — 스캔(Scan). 에이전트는 소스 코드를 파일 단위로 읽으며 취약점을 찾습니다. 이는 단순한 패턴 매칭(pattern matching)이 아닙니다. 파일과 모듈 간의 데이터 흐름(data flows)을 포함하여 코드가 실제로 어떻게 동작하는지에 대해 추론(reasoning)하는 과정입니다. 기본 설정은 Docker와 ASAN (AddressSanitizer)을 사용하여 C/C++ 메모리 취약점을 대상으로 합니다.
4단계 — 검증(Verify). 무언가를 발견했나요? 파이프라인은 개념 증명(proof-of-concept, PoC) 익스플로잇을 생성하고 이를 샌드박스 내에서 실행합니다. ASAN 또는 크래시 오라클(crash oracle)이 버그를 확인하면 그것은 실제 취약점입니다. 그렇지 않다면 폐기됩니다. 이 검증 단계가 모든 것에 플래그를 표시하고 요행을 바라는 전통적인 SAST(Static Application Security Testing) 도구와 이 하네스를 구분 짓는 핵심입니다.
5단계 — 보고(Report). 확인된 발견 사항은 취약점 클래스, 영향을 받는 코드, 심각도 평가(severity assessment), 그리고 이를 확인한 개념 증명(proof-of-concept)을 포함하여 구조화된 보고서로 작성됩니다.
6단계 — 패치(Patch). 에이전트는 타겟 패치(targeted patch)를 생성하고, 기존 테스트를 깨뜨리지 않으면서 취약점을 수정하는지 검증합니다. 이 단계에서는 인간의 검토(human review)가 필요합니다. 하네스가 패치를 생성하면, 사용자가 이를 승인하는 방식입니다.
스캔 후 각 발견 사항을 독립적으로 검증하는 이 멀티 에이전트 검증 파이프라인(multi-agent verification pipeline)은 Claude Mythos를 구동하는 것과 동일한 아키텍처 패턴입니다. Claude Mythos는 Anthropic의 내부 시스템으로, 1,000개 이상의 오픈 소스 프로젝트에서 23,019개의 이슈를 식별했으며, 그중 6,202개는 높음(high) 또는 심각(critical) 수준의 심각도로 평가되었습니다.
자신의 리포지토리(Repo)에 설정하기
사전 요구 사항: Docker, Python 3.10 이상, Claude API 키 (또는 충분한 사용량이 포함된 Claude Code 구독).
1회성 설정:
git clone https://github.com/anthropics/defending-code-reference-harness.git
cd defending-code-reference-harness
...
대화형 스킬 (Interactive skills) 실행하기:
# 대상 리포지토리(Repo) 디렉토리에서
claude code
...
이 스킬들은 C/C++뿐만 아니라 모든 코드베이스에서 작동합니다. 이들은 소스 코드를 읽고 이에 대해 추론(Reasoning)하는 것이며, 언어별 특화 부분(ASAN, crash oracles)은 자율 파이프라인 (Autonomous pipeline)에서만 중요합니다.
자율 파이프라인 (Autonomous pipeline) 실행하기:
./harness/run.py --target /path/to/your/repo --config harness/config.yaml
⚠️ 자율 파이프라인은 익스플로잇 (Exploits)을 검증하기 위해 샌드박스 (Sandbox) 내부에서 대상 코드를 실행합니다. 대상 리포지토리가 Docker 환경에서 문제없이 빌드되는지 확인하십시오. 빌드에 실패하면 검증 단계에서 발견 사항을 확인할 수 없으며, 확인된 취약점 (Vulnerabilities) 대신 검증되지 않은 보고서를 받게 됩니다.
비용의 현실
여기에 HN 댓글 작성자들이 주목한 수치가 있습니다. 이 하네스 (Harness)는 실행 중인 에이전트(Agent)당 **분당 약 10,000개의 캐시되지 않은 입력 토큰 (Uncached input tokens)**과 **분당 2,000개의 출력 토큰 (Output tokens)**을 소비합니다.
중간 규모의 코드베이스에 대해 단일 스캔 세션을 수행할 경우, 몇 시간 동안 50만~200만 개의 토큰이 소비될 수 있습니다. 일회성 감사 (Audit)라면 감당할 수 있는 수준입니다. 하지만 Claude Security나 전통적인 SAST 도구를 사용하는 방식처럼 여러 리포지토리에 걸쳐 지속적인 스캐닝을 수행한다면, 그 수치는 빠르게 누적됩니다.
공식 문서에 따르면, 지속적인 스캐닝을 수행하는 100명의 개발자를 보유한 기업은 토큰 비용으로만 연간 약 **250만 달러 ($2.5 million)**를 지출할 수 있다고 추정합니다.
이러한 비용에 대한 불안감은 더 넓은 AI 경제학적 재고(reckoning)를 이끄는 것과 동일한 동력입니다. 토큰 가격은 2년 동안 280배 하락했지만, 워크플로우당 소비량은 폭발적으로 증가했습니다. 특히 매 턴마다 전체 컨텍스트 (context)를 다시 전송하는 에이전트형 워크로드 (agentic workloads)에서 더욱 그러합니다. (거시적인 관점은 보조금 시계가 왜 작동하고 있는지에 관한 ComputeLeap의 자매 기사를 참조하세요.)
ℹ️ 토큰 최적화 팁: 해당 하네스 (harness)는 컨텍스트 압축 (context compression)을 지원합니다. 대규모로 실행하는 경우, headroom 또는 rtk와 같은 토큰 압축 레이어 (token compression layer)와 결합하면 다회차 검증 루프 (multi-turn verification loops)에서 다시 전송되는 컨텍스트에 대한 비용을 크게 절감할 수 있습니다.
비용 계산에 따라 결정이 달라집니다. 분기별 보안 감사 (security audit)의 경우, 오픈 소스 하네스가 Claude Security보다 거의 확실히 저렴합니다. 반면 지속적인 스캐닝 (continuous scanning)의 경우에는 호스팅된 제품의 가격이 실제로 더 경제적일 수 있으며, 운영 부담 (ops burden)도 없습니다.
Claude Security (호스팅형) vs. 오픈 소스 하네스
Anthropic은 이제 동일한 기능을 제공하기 위해 두 가지 경로를 제안합니다:
| 오픈 소스 하네스 (Open-Source Harness) | Claude Security (호스팅형) | |
|---|---|---|
| 비용 모델 | 토큰당 과금 (API) | 구독형 (Enterprise) |
| ... |
Claude Security는 Claude Enterprise의 일부로 퍼블릭 베타 (public beta)로 출시되었습니다. 이 제품은 예약된 스캔 (scheduled scans), 문서화된 사유를 포함한 탐지 결과 무시 (finding dismissal), 그리고 감사 시스템을 위한 CSV/Markdown 내보내기 기능을 추가합니다.
이 오픈 소스 하네스 (harness)는 파이프라인을 이해하고 제어하고자 하는 운영자를 위한 것입니다. 만약 여러분이 자체적인 보안 도구를 구축하고 있거나, 커스텀 CI/CD 파이프라인에 취약점 탐지 (vulnerability discovery) 기능을 통합하고 싶거나, 혹은 Claude Security가 아직 다루지 않는 취약점 클래스 (vulnerability classes)를 타겟팅해야 한다면, 이 하네스는 여러분이 기반으로 삼을 수 있는 엔지니어링 패턴을 제공합니다.
HN의 의견: 커뮤니티가 실제로 말하는 것
Hacker News 스레드 (504 포인트, 140개 이상의 댓글)에서는 추적할 가치가 있는 몇 가지 실질적인 우려 사항들이 제기되었습니다:
비용에 대하여: 여러 댓글 작성자들이 분당 약 10,000 토큰 (tokens)의 소비량을 지속적인 사용에 있어 잠재적인 걸림돌로 지적했습니다. 합의된 의견은 다음과 같습니다: 예산이 충분하지 않다면, 이 하네스는 지속적인 스캐너 (continuous scanner)가 아닌 감사 도구 (audit tool)로 사용하는 것이 가장 적합합니다.
"유지 관리되지 않음" 라벨에 대하여: 장기적인 생존 가능성에 대한 회의론이 있었습니다. 일부 댓글 작성자들은 이를 Anthropic이 대신 Claude Security를 사용하기를 바라는 의도로 해석했습니다. 다른 이들은 이를 표준적인 오픈 소스 면책 조항 문구로 보았습니다. 진실은 아마도 두 가지 모두일 것입니다.
DIY 하네스에 대하여: 몇몇 숙련된 보안 엔지니어들은 Claude의 API를 사용하여 유사한 파이프라인을 구축하는 것이 "오늘날 놀라울 정도로 접근하기 쉽다"고 언급했습니다. 이 하네스의 가치는 불가능한 일을 해낸다는 점이 아니라, 그렇지 않으면 스스로 알아내야 했을 베스트 프랙티스 (best practices) (특히 gVisor 샌드박싱 (sandboxing) 및 멀티 에이전트 검증 (multi-agent verification))를 체계화했다는 점에 있습니다.
SAST 비교에 대하여: 해당 스레드에서는 Snyk, Semgrep, 그리고 SonarQube와의 날카로운 비교가 이루어졌습니다. 합의된 의견은 다음과 같습니다: 전통적인 SAST (정적 분석 보안 테스트)는 알려진 패턴을 잡아내지만, AI 하네스는 패턴 매칭 (pattern-matching) 도구가 놓치는 로직 취약점 (logic vulnerabilities)과 새로운 버그 클래스 (bug classes)를 찾아냅니다. 트레이드오프 (tradeoff)는 비용, 속도, 그리고 오탐률 (false positive rates)입니다.
에이전트 보안 스택에서의 위치
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

