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

研究人员在以太坊智能合约中发现47个0 day漏洞。

智能合约是保存在区块链上的程序,在满足预定义的条件后会自动执行。可以实现匿名方在没有中心化的可信机构的情况下实现可信的交易和协议的执行。因为智能合约的升级比较困难,因此智能合约在部署之前进行源码审计,确保部署时没有安全漏洞是非常重要的。

加利福尼亚大学圣塔芭芭拉分校的研究人员研发了一套智能合约一致性漏洞检测工具——SAILFISH。SAILFISH的工作流程如下所示:

以太坊智能合约中发现47个0 day漏洞-第1张图片-欧易OKX官网

给定智能合约,Sailfish可以将合约转化为一个依赖图,获取智能合约存储变量和状态变化指令的控制流和数据流关系,然后使用依赖图来识别潜在的安全漏洞。通过图查询的方式来确定2个执行路径之间是否是在同一个存储变量上的。

SAILFISH可以在智能合约中发现状态一致性漏洞、重入(Reentrancy)和交易顺序依赖漏洞。攻击者利用该漏洞可以修改交易的执行顺序或在一个交易内接管控制流。研究人员利用该工具在以太坊智能合约中发现了47个0 day漏洞。

以太坊智能合约中发现47个0 day漏洞-第2张图片-欧易OKX官网

通过对以太坊平台Etherscan中获得的89853个智能合约进行测试,Sailfish成功识别出了47个0 day漏洞,部分漏洞利用后甚至可以破坏应用特定的元数据。Sailfish工具的性能和准确率比SECURITY、MYTHRIL、OYENTE、SEREUM 、VANDAL等智能合约分析工具都高。

以太坊智能合约中发现47个0 day漏洞-第3张图片-欧易OKX官网

相关研究成果将在2022年5月举行的网络安全顶会IEEE Symposium on Security and Privacy (S&P)上报告展示。论文参见:https://arxiv.org/pdf/2104.08638.pdf

参考及来源:https://thehackernews.com/2022/01/sailfish-system-to-find-state.html


来源:嘶吼RoarTalk