本次事件也提醒了我们漏洞往往就在一些我们想不到的地方。

作者:Beosin

封面:Photo by Jeremy Bishop on Unsplash

北京时间 2022 年 10 月 7 日,据 Beosin 鹰眼-区块链安全态势感知平台舆情监测显示,BNB Chain 跨链桥 “代币中心”(Token Hub)遭遇黑客攻击,由于涉及的金额较为庞大,并且涉及多个链之间的跨链,根据 Beosin 安全团队的整理与追踪,目前整理出 7.1 亿美元是币安链上未涉及跨链部分的被盗资产,加上跨链部分的被盗资产,我们初步估计涉及金额在 8.5 亿左右。

这场震动整个行业的 “攻击” 事件因何发生,关于本次事件,Beosin 安全团队第一时间进行了分析。

BNB Chain 如何被黑客盯上

北京时间 10 月 7 日 6 点左右,BNB Chain 发推表示,由于活动异常,目前正在维护中,暂时暂停所有通过 BNB 链的存取款,直到有进一步的更新。

BNB Chain 在另一推文表示,被提取资金约 7000 万至 8000 万美元,已冻结 700 万美元。

图片

7 点 41 分,币安 CEO 赵长鹏发推表示,在 BNB Chain 跨链桥 “代币中心”(Token Hub)上的一个漏洞导致了额外的 BNB,已要求所有验证者暂停 BNB Chain,这个问题现在得到了控制,资金是安全的,将相应地提供进一步的更新。


这一次,黑客再次盯上跨链桥,因为跨链桥的复杂性以及累计的巨额财产,因此跨链桥往往成为黑客攻击的首要目标,关于本次攻击事件的详细经过,我们接着往下看。

攻击时间以及黑客手法解析

10 月 7 号零点 55 分,黑客于区块高度 21955968 通过调用合约缴纳 100 BNB 注册成为 Relayer。

凌晨两点半左右开始,黑客从 BNB Chain 的 “代币中心”(TokenHub)系统合约分两次(2:26、4:43)共获取了 200 万枚 BNB。并将其中 90 万枚 BNB 在 BNB Chain 上借贷协议 Venus 进行抵押,借出 6250 万 BUSD、5000 万 USDT、3500 万 USDC。 

Beosin 安全团队现将手法解析如下:

币安跨链桥 BSC Token Hub 在进行跨链交易验证时,使用了一个特殊的预编译合约用于验证 IAVL 树。而该实现方式存在漏洞,该漏洞可能允许攻击者伪造任意消息。

1)攻击者先选取一个提交成功的区块的哈希值(指定块:110217401)

2)然后构造一个攻击载荷,作为验证 IAVL 树上的叶子节点

3)在 IAVL 树上添加一个任意的新叶子节点

4)同时,添加一个空白内部节点以满足实现证明

5)调整第 3 步中添加的叶子节点,使得计算的根哈希等于第 1 步中选取的提交成功的正确根哈希

6)最终构造出该特定区块(110217401)的提款证明

当然,有一些细节还要进一步推敲,Beosin 安全团队正在进行深入研究,有结果将第一时间与大家分享。

Beosin 安全团队通过链必追-虚拟货币案件智能研判平台对被盗资金进行追踪分析,发现总计有 1 亿 4357 万美元的被盗资金通过跨链进行转移(含借贷)。被盗资金中有 7739 万美元的资金通过各种跨链转入了以太坊,5896 万美元的资金留存在 FTM 链中(含各种 gUSDT),400 万美元的资金在 Arbitrum 链中,172 万美元的资金在 Avalanche 链中,40 万美元的资金在 Polygon 和 110 万美元在 Optimism。

链必追-虚拟货币案件智能研判平台智能研判模块
链必追-虚拟货币案件智能研判平台地址分析模块
链必追-虚拟货币案件智能研判平台资金分析模块
Beosin 安全团队根据链必追平台进行的资金统计

恢复出块的 BNB Chian 还安全吗?

10 月 7 日 9 点半左右,BNB Chain 官方在社交媒体上发文表示,已要求 BNB Chain 节点验证者在未来几个小时内与其联系,以便可以计划进行节点升级。

图片

到了下午 13 点,BNB Chain 发推称,已发布 BSC v1.1.15 版本,BSC 验证者正在协调,以寻求在 1 小时内恢复 BNB 智能链(BSC)。新版本将阻止黑客账户相关活动。BNB 信标链和 BNB 智能链之间的原生跨链通信已禁用。官方要求所有节点运营者尝试升级至上述版本。验证者和社区将讨论进一步升级以完全解决此问题。

下午三点左右,BNB Chain 发推称,BNB 智能链(BSC)20 多分钟前开始良好运行。验证者正在确认他们的状态,社区基础设施也在升级。此外,BscScan 数据显示,BNB Chain 网络已恢复出块。


Beosin 安全团队监测显示,重启之后,当前 BSC 节点程序通过黑名单与暂停 iavlMerkleProofValidate 功能的方式阻止被盗资金流动与潜在的攻击。

图片

写在最后,关于跨链桥安全的讨论

由于区块链经过了一段不短的发展时间,无论是区块链项目方自己还是区块链安全公司对于安全的重视程度都高于了以往,但是跨链桥这种代码复杂且含有链下部分的项目非常容易遭受攻击。

跨链桥通常都是一些大项目,代码量较多,多个环节的组合下就容易出现一些组合型漏洞,然而这些漏洞又是较为隐蔽的,容易被黑客所利用。跨链桥还有一个高危点就是链下安全,由于链下代码一般与链上代码分开审计,并且通常由项目方自己来保证安全,导致很多漏洞被忽视。

图片

以往的跨链桥攻击通过线下漏洞或者是私钥泄露等方式的攻击较多,本次攻击通过的构造特定的根哈希来构造出特定区块的提款证明,从而使攻击成立,攻击难度比较大,并且数额较以往来说也比较高。本次事件也提醒了我们漏洞往往就在一些我们想不到的地方,因此只能不断去完善项目安全,比别有用心者更早的去发现这些问题所在,才能够更加维护我们的区块链生态安全。

免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。