SoMo:识别以太坊智能合约中不安全函数修饰符的创新工具
Web3安全服务提供商MetaTrust Labs最近完成的一项研究发现了以太坊智能合约中自定义函数修饰符存在的重大安全风险。在题为“Beyond 'Protected' and 'Private': An Empirical Security Analysis of Custom Function Modifiers in Smart Contracts”的 ISSTA'23 论文中,研究团队检查了超过62,000个智能合约,发现有411个包含可以绕过修饰符的易受攻击合约。为了解决这些问题,MetaTrust已将新开发的工具 SoMo 集成到其知名的智能合约安全扫描服务 MetaScan中。
这项研究的主要目的是识别不安全的修饰符,即“可绕过修饰符”,这些修饰符可以在一个或多个未受保护的智能合约函数中绕过。例如,以下“onlyOwner”修饰符可以通过调用公共函数 Mining24()来绕过。因此,攻击者可以利用受onlyOwner修饰符保护的敏感函数。
为了识别这些漏洞,研究人员开发了一种新的工具SoMo,它构建修饰符依赖图(MDG)以涵盖所有与修饰符相关的控制/数据流,在 MDG 上生成符号路径约束,并迭代测试每个候选入口函数。结果表明,SoMo 在分析大型数据集中的62464个合约时的精度达91.2%。
这项研究还揭示了修饰符在现实场景中的主要用途,包括访问控制、与金融相关的、合约状态和杂项检查,如下表所示。这些发现表明,开发人员常常利用修饰符进行安全敏感操作,但它们可能未得到很好的保护。
总体而言,要确保区块链技术安全可靠,还有许多工作要做。通过使用更好的编程技术和测试工具,我们可以帮助防止对智能合约的攻击,并保护我们的数字交易安全。随着更多企业和组织采用区块链技术进行各种应用,确保智能合约安全可靠至关重要。这项研究是实现这一目标的重要一步。
尽管区块链技术有望彻底改变许多行业,但安全性应该始终是最优先考虑的因素。通过使用像MetaScan这样的工具和遵循安全编程的最佳实践,我们可以帮助确保区块链上我们的数字交易安全。