Skip to main content
QUICK REVIEW

[논문 리뷰] Automatic feature learning for vulnerability prediction

Hoa Khanh Dam, Truyen Tran|arXiv (Cornell University)|2017. 08. 08.
Software Engineering Research참고 문헌 27인용 수 90
한 줄 요약

논문은 코드에서 의미론적 및 구문적 특징을 자동으로 학습하기 위해 Long Short-Term Memory (LSTM)을 이용한 심층 학습 접근법을 제안하여 소프트웨어 취약점을 예측하며 최첨단 모델과 경쟁적이거나 우수한 성능을 달성한다.

ABSTRACT

Code flaws or vulnerabilities are prevalent in software systems and can potentially cause a variety of problems including deadlock, information loss, or system failure. A variety of approaches have been developed to try and detect the most likely locations of such code vulnerabilities in large code bases. Most of them rely on manually designing features (e.g. complexity metrics or frequencies of code tokens) that represent the characteristics of the code. However, all suffer from challenges in sufficiently capturing both semantic and syntactic representation of source code, an important capability for building accurate prediction models. In this paper, we describe a new approach, built upon the powerful deep learning Long Short Term Memory model, to automatically learn both semantic and syntactic features in code. Our evaluation on 18 Android applications demonstrates that the prediction power obtained from our learned features is equal or even superior to what is achieved by state of the art vulnerability prediction models: 3%--58% improvement for within-project prediction and 85% for cross-project prediction.

연구 동기 및 목표

  • 고가치의 초기 보안 작업으로서 취약점 예측의 동기를 제시한다.
  • 수작업으로 설계된 특징의 한계를 코드에서 직접 표현 학습으로 극복한다.
  • 같은 프로젝트 내 및 교차 프로젝트 예측을 개선하기 위해 의미론적 정보와 구문 정보를 모두 포착한다.

제안 방법

  • 각 Java 파일을 헤더와 메서드로 표현하고, 각 메서드별로 토큰 시퀀스로 파싱한다.
  • 토큰 임베딩과 동적 토큰 상태를 학습하여 메서드 벡터를 형성하기 위해 LSTM을 학습시킨다.
  • 메서드 벡터를 풀링하여 파일의 구문 특징을 얻고, 프로젝트 간 토큰 상태를 클러스터링하여 의미론적 코드북을 구성한다.
  • 코드북 클러스터링 및 의미론적 풀링을 통해 의미론적 특징을 생성하여 교차 프로젝트 일반화를 가능하게 한다.
  • 학습된 특징 위에 취약점 분류기(Random Forest)를 학습시키고 다른 베이스라인과 비교한다.

실험 결과

연구 질문

  • RQ1RQ1: LSTM으로 자동 학습된 특징이 같은 프로젝트 내 취약점 예측에 효과적인가?
  • RQ2RQ2: 같은 애플리케이션 내 버전 간 취약점 예측에서 이 접근법의 성능은 어떠한가?
  • RQ3RQ3: 서로 다른 애플리케이션 간의 교차 프로젝트 취약점 예측에 이 접근법은 효과적인가?
  • RQ4RQ4: 제안된 방법이 소프트웨어 지표, Bag-of-Words, Deep Belief Network 베이스라인과 어떻게 비교되는가?

주요 결과

  • 같은 프로젝트 내 결과는 여러 앱에서 벤치마크에 비해 경쟁력 있거나 우수한 성능을 보여준다.
  • 구문적 및 의미론적 특징의 결합을 사용하여 높은 정밀도와 재현율을 달성한다.
  • 의미론적 특징은 코드북 클러스터링을 통해 교차 프로젝트 일반화를 향상시킨다.
  • 교차 프로젝트 설정에서 일부 베이스라인 대비 상당한 개선을 보고한다(예: 교차 프로젝트 예측에서 최대 85%).
  • 실험은 18개의 Android 앱을 사용했고, 같은 프로젝트 내 평가를 위해 10-fold 교차 검증을 수행했다.

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

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

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

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