Skip to main content
QUICK REVIEW

[논문 리뷰] SmartBugs: A Framework to Analyze Solidity Smart Contracts

João F. Ferreira, Pedro E. D. Cruz|arXiv (Cornell University)|2020. 07. 08.
Blockchain Technology Applications and Security참고 문헌 8인용 수 29
한 줄 요약

SmartBugs는 솔리디티 스마트 계약에서 정적 분석 도구의 실행 및 비교를 표준화하는 오픈소스이자 확장 가능한 프레임워크입니다. 사전 설정된 도구, 촉탁된 데이터셋, 도커 기반 실행을 제공함으로써 재현 가능한 평가를 가능하게 하며, SmartCheck를 SmartBugs 내부에서 확장함으로써 악성 랜덤니스, 시간 조작, 접근 제어 결함의 탐지율을 11%에서 24%로 향상시켰습니다.

ABSTRACT

Over the last few years, there has been substantial research on automated analysis, testing, and debugging of Ethereum smart contracts. However, it is not trivial to compare and reproduce that research. To address this, we present SmartBugs, an extensible and easy-to-use execution framework that simplifies the execution of analysis tools on smart contracts written in Solidity, the primary language used in Ethereum. SmartBugs is currently distributed with support for 10 tools and two datasets of Solidity contracts. The first dataset can be used to evaluate the precision of analysis tools, as it contains 143 annotated vulnerable contracts with 208 tagged vulnerabilities. The second dataset contains 47,518 unique contracts collected through Etherscan. We discuss how SmartBugs supported the largest experimental setup to date both in the number of tools and in execution time. Moreover, we show how it enables easy integration and comparison of analysis tools by presenting a new extension to the tool SmartCheck that improves substantially the detection of vulnerabilities related to the DASP10 categories Bad Randomness, Time Manipulation, and Access Control (identified vulnerabilities increased from 11% to 24%).

연구 동기 및 목표

  • 일관되지 않은 데이터셋과 도구 설정으로 인해 스마트 계약 분석 연구에서 재현성이 떨어지는 문제를 해결하기 위해.
  • 솔리디티 계약에서 정적 분석 도구의 실행 및 비교를 단순화하기 위한 통합적이고 확장 가능한 프레임워크를 제공하기 위해.
  • 표준화되고 주석 처리된 데이터셋을 사용하여 연구자와 실무자가 도구를 일관되게 평가할 수 있도록 하기 위해.
  • 모듈형 구성 및 도커 기반 배포를 통해 새로운 도구와 확장을 쉽게 통합할 수 있도록 하기 위해.
  • 다양한 도구와 계약 세트를 통해 실행을 단순화함으로써 대규모 실증 평가를 지원하기 위해.

제안 방법

  • 명령행 인터페이스, 도구 설정 파일, 도구용 도커 이미지, 전용 데이터셋을 포함한 모듈형 프레임워크 설계.
  • 솔리디티의 후행 호환성을 유지하기 위해 버전별로 구성된 10개의 기존 정적 분석 도구(예: Slither, Mythril, SmartCheck) 통합.
  • 두 가지 데이터셋 제공: 143개의 취약 계약과 208개의 태그된 취약성(10개 카테고리)을 포함한 촉탁된 세트, Etherscan에서 수집한 47,518개의 계약을 포함한 더 큰 세트.
  • YAML 기반 설정 파일을 사용하여 도구 동작을 정의함. 이는 기본 및 고전적 솔리디티 버전 지원을 포함.
  • Docker 컨테이너를 사용하여 데이터셋 전반에 걸쳐 도구 실행을 조율하는 SmartBugs 런처 구현.
  • 악성 랜덤니스, 시간 조작, 보호되지 않은 접근 제어 패턴을 탐지하기 위한 새로운 XPath 기반 규칙을 SmartCheck에 확장.

실험 결과

연구 질문

  • RQ1표준화된 프레임워크가 스마트 계약 분석 연구의 재현성 향상에 기여할 수 있는가?
  • RQ2SmartBugs는 정적 분석 도구의 대규모이고 다도구 간 평가를 얼마나 효과적으로 지원할 수 있는가?
  • RQ3SmartBugs 내에서 도구 통합 및 확장을 통해 취약성 탐지 정밀도는 어느 정도 향상될 수 있는가?
  • RQ4기존 도구인 SmartCheck에 새로운 규칙를 효과적으로 추가하여 특정 취약성 카테고리의 탐지 능력을 향상시킬 수 있는가?
  • RQ5공유된 주석 처리된 데이터셋을 사용할 때, 확장된 도구의 성능과 정확도는 원본 버전과 비교해 어떻게 되는가?

주요 결과

  • SmartBugs는 지금까지 가장 큰 실험 환경을 지원하여 10개의 도구와 여러 계약 세트에 걸쳐 광범위한 실행 시간을 확보했다.
  • SmartBugs 내부에서 SmartCheck를 확장함으로써 DASP10 카테고리의 악성 랜덤니스, 시간 조작, 접근 제어 결함 탐지율이 11%에서 24%로 상승했다.
  • 촉탁된 115개의 취약 계약 세트에서 SmartCheck 확장 버전은 원본 SmartCheck(13개) 대비 총 28개의 추가 취약성을 탐지했다.
  • 악성 랜덤니스를 위한 새로운 규칙는 31개의 취약성 중 10개(32%)를 탐지했으며, 원본 도구의 0% 탐지율 대비 뚜렷한 향상이 있었다.
  • 시간 조작 카테고리의 탐지율은 확장된 규칙로 인해 1/5(20%)에서 4/5(80%)로 상승했다.
  • 접근 제어 카테고리의 탐지율은 보호되지 않은 selfdestruct 및 소유권 이관 패턴에 대한 규칙를 추가함으로써 2/19(11%)에서 4/19(21%)로 향상되었다.

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

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

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

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