자동화된 취약점 탐지는 현대 소프트웨어 시스템을 보호하는 데 중요하지만, 기존의 학습 기반 접근 방식들은 종종 함수를 독립적인 샘플로 간주하고 취약점 수정 패치가 제공하는 감독(supervision)을 충분히 활용하지 못합니다. 본 논문에서 우리는 함수 수준 취약점 탐지를 위한 CodeBERT 기반의 패치 인식 대조 학습 모델인 PatchCon을 제안합니다.
PatchCon은 취약점 분류와 지도 대조 학습(supervised contrastive learning)을 공동으로 최적화하며, 수정 패치가 도입하는 미묘한 보안 관련 차이를 포착하기 위해 취약점-패치 함수 쌍을 더 큰 대조 가중치(contrastive weights)를 가진 하드 네거티브(hard negatives)로 처리합니다. 패치 수준의 판별력을 평가하기 위해, 우리는 모델이 취약한 함수를 수정된 대응물과 올바르게 구별할 수 있는지 측정하는 두 가지 쌍별 지표(pairwise metrics)를 사용합니다.
우리는 최신 기술 비교(state-of-the-art comparisons), 제거 연구(ablation studies), 하이퍼파라미터 민감도 분석(hyperparameter sensitivity analysis), 통계적 유의성 테스트를 포함한 광범위한 실험을 통해 PairVul-Linux에서 PatchCon을 평가합니다. 또한 우리는 Common Weakness Enumeration (CWE) 유형, 함수 길이, 패치 크기에 따른 세분화된 분석을 수행하고, 훈련 데이터 차단 이후에 공개된 리눅스 커널 취약점에서도 PatchCon을 추가로 평가합니다.
PairVul-Linux에서 PatchCon은 분류 및 쌍별 지표 모두에서 대표적인 사전 학습 코드 모델과 대조 학습 기준선(baselines)을 능가하며, 가장 강력한 재현된 기준선 대비 쌍별 정확도를 0.2060에서 0.3264로 향상시키고, 훨씬 낮은 비용으로 GPT-4o 기반의 거대 언어 모델(LLM) 방법과 비교할 수 있는 쌍별 정확도를 달성합니다. 재현된 모델들 중에서도, PatchCon은 훈련 중에 보지 못한 Common Vulnerabilities and Exposures (CVE) 항목의 테스트 쌍과 새로 공개된 취약점에서도 가장 높은 쌍별 정확도를 달성합니다.