北京时间2022年2月6日,Meter Passport跨链桥项目被恶意利用,造成420万美元的损失。项目方发布的推特原文:
这是继昨日CertiK发布的Solana跨链桥虫洞项目被攻击事件分析后的又一起黑客袭击跨链桥项目事件。
漏洞利用交易
虚假存款:
https://bscscan.com/tx/0x63f37aff7e40b85b0a6b3fd414389f6011cc09b276dc8e13b6afa19061f7ed8e
https://etherscan.io/tx/0x2d3987963b77159cfe4f820532d729b0364c7f05511f23547765c75b110b629c
https://bscscan.com/tx/0xc7eb98e00d21ec2025fd97b8a84af141325531c0b54aacc37633514f2fd8ffdc
https://etherscan.io/tx/0xdfea6413c7eb3068093dcbbe65bcc9ba635e227c35e57fe482bb5923c89e31f7
https://bscscan.com/tx/0x5d7cd17bfeb944390667c76f4fc2786f748dc3eb363c01c24b92becaaf5690b4
铸币:
https://bscscan.com/tx/0xf70b4aa715c0a04079c56cd9036cc63cdb6101e400520a8f2c019ad2ced5358e
https://moonriver.moonscan.io/tx/0x689ff22ebf7f7aa6ecf0d60345979855442a09dfb7439c8553b2369e6e130409
https://etherscan.io/tx/0xd619ace8a8cca2f7eb72dbc0a896fc2d4d8b20aa11f4d747f1a5333305bbb875
https://moonriver.moonscan.io/tx/0xc7f764644e9af42714d98763b7e8dcf5e1de6b855b63e2c6ff2438e09b61ccc7
黑客
黑客链上转账记录:
https://debank.com/profile/0x8d3d13cac607b7297ff61a5e1e71072758af4d01/history
转账地址:0x8d3d13cac607b7297ff61a5e1e71072758af4d01
合约地址
Bridge
以太坊:https://etherscan.io/address/0xa2a22b46b8df38cd7c55e6bf32ea5a32637cf2b1
币安智能链:https://bscscan.com/address/0xfd55ebc7bbde603a048648c6eab8775c997c1001
Moonriver (moonbream):https://moonriver.moonscan.io/address/0xf41e7fc4ec990298d36f667b93951c9dba65224e
ERC20Handler
Ethereum:https://etherscan.io/address/0xde4fc7c3c5e7be3f16506fcc790a8d93f8ca0b40
BSC:https://bscscan.com/address/0x5945241bbb68b4454bb67bd2b069e74c09ac3d51
攻击流程
步骤一:攻击者调用`Bridge.deposit()`函数,将0.008BNB存入连接到多个链的合约Bridge,包括币安智能链、以太坊以及Moonriver(两次)。
在函数调用`Bridge.deposit()中,攻击者注入了以下恶意数据:
步骤二:`Bridge.deposit()`调用了`ERC20Handler.deposit()`函数,输入内容如下:
步骤三:由于输入的resourceID是 0x000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c01”,token地址将为`0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c`,这与`_wtokenAddress`相同。
步骤四:这种情况下,一旦该指令通过,将导致攻击者实际上不需要向合约转移任何代币即可获得。
步骤五:因此,攻击者可以在其他链上铸造 数据 中指定的任何相同数量的代币。
合约漏洞分析
一般来说deposit()用于ERC20代币的存款,depositETH()用于WETH/WBNB代币的存款。Bridge合约提供了两个方法:deposit()和 depositETH()。
然而,这两个方法造成了相同事件,并且deposit() 函数并没有阻止WETH/WBNB的存款交易,因为deposit()没有烧毁或锁定WETH/WBNB。黑客通过使用deposit()来制作假的存款事件,在没有任何真实存款的情况下,将WETH/WBNB存入。
资产追踪
黑客地址:
https://debank.com/profile/0x8d3d13cac607b7297ff61a5e1e71072758af4d01/history
几乎所有的资产都已转移到Tornado。
总结
这一事件与前不久发生的Qubit事件非常相似。一个黑客事件的发生往往会使更多别有用心之人关注类似项目中是否有类似的漏洞可以利用。
因此,项目方的技术团队应及时关注已发生的安全事件,并且检查自己的项目中是否存在类似问题。
目前,CertiK官网【https://www.certik.com/】已添加社群预警功能。在官网上,大家可以随时看到与漏洞、黑客袭击以及rugpull相关的各种社群预警信息。
作为区块链安全领域的领军者,CertiK致力于提高加密货币及DeFi的安全和透明等级。迄今为止,CertiK已获得了2500家企业客户的认可,保护了超过3110亿美元的数字资免受损失。