Skip to main content
QUICK REVIEW

[논문 리뷰] Learning To Predict Vulnerabilities From Vulnerability-Fixes: A Machine Translation Approach

Aayush Garg, Renzo Degiovanni|arXiv (Cornell University)|2020. 12. 21.
Software Engineering Research참고 문헌 38인용 수 5
한 줄 요약

이 논문은 기존의 수작업 특징 공학 없이도 역사적 취약성 수정 사례와 그 코드 컨텍스트를 활용하여 잠재적 특징을 자동으로 추출하는 기계 번역 기반의 인코더-디코더 모델을 제안한다. 리눅스 커널, OpenSSL, Wireshark에서 평가한 결과, 현실적인 학습 환경에서 기존 최고 수준의 기술보다 4.7배 높은 매트릭스 상관관계(MCC) 성능을 달성하였다.

ABSTRACT

Vulnerability prediction refers to the problem of identifying the system components that are most likely to be vulnerable based on the information gained from historical data. Typically, vulnerability prediction is performed using manually identified features that are potentially linked with vulnerable code. Unfortunately, recent studies have shown that existing approaches are ineffective when evaluated in realistic settings due to some unavoidable noise included in the historical data. To deal with this issue, we develop a prediction method using the encoder-decoder framework of machine translation that automatically learns the latent features (context, patterns, etc.) of code that are linked with vulnerabilities. The key idea of our approach is to learn from things we know, the past vulnerability fixes and their context. We evaluate our approach by comparing it with existing techniques on available releases of the three security-critical open source systems (Linux Kernel, OpenSSL, and Wireshark) with historical vulnerabilities that have been reported in the National Vulnerability Database (NVD). Our evaluation demonstrates that the prediction capability of our approach significantly outperforms the state-of-the-art vulnerability prediction techniques (Software Metrics, Imports, Function Calls, and Text Mining) in both recall and precision values (yielding 4.7 times higher MCC values) under realistic training setting.

연구 동기 및 목표

  • 기존의 수작업 특징에 의존하고 역사적 데이터의 노이즈에 민감한 취약성 예측 기법의 한계를 해결하기 위해.
  • 역사적 데이터에 피할 수 없는 노이즈가 존재하는 현실적인 환경에서도 예측 성능을 향상시키기 위해.
  • 과거의 취약성 수정 사례와 그 주변 코드 컨텍스트로부터 잠재적 패턴을 자동으로 학습하는 방법을 개발하기 위해.
  • 소프트웨어 메트릭스, 임포트, 함수 호출, 텍스트 마이닝과 같은 최신 기술들보다 정밀도와 재현율 측면에서 모두 뛰어난 성능을 내기 위해.

제안 방법

  • 기계 번역의 시퀀스-투-시퀀스 모델에서 영감을 받은 인코더-디코더 신경망 아키텍처를 사용한다.
  • 인코더는 취약성 수정의 컨텍스트(예: 주변 코드 변경 사항)를 처리하여 맥락적 표현을 생성한다.
  • 디코더는 주어진 코드 컴포넌트가 취약한지 여부를 예측하며, 취약성 예측을 시퀀스 생성 작업으로 간주한다.
  • 버전 관리 시스템과 NVD 기록에서 추출한 역사를 기반으로 한 취약성-수정 쌍에 대해 엔드 투 엔드로 모델을 학습시킨다.
  • 코드 패턴과 취약성과 관련된 구조적 변경 사항으로부터 복잡한 잠재적 특징을 자동으로 학습한다.
  • 노이즈가 있는 역사적 데이터를 가진 현실적인 학습 조건에서 프레임워크를 평가한다.

실험 결과

연구 질문

  • RQ1기계 번역 기반 모델이 현실적이고 노이즈가 있는 학습 환경에서 기존의 전통적 취약성 예측 방법보다 뛰어난 성능을 낼 수 있는가?
  • RQ2과거의 취약성 수정 사례에서 학습하는 것이 수작업 특징에 비해 예측 정확도를 얼마나 향상시킬 수 있는가?
  • RQ3제안된 방법은 최신 기술들 대비 정밀도, 재현율, MCC 측면에서 어떻게 성능을 내는가?
  • RQ4리눅스 커널, OpenSSL, Wireshark와 같은 다양한 보안 핵심 오픈소스 시스템 간에 일반화 성능을 유지할 수 있는가?

주요 결과

  • 제안된 방법은 현실적인 학습 환경에서 기존 최고 수준의 기술보다 4.7배 높은 매트릭스 상관관계(MCC)를 달성하였다.
  • 리눅스 커널, OpenSSL, Wireshark의 세 시스템 모두에서 정밀도와 재현율 측면에서 뛰어난 성능을 보였다.
  • 수작업 특징에 대한 의존도를 크게 줄였으며, 코드 내 잠재적 취약성 패턴을 자동으로 탐지할 수 있게 되었다.
  • 인코더-디코더 프레임워크는 취약성과 관련된 코드 변경의 맥락적 및 구조적 패턴을 효과적으로 포착하였다.
  • 노이즈가 있는 역사적 데이터로 학습하더라도 높은 성능을 유지하였으며, 현실적인 조건에서 수작업 특징 기반 기준선보다 뛰어난 성능을 보였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.