Anthropic Defending Code Reference Harness
Anthropic은 Claude를 사용하여 소프트웨어 취약점을 자동으로 발견하고 수정하기 위해 설계된 오픈 소스 참조 구현체인 defending-code-reference-harness를 출시했습니다. 이 프레임워크는 정찰, 취약점 발견, 검증, 보고 및 패치 작업을 위한 구조화된 파이프라인을 제공하며, 특히 C/C++ 메모리 취약점에 최적화되어 있지만 다른 언어 및 취약점 클래스로도 이식할 수 있도록 설계되었습니다.
The Autonomous Vulnerability Discovery Pipeline
이 참조 하네스는 초기 코드베이스 분석부터 검증된 패치까지 이어지는 7단계의 자율 루프를 구현합니다. 이 프로세스는 모든 발견 사항에 대해 실행 기반의 검증을 요구함으로써 오탐(false positives)을 줄이도록 설계되었습니다.
- Build: 대상 코드는 일반적으로 C/C++의 메모리 오류를 탐지하기 위해 AddressSanitizer (ASAN)를 사용하여 Docker 이미지로 컴파일됩니다.
- Recon: 경량 에이전트가 소스 코드를 분석하여 입력 파싱 서브시스템의 파티션을 제안함으로써, 여러 에이전트가 작업을 중복하지 않고 서로 다른 공격 표면을 탐색할 수 있도록 보장합니다.
- Find: 여러 에이전트가 병렬로 실행되며, 각 에이전트는 잘못된 입력을 생성하고 크래시가 일관되게 재현될 때까지(예: 3회 중 3회) 바이너리를 실행합니다.
- Verify: 별도의 채점 에이전트(grader agent)가 find 에이전트가 제공한 PoC(proof-of-concept)만을 사용하여 새로운 격리된 컨테이너에서 크래시를 재현합니다.
- Dedupe: 판사 에이전트(judge agent)가 검증된 크래시를 이전에 보고된 버그와 비교하여 발견 사항이 고유한지 아니면 중복인지 판단합니다.
- Report: 보고 에이전트가 프리미티브 클래스, 도달 가능성 및 심각도를 상세히 설명하는 구조화된 익스플로잇 가능성 분석을 생성합니다.
- Patch: 패치 에이전트가 수정을 제안하고, 이후 채점 에이전트가 코드가 빌드되는지, 원래의 PoC가 더 이상 크래시를 일으키지 않는지, 그리고 기존 테스트 스위트가 여전히 통과하는지 확인하여 검증합니다.
Implementation and Security Sandboxing
자율 파이프라인은 취약점을 검증하기 위해 대상 코드를 실행하므로, Anthropic은 엄격한 격리를 강조합니다. 하네스는 명시적으로 재정의되지 않는 한 gVisor sandbox 외부에서 실행되는 것을 거부합니다. 이 샌드박스는 컨테이너 수준의 격리를 제공하며, 에이전트가 Claude API와만 통신할 수 있도록 제한하는 송신 허용 목록(egress allowlist)을 제공합니다.
대화형 사용을 위해, 프레임워크는 파일 읽기 및 쓰기만 가능한