Skip to main content
QUICK REVIEW

[논문 리뷰] Oracle-Supported Dynamic Exploit Generation for Smart Contracts

Haijun Wang, Yi Li|arXiv (Cornell University)|2019. 09. 14.
Blockchain Technology Applications and Security참고 문헌 30인용 수 15
한 줄 요약

이 논문은 트랜잭션 시퀀스를 변형하고 일반 목적의 테스트 오라클을 통해 의미적 일관성 불일치를 모니터링하는 동적이고 오라클 기반의 프레임워크인 ContraMaster를 제안한다. 이는 정적 기반의 기법들보다 뛰어나며, 218개의 벤치마크 스마트 컨트랙트에서 28개의 공격 가능한 취약점을 모두 탐지하고, 참으로 0개의 가짜 경고를 유발한다. 또한 세 가지 새로운 공격 패턴을 발견한다.

ABSTRACT

Despite the high stakes involved in smart contracts, they are often developed in an undisciplined manner, leaving the security and reliability of blockchain transactions at risk. In this paper, we introduce ContraMaster: an oracle-supported dynamic exploit generation framework for smart contracts. Existing approaches mutate only single transactions; ContraMaster exceeds these by mutating the transaction sequences. ContraMaster uses data-flow, control-flow, and the dynamic contract state to guide its mutations. It then monitors the executions of target contract programs, and validates the results against a general-purpose semantic test oracle to discover vulnerabilities. Being a dynamic technique, it guarantees that each discovered vulnerability is a violation of the test oracle and is able to generate the attack script to exploit this vulnerability. In contrast to rule-based approaches, ContraMaster has not shown any false positives, and it easily generalizes to unknown types of vulnerabilities (e.g., logic errors). We evaluate ContraMaster on 218 vulnerable smart contracts. The experimental results confirm its practical applicability and advantages over the state-of-the-art techniques, and also reveal three new types of attacks.

연구 동기 및 목표

  • 정적이고 규칙 기반의 스마트 컨트랙트 취약점 검출 기법에서 발생하는 높은 가짜 경고 비율 문제를 해결하기 위해 런타임 의미론에 기반한 동적 분석으로 전환한다.
  • 자산 일관성 및 상태 무결성과 같은 계약 행동의 기본 인variants를 포괄하는 일반 목적의 의미론적 테스트 오라클을 개발한다.
  • 함수 입력뿐 아니라 트랜잭션 시퀀스, 가스 한도, 패시브 함수, 그리고 컨트랙트 상태까지 변형하는 회색 상자 패atcher를 설계하여 공격 가능성 탐지 능력을 향상시킨다.
  • 실제 취약한 컨트랙트에 프레임워크를 검증하고, 기존 도구들과 비교해 공격 가능한 취약점만을 탐지하는 데서 뛰어난 성능을 입증한다.
  • 외부 이벤트와 내부 컨트랙트 상태 간의 의미적 불일치를 관찰함으로써 이전에 알려지지 않은 취약점 패턴을 식별한다.

제안 방법

  • ContraMaster는 외부에서 관찰 가능한 이벤트(예: 자산 이체)와 내부 컨트랙트 상태(예: 잔액 기록) 간의 일관성 불일치를 점검하는 일반 목적의 의미론적 테스트 오라클을 사용한다.
  • 트랜잭션 시퀀스, 가스 한도, 패시브 함수, 그리고 동적 컨트랙트 상태를 대상으로 하는 맞춤형 변형 연산자를 갖춘 회색 상자 패처 엔진을 사용한다.
  • 데이터 플로우, 제어 플로우, 그리고 런타임 컨트랙트 상태 분석에서 유도된 피드백 메커니즘을 통해 변형 과정을 깊이 있는 코드 커버리지 및 취약점 노출 방향으로 이끈다.
  • 프레임워크는 실제 EVM 환경에서 트랜잭션을 실행하고 의미론적 오라클에 따라 결과를 검증함으로써 각 탐지된 취약점이 실제로 공격 가능한지 확인한다.
  • 런타임 모니터링을 활용해 재진입, 예외 순서 오류, 정수 오버플로우/언더플로우 등의 취약점을 나타내는 의미적 불일치를 탐지한다.
  • 사전에 정의된 패tern이 필요 없이 다양한 취약점 유형에 일반화되며, 알려지지 않은 공격 벡터의 탐지가 가능하다.

실험 결과

연구 질문

  • RQ1일반 목적의 의미론적 테스트 오라클은 사전 정의된 문법 패턴에 의존하지 않고도 광범위한 스마트 컨트랙트 취약점을 효과적으로 탐지할 수 있는가?
  • RQ2단일 트랜잭션 변형과 비교해 트랜잭션 시퀀스를 변형하는 것이 공격 가능한 취약점 탐지에 얼마나 기여하는가?
  • RQ3기존의 규칙 기반 및 정적 분석 기법과 비교해 ContraMaster는 가짜 경고를 얼마나 효과적으로 줄이는가?
  • RQ4컨트랙트 실행 시퀀스의 동적이고 오라클 기반 변형을 통해 어떤 새로운 취약점 패턴을 발견할 수 있는가?
  • RQ5프레임워크는 실세계에서의 공격를 고정밀도로 재현할 수 있는 생산 환경 유사 환경에서 작동할 수 있는가?

주요 결과

  • ContraMaster는 218개의 취약한 스마트 컨트랙트를 대상으로 평가하여 28개의 공격 가능한 취약점을 탐지했으며, 이는 공격 스크립트로 확인되고 재현 가능한 것으로 입증되었다.
  • 218개의 보고된 취약점 중 87.16% (189개)는 공격 가능하지 않아, 기존의 규칙 기반 도구들이 높은 가짜 경고 비율을 보임을 시사한다.
  • ContraMaster는 모든 테스트 케이스에서 참으로 0개의 가짜 경고를 기록했으며, ContractFuzzer 및 Zeus와 같은 최첨단 도구들을 능가하는 성능을 보였다.
  • 프레임워크는 기존의 취약점 패턴에 포함되지 않은 26개의 알려지지 않은 취약점을 발견했으며, 이 중에는 세 가지의 새로운 유형의 공격도 포함되어 있었다.
  • 의미론적 테스트 오라클은 외부 이벤트와 내부 컨트랙트 상태 간의 의미적 불일치를 탐지함으로써 공격 가능한 결함을 성공적으로 식별했다.
  • 트랜잭션 시퀀스와 컨트랙트 상태를 대상으로 한 맞춤형 변형 연산자가 기존 패처 기법보다 공격 생성의 효율성을 크게 향상시켰다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.