一文讀懂Web3.0移動錢包獨特釣魚攻擊手法Modal Phishing

 一文讀懂Web3.0移動錢包又現獨特釣魚攻擊手法Modal Phishing

我們最近發現了一種新型的網路釣魚技術,可用於在連線的去中心化應用(DApp)身份方面誤導受害者。

我們將這種新型的網路釣魚技術命名為 Modal Phishing(模態釣魚攻擊)。

攻擊者可以向移動錢包傳送偽造的虛假資訊冒充合法的 DApp,並透過在移動錢包的模態視窗中顯示誤導性資訊來誘騙受害者批准交易。這種網路釣魚技術正在廣泛使用。我們與相應的元件開發人員進行了溝通,並確認他們將釋出新的驗證 API 以降低該風險。

什麼是 Modal Phishing?

在 CertiK 對移動錢包的安全研究中,我們注意到Web3.0  貨幣錢包的某些使用者介面(UI)元素可以被攻擊者控制用來進行網路釣魚攻擊。我們將這種釣魚技術命名為 Modal Phishing,因為攻擊者主要針對加密錢包的模態視窗進行釣魚攻擊。

模態(或模態視窗)是移動應用程序中經常使用的 UI 元素。模態通常顯示在應用程序主視窗頂部。這樣的設計通常用於方便使用者執行快速操作,如批准/拒絕Web3.0 貨幣錢包的交易請求。

Web3.0 貨幣錢包上的典型模態設計通常提供供使用者檢查簽名等請求的必要資訊,以及批准或拒絕請求的按鈕。

真實交易批准模式與網路釣魚交易批准模式對比

在上方截圖中,我們展示了 Metamask 上一個常規的交易審批模態視窗是如何出現的。

當一個新的交易請求被連線的去中心化應用程序(DApp)初始化時,錢包會展示一個新的模態視窗,並要求使用者進行人工確認。

如上圖左側所示,模態視窗通常包含請求者的身份,如網站地址(此例中為 localhost)、圖示等。如 Metamask 這樣的一些錢包也會顯示有關請求的關鍵資訊,在例項中我們看到一些 UI 元素被標記為“Confirm”,以提示使用者這是一個常規的交易請求。

然而,這些使用者介面元素可以被攻擊者控制以進行 Modal Phishing 攻擊。在右側的截圖中,我們可以看到攻擊者可以更改交易細節,並將交易請求偽裝成來自“Metamask”的“Security Update”請求,以誘使使用者批准。

如截圖所示,攻擊者可以操縱多個 UI 元素。

因此我們將在本文中為大家分享兩個典型案例,並確定那些可被攻擊者控制的 UI 元素。

詳細資訊如下:

① 如果使用 Wallet Connect 協議,攻擊者可以控制 DApp 資訊 UI 元素(名稱、圖示等) 。

② 攻擊者可以控制某些錢包應用中的智慧合約資訊 UI 元素。

攻擊者控制的 Modal 和相關的資訊源(DApp 資訊和方法名稱)示例

示例①:透過 Wallet Connect 進行 DApp 釣魚攻擊

Wallet Connect 協議是一個廣受歡迎的開源協議,用於透過二維碼或深度連結將使用者的錢包與 DApp 連線。使用者可以透過 Wallet Connect 協議將他們的錢包與 DApp 連線起來,然後與該協議進行進行交易或轉賬。

在Web3.0 貨幣錢包和 DApp 之間的配對過程中,我們注意到Web3.0 貨幣錢包會展示一個模態視窗,顯示傳入配對請求的元資訊——包括 DApp 的名稱,網站地址,圖示和描述。Web3.0 錢包展示的這些資訊和方式根據 DApp 名稱、圖示和網站地址不同而變化,以供使用者檢視。

但是這些資訊是 DApp 提供的,錢包並不驗證其所提供資訊是否合法真實。比如在網路釣魚攻擊中,某雷碧可以假稱為某雪碧(均為 DApp),而後在使用者發起交易請求之前誘騙使用者與其連線。

小夥伴們可以複製連結【https://www.youtube.com/watch? v=x 6 muJmDBC 3 o】到瀏覽器檢視 CertiK 為此做的一個小測試。

在該影片中,CertiK 展示了攻擊者是如何「欺瞞」Uniswap DApp 的——攻擊者聲稱自己是 Uniswap DApp,並連線 Metamask 錢包,以此欺騙使用者批准傳入的交易。

在配對過程中,錢包內顯示的模態視窗呈現了合規 Uniswap DApp 的名稱、網站網址和網站圖示。

由於網址中使用了 https 方案,所以還顯示了一個掛鎖圖示,這樣顯得模態視窗更為逼真和合法了。在配對過程中,只要受害者想在假 Uniswap 網站上進行交易操作,攻擊者就可以替換交易請求引數(如目的地地址和交易金額)來竊取受害者的資金。

請注意,雖然不同的錢包上的模態設計不同,但攻擊者是始終可以控制元資訊的。

下圖展示了當我們將 ZenGo 和1Inch錢包連線到釣魚網站的 DApp 時,配對批准模式的樣子。

如上例所示,被大規模使用的 Wallet Connect 協議並未驗證配對的 DApp 資訊的合法性。被操縱的元資訊被錢包應用程序進一步使用並呈現給使用者,這可以被用來進行 Modal Phishing。作為一個潛在的解決方案,Wallet Connect 協議可以提前驗證 DApp 資訊的有效性和合法性。Wallet Connect 的開發人員已經承認了知曉這個問題,並正在研究相關解決方案。

示例② :透過 MetaMask 進行智慧合約資訊網路釣魚

你可能已經注意到,在 Metamask 批准模態的圖示或網站名稱下,有另一個檢視,顯示了一個不固定的字串例如“Confirm”或“Unknown Method”。這個 UI 元素是由 Metamask 設計的,用於識別相應的交易型別。

在呈現交易批准模態時,Metamask 會讀取智慧合約的簽名位元組,並使用鏈上方法登錄檔查詢相應的方法名稱,如以下程式碼所示。然而,這也會在模態上建立另一個可以被攻擊者控制的 UI 元素。

 MetaMask 的智慧合約方法名稱說明

我們可以看到 Metamask 上有一個交易請求模態,其被標記為“Security Update”。攻擊者建立了一個釣魚智慧合約,其有一個 SecurityUpdate 具備支付函式功能,並允許受害者將資金轉入該智慧合約。

攻擊者還使用 SignatureReg 將方法簽名註冊為人類可讀的字串“SecurityUpdate”中。如前所述,當 Metamask 解析這個釣魚智慧合約時,它使用函式簽名位元組查詢相應的函式方法,並在批准模態中呈現給使用者。

從這個智慧合約的交易可以看出,這個特定的釣魚智慧合約已經執行了 200 多天。

開發者應該時刻注意監測那些會向使用者呈現的內容,並採取預防措施過濾掉可能被用於網路釣魚攻擊的詞語。

寫在最後

在本文中,我們為大家展示了Web3.0 貨幣錢包上不應盲目信任的常見 UI 元件——模態視窗。

模態視窗中的某些 UI 元素可以被攻擊者操縱,以創造出非常「真實且有說服力」的釣魚陷阱。因此,我們將這種新的網路釣魚技術命名為 Modal Phishin(模態釣魚攻擊)。

這種攻擊發生的根本原因是錢包應用程序沒有徹底驗證所呈現的 UI 元素的合法性。

例如,錢包應用程序直接信任來自 Wallet Connect SDK 的後設資料,並將其呈現給了使用者。

Wallet Connect SDK 也並不驗證傳入的後設資料,這在某些情況下使得呈現的後設資料可以被攻擊者控制。在 Metamask 中,我們可以看到類似的攻擊原理也被攻擊者濫用,在模態視窗中顯示欺詐性的智慧合約函式方法名稱。

總體而言,我們認為錢包應用程序的開發者應該始終假設外部傳入的資料是不可信的。開發者應該仔細選擇向使用者展示哪些資訊,並驗證這些資訊的合法性。除此之外,使用者也應透過對每個未知的交易請求保持懷疑的態度來守好自己安全上的「一畝三分地」。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *