Skip to main content
QUICK REVIEW

[논문 리뷰] SPI: Automated Identification of Security Patches via Commits

Yaqin Zhou, Jing Kai Siow|arXiv (Cornell University)|2021. 05. 30.
Software Engineering Research참고 문헌 53인용 수 18
한 줄 요약

이 논문은 커밋 메시지와 코드 수정 사항을 분석하여 오픈소스 소프트웨어에서 보안 패치를 자동으로 식별하는 딥러닝 시스템인 SPI를 제안한다. 커밋 메시지와 코드 변경 사항에 대해 각각 적용된 이중 신경망 아키텍처를 사용하여, 수작업으로 검증된 38,291개 커밋으로 구성된 데이터셋에서 87.93%의 F1 스코어를 달성하며, 산업 규모 환경에서도 높은 정확도와 일반화 능력을 입증한다.

ABSTRACT

Security patches in open-source software, providing security fixes to identified vulnerabilities, are crucial in protecting against cyberattacks. Despite the National Vulnerability Database (NVD) publishes identified vulnerabilities, a vast majority of vulnerabilities and their corresponding security patches remain beyond public exposure, e.g., in the open-source libraries that are heavily relied on by developers. An extensive security patches dataset could help end-users such as security companies, e.g., building a security knowledge base, or researchers, e.g., aiding in vulnerability research. To curate security patches including undisclosed patches at a large scale and low cost, we propose a deep neural-network-based approach built upon commits of open-source repositories. We build security patch datasets that include 38,291 security-related commits and 1,045 CVE patches from four C libraries. We manually verify each commit, among the 38,291 security-related commits, to determine if they are security-related. We devise a deep learning-based security patch identification system that consists of two neural networks: one commit-message neural network that utilizes pretrained word representations learned from our commits dataset; and one code-revision neural network that takes code before and after revision and learns the distinction on the statement level. Our evaluation results show that our system outperforms SVM and K-fold stacking algorithm, achieving as high as 87.93% F1-score and precision of 86.24%. We deployed our pipeline and learned model in an industrial production environment to evaluate the generalization ability of our approach. The industrial dataset consists of 298,917 commits from 410 new libraries that range from a wide functionality. Our experiment results and observation proved that our approach identifies security patches effectively among open-sourced projects.

연구 동기 및 목표

  • 오픈소스 소프트웨어에서 공개되지 않은 보안 패치를 식별하는 데 도전하는 문제를 해결하기 위해, 이러한 패치가 활발히 수정되더라도 숨겨져 있는 경우가 많다는 점을 고려한다.
  • 자동화된 패치 식별 시스템의 훈련 및 평가를 지원하기 위해, 보안 관련 커밋을 대규모로 수작업으로 검증한 데이터셋을 구축한다.
  • 커밋 메시지와 코드 수정 사항을 모두 활용하는 딥러닝 기반 시스템을 개발하여, 기존 머신러닝 방법에 비해 검출 정확도를 향상시킨다.
  • 초기 훈련 데이터를 초월하여 실제 산업 규모의 레포지토리에서의 일반화 능력을 평가한다.

제안 방법

  • 네 개의 C 언어 기반 오픈소스 라이브러리에서 38,291개 커밋과 1,045개의 CVE 매핑 패치를 수작업으로 보안 관련성 여부를 검증하여 보안 패치 데이터셋을 구축한다.
  • 이중 신경망 아키텍처를 설계한다: 커밋 메시지에 대한 것은 커밋 데이터셋에서 사전 학습된 워드 임베딩을 사용하고, 코드 수정 사항에 대한 것은 문장 수준에서 수정 전·후 코드를 비교한다.
  • 컨텍스트 임베딩을 사용하여 커밋 메시지 네트워크를 훈련시켜 보안 관련 커밋 기술의 의미적 의도를 포착한다.
  • 코드 수정 네트워크를 훈련시켜, 변경 사항이 미미하거나 문법적으로 간단한 경우에도 보안 수정을 나타내는 미세한 변화를 탐지하도록 한다.
  • 두 네트워크의 예측 결과를 가중치 기반 융합 전략을 사용하여 전체 분류 성능을 향상시킨다.
  • 훈련된 모델을 410개의 새로운 오픈소스 라이브러리에서 298,917개 커밋을 대상으로 산업 환경에 배포하여 실제 세계의 일반화 능력을 평가한다.

실험 결과

연구 질문

  • RQ1커밋 수준의 정보인 메시지와 코드 변경 사항만을 사용하여 딥러닝 모델이 오픈소스 레포지토리 내 보안 패치를 효과적으로 식별할 수 있는가?
  • RQ2커밋 메시지와 코드 수정 사항을 모두 활용하는 이중 네트워크 모델의 성능은 기존의 SVM 및 K-겹 스태킹과 같은 전통적 머신러닝 기반 기준 모델에 비해 어떻게 비교되는가?
  • RQ3학습 데이터셋 외부의 새로운, 알려지지 않은 오픈소스 프로젝트로 모델의 일반화 능력은 어느 정도까지 유지되는가?
  • RQ4소규모 또는 암묵적인 코드 변경 사항이 모델의 보안 패치 탐지 능력에 미치는 영향은 어떠한가, 특히 커밋 메시지가 모호하거나 누락된 경우에 대해 말이다?
  • RQ5NVD와 같은 취약성 데이터베이스에 공개되지 않은 패치, 즉 공개되지 않은 보안 패치도 모델이 탐지할 수 있는가?

주요 결과

  • 제안된 SPI 시스템은 통합 데이터셋에서 F1 스코어 87.93%와 정밀도 86.24%를 달성하여, SVM 및 K-겹 스태킹 기준 모델보다 뚜렷이 뛰어난 성능을 보였다.
  • 커밋 메시지 네트워크가 코드 수정 네트워크보다 더 우수한 성능을 보였는데, 이는 보안 의도를 더 명확하고 해석 가능한 신호로 제공하기 때문이다.
  • 코드 수정 네트워크는 낮은 유사도 변경 사항(예: 토큰 겹침 비율 <10%)에 취약하여, 코드 내 미세하거나 의미적인 변경 사항을 탐지하는 데 한계를 보였다.
  • 모델는 산업 규모의 데이터에 대해 잘 일반화되어 있으며, 410개의 새로운 오픈소스 라이브러리에서 298,917개 커밋 내 보안 패치를 성공적으로 식별했다.
  • 거짓 음성은 주로 암묵적이거나 잘 표현되지 않은 커밋 메시지로 인해 발생할 가능성이 높은 편이지만, 코드 수정 네트워크가 메시지가 모호한 경우에도 변경 사항을 탐지함으로써 이를 완화한다.
  • 학습 데이터의 편향(특히 암묵적인 패치 누락)이 모델 성능에 영향을 줄 수 있음을 확인하였으며, 이는 더 다양한 고품질의 레이블링 데이터가 필요함을 시사한다.

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

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

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

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