Skip to main content
QUICK REVIEW

[논문 리뷰] sCompile: Critical Path Identification and Analysis for Smart Contracts

Jialiang Chang, Bo Gao|arXiv (Cornell University)|2018. 08. 02.
Security and Verification in Computing참고 문헌 14인용 수 16
한 줄 요약

sCompile는 제어 흐름 그래프 구축과 기호 실행을 사용하여 암호화폐 거래를 포함하는 이더리움 스마트 계약의 핵심 실행 경로를 식별하고 순위를 매치는 정적 분석 도구이다. 수동 점검을 줄이기 위해 고위험 경로를 우선순위에 따라 정렬하며, 평균 분석 시간이 5초 이내이며 사용자 검토 이전에 15.4%의 가짜 양성률을 기록하면서 224개의 알려지지 않은 취약점을 탐지하였다.

ABSTRACT

Ethereum smart contracts are an innovation built on top of the blockchain technology, which provides a platform for automatically executing contracts in an anonymous, distributed, and trusted way. The problem is magnified by the fact that smart contracts, unlike ordinary programs, cannot be patched easily once deployed. It is important for smart contracts to be checked against potential vulnerabilities. In this work, we propose an alternative approach to automatically identify critical program paths (with multiple function calls including inter-contract function calls) in a smart contract, rank the paths according to their criticalness, discard them if they are infeasible or otherwise present them with user friendly warnings for user inspection. We identify paths which involve monetary transaction as critical paths, and prioritize those which potentially violate important properties. For scalability, symbolic execution techniques are only applied to top ranked critical paths. Our approach has been implemented in a tool called sCompile, which has been applied to 36,099 smart contracts. The experiment results show that sCompile is efficient, i.e., 5 seconds on average for one smart contract. Furthermore, we show that many known vulnerabilities can be captured if user inspects as few as 10 program paths generated by sCompile. Lastly, sCompile discovered 224 unknown vulnerabilities with a false positive rate of 15.4% before user inspection.

연구 동기 및 목표

  • 핵심 실행 경로를 식별하고 우선순위를 매김으로써 스마트 계약 취약점 점검에 필요한 수동 작업을 줄이기 위해.
  • 기호 실행을 상위 순위 경로에만 집중시킴으로써 스마트 계약 분석의 확장성을 향상시키기 위해.
  • 암호화폐 거래를 포함하는 경로와 알려진 보안 속성을 분석함으로써 이전에 알려지지 않은 취약점을 탐지하기 위해.
  • 개발자가 고위험 행동을 이해할 수 있도록 실질적인 경고를 제공함으로써 사용자 우수성을 향상시키기 위해.
  • 정적 분석과 대상 기반 기호 실행을 조합함으로써 정밀도와 효율성의 균형을 이루기 위해.

제안 방법

  • 모든 가능한 실행 경로를 모델링하기 위해 상호 계약 함수 호출을 포함한 제어 흐름 그래프(CFG)를 구축하기 위해.
  • 암호화폐 거래 포함 여부를 기반으로 핵심 경로를 식별하고, 사전 정의된 보안 속성 위반 가능성이 있는 경로를 우선순위에 따라 정렬하기 위해.
  • 속성 위반 심각도와 경로 길이를 고려한 구성 가능한 공식을 사용하여 각 경로에 핵심성 점수를 할당하기 위해.
  • 가능성이 있는 경로에만 기호 실행을 적용하여 실질적인 취약점 여부를 확인하기 위해.
  • 가능성이 있는 고핵심성 경로를 사용자에게 명확한 경고와 함께 제시하여 수동 점검을 위해 제공하기 위해.
  • 분석 확장성을 향상시키기 위해 초기 단계에서 비가능하거나 저우선순위 경로를 정적 분석을 통해 제거하기 위해.

실험 결과

연구 질문

  • RQ1정적 및 기호 실행의 융합적 접근 방식이 스마트 계약 경로의 우선순위를 효과적으로 매기어 수동 점검 노력을 줄이는 데 효과적인가?
  • RQ2암호화폐 거래 포함 여부와 속성 위반 가능성에 기반한 핵심 경로 순위 매기기가 실제 취약점을 탐지하는 데 얼마나 효과적인가?
  • RQ3핵심 취약점은 누락되지 않도록 기호 실행을 상위 순위 경로에만 국한할 수 있는 정도는 어느 정도인가?
  • RQ4알려지지 않은 취약점을 탐지할 때 분석 효율성과 가짜 양성률 사이의 상충 관계는 어떠한가?
  • RQ5경로 힌트가 제공될 경우 sCompile의 경로 분석을 통해 개발자가 취약점을 식별하는 데 성과가 기존과 비교해 얼마나 향상되는가?

주요 결과

  • sCompile는 평균 계약당 5초의 분석 시간으로 36,099개의 스마트 계약을 분석하여 높은 효율성을 입증하였다.
  • 도구는 알려지지 않은 224개의 취약점을 탐지하여 강력한 탐지 능력을 보였다.
  • 사용자 검토 이전의 가짜 양성률이 15.4%였으며, 실용적 사용에 있어 수용 가능한 수준으로 간주되었다.
  • 평균적으로 10개의 핵심 경로만 점검해도 알려진 취약점을 발견하는 데 충분하여 효과적인 우선순위 매기기가 입증되었다.
  • 사용자 연구 결과, sCompile는 특히 경로 힌트가 제공될 경우 취약점 탐지 속도와 정확도를 크게 향상시켰다.
  • 사용자 평가에서 도구는 높은 유용성 점수(평균 5/7)를 기록하여 스마트 계약 보안 분석 분야에서 실용적 가치를 확인하였다.

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

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

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

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