开发者 Kelvin Fichter 详细说明了对 Poly Network Internet 协议的攻击机制,因此黑客从各种加密货币中提取了 6.11 亿美元。
据他介绍,为了在区块链之间移动资产,Poly Network 根据验证者的签名请求确认交易。 攻击者重写了代码以单独验证交易。
Fichter 发现 Poly Network 有一个特权合约 EthCrossChainManager,它有权从不同的链启动消息。
该协议使用 verifyHeaderAndExecuteTx 函数来执行跨链交易。 任何用户都可以调用它。 它验证区块头、签名和交易在区块中的包含的正确性。
该函数还调用目标合约 EthCrossChainData。 据专家称,关键缺陷是所有用户都可以访问此操作。
“这份合约会跟踪一个公钥列表,用于验证来自另一条链的数据。 如果你改变这个列表,黑客就不必破解私钥,”他说。
但是,EthCrossChainData 合约由 EthCrossChainManager 管理。
“通过提交跨链消息,用户可以通过 onlyOwner 验证来欺骗 EthCrossChainManager 调用 EthCrossChainData 合约。 现在,用户只需要创建正确的数据即可运行修改公钥的功能,”分析师解释说。
后来为了强制EthCrossChainManager调用正确的函数,黑客伪造了传入交易数据的前四个字节,即所谓的签名哈希或sighash。
多亏了这一点,黑客不需要泄露私钥。 他刚刚创建了正确的数据,“合约被黑客入侵了”。
“从中学到的最重要的设计教训之一是,如果你有这样的互连中继合约,请确保它们不能用于调用自定义合约。 如果合约需要这种特殊权限,请确保用户无法通过网络间通信调用特殊合约,”Fichter 说。
专家还建议黑客从本体网络发送了一条消息,以增加攻击的追踪难度。
共识协议研究员 Andrei Sobol 在对 ForkLog 的评测中表示,由于智能合约中的错误,对 Poly Network 的攻击成为可能。
“从概念上讲,桥的构建方式与其他网络协议中的桥大致相同。 问题在于实施,”他指出。
在他看来,Fichter 的版本描述了黑客攻击的最合理的原因。
回想一下,Poly Network Internet 协议的黑客攻击发生在 8 月 10 日。 攻击者总共从以太坊、币安智能链和 Polygon 网络中提取了 6.11 亿美元。
8 月 11 日,黑客宣布准备归还被盗资金。项目团队为此创建了三个钱包。
后来,他们收到了 100 万美元的 USDC、110 万美元的 BTCB 代币、200 万美元的 Shiba Inu 和 622,243 美元的 FEI 稳定币。
在 Telegram 上订阅 ForkLog 新闻:ForkLog Feed – 整个新闻提要,ForkLog – 最重要的新闻、信息K线走势图和观点。
发现文中有错误? 选择它并按 CTRL + ENTER
内容搜集自网络,整理者:BTCover,如若侵权请联系站长,会尽快删除。