從EVM到Solana:如何避坑釣魚騙局
BlockBeats 律動財經 2024-07-02 15:30
從 EVM 到 Solana:如何避坑釣魚騙局
近期有一位用戶發文,講述了自己在 Solana 上被釣魚丟失了幾百萬人民幣資產的經過,據描述:他在 Maneki 項目的推文下方,誤點了回復里釣魚團伙發的鏈接進入網站。
令他費解的是,在交互的過程中,網站似乎沒有要求他做任何的代幣授權操作,駭客直接就得手了。當他意識到網站可能有問題,試圖轉走錢包中的代幣避免被盜的時候,卻發現多次嘗試都是交易失敗,再也無法轉出。
由於提供的細節有限,事發經過我們無法完整重現。但可以確定的是,用戶失去了對 Maneki 代幣帳戶的控制權,所以才會出現用戶試圖轉走錢包中的資產失敗。習慣了 EVM 的用戶可能會很疑惑,這帳戶控制權又是什麼呢?
這是由於 Solana 採用了不同於 EVM 鏈的實現方式,假如繼續按照 EVM 上的使用習慣來交互 Solana,拿着前朝的劍想殺當朝的官,無疑會面臨巨大的風險。
在 Solana 上想要愉快地玩耍,勢必要對 Solana 的特性與欺詐手法有所了解。為此我們也整理了一些 Sol 上那些與 EVM 有所不同的攻擊方式,希望能夠幫助不了解 Solana 的用戶避坑。
1. 鳩占鵲巢:代幣帳戶所有權轉移
我們開篇案例的主人公遭遇的就是這類攻擊,在 Solana 錢包中,對於每一個代幣,都會有一個單獨的帳戶(Token Account),類似於我們銀行卡中會有人民幣帳戶,美元帳戶等等,彼此之間是獨立開來的,而且每個代幣帳戶還會有一個所有者的屬性。
在默認情況下代幣帳戶的所有者會被指定為當前的錢包,但是這並不是寫死的,通過調用 createSetAuthorityInstruction 的操作,可以改變代幣帳戶的所有者,駭客正是利用了這個操作,誘導用戶將錢包中的某個代幣帳戶所有權轉移到他的錢包。
一旦成功,哪怕代幣還在錢包中,用戶卻無法將代幣轉出,這和代幣被盜沒什麼兩樣。
由於這個操作風險很高,因此 Phantom 和 @Backpack_CN 錢包都會攔截並提示該交易的風險,需要對交易進行二次確認,除非用戶一意孤行強行批准交易。
2.Solana 上不需要先授權再交易
在 EVM 上,釣魚合約如果想轉走受害者錢包中的代幣,需要用戶在代幣合約上對釣魚合約進行授權,獲得授權的釣魚合約才能發起交易轉走用戶的資產。
而在 Solana 上,approve 並非是授權而是批准交易,如果用戶把這當成的代幣授權的環節,一旦 approve 了,釣魚的交易就被發送出去,很難有挽救的餘地。
還有一個更危險的情況是:假設用戶在 EVM 上被誘導了授權代幣,此時受影響的只是單一代幣,其他未被授權的代幣不會被盜走。而 Solana 由於無需授權只要用戶批准即可轉移代幣,結合接下來要介紹的第三點特性,則可能會給用戶造成極大的損失。
3. 小心被誘導轉移多個代幣
Solana 的交易設計,允許在一筆交易中加入多個子交易,每個子交易可以完成一項交互,比如轉出某個代幣。相對 EVM 上的代幣轉移,每種代幣都需要一筆單獨的交易來完成,Solana 的這個特性提供了一定的便利。
比如大家的錢包中可能會存在著一些價值很低不到 1u 的代幣,sol-incinerator 便利用了這個特性允許用戶批量將錢包中的小額代幣發送並兌換回 SOL,而不需要多次兌換耗費大量的 Gas 也節省了操作時間。
有利便有弊,這個特性也給駭客作案帶來的極大的便利,只要成功矇騙到一次用戶確認交易,便可以將用戶錢包中的代幣、NFT 甚至是 SOL 都洗劫一空。因此如果看到一筆交易中包含大量的 TOKEN 轉移,就要小心是不是駭客利用了這個特性準備清空你的錢包。
4. 騙取交易簽名
在 EVM 中,permit 簽名由於其隱蔽性、不出現在授權者的錢包中等特性深受釣魚團伙的喜愛,目前有超過一半以上的釣魚攻擊方法都是它。而在 Solana 的世界,也有一種相似的方法:Durable Nonce(持久唯一數)。
Durable Nonce 的特性和 permit 類似,如果用戶在不知情的情況下簽署了交易,並不會立即丟失資產,也不會在自己的錢包中看到這筆交易,而是會把簽名過的交易資訊發送給釣魚團伙,再由他們來把交易發送到區塊鏈上,這種離線交易的特點與 permit 如出一轍,也同樣地危險。
由於 Solana 可以模擬交易結果,Durable Nonce 的可讀性比 permit 要好一些,用戶也更容易識別。所以釣魚團伙為了更順利地盜取用戶資產,還將 Durable Nonce 與合約升級結合起來,試圖以此瞞天過海避開交易模擬給用戶帶來的警告。
釣魚網站先使用正常的不含惡意交易的合約與用戶交互,此時錢包的交易模擬功能呈現出來的資訊是看不出來有什麼問題的。
而當用戶批准後,拿到用戶的簽名的釣魚團伙並不急於將交易廣播上鏈,而是等待一段時間後再將合約升級到包含惡意代碼的版本,最後將交易廣播上鏈,用戶會突然發現資產丟失,而自己沒有任何操作,因為有可能這筆簽名是幾天前做的。
這種升級後的攻擊方式極為隱蔽,危害也極大,目前的交易模擬功能暫時也無法展示出來風險。因此仍然要提高防範的意識,不要過於依賴錢包軟體的提醒和盲目信任交易模擬的結果。
結語
可以看到上述的這些功能特性,最初的設計目的都是希望降低用戶的使用門檻,提供更多的便利。沒曾想新技術和雙刃劍一樣,也給釣魚團伙提供了更多樣的攻擊手段。
就在寫下這篇文章的前夕,Solana 發布了 Action 和 Blink 這兩個新的功能,大家在對這兩個功能無限遐想的同時,也有人提出了釣魚團伙可能利用新功能來行騙的警告。
Solana 上的釣魚具有一鍵操作,隱蔽性高等特點,交易模擬功能由於 rpc 不穩定等原因有時並不能起作用,因此也不能完全依賴於這個功能。
建議有條件的用戶可結合 Keystone 硬體錢包來進行交互,等於增加了一次額外的確認,避免由於衝動或者誤點帶來的快速確認交易。
此外 Keystone 也在硬體端對交易進行了解析,在軟體錢包交易模擬失效的情況下,硬體端仍然能夠解析交易內容,提供最後一道防線。
區塊鏈的技術是在不斷發展與變革中進化的,我們憂心新技術帶來的風險,但卻也不能因此而停下腳步,釣魚團伙作為過街老鼠人人喊打,從業者包括硬體錢包、安全公司們也在不停地針對新的威脅迭代着解決方案。
作為普通用戶,時刻提醒自己不被「免費餡餅」沖昏頭腦,而是仔細檢查交易內容,在這樣的安全意識前提下,釣魚就很難得逞。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 加入鉅亨買幣LINE官方帳號索取免費課程
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇