中文

DAppSCAN:面向 DApp 项目中智能合约弱点的规模化数据集构建

软件工程 2024-09-20 v3

摘要

智能合约弱点分类注册表(SWC Registry)是一份广受认可的、特定于以太坊平台的智能合约弱点清单。尽管 SWC Registry 自 2020 年起未更新新条目,但用于检测 SWC 所列弱点的智能合约分析工具的持续发展凸显了它们在领域内的持久重要性。然而,由于缺乏大规模、无偏的真实世界数据集,这些工具的评估一直颇具挑战。为解决这个问题,我们旨在从真实世界 DApp 项目构建大规模 SWC 弱点数据集。我们招募了 22 名参与者,耗费 44 人月分析了来自 29 个安全团队的 1,199 份开源审计报告。总计我们识别出 9,154 个弱点,并开发了两个不同的数据集,即 DAPPSCAN-SOURCE 与 DAPPSCAN-BYTECODE。DAPPSCAN-SOURCE 数据集包含 39,904 个 Solidity 文件,具有来自 682 个真实世界 DApp 项目的 1,618 个 SWC 弱点。但该数据集中的 Solidity 文件可能无法直接编译以作进一步分析。为便于自动化分析,我们开发了一款能自动识别 DApp 项目内依赖关系并补全缺失公共库的工具。利用该工具,我们创建了 DAPPSCAN-BYTECODE 数据集,其由 6,665 个已编译智能合约组成,含 888 个 SWC 弱点。基于 DAPPSCAN-BYTECODE,我们开展了一项实证研究以评估最先进智能合约弱点检测工具的性能。评估结果显示这些工具在有效性与成功检测率上均表现欠佳,表明未来开发应优先真实世界数据集而非简易玩具合约。

关键词

引用

@article{arxiv.2305.08456,
  title  = {DAppSCAN: Building Large-Scale Datasets for Smart Contract Weaknesses in DApp Projects},
  author = {Zibin Zheng and Jianzhong Su and Jiachi Chen and David Lo and Zhijie Zhong and Mingxi Ye},
  journal= {arXiv preprint arXiv:2305.08456},
  year   = {2024}
}

备注

Published in IEEE Transactions on Software Engineering ( Volume: 50, Issue: 6, June 2024). Dataset available at https://github.com/InPlusLab/DAppSCAN