[논문 리뷰] Hunting for Re-Entrancy Attacks in Ethereum Smart Contracts via Static Analysis
이 논문은 이더리움 스마트 컨트랙트의 재진입 취약점을 EVM 바이트코드에서 상징적 실행과 SMT 해결을 사용하여 정적 분석하는 도구 RA를 제시한다. 이 도구는 잘못된 경고나 빠짐이 없이 정확하게 취약점을 식별하며, 공격 패tern에 대한 사전 지식이 필요 없고, 트랜잭션 실행 없이 배포된 컨트랙트 바이트코드만으로도 작동한다.
Ethereum smart contracts are programs that are deployed and executed in a consensus-based blockchain managed by a peer-to-peer network. Several re-entrancy attacks that aim to steal Ether, the cryptocurrency used in Ethereum, stored in deployed smart contracts have been found in the recent years. A countermeasure to such attacks is based on dynamic analysis that executes the smart contracts themselves, but it requires the spending of Ether and knowledge of attack patterns for analysis in advance. In this paper, we present a static analysis tool named extit{RA (Re-entrancy Analyzer)}, a combination of symbolic execution and equivalence checking by a satisfiability modulo theories solver to analyze smart contract vulnerabilities to re-entrancy attacks. In contrast to existing tools, RA supports analysis of inter-contract behaviors by using only the Etherum Virtual Machine bytecodes of target smart contracts, i.e., even without prior knowledge of attack patterns and without spending Ether. Furthermore, RA can verify existence of vulnerabilities to re-entrancy attacks without execution of smart contracts and it does not provide false positives and false negatives. We also present an implementation of RA to evaluate its performance in analyzing the vulnerability of deployed smart contracts to re-entrancy attacks and show that RA can precisely determine which smart contracts are vulnerable.
연구 동기 및 목표
- 소스 코드나 실행이 필요 없이 배포된 이더리움 스마트 컨트랙트에 대한 보안적이고 정밀한 분석이 이루어져야 하는 중요한 필요성을 해결하기 위해.
- 에테르 소비가 필요하고 공격 패턴에 대한 사전 지식이 필요한 동적 분석의 한계를 극복하기 위해.
- 형식적 검증 기법을 통해 재진입 취약점 탐지에서 잘못된 경고나 빠짐을 제거하기 위해.
- 배포된 컨트랙트와 미배포된 컨트랙트 모두에 대해 공개된 소스 코드 없이도 EVM 바이트코드만으로도 상호 컨트랙트 정적 분석이 가능하도록 하기 위해.
- 실세계 스마트 컨트랙트에서 최신의 재진입 공격을 정확하고 자동으로 식별할 수 있는 확장 가능한, 정확하고 자동화된 솔루션을 제공하기 위해.
제안 방법
- RA는 상징적 실행을 사용하여 다중 컨트랙트 간의 제어 흐름 그래프(CFG)를 구성함으로써 재진입 행동을 모방한다.
- 외부 컨트랙트 호출을 상징적으로 모델링하여 분석 중 상태 전이와 잠재적 재진입 지점을 유지한다.
- 제어 흐름과 상태 변화에서 유도된 제약 조건의 만족 가능성 여부를 검사함으로써 재진입 취약점이 존재하는지 형식적으로 검증하기 위해 Z3 SMT 솔버를 활용한다.
- 컨트랙트의 상태가 업데이트되기 이전에 재진입이 가능한지 분석함으로써 등가성 검증을 SMT 해결을 통해 수행함으로써 취약점 탐지를 수행한다.
- 이 방법은 EVM 바이트코드만으로도 작동하여 소스 코드가 제공되지 않은 컨트랙트의 분석이 가능하다.
- RA는 상징적 실행과 SMT 기반 등가성 검증을 결합하여 취약점 탐지의 타당성과 완전성을 보장한다.
실험 결과
연구 질문
- RQ1EVM 바이트코드만을 사용하여 이더리움 스마트 컨트랙트의 재진입 취약점을 잘못된 경고나 빠짐 없이 탐지할 수 있는가?
- RQ2기존 도구를 우회하는 고도화된 재진입 공격 패턴에 대한 사전 지식 없이도 정적 분석 도구가 이러한 공격을 탐지할 수 있는가?
- RQ3EVM 바이트코드에서 상징적 실행과 SMT 해결을 사용하여 스마트 컨트랙트의 정밀한 상호 컨트랙트 분석이 가능한가?
- RQ4제안된 방법은 실제로 배포된 컨트랙트에서 실세계의 재진입 취약점을 탐지하는 데 얼마나 효과적인가?
- RQ5복잡한 다대다 컨트랙트 상호작용 환경에서도 이 도구는 취약점 탐지에 확장 가능한가?
주요 결과
- RA는 실세계 이더리움 스마트 컨트랙트에서 100% 정밀도로 재진입 취약점을 성공적으로 탐지하여 잘못된 경고나 빠짐이 없음을 보여주었다.
- 기존의 상징적 실행 도구가 회피하는 복잡한 상호 컨트랙트 호출 패턴에 의존하는 컨트랙트들에 대해서도 도구는 정확하게 취약한 컨트랙트를 식별할 수 있었다.
- RA의 분석은 전적으로 EVM 바이트코드에 기반하여, 소스 코드가 공개되지 않은 컨트랙트의 취약점 탐지가 가능하게 한다.
- 상징적 실행과 Z3 SMT 해결의 통합은 트랜잭션 실행 없이도 재진입 결함 존재 여부를 형식적으로 검증할 수 있게 한다.
- 배포된 컨트랙트에 대한 평가를 통해 RA가 취약한 컨트랙트와 비취약한 컨트랙트를 정확히 구분할 수 있음을 확인했다.
- RA의 설계는 확장 가능하며, 블록 타임스탬프를 사용한 시간 기반 공격과 같은 다른 취약점 탐지에도 적용 가능하다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.