SharkTeam:Web3常見釣魚方式分析與安全防範建議

2024-05-24 16:05:45

Web3釣魚是一種針對Web3用戶的常見攻擊手段,通過各種方式竊取用戶的授權、籤名,或誘導用戶進行誤操作,目的是盜竊用戶錢包中的加密資產。

近年來,Web3釣魚事件不斷出現,且發展出釣魚即服務的黑色產業鏈(Drainer as a Service, DaaS),安全形勢嚴峻。

本文中,SharkTeam將對常見的Web3釣魚方式進行系統分析並給出安全防範建議,供大家參考,希望能幫助用戶更好的識別釣魚騙局,保護自身的加密資產安全。

一、常見釣魚手法分析

1. Permit鏈下籤名釣魚

Permit是針對ERC-20標准下授權的一個擴展功能,簡單來說就是你可以籤名批准其他地址來挪動你的Token。其原理是你通過籤名的方式表示被授權的地址可以通過這個籤名來使用你的代幣,然後被授權的地址拿着你的籤名進行鏈上permit交互後就獲取了調用授權並可以轉走你的資產。Permit鏈下籤名釣魚通常分為三步:

(1)攻擊者僞造釣魚鏈接或釣魚網站,誘導用戶通過錢包進行籤名(無合約交互,不上鏈)。

籤名對象:DAI/USDC/WETH等ERC20代幣(這裏是DAI)

holder://籤名地址

spender://釣魚者地址

nonce:0

expiry:1988064000 //過期時間

allowed:true

如果籤名了,釣魚者就從受害者這邊獲得了用於盜出DAI/USDC/WETH等ERC20代幣(這裏是DAI)的籤名(一段r, s, v 值,釣魚者與permit函數交互時需要用到)。

(2)攻擊者調用permit函數,完成授權。

https://etherscan.io/tx/0x1fe75ad73f19cc4c3b658889dae552bb90cf5cef402789d256ff7c3e091bb662

(3)攻擊者調用transferFrom函數,將受害者資產轉出,完成攻擊。

在這裏先說明一下transfer和transferFrom的區別,當我們直接進行ERC20轉账的時候,通常是調用ERC20合約中的transfer函數,而transferFrom通常是在授權第三方將我們錢包內的ERC20轉移給其他地址時使用。

https://etherscan.io/tx/0x9c02340896e238fc667c1d84fec78af99b1642c986fe3a81602903af498eb938

補充說明:這種籤名是一個無Gas的鏈下籤名,攻擊者拿到後會執行permit和transferFrom鏈上交互,所以在受害人地址的鏈上記錄中看不到授權記錄,在攻擊者地址中可以看到。一般來說這種籤名是一次性的,不會重復或持續產生釣魚風險。

2. Permit2鏈下籤名釣魚

Permit2是Uniswap為了方便用戶使用,在2022年底推出的一個智能合約,它是一個代幣審批合約,允許代幣授權在不同的DApp中共享和管理,未來隨着越來越多的項目與Permit2 集成,Permit2合約可以在DApp生態系統中實現更加統一的授權管理體驗,並且節約用戶交易成本。

Permit2出現之前,在Uniswap上進行代幣兌換需要先授權(Approve)再兌換(Swap),需要操作兩次,也需要花費兩筆交易的Gas費。在Permit2推出後,用戶一次性把額度全部授權給Uniswap的Permit2合約,之後的每次兌換只需要進行鏈下籤名即可。

Permit2雖然提高了用戶的體驗,但隨之而來是針對Permit2籤名的釣魚攻擊。和Permit鏈下籤名釣魚類似,Permit2也是鏈下籤名釣魚,此種攻擊主要分為四步:

(1)前提條件是用戶的錢包在被釣魚之前已使用過Uniswap並將代幣額度授權給了Uniswap的Permit2合約(Permit2默認會讓用戶授權該代幣的全部余額的額度)。

https://etherscan.io/tx/0xd8f0333b9e0db7175c38c37e490379bde5c83a916bdaa2b9d46ee6bff4412e8f

(2)攻擊者僞造釣魚鏈接或釣魚頁面,誘導用戶進行籤名,釣魚攻擊者獲取所需的籤名信息,和Permit鏈下籤名釣魚類似。

(3)攻擊者調用Permit2合約的permit函數,完成授權。

https://etherscan.io/tx/0xd8c3f55dfbc8b368134e6236b296563f506827bd5dc4d6c0df39851fd219d658

(4)攻擊者調用Permit2合約的transferFrom函數,將受害者資產轉出,完成攻擊。

https://etherscan.io/tx/0xf6461e003a55f8ecbe919a47b3c0dc6d0f068e48a941658329e35dc703138486

補充說明:這裏攻擊者接收資產的地址通常有多個,通常其中一個金額最大的接收者是實施釣魚的攻擊者,另外的則是提供釣魚即服務的黑產地址(釣魚即服務DaaS的供應商地址,例如PinkDrainer、InfernoDrainer、AngelDrainer等)。

3. eth_sign 鏈上盲籤釣魚

eth_sign是一種开放式籤名方法,可以對任意哈希進行籤名,攻擊者只需構造出任意惡意需籤名數據(如:代幣轉账,合約調用、獲取授權等)並誘導用戶通過 eth_sign 進行籤名即可完成攻擊。

MetaMask在進行eth_sign籤名時會有風險提示,imToken、OneKey等Web3錢包均已禁用此函數或提供風險提示,建議所有錢包廠商禁用此方法,防止用戶因缺乏安全意識或必要的技術積累被攻擊。

4. personal_sign/signTypedData 鏈上籤名釣魚

personal_sign、signTypedData是常用的籤名方式,通常用戶需要仔細核對發起者、域名、籤名內容等是否安全,如果是有風險的,要格外警惕。

此外,如果像上面這種情況personal_sign、signTypedData被用成“盲籤”,用戶看不到明文,容易被釣魚團夥利用,也會增加釣魚風險。

5. 授權釣魚

攻擊者通過僞造惡意網站,或者在項目官網上掛馬,誘導用戶對setApprovalForAll、Approve、Increase Approval、Increase Allowance等操作進行確認,獲取用戶的資產操作授權並實施盜竊。

(1)setApprovalForAll

以PREMINT掛馬釣魚事件為例,項目方網站上的一個js文件(https://s3-redwood-labs.premint.xyz/theme/js/boomerang.min.js)被注入了惡意代碼,執行後會動態創建注入惡意js文件(https://s3-redwood-labs-premint-xyz.com/cdn.min.js?v=1658050292559)。攻擊由這個惡意腳本發起。

用戶因未及時發現風險,對setApprovalForAll操作進行了確認,無意間泄漏了對資產的操作授權,導致資產被盜。

(2)Approve

與setApprovalForAll類似,用戶對Approve操作進行了確認,泄漏了對資產的操作授權,導致資產被盜。

Approve誤授權:

https://etherscan.io/tx/0x4b0655a5b75a9c078653939101fffc1d08ff7e5c89b0695ca6db5998214353fa

攻擊者通過transferFrom轉移資產:

https://etherscan.io/tx/0x0dedf25777ff5483bf71e70e031aacbaf50124f7ebb6804beb17aee2c15c33e8

Increase Approval和Increase Allowance函數攻擊原理也與此類似,默認狀態下攻擊者對受害者地址代幣的操作上限額度為0,但經過這兩個函數的授權之後,攻擊者提高了對受害者代幣的操作上限,隨後就能將該額度的代幣轉移。

(3)Increase Approval

Increase Approval誤授權:

https://etherscan.io/tx/0x7ae694080e2ad007fd6fa25f9a22ca0bbbff4358b9bc84cc0a5ba7872118a223

攻擊者通過transferFrom轉移資產:

https://etherscan.io/tx/0x15bc5516ed7490041904f1a4c594c33740060e0f0271cb89fe9ed43c974a7a69

(4)Increase Allowance

Increase Allowance誤授權:

https://etherscan.io/tx/0xbb4fe89c03d8321c5bfed612fb76f0756ac7e99c1efaf7c4d99d99f850d4de53

攻擊者通過transferFrom轉移資產:

https://etherscan.io/tx/0xb91d7b1440745aa07409be36666bc291ecc661e424b21b855698d488949b920f

6. 地址污染釣魚

地址污染釣魚也是近期猖獗的釣魚手段之一,攻擊者監控鏈上交易,之後根據目標用戶歷史交易中的對手地址進行惡意地址僞造,通常前4~6位和後4~6位與正確的對手方地址方相同,然後用這些惡意僞造地址向目標用戶地址進行小額轉账或無價值代幣轉账。

如果目標用戶在後續交易中,因個人習慣從歷史交易訂單中復制對手地址進行轉账,則極有可能因為大意將資產誤轉到惡意地址上。

2024年5月3日就因為此地址污染釣魚手法被釣魚1155WBTC,價值超過7千萬美元。

正確地址:0xd9A1b0B1e1aE382DbDc898Ea68012FfcB2853a91

惡意地址:0xd9A1C3788D81257612E2581A6ea0aDa244853a91

正常交易:

https://etherscan.io/tx/0xb18ab131d251f7429c56a2ae2b1b75ce104fe9e83315a0c71ccf2b20267683ac

地址污染:

https://etherscan.io/tx/0x87c6e5d56fea35315ba283de8b6422ad390b6b9d8d399d9b93a9051a3e11bf73

誤轉交易:

https://etherscan.io/tx/0x3374abc5a9c766ba709651399b6e6162de97ca986abc23f423a9d893c8f5f570

7. 更隱蔽的釣魚,利用CREATE2繞過安全檢測

目前,各錢包和安全插件已逐步實現對釣魚黑名單和常見釣魚方式的可視化風險提醒,對籤名信息也展示的愈發完整,提高了普通用戶識別釣魚攻擊的能力。但攻防技術總是在相互對抗又不斷發展的,更隱蔽的釣魚方式也在不斷出現,需要提高警惕。利用CREATE2繞過錢包和安全插件的黑名單檢測就是近期比較常見的方式。

Create2是以太坊'Constantinople'升級時引入的操作碼,允許用戶在以太坊上創建智能合約。原來的Create操作碼是根據創建者的地址和nonce來生成新地址的,Create2允許用戶在合約部署前計算地址。Create2對以太坊开發者來說是一個非常強大的工具,可以實現先進和靈活的合約交互、基於參數的合約地址預計算、鏈下交易和特定分布式應用的靈活部署和適配。

Create2在帶來好處的同時也帶來了新的安全風險。Create2可以被濫用來生成沒有惡意交易歷史的新地址,繞過錢包的黑名單檢測和安全告警。當受害者籤署惡意交易時,攻擊者就可以在預先計算的地址上部署合約,並將受害者的資產轉账到該地址,且這是一個不可逆的過程。

該攻擊特點:

(1) 允許預測性創建合約地址,使攻擊者能夠在部署合約之前欺騙用戶授予權限。

(2) 由於授權時合約尚未部署,因此攻擊地址是一個新地址,檢測工具無法基於歷史黑名單來進行預警,具有更高的隱蔽性。

以下是一個利用CREATE2進行釣魚的示例:

https://etherscan.io/tx/0x83f6bfde97f2fe60d2a4a1f55f9c4ea476c9d87fa0fcd0c1c3592ad6a539ed14

在這筆交易中,受害者把地址中的sfrxETH轉給了惡意地址(0x4D9f77),該地址是一個新的合約地址,沒有任何交易記錄。

但是打开這個合約的創建交易可以發現,該合約在創建的同時完成了釣魚攻擊,將資產從受害者地址轉出。

https://etherscan.io/tx/0x77c79f9c865c64f76dc7f9dff978a0b8081dce72cab7c256ac52a764376f8e52

查看該交易的執行情況,可以看到0x4d9f7773deb9cc44b34066f5e36a5ec98ac92d40是在調用CREATE2之後創建的。

另外,通過分析PinkDrainer的相關地址可以發現,該地址每天都在通過CREATE2創建新的合約地址進行釣魚。

https://etherscan.io/address/0x5d775caa7a0a56cd2d56a480b0f92e3900fe9722#internaltx

二、釣魚即服務

釣魚攻擊日益猖獗,也因不法獲利頗豐,已逐步發展出以釣魚即服務(Drainer as a Service, DaaS)的黑色產業鏈,比較活躍的如Inferno/MS/Angel/Monkey/Venom/Pink/Pussy/Medusa 等,釣魚攻擊者購买這些DaaS服務,快速且低門檻的構建出成千上萬釣魚網站、欺詐账號等,如洪水猛獸衝進這個行業,威脅着用戶的資產安全。

以Inferno Drainer 為例,這是一個臭名昭著的網絡釣魚團夥,他們通過在不同網站上嵌入惡意腳本來實現釣魚。例如,他們通過傳播seaport.js、coinbase.js、wallet-connect.js僞裝成流行的 Web3 協議功能(Seaport、WalletConnect 和 Coinbase)誘導用戶集成或點擊,在得到用戶確認後,會自動將用戶資產轉到攻擊者地址中。目前已發現超過 14,000 個包含惡意 Seaport腳本的網站,超過 5,500 個包含惡意 WalletConnect 腳本的網站,超過 550 個包含惡意 Coinbase腳本的網站,以及超過 16,000 個與Inferno Drainer有關的惡意域名,超過 100 個加密品牌的品牌名稱受到影響。如下是一個Inferno Drainer相關的釣魚網站。

該網站的 head 部分包含seaport.js 和 wallet-connect.js兩個惡意腳本。Inferno Drainer 釣魚網站的另一個典型特徵是用戶無法通過鼠標右鍵打开網站源代碼,這使得這些釣魚網站的隱蔽性更高。

在釣魚即服務框架下,通常20% 的被盜資產被自動轉移給 Inferno Drainer 的組織者地址,釣魚實施者保留剩余的 80%。除此之外,Inferno Drainer 定期提供創建和托管網絡釣魚網站的免費服務,有時釣魚服務也會要求收取被騙資金的 30% 的費用,這些網絡釣魚網站是為那些能夠吸引受害者訪問但缺乏創建和托管網站的技術能力或根本不想自己執行此任務的釣魚攻擊者設計的。

那么,這種DaaS騙局是如何運行的,下圖是Inferno Drainer 的加密詐騙方案的分步描述:

(1) Inferno Drainer通過名為 Inferno Multichain Drainer 的 Telegram 頻道推廣他們的服務,有時攻擊者也通過Inferno Drainer的網站訪問該服務。

(2) 攻擊者通過DaaS服務功能,設置並生成屬於自己的釣魚網站,並通過 X(Twitter)、Discord 和其他社交媒體進行傳播。

(3) 受害者被誘導並掃描這些釣魚網站上包含的二維碼或其他方式來連接他們的錢包。

(4) Drainer 檢查受害者最有價值、最容易轉移的資產,並初始化惡意交易。

(5) 受害者確認了這筆交易。

(6) 資產被轉移給犯罪分子。 在被盜資產中,20% 轉移給 Inferno Drainer 开發商,80% 轉移給釣魚攻擊者。

下圖為DaaS服務頁面,Inferno Drainer向客戶顯示他們的統計數據:連接數量(受害者已將錢包連接到釣魚網站)、成功點擊(如果受害者已確認交易)以及被盜資產的價值。

DaaS服務的每個客戶都可以自定義屬於自己的Drainer功能:

三、安全建議

(1)首先,用戶一定不要點擊僞裝成獎勵、空投等利好消息的不明鏈接;

(2)官方社媒账戶被盜事件也越來越多,官方發布的消息也可能是釣魚信息,官方消息也不等於絕對安全;

(3)在使用錢包、DApp等應用時,一定要注意甄別,謹防僞造站點、僞造App;

(4)任何需要確認的交易或籤名的消息都需要謹慎,盡量從目標、內容等信息上進行交叉確認。拒絕盲籤,保持警惕,懷疑一切,確保每一步操作都是明確和安全的。

(5)另外,用戶需要對本文提到的常見釣魚攻擊方式有所了解,要學會主動識別釣魚特徵。掌握常見籤名、授權函數及其風險,掌握Interactive(交互網址)、Owner(授權方地址)、Spender(被授權方地址)、Value(授權數量)、Nonce(隨機數)、Deadline(過期時間)、transfer/transferFrom(轉账)等字段內容。

參考文獻

https://x.com/evilcos/status/1661224434651529218

https://x.com/RevokeCash/status/1648694185942450177

https://web3caff.com/zh/archives/63069

https://www.group-ib.com/blog/inferno-drainer/

https://blocksec.com/blog/how-phishing-websites-bypass-wallet-security-alerts-strategies-unveiled

About us

SharkTeam的愿景是保護Web3世界的安全。團隊由來自世界各地的經驗豐富的安全專業人士和高級研究人員組成,精通區塊鏈和智能合約底層理論。提供包括風險識別與阻斷、智能合約審計、KYT/AML、鏈上分析等服務,並打造了鏈上智能風險識別與阻斷平臺ChainAegis,能有效對抗Web3世界的高級持續性威脅(Advanced Persistent Threat,APT)。已與Web3生態各領域的關鍵參與者,如Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land、TinTinLand等建立長期合作關系。


鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

Layer2 格局劇變:Base 生態有哪些關鍵亮點?

在激烈競爭的 L2 賽道中,原本穩坐釣魚臺的 Arbitrum 和 Optimism 似乎面臨着前...

加密泡泡啊
120 3個月前

XRP 漲至 7.5 美元?分析師告訴 XRP 大軍為純粹的煙火做好准備!

加密貨幣分析師 EGRAG 表示,XRP 即將迎來關鍵時刻,價格可能大幅上漲,這取決於能否突破關鍵...

加密泡泡啊
128 3個月前

以太坊ETF通過後 將推動山寨幣和整個加密生態大爆發

比特幣ETF通過後市場動蕩,以太坊ETF交易前景分析 比特幣ETF通過後,市場出現了先跌後漲的走勢...

加密泡泡啊
144 3個月前

ZRO為啥這么能漲?

ZRO概述 ZRO代幣,全稱為LayerZero,是LayerZero協議的本地代幣,旨在作為治理...

加密泡泡啊
105 3個月前

今晚ETH迎來暴漲時代 op、arb、metis等以太坊二層項目能否跑出百倍幣?

北京時間7月23日晚上美股开盤後 ETH 的ETF开始交易。ETH的裏程碑啊,新的時代开啓。突破前...

BNBCCC
125 3個月前

Mt Gox 轉移 28 億美元比特幣 加密貨幣下跌 ETH ETF 提前發行

2014 年倒閉的臭名昭著的比特幣交易所 Mt Gox 已向債權人轉移了大量比特幣 (BTC),作...

加密圈探長
113 3個月前