Skip to main content
QUICK REVIEW

[논문 리뷰] VulSPG: Vulnerability detection based on slice property graph representation learning

Weining Zheng, Yuan Jiang|arXiv (Cornell University)|2021. 09. 06.
Software Engineering Research참고 문헌 32인용 수 10
한 줄 요약

VulSPG는 불필요한 코드를 최소화하면서 취약성 관련 의미와 구조를 포착하는 새로운 코드 표현인 슬라이스 성질 그래프(Slice Property Graph, SPG)를 제안하고, 취약성 탐지를 향상시키기 위해 삼중 주의 메커니즘을 갖춘 R-GCN 모델을 도입한다. 실제 데이터셋을 대상으로 평가한 결과, 정확도와 효율성 면에서 기존 최고 수준의 방법들을 능가한다.

ABSTRACT

Vulnerability detection is an important issue in software security. Although various data-driven vulnerability detection methods have been proposed, the task remains challenging since the diversity and complexity of real-world vulnerable code in syntax and semantics make it difficult to extract vulnerable features with regular deep learning models, especially in analyzing a large program. Moreover, the fact that real-world vulnerable codes contain a lot of redundant information unrelated to vulnerabilities will further aggravate the above problem. To mitigate such challenges, we define a novel code representation named Slice Property Graph (SPG), and then propose VulSPG, a new vulnerability detection approach using the improved R-GCN model with triple attention mechanism to identify potential vulnerabilities in SPG. Our approach has at least two advantages over other methods. First, our proposed SPG can reflect the rich semantics and explicit structural information that may be relevance to vulnerabilities, while eliminating as much irrelevant information as possible to reduce the complexity of graph. Second, VulSPG incorporates triple attention mechanism in R-GCNs to achieve more effective learning of vulnerability patterns from SPG. We have extensively evaluated VulSPG on two large-scale datasets with programs from SARD and real-world projects. Experimental results prove the effectiveness and efficiency of VulSPG.

연구 동기 및 목표

  • 대규모이고 복잡한 코드베이스에서 중복 정보가 모델 성능을 저해하는 문제를 해결하기 위해.
  • 취약성 관련 기능만 유지하는 더 집중적이고 의미적으로 풍부한 코드 표현을 통해 취약성 탐지 성능을 향상시키기 위해.
  • 취약성 패턴을 강조하고 노이즈를 억제하는 삼중 주의 메커니즘을 통합하여 그래프 기반 모델의 특징 학습을 향상시키기 위해.
  • 대규모 실세계 데이터셋을 대상으로 제안된 방법을 평가하여 기존 접근 방식에 비해 효과성과 우수성을 검증하기 위해.

제안 방법

  • 논문은 프로그램 성질 그래프(CPG)에서 파생된 슬라이스 성질 그래프(SPG)를 도입하며, 이는 슬라이스 노드 간의 데이터, 제어, 함수 호출 의존성을 통합한다.
  • SPG는 6종류의 문법 기반 취약성 후보(SyVC)를 사용하여 구축되며, 이 중 두 가지는 새로 제안된 SyVC로 취약성 커버리지를 향상시키기 위해 사용된다.
  • 모델은 토큰 수준, 노드 수준, 서브그래프 수준의 주의 메커니즘을 갖춘 개선된 관계형 그래프 컨volutional 네트워크(R-GCN)를 사용하여 취약성 관련 특징에 집중한다.
  • 주의 메커니즘은 SPG의 노드와 간선에 동적으로 가중치를 할당하여, 불필요한 정보를 억제하고 취약성의 징후가 되는 패턴을 강조한다.
  • 모델은 SPG 표현에서 엔드 투 엔드로 학습되어 코드 세그먼트를 취약 또는 비취약으로 분류한다.

실험 결과

연구 질문

  • RQ1취약성 관련 구조적이고 의미적인 정보만 유지하는 그래프 기반 코드 표현이 탐지 성능 향상에 기여하는가?
  • RQ2삼중 주의 메커니즘이 SPG에서 취약성 탐지의 특징 학습에 얼마나 효과적인가?
  • RQ3VulSPG는 실세계 및 대규모 데이터셋에서 기존 최고 수준의 방법들을 능가하는가?
  • RQ4추가적인 SyVC의 포함이 프로그램 슬라이싱에서 취약성 커버리지를 얼마나 향상시키는가?

주요 결과

  • VulSPG는 SARD 기반 슬라이스 수준 데이터셋과 실세계 기반 기능 수준 데이터셋에서 모두 최고 수준의 방법들보다 뛰어난 성능을 달성한다.
  • 제안된 SPG 표현은 불필요한 코드를 제거함으로써 그래프 복잡도를 크게 감소시켜 더 효율적이고 정확한 학습을 가능하게 한다.
  • 삼중 주의 메커니즘은 핵심 취약성 패턴에 집중하고 그래프 내 노이즈를 억제함으로써 모델 성능을 향상시킨다.
  • 상호 절차적 분석 없이도 모델이 강력한 성능을 유지함으로써, 불완전한 프로그램 컨텍스트에 대해 뛰어난 내성성을 보인다.
  • 실험 결과는 두 가지 새로운 SyVC의 포함이 슬라이싱에서 취약 코드 세그먼트의 커버리지를 증가시킨다는 것을 확인한다.

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

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

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

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