Multi-Agent LLM 시스템으로 취약점 자동 발견 및 재현하기 - FuzzingBrain V2
Multi-Agent LLM System for Automated Vulnerability Discovery and Reproduction
TL;DR Highlight
LLM 기반 멀티 에이전트 시스템으로 C/C++ 코드의 보안 취약점을 자동으로 찾고 재현하는 FuzzingBrain V2 논문으로, AIxCC 2025 대회에서 40개 중 36개(90%) 취약점 탐지에 성공했다.
Who Should Read
C/C++ 오픈소스 프로젝트의 보안 취약점을 자동화하고 싶은 보안 엔지니어나 DevSecOps 담당자, 또는 LLM을 활용한 코드 분석 도구를 연구하는 개발자.
Core Mechanics
- 2025년에만 CVE(공개 취약점 데이터베이스에 등록된 보안 결함)가 약 50,000건 보고됐는데, 기존 LLM 기반 취약점 탐지 도구는 오탐율이 높고 실제로 재현 가능한 증거를 제공하지 못한다는 문제가 있었다.
- 기존 도구들은 함수 단위로 분석하면 컨텍스트가 너무 넓어지고, 라인 단위로 분석하면 맥락이 부족한 딜레마가 있었는데, FuzzingBrain V2는 이 사이의 최적 단위를 찾기 위해 'Suspicious Point'라는 제어 흐름(control flow) 기반의 새로운 추상화 단위를 도입했다.
- Google의 OSS-Fuzz(오픈소스 프로젝트를 대상으로 구글이 운영하는 퍼징 자동화 인프라) 위에 시스템을 구축해서, 보고된 모든 취약점이 퍼저(fuzzer, 무작위 입력으로 버그를 찾는 도구)로 실제 재현 가능하다는 것을 보장한다.
- 함수 간 복잡한 의존성이 있는 취약점을 추론하기 위해 로직 기반 계층적 함수 분석(logic-driven hierarchical function analysis)과 두 단계 퍼징(dual-layer fuzzing)을 결합해 제한된 컴퓨팅 자원 안에서도 함수 커버리지를 높였다.
- MCP(Model Context Protocol, LLM이 외부 도구를 호출하는 표준 프로토콜)를 통해 정적 분석(소스코드를 실행 없이 분석)과 동적 분석(실제로 실행해서 분석)을 모두 연결하고, 컨텍스트 엔지니어링으로 복잡한 취약점 추론 능력을 강화했다.
- AIxCC 2025 Final Competition의 C/C++ 데이터셋에서 40개 취약점 중 36개를 탐지해 90% 탐지율을 달성했다.
- 실제 운영 환경에서 12개 오픈소스 프로젝트에서 29개의 제로데이(이전에 알려지지 않은 신규) 취약점을 발견했고, 모두 해당 프로젝트 관리자에게 확인 및 수정됐으며 그 중 2개는 CVE ID를 받았다.
Evidence
- '제로데이 취약점'이라는 표현이 마케팅 과장이라는 지적이 있었다. 보통 zero-day는 이미 야생에서 악용 중인 취약점을 뜻하는데, 책임 공개(responsible disclosure) 프로그램을 통해 제보된 것을 zero-day라고 부르는 건 용어를 잘못 쓰는 것이라는 비판이다.
- 누군가 방어 대신 공격형 대응 AI를 만들면 어떨지에 대한 SF적 상상도 나왔다. 침입 탐지가 트리거되면 공격자를 역으로 해킹하려는 공세적 AI를 자동으로 풀어놓는 시나리오인데, '재미있겠지만 위험한 발상'이라는 뉘앙스로 언급됐다.
How to Apply
- C/C++ 오픈소스 프로젝트를 유지관리하면서 주기적인 보안 감사가 어렵다면, FuzzingBrain V2가 OSS-Fuzz 위에서 동작하기 때문에 OSS-Fuzz에 프로젝트를 등록하고 이 시스템의 분석 파이프라인을 참고해 자동화된 취약점 탐지 흐름을 구성할 수 있다.
- LLM 기반 코드 분석 도구를 만들 때 함수 단위와 라인 단위 중 어떤 granularity를 쓸지 고민된다면, 이 논문의 'Suspicious Point' 개념(제어 흐름 기반 중간 단위 추상화)을 참고해 맥락은 유지하되 불필요한 노이즈는 줄이는 분석 단위 설계에 적용해볼 수 있다.
- LLM 에이전트가 정적/동적 분석 도구를 호출해야 하는 보안 자동화 파이프라인을 구축 중이라면, MCP(Model Context Protocol)를 통해 도구를 연결하는 이 논문의 아키텍처를 참고해 에이전트-도구 통합 설계를 검토할 수 있다.
- AIxCC 같은 보안 CTF나 취약점 발굴 대회에 참가하거나 준비 중이라면, FuzzingBrain V2의 멀티 에이전트 구성과 dual-layer fuzzing 전략을 벤치마크로 삼아 자신의 접근법과 비교해볼 수 있다.
Terminology
관련 논문
LLM 기반 Multi-Agent 시스템의 Temporal & Structural Credit Assignment 통합 Prompt 최적화
여러 AI 에이전트가 협력할 때 '어느 라운드의 어느 에이전트'가 실패했는지 정확히 짚어내서 그 프롬프트만 고치는 최적화 프레임워크
CORE: Contrastive Reflection으로 추론 능력을 빠르게 개선하기
성공/실패 추론 트레이스를 비교해 짧은 자연어 인사이트를 뽑아내고, 단 5개 학습 샘플로도 GRPO보다 빠르게 모델 추론 성능을 올리는 비파라메트릭 알고리즘.
Claude Code를 일상 도구로: Claude.md, Skills, Subagents, Plugins, MCPs 활용법
Claude Code를 터미널 AI 코딩 도구로 제대로 쓰기 위한 Claude.md 설정, 서브에이전트, 플러그인, MCP 연동 실전 가이드
FinHarness: 금융 LLM 에이전트를 위한 인라인 라이프사이클 Safety Harness
금융 AI 에이전트가 실행 중간에 위험한 툴 호출을 차단하면서도 정상 승인율을 유지하는 인라인 안전 프레임워크
AI Control에서 Retrying vs Resampling: 어느 쪽이 더 안전한가
Claude Code처럼 의심 행동을 막고 재시도하는 방식이 오히려 공격자에게 힌트를 줘서 더 위험할 수 있다는 연구.
Typed Memory Representation으로 Long-Term Agent의 Provenance-Role Collapse 완화
LLM 에이전트의 장기 메모리가 출처를 뒤섞는 문제를 '타입이 있는 메모리 원자' 구조로 해결한 논문
당신의 에이전트를 밀어붙여라: Long-Horizon LLM 에이전트의 Quantitative Goal Persistence 측정과 강제