竟然可以推导出私钥?Anyswap 跨链桥被⿊分析

未知 2021-10-13 15:52:51

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

作者:创宇区块链实验室

北京时间2021年7月12日凌晨1点,Anyswap宣布,Anyswap多链路受到v3版本的攻击,v3跨链资金池受到影响,损失约240万USDC和551万毫米。 Anyswap V1和V2版本没有受到这次攻击的影响,跨链桥梁没有受到影响。 我知道创宇区块链安全实验室第一时间跟踪分析了这个事件:

事件跟踪

攻击时间:

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

攻击者地址:

0x0ae 1554860 e 51844 b 61ae 20823 EF 1268 c 3949 f7c

攻击交易信息:

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

359以太网. io/tx/0x c80e 7光纤通道16143 CBA4D5 FB3B 192 B7DBE 70 E9 BC D5 CA 0348 FAD 20 BF2 D 05693070

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

359 BSCS can.com/tx/0xa8a 75905573 CCE 1c 6781 a 59a 5D8 BC7A8 BFB6c 8539 CBF 298 CBF 507 a 292091 ad 4b 5

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

3359 FTMS can.com/tx/0x 7312936 a 28 b 143 d 797 b 4860 CF1 d 36 AD2 CC 951 FDBE 0F 04 DDFE DAE 7499 d 8368 f 8

d .攻击交易4——5、509和227.35372毫米

3359以太网. io/tx/0 XEC AAF8B57 B 6587412242 FDC 040 BD6CC 084077 A 07 F4 DEF 24B4ADA E6 FBE 8254 AE 3

技术分析

在BSC上的V3路由器MPC账户下存在两个V3路由器事务,这两个事务具有相同的r值签名。 攻击者可以反推出MPC账户的私钥,知道创宇安全小组通过本地测试验证了这种攻击方法。 如果在两次交易中知道相同的r值(ECDSA签名算法),则由于两次签名的原始数据不同,所以可以反过来推出签名时使用的随机数种子,并且可以通过地址推导出公钥,因此可以通过脚本进行MPC (如下图截图所示,最后攻击者以MPC的形式调用anySwapInAuto函数完成被盗货币。 代码的重要部分:

代码的执行结果如下。

后续进展

Anyswap项目方将赔偿此次货币盗窃事件中发生的损失,并在今后48小时内更新主合同代码,以修复因使用相同r签名而导致的私钥泄露事件。 如果有最新进展,实验室将首先跟进和分析。

标签