[논문 리뷰] Security Analysis of EOSIO Smart Contracts
이 논문은 웹어셈블리(웹어셈블리) 바이트코드 수준에서 EOSIO 스마트 계약의 취약점을 탐지하기 위한 첫 번째 정적 분석 프레임워크인 EOSafe를 제시한다. 기호 실행 엔진, 맞춤형 EOSIO 라이브러리 에뮬레이터, 히우리스틱 기반 탐지기들을 조합함으로써 EOSafe는 취약점 탐지에서 98%의 F1-측정치를 달성했으며, 53,666개의 활성 EOSIO 스마트 계약 중 25% 이상이 취약하다고 밝혀졌고, 이 중 48건의 실제 공격이 확인되어 최소 $1.7M의 손실을 초래했다.
The EOSIO blockchain, one of the representative Delegated Proof-of-Stake (DPoS) blockchain platforms, has grown rapidly recently. Meanwhile, a number of vulnerabilities and high-profile attacks against top EOSIO DApps and their smart contracts have also been discovered and observed in the wild, resulting in serious financial damages. Most of EOSIO's smart contracts are not open-sourced and they are typically compiled to WebAssembly (Wasm) bytecode, thus making it challenging to analyze and detect the presence of possible vulnerabilities. In this paper, we propose EOSAFE, the first static analysis framework that can be used to automatically detect vulnerabilities in EOSIO smart contracts at the bytecode level. Our framework includes a practical symbolic execution engine for Wasm, a customized library emulator for EOSIO smart contracts, and four heuristics-driven detectors to identify the presence of four most popular vulnerabilities in EOSIO smart contracts. Experiment results suggest that EOSAFE achieves promising results in detecting vulnerabilities, with an F1-measure of 98%. We have applied EOSAFE to all active 53,666 smart contracts in the ecosystem (as of November 15, 2019). Our results show that over 25% of the smart contracts are vulnerable. We further analyze possible exploitation attempts against these vulnerable smart contracts and identify 48 in-the-wild attacks (25 of them have been confirmed by DApp developers), resulting in financial loss of at least 1.7 million USD.
연구 동기 및 목표
- 스마트 계약이 일반적으로 Wasm으로 컴파일되고 소스 코드가 공개되지 않는 점을 감안해, EOSIO 스마트 계약을 분석하기 위한 자동화된 도구의 부족을 해결하기 위해.
- 복잡한 명령어 세트, 중첩된 제어 흐름, 의미적 맥락이 필요한 점으로 인해 Wasm 바이트코드를 분석하는 데 도전 과제가 존재하므로 이를 극복하기 위해.
- 가짜 EOS, 가짜 수신 확인, 롤백, 권한 확인 누락과 같은 네 가지 주요 EOSIO 전용 취약점을 자동으로 정확하게 탐지하기 위해.
- 전체 EOSIO 생태계의 보안 상태를 대규모로 평가하여 실제 공격 시도를 식별하기 위해.
제안 방법
- 경로 폭발 문제를 완화하기 위해 히우리스틱 기반 경로 자르기 기법을 사용한, Wasm 바이트코드에 특화된 기호 실행 엔진을 설계하고 구현하였다.
- 취약점 탐지에 핵심적인 기능과 데이터 구조를 시뮬레이션하기 위해 EOSIO 전용 함수를 에뮬레이트하는 맞춤형 라이브러리 에뮬레이터를 개발하였다.
- 특정 취약점 패tern을 탐지하기 위한 탐지기들을 쉽게 통합할 수 있도록 플러그인 기반의 취약점 탐지 프레임워크를 구축하였다.
- Wasm 제어 흐름과 함수 인수의 의미 분석을 기반으로, 네 가지 주요 취약점에 대해 히우리스틱 기반 탐지기 네 개를 구현하였다.
- 기호 실행을 에뮬레이터와 통합하여 프로그램 경로를 탐색하고, 제어 흐름 및 데이터 흐름 분석 기반으로 보안 결함을 식별하였다.
- 2019년 11월 15일 기준으로 활성화된 53,666개의 EOSIO 스마트 계약 전부에 프레임워크를 적용하여 대규모 취약점 측정을 수행하였다.
실험 결과
연구 질문
- RQ1소스 코드가 공개되지 않고 Wasm으로 컴파일된 EOSIO 스마트 계약에 대해 정적 분석 프레임워크가 효과적으로 취약점을 탐지할 수 있는가?
- RQ2중첩된 제어 흐름과 고급 명령어를 포함한 복잡한 Wasm 바이트코드를 분석할 때, 경로 자르기 기법을 적용한 기호 실행의 효과는 어떠한가?
- RQ3가짜 EOS 및 가짜 수신 확인과 같은 알려진 주요 취약점이 EOSIO 생태계 전반에 얼마나 널리 퍼져 있는가?
- RQ4프레임워크는 실제 공격 시도를 식별할 수 있으며, 이러한 공격의 재정적 영향 규모는 어느 정도인가?
주요 결과
- 52개의 수동으로 제작된 스마트 계약 벤치마크에서 EOSafe는 98%의 F1-측정치를 달성하여 높은 정밀도와 재현율을 입증하였다.
- 분석된 53,666개의 활성 EOSIO 스마트 계약 중 25% 이상이 네 가지 타깃 취약점 중 하나 이상에 취약하다고 밝혀졌다.
- 프레임워크는 48건의 실제 공격을 식별했으며, 이 중 25건은 DApp 개발자들에 의해 확인되었고, 이로 인해 최소 $1.7M의 손실이 발생했다.
- 연구 결과, 많은 취약한 계약들이 비활성화되거나 잔액이 낮은 것으로 나타나, 악성 행위자들이 고가치 계약을 선별적으로 공격할 가능성이 있음을 시사했다.
- 기호 실행 엔진은 히우리스틱 기반 자르기 기법을 통해 경로 폭발 문제를 성공적으로 완화하여, 복잡한 Wasm 기반 스마트 계약의 확장 가능한 분석을 가능하게 하였다.
- 프레임워크의 모듈러한 설계는 추가 취약점 탐지 기능의 확장이 가능하며, EOSIO를 초월한 다른 Wasm 기반 시스템에도 일반화 가능하다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.