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
Related Papers
Show HN: ctx – Search the coding agent history already on your machine
Claude Code, Cursor, Codex 등 코딩 에이전트가 이전 세션의 논의·결정·실패 시도를 잊지 않도록 SQLite로 인덱싱해 재사용할 수 있게 해주는 오픈소스 CLI 도구다.
Micro-Agent: Beat Frontier Models with Collaboration Inside Model API
vLLM 팀이 단일 모델 API 호출 뒤에서 여러 모델이 협업하는 'Micro-Agent' 개념을 공개했습니다. 별도의 에이전트 코드 없이 라우터 레이어에서 모델 조합을 실행해 GPT-4급 결과를 더 저렴하게 낼 수 있다는 아이디어입니다.
Ornith-1.0: self-improving open-source models for agentic coding
Gemma 4와 Qwen 3.5를 기반으로 파인튜닝한 코딩 특화 오픈소스 모델로, RL(강화학습)을 통해 스캐폴드(에이전트 실행 구조)까지 함께 최적화하는 방식을 주장하지만, 커뮤니티에서는 벤치마크 과최적화에 불과하다는 의심을 받고 있다.
Entity Binding Failures in Tool-Augmented Agents
AI 에이전트가 올바른 도구를 선택해도 잘못된 대상에 실행하는 'Entity Binding 실패' 문제를 정의하고, 이를 막는 실행 정책을 평가한 논문.
Herdr: Agent multiplexer that lives in your terminal
여러 AI 코딩 에이전트(Claude, Codex 등)를 하나의 터미널에서 동시에 실행·관리할 수 있는 Rust 기반 오픈소스 툴로, tmux처럼 세션이 유지되고 SSH로 원격 접속도 가능해 멀티 에이전트 워크플로우를 크게 단순화해준다.
Ornith-1.0: Self-scaffolding LLMs for agentic coding
모델이 문제 풀이 전략(scaffold)을 직접 생성하고 개선하는 자기강화 학습 프레임워크를 적용한 오픈소스 코딩 특화 LLM으로, 9B 소형 모델부터 397B 대형 모델까지 라인업을 갖추고 SWE-Bench 등 주요 벤치마크에서 Claude Opus 4.7을 능가하는 성능을 보여줬다.