Ethereum, which first appeared in 2015, has been growing in popularity explosively and is constantly attracting attention. Smart contracts are applications that run on Ethereum, and they are used for a variety of purposes, including finance, gaming, and entertainment. Therefore, security issues that occur in smart contracts can cause damage to many users. In Ethereum, where there are many closed-source contracts, security research on contract binaries, especially static binary analysis security research is becoming prominent. Elipmoc, the SOTA (State-Of-The-Art) in EVM static binary analysis, proposed a method to recover CPS (Continuation-Passing Style) calls by considering the call context. However, Elipmoc has two limitations: (1) The F1 score for internal function restoration was 58.57%, which is low for function restoration. (2) The evaluation was performed without Ground-Truth for functions, so the Ground-Truth was absent. This study proposes a method to recover the EVM bytecode control-flow graph via incremental data-flow analysis, and a method to generate Ground-Truth based on assembly code. In addition, a constant partial propagation method is proposed to reduce the overhead in the data-flow analysis process. According to the experiment, the proposed model has an F1 score that is 24.53% higher than Elipmoc, and the constant partial propagation method takes about three times less time on average than the existing method.
2015년 처음 등장한 이더리움은 오늘날까지 폭발적인 이용 증가세를 보이며 지속적인 관심을 받고 있다. 스마트 컨트랙트는 이더리움에서 실행되는 어플리케이션으로, 금융, 게임, 엔터테인먼트 등 다양한 목적으로 이용되고 있다. 따라서 스마트 컨트랙트에서 발생하는 보안 문제는 수많은 이용자들에게 피해를 끼칠 수 있다. 소스 코드가 비공개인 컨트랙트가 많은 이더리움에서는 컨트랙트의 바이너리를 분석하는 보안 연구, 특히 정적 바이너리 분석 보안 연구가 대두된다. EVM 정적 바이너리 분석에서의 SOTA (State-Of-The-Art)인 Elipmoc은 호출 맥락 (Calling Context)을 고려하여 CPS (Continuation-Passing Style) 호출을 복원하는 방법을 제안하였다. 그러나 Elipmoc은 두 가지 한계를 지니는데, (1) 내부 함수 복원에 대한 F1 점수가 58.57% 정도로 함수의 복원 성능이 낮았고, (2) 함수에 대한 Ground-Truth를 생성하지 않고 평가를 수행하여 Ground-Truth가 부재하였다. 본 연구는 이 두 가지의 한계들을 해결하기 위하여, 점진적 데이터 흐름 분석 기반 EVM 바이트 코드 제어 흐름 그래프 복원, 그리고 어셈블리 코드 기반 Ground-Truth 생성 방법을 제안한다. 또한, 데이터 흐름 분석 과정에서의 오버헤드를 줄이기 위하여 상수 부분 전파 방법을 제안한다. 실험에 따르면, 제안 모델은 Elipmoc과 비교했을 때 F1 점수가 24.53% 더 높았고, 상수 부분 전파 방법은 기준이 되는 방법과 비교했을 때 평균 소요시간이 약 3배 단축되었다.