LLM으로 취약점 분석 자동화, 4단계 난관을 넘어선 토스의 이야기
by DD
5개월 전
조회수 105
LLM을 활용한 서비스 취약점 분석 자동화 시도 중 대용량 소스코드 처리, 일관성 부족 등의 문제 발생
MCP(Model Context Protocol), SAST 도구 결합, Multi-Agent 시스템 도입으로 문제 해결 시도
Open Model 전환 및 성능 보완 작업을 통해 95% 이상 정확도의 LLM 기반 취약점 분석 자동화 구현
MCP 기반 소스코드 탐색 아키텍처
LLM이 소스코드를 효율적으로 참조하도록 MCP(Model Context Protocol)를 설계했다. tree-sitter를 활용하여 소스코드의 구문 트리를 분석하고, ctags로 함수 및 변수 정의 위치를 인덱싱했다. 따라서 LLM은 ripgrep을 통해 필요한 정보를 빠르게 검색하여 취약점 분석에 활용한다.
SAST 도구와 LLM의 결합: CodeQL vs Semgrep
취약점 분석 정확도 향상을 위해 SAST 도구를 활용했다. CodeQL은 빌드 과정 및 라이선스 문제로 인해, Semgrep을 선택하여 모든 Source-Sink 경로를 수집했다. 결과적으로 LLM은 수집된 경로를 분석하여 취약점 누락을 방지하고, 분석 정확도를 높였다.
Open Model 전환과 비용 최적화 전략
비용 절감을 위해 Open Model로 전환하고, Qwen3:30B 모델을 선택했다. Multi-Agent 시스템을 구축하여 불필요한 토큰 사용을 줄이고, Discovery 에이전트를 통해 분석 대상을 필터링했다. 따라서 분석 비용 절감과 함께 지속 가능한 운영 기반을 마련했다.