一句话:系统研究516个真实智能合约漏洞,归纳现有工具无法检测的可利用缺陷并提出修复与审计启示。
智能合约中的可利用漏洞已造成重大资金损失,尽管漏洞发现技术不断进步,真实攻击仍持续发生。本文系统分析了2021—2022年间516个独特的真实世界智能合约漏洞,研究其中哪些可被恶意用户利用且无法被现有分析工具检测。作者将现有工具无法检测的漏洞归为七类,并研究其根因、分布、审计难度、后果与修复策略;在可能的情况下,为每类漏洞抽象出bug模型,以辅助发现其他合约中的相似漏洞并推动未来自动化。作者将研究发现用于真实合约审计,已识别15个关键零日可利用漏洞,获得102,660美元漏洞赏金,这些漏洞若被利用可能造成最高2252万美元损失。
Exploitable bugs in smart contracts have caused significant monetary loss. Despite the substantial advances in smart contract bug finding, exploitable bugs and real-world attacks are still trending. In this paper we systematically investigate 516 unique real-world smart contract vulnerabilities in years 2021–2022, and study how many can be exploited by malicious users and cannot be detected by existing analysis tools. We further categorize the bugs that cannot be detected by existing tools into seven types and study their root causes, distributions, difficulties to audit, consequences, and repair strategies. For each type, we abstract them to a bug model (if possible), facilitating finding similar bugs in other contracts and future automation. We leverage the findings in auditing real world smart contracts, and so far we have been rewarded with $102,660 bug bounties for identifying 15 critical zero-day exploitable bugs, which could have caused up to $22.52 millions monetary loss if exploited.