中文

SmartReco:通过细粒度跨 DApp 分析检测只读重入漏洞

软件工程 2024-12-10 v2

摘要

尽管去中心化应用日益普及,但它们仍存在各种可被攻击者利用以获取利益的漏洞。在这些漏洞中,只读重入(本文简称 ROR)是一种新兴的漏洞类型,源于 DApp 之间复杂的交互。在过去三年中,ROR 攻击事件已给 DApp 生态系统造成约 3000 万美元的损失。由于缺乏对多个 DApp 之间复杂交互的跟踪与分析,现有的智能合约漏洞检测技术很难检测到只读重入攻击。在本文中,我们提出了 SmartReco,一个通过对智能合约进行静态和动态分析(即模糊测试)的新颖组合来检测 DApp 中只读重入漏洞的新框架。SmartReco 背后的关键设计有三方面:(1) SmartReco 从高度耦合的跨合约交互中识别不同 DApp 之间的边界。(2) SmartReco 执行细粒度的静态分析,以定位可能导致 ROR 的关注点(即入口函数)。(3) SmartReco 利用链上交易数据,并在不同 DApp 之间执行多函数模糊测试(即入口函数和受害函数),以验证 ROR 的存在。我们对一个包含 45 个 ROR 的人工标注数据集进行的评估表明,SmartReco 的准确率达到 88.63%,召回率达到 86.36%。此外,SmartReco 从 123 个流行的 DApp 中成功检测出 43 个新的 ROR。受这些 ROR 影响的总资产达到约 52 万美元。

关键词

引用

@article{arxiv.2409.18468,
  title  = {SmartReco: Detecting Read-Only Reentrancy via Fine-Grained Cross-DApp Analysis},
  author = {Jingwen Zhang and Zibin Zheng and Yuhong Nan and Mingxi Ye and Kaiwen Ning and Yu Zhang and Weizhe Zhang},
  journal= {arXiv preprint arXiv:2409.18468},
  year   = {2024}
}

备注

Accepted by ICSE 2025