header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

從EVM到Solana:如何避坑釣魚騙局

閱讀本文需 11 分鐘
本文整理了 Sol 上與 EVM 有所不同的攻擊方式,希望能幫助不了解 Solana 的使用者避坑。
原文來源:Keystone 中文


從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 也在硬體端對交易進行了解析,在軟體錢包交易模擬失效的情況下,硬體端仍然能夠解析交易內容,提供最後一道防線。


區塊鏈的技術是在不斷發展與變革中進化的,我們憂心新技術帶來的風險,但卻也不能因此而停下腳步,釣魚團夥身為過街老鼠人人喊打,從業人員包括硬體錢包、保全公司們也不停地針對新的威脅迭代著解決方案。


作為普通用戶,時時提醒自己不被「免費派」沖昏頭腦,而是仔細檢查交易內容,在這樣的安全意識前提下,釣魚就很難得逞。

原文連結


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交