建議使用者時常查看是否有異常授權情況並及時取消。

作者:Zero,Lisa

封面:Photo by Adrien on Unsplash

背景

近期,慢霧安全團隊接觸到幾起由於授權引起的盜幣事件,這些事件是最簡單的 Approve 授權導致的盜幣,而關鍵點在於受害者是在很久之前無意中點擊了 Approve 授權。 好在區塊鏈的特性 —— 雁過留痕,在大量鏈上數據中總能發現蛛絲馬跡。

被盜案例分析

根據受害者提供的資訊,被盜交易如下:

(https://bscscan.com/tx/0x59aef62a8cee79996ff2b44b723c97fbc0c6e2a0992c61dea0e65fcb2d78f608)

粗略一看,只能看出受害者位址 0x8CCb 被駭客位址 0xFf6F 盜走了 13,811 USDT。

這筆交易既不是鏈下 permit/permit2 簽名方式,也不存在其他合約漏洞任意授權方式,更不是 create2 方式。

在我們排除了這些常見的手法后,發現這筆交易竟是最簡單的 Approve 授權導致的盜幣,而且是很久之前埋下的導火索。

通過分析之前的鏈上交易記錄,發現被盜的關鍵點在於受害者曾在兩年多前授權過一個合約位址(0x3880285800a89AB3C4338bf455acdA3da6f8fA24),授權記錄如下:

(https://bscscan.com/tx/0x018479875137e5eafcc183c5574cf9197ee14c7921b5f6796b385bb15e8bf96d)

授權交易及被盜轉移交易的時程表列在下面,中間時間間隔長達 767 天:

  • 2021 年 11 月 9 日,08:13:28 – 惡意授權給惡意合約位址交易;
  • 2023 年 12 月 16 日,07:26:53 – USDT-BEP20 被非授權轉移交易。

授權給惡意合約位址后,資金是如何被盜走的呢? 我們來進一步看看細節。

(https://dashboard.tenderly.co/tx/bnb/0x59aef62a8cee79996ff2b44b723c97fbc0c6e2a0992c61dea0e65fcb2d78f608)

在這筆交易中,發生了以下步驟:

  • 通過調用 0xcc4187 合約位址的 0xe473d7ed 方法,檢查被盜地址的餘額及對授權給惡意合約的 Allowance;
  • 調用惡意合約(圖中的 TransparentUpgradeableProxy)的 Proxy 合約 0xd367b5 的 0xe5ee9334 方法:
    • 驗證 0xcc4187 合約位址的 Role 角色許可權;
    • 惡意合約作為 msg sender 調用 USDT-BEP20 的 transferFrom 函數,從而實現將授權給惡意合約的 Token 資產轉移到駭客獲利位址 0xFf6F。

MistTrack 分析

據 MistTrack 分析,駭客位址(0xFf6FC7eafF07C93b555a1CA2A9efcBbca2b8c83D)目前已獲利約 20 萬美元,包括多種代幣。

駭客初始資金來自 Tornado Cash 轉入的 0.098 BNB,且使用過 Venus, PancakeSwap, DinosaurEggs, WombatExchange:

接著,我們對惡意合約位址(0x3880285800a89AB3C4338bf455acdA3da6f8fA24)進行分析:

我們發現這個惡意合約在 MistTrack 里被標記為 King,也就是說這個合約位址是原來專案 King 的合約位址,該合約位址與 Kingfund Finance 也存在交互,King 和 Kingfund Finance 應該是同一個專案:

再看下惡意合約地址的建立者位址(0x37a7cA97b33b6a9D1d80D33bff9E38f156FF8541)被標記為 Kingfund Finance: Deployer。

我們在搜索這個專案信息的時候,發現這居然是個 RugPull 專案。 在 2022 年 1 月 19 日,Kingfund Finance 卷款帶走超 300 WBNB(約 141,000 美元),關閉了其官網和官方推特。 也就是說,目前還沒對這個惡意合約取消授權的使用者仍在被盜,慢霧安全團隊建議用戶及時取消對惡意合約的授權。

Dune 數據分析

(https://dune.com/misttrack/rugpull-malicious-authorization)

根據上述總結出的特徵及藉助 Dune 分析,我們還發現了另一個使用者在 2022 年 1 月授權了上述提到的惡意合約位址(0x3880285800a89AB3C4338bf455acdA3da6f8fA24),隨後在 5 月份又授權了另一個 RugPull 惡意合約位址(0x3a40AeC5453dB9b49ACb2993F0F82FB1553f4C23)。

該惡意合約的建立者(0x406119D496a3b0D1F0B7DA020B5e89d6FFf4Ff08)已將大部分獲利資金轉移到 Tornado Cash。

目前相關位址已被 MistTrack 拉黑。

總結

本文主要介紹了一個由於早年授權給 RugPull 專案導致後續資金持續被盜的案例,並根據相關特徵擴展出 Dune 數據集。 釣魚無孔不入,一不小心就中招,慢霧安全團隊建議使用者經常主動查看自己的授權情況,可以使用 RevokeCash、ScamSniffer、Rabby 等工具查詢,若發現有異常授權,請及時取消。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。