原文標題:《知道創宇區塊鏈安全實驗室|竟然可以推導出私鑰?Anyswap 跨鏈橋被黑分析》
臺北時間 2021 年 7 月 12 日凌晨 1 點,Anyswap 官方發推聲稱 Anyswap 多鏈路由 v3 版本遭到攻擊,V3 跨鏈資金池受影響,損失約 240 萬 USDC 和 551 萬 MIM,Anyswap V1 和 V2 版本不受該攻擊影響,跨鏈橋未受影響,知道創宇區塊鏈安全實驗室 第一時間跟蹤本次事件并分析:
事件跟蹤
攻擊時間:
2021 年 7 月 10 日晚 8:00(UTC)
攻擊者地址:
0x0aE1554860E51844B61AE20823eF1268C3949f7C
攻擊交易資訊:
a. 攻擊交易 1——> 被盜金額:1,536,821.7694 USDC
https://etherscan.io/tx/0xc80e7cfeb16143cba4d5fb3b192b7dbe70e9bcd5ca0348facd20bf2d05693070
b. 攻擊交易 2——>748,312.634392210170566277 USDC
https://bscscan.com/tx/0xa8a75905573cce1c6781a59a5d8bc7a8bfb6c8539ca298cbf507a292091ad4b5
c. 攻擊交易 3——>112,640.877101 USDC
https://ftmscan.com/tx/0x7312936a28b143d797b4860cf1d36ad2cc951fdbe0f04ddfeddae7499d8368f8
d. 攻擊交易 4——>5,509,227.35372 MIM
https://etherscan.io/tx/0xecaaf8b57b6587412242fdc040bd6cc084077a07f4def24b4adae6fbe8254ae3
技術分析
BSC 上的 V3 路由器 MPC 帳戶下存在兩個 v3 router 交易,這兩個交易具有相同的 R 值簽名,攻擊者可以反推出 MPC 賬戶的私鑰,知道創宇安全團隊通過本地測試驗證了這種攻擊方法,如果知道兩次交易中相同的 R 值 (ECDSA 簽名算法),由于兩次簽名的原始數據不一樣,就能反推出簽名時使用的隨機數種子,又因為可以地址中推算出了公鑰,所以通過腳本即可反推出 MPC 地址的私鑰 (如下方截圖所示),最后攻擊者以 MPC 身份調用 anySwapInAuto 函數完成盜幣。
代碼關鍵部分:
代碼執行結果如下:
后續進展
Anyswap 項目方將賠償此次盜幣事件產生的損失,并在未來 48 小時更新主合約代碼,以修復使用相同 R 簽名導致的私鑰泄露事件,如有最新進展,實驗室將會第一時間跟進和分析,