Code-Augur: 명세 추론을 통한 에이전트 기반 취약점 탐지
요약
Code-Augur는 에이전트의 암묵적 가정을 보안 명세로 명시하고 런타임 반증을 통해 이를 개선하는 새로운 패러다임을 제안합니다. 가이드형 퍼저를 활용해 에이전트의 추론을 검증하며, 오픈 소스 프로젝트에서 22개의 새로운 취약점을 발견하는 성과를 거두었습니다.
핵심 포인트
- 보안 명세 우선(security-specification-first) 패러다임 제안
- 에이전트의 판단 근거를 로컬 불변량으로 명시적 기록
- 가이드형 퍼저를 통한 에이전트 추론의 런타임 검증
- 기존 SOTA 에이전트 대비 높은 취약점 탐지 성능 입증
- 범용 LLM(Sonnet, DeepSeek 등) 기반의 효과적인 보안 감사 가능
에이전트 기반 취약점 탐지 (agentic vulnerability detection)의 등장은 이미 소프트웨어 보안의 분수령이 되고 있습니다. 자율적인 LLM 에이전트에 의해 전적으로 수행되는 감사 (audits)를 통해 디지털 사회를 뒷받침하는 근간 소프트웨어에서 치명적인 취약점들이 발견되고 있습니다. 이러한 취약점 중 상당수는 수년간 가려져 있다가 AI 에이전트의 등장과 함께 이제야 드러나고 있습니다. 그러나 이러한 발견 뒤에 숨겨진 추론 과정은 놀라울 정도로 불투명하며 검증되지 않은 상태로 남아 있습니다. 에이전트가 특정 함수를 안전하다고 판단했을 때, 해당 함수의 입력값에 대해 어떤 가정을 했는가 하는 점입니다. 추론의 실패와 잘못된 가정은 취약점 탐지 실패로 이어질 수 있으며, 에이전트 기반 분석에 대한 신뢰를 떨어뜨릴 수 있습니다.
우리는 (1) 에이전트의 암묵적인 가정을 보안 명세 (security specifications)로서 명시적으로 드러내고, (2) 런타임 반증 (runtime falsification)을 통해 해당 명세를 지속적으로 개선하는 '보안 명세 우선 (security-specification-first)' 패러다임을 제안합니다. 우리는 에이전트 기반 취약점 탐지를 위한 새로운 하네스 (harness)인 Code-Augur를 통해 이 접근 방식을 구현합니다. 코드베이스가 주어지면, Code-Augur는 시스템의 각 구성 요소를 분석하여 취약한 코드를 찾습니다. 특정 구성 요소가 안전하다고 판단하면, 해당 판단의 근거가 되는 로컬 불변량 (local invariants)을 소스 내 어설션 (in-source assertions)으로 기록합니다. 이와 동시에, Code-Augur는 가이드형 퍼저 (guided fuzzer)를 활용하여 이러한 가정들을 반증하려고 시도합니다. 퍼저가 어설션을 트리거하면, 이는 실제 취약점을 드러내거나 개선이 필요한 결함이 있는 명세를 드러내게 됩니다. 두 경우 모두, 이 과정은 에이전트의 이해를 근거 있게 만들며, 코드 의도에 대한 에이전트의 관점을 실제 코드의 동작 방식과 일치시킵니다.
실제 사례 연구에서 Code-Augur는 보안 명세를 효과적으로 활용하여 다른 최첨단 (state-of-the-art) 에이전트들보다 더 많은 취약점을 탐지했습니다. 또한, Code-Augur는 주요 오픈 소스 프로젝트에서 22개의 새로운 취약점을 발견했습니다. Claude Mythos와 같이 큐레이션된 특화 모델과 비교했을 때, Code-Augur는 Sonnet 및 DeepSeek와 같이 널리 사용 가능한 LLM을 기반으로 구축된 효과적인 에이전트 기반 취약점 탐지를 제공합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기