Skip to main content
QUICK REVIEW

[논문 리뷰] EVulHunter: Detecting Fake Transfer Vulnerabilities for EOSIO's Smart Contracts at Webassembly-level

Lijin Quan, Lei Wu|arXiv (Cornell University)|2019. 06. 25.
Blockchain Technology Applications and Security참고 문헌 6인용 수 24
한 줄 요약

EVulHunter는 WebAssembly(WASM) 코드를 대규모로 분석하여 EOSIO 스마트 컨트랙트의 가짜 전송 취약점을 탐지하는 정적 분석 도구이다. 제어 흐름 그래프를 구축하고 WASM 시뮬레이터를 활용한 패턴 기반 탐지 기법을 적용하여, 가짜 EOS 전송에 대해 86%의 정확도와 가짜 전송 알림 취약점에 대해 100%의 정확도를 달성했으며, 낮은 거짓 경고율을 기록했다.

ABSTRACT

As one of the representative Delegated Proof-of-Stake (DPoS) blockchain platforms, EOSIO's ecosystem grows rapidly in recent years. A number of vulnerabilities and corresponding attacks of EOSIO's smart contracts have been discovered and observed in the wild, which caused a large amount of financial damages. However, the majority of EOSIO's smart contracts are not open-sourced. As a result, the WebAssembly code may become the only available object to be analyzed in most cases. Unfortunately, current tools are web-application oriented and cannot be applied to EOSIO WebAssembly code directly, which makes it more difficult to detect vulnerabilities from those smart contracts. In this paper, we propose oolname, a static analysis tool that can be used to detect vulnerabilities from EOSIO WASM code automatically. We focus on one particular type of vulnerabilities named extit{fake-transfer}, and the exploitation of such vulnerabilities has led to millions of dollars in damages. To the best of our knowledge, it is the first attempt to build an automatic tool to detect vulnerabilities of EOSIO's smart contracts. The experimental results demonstrate that our tool is able to detect fake transfer vulnerabilities quickly and precisely. EVulHunter is available on GitHub\footnote{Tool and benchmarks: https://github.com/EVulHunter/EVulHunter} and YouTube\footnote{Demo video: https://youtu.be/5SJ0ZJKVZvw}.

연구 동기 및 목표

  • 원본 소스 코드가 제공되지 않을 경우, 컴파일된 WebAssembly(WASM) 바이너리에만 의존하여 EOSIO 스마트 컨트랙트의 취약점을 탐지하는 데 도전하는 것.
  • 가짜 전송 취약점—특히 가짜 EOS 전송과 가짜 전송 알림—을 탐지할 수 있는 자동화된 정적 분석 도구를 개발하는 것.
  • WASM 바이너리에서 기호적 정보와 타입 정보가 부족한 문제를 보완하기 위해 함수 인덱스를 추론하고, 변화하는 Contract Development Toolkit(CDT) 버전을 지원하는 것.
  • 실제 241개의 EOSIO 스마트 컨트랙트(중 159개가 취약함)를 포함한 실세계 벤치마크를 대상으로 도구의 정밀도, 재현율 및 성능을 평가하는 것.
  • EOSIO의 고처리량 블록체인 생태계에서 취약점 탐지에 대해 확장 가능하고 효율적인 솔루션을 제공하는 것.

제안 방법

  • EVulHunter는 WASM 바이너리를 분석하여 제어 흐름 그래프(CFG)를 추출하고, 사전 정의된 취약점 패턴을 사용한 정적 분석을 수행한다.
  • 의심스러운 코드 경로의 심층 분석을 위해 WASM 시뮬레이터 모듈을 포함한다.
  • 불법 또는 의도하지 않은 토큰 전송이 액션 핸들러를 통해 트리거되는 패턴을 탐지하여 가짜 전송 취약점을 식별한다.
  • 고정된 구문 또는 구조에 의존하지 않고 행동 패턴을 분석함으로써 CDT 버전의 변화에 동적으로 대응할 수 있도록 한다.
  • 합법적인 제3자 토큰 계정으로 인한 거짓 경고를 줄이기 위해 화이트리스트 메커니즘을 지원한다.
  • 도구는 실세계의 241개의 EOSIO 스마트 컨트랙트 벤치마크를 대상으로 평가되었으며, 가짜 EOS 전송 탐지에 184개, 가짜 전송 알림 탐지에 195개의 컨트랙트가 각각 사용되었다.

실험 결과

연구 질문

  • RQ1원본 소스 코드가 제공되지 않고 WASM 바이너리만 존재할 경우, 정적 분석 도구가 EOSIO 스마트 컨트랙트의 가짜 전송 취약점을 탐지할 수 있는가?
  • RQ2WASM 코드에 패턴 기반 분석을 적용할 때, 가짜 EOS 전송과 가짜 전송 알림 취약점의 탐지 정확도와 효율성은 어떠한가?
  • RQ3CDT 버전의 진화가 WASM 바이너리에서의 취약점 탐지 신뢰성과 유지보수성에 미치는 영향은 무엇인가?
  • RQ4합법적인 제3자 토큰 계정으로 인한 거짓 경고를 감소시키기 위해 어떤 방법이 가능한가? 이는 탐지 커버리지의 손실 없이 가능할까?
  • RQ5제안된 접근 방식은 실무에서 수천 개의 스마트 컨트랙트에 대한 대규모 분석에 확장 가능한가?

주요 결과

  • EVulHunter는 가짜 EOS 전송 취약점 탐지에서 86%의 정확도를 기록했으며, 이 중 26개의 거짓 경고는 이전 버전의 eosbetdice11 컨트랙트와 합법적인 제3자 토큰 계정으로 인한 것이었다.
  • 가짜 전송 알림 취약점에 대해서는 100%의 정확도를 달성했고, 거짓 음성 결과가 전혀 없어 이 변종을 탐지하는 데 있어 높은 정밀도와 재현율을 보였다.
  • 각 스마트 컨트랙트의 탐지 시간은 1~3초 사이로, 컨트랙트 크기에 비례하여 선형적으로 증가하여 높은 효율성과 확장성을 입증했다.
  • EVulHunter는 241개의 스마트 컨트랙트 중 159개에서 가짜 EOS 전송과 가짜 전송 알림 취약점을 모두 탐지했으며, 각각 184개와 195개의 컨트랙트가 각각의 평가에 사용되었다.
  • WASM 시뮬레이터 모듈을 통해 의심스러운 코드 경로의 심층 분석이 가능해졌으며, 문법적 패턴 매칭만으로는 부족한 탐지 신뢰성을 향상시켰다.
  • 사용자 정의 화이트리스트를 통합함으로써 합법적인 토큰 계정으로 인한 거짓 경고를 줄일 수 있어 실용적 사용성 향상에 기여했다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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