竟然可以推导出私钥?Anyswap 跨链桥被?分析_比特币:NEX

来源:知道创宇区块链安全实验室

作者:创宇区块链实验室

北京时间2021年7月12日凌晨1点,Anyswap官方发推声称Anyswap多链路由v3版本遭到攻击,V3跨链资金池受影响,损失约240万USDC和551万MIM,AnyswapV1和V2版本不受该攻击影响,跨链桥未受影响。知道创宇区块链安全实验室第一时间跟踪本次事件并分析:

事件跟踪

攻击时间:

2021年7月10日晚8:00(UTC)

攻击者地址:

0x0aE1554860E51844B61AE20823eF1268C3949f7C

攻击交易信息:

a.攻击交易1——>被盗金额:1,536,821.7694USDC

https://etherscan.io/tx/0xc80e7cfeb16143cba4d5fb3b192b7dbe70e9bcd5ca0348facd20bf2d05693070

b.攻击交易2——>748,312.634392210170566277USDC

https://bscscan.com/tx/0xa8a75905573cce1c6781a59a5d8bc7a8bfb6c8539ca298cbf507a292091ad4b5

c.攻击交易3——>112,640.877101USDC

https://ftmscan.com/tx/0x7312936a28b143d797b4860cf1d36ad2cc951fdbe0f04ddfeddae7499d8368f8

d.攻击交易4——>5,509,227.35372MIM

https://etherscan.io/tx/0xecaaf8b57b6587412242fdc040bd6cc084077a07f4def24b4adae6fbe8254ae3

技术分析

BSC上的V3路由器MPC帐户下存在两个v3router交易,这两个交易具有相同的R值签名,攻击者可以反推出MPC账户的私钥,知道创宇安全团队通过本地测试验证了这种攻击方法,如果知道两次交易中相同的R值(ECDSA签名算法),由于两次签名的原始数据不一样,就能反推出签名时使用的随机数种子,又因为可以地址中推算出了公钥,所以通过脚本即可反推出MPC地址的私钥(如下方截图所示),最后攻击者以MPC身份调用anySwapInAuto函数完成盗币。代码关键部分:

代码执行结果如下:

后续进展

Anyswap项目方将赔偿此次盗币事件产生的损失,并在未来48小时更新主合约代码,以修复使用相同R签名导致的私钥泄露事件。如有最新进展,实验室将会第一时间跟进和分析。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-8:638ms