[논문 리뷰] DAppSCAN: Building Large-Scale Datasets for Smart Contract Weaknesses in DApp Projects
이 논문은 682개의 탈중앙화 애플리케이션(DApp)에서 추출한 1,618개의 SWC 등재된 스마트 계약 취약성으로 구성된 대규모 실세계 데이터셋인 DAppSCAN을 소개한다. 44인월에 걸쳐 분석한 1,199건의 감사 보고서를 바탕으로 저자들은 두 가지 데이터셋—DAppSCAN-Source(39,904개의 솔리디티 파일)와 DAppSCAN-Bytecode(6,665개의 컴파일된 계약)를 구축하여 스마트 계약 분석 도구의 현실적인 평가를 가능하게 하였으며, 기존 도구가 실제 DApp 코드에서 빈약하게 작동하는 것으로 드러났다.
The Smart Contract Weakness Classification Registry (SWC Registry) is a widely recognized list of smart contract weaknesses specific to the Ethereum platform. Despite the SWC Registry not being updated with new entries since 2020, the sustained development of smart contract analysis tools for detecting SWC-listed weaknesses highlights their ongoing significance in the field. However, evaluating these tools has proven challenging due to the absence of a large, unbiased, real-world dataset. To address this problem, we aim to build a large-scale SWC weakness dataset from real-world DApp projects. We recruited 22 participants and spent 44 person-months analyzing 1,199 open-source audit reports from 29 security teams. In total, we identified 9,154 weaknesses and developed two distinct datasets, i.e., DAPPSCAN-SOURCE and DAPPSCAN-BYTECODE. The DAPPSCAN-SOURCE dataset comprises 39,904 Solidity files, featuring 1,618 SWC weaknesses sourced from 682 real-world DApp projects. However, the Solidity files in this dataset may not be directly compilable for further analysis. To facilitate automated analysis, we developed a tool capable of automatically identifying dependency relationships within DApp projects and completing missing public libraries. Using this tool, we created DAPPSCAN-BYTECODE dataset, which consists of 6,665 compiled smart contract with 888 SWC weaknesses. Based on DAPPSCAN-BYTECODE, we conducted an empirical study to evaluate the performance of state-of-the-art smart contract weakness detection tools. The evaluation results revealed sub-par performance for these tools in terms of both effectiveness and success detection rate, indicating that future development should prioritize real-world datasets over simplistic toy contracts.
연구 동기 및 목표
- 스마트 계약 취약성 탐지 도구 평가를 위한 대규모, 편향 없고 실세계 기반의 데이터셋 부족 문제를 해결하기 위해.
- 작은, 합성적이거나 장난스러운 계약에 의존하는 기존 평가 방법의 한계를 극복하기 위해.
- 29개 보안 팀의 감사 보고서를 활용해 실제 DApp 프로젝트에서 수작업으로 총정리한 스마트 계약 취약성의 포괄적인 데이터셋을 구축하기 위해.
- DApp 프로젝트를 실행 가능한 바이트코드로 자동으로 종속성 해결 및 컴파일할 수 있는 도구를 개발하기 위해.
- 최신 기술 도구들이 실제 DApp 코드에서 얼마나 잘 작동하는지 평가하여 현재 탐지 능력의 격차를 드러내기 위해.
제안 방법
- 44인월에 걸쳐 29개 보안 팀의 1,199건의 오픈소스 감사 보고서를 분석하기 위해 22명의 연구원(박사 7명, 석사 15명)을 모집하였다.
- 총 9,154개의 취약성이 확인되었으며, 그 중 1,618개는 SWC 레지스트리 카테고리에 매핑되었으며, 정확한 소스 코드 위치와 설명이 기록되었다.
- DAppSCAN-Source: 실제 682개의 DApp 프로젝트에서 유래한 39,904개의 솔리디티 파일로, 원본 코드 구조와 취약성 맥락을 유지하였다.
- DApp 프로젝트의 누락된 공개 라이브러리를 자동으로 탐지하고 해결할 수 있는 종속성 해결 도구를 구축하여 컴파일을 가능하게 하였다.
- DAppSCAN-Bytecode: 888개의 SWC 취약성이 포함된 6,665개의 컴파일된 스마트 계약으로, 바이트코드 수준의 분석에 적합하다.
- DAppSCAN-Bytecode를 대상으로 최신 기술 도구 6종에 대한 실증적 평가를 수행하여 탐지 효과성과 성공률을 평가하였다.
실험 결과
연구 질문
- RQ1실세계 DApp 코드에서 평가할 경우 현재 스마트 계약 분석 도구들이 SWC 등재 취약성을 얼마나 효과적으로 탐지하는가?
- RQ2실세계 DApp 프로젝트에서 SWC 취약성의 분포와 빈도는 어떻게 되며, 이는 장난스러운 계약과 어떻게 비교되는가?
- RQ3기존 도구들이 실 DApp 배포 환경에서의 이용 가능한 취약성을 얼마나 잘 탐지하는가? 특히 어떤 종류의 취약성이 자주 간과되는가?
- RQ4종속성 해결 및 컴파일 완전성은 DApp 수준의 프로젝트에서 자동화된 취약성 탐지의 신뢰성에 어떤 영향을 미치는가?
- RQ5단일 계약이 아닌 복잡한 실세계 DApp 아키텍처에 적용했을 때 현재 도구들의 주요 한계는 무엇인가?
주요 결과
- DAppSCAN-Source 데이터셋은 682개의 실세계 DApp 프로젝트에서 유래한 39,904개의 솔리디티 파일을 포함하며, 평균적으로 각 DApp당 58개의 계약 파일과 7,885줄의 코드를 포함한다.
- 데이터셋 내 DApp의 66.3%는 0.6 이상의 솔리디티 컴파일러 버전을 사용하여 현대적인 개발 관행을 반영하고 있다.
- DAppSCAN-Bytecode 데이터셋은 6,665개의 컴파일된 스마트 계약과 888개의 SWC 취약성을 포함하여 실행 가능한 분석이 가능하다.
- 실증적 평가 결과, 최신 기술 도구들이 실제 DApp 코드에서 효과성과 성공 탐지율 모두에서 열악한 성능을 보였다.
- 데이터셋 내 총 23,327개의 취약한 계약 중 오직 463개(1.98%)만 실제 공격에 사용된 것으로 확인되어, 학술 도구에서의 고율의 허위 경고 또는 이용 불가능한 문제들이 존재함을 시사한다.
- 기존 도구들은 실세계에서 실제 공격 가능한 취약성—특히 논리 버그와 프로토콜 계층 결함—을 상당 부분 탐지하지 못하고 있어, 현재 탐지 능력에 심각한 격차가 있음을 드러냈다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.