10月7日BNB Chain的跨链桥(BSC Token Hub)遭到黑客攻击, 有价值约5亿美金的BNB 被黑。由于涉及的金额较为庞大,并且涉及多个链之间的跨链,目前总损失金额仍未确定。

那么,这起震动整个加密行业的重大安全事故是如何发生的呢下文将为你一一进行分析。

为何黑客会盯上BNB Chain

北京时间10 月7 日早上6 点,BNB Chain 发推表示,由于跨链桥BSC Token Hub 遭入侵,导致有额外的币安币(BNB)产生,因此币安智能链(BSC)将停机一段时间。同时币安链将暂时暂停所有通过BNB 链的存取款,直到有进一步的更新。

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

币安(Binance)创办人赵长鹏(CZ)也出面表示,由于 BNB Chain 跨链桥上的一个漏洞导致了额外的BNB 币的产生,已要求所有验证者暂停BNB Chain,这个问题现在得到了控制。同时,他强调用户的资金是安全的,将会相应地提供进一步的更新。

由于跨链桥的复杂性以及累计的巨额财产,往往容易成为黑客攻击的首要目标。

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

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

而这次黑客盯上了币安智能链(BSC)上的跨链桥(BSC Token Hub)。

BNB Chain 被黑全过程

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

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

Beosin 安全团队对其手法进行了详细的解析:

币安跨链桥BSC Token Hub 在进行跨链交易验证时,使用了一个特殊的预编译合约用于验证IAVL 树。而该实现方式存在漏洞,该漏洞可能允许攻击者伪造任意消息。因此,黑客透过以下过程成功窃取了资金。

攻击者先选取一个提交成功的区块的哈希值(指定块:110217401) 然后构造一个攻击载荷,作为验证IAVL 树上的叶子节点 在IAVL 树上添加一个任意的新叶子节点 同时,添加一个空白内部节点以满足实现证明 调整第3 步中添加的叶子节点,使得计算的根哈希等于第1 步中选取的提交成功的正确根哈希 最终构造出该特定区块(110217401)的提款证明

目前,一些细节还要进一步推敲。

BNB Chain 被黑资金

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

具体资金流向如下图所示:

BNB Chain 被黑资金流向

BNB Chain 还安全吗

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

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

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

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

但能否确保BNB Chain 不会再发生此类安全事故,还需要团队不断完善项目安全。

结语

总的来说,以往的跨链桥攻击多为通过线下漏洞或者是私钥泄露等方式,而本次的BNB Chain 攻击却是通过的构造特定的根哈希来构造出特定区块的提款证明,从而使攻击成立,攻击难度比较大,并且数额较以往来说也比较高。但币安也在发现了状况后及时进行了阻拦,将损失降低。

这也提醒了各位投资者,没有任何项目是绝对安全的。尤其是区块链的发展时间并不长,会出现许多意想不到的问题,因此,建议您在保存资产时不要全部储存在一个钱包和项目中。