Core Concepts
기존 대규모 언어 모델과 자동 프로그램 수정 기술은 자바 보안 취약점을 매우 적게 수정할 수 있으며, 특히 복잡한 유형의 취약점을 수정하는 데 어려움을 겪는다.
Abstract
이 연구는 자바 보안 취약점 수정을 위한 대규모 언어 모델과 자동 프로그램 수정 기술의 성능을 평가하고 비교한다. 주요 내용은 다음과 같다:
Vul4J와 새로 개발한 VJBench 벤치마크를 사용하여 5개의 대규모 언어 모델, 4개의 미세 조정된 대규모 언어 모델, 4개의 자동 프로그램 수정 기술의 자바 취약점 수정 능력을 평가했다.
Codex가 가장 많은 취약점(10.2개, 20.4%)을 수정할 수 있었으며, 다른 모델들은 매우 적은 수의 취약점만 수정할 수 있었다. 많은 생성된 패치가 컴파일되지 않았다.
일반적인 자동 프로그램 수정 데이터로 미세 조정하면 대규모 언어 모델의 취약점 수정 능력이 향상되었다. 미세 조정된 InCoder가 9개의 취약점을 수정하여 Codex와 경쟁할 수 있었다.
VJBench 벤치마크 분석 결과, 대규모 언어 모델과 자동 프로그램 수정 기술은 CWE-325 암호화 단계 누락, CWE-444 HTTP 요청 스머글링 등 많은 취약점 유형을 수정하지 못했다.
코드 변환을 적용하면 대규모 언어 모델과 자동 프로그램 수정 기술의 취약점 수정 능력이 감소했지만, Codex와 미세 조정된 CodeT5는 변환된 취약점에 대해서도 상대적으로 강건했다.
Stats
자바 취약점 50개 중 Codex가 평균 10.2개(20.4%)를 수정할 수 있었다.
미세 조정된 InCoder가 9개의 취약점을 수정하여 Codex와 경쟁할 수 있었다.
Codex의 컴파일 가능 패치 비율은 79.7%로 가장 높았다. 다른 모델들은 6.4%에서 65.2% 사이의 낮은 컴파일 가능 비율을 보였다.
Quotes
"Codex fixes 10.2 (20.4%) vulnerabilities on average, exhibiting the best fixing capability."
"Fine-tuned InCoder fixes 9 vulnerabilities, exhibiting competitive fixing capability compared to Codex's."
"Codex has the highest compilation rate of 79.7%. Other LLMs (fine-tuned or not) and APR techniques have low compilation rates (the lowest of 6.4% with CodeT5 and the rest between 24.5% to 65.2%), showing a lack of syntax domain knowledge."