소프트웨어 취약점 탐지의 불균형 문제와 해결 방안 연구
초록
본 논문은 딥러닝 기반 취약점 탐지에서 취약 코드가 극히 적은 데이터 불균형이 성능 저하의 주요 원인임을 실증하고, 9개 데이터셋과 2개 모델에 대해 기존 불균형 해결 기법들을 비교·분석한다. Focal loss는 정밀도 향상에, 평균 오류 손실과 클래스 균형 손실은 재현율에, 랜덤 오버샘플링은 F1 점수에 각각 효과적임을 제시한다. 또한 외부 요인(취약점 유형, 탐지 난이도 등)이 해결책의 효율에 미치는 영향을 탐구한다.
상세 분석
이 연구는 소프트웨어 취약점 탐지 작업을 이진 분류 문제로 정의하고, 취약 코드가 전체 코드에 비해 현저히 적은 ‘불균형’ 현상이 모델 학습에 미치는 영향을 체계적으로 조사한다. 총 9개의 공개 데이터셋(예: Lin2018, Devign 등)과 최신 기반 모델 두 종류(CodeBERT와 GraphCodeBERT)를 선택해 동일한 실험 파이프라인에 적용하였다. 실험 설계는 네 가지 연구 질문(RQ1‑RQ4)으로 구성되었으며, 특히 RQ1에서는 불균형이 학습 과정에서 손실 값이 보안 코드에 비해 취약 코드에 대해 크게 감소하는 현상을 발견, 이는 높은 false‑negative rate(높은 누락률)로 이어짐을 확인했다. RQ2에서는 정확도만으로는 모델 성능을 과대평가할 위험이 있음을 강조하고, 정밀도·재현율·F1‑score가 보다 실용적인 평가 지표임을 제시한다. RQ3에서는 데이터 수준(랜덤 다운/오버샘플링, 적대적 공격 기반 증강)과 모델 수준(Mean False Error loss, Class‑Balanced loss, Focal loss, Threshold‑moving) 총 7가지 기법을 적용해 비교하였다. 결과는 다음과 같다. (1) Focal loss는 어려운 샘플에 가중치를 높여 정밀도(precision)를 크게 개선하지만 재현율은 크게 변하지 않는다. (2) Mean False Error loss와 Class‑Balanced loss는 소수 클래스(취약 코드)의 오류에 민감하게 반응해 재현율을 향상시키지만 정밀도는 다소 감소한다. (3) 랜덤 오버샘플링은 전체적인 균형을 맞춰 F1‑score를 가장 많이 끌어올린다. (4) Threshold‑moving은 특정 상황에서 성능을 미세 조정할 수 있으나, 데이터 분포 변화에 민감해 안정성이 낮다. RQ4에서는 외부 요인—취약점 유형의 다양성, 특정 유형의 탐지 난이도, 학습·테스트 데이터의 분포 차이—가 각 기법의 효과에 큰 영향을 미침을 발견했다. 예를 들어, 메모리 오버플로우와 같은 고난이도 취약점은 모든 기법에서 재현율이 낮게 나타났으며, 데이터셋에 특정 유형이 거의 없을 경우 오버샘플링이 오히려 과적합을 유발한다. 전반적으로 불균형 해결 기법은 데이터와 모델, 평가 지표에 따라 상호 보완적인 역할을 하며, 단일 기법으로 모든 성능 지표를 최적화하기는 어렵다는 결론에 도달했다. 이 연구는 향후 소프트웨어 보안 분야에서 불균형 문제를 고려한 맞춤형 손실 함수 설계와 데이터 증강 전략 개발의 필요성을 강조한다.
댓글 및 학술 토론
Loading comments...
의견 남기기