以太坊是全球使用最广泛的区块链网络之一。CoinMarketCap的最新调查结果显示,以太坊的开发者总数最高,占加密货币行业所有开发者的16%。
不幸的是,以太坊网络也变得极易受到安全漏洞的攻击。区块链安全公司Beosin在其《全球Web3安全报告》中发现,加密货币投资者在今年第三季度因地毯拉拽而损失28296万美元。报告还指出,在同一时期,网络钓鱼计划产生了6615万美元的收益。根据Beosin的调查结果,以太坊区块链总体上遭受的损失和事件最多。
更新了审查智能合约代码的框架
企业以太坊联盟(EEA)的技术项目总监Chaals Neville告诉Cryptonews,以太坊内部存在影响生态系统安全的已知问题。Neville说:“最明显的问题是,Solidity编译器——它输出字节码和部署智能合约所需的其他工件——存在漏洞。随着编译器的发展,旧的漏洞得到了修复,但也会产生新的漏洞。”。
为了应对这一挑战和其他挑战,欧洲经济区于2020年11月成立了“EthTrust安全级别工作组”。2022年8月,该工作组发布了《EthTrust安全等级规范v1》。此后,该规范成为开发人员的框架,组织和客户利用和审查用以太坊的主要编程语言Solidity编写的智能合约代码。
然而,随着以太坊网络的不断发展,Neville指出,EthTrust安全级别规范需要更新,以反映正在进行的和新的安全发展。他说:“例如,v1规范涵盖了大约2022年的漏洞,但在我们发布v1后发现了新的漏洞。”。
考虑到这一点,Neville分享说,今天欧洲经济区宣布发布其EthTrust安全级别规范2.0版。Neville指出,EthTrust安全级别规范v2解决了Solidity编译器中新发现的错误、舍入错误的处理、只读重入攻击的更有力处理等问题。
更新至关重要,因为以太坊生态系统过去曾因这些特定问题而成为安全漏洞的受害者。例如,OpenZeppelin的解决方案架构主管Michael Lewellen告诉Cryptonews,“DAO”黑客攻击是由于可重入性而发生的。Lewellen说:“DAO黑客攻击是2016年发生在以太坊上的第一次大黑客攻击,让每个人都更多地考虑安全性。这是一个经典的可重入案例。”。DAO黑客攻击导致ETH损失364万美元。
Neville解释说,当开发人员启动一个智能合约,然后请求程序在运行代码的过程中做一些不同的事情时,就会发生重入。他说:
“从本质上讲,这意味着一个程序运行代码已经进行到一半,但随后又被要求执行其他操作。因此,这两个请求可能会混淆。然后,程序黑客可以利用这种混淆来窃取人们的钱或更改提示。”
行业标准会被广泛采用吗?
意识到此类事件背后的严重性,Lewellen指出,OpenZeppelin利用EthTrust Security Levels v1框架来防止此类安全漏洞的发生。“我们使用这个框架作为我们许多客户的审计前评估。这让客户知道我们在审计过程中正在检查某些实例。”
这一行业标准似乎很有帮助,因为一位匿名的OpenZeppelin客户向Cryptonews透露,EthTrust是该公司过去所缺乏的。消息人士说:
“我们之前的安全审计失败了,因为我们没有明确的指导来说明我们遗漏了什么安全要求。在审查了EthTrust要求并在我们的代码库中实施后,我们对下一次审计更有信心。”
然而Neville评论道,虽然对EthTrust标准v1的反馈是积极的,但让开发人员和组织知道这样一个开放的标准的存在仍然是一个挑战。他还指出,该框架最适合更新的以太坊项目。他说:
“Uniswap、Aave和其他项目可能会查看这些规范并发现它们很有用,但在大多数情况下,这对他们来说是常识。刚刚在以太坊上开发并投入生产的项目可能会发现这些规范很有价值。”
然而,问题仍然存在,这样的行业标准是否有助于防止以太坊的安全漏洞继续发展。BankSocial是一家利用区块链技术的金融服务公司,其创始人兼首席执行官John Wingate告诉Cryptonews,行业标准性质的变化是有问题的。他说:“标准总是在变化;语言总是在贬低方法、变量、数据类型和对象类型。”。
考虑到这一点,Neville分享了EthTrust规范的第3版已经在开发中。“我们的出版物间隔大约16个月。我认为12到18个月的修订频率足够高,可以确保我们不会过时。”
尽管如此,Wingate认为,可重复的自动化测试是确保去中心化应用程序遵守可能防止安全漏洞的最佳实践的唯一方法。他说:
“这意味着能够将您的平台设置为进行定期、自动化的代码测试。当已知源代码或编译器有错误时,可以更新自动化工具,然后每个人都可以从扫描漏洞中获益。”