Skip to main content
QUICK REVIEW

[논문 리뷰] xFuzz: Machine Learning Guided Cross-Contract Fuzzing

Yinxing Xue, Jiaming Ye|arXiv (Cornell University)|2021. 11. 24.
Advanced Malware Detection Techniques참고 문헌 42인용 수 11
한 줄 요약

xFuzz는 이더리움 스마트 컨트랙트 간의 상호작용을 분석함으로써 다중 컨트랙트 취약점을 탐지하는 기계학습 기반 퍼저입니다. 단어 벡터와 바이트코드 명령어와 같은 학습된 특징을 사용하여 양호한 실행 경로를 걸러내며, 다른 도구보다 18개의 공격 가능한 취약점을 탐지함으로써 성능을 뛰어넘었으며, 이 중 15개는 이전에 알려지지 않은 것입니다. 이는 다른 퍼저가 소요하는 시간의 20% 미만으로 달성되었습니다.

ABSTRACT

Smart contract transactions are increasingly interleaved by cross-contract calls. While many tools have been developed to identify a common set of vulnerabilities, the cross-contract vulnerability is overlooked by existing tools. Cross-contract vulnerabilities are exploitable bugs that manifest in the presence of more than two interacting contracts. Existing methods are however limited to analyze a maximum of two contracts at the same time. Detecting cross-contract vulnerabilities is highly non-trivial. With multiple interacting contracts, the search space is much larger than that of a single contract. To address this problem, we present xFuzz, a machine learning guided smart contract fuzzing framework. The machine learning models are trained with novel features (e.g., word vectors and instructions) and are used to filter likely benign program paths. Comparing with existing static tools, machine learning model is proven to be more robust, avoiding directly adopting manually-defined rules in specific tools. We compare xFuzz with three state-of-the-art tools on 7,391 contracts. xFuzz detects 18 exploitable cross-contract vulnerabilities, of which 15 vulnerabilities are exposed for the first time. Furthermore, our approach is shown to be efficient in detecting non-cross-contract vulnerabilities as well -- using less than 20% time as that of other fuzzing tools, xFuzz detects twice as many vulnerabilities.

연구 동기 및 목표

  • 두 개 이상의 스마트 컨트랙트 간 상호작용에서 기인하는 취약점을 탐지할 수 없는 기존 도구의 격차를 보완하기 위해.
  • 퍼징 과정에서 다수의 상호작용 컨트랙트를 분석할 때 발생하는 높은 검색 공간 복잡도를 줄이기 위해.
  • 프로그램 특징을 기반으로 학습된 기계학습 모델을 규칙 기반 필터링 대체함으로써 탐지 정확도와 효율성을 향상시키기 위해.
  • 이더리움 스마트 컨트랙트의 다중 컨트랙트 상호작용에 대해 확장 가능하고 정밀한 퍼징을 가능하게 하기 위해.

제안 방법

  • 프레임워크는 스마트 컨트랙트 집합 간의 상호 컨트랙트 호출 관계를 정적 분석하여 다중 컨트랙트 실행 그래프를 구축합니다.
  • 기능 이름과 변수 식별자에서 유도된 단어 벡터, 그리고 EVM 바이트코드에서 추출된 명령어 수준의 기능을 포함한 프로그램 기능을 추출합니다.
  • 기계학습 모델은 이러한 기능을 기반으로 특정 프로그램 경로가 양호할 가능성을 예측하여, 퍼징 과정에서 악용 불가능한 경로를 잘라내도록 훈련됩니다.
  • 이 모델은 다중 컨트랙트 실행 흐름을 탐색하고 높은 위험 점수를 가진 경로를 우선순위로 정하는 퍼징 엔진에 통합됩니다.
  • 복잡한 다중 컨트랙트 상호작용을 유도하기 위해 기호 실행과 제약 조건 해결 기법을 사용합니다.
  • 최종적으로 기계학습 모델이 식별한 고위험 경로에 대한 동적 분석을 통해 취약점 탐지가 수행됩니다.

실험 결과

연구 질문

  • RQ1기계학습 모델은 이더리움 스마트 컨트랙트의 다중 컨트랙트 실행 경로 중에서 양호한 경로와 악성 경로를 효과적으로 구분할 수 있는가?
  • RQ2기계학습 기반 퍼징의 성능은 기존의 전통적 퍼징 및 정적 분석 기법과 비교해 다중 컨트랙트 취약점을 탐지하는 데서 어떻게 다른가?
  • RQ3기계학습 기반 경로 필터링은 취약점 탐지 커버리지 손실 없이 검색 공간을 얼마나 줄일 수 있는가?
  • RQ4기존 도구가 놓친 이전에 알려지지 않은 다중 컨트랙트 취약점을 프레임워크가 탐지할 수 있는가?
  • RQ5상태의 예술 도구와 비교해 xFuzz는 다중 컨트랙트 및 비다중 컨트랙트 취약점 탐지에서 얼마나 효율적인가?

주요 결과

  • xFuzz는 7,391개의 스마트 컨트랙트에서 18개의 악용 가능한 다중 컨트랙트 취약점을 탐지하였으며, 이 중 15개는 이전에 알려지지 않은 것입니다.
  • 세 대표적인 최신 도구가 놓친 실제 운영 중인 컨트랙트의 취약점을 프레임워크가 탐지하였습니다.
  • xFuzz는 다른 퍼징 도구보다 두 배 이상의 취약점 탐지율을 기록하였고, 실행 시간은 20% 미만으로 사용하였습니다.
  • 기계학습 모델은 수동 튜닝 없이도 규칙 기반 필터링보다 뛰어난 강건성을 보이며, 임의의 양호한 경로를 줄였습니다.
  • 시스템은 다중 컨트랙트 취약점 외에도 비다중 컨트랙트 취약점도 효과적으로 탐지하여, 주요 목표를 초월한 광범위한 적용 가능성을 보여주었습니다.

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

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

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

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