VulEval은 소프트웨어 취약점 탐지를 위한 통합 평가 시스템으로, 다음 세 가지 상호 연결된 평가 과제로 구성된다:
함수 수준 취약점 탐지: 코드 스니펫이 취약한지 여부를 예측하는 과제로, 함수 내부의 정보만을 활용한다.
취약점 관련 종속성 예측: 코드 스니펫과 가장 관련성이 높은 종속성(callee, caller)을 식별하는 과제로, 개발자에게 취약점에 대한 설명을 제공한다.
저장소 수준 취약점 탐지: 2번 과제에서 식별된 종속성 정보를 활용하여 함수 간 취약점을 탐지하는 과제로, 실제 개발 환경을 보다 잘 반영한다.
VulEval 데이터셋은 4,196개의 CVE 항목, 232,239개의 함수, 4,699개의 저장소 수준 소스 코드로 구성된다. 또한 347,533개의 함수 종속성과 9,538개의 취약점 관련 종속성을 포함한다.
실험 결과, 저장소 수준 취약점 탐지 방식이 함수 수준 방식에 비해 평균 1.51%의 F1 점수와 2.63%의 MCC 점수 향상을 보였다. 이는 취약점 관련 종속성 정보를 활용하면 취약점 탐지 성능이 향상됨을 의미한다. 또한 프로그램 분석 및 프롬프트 기반 방식은 시간 분할 설정에서도 성능이 유지되는 반면, 지도 학습 및 fine-tuning 기반 방식은 성능이 저하되는 것으로 나타났다. 마지막으로 어휘 기반 방식이 의미 기반 방식보다 취약점 관련 종속성 식별에 더 효과적인 것으로 확인되었다.
To Another Language
from source content
arxiv.org
Key Insights Distilled From
by Xin-Cheng We... at arxiv.org 04-25-2024
https://arxiv.org/pdf/2404.15596.pdfDeeper Inquiries