추적에서 라인까지 LLM 에이전트 기반 실시간 오픈소스 취약점 정확 탐지
초록
본 논문은 대규모 언어 모델(LLM)을 활용해 오픈소스 프로젝트 수준에서 라인 단위 취약점 위치를 자동으로 찾는 T2L 프레임워크와, 이를 평가하기 위한 50개 사례의 T2L‑ARVO 벤치마크를 제시한다. AST 기반 코드 청크화와 런타임 증거(크래시 로그·스택 트레이스·Sanitizer 등)를 결합한 Agentic Trace Analyzer(ATA)를 통해 증거‑가이드형 추론과 반복적 정제를 수행한다. 베이스라인 에이전트는 58 %의 청크 탐지율과 54.8 %의 정확한 라인 로컬라이제이션을 달성한다.
상세 분석
T2L은 기존 LLM 기반 취약점 탐지 연구가 함수·파일 수준에 머물러 실제 개발 현장에서 요구되는 라인‑레벨 패치 정보를 제공하지 못한다는 문제를 해결하고자 설계되었다. 핵심 아이디어는 “Trace‑to‑Line”이라는 두 단계 작업 흐름을 정의하는 것으로, 첫 단계에서는 AST‑기반 청크화 기법을 이용해 프로젝트 전체를 의미론적으로 연결된 코드 조각으로 나눈 뒤, 런타임 증거를 통합한 ‘증거 블록’을 생성한다. 여기서 증거 블록은 크래시 포인트, 스택 트레이스, 메모리‑Sanitizer 리포트, 정적 분석 결과 등을 하나의 텍스트 시퀀스로 결합해 LLM이 전역적인 컨텍스트를 파악하도록 돕는다.
Agentic Trace Analyzer(ATA)는 Docker 환경에서 대상 프로그램을 재현 실행하고, 다양한 툴(ASAN, GDB, 정적 분석기 등)로부터 수집된 데이터를 자동으로 정제·통합한다. 이후 Planner‑Executor 구조의 하이레벨 플래너가 “가설 생성 → 피드백 → 재정제” 루프를 제어한다. LLM은 증거 블록을 입력받아 파일:라인 형태의 후보 위치 리스트를 confidence와 함께 제시하고, 각 후보는 실제 패치와 비교해 정밀도와 재현성을 평가한다. 피드백 단계에서는 성공 여부와 confidence 변화를 요약해 플래너가 추가 탐색을 진행할지 여부를 결정한다.
특히 T2L은 ‘다양성 트레이싱(divergence tracing)’과 ‘탐지 정제(detection refinement)’라는 두 가지 보강 메커니즘을 도입한다. 다양성 트레이싱은 동일 증거 블록에 대해 여러 병렬 LLM 추론 경로를 실행해 후보 풀을 확대함으로써 단일 추론이 놓칠 수 있는 복합 버그를 포착한다. 탐지 정제는 초기 청크‑레벨 후보를 기반으로 관련 코드 스니펫을 추가 증거로 재삽입하고, 두 번째 LLM 패스를 수행해 라인‑레벨 후보를 미세 조정한다. 이 과정은 비용 제한(예: 토큰 사용량) 내에서 최대한의 정밀도를 끌어올리는 설계이다.
벤치마크인 T2L‑ARVO는 기존 ARVO 데이터베이스에서 4,993개의 재현 가능한 취약점을 추출·검증하여 50개의 대표 사례를 선정한 것이다. 버퍼 오버플로, 초기화 누락, 메모리 라이프사이클 오류, 타입 안전성 위반, 시스템·런타임 오류 등 다섯 가지 크래시 패밀리를 균등하게 포함하고, 각 사례마다 다중 라인에 걸친 실제 패치 라인을 제공한다. 전문가와 LLM 보조 검증을 병행해 재현 가능성과 난이도를 조정했으며, 라인‑레벨 정확도는 “정확히 로컬라이즈된 라인 수 / 전체 취약 라인 수”로 정의한다.
실험 결과 베이스라인 에이전트는 청크 탐지 단계에서 58 %의 성공률을 보였으며, 라인‑레벨 로컬라이제이션에서는 54.8 %의 정확도를 기록했다. 이는 기존 함수‑레벨 접근법에 비해 현저히 높은 정밀도를 의미하지만, 여전히 45 % 이상의 라인을 놓치고 있어 LLM의 추론 한계와 증거 해석 능력 향상이 필요함을 시사한다. 또한, 다중 파일·모듈에 걸친 복합 버그에서는 정밀도가 낮아, 코드 의존성 그래프와 더 정교한 정적·동적 혼합 분석이 보완책으로 제시된다.
전반적으로 T2L은 LLM을 실무 보안 워크플로에 통합하기 위한 중요한 첫 걸음이며, 증거‑가이드형 추론, 단계적 정제, 그리고 현실적인 프로젝트‑스케일 벤치마크 제공이라는 세 축을 통해 향후 연구와 산업 적용에 대한 로드맵을 제시한다.
댓글 및 학술 토론
Loading comments...
의견 남기기