[논문 리뷰] GasFuzz: Generating High Gas Consumption Inputs to Avoid Out-of-Gas Vulnerability.
이 논문은 이더리움 스마트 컨트랙트에서 가스 한도를 과소평가하는 문제를 줄이기 위해 고가스 소비 입력을 생성하는 피드백 지향형 변이 퍼즈 V-Gas를 제안한다. 가스 가중치가 부여된 제어 흐름 그래프를 구축하고 가스 소비 피드백을 통해 변이를 유도함으로써 V-Gas는 과소평가율을 44.02%에서 13.86%로 감소시키며, 기존에 알려지지 않은 25개의 out-of-gas 취약점을 발견하였다. 그 중 5개는 CVE 식별자를 받았다.
The out-of-gas error occurs when smart contract programs are provided with inputs that cause excessive gas consumption, and would be easily exploited to make the DoS attack. Multiple approaches have been proposed to estimate the gas limit of a function in smart contracts to avoid such error. However, under estimation often happens when the contract is complicated. In this work, we propose V-Gas, which could automatically generate inputs that maximizes the gas cost and reduce the under estimation cases. V-Gas is designed based on feedback-directed mutational fuzz testing. First, V-Gas builds the gas weighted control flow graph (CFG) of functions in smart contracts. Then, V-Gas develops gas consumption guided selection and mutation strategies to generate the input that maximize the gas consumption. For evaluation, we implement V-Gas based on js-evm, a widely used ethereum virtual machine written in javascript, and conduct experiments on 736 real-world transactions recorded on Ethereum. 44.02\% of the transactions would have out-of-gas errors under the estimation results given by solc, means that the recorded real gas consumption for those recorded transactions is larger than the gas limit value estimated by solc. While V-Gas could reduce the under estimation ratio to 13.86\%. Furthermore, V-Gas has exposed 25 previously unknown out-of-gas vulnerabilities in those widely-used smart contracts, 5 of which have been assigned unique CVE identifiers in the US National Vulnerability Database.
연구 동기 및 목표
- 이더리움 스마트 컨트랙트에서 지속적인 가스 한도 과소평가 문제를 해결함으로써, out-of-gas 오류와 잠재적 DoS 공격을 방지하기 위해.
- 정적 분석 도구인 solc가 종종 실패하는 복잡한 스마트 컨트랙트에 대해 가스 한도 추정의 정확도를 향상시키기 위해.
- 가스 소비를 최대화하는 자동 입력 생성 기법을 개발하여, 과소평가 위험을 드러내기 위해.
- 광범위하게 배포된 스마트 컨트랙트에서 기존에 발견되지 않은 out-of-gas 취약점을 식별하기 위해.
제안 방법
- 각 스마트 컨트랙트의 함수별로 가스 가중치가 부여된 제어 흐름 그래프(CFG)를 구축하여 실행 경로 전반의 가스 소비를 모델링한다.
- 피드백 지향형 변이 퍼징을 적용하여, 실시간 가스 소비 피드백에 따라 변이 전략을 유도한다.
- 가스 소비를 피트니스 지표로 사용하여 가스 사용량을 증가시키는 입력 변이를 선택하고 우선순위를 정한다.
- 실제 거래에서 정확한 가스 측정을 가능하게 하기 위해, 자바스크립트 기반 이더리움 가상 머신인 js-evm에 퍼저를 통합한다.
- 736개의 실제 이더리움 거래를 대상으로 생성된 입력을 평가하여 과소평가 감소율과 취약점 발견 능력을 측정한다.
실험 결과
연구 질문
- RQ1피드백 지향형 변이 퍼징은 스마트 컨트랙트에서 가스 소비를 최대화하는 입력을 효과적으로 생성할 수 있는가?
- RQ2V-Gas는 solc와 같은 정적 분석 도구에 비해 가스 한도 과소평가율을 얼마나 줄일 수 있는가?
- RQ3V-Gas는 실제 스마트 컨트랙트에서 기존에 알려지지 않은 out-of-gas 취약점을 몇 개 발견할 수 있는가?
- RQ4발견된 취약점은 독립적으로 검증 가능하며 CVE 식별자를 받을 수 있는가?
주요 결과
- 736개의 실제 이더리움 거래를 대상으로 평가한 결과, V-Gas는 가스 한도 과소평가율을 44.02%에서 13.86%로 감소시켰다.
- 이 도구는 광범위하게 사용되는 스마트 컨트랙트에서 기존에 알려지지 않은 25개의 out-of-gas 취약점을 성공적으로 드러냈다.
- 발견된 취약점 중 5개는 미국 국립 취약점 데이터베이스에 고유한 CVE 식별자를 할당받아 심각성과 재현 가능성의 신뢰성을 입증했다.
- 가스 가중치가 부여된 CFG와 피드백 지향형 변이 전략은 고비용 실행 경로 탐지 능력을 크게 향상시켰다.
- 결과적으로 동적이고 피드백 기반의 퍼징이 정적 분석보다 가스 관련 취약점을 식별하는 데 더 효과적임을 입증했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.