AI Briefing

GitHub Security Lab, LLM 에이전트 기반 C/C++ 퍼징 자동화 도구 'Fuzzing Taskflow' 공개

·2026.09.25 03:26

핵심 내용

GitHub Security Lab이 LLM 에이전트와 AFL++를 결합한 C/C++ 퍼징 자동화 도구 Fuzzing Taskflow를 공개했다.

1 / 3

자세히 보기

GitHub Security Lab이 C/C++ 프로젝트의 퍼징 과정을 자동화하는 Fuzzing Taskflow를 공개했다. GitHub Security Lab Taskflow Agent 프레임워크 기반의 이 도구는 엔트리포인트 식별, 하네스 작성, AFL++ 실행, 커버리지 분석, 크래시 분류를 사람의 개입 없이 수행한다.

아키텍처 및 실행

시스템은 의사결정과 실행을 분리한다. LLM 에이전트가 퍼징 대상과 커버리지 개선 방법을 결정하고, MCP 도구가 AFL 실행, 하네스 컴파일, 보고서 읽기 등 실제 작업을 처리한다. 상태는 SQLite 데이터베이스로 관리되어 각 단계가 메모리가 아닌 영구 저장소를 통해 통신한다.

주요 설계 특징:

  • 이중 바이너리 빌드: 각 하네스는 퍼징용 AFL 계측과 인간 가독성 보고서 생성용 커버리지 계측으로 두 번 컴파일된다.
  • 모델 선택: 내부 보안 테스트를 통과한 Claude Sonnet 5를 기본값으로 사용하며, 다른 모델 설정도 가능하다.
  • 보안 경고: 에이전트가 호스트에서 빌드 명령을 직접 실행하므로 Codespaces 등 일회성 환경에서만 실행해야 한다.

커버리지 피드백 루프

핵심은 인간 연구자의 워크플로우를 모방한 반복적 커버리지 피드백 루프다. 에이전트는 커버되지 않은 분기를 분석해 시드 추가, 하네스 수정, 사전(dictionary) 보강 등의 행동을 선택한다. 퍼징 시간 예산은 반복마다 두 배씩 증가하며, 30초에서 시작해 최대 960초까지 확장된다. 연속 두 번의 반복에서 절대 라인 커버리지 증가율이 1% 미만이면 루프가 종료된다.

구조 인식 퍼징

JSON, XML, 정규식 등 구조화된 입력을 처리하기 위해 네 가지 메커니즘을 사용한다:

  • 알려진 형식을 위한 사전 제작된 AFL 사전 및 커스텀 변형자(mutator).
  • 대상 코드에서 문자열 리터럴과 상수를 추출하는 소스 수준 사전 생성.
  • 커버리지 미달 라인 근처 가드에서 발견된 토큰을 추가하는 동적 사전 보강.
  • 기존 입력의 하위 영역을 재조합하는 코퍼스 스플라이스 연산자.

분류 및 보고

퍼징 후 에이전트는 afl-tmin으로 크래시를 최소화하고 ASan으로 재생한 뒤 스택 트레이스로 중복을 제거한다. 이후 vulnerability, harness_bug, duplicate 등의 판정을 포함한 마크다운 보고서를 생성한다. 각 보고서에는 근본 원인 분석, 도달 가능성 논거, 수정 제안이 포함되지만 인간 검토가 필요하다고 명시된다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.