Claude DCRH로 코드 취약점을 탐지하고 패치하는 방법
Claude 기반 Defending Code Reference Harness의 위협 모델링, 취약점 검증, gVisor 격리, 자동 패치와 CI/CD 통합 방식을 분석한다.
2026-08-14 · 최초 발행 2026-08-02
규칙 매칭을 넘어 코드의 맥락을 읽는 하네스
Anthropic의 **Defending Code Reference Harness(DCRH)**는 Claude를 이용해 코드베이스의 취약점을 찾고 수정하는 오픈소스 보안 파이프라인이다. 위협 모델링에서 패치 생성까지 이어지는 멀티 에이전트 구조를 제시한다. 2026년 5월 기준 오픈소스 프로젝트에서 1,596건의 취약점을 공개 제보했고, GitHub에서는 2,200개 이상의 별을 받았다.
DCRH는 대형 조직의 보안 팀과 협업하며 축적한 경험을 레퍼런스 구현체로 풀어낸 결과물이다. 핵심 엔진은 Claude Code다. 미리 정의한 규칙과 코드를 대조하는 기존 SAST와 달리, 코드베이스를 보안 연구자의 관점에서 읽고 추론하도록 설계됐다.
패턴 매칭은 알려진 취약한 구조를 빠르게 찾는 데 유용하지만, 비즈니스 로직이나 여러 컴포넌트의 상호작용에서 생기는 결함까지 포착하기는 어렵다. DCRH는 데이터 흐름과 신뢰 경계, 공격 표면을 먼저 파악한 뒤 취약점 클래스별 탐색을 수행한다.
실행 환경은 Claude API에 접근할 수 있으면 된다. Anthropic Bedrock, Vertex AI, Azure도 지원 범위에 포함된다.
위협 모델에서 패치까지 이어지는 흐름
파이프라인은 위협 모델링, 취약점 스캔, 트리아지와 검증, 패치 생성의 네 단계로 진행된다. 각 단계는 Claude Code 스킬로 제공되며, 터미널에서 대화형으로 실행하거나 자율 스캐닝 하네스에 맡겨 배치 처리할 수 있다.
스캔 기준을 먼저 세우는 위협 모델링
Claude는 코드베이스의 아키텍처를 분석하고 무엇을 취약점으로 볼지 정한다. 공격 표면과 신뢰 경계, 중요 데이터의 흐름을 먼저 확인해 이후 탐색이 코드의 맥락을 반영하도록 한다. 개발자는 /threat-model 스킬을 사용해 분석 범위를 대화형으로 조정할 수 있다.
파일 경계를 넘는 취약점 탐색
/vuln-scan을 실행하면 Claude 에이전트가 여러 파일에 걸친 데이터 흐름을 추적한다. 버퍼 오버플로우와 use-after-free 같은 메모리 안전성 버그에는 ASAN(AddressSanitizer) 계측 빌드 타깃을 만들고, 발견 건마다 실행 가능한 PoC를 산출한다.
판정에는 실행 결과가 쓰인다. 크래시가 발생하면 취약점으로 확정하고, 발생하지 않으면 해당 발견을 폐기해 오탐을 줄인다.
독립적인 재현으로 발견 건 걸러내기
트리아지 단계에서는 독립적인 여러 Claude 인스턴스가 같은 취약점의 재현을 시도한다. 멀티 에이전트 투표 방식으로 발견 여부를 확정하고, 실행 가능성에 따라 우선순위를 다시 매긴다. 여러 번의 스캔에서 반복된 발견을 합치는 중복 제거 로직도 이 과정에 포함된다.
코드베이스의 관례를 따르는 수정안
검증을 통과한 취약점은 /patch 스킬로 전달된다. 생성되는 패치는 단순한 코드 치환이 아니라 기존 코드베이스의 스타일과 설계 패턴을 따르는 수정안이다. 최종 반영 여부는 사람이 PR을 검토한 뒤 결정한다.
취약한 코드를 실행하기 위한 격리 경계
자율 파이프라인인 bin/vp-sandboxed는 모든 에이전트를 gVisor 컨테이너 안에서 실행한다. 분석 중 취약한 코드를 직접 실행하더라도 익스플로잇이 분석 환경 밖으로 빠져나가지 않도록 격리하기 위해서다.
외부 통신도 Claude API 호출로 제한한다. 에이전트가 접근할 수 있는 egress를 좁혀 분석 대상 코드나 데이터가 빠져나갈 경로를 최소화한다.
Claude Code에서 사용할 수 있는 스킬
DCRH의 .claude/skills/ 디렉터리에는 여섯 개의 스킬이 들어 있다.
| 스킬 | 역할 |
|---|---|
/quickstart |
초기 설정 및 환경 검증 |
/threat-model |
위협 모델 생성 및 스캔 범위 정의 |
/vuln-scan |
취약점 스캔 실행 |
/triage |
발견 건 우선순위화 및 검증 |
/patch |
패치 코드 생성 |
/customize |
자율 하네스 환경 커스터마이징 |
개별 스킬은 Claude Code 터미널에서 직접 호출할 수 있다. 반복 작업이나 대규모 처리가 필요하면 harness/ 디렉터리의 자율 파이프라인으로 넘긴다. 새로운 소프트웨어 스택을 분석하려면 해당 스택을 지원하는 컨테이너 이미지를 만드는 커스터마이징 작업이 필요하다.
오탐을 실행 근거로 줄이는 방식
Anthropic이 공개한 테스트에서 Claude Code는 취약점 46건을 발견했다. 진양성 비율은 14%, 오탐 비율은 86%였다. 패턴 기반 도구와 비교하면 이 수치만으로는 낮아 보이지만, DCRH는 비즈니스 로직 취약점을 탐색할 수 있다는 차이가 있다.
첫 번째 필터는 PoC다. 발견한 취약점마다 실행 가능한 PoC를 만들고 실제 크래시가 발생하는지 확인한다. 코드 해석만으로 판정하지 않고 실행 결과를 증거로 삼는다.
그다음에는 독립적인 Claude 인스턴스 여러 개가 재현을 시도한다. 여러 에이전트의 결과가 일치해야 발견 건을 최종 확정하는 멀티 에이전트 투표 방식이다.
Claude Security는 각 발견 건에 신뢰도 등급도 부여한다. 보안 팀은 임계값을 넘은 항목을 즉시 처리하고, 신뢰도가 낮은 항목은 배치 처리하거나 근거를 검토해 기각할 수 있다.
CI/CD에 연결할 때 넓어지는 공격 표면
DCRH는 GitHub Actions와 연결해 PR이 생성될 때 보안 스캔을 시작하도록 구성할 수 있다. 검증된 발견을 PR 코멘트로 남기고, 선택에 따라 패치 PR까지 생성하는 흐름이다.
이 통합은 에이전트 자체를 새로운 공격 표면으로 만든다. Microsoft Security Blog는 Claude Code GitHub Action이 이슈 본문, PR 설명, 코멘트처럼 신뢰할 수 없는 GitHub 콘텐츠를 처리할 때 CI/CD 워크플로우 시크릿이 노출될 수 있다고 경고했다. 해당 문제는 2026년 5월 5일 Claude Code v2.1.128에서 수정됐다.
따라서 AI 에이전트에 전달되는 프롬프트와 워크플로우 트리거, 도구 권한도 빌드 스크립트나 배포 파이프라인과 같은 수준에서 위협 모델링해야 한다.
기존 코드 보안 도구와의 역할 차이
DCRH와 Semgrep, GitHub Copilot Security는 탐지 방식과 강점이 다르다.
| 항목 | DCRH (Claude) | Semgrep | GitHub Copilot Security |
|---|---|---|---|
| 탐지 방식 | LLM 추론 기반 | 정적 분석 + 테인트 분석 | LLM 패턴 인식 |
| 파일 경계 추론 | 우수 | 중간 (데이터플로우) | 보통 |
| 비즈니스 로직 취약점 | 우수 | 제한적 | 제한적 |
| CVE 데이터베이스 연동 | 부분 | 우수 | 부분 |
| False Positive 관리 | PoC + 멀티 에이전트 | 규칙 기반 필터 | 패턴 신뢰도 |
| CI/CD 통합 | 지원 | 네이티브 | 네이티브 |
| 패치 자동 생성 | 지원 | 미지원 | 제안 수준 |
| 오픈소스 여부 | 오픈소스 | 오픈소스/상용 혼용 | 상용 |
Semgrep과 Snyk Code는 테인트 분석과 데이터플로우 도달 가능성 분석을 이용해 여러 파일에 걸친 취약점 경로를 추적하고 CVE 데이터베이스와 연결하는 데 강하다. Copilot Security는 일반적인 보안 패턴을 찾는 데 효과적이지만, 테인트 분석이나 CVE 데이터베이스 매칭을 대신하지는 못한다.
보안 스캐닝이 중요한 환경에서는 Copilot의 일반 리뷰에 Semgrep이나 Snyk Code 같은 SAST 도구를 결합하거나, DCRH를 추가해 AI 추론 기반의 심층 분석을 수행하는 조합이 권장된다. GitHub Advanced Security를 DCRH + Semgrep + Gitleaks로 대체하면 연간 3~20만 달러를 절감할 수 있다는 분석도 나오고 있다.
DevSecOps 관점에서 읽어야 할 지점
DCRH가 우선 다루는 대상에는 메모리 안전성 버그인 CWE-119 계열이 포함된다. 비즈니스 로직 오류와 접근 제어 결함도 탐지 범위에 들어간다. 이는 CWE와 CVE로 취약점을 분류하는 전통적인 소프트웨어 보안 체계와 맞닿아 있다.
CI/CD에 보안 검사를 넣는 구조는 개발 초기부터 보안을 내재화하는 Shift-Left와 DevSecOps의 구현 사례다. 분석 방식도 한쪽에만 머물지 않는다. LLM 추론을 이용한 정적 코드 분석에 PoC 실행과 ASAN 계측이라는 동적 분석을 결합한다.
탐지 이후의 운영도 자동화 범위에 포함된다. 발견, 트리아지, 패치, 검증을 하나의 주기로 연결해 인적 오류를 줄이고 대응 속도를 높이는 방식이다.
AI 보안 도구와 에이전트 자체 보안
Anthropic은 2026년 4월 30일 Claude Security를 공개 베타로 전환하고 Opus 4.7 기반의 엔터프라이즈 보안 스캐닝 제품을 출시했다. DCRH가 공개된 레퍼런스 구현체라면 Claude Security는 이를 상용 SaaS로 제공하는 형태다.
Claude Security는 Anthropic의 ‘내일의 소프트웨어 보안(Securing Tomorrow's Software)’ 연구와 함께 발표됐다. 수백 개 조직이 기존 도구가 수년 동안 놓친 프로덕션 취약점을 발견하고 수정하는 데 이를 활용하고 있다.
한편 Claude Code 자체도 CVE-2025-59536, CVE-2026-21852 등의 대상이 됐다. AI 에이전트로 보안 검사를 자동화하는 작업과 에이전트 자체를 방어하는 작업이 동시에 필요하다는 뜻이다.
단일 LLM 스캔의 오탐을 줄이기 위해 독립적인 에이전트들이 서로의 결과를 확인하는 멀티 에이전트 검증도 표준적인 구조로 자리 잡고 있다. Anthropic이 DCRH를 통해 오픈소스 프로젝트의 취약점 1,596건을 발견하고 CVE 공개 제보를 수행한 사례는 AI 기업이 보안 생태계에 참여하는 방식도 보여준다.
DCRH만으로 모든 코드 보안 문제를 해결할 수는 없다. 현재 공개된 진양성 비율 14%를 고려하면 Semgrep이나 Snyk Code처럼 규칙 기반 정밀도를 갖춘 도구와 병행할 필요가 있다. CI/CD에서 실행할 때는 입력 검증과 최소 권한을 적용하고, 스캔 환경과 외부 통신 경계도 함께 통제해야 한다.
Sources
- GitHub - anthropics/defending-code-reference-harness
- Anthropic's Defending Code Reference Harness: AI-Powered Vulnerability Discovery at Scale | TechPlanet
- Making frontier cybersecurity capabilities available to defenders | Anthropic
- Anthropic's agentic solution for vulnerability detection | Claude Security
- Anthropic announces Claude Security public beta | SiliconANGLE
- Finding vulnerabilities in modern web apps using Claude Code and OpenAI Codex | Semgrep
- Claude Security vs Snyk vs GitHub Adv Security vs Semgrep: 2026 Buyer's Guide | FindSkill.ai
- Securing CI/CD in an agentic world: Claude Code Github action case | Microsoft Security Blog
- Security Agents Need Repro Harnesses, Not More Scan Prompts | Developers Digest
- Defending Code Reference Harness - AI Agent Review | AgentConn