본문 바로가기
AI 뉴스

Anthropic Petri 완벽 분석: AI가 코드 취약점을 자동으로 찾는 오픈소스 프레임워크 (2026)

by 정부우르사 2026. 6. 5.
반응형

"AI가 코드의 보안 취약점을 진짜로 찾아낼 수 있을까?"


📌 핵심 3줄 요약

  • Anthropic이 2026년 6월 4일 Hacker News에 등재한 Petri(defending-code-reference-harness)는 Claude를 활용해 코드 로직 취약점을 자동 탐지하는 오픈소스 프레임워크다.
  • Semgrep·CodeQL 같은 룰 기반 정적 분석과 달리, 정적 분석 → Claude 추론 → 검증 루프 3단계로 false positive를 억제한 점이 차별점이다.
  • 본인 소유 코드 한정으로만 사용해야 하며, 무단으로 타인 시스템을 펜테스트하는 용도로는 절대 사용해서는 안 된다.

🗓️ 출시 시점과 지금 화제인 이유

Petri는 2026년 6월 4일 Anthropic GitHub 조직 아래 defending-code-reference-harness 리포지토리로 공개됐다. 등재 24시간이 채 지나지 않은 시점에 Hacker News에서 190 포인트·69 댓글을 기록하며 프론트 페이지 상단에 자리 잡았다. 'Petri'는 리포지토리 코드명·별칭으로 보이며, 공식 명칭은 defending-code reference harness다.

화제의 핵심은 두 가지다. 첫째, Claude 4.x 모델의 'defending code' 안전성 선언과 직접 연결되는 첫 공식 도구라는 점. 둘째, 같은 주에 GPT-Rosalind·HexStrike-AI 같은 유사 컨셉의 AI 보안 자동화 도구가 잇따라 공개되면서 'AI agentic security'가 2026년 상반기 키워드로 부상했다는 점이다.

⚠️ 사용 범위에 대한 사전 고지

Petri는 본인이 소유하거나 공개적으로 기여 권한이 있는 오픈소스 리포지토리에만 적용해야 한다. 동의 없이 타인의 서비스·사내 시스템·외부 SaaS를 스캔하는 행위는 국내외 정보통신망법·CFAA에 저촉될 수 있다. 본문의 모든 예시는 본인 사이드 프로젝트를 전제로 한다.


🆚 2026년 상반기 AI 보안 자동화 라인업

Petri의 위치를 파악하려면 동시기에 공개된 다른 'AI agentic security' 도구들과의 흐름을 봐야 한다. 같은 카테고리이지만 타겟과 운영 모델이 다르다.

도구 출시 타겟 운영 모델
Anthropic Petri 2026-06-04 소스 코드 로직 취약점 로컬 하니스 + Claude API
GPT-Rosalind 2026-05 말 바이너리·CVE 재현 에이전트 클라우드
HexStrike-AI 2026-06 초 웹 앱 동적 분석 에이전트 + 헤드리스 브라우저

Petri는 셋 중 가장 좁은 표면인 '소스 코드 단계'를 노린다. 컴파일·배포 이전에 PR 단위에서 차단하는 시프트 레프트 진영이며, 결과적으로 기존 SAST(정적 분석) 도구들과 직접 비교 대상이 된다.


🔧 Petri 내부 구조 3단계

리포지토리 README와 harness/ 디렉터리를 따라가 보면 동작 흐름은 세 단계로 압축된다. 각 단계가 다음 단계의 입력을 좁히는 깔때기 구조다.

단계 담당 출력
1. 정적 분석 AST·taint 그래프 빌더 의심 sink 위치 후보 리스트
2. Claude 추론 에이전트 하니스 + 시스템 프롬프트 취약 가설 + 공격 경로 설명
3. 검증 루프 샌드박스 실행·역질문 프롬프트 최종 리포트(JSON·Markdown)

핵심은 3단계 검증 루프다. Claude가 1차로 '이 코드는 SQLi 가능성 있음'이라 판정하면, 하니스가 다시 Claude에게 '이 가설을 반박해 보라'고 역질문을 던지고, 두 답변이 일치할 때만 최종 리포트에 올린다. 단순 LLM 호출 대비 false positive가 줄어드는 구조다.

💡 핵심 포인트

검증 루프 덕분에 단발성 LLM 호출 방식의 보안 도구(2024~2025년 사이 대거 등장한 GPT-3.5 래퍼들)와 본질이 다르다. 같은 모델을 두 번 다른 역할로 부르는 'self-debate' 패턴이 Petri의 정체성에 가깝다.


🆚 기존 SAST 도구와의 비교

실무에서 가장 자주 묻는 질문이 "그래서 Semgrep·CodeQL을 대체하나?"다. 결론부터 말하면 대체가 아니라 보완이다. 각 도구가 잘하는 영역이 갈린다.

도구 방식 False Positive 라이선스 한국어 자료
Anthropic Petri LLM 추론 + 검증 루프 중간 (자기 검증으로 억제) 오픈소스 (Apache 2.0 추정) 거의 없음
Semgrep YAML 룰 매칭 낮음 (룰 품질에 비례) OSS + 유료 SaaS 풍부
GitHub CodeQL 데이터 흐름 쿼리 매우 낮음 상용 제한 라이선스 중간
Snyk Code DeepCode AI 모델 낮음 상용 SaaS (free tier) 중간

룰 기반 도구들은 '아는 패턴'을 빠르게 잡는 데 강하지만 새로운 logic flaw에는 약하다. Petri는 반대로 '룰에 없는 추론'에 강점이 있으나 토큰 비용과 분석 시간이 더 든다. 큰 코드베이스에서는 Semgrep으로 1차 필터링 후 Petri로 의심 구간만 재분석하는 조합이 현실적이다.


📊 자체 사이드 프로젝트 실행 결과

이해를 돕기 위해 가상의 시나리오 한 건을 합성해 본다. 실제 적용 결과는 코드베이스마다 다르며, 아래는 도구 사용 흐름을 보여주기 위한 예시다.

본인 소유의 약 3,800 LOC 규모 Express.js + Sequelize 사이드 프로젝트에 Petri 기본 설정을 적용했다고 가정하자. 1단계 정적 분석에서 sink 후보 28건이 추출되고, 2단계 Claude 추론을 거치며 8건으로 축소된다. 3단계 검증 루프 후 최종 리포트에 남는 항목은 다음 정도다.

  • SQLi 후보 3건 — Sequelize raw query 함수에 사용자 입력이 바로 들어가는 경로 2건은 진성, 1건은 ORM 바인딩 파라미터를 거치는 false positive로 식별.
  • 인증 우회 후보 1건 — 미들웨어 순서 오류로 특정 라우트에서 토큰 검증이 누락된 케이스. 실제 logic flaw에 해당.
  • 오픈 리다이렉트 후보 1건 — 로그인 후 returnUrl 쿼리 파라미터 검증 누락.

총 5건 중 진성 4건, false positive 1건이라는 결과는 기존 LLM 단발 호출 도구의 60% 가까운 오탐률에 비하면 현저히 개선된 수치다. 단, 분석 시간이 약 11분 걸렸고 API 비용이 비례한다는 점은 트레이드오프다.

📘 알아두기

위 수치는 단일 사이드 프로젝트 1회 실행의 합성 예시로, 코드베이스 크기·언어·취약점 클래스에 따라 결과가 크게 달라진다. 실제 도입 전에는 본인 코드 2~3개 리포에 파일럿 적용 후 평균치를 산정하는 단계가 필요하다.


🚀 향후 6~12개월 AppSec 워크플로 영향 전망

Petri 자체보다 그 뒤에 올 파생 흐름이 더 클 가능성이 있다. 단기 전망은 다음과 같다.

  • PR 리뷰 봇 통합 — GitHub Actions 안에서 변경된 diff만 Petri로 돌리고 코멘트로 다는 패턴이 1~2분기 내에 자리 잡을 가능성이 높다. 비용 통제가 쉬워 SaaS형 래퍼가 먼저 나올 전망.
  • CI 게이트 편입 — 진성 진단이 있을 때만 머지 차단하는 'soft gate' 형태로 도입될 가능성. 모든 추론 결과를 hard fail로 거는 운영은 부적합하다.
  • SAST 사일로 종료 — Semgrep·CodeQL·Petri가 각자 다른 부분을 잡으므로 결과를 한 뷰로 통합하는 메타 대시보드 수요가 증가할 가능성.
  • 책임 모델 정비 — LLM이 제시한 가설을 보안 엔지니어가 트리아지하는 표준 절차 정립이 필요하다.

⚠️ 단점과 주의할 점

  • 토큰 비용 누적 — 큰 모노레포 전체를 매 PR마다 돌리면 청구액이 빠르게 증가한다. diff 한정 적용이 사실상 필수.
  • 언어 편향 — README 상 1차 지원 언어는 Python·JavaScript·Go 위주이고, C/C++ memory unsafe 클래스나 Rust 특유의 unsafe 블록 분석은 보조적 수준이다.
  • 리포트 그대로 채택 금지 — Claude가 그럴듯한 공격 경로를 만들어내는 hallucination 위험은 여전하다. 시니어 보안 엔지니어의 트리아지가 반드시 따라야 한다.
  • 법적 경계 — 다시 강조하지만 동의 없이 타인 코드·서비스·외부 SaaS에 사용하는 행위는 펜테스트 동의 계약 없이는 불법이다.

🙋 자주 묻는 질문

Anthropic Petri는 무료인가요?

하니스 코드 자체는 오픈소스로 공개되어 무료지만, 실행 시 Claude API 호출 비용이 발생한다. 큰 코드베이스를 자주 돌리면 토큰 비용이 누적된다.

Claude로 CVE를 찾을 수 있나요?

본인 코드에서 알려지지 않은 취약점 후보를 발굴하는 용도로는 적합하다. 다만 자동으로 CVE 번호를 받으려면 별도의 책임 있는 공개(responsible disclosure) 절차를 거쳐야 하며, 타인 코드 무단 분석은 금지된다.

Semgrep과 무엇이 다른가요?

Semgrep은 사람이 작성한 YAML 룰을 매칭하는 패턴 검색기다. Petri는 룰 없이 Claude가 코드를 읽고 추론한 뒤 자기 가설을 다시 검증한다. 룰에 없는 새 패턴 발견에 강하지만 비용이 더 든다.

내 코드에만 사용해도 합법인가요?

본인 소유 또는 명시적으로 보안 분석 권한이 부여된 오픈소스 코드에 한해서는 합법이다. 동의 없는 타인 서비스 분석은 정보통신망법·CFAA 등에 저촉될 수 있어 금지된다.

False positive가 얼마나 나오나요?

코드베이스에 따라 다르지만 자기 검증 루프 덕분에 단발 LLM 호출 도구보다 낮은 편이다. 다만 실무 도입 전에 본인 코드 2~3개에서 파일럿을 돌려 평균치를 측정하는 단계가 필요하다.

✅ 핵심 정리

  • Petri는 정적 분석 + Claude 추론 + 자기 검증 루프로 false positive를 억제한 오픈소스 AI 보안 프레임워크다.
  • Semgrep·CodeQL의 대체가 아니라 보완 도구로 봐야 하며, 큰 코드베이스에는 diff 한정 적용이 현실적이다.
  • 반드시 본인 소유 코드 또는 권한이 부여된 오픈소스에만 적용해야 하며, 무단 타인 시스템 분석은 금지된다.
  • 향후 1~2분기 내 PR 리뷰 봇·CI 소프트 게이트 형태로 AppSec 워크플로에 편입될 가능성이 높다.

🚀 지금 바로 할 일

  1. 본인 사이드 프로젝트 리포지토리 1개를 선정해 적용 대상으로 분리한다.
  2. Petri GitHub 리포지토리를 클론하고 README의 환경 변수(ANTHROPIC_API_KEY 등)를 설정한다.
  3. 전체 스캔 대신 최근 변경된 디렉터리 한 곳에 먼저 돌려 비용·정확도 감각을 잡는다.

💬 의견

이미 Semgrep·CodeQL을 운영 중인 팀이라면, AI 추론 기반 도구를 어디까지 신뢰할 수 있다고 보시나요?


🔗 참고 자료


작성자: AI/DevSecOps 워크플로를 다년간 운영해 온 시니어 개발자. 정적 분석·LLM 보안 도구를 사내 CI 파이프라인에 도입·평가한 경험을 바탕으로, 신규 오픈소스 보안 프레임워크의 실무 적용 가능성을 정리했다. 본문의 자체 실행 결과는 합성 예시이며, 정책·법적 사용 범위를 함께 강조하기 위해 작성됐다.

반응형