OpenAnt: 코드 분해, 적대적 검증 및 동적 테스트를 통한 LLM 기반 취약점 발견
요약
OpenAnt는 LLM 기반의 의미론적 추론과 정적·동적 분석을 결합하여 대규모 코드베이스의 취약점을 자동으로 발견하는 오픈 소스 시스템입니다. 코드 분해, 적대적 검증, 동적 테스트를 통해 오탐을 줄이고 분석 효율성을 극대화합니다.
핵심 포인트
- 코드베이스를 분석 단위로 분해하여 분석 범위를 최대 97% 감소
- 적대적 검증을 통해 모델이 공격자 관점에서 익스플로잇 가능성 평가
- 샌드박스 컨테이너 기반의 동적 검증으로 발견된 취약점 자동 확인
- OpenSSL, WordPress 등 실제 프로젝트에서 미지의 취약점 식별 성공
대규모 코드베이스에서의 자동화된 취약점 발견(vulnerability discovery)은 여전히 어려운 과제로 남아 있습니다. 기존의 정적 분석(static analysis)은 높은 오탐률(false-positive rates)을 생성하며, 퍼징(fuzzing)과 같은 동적 접근 방식은 상당한 인프라를 요구하고 종종 좁은 범위의 버그만을 대상으로 합니다. 최근 대규모 언어 모델(LLMs)의 발전은 프로그램 동작에 대한 의미론적 추론(semantic reasoning)을 가능하게 했지만, LLM을 저장소 규모(repository-scale)의 보안 분석에 적용하는 것은 컨텍스트 관리, 비용 및 검증과 관련된 과제를 야기합니다. 우리는 정적 프로그램 분석을 다단계 파이프라인 내에서 LLM 기반 추론과 통합하는 오픈 소스 취약점 발견 시스템인 OpenAnt를 제시합니다. OpenAnt는 세 가지 핵심 기술을 도입합니다. 첫째, 코드베이스는 외부 진입점(entry points)으로부터의 도달 가능성(reachability)에 의해 필터링된 독립적인 분석 단위로 분해되며, 이를 통해 공격 관련 코드를 보존하면서 분석 범위를 최대 97%까지 줄입니다. 둘째, 후보 취약점은 제약된 공격자 시뮬레이션(attacker simulation)을 통한 적대적 검증(adversarial verification)을 거치며, 여기서 모델은 현실적인 공격자 역량 하에서의 익스플로잇 가능성(exploitability)을 평가합니다. 셋째, 발견된 사항은 동적 검증(dynamic verification)을 통해 확인됩니다. 이 과정에서 익스플로잇 환경이 자동으로 생성되어 샌드박스 컨테이너(sandboxed containers)에서 실행되며, 사용 후에는 폐기됩니다. OpenSSL, WordPress, Flowise를 포함한 널리 사용되는 오픈 소스 프로젝트에 대한 평가 결과, 이 아키텍처는 관리 가능한 분석 비용을 유지하면서 이전에 알려지지 않은 취약점을 식별하고 오탐을 실질적으로 줄일 수 있음을 보여줍니다. 우리의 결과는 의미론적 추론과 익스플로잇 검증을 결합한 폐쇄 루프(closed-loop) 취약점 발견 파이프라인이 확장 가능한 자동 보안 분석을 향한 실질적인 경로를 제공함을 시사합니다. OpenAnt는 https://github.com/knostic/OpenAnt 에서 Apache 2.0 라이선스 하에 오픈 소스로 공개되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.LG의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기