Skip to main content
QUICK REVIEW

[논문 리뷰] G-Scan: Graph Neural Networks for Line-Level Vulnerability Identification in Smart Contracts

Christoph Sendner, Ruisi Zhang|arXiv (Cornell University)|2023. 07. 17.
Advanced Malware Detection Techniques인용 수 4
한 줄 요약

G-Scan은 이더리움 스마트 컨트랙트에서 미세한 레벨, 라인 수준의 취약성 탐지에 대비한 엔드 투 엔드 그래프 신경망 시스템이다. 이는 솔리디티 소스 코드로부터 의존성과 계층을 유지하는 코드 그래프를 구성하고, GCN를 사용해 취약한 노드를 예측하며, 예측 결과를 원본 소스 라인으로 매핑함으로써, 새로운 실세계 리엔트리 악성 취약성 데이터셋에서 93.69%의 F1 스코어를 달성한다.

ABSTRACT

Due to the immutable and decentralized nature of Ethereum (ETH) platform, smart contracts are prone to security risks that can result in financial loss. While existing machine learning-based vulnerability detection algorithms achieve high accuracy at the contract level, they require developers to manually inspect source code to locate bugs. To this end, we present G-Scan, the first end-to-end fine-grained line-level vulnerability detection system evaluated on the first-of-its-kind real world dataset. G-Scan first converts smart contracts to code graphs in a dependency and hierarchy preserving manner. Next, we train a graph neural network to identify vulnerable nodes and assess security risks. Finally, the code graphs with node vulnerability predictions are mapped back to the smart contracts for line-level localization. We train and evaluate G-Scan on a collected real world smart contracts dataset with line-level annotations on reentrancy vulnerability, one of the most common and severe types of smart contract vulnerabilities. With the well-designed graph representation and high-quality dataset, G-Scan achieves 93.02% F1-score in contract-level vulnerability detection and 93.69% F1-score in line-level vulnerability localization. Additionally, the lightweight graph neural network enables G-Scan to localize vulnerabilities in 6.1k lines of code smart contract within 1.2 seconds.

연구 동기 및 목표

  • 기존 도구들이 정확하게 로컬라이제이션하지 못하는 스마트 컨트랙트에서의 미세한 레벨, 라인 수준의 취약성 탐지에 대한 격차를 해소하기 위해.
  • 이전의 GNN 기반 방법들이 노드 수준의 예측을 원본 소스 코드 라인으로 다시 매핑할 수 없는 한계를 극복하기 위해.
  • 리엔트리 악성 취약성에 대해 실세계적, 라인 수준의 주석이 달린 데이터셋을 제작하고 평가하기 위해.
  • 개선된 취약성 탐지 성능을 위해 데이터 의존성과 코드 계층을 유지하는 그래프 표현을 설계하기 위해.
  • 대규모 컨트랙트에서 효율적이고 저비용의 추론을 가능하게 하여 개발자의 디버깅 시간을 단축하기 위해.

제안 방법

  • 소스 코드의 추상 구문 트리(_AST_)를 기반으로 솔리디티 스마트 컨트랙트를 코드 그래프로 변환하고, 데이터 의존성과 제어 계층에 대한 추가 엣지를 포함한다.
  • 함수 유형(예: While, For), 변수 속성(접근성, 스토리지) 및 멤버 접근(예: send, transfer)을 포함한 노드 특징을 할당한다.
  • 그래프 컬러레이션 네트워크(GCN)를 사용해 그래프 전반에 걸쳐 취약성 패턴을 인코딩하는 숨겨진 표현을 학습한다.
  • 각 코드 그래프 노드가 취약한 라인에 해당하는지 여부를 예측하기 위해 노드 수준의 분류를 위한 GCN을 훈련한다.
  • AST 구축 중에 저장된 'src' 속성을 사용하여 예측된 취약한 노드를 원래 소스 코드 라인으로 다시 매핑한다.
  • 라인 수준의 리엔트리 악성 취약성 주석이 달린 13,773개의 스마트 컨트랙트로 구성된 신규 수집된 실세계 데이터셋에서 모델을 평가한다.

실험 결과

연구 질문

  • RQ1그래프 신경망은 실세계 스마트 컨트랙트에서 리엔트리 악성 취약성을 라인 수준에서 효과적으로 탐지할 수 있는가?
  • RQ2그래프 표현에서 코드 의존성과 계층을 유지할 경우 탐지 성능에 어떤 영향을 미치는가?
  • RQ3G-Scan은 대규모 컨트랙트에서 저비용 추론으로 취약성을 효율적으로 로컬라이제이션할 수 있는가?
  • RQ4기존의 컨트랙트 수준 및 노드 수준 탐지 시스템과 비교해 G-Scan의 미세한 레벨 로컬라이제이션 성능은 어떠한가?
  • RQ5실세계 주석이 달린 데이터셋을 사용할 경우, 합성 주입 방법에 비해 탐지 정확도가 얼마나 향상되는가?

주요 결과

  • G-Scan은 실세계 데이터셋에서 컨트랙트 수준의 취약성 탐지에서 93.02%의 F1 스코어를 기록하여 높은 분류 정확도를 입증했다.
  • 시스템은 라인 수준의 취약성 로컬라이제이션에서 93.69%의 F1 스코어를 달성했으며, 이는 이전 방법들에 비해 다시 매핑 기능이 없는 경우에 비해 뚜렷이 뛰어난 성능을 보였다.
  • G-Scan은 6.1k 라인의 코드에서 1.2초 이내에 취약성을 로컬라이제이션하여 실용적 사용에 적합한 저비용 추론 오버헤드를 보였다.
  • 실세계 데이터셋을 사용하고 라인 수준의 주석을 달 경우, 이전 연구에서 사용된 합성 주입 방법에 비해 탐지 정확도가 높아졌다.
  • 그래프 구축 과정에서 코드 의존성과 계층을 유지함으로써 모델 성능이 향상되었으며, 이는 중요한 취약성 패턴을 포착하기 때문이다.
  • 'src' 속성을 통한 소스 코드 라인 매핑 통합은 개발자가 정확하고 실질적인 취약성 로컬라이제이션을 수행할 수 있도록 했다.

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

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

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

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