Skip to main content
QUICK REVIEW

[논문 리뷰] Vandal: A Scalable Security Analysis Framework for Smart Contracts

Lexi Brent, Anton Jurisevic|arXiv (Cornell University)|2018. 09. 11.
Security and Verification in Computing참고 문헌 11인용 수 123
한 줄 요약

Vandal은 Ethereum 바이트코드를 로직 관계로 변환하고 선언형 Soufflé 분석을 사용하여 스마트 계약 취약점을 탐지하며, 대규모 연구에서 높은 커버리지와 빠른 속도를 달성합니다.

ABSTRACT

The rise of modern blockchains has facilitated the emergence of smart contracts: autonomous programs that live and run on the blockchain. Smart contracts have seen a rapid climb to prominence, with applications predicted in law, business, commerce, and governance. Smart contracts are commonly written in a high-level language such as Ethereum's Solidity, and translated to compact low-level bytecode for deployment on the blockchain. Once deployed, the bytecode is autonomously executed, usually by a %Turing-complete virtual machine. As with all programs, smart contracts can be highly vulnerable to malicious attacks due to deficient programming methodologies, languages, and toolchains, including buggy compilers. At the same time, smart contracts are also high-value targets, often commanding large amounts of cryptocurrency. Hence, developers and auditors need security frameworks capable of analysing low-level bytecode to detect potential security vulnerabilities. In this paper, we present Vandal: a security analysis framework for Ethereum smart contracts. Vandal consists of an analysis pipeline that converts low-level Ethereum Virtual Machine (EVM) bytecode to semantic logic relations. Users of the framework can express security analyses in a declarative fashion: a security analysis is expressed in a logic specification written in the \souffle language. We conduct a large-scale empirical study for a set of common smart contract security vulnerabilities, and show the effectiveness and efficiency of Vandal. Vandal is both fast and robust, successfully analysing over 95\% of all 141k unique contracts with an average runtime of 4.15 seconds; outperforming the current state of the art tools---Oyente, EthIR, Mythril, and Rattle---under equivalent conditions.

연구 동기 및 목표

  • 높은 가치 대상과 복잡한 도구 체인으로 인해 스마트 계약의 강력한 보안 분석의 필요성을 촉진한다.
  • 선언적이고 로지크 주도형 접근 방식을 통해 저수준 EVM 바이트코드를 분석하는 프레임워크를 제안한다.
  • 일반적인 취약점 분석을 Soufflé 로직 명세로 표현하는 방법을 입증한다.
  • 대규모 계약 말뭉치에 걸친 실험적 평가를 통해 안정성과 효율성을 평가한다.

제안 방법

  • EVM 바이트코드를 로직 관계로 변환하는 분석 파이프라인과 Soufflé로 표현된 보안 분석 라이브러리의 두 부분으로 구성된 Vandal 아키텍처를 소개한다.
  • 스크래퍼가 바이트코드를 검색하고, 디스어셈블러가 어휘를 제공하며, 디컴파일러가 레지스터 전달 언어를 생성하고, Extractor가 로직 관계를 출력하는 엔드-투-엔드 파이프라인을 구축한다.
  • 제어 흐름을 기호 수행, 데이터 흐름 분석 및 노드 분할을 통해 점진적으로 재구성하는 디컴파일 기술을 사용해 점프 대상(target)을 해결한다.
  • 취약점 분석을 선언적 로직 명세(Soufflé)로 표현해 분석의 빠른 프로토타이핑과 구성 가능한 분석을 가능하게 한다.
  • 생성된 로직 관계에서 작동하는 효율적인 분석기를 합성하기 위해 Datalog 엔진을 활용한다.
  • 커버리지, 안정성 및 성능을 평가하기 위해 141k개의 고유 계약에 대해 대규모 실증 연구를 수행한다.

실험 결과

연구 질문

  • RQ1Vandal이 EVM 바이트코드를 정밀한 제어 흐름 및 데이터 흐름 표현으로 분석에 적합하게 해체할 수 있는가?
  • RQ2,
  • RQ3,

주요 결과

  • Vandal은 연구에 참여한 141k 계약 중 95% 이상을 역컴파일하고 분석한다.
  • 평균 분석 실행 시간은 계약당 4.15초이다.
  • Vandal은 동일 조건에서 Oyente, EthIR, Mythril, Rattle 등 최신 도구를 능가한다.
  • 점검되지 않은 전송, 재진입, 미설정 잔액, 파괴 가능한 계약, 출처(origin) 취약점 등 보안 분석이 구현되어 있다.
  • 프레임워크는 모듈식의 선언적 접근으로 분석의 빠른 프로토타이핑과 구성을 가능하게 한다.
  • 파이프라인은 Soufflé가 분석을 효율적으로 실행하는 로직 관계를 생성한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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