[논문 리뷰] Rethinking Smart Contract Fuzzing: Fuzzing With Invocation Ordering and Important Branch Revisiting
이 논문은 데이터 종속성 인식 순서와 연장 기반으로 깊은 컨트랙트 상태를 탐색할 수 있도록 기능 호출 시퀀스를 생성함으로써 취약점 탐지 능력을 향상시키는 새로운 스마트 컨트랙트 패atcher인 IR-Fuzz를 제안한다. 동시에 분기 거리 기반 진화 및 타겟 기반 에너지 할당을 통해 드문 고위험 분기들을 우선순위화한다. IR-Fuzz는 최신 기술 대비 28% 높은 분기 커버리지와 7% 높은 탐지 정확도를 달성하며, 초당 350개의 테스트 케이스를 처리한다.
Blockchain smart contracts have given rise to a variety of interesting and compelling applications and emerged as a revolutionary force for the Internet. Quite a few practitioners have devoted themselves to developing tools for detecting bugs in smart contracts. One line of efforts revolve around static analysis techniques, which heavily suffer from high false-positive rates. Another line of works concentrate on fuzzing techniques. Unfortunately, current fuzzing approaches for smart contracts tend to conduct fuzzing starting from the initial state of the contract, which expends too much energy revolving around the initial state and thus is usually unable to unearth bugs triggered by other states. Moreover, most existing methods treat each branch equally, failing to take care of the branches that are rare or more likely to possess bugs. This might lead to resources wasted on normal branches. In this paper, we try to tackle these challenges from three aspects: (1) In generating function invocation sequences, we explicitly consider data dependencies between functions to facilitate exploring richer states. We further prolong a function invocation sequence S1 by appending a new sequence S2, so that S2 can start fuzzing from states that are different from the initial state. (2) We incorporate a branch distance-based measure to evolve test cases iteratively towards a target branch. (3) We engage a branch search algorithm to discover rare and vulnerable branches, and design an energy allocation mechanism to take care of exercising these crucial branches. We implement IR-Fuzz and extensively evaluate it over 12K real-world contracts. Empirical results show that: (i) IR-Fuzz achieves 28% higher branch coverage than state-of-the-art fuzzing approaches, and (ii) IR-Fuzz detects more vulnerabilities and increases the average accuracy of vulnerability detection by 7% over current methods.
연구 동기 및 목표
- 현재 스마트 컨트랙트 패처가 초기 컨트랙트 상태에서만 시작하는 데서 비롯되는 한계를 해결하여, 취약점이 존재할 수 있는 깊거나 복잡한 상태를 탐색할 수 있도록 한다.
- 모든 분기를 동일하게 취급하는 데서 비롯되는 비효율성을 해결하기 위해 드문 또는 고위험 분기를 식별하고 우선순위를 매겨 취약점이 존재할 가능성이 높은 분기를 선별한다.
- 데이터 종속성에 따라 순서를 정렬하고 초기 상태를 초월한 상태 전이를 가능하게 하는 기능 호출 시퀀스를 생성함으로써 패처링의 효율성과 커버리지를 향상시킨다.
- 거리 기반 메트릭을 사용해 테스트 케이스의 진화를 특정 타겟 분기로 이끌어 임의성과 오류를 줄이고, 취약점 탐지 정확도를 높인다.
- 비판적이고 도달하기 어려운 분기들에 대해 동적으로 더 많은 패처링 에너지를 할당하여 자원 할당을 최적화하고 전체 효과를 향상시킨다.
제안 방법
- IR-Fuzz는 기능 간 데이터 종속성 분석을 사용하여 기능 호출 시퀀스를 생성함으로써 글로벌 변수의 읽기/쓰기 종속성을 존중하여 더 풍부한 컨트랙트 상태 탐색을 가능하게 한다.
- 초기 시퀀스를 비초기 상태에서 시작하는 두 번째 시퀀스로 연장함으로써, 초기 상태를 초월한 깊고 복잡한 컨트랙트 상태 탐색이 가능해진다.
- 목표 분기로 향해 반복적으로 테스트 케이스를 진화시키기 위해 분기 거리 기반 측정법을 사용하여 무작위성을 줄이고 특정 코드 경로로의 수렴을 향상시킨다.
- 분기 탐색 알고리즘은 드문 또는 취약한 분기를 식별하고, 이를 동적 에너지 할당 메커니즘을 통해 우선순위를 매겨 빈도를 높인다.
- AFL 기반 변형 전략을 통합하지만, 깊거나 보호된 분기를 트리거할 가능성을 높이기 위해 핵심 입력 부분에 대한 변형을 피하는 방식으로 개선한다.
- IR-Fuzz는 EVM 명령어(예: BALANCE, compare, jump) 모니터링을 통해 위험한 이더 스트릭트 등가성과 같은 취약점의 징후를 탐지한다.
실험 결과
연구 질문
- RQ1초기 상태를 초월한 컨트랙트 상태를 탐색하는 호출 시퀀스를 생성함으로써 스마트 컨트랙트 패처링을 어떻게 향상시킬 수 있는가?
- RQ2분기 거리 기반 테스트 케이스 진화는 목표 분기에서의 수렴성과 커버리지 향상에 얼마나 기여하는가?
- RQ3드문 또는 취약한 분기들에 대한 동적 에너지 할당은 전체 패처링 효율성과 취약점 탐지 정확도에 어떤 영향을 미치는가?
- RQ4제안된 방법은 기존 도구가 놓쳤던, 예를 들어 위험한 이더 스트릭트 등가성과 같은 이전에 발견되지 않은 취약점 패턴을 탐지할 수 있는가?
- RQ5실제 스마트 컨트랙트에서 호출 순서, 시퀀스 연장, 에너지 할당의 조합이 최신 기술 대비 어떻게 비교되는가?
주요 결과
- IR-Fuzz는 12,000개의 실제 스마트 컨트랙트에서 최신 기술 대비 28% 높은 분기 커버리지를 달성했다.
- 기존 방법 대비 취약점 탐지 정확도 평균이 7% 향상되어 실제 취약점을 더 정밀하게 식별함을 보여준다.
- IR-Fuzz는 평균 초당 350개의 테스트 케이스를 처리하여 뛰어난 성능과 확장성을 보였다.
- 에너지 할당 메커니즘을 제거한 IR-Fuzz-WEA의 경우 분기 커버리지가 43.02% 감소하고 탐지 정확도는 4.87% 감소하여 이 기법의 기여도가 뚜렷하게 입증되었다.
- IR-Fuzz는 기존 도구가 놓쳤던 새로운 취약점 패tern인 위험한 이더 스트릭트 등가성을 성공적으로 탐지했다. 이는 사전에 존재하는 이더로 인해 컨트랙트 잔액이 예상 사용자 기여와 항상 일치하지 않는 경우 발생한다.
- IR-Fuzz가 위험한 이더 스트릭트 등가성 취약점을 탐지할 수 있는 능력은 도박 컨트랙트에 대한 사례 연구를 통해 검증되었으며, 이는 잔액 불일치로 인해 도달할 수 없는 승자 조건을 식별함으로써 입증되었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.