Grunnleggende konsepter
코드 언어 모델과 코드 속성 그래프를 결합하여 코드 취약점을 효과적으로 탐지할 수 있다.
Sammendrag
이 논문은 코드 취약점 탐지를 위해 코드 언어 모델과 코드 속성 그래프를 결합한 Vul-LMGNN 모델을 제안한다.
- 코드 속성 그래프(CPG)를 구축하여 구문, 제어 흐름, 데이터 종속성 등 다양한 코드 속성을 통합한다.
- 사전 학습된 코드 언어 모델(CodeBERT)을 활용하여 노드 임베딩을 생성하고, 게이트 코드 그래프 신경망(GGNN)을 통해 그래프 내 종속성 정보를 효과적으로 학습한다.
- 코드 언어 모델과 GGNN을 공동 학습하여 코드 시퀀스와 그래프 정보를 통합적으로 활용한다.
- 추가로 CodeBERT 모델을 보조 분류기로 활용하여 최종 예측 결과를 보간한다.
실험 결과, 제안 모델은 4개의 실제 데이터셋에서 기존 최신 모델들을 능가하는 성능을 보였다. 특히 작은 규모의 데이터셋에서 약 10% 높은 F1 점수를 달성했다.
Statistikk
코드 취약점 데이터셋에는 총 18,945개의 취약 함수와 330,492개의 비취약 함수가 포함되어 있다.
데이터셋에는 150개의 다양한 CWE(Common Weakness Enumeration) 유형이 포함되어 있다.
Sitater
"코드 언어 모델과 그래프 신경망을 결합하여 코드 시퀀스와 그래프 정보를 통합적으로 활용함으로써 우수한 취약점 탐지 성능을 달성할 수 있다."
"제안 모델은 작은 규모의 데이터셋에서 약 10% 높은 F1 점수를 달성하여 기존 모델들을 능가하는 성과를 보였다."