扑朔迷离的一次盗币案件?涉及资金约1.26亿美元——Multichain黑客盗币案分析
一、事件基本情况
在UTC时间2023年7月6日14:21开始,“黑客”开始攻击Multichain桥,在3个半小时内从容将Multichain: Fantom Bridge(EOA)和Multichain: Moonriver Bridge(EOA)约1.26亿美元资产转至下面6个地址进行了沉淀:
0x418ed2554c010a0C63024D1Da3A93B4dc26E5bB7
0x622e5F32E9Ed5318D3A05eE2932fd3E118347bA0
0x027f1571aca57354223276722dc7b572a5b05cd8
0x9d5765aE1c95c21d4Cc3b1d5BbA71bad3b012b68
0xefeef8e968a0db92781ac7b3b7c821909ef10c88
0x48BeAD89e696Ee93B04913cB0006f35adB844537
Beosin KYT/AML追踪发现被盗资金流向及时间关系如下图:
根据链上记录可以看到最初的可疑交易0xde3eed5656263b85d43a89f1d2f6af8fde0d93e49f4642053164d773507323f8,从交易后进行了大量的资产转移,其中包括从 Multichain 的 Fantom 桥转移 4,177,590 DAI、491,656 LINK、910,654 UNIDX、1,492,821 USDT、9,674,426 WOO、1,296,990 ICE、1,361,885 CRV、134 YFI、502,400 TUSD 到可疑地址 0x9d57***2b68;转移 27,653,473 USDC 到可疑地址 0x027f***5cd8;转移 30,138,618 USDC 到可疑地址 0xefee***0c88;转移 1,023 WBTC 到可疑地址 0x622e***7ba0;转移 7,214 WETH到可疑地址 0x418e***5bb7。
以及从 Multichain 的 Moonriver 桥转移4,830,466 USDC、1,042,195 USDT、780,080 DAI、6 WBTC 到可疑地址0x48Be***4537。另外从疑似 Multichain 的 Dogechain 桥地址0x55F0***4088转移了 666,470 USDC 到可疑地址0x48Be***4537。
二、本次安全事件一些可疑的部分
根据链上交易详情和交易日志分析,此次盗币并非来源于合约漏洞,被盗地址为账户地址,被盗行为也只是最基本的链上转账。
被盗的多笔交易中,也未发现有什么共同特征,唯一的相同点就是都转入了空白地址(转账之前无交易无手续费),每笔交易之间间隔也是在几分钟到十几分钟不等,往同一个地址进行转账的间隔最短也有一分钟,可以大致排除‘黑客’是通过脚本或程序漏洞批量盗币。
往不同的地址进行转账的时候时间间隔也较长,怀疑可能黑客是在盗币的时候临时创建的,并对私钥等信息进行了备份。嫌疑地址总共有6个,被盗的币种有13种,不排除整个事件多个人做的。
三、对黑客进行盗币手法的猜测
针对以上的各种行为,我们猜测黑客通过以下几种方法进行了盗币
1.对Multichain的后台进行了渗透,获取了整个项目的权限,通过后台对自己的新建账户进行转账。
2.通过黑客攻击项目方的设备,获取了该地址的私钥,直接通过私钥进行转账。
3.Multichain内部操作,通过黑客攻击的借口进行资金转移和获利。在被黑客攻击后,Multichain未对该地址的剩余资产马上进行转移,且过了十几个小时才宣布停止服务,项目方响应速度太慢。黑客转账的行为也很随意,不仅有大额转账,也有2USDT的小额转账,且整个时间跨度较大,黑客掌握私钥的可能性极大。
四、跨链协议面对的安全问题有哪些?
根据Beosin安全团队的研究,发现跨链桥面对的安全挑战还有以下这些。
跨链消息验证不完整。
跨链协议在检查跨链数据时,应包含合约地址、用户地址、数量、链ID等等。比如pNetwork安全事件由于未验证事件记录的合约地址,导致攻击者伪造Redeem事件去提取资金,累计损失约为1300万美元
验证者私钥泄露。
目前大部分跨链仍是借助验证者来执行跨链错误,如果私钥丢失,将威胁整个协议的资产。Ronin侧链由于其四个 Ronin的四个验证器和一个第三方验证器被攻击者利用社会工程学所控制,随意提取协议资产,最终损失6亿美元。
签名数据复用。
主要是指提款凭证可以复用,多次提取资金。Gnosis Omni Bridge安全事件 ,由于硬编码化了Chain ID,导致黑客可以使用相同的取款凭证,在分叉链ETH和ETHW链上取出对应的锁定资金。累计损失约为6600万美元