以太坊智能合约中发现47个0day漏洞

研究人员在以太坊智能合约中发现 47 个 0 day 漏洞 。
【以太坊智能合约中发现47个0day漏洞】智能合约是保存在区块链上的程序,在满足预定义的条件后会自动执行 。可以实现匿名方在没有中心化的可信机构的情况下实现可信的交易和协议的执行 。因为智能合约的升级比较困难,因此智能合约在部署之前进行源码审计,确保部署时没有安全漏洞是非常重要的 。
加利福尼亚大学圣塔芭芭拉分校的研究人员研发了一套智能合约一致性漏洞检测工具—— SAILFISH 。SAILFISH 的工作流程如下所示:
给定智能合约,Sailfish 可以将合约转化为一个依赖图,获取智能合约存储变量和状态变化指令的控制流和数据流关系,然后使用依赖图来识别潜在的安全漏洞 。通过图查询的方式来确定 2 个执行路径之间是否是在同一个存储变量上的 。
SAILFISH 可以在智能合约中发现状态一致性漏洞、重入 ( Reentrancy ) 和交易顺序依赖漏洞 。攻击者利用该漏洞可以修改交易的执行顺序或在一个交易内接管控制流 。研究人员利用该工具在以太坊智能合约中发现了 47 个 0 day 漏洞 。
通过对以太坊平台 Etherscan 中获得的 89853 个智能合约进行测试,Sailfish 成功识别出了 47 个 0 day 漏洞,部分漏洞利用后甚至可以破坏应用特定的元数据 。Sailfish 工具的性能和准确率比 SECURITY、MYTHRIL、OYENTE、SEREUM 、VANDAL 等智能合约分析工具都高 。
相关研究成果将在 2022 年 5 月举行的网络安全顶会 IEEE Symposium on Security and Privacy ( S&P ) 上报告展示 。论文参见:https://arxiv 。org/pdf/2104 。08638 。pdf

    推荐阅读