Concepts de base
대규모 언어 모델이 생성한 코드에는 다양한 보안 취약점이 존재하며, 이를 체계적으로 탐지하고 분석하는 것이 중요하다.
Résumé
이 연구는 다양한 최신 대규모 언어 모델(LLM)이 생성한 265,000개의 C 프로그램 코드를 분석하여 보안 취약점을 체계적으로 탐지하고 비교하였다.
주요 내용은 다음과 같다:
FormAI-v2 데이터셋을 구축하여 GPT-4, Gemini-pro, Falcon-180B 등 8개 LLM 모델이 생성한 C 코드를 수집하였다.
형식 검증(Formal Verification) 기법 중 하나인 ESBMC를 활용하여 각 코드 샘플의 보안 취약점을 정확하게 탐지하였다.
분석 결과, 전체 코드 샘플 중 최소 63.47%가 취약점을 가지고 있는 것으로 나타났다.
모델 간 차이는 크지 않았지만, 코드 복잡도 지표인 순환 복잡도 분석을 통해 모델별 코드 품질 차이를 확인하였다.
이 연구는 LLM 기반 코드 생성 기술이 발전하고 있지만, 여전히 보안 측면에서 위험이 존재함을 보여준다. 따라서 LLM 출력물을 실제 환경에 배포하기 위해서는 체계적인 위험 평가와 검증이 필요함을 시사한다.
Stats
정수 오버플로우로 인한 버그가 발생할 수 있습니다.
scanf() 함수 호출로 인한 버퍼 오버플로우 취약점이 존재합니다.
잘못된 포인터 역참조로 인한 오류가 발생할 수 있습니다.
Citations
"LLM 기반 코드 생성 기술이 발전하고 있지만, 여전히 보안 측면에서 위험이 존재합니다."
"LLM 출력물을 실제 환경에 배포하기 위해서는 체계적인 위험 평가와 검증이 필요합니다."