2023年7月1日,一名攻击者利用Poly Network的漏洞,在多条链上增发了价值420亿美元的资产。尽管发行的资产数量庞大,但因低流动性和部分项目代币冻结,攻击者无法从5个外部账户地址获取超过1000万美元的资产。
这是今年发生的第一起跨链桥攻击事件,也是针对Poly Network发起的第二次攻击。去年攻击事件的总损失金额达37亿美元,其中跨链桥攻击损失占35%。虽然本次事件看似是有史以来涉案金额最大的漏洞攻击事件,但黑客的实际收益要低很多。
事件摘要
2023年7月1日北京时间14:47,一名恶意行为者通过发起数笔跨链桥交易,将资产从Poly Network的Lock Proxy合约转至攻击者的地址。从账面上看,攻击者从10条链上获利超420亿美元价值的资产。
图片:Poly Network 攻击者钱包地址。来源:Debank
但其实这个数字具有误导性。例如,攻击者在Metis区块链上持有超过340亿美元的Poly-pegged BNB和BUSD,但这些代币因缺乏流动性而无法卖出。后来Metis也在推文中确认,那些新铸造的BNB和BUSD没有可用的流动性,因此毫无价值。
同样,大量剩余的代币也变得一文不值。在听说了这一事件和攻击者发行的代币后,几个项目均及时采取了删除流动性的行动,以防止代币倾销和价格崩溃。例如,OpenOcean、StackOS、Revomon和NEST都取消了项目的流动性,以防止攻击者出售。
Revomon推特
尽管420亿美元的数字并不能准确反映这次事件所造成的损失,但CertiK已证实至少有1000万美元的资产被存放在5个以太坊钱包中。
跨链桥漏洞
2022年,影响跨链桥的安全事件导致了13亿美元的经济损失,而这13亿美元仅仅是由五起事件造成的,因此跨链桥安全漏洞的破坏力可见一斑。保护跨链桥难度较高,再加上它们所具有巨大价值和各种可被利用的攻击路径,这些基础设施往往是恶意行为者的首选目标。跨链桥由托管人、发债人、预言机等多种部分组成。由于锁定在桥上的资金数量庞大,任何错误配置、漏洞或恶意利用都可导致重大损失。
攻击流程
Poly Network使用“锁定”(Lock)和“解锁”(Unlock)函数在不同网络之间桥接资产。用户必须先在源链上“锁定”代币,然后才能在目标链上进行“解锁”。
以下示例是基于从BSC到ETH的跨链转移。
①攻击者首先在BSC网络上调用Lock函数,以发起少量8PAY代币的跨链转移。
图片:攻击者使用少量的8PAY代币发起跨链转移。来源:Etherscan
在这笔交易中,数据被指定为“0x4a14feea0bdd3d07eb6fe305938878c0cadbfa16904214e0afadad1d93704761c8550f21a53de3468ba599e80300000000000000000000000000”开头“0x4a”四个字节代表数据长度。
②攻击者调用了EthCrossChainManager.verifyHeaderAndExecuteTx()函数,触发了相应的UnlockEvent“解锁”函数。我们可以从开头表示数据长度的4个字节看出,当前的交易数据已发生改变。
“0x14feea0bdd3d07eb6fe305938878c0cadbfa16904214e0afadad1d93704761c8550f21a53de3468ba59900e00fc80b54905e35ca0d000000000000000000000000000000000000000000“
在这笔交易中,8pay代币的数量显著增加。
③攻击者按照上述步骤重复了这一过程。其中涉及57种代币,且分布在11个不同的区块链上。攻击者从中获利约420亿美元的资产(按账面价值计算)。
图片:Poly Network攻击者在以太坊上解锁的代币。来源: Etherscan
资产追踪
在以太坊网络上,攻击者成功将一些代币转换成了ETH。过程如下:
在攻击期间,攻击者还通过一笔交易转移了1592枚ETH(约305万美元),并将2240枚ETH分别转至3个EOA外部账户。此外,攻击者还获取约301万枚USDC和265万枚USDT,分别兑换为1557枚和1371枚ETH。
攻击者将剩余的部分代币资产转移到了新的EOA地址,并向每个地址转移1枚ETH。(尽管他们目前尚未兑出这些代币)。由于项目所有者为防止抛售而从代币中移除流动性,一些代币变得毫无价值。截至目前,攻击者似乎只能从该事件中获得约1000万美元的资金。
图片:Poly Network攻击者将资产和数量为1的ETH转入新的EOA地址
写在最后
2022年,Web3.0生态系统经历了跨链桥攻击的毁灭性影响,Ronin Bridge、Wormhole、Nomad等项目都遭受了安全事件的影响。Poly Network事件的初期检测结果显示,这是Web生态系统迄今为止遭遇的最大安全事件,但由于新铸造代币缺乏流动性支持,损失在撰写本文时已被控制在大约1000万美元。目前尚无关于攻击者如何利用Poly Network的确切共识。然而初步迹象表明,因链上功能运行正常,很可能是私钥泄露或链下漏洞导致。