본 연구는 재진입 공격을 수행하는 공격자 계약의 특징을 분석하기 위해 281건의 공격 사례를 조사했다. 이를 통해 공격자 계약이 fallback() 함수, ERC 토큰의 후크 함수, 사용자 정의 인터페이스를 활용하여 재진입 공격을 수행하는 3가지 유형을 확인했다.
이를 바탕으로 BlockWatchdog은 계약 간 정적 데이터 흐름 분석을 수행한다. 먼저 입력 계약의 중간 표현(IR)을 추출하고 외부 호출 정보를 분석한다. 그 다음 계약 간 제어 흐름 그래프(xCFG)와 호출 그래프(xCG)를 구축하여 데이터 흐름 분석을 수행한다. 마지막으로 공격자 계약 식별 패턴을 적용하여 실제 악용 가능한 재진입 취약점을 탐지한다.
실험 결과, BlockWatchdog은 421,889개의 이더리움 계약 바이트코드에서 113개의 공격자 계약을 식별했으며, 이를 통해 약 9억 달러 규모의 이더와 토큰 손실을 확인했다. 현존하는 재진입 취약점 탐지 도구들은 이 중 18개의 피해자 계약만 탐지할 수 있었다.
他の言語に翻訳
原文コンテンツから
arxiv.org
深掘り質問