AI 코딩 어시스턴트가 더 많은 코드를 생성함에 따라, 이를 보안 결함 측면에서 검토해야 할 필요성이 커지고 있습니다. 기존 접근 방식에는 공백이 존재합니다. 정적 분석기(static analyzers)는 프로그램 사이트를 식별하지만 설명은 거의 제공하지 못하며, 언어 모델(language-model)의 설명은 검증하기 어려울 수 있습니다. 소형 오픈 웨이트 코드 모델(small open-weight code models)을 사용하면 독점 코드를 호스팅 서비스로 전송하지 않고도 보안 검토를 수행할 수 있게 됩니다.
우리는 미세 조정이 이러한 모델들이 보안 증거(security evidence)를 개발자와 도구가 확인할 수 있는 설명으로 전환하는 데 도움이 되는지 연구했습니다. 우리는 secSemScan을 제시합니다. 이는 정적 분석기와 연계되어, 프로그램 사이트를 명명하고 CWE(Common Weakness Enumeration)를 할당하며 기계가 파싱 가능한 판결(verdict)을 제공하는 스키마 제약형 보안 독백(schema-constrained security monologue)을 작성하는 로컬 배포 가능 모델을 결합한 것입니다. 또한, 우리는 오라클 기반의 보안 독백 데이터셋인 OGSM (Oracle-Grounded Security Monologue)을 소개합니다. 이 데이터셋은 트레잇(taint) 및 라이프타임(lifetime) 계열에서 22개의 CWE를 다루는 1,993개의 C/C++ 함수로 구성되어 있습니다. 각 레코드는 함수와 분석기 기반 또는 수정 차이점(fix-diff)-기반 증거, 그리고 독백을 쌍으로 연결합니다.
우리는 세 가지 오픈 웨이트 코드 모델에 대해 두 단계에 걸쳐 미세 조정을 수행했습니다. 첫째는 출력 형식에 대한 것이고, 둘째는 독백 내용에 대한 것입니다. 평가 프롬프트가 판결과 증거를 제공하기 때문에, 우리의 결과는 모델이 독립적으로 취약점을 탐지하는 능력이 아니라 해당 정보를 얼마나 잘 사용하는지를 측정합니다. 355개의 테스트 레코드에서 미세 조정을 거치자 Qwen2.5-Coder-7B의 판결 정확도는 4.8%에서 96.6%로 향상되었고, DeepSeek-Coder-6.7B는 78.9%에 도달했으며, StarCoder2-7B는 43.7%에 도달했습니다. Qwen2.5-Coder-7B는 Tier~1 오라클 사이트의 87.5%를 인용했으며, 인용한 모든 라인은 오라클 증거에 속했습니다. 이 결과들은 미세 조정이 소형 모델들이 더 구조화되고 증거와 연결된 보안 추론을 생성하는 데 도움이 된다는 것을 시사합니다.