过去六个月内,加密货币黑客从四个DeFi协议中盗取了约3670万美元——而每一个被利用的合约,其源代码都从未在区块链浏览器上公开验证过。其中最大的一起事件发生在1月份,基于以太坊的Truebit被窃取2600万美元,攻击者利用了2018年版本的Solidity代码中的整数溢出漏洞。如今,Chainalysis发出警告:随着廉价AI工具使黑客更容易破解未经验证的字节码,这一攻击向量正变得愈发危险。
2600万美元的Truebit漏洞利用
Truebit的合约自2021年起就部署在以太坊上——既未验证也未审查。攻击者通过发现其债券曲线中的整数溢出缺陷而攻破了该合约。代码编写于Solidity v0.5.3版本,该版本缺乏自动溢出保护。这一版本已非常老旧,但合约从未更新或审计。漏洞赏金计划通常排除未经验证的合约,因此该漏洞多年未被触及。
未受检查的旧版Solidity代码
所有四个被攻破的合约——Truebit、Trusted Volumes、Aperture Finance和Ekubo——有一个共同点:没有人曾在Etherscan或类似工具上验证过它们的源代码。没有验证,链上运行的实际逻辑就是不透明的。攻击者不需要源代码;他们可以直接获取部署的字节码,并使用Dedaub、Heimdall或Panoramix等工具进行反编译。然后,他们应用AI系统来寻找重入攻击、算术错误和访问控制缺陷。这正是四起事件中发生的情况,此外还涉及输入验证错误和身份验证失败。
攻击者转向AI与字节码分析
3670万美元的数额相对于更广泛的DeFi盗窃领域来说并不大——Chainalysis估计同期总损失超过10亿美元。但令该公司担忧的是其手段。自动化分析工具对攻击者来说正变得越来越便宜和易得。Chainalysis警告称,随着更多黑客学会从源代码审计转向借助AI进行字节码扫描,未经验证合约的风险可能会加速扩大。
Chainalysis:验证必须成为基线
该公司建议,源代码验证应成为任何持有用户资产的合约的基线要求。审计和漏洞赏金还应覆盖代理结构背后的实现合约,而不仅仅是代理本身。否则,像Truebit这样的合约可能会暴露多年。如今悬在行业头上的问题是:还有多少未经验证的合约存在于链上,持有用户资金,等待被反编译?




