Web3安全連載(3) | 深入揭秘NFT釣魚流程及防範技巧

點擊閱讀:Web3安全連載(1)當硬核黑客開始研究“釣魚” 你的NFT還安全嗎?

點擊閱讀:Web3安全連載(2)一文看懂典型的NFT合約漏洞有哪些?

我們推出連載系列的最後一篇——NFT釣魚流程及防範技巧,其中一類是盜取用戶簽名的釣魚攻擊,另一類是高仿域名和內容的NFT釣魚網站。那麼如果用戶不幸中招了怎麼辦呢?今天我們就來告訴你怎麼辦。

「釣魚網站是如何“釣”你的?」

第一種:盜取用戶簽名

在前兩篇文章裡,我們提到過該類釣魚網站主要是引誘用戶在釣魚網站簽名,如果用戶簽署了簽名,則釣魚網站可以獲取到用戶錢包中所有的NFT。具體的簽名內容如下:

上圖中紅框一顯示的是簽名請求的網站來源,紅框二顯示的是請求的簽名內容,由於顯示的內容是一串二進製字符,所以用戶其實不知道具體簽署的是什麼服務。

如果用戶點擊了“Sign”按鈕,則可能會授權一些無法預測的服務,包括一些危險操作,如:授權釣魚網站擁有用戶錢包中NFT的轉賬權限等。

第二種:高仿域名和內容的NFT釣魚網站

前面的的文章裡我們提到過該類釣魚網站主要分為三類,第一類是僅更換原官網的頂級域名,第二類是主域名添加單詞或符號進行混淆,第三類是添加二級域名進行混淆的釣魚網站。

涉及到的釣魚手法主要分為三種,第一種是偽造NFT項目官網誘騙用戶直接進行轉賬的釣魚網站,第二種是使用假空投誘騙用戶授權的釣魚網站,第三種是誘騙用戶輸入錢包助記詞的釣魚網站。下面將對其釣魚手法進行詳細介紹。

1.偽造官網引誘用戶直接轉賬

該類釣魚網站主要是通過偽造NFT項目官網UI界面,誘騙用戶連接錢包之後,點擊“mint”按鈕進行鑄幣。用戶點擊之後會向虛假的項目方地址轉賬,但是並不會收到對應的NFT。具體如下圖所示:

用戶進入到釣魚網站後,會首先點擊對應的“connect wallet”按鈕,連接錢包。之後UI界面會進行刷新,出現如圖所示的“mint”按鈕。通常頁面上還會出現類似“xx用戶已經mint了xxNFT”這樣的浮動標題,主要是為了刺激用戶趕緊點擊mint。如下圖所示:

用戶如果點擊“Mint”按鈕之後,一般情況下釣魚網站為了防止自己的轉賬黑地址洩露,會首先檢測錢包餘額是否為空。如果為空則不會進行交易,如果不為空才會彈出類似MetaMask的小狐狸錢包,進行交易。

2.假空投誘騙用戶進行NFT授權

該類釣魚網站主要是利用假空投等手段,誘騙用戶訪問釣魚網站。在用戶連接錢包後,就會出現“CLAIM NOW”等引誘用戶進行點擊的按鈕,用戶點擊之後就會對釣魚網站的黑地址進行授權。具體如下圖所示:

之後獲得授權的釣魚網站會將用戶錢包中的NFT全部轉走,具體如下圖所示:

下面是受害者被盜取的NFT交易:

3.誘騙用戶填寫助記詞

該類釣魚網站主要是在網頁連接錢包處,或者其他位置誘騙用戶點擊,之後彈出一個偽造的網頁,提示用戶諸如“MetaMask插件版本需要升級”等信息。如果用戶相信並填寫了自己的錢包助記詞,那麼用戶的私鑰就會上傳到攻擊者服務器導致用戶錢包被盜。具體如下圖所示:

該釣魚網站彈出如下信息,提示用戶檢測到了MetaMask的一個安全問題,需要用戶升級該錢包插件版本。如果用戶在框中輸入助記詞,則會導致錢包被盜。

注意,如上圖紅框處所示,該跳轉的釣魚頁面上網址並非是正常的域名網址,而變成了一串異常數值。用戶也可以通過對比MetaMask官網域名與該頁面異常網址識別釣魚頁面。

「必須學會的防範技巧」

一:防範簽名被盜

目前多數網站為了保護用戶安全已經不支持盲籤的簽名方式,但是如果用戶訪問某些網站時仍然遇到盲籤的情況,請盡量拒絕簽署。本文主要討論以下兩種非盲籤的情況下,用戶如何防範釣魚。

1.用戶簽署交易時需要確認簽署的內容

如上圖所示,用戶簽署授權時主要是對紅框部分的服務條款進行簽名,包括:提示用戶如果點擊“Sign”按鈕則代表接受網站的服務條款,這個請求不會發起交易或者消耗gas費,並且該授權狀態將在24小時後重置等。以及包括簽署簽名的用戶地址、Nonce值等。

2.用戶在進行交易簽名前,應進行多方信息交叉驗證,確保發起交易的網站是真官網。

二:防範高仿域名和內容的NFT釣魚網站

此前文章我們介紹了三種高仿域名和內容的NFT釣魚網站,其中第三種是直接誘騙用戶輸入助記詞。針對該類網站,用戶只需記住任何要求輸入助記詞的網頁都是不安全的即可。本文主要介紹其他兩種釣魚網站的相關防範措施:

1. 偽造官網引誘用戶直接轉賬

這類的釣魚網站通常域名和內容都跟原項目官網十分相似,用戶在訪問時需特別注意識別官網。

1)一般在訪問NFT官網時,首頁通常有官方社交媒體賬號,如:twitter、discord等。

目前很多NFT官方網站都不會直接提供“mint”功能,或將更多數量的NFT放到了諸如Opensea之類的交易所上進行售賣,如下圖所示:

同時,一般在NFT項目官網底部都會列舉出官網社交賬號,下圖紅框處從左往右依次是:Discord、twitter、traitsniper、opensea。

用戶可以訪問這些社交賬號,首先識別其賬號是否是官方賬號,通常直接在twitter上搜索項目名稱可以發現官方賬號,如果存在同名的情況那麼注意篩選出關注人數較多的賬號,具體如下圖所示:

上圖中顯示的第一個紅框就是NFT項目對應的官網,任何其他的網址都是釣魚網站;第二個紅框是該項目在其他平台上的官方鏈接,如:Opensea交易所等;第三個紅框是關注的人數,從人數上也可以對官方賬號進行篩選,當然也需要警惕釣魚大號,最好是進行信息交叉驗證,保證自己訪問的是官網。

2)假空投誘騙用戶進行NFT授權

攻擊者通常會通過Discord等社交賬號發布假空投的釣魚鏈接,這一類的釣魚網站往往難以識別真假,本文提出以下幾點建議希望幫助用戶減少損失。

a. 資產隔離

在進行這類危險交易時,可以採用資產隔離的方式進行,通常包括以下幾種類型:

錢包隔離:用戶可以將錢包根據用途分為兩類,第一類用於存儲資產,包括一些大額資產等,該類資產可以使用冷錢包存儲提高安全性;第二類用於資產交易,尤其是在進行諸如領取空投這樣的危險交易時,可以使用一些臨時錢包。臨時性的錢包包括:使用MetaMask之類的錢包重新創建一個地址裡面存儲很少的錢;或一些網絡錢包如:Burner Wallet等,該錢包可以通過在網頁上簡單地設置轉賬的參數,如:轉賬地址、金額等,就可以生成一個臨時性的小額交易二維碼,如下圖所示:

交易媒介隔離:通常指的是用戶在交易時使用的PC、瀏覽器等,可以在進行一些可能存在的危險交易時使用不同的PC,或者使用不同的瀏覽器。

b. 使用項目方智能合約進行mint()

上文提到有很多騙局在推廣免費空投領取時,“mint”按鈕實際上觸發的是請求用戶簽名的操作,一旦點擊將會批准釣魚網站轉移用戶的NFT。所以如果能夠確定領取空投的合約地址,直接調用智能合約裡的mint()方法是更安全的方式,下圖是某NFT的合約:

如上圖所示,首先點擊“contract”,之後選擇“Write Contract”頁簽,接下來需要點擊“Connect to Web3”按鈕,連接錢包。如下圖所示:

接著點擊mint()方法,設置mint需要的NFT數量和金額,點擊“Write”按鈕即可。這種方式因為是直接調用的合約方法,所以不存在被釣魚網站盜用簽名的情況。但是,用戶在調用NFT合約時需注意同樣需要交叉驗證項目合約的地址,避免被釣魚合約誘導受騙。

c. 確認消息源

如果用戶收到領取空投的釣魚網站鏈接,首先需要確認信息源,一般可以在官方twitter等社交賬號上確認下有沒有發布的空投消息。如果沒有的話,請不要隨意點擊其他渠道上發布的空投鏈接。

Total
0
Shares
Related Posts