논문 리뷰

Software Vulnerability Detection Using LLM: Does Additional Information Help?

aaa0843 2025. 6. 9. 07:59

Software Vulnerability Detection Using LLM: Does Additional Information Help?

 

 

1. 개요

연구 목적: LLM(대형 언어 모델)이 소스 코드 내 보안 취약점을 자체적으로 인식 가능한지, 그리고 prompt engineering이 성능 향상에 기여하는지 탐색
데이터셋: Big‑Vul (C/C++ 함수 8,921개 취약, 동일 수 안전), 총 17,761개 샘플. ([web.mit.edu][1])
모델: Gemini‑pro LLM (32k 토큰 지원). ([web.mit.edu][1])


2. 기본 실험(Basic Prompt)

프롬프트: “Is the following function vulnerable to any CWE?” + 함수 코드

 

결과:
정확도 \~49%, 정밀도 49.3%, 재현율 97.6% → 무조건 '취약' 판단
 

즉, LLM은 단순한 코드 입력만으로는 취약 탐지가 제대로 되지 않음

 

3. 프롬프트 강화 설계 (D1, D2)

D1: Bimodal (CodeBERT 사용)

CodeBERT를 통해 유사한 CWE 및 예제 함수 추출, 이를 실험에 투입

 

Zero-shot / Few-shot 방식:
zero-shot: CWEs + 설명만 LLM 투입
few-shot: 유사 CWE 함수 + 안전 함수 예시 같이 추가 투입

 

D2: Unimodal (SBERT + LLM 설명)

 

LLM으로 함수 목적 설명문 생성 → SBERT로 설명과 유사한 CWE 선정 → LLM에 함수 + CWE 정보 제공
역시 zero-shot / few-shot 구성

4. 평가와 주요 결과

비교 항목: 정확도, 정밀도, 재현율, F1/F2 지표 등


요약:
  두 아키텍처 모두 Zero-shot보다 Few-shot에서 정확도 상승
  단순 코드 입력보다 도메인 정보 포함 시 성능 개선
  Zero-shot vs. Few-shot 간 정확도 차이는 미미하지만 few-shot의 정밀도/재현율 균형이 더 나음
  Bimodal vs. Unimodal 성능 유사, 즉 설명 기반 방식도 효과적
  similarity threshold 조정(precision- vs recall-focus) 영향 제한적


5. 한계점

LLM 모델 하나만 실험
C/C++와 Big‑Vul 데이터셋에 한정, 다른 언어나 도메인엔 일반화 어려움
LLM 응답 누락과 안전 제약으로 일부 데이터 누락 발생
데이터 누수 가능성 있음(LLM 학습에 유사 코드 포함 여부)


6. 결론 및 향후 연구 방향

결론:
LLM 자체만으로는 허위 양성(가장 많이 ‘취약’ 판단) 발생
prompt engineering, 특히 few-shot 학습(도메인 정보 포함)은 탐지 성능 개선에 효과적 ([web.mit.edu][1])

미래 연구 제안:

  1. 다양한 LLM 모델 비교
  2. 여러 언어/코드베이스에서 확장
  3. 오답 및 FN 분석을 통한 질적 이해

 

요약표

| 항목                   | 내용                                    |
| -------------------- | ------------------------------------- |
| 기본 프롬프트              | 정확도 49% / 재현율 97% (False Positive 다수) |
| Bimodal / Unimodal   | 모두 few-shot에서 품질 향상                   |
| Bimodal vs. Unimodal | 성능 유사                                 |
| 데이터 한계               | C/C++ + 하나의 LLM + 도메인 특정              |
| 미래 과제                | 모델 다양성, 데이터 확장, 오류 분석                 |