VulScribeR: LLM을 활용한 RAG 기반 취약점 증강 탐색

소프트웨어 보안에서 취약점 탐지는 매우 중요하지만, 딥러닝 기반의 취약점 탐지기(DLVD)는 데이터 부족 문제에 직면해 있으며 이로 인해 성능이 제한된다. 데이터 증강은 이러한 데이터 부족 문제를 완화할 수 있는 잠재적 해결책이지만, 취약한 코드를 증강하는 것은 어렵고, 취약점을 유지하는 생성형 솔루션이 필요하다. 기존 연구들은 단일 문장 또는 특정 유형의 취약점을 포함하는 샘플만 생성하는 데 초점을 맞추었다. 최근 대규모 언어 모델(LLM)은 검색 기반 생성(RAG)과 결합되어 다양한 코드 생성 및 이해 작업에서 놀라운 성과를 보이며 주목받고 있다. 따라서 우리는 신중하게 설계된 프롬프트 템플릿을 활용하여 취약한 데이터셋을 증강하는 새로운 LLM 기반 솔루션인 VulScribeR을 제안한다. 구체적으로, LLM을 활용해 단일 문장 및 다중 문장 취약점을 모두 증강하기 위한 세 가지 전략—변형(Mutation), 주입(Injection), 확장(Extension)—을 탐색하였다. 네 가지 취약점 데이터셋과 세 가지 LLM을 사용한 광범위한 평가를 통해, 제안한 방법은 두 가지 최첨단 기법인 Vulgen과 VGX, 그리고 랜덤 오버샘플링(ROS)보다 평균 5,000개의 생성된 취약 샘플 기준으로 F1 점수에서 각각 27.48%, 27.93%, 15.41% 우수했으며, 생성 샘플 수가 15,000개일 경우 각각 53.84%, 54.10%, 69.90%, 40.93%의 성능 향상을 보였다. 또한 본 연구는 1,000개의 샘플을 단지 1.88달러의 비용으로 생성할 수 있음을 통해 대규모 데이터 증강의 실현 가능성을 입증하였다.