背景
近期,慢霧安全團(tuán)隊(duì)接觸到幾起由于授權(quán)引起的盜幣事件,這些事件是最簡單的Approve 授權(quán)導(dǎo)致的盜幣,而關(guān)鍵點(diǎn)在于受害者是在很久之前無意中點(diǎn)擊了 Approve 授權(quán)。好在區(qū)塊鏈的特性 —— 雁過留痕,在大量鏈上數(shù)據(jù)中總能發(fā)現(xiàn)蛛絲馬跡。
被盜案例分析
根據(jù)受害者提供的信息,被盜交易如下:
(https://bscscan.com/tx/0x59aef62a8cee79996ff2b44b723c97fbc0c6e2a0992c61dea0e65fcb2d78f608)
粗略一看,只能看出受害者地址 0x8CCb 被黑客地址 0xFf6F 盜走了 13,811 USDT。
這筆交易既不是鏈下 permit/permit2 簽名方式,也不存在其他合約漏洞任意授權(quán)方式,更不是 create2 方式。
在我們排除了這些常見的手法后,發(fā)現(xiàn)這筆交易竟是最簡單的 Approve 授權(quán)導(dǎo)致的盜幣,而且是很久之前埋下的導(dǎo)火索。
通過分析之前的鏈上交易記錄,發(fā)現(xiàn)被盜的關(guān)鍵點(diǎn)在于受害者曾在兩年多前授權(quán)過一個(gè)合約地址 (0x3880285800a89AB3C4338bf455acdA3da6f8fA24),授權(quán)記錄如下:
(https://bscscan.com/tx/0x018479875137e5eafcc183c5574cf9197ee14c7921b5f6796b385bb15e8bf96d)
授權(quán)交易及被盜轉(zhuǎn)移交易的時(shí)間表列在下面,中間時(shí)間間隔長達(dá) 767 天:
2021 年 11 月 9 日,08:13:28 - 惡意授權(quán)給惡意合約地址交易;
2023 年 12 月 16 日,07:26:53 - USDT-BEP20 被非授權(quán)轉(zhuǎn)移交易。
授權(quán)給惡意合約地址后,資金是如何被盜走的呢?我們來進(jìn)一步看看細(xì)節(jié)。
(https://dashboard.tenderly.co/tx/bnb/0x59aef62a8cee79996ff2b44b723c97fbc0c6e2a0992c61dea0e65fcb2d78f608)
在這筆交易中,發(fā)生了以下步驟:
通過調(diào)用 0xcc4187 合約地址的 0xe473d7ed 方法,檢查被盜地址的余額及對授權(quán)給惡意合約的 Allowance;
調(diào)用惡意合約(圖中的 TransparentUpgradeableProxy)的 Proxy 合約 0xd367b5 的 0xe5ee9334 方法:
驗(yàn)證 0xcc4187 合約地址的 Role 角色權(quán)限;
惡意合約作為 msg sender 調(diào)用 USDT-BEP20 的 transferFrom 函數(shù),從而實(shí)現(xiàn)將授權(quán)給惡意合約的 Token 資產(chǎn)轉(zhuǎn)移到黑客獲利地址 0xFf6F。
MistTrack 分析
據(jù) MistTrack 分析,黑客地址 (0xFf6FC7eafF07C93b555a1CA2A9efcBbca2b8c83D) 目前已獲利約 20 萬美元,包括多種代幣。
黑客初始資金來自 Tornado Cash 轉(zhuǎn)入的 0.098 BNB,且使用過 Venus, PancakeSwap, DinosaurEggs, WombatExchange:
接著,我們對惡意合約地址 (0x3880285800a89AB3C4338bf455acdA3da6f8fA24) 進(jìn)行分析:
我們發(fā)現(xiàn)這個(gè)惡意合約在 MistTrack 里被標(biāo)記為 King,也就是說這個(gè)合約地址是原來項(xiàng)目 King 的合約地址,該合約地址與 Kingfund Finance 也存在交互,King 和 Kingfund Finance 應(yīng)該是同一個(gè)項(xiàng)目:
再看下惡意合約地址的創(chuàng)建者地址 (0x37a7cA97b33b6a9D1d80D33bff9E38f156FF8541) 被標(biāo)記為 Kingfund Finance: Deployer。
我們在搜索這個(gè)項(xiàng)目信息的時(shí)候,發(fā)現(xiàn)這居然是個(gè) RugPull 項(xiàng)目。在 2022 年 1 月 19 日,Kingfund Finance 卷款帶走超 300 WBNB(約 141,000 美元),關(guān)閉了其官網(wǎng)和官方推特。也就是說,目前還沒對這個(gè)惡意合約取消授權(quán)的用戶仍在被盜,慢霧安全團(tuán)隊(duì)建議用戶及時(shí)取消對惡意合約的授權(quán)。
Dune 數(shù)據(jù)分析
(https://dune.com/misttrack/rugpull-malicious-authorization)
根據(jù)上述總結(jié)出的特征及借助 Dune 分析,我們還發(fā)現(xiàn)了另一個(gè)用戶在 2022 年 1 月授權(quán)了上述提到的惡意合約地址 (0x3880285800a89AB3C4338bf455acdA3da6f8fA24),隨后在 5 月份又授權(quán)了另一個(gè) RugPull 惡意合約地址 (0x3a40AeC5453dB9b49ACb2993F0F82FB1553f4C23)。
該惡意合約的創(chuàng)建者 (0x406119D496a3b0D1F0B7DA020B5e89d6FFf4Ff08) 已將大部分獲利資金轉(zhuǎn)移到 Tornado Cash。
目前相關(guān)地址已被 MistTrack 拉黑。
總結(jié)
本文主要介紹了一個(gè)由于早年授權(quán)給 RugPull 項(xiàng)目導(dǎo)致后續(xù)資金持續(xù)被盜的案例,并根據(jù)相關(guān)特征擴(kuò)展出 Dune 數(shù)據(jù)集。釣魚無孔不入,一不小心就中招,慢霧安全團(tuán)隊(duì)建議用戶經(jīng)常主動(dòng)查看自己的授權(quán)情況,可以使用 RevokeCash、ScamSniffer、Rabby 等工具查詢,若發(fā)現(xiàn)有異常授權(quán),請及時(shí)取消。