Skip to main content
QUICK REVIEW

[논문 리뷰] VulLibGen: Generating Names of Vulnerability-Affected Packages via a Large Language Model

Tianyu Chen, Lin Li|arXiv (Cornell University)|2023. 08. 09.
Web Application Security VulnerabilitiesComputer Science인용 수 3
한 줄 요약

VulLibGen는 유해성 설명만으로 정확한 취약한 제3자 라이브러리 목록을 자동으로 생성하는 최초의 생성적 접근법이다. 사전 훈련된 대규모 언어 모델(LLM)을 미세조정하여 라이브러리 기능에 대한 사전 지식을 활용하고 입력 증강 및 후처리를 통해 F1 스코어 0.626을 달성하며, 기존 최고 수준의 방법들보다 평균 10% 높고, 제로샷 라이브러리 탐지 성능을 39% 향상시킨다.

ABSTRACT

Security practitioners maintain vulnerability reports (e.g., GitHub Advisory) to help developers mitigate security risks. An important task for these databases is automatically extracting structured information mentioned in the report, e.g., the affected software packages, to accelerate the defense of the vulnerability ecosystem. However, it is challenging for existing work on affected package identification to achieve a high accuracy. One reason is that all existing work focuses on relatively smaller models, thus they cannot harness the knowledge and semantic capabilities of large language models. To address this limitation, we propose VulLibGen, the first method to use LLM for affected package identification. In contrast to existing work, VulLibGen proposes the novel idea to directly generate the affected package. To improve the accuracy, VulLibGen employs supervised fine-tuning (SFT), retrieval augmented generation (RAG) and a local search algorithm. The local search algorithm is a novel postprocessing algorithm we introduce for reducing the hallucination of the generated packages. Our evaluation results show that VulLibGen has an average accuracy of 0.806 for identifying vulnerable packages in the four most popular ecosystems in GitHub Advisory (Java, JS, Python, Go) while the best average accuracy in previous work is 0.721. Additionally, VulLibGen has high value to security practice: we submitted 60 pairs to GitHub Advisory (covers four ecosystems). 34 of them have been accepted and merged and 20 are pending approval. Our code and dataset can be found in the attachments.

연구 동기 및 목표

  • NVD 유해성 보고서의 53.3%가 영향을 받는 라이브러리를 언급하지 않으며, 포함된 목록의 59.82%가 부족하거나 잘못되어 있는 중요한 문제를 해결한다.
  • 기존의 NER, XML, 엔티티 링킹 접근법이 대규모 라이브러리 저장소로 확장할 때 거대한 계산 비용과 함께 거짓 양성, 거짓 음성 문제를 겪는 한계를 극복한다.
  • LLM의 사전 지식을 활용해 라이브러리 의미론과 구조를 이해함으로써, 훈련 중에 보이지 않은 제로샷 라이브러리까지도 정확하게 식별할 수 있도록 한다.
  • 라이브러리 매칭이나 TF-IDF 필터링에 의존도를 줄이고, LLM이 직접 유해성 설명에서 라이브러리 이름을 예측함으로써 계산 비용을 절감한다.
  • 후처리를 통해 환영( hallucinations )을 수정하고 입력 증강을 통해 제로샷 탐지 능력을 향상시켜 라이브러리 유해성 식별의 신뢰성과 정밀도를 향상시킨다.

제안 방법

  • 라이브러리 식별에 대한 사전 지식를 활성화하기 위해, 라이브러리 설명을 라이브러리 이름에 매핑할 수 있도록, Maven 코퍼스에서 사전 훈련된 LLaMA 모델을 비지도 방식으로 미세조정한다.
  • 입력이 유해성 설명이고 출력이 영향을 받는 라이브러리의 참값 목록인 레이블이 부여된 유해성 데이터셋에서의 지도 미세조정을 수행함으로써, 모델이 정확한 이름 목록을 생성할 수 있도록 한다.
  • 다양한 어휘 표현에 노출되도록 유해성 설명을 재구성하거나 약어화함으로써 입력 증강을 수행하여, 훈련 데이터에 존재하지 않는 제로샷 라이브러리에 대한 일반화 능력을 향상시킨다.
  • 정제된 라이브러리 이름 사전과 문법적/의미적 검증을 사용해 LLM이 생성한 라이브러리 목록을 필터링하고 수정하는 후처리 모듈을 도입하여 환영을 감소시킨다.
  • LLM의 문맥 기반 추론 능력을 활용해 유해성 특성(예: 메모리 손상, 인증 우회)과 라이브러리 기능 및 알려진 취약점 간의 관련성을 파악한다.
  • 두 단계 훈련 파이프라인을 사용한다: 먼저 라이브러리 설명에서 라이브러리 정체성을 학습하기 위해 비지도 사전 훈련을 수행하고, 그 다음에 유해성 설명에서 라이브러리 목록으로의 변환에 특화된 지도 미세조정을 수행한다.

실험 결과

연구 질문

  • RQ1대규모 언어 모델이 라이브러리 이름 사전이나 외부 매칭이 없이도, 유해성 설명만으로 정확하고 완전하며 올바른 취약한 제3자 라이브러리 목록을 생성할 수 있는가?
  • RQ2제시된 입력 증강 기법이 훈련 중에 보이지 않은 제로샷 취약 라이브러리 식별에 얼마나 효과적인가?
  • RQ3후처리 기법이 LLM이 생성한 라이브러리 목록에서 환영을 얼마나 줄이고 정밀도를 얼마나 향상시키는가?
  • RQ4실제 세계 데이터셋에서 최고 수준의 접근법(LightXML, Chronos, VulLibMiner)과 비교해 VulLibGen의 성능은 어떠한가?
  • RQ5라이브러리에 대한 사전 지식를 갖춘 LLM이 기존의 NLP 및 딥러닝 모델보다 취약 라이브러리 식별 작업에서 더 뛰어난 성능을 낼 수 있는가?

주요 결과

  • VulLibGen은 취약 라이브러리 식별에서 평균 F1 스코어 0.626을 달성하여, 최고 수준의 접근법(LightXML, Chronos, VulLibMiner)의 평균 0.561을 뛰어넘는다.
  • 후처리 기법은 평균 F1@1을 9.3% 향상시켜 LLM의 환영으로 인한 거짓 양성 결과를 크게 줄였다.
  • 입력 증강 기법은 제로샷 취약 라이브러리 식별에서 평균 F1@1 성능을 39% 향상시켜, 훈련 데이터에 존재하지 않는 라이브러리에 대한 강력한 일반화 능력을 입증한다.
  • VulLibGen은 TF-IDF 필터링이나 라이브러리 이름 사전에 의존하지 않고도 취약 라이브러리를 효과적으로 식별하여, 엔티티 링킹 방법 대비 계산 오버헤드를 줄였다.
  • 복잡한 라이브러리 상호작용이나 미세한 功能적 차이를 포함한 다양한 유형의 유해성에 대해 모델의 성능이 안정적이며 뛰어나다.
  • 두 단계 미세조정 방식—먼저 라이브러리 설명에서의 비지도 사전 훈련, 그 다음에 유해성 설명-라이브러리 목록 쌍에서의 지도 미세조정—을 통해 LLM이 라이브러리 정체성과 유해성 특화 연관성을 효과적으로 학습할 수 있었다.

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

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

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

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