據區塊鏈安全審計公司Beosin旗下Beosin EagleEye安全風險監控、預警與阻斷平台監測顯示,7月2日,Poly Network跨鏈橋項目疑似遭受私鑰洩露或多簽服務被攻擊,黑客利用偽造的憑證向多條鏈的跨鏈橋合約進行取款操作。
這不是Poly Network第一次被攻擊,早在2021年8月10日,Beosin EagleEye就監測顯示,跨鏈協議Poly Network 遭受攻擊,Ethereum、BinanceChain、Polygon3條鏈上近6億美元資金被盜。
當年的這個事件,也成為2021年涉案金額最大的黑客事件,兩年前的攻擊者利用EthCrossChainManager合約中存在的邏輯缺陷,通過該合約調用EthCrossChainData合約中putCurEpochConPubKeyBytes函數更改Keeper為自有地址,然後使用該地址對提取代幣的交易進行簽名,從而將LockProxy合約中的大量代幣套取出來。不過當時的攻擊者在多方壓力下,最終選擇歸還資產,
而這一次,黑客又是如何打穿Poly Network的防線,請聽我們細細講解。同時,我們也將用Beosin KYT/AML帶你解鎖黑客更多套路。
攻擊分析
這次Poly Network 的攻擊事件有多個攻擊地址,下面以0x906639ab20d12a95a8bec294758955870d0bb5cc地址為例。
第一步,攻擊者首先調用LockProxy跨鏈橋合約中的lock函數進行鎖定很小的Lever Token。
(https://etherscan.io/tx/0x1b8f8a38895ce8375308c570c7511d16a2ba972577747b0ac7ace5cc59bbb1c4)
這裡需要注意的是toChainid為6指的是BNB chain,可以通過https://explorer.poly.network/查看。這裡只要Poly網絡上查到,就表示已經通過中繼鏈驗證的。
第二步,切換到BNB鏈上,分析攻擊者調用verifyHeaderAndExecuteTx函數進行取款操作,注意到這裡的數量和原先的lock的數量完全對不上。
(https://bscscan.com/tx/0x5c70178e6dc882fba1663400c9566423f8942877a0d42bb5c982c95acc348e31)
然而在中繼鍊網絡查詢該筆交易,並未找到該筆交易記錄。
第三步,現在有理由懷疑是不是簽名洩露或者keeper被修改(因為keeper是給用戶提款簽名的,只要控制了keeper就可以用偽造的簽名提款)。 2021年那一次的Poly被攻擊就是黑客利用攻擊修改了keeper導致的。
通過分析黑客調用verifyHeaderAndExecuteTx函數進行取款操作,發現keeper並沒有被修改,目前keeper還是用的官方的keeper,現在我們有理由相信其中的三個keeper(0x4c46e1f946362547546677bfa719598385ce56f2、0x51b7529137d34002c4ebd81a2244f0ee7e95b2c0、0x3dfccb7b8a6972cde3b695d3c0c032514b0f3825)可能私鑰洩露或多簽服務被攻擊,導致攻擊者可以利用偽造的憑證取款。
同時,我們根據Beosin KYT虛擬資產反洗錢合規和分析平台追踪發現,黑客通過一批地址調用Poly Network的合約,利用合約中的UnlockEvent和verifyHeaderAndExecuteTx兩個函數的漏洞對項目方實施攻擊,將資金轉移至自己的沉澱地址中。
線索來源
ETH鏈
調用被攻擊合約的地址通過一個共同的手續費分發地址獲取手續費。
圖1 手續費分發地址交易
該手續費分發地址通過FixedFloat交易所獲取手續費。
手續費分發地址:
0x0dfeb429166e629204aca66467484cd88cb9701c
交易哈希
0x69923ea025e7684578b9cbfd7af1c862f044f8b09398234039ce9989bd55561a
黑客歸集地址共計三個手續費來源
1、使用手續費第一筆來自Tornado.Cash。
圖2 歸集地址0xe0afadad1d93704761c8550f21a53de3468ba599手續費來源
2、通過Bybit經過一層中轉流入該地址。
手續費轉賬地址:
0x4FbC021742A4664D1cf8e9d2730b8519B9Dcc523
交易哈希
0xb8b0626b86ed336c9c0fff56b20761438535aa06461dcca9cdc39dc10ec1c620
3、使用被盜的虛擬貨幣換成ETH作為手續費
有兩個黑客盜幣地址將盜取的USDT/USDC在DEX中換成ETH,再用作後續地址的手續費,下面是兩個地址的初始手續費轉賬地址及哈希。
黑客地址1:
0xdddE20a5F569DFB11F5c405751367E939ebC5886
手續費轉賬地址:
0xD475747a4937a66Cc7D4a2c7eA7F6e827D0f7390
交易哈希:
0x853b75b1b8a7f56c51fcba9b996af8d132b784cfa0da7162c20a48a5994d8a06
黑客地址2:
0x8E0001966e6997db3e45c5F75D4C89a610255b2E
交易哈希:
0x0f3cf1fe16052223e091e87c2a6f7a9a94e53a565dfac7b83eb0b9b79458ad8f
BSC鏈
圖3 手續費分發地址0x1634Bf68e6b3Bb8D79388EfB3d1A5215506FBbEd手續費來源
該手續費分發地址通過Kucoin和ChangeNow兩個交易所平台獲取手續費並分發。
1、Kucoin
交易哈希:
0x0b0aa0d438e4f15c919e55148c87890ae0d089d036cadbdc6b87afa9e19f747b
2、ChangeNow
交易哈希:
0x6db6c128960b7268f2bf8c199b2c0c017b3bee29bbefac0bf5d31c63b6373075
黑客歸集地址手續費來源為手續費分發地址。沉澱地址未轉賬手續費。
Polygon鏈
圖4 黑客攻擊地址0x09F92eDce2E46C399BFE7881a7619598AF8436d5手續費來源
調用被攻擊合約的地址通過一個共同的手續費分發地址獲取手續費。
該地址通過FixedFloat交易所獲取手續費。
交易哈希:
0xc7a25eb840718028c0d8f402d1293dcb479755d77609a7dfb616c10e90176dec
黑客歸集地址手續費來源為
0x09F92eDce2E46C399BFE7881a7619598AF8436d5。
沉澱地址未轉賬手續費。
Beosin KYT/AML帶你追踪資金詳情
ETH鏈
Beosin KYT/AML追踪發現ETH鏈上盜幣資金簡圖如下:
圖5 Beosin KYT追踪的盜幣資金流向簡圖
首先黑客通過一批地址來調用被攻擊合約以利用漏洞,使用共計20個地址。
這20個地址的手續費均來自地址0x0dfeb429166e629204aca66467484cd88cb9701c,該地址手續費通過Fixedfloat轉入。
黑客調用過Poly Network合約中的LOCK,將資金鎖定後,再調用UnlockEvent和verifyHeaderAndExecuteTx兩個函數,來對項目方實施攻擊,案例如下:
圖6盜幣哈希調取函數記錄
可以看到在UnlockEvent中,變量toAddress已變成了黑客歸集地址,並且amount也被修改為被盜取資金數量 (此處為1,592.51818168432 ETH)。
圖7盜幣交易輸入信息記錄
從這裡可以看到輸入數據中Proof一項中已被替換為包含黑客歸集地址的內容。
涉案黑客地址手續費部分主要從四個渠道獲得:
1、通過Tronado.cash轉入ETH
2、通過Bybit交易所轉入ETH
3、通過KuCoin交易所轉入ETH
4、通過 FixedFloat交易所轉入ETH
5、使用被盜取的ETH
黑客從2023年7月1日開始攻擊,截止到目前,僅通過DeFi交易所將部分虛擬貨幣換成ETH,以及將ETH和部分其他虛擬貨幣轉移到其他沉澱地址中,暫未對被盜資金進行銷贓處理,但已準備好了交易所需手續費,在確認安全後會立刻對沉澱地址資金進行轉移。
BSC鏈
BSC鏈盜幣路徑與ETH盜幣路徑類似,黑客繼續使用了一部分相同的地址來進行盜幣操作,並利用合約漏洞將虛擬貨幣轉移至黑客歸集地址。
圖8 Beosin KYT/AML追踪的盜幣資金流向簡圖
首先黑客通過一批地址來調用被攻擊合約以利用漏洞,使用超過30個地址。
這些地址的手續費均來自地址0x1634Bf68e6b3Bb8D79388EfB3d1A5215506FBbEd,該地址手續費通過Kucoin和ChangeNow平台轉入。
而後通過借助同樣的漏洞攻擊合約,並將被盜資金轉入歸集地址中,隨後部分資金轉入多個沉澱地址。
Polygon鏈
Polygon鏈盜幣路徑與上述兩條鏈路盜幣路徑類似,黑客繼續使用了一部分相同的地址來進行盜幣操作,並利用合約漏洞將虛擬貨幣轉移至黑客歸集地址。
圖9 Beosin KYT/AML追踪的盜幣資金流向簡圖
首先黑客通過一批地址來調用被攻擊合約以利用漏洞,Polygon鏈只使用了一個地址0x09F92eDce2E46C399BFE7881a7619598AF8436d5,手續費通過Fixedfloat轉入。
而後通過借助同樣的漏洞攻擊合約,並將被盜資金轉入歸集地址中,隨後部分資金轉入多個沉澱地址。