全面梳理區塊鏈詐騙攻擊案例及防範措施

語言: CN / TW / HK

SeeDAO IR導言:據安全數據顯示,今年以來有記錄的因詐騙和安全漏洞帶來的加密領域損失已近30億美元。每一個區塊鏈行業的參與者都無異於身處“大西部”,無時不刻受到隱私、財產損失的風險。

雖然業內已經有部分對區塊鏈詐騙、安全漏洞進行分析的工作,但大多隻是針對某些案例,或者對背後機制的討論不夠深入。因此,我們很高興為大家帶來這篇由兩位網絡安全領域的專家所撰寫的萬字長文,為大家全面且深入的分析當前幾乎所有安全隱患並提供應對策略。

0.前言

自網絡誕生以來,攻防領域就一直是研究的熱點;區塊鏈誕生之後由於其巨大的財富效應與用户對安全的認識不足,吸引了無數的黑客挖空心思進行攻擊。在近幾年Defi與 NFT 高速發展的環境下,利用區塊鏈網絡實施的釣魚詐騙攻擊更是越來越多,各類攻擊場景及攻擊方法層出不窮。

本文前半部分闡述了區塊鏈安全 基礎知識 ,重點闡述了用户在使用區塊鏈相關應用時應重點關注的安全要素。後半部分整理常見的利用區塊鏈欺騙用户資產的攻擊案例,通過對黑客攻擊手法進行分析,引出針對特定攻擊手段的防護方案。

1.區塊鏈安全基礎

區塊鏈安全基礎思維導圖

根據柯克霍夫原則,即使已掌握了密碼系統的運作步驟,但是在密鑰未被泄露的前提下,密碼系統仍然是安全的。在區塊鏈環境下,保護 錢包 私鑰,是保護鏈上數字資產的重要措施和前提。

1.1 私鑰及助記詞安全

區塊鏈錢包軟件所管理的私鑰通常是256bit長的隨機字符串,為便於展示區塊鏈錢包工具會將256bit數據轉換為32字節長的16進制編碼。“0x40e667191f4497cc3ab018ceb524a32c2f4875fbfb0103322767f46f5b319244”即為區塊鏈錢包軟件生成的錢包私鑰。通過將私鑰導入區塊鏈錢包,用户即可掌握錢包內對應的數字資產。利用橢圓曲線密碼框架, 開發者 可以利用私鑰數據便捷的計算出與之對應的公鑰信息,通過對公鑰進行keccak256運算[7]並取運算結果的最後20字節,即獲得區塊鏈錢包地址。使用以太坊ethers工具庫生成公私鑰,並根據公鑰信息計算錢包地址的代碼運行結果如下圖所示:

公私鑰生成錢包地址方法

考慮到哈希運算具有抗強碰撞和弱碰撞特性,因此在不掌握錢包私鑰的前提下攻擊者難以通過隨機碰撞的方式構造出兩個完全一致的區塊鏈錢包地址。為便於用户記憶及保存,在BIP39提升改進計劃中引入了使用助記詞表示區塊鏈錢包私鑰的方法。為便於理解,讀者可以認為一組由12、15、18、21或24個單詞組成的助記詞列表即對應一組區塊鏈錢包私鑰。 在助記詞處於保密狀態時,用户的錢包私鑰及數字資產是安全的。

在創建區塊鏈錢包時,助記詞及私鑰數據是異常敏感的,在進行敏感操作前用户檢查周邊環境是否有可疑人物、高清攝像頭等可能產生窺屏事件的不安全因素。用户通常需要使用紙筆或助記詞鋼板記錄錢包助記詞並妥善保存(如鎖入保險箱)。在使用區塊鏈網絡時,用户應當做到不向任何人透露與助記詞及私鑰相關的任何信息,切實保障用户數字資產的安全性。

1.2 智能合約 安全

智能合約的出現使以太坊網絡相較比特幣網絡具備了更好的延展性,開發者可通過以太坊提供的SDK開發工具編寫智能合約代碼便捷的開發DAPP。在以太坊中,智能合約是一種部署後則代碼邏輯無法被篡改的計算機程序。待智能合約部署後,區塊鏈用户即可以按照智能合約對應的代碼邏輯與合約進行交互。

用户在與智能合約交互前,應檢查:1)智能合約代碼是否已通過區塊鏈瀏覽器完成了開源操作;2)對智能合約代碼關鍵邏輯(例如要調用的智能合約方法)進行審計,待確保代碼不存在惡意使用或轉移用户數字資產的敏感行為後,再調用智能合約方法。

調用經過合約開源認證或已通過知名智能合約審計公司安全性審計的智能合約方法,能夠在一定程度上保障用户持有數字資產的安全性。

1.3 區塊鏈錢包安全

區塊鏈錢包軟件為其用户提供了私鑰管理,錢包賬户管理,遠程過程調用(RPC)節點管理、交易簽名、交易管理、與智能合約交互及硬件錢包連接等功能。區塊鏈錢包軟件存在的重要作用就是為用户提供了一個界面友好的私鑰容器、密鑰管理系統及交易簽名代理工具,確保用户能夠在不具備管理私鑰及區塊鏈交易廣播工具能力的基礎上,能夠便捷的與區塊鏈網絡進行交互。

從錢包是否與互聯網存在直接連接進行分類,區塊鏈錢包劃分為1)冷錢包;2)熱錢包。

從錢包運行平台進行分類,錢包可以劃分為1)PC主機錢包;2)瀏覽器插件錢包;3)移動手機端錢包;4)硬件錢包;5)網頁錢包等。

優先選擇從官方渠道分發的區塊鏈錢包軟件。以瀏覽器插件錢包為例,用户可以從官方網站,瀏覽器應用商店,插件錢包官方Github倉庫等渠道下載並安裝瀏覽器插件錢包。在日常使用過程中,需要定期更新區塊鏈錢包、底層操作系統、瀏覽器並保持其版本總是處於最新狀態,以此來保護用户持有的數字資產安全。

在使用區塊鏈錢包軟件時, 用户應設置強解鎖口令以避免遭受口令爆破攻擊。 在離開電腦前,應主動鎖定屏幕和錢包,以避免遭遇因電腦錢包處於未鎖定狀態導致數字資產被濫用。Metamask錢包提供的自動鎖定定時功能如下所示。

5分鐘後錢包自動鎖定

用户應當優先選擇官方渠道購買的硬件錢包。待收到錢包後,需要訪問硬件錢包官方網站對錢包完整性及固件版本進行驗證,以避免遭受供應鏈攻擊。針對硬件錢包實施的攻擊層出不窮:在使用硬件錢包簽名交易時,用户需查看待簽名交易的完整內容,並對交易合法性進行認證,避免進行盲簽名,以避免遭受非法交易簽名攻擊進而丟失數字資產。

用户在收到硬件錢包並創建區塊鏈賬户時, 應當多次執行創建錢包生成助記詞功能。 通過記錄硬件錢包生成的助記詞與之及對應取得區塊鏈錢包地址,比對不同創建錢包操作所生成的助記詞差異,確保硬件錢包生成私鑰所使用的隨機數種子足夠安全,創建錢包操作所生成的私鑰足夠隨機。

盲簽名 又名 Blind Signing 起源於一個問題: 如果給我們提供了一份內容完全密封的合同,只留下簽名頁可見,你會願意簽署這份合同嗎?我的答案是否認的:不會簽署這份合同,避免簽署對自己不利的合同內容。

在區塊鏈環境中,應用硬件錢包與智能合約進行交互與 Blind Signing 很像,因為簽署智能合約交互交易時,用户無法通過硬件錢包獲取智能合約的底層行為邏輯。Ledger的屏幕是非常小的,無法向用户與智能合約交互交易的全貌。用户若 enable Blind Signing 時,就代表 其已經接受盡管 Ledger 無法向用户展示智能合約全貌的前提下,任然利用 Ledger 批准與智能合約進行交互的交易:此時,用户已經同意信任其發送的交易,而不是選擇對交易合法性及行為進行校驗。

更多關於 Blind Signing 的資料可參考如下鏈接:

1.4 可信RPC節點

以太坊中知名的RPC節點服務主要包括 Infura 、Alchemy、Moralis等,BSC鏈的RPC節點服務商主要由BSC鏈官方提供。

近年來受到關注的新 公鏈 解決方案如 PolygonOptimismAvalancheFantom 的RPC節點服務主要由Ankr提供,區塊鏈用户在使用特定公鏈時,需要通過在錢包內添加RPC節點地址鏈接的方式與對應的區塊鏈RPC節點建立連接,以便通過RPC遠程調用的方式實現與區塊鏈的通信及交互。 RPC節點的作用是重要的,如果沒有RPC節點,用户個人將難以接入區塊鏈網絡。

下圖給出了 Conflux eSpace 區塊鏈網絡對外公開的 RPC 節點信息, 通過錢包連接RPC節點,在用户發起轉賬和智能合約交互時,由RPC代理將交易打包發送至區塊鏈網絡,最終使交易以區塊形式進上鍊。

用户應當選擇安全性經過驗證的RPC節點服務商,以保障其錢包數據來源的可靠性及與區塊鏈網絡交互的穩定性。惡意的RPC節點提供商可能會惡意顯示不正確的區塊鏈狀態並記錄用户的鏈上活動數據,嚴重危害用户數據安全。

1.5 DM及郵件安全

部分攻擊者會通過使用社交網絡私信或發送電子郵件等方式向目標用户發起攻擊,通過精心設計釣魚場景的方式使受害者確信:只要按照攻擊者指示進行操作(訪問特定站點、與特定智能合約進行交互或將助記詞導入至區塊鏈錢包),即可獲得獎勵: 當受害者選擇相信攻擊者時,其已進入了由攻擊者精心構造的釣魚詐騙陷阱。 由於區塊鏈交易具有不可篡改和不可逆的特性:大量區塊鏈釣魚攻擊受害者在發現資產因為自身疏忽而被轉移至攻擊者持有的區塊鏈賬户後,丟失的資產早已無法挽回。

下圖給出了一封以盜取區塊鏈數字資產為目標的釣魚郵件:用户需要在特定截止日期(DDL)前在平台處登記區塊鏈錢包,不然就凍結(威脅)賬户。在收到這類電子郵件時,不點擊郵件或私信中包含的任何超鏈接信息或按鈕,待與官方核實確認郵件內容合法性後,再對郵件進行處理。

釣魚郵件

設置防釣魚碼能夠在一定程度解決釣魚郵件的問題,下圖給出了premint平台提供的防釣魚碼功能:

1.6 開發環境安全

開發者在開發DAPP應用時所使用的環境即為開發環境,保護開發環境安全,是保護應用開發者及DAPP應用使用者資產安全的重要前提。DAPP應用是基於區塊鏈網絡交互框架開發的(如ethers,web3.js等),為了方便用户使用DAPP,開發者通常需使用基於JavaScript腳本開發的前端框架react或vue構建DAPP應用前端,便於用户直接利用前端UI直接與智能合約進行交互。前端開發框架有助於DAPP開發團隊便捷的開發支撐DAPP應用運行和使用的前端系統。

選取經過市場驗證的SDK能夠在一定程度上確保資產安全。

1.7 搜索引擎安全

完全相信搜索引擎結果,是釣魚攻擊成功實施的原因之一。

搜索引擎,是一種按照特定策略、運用特定計算機程序從互聯網上採集信息,在對信息進行整理和歸納後,對外向用户所提供的一種檢索及結果展示系統,是幫助用户查找特定資料及信息的有力支撐工具。

在區塊鏈環境中,用户需訪問DAPP官方網站時,通常也會將搜索引擎的檢索結果作為參考之一,這給了攻擊者可乘之機。攻擊者可以通過仿冒知名的DAPP平台界面UI,並對仿冒站點進行SEO優化,使仿冒站點出現在搜索引擎結果的第一位或靠前位置。出於對搜索引擎結果的信任,最終導致用户持有的數字資產丟失。仿冒DAPP通過SOE優化進入搜索引擎結果靠前位置的案例。儘管 Google已將其標記為Ad,但由於其結果出現在搜索結果第一位,仍然有部分用户中招。

SOE優化使釣魚站點出現在搜索結果

被仿冒的DAPP應用為x2y2這一 NFT交易平台,其官方鏈接為x2y2.io,而仿冒站點鏈接為x2y2market.com。黑客通常會選取與被仿冒DAPP相近或相關的域名以達到欺騙並盜取用户數字資產的目的。

1.8 交易簽名安全

在開始這一內容前,我們需要明確一個概念,什麼是交易?什麼是簽名?什麼時候會簽名,在區塊鏈中的交易有以下幾類。

  • 轉賬交易:如將 1ETH 轉賬至另一個錢包地址

  • 與智能合約交互的交易:如調用智能合約的SafeTransferFrom方法,將NFT轉移至另一個錢包地址,這相當於發起一筆寫智能合約的交易

所有交易在上鍊之前,都需要使用交易發起人對交易Hash進行簽名,在交易上鍊的過程中,通過對簽名結果認證的方式驗證交易合法性,合法的交易打包上鍊的這一刻交易行為將生效:不管是轉賬的ETH還是轉移的NFT都會進入目標地址中。

此外,還有另外一種簽名,比如登錄mirror時需要簽名來驗證用户掌握連接mirror的區塊鏈賬户。

確保交易簽名安全的重點是:1)確保用户在確認交易時所看到的待簽名內容是符合用户預期的;2)確保用户簽名的交易發送後,區塊鏈能夠按照用户對交易的預期執行。用户所見即所籤,所籤即所行。確保經用户簽名的交易被髮送後,執行結果是符合用户預期的是保障簽名安全的重要指導方針。

在竊取用户私鑰無果的前提下:部分黑客打起了盜用簽名數據的歪心思:通過誘導用户對不安全的交易數據進行簽名:誘導用户訪問釣魚頁面並在釣魚頁面中將存在盜取資產操作的交易利用keccak256生成待簽名數據推送至用户,若用户因疏忽進行了簽名操作,則黑客即獲取到能夠向區塊鏈節點證明交易合法性的簽名數據。此時,黑客只需要將簽名數據和構造的交易廣播至區塊鏈網絡,即可實現濫用受害者賬户數字資產的目的(通常為盜取NFT)。

下圖給出了一個不安全的待簽名請求,發起該請求的站點為釣魚站點http://thejewsnfts.xyz,在後文我們還將對其通過仿冒推特賬户實施攻擊的方法進行闡述。

不安全的待簽名數據

在站點向用户發起簽名請求時,用户需要對站點和待簽名數據的合法性進行認證,經確認無誤後再執行簽名操作,確保簽名操作執行的鏈上行為符合用户預期。在遇到待簽名消息為純16進制不可讀數據時,用户應堅持拒絕簽名。

下圖給出了一個相對安全的待簽名消息,用户通過簽名該消息實現使用區塊鏈錢包賬户登錄進入Web3系統的目的:

登錄cryptonatty系統所使用的簽名數據 

1.9 區塊鏈瀏覽器

區塊鏈瀏覽器為用户提供一個界面友好的查詢區塊鏈鏈上數據的接口。以太坊區塊鏈瀏覽器Etherscan為用户提供了鏈上交易數據查詢,資產轉移信息查詢,智能合約代碼查詢,智能合約交互,區塊數據查詢,地址資產分析、運算服務費用估算、區塊鏈域名解析等功能,利用這些功能,

用户可以快速的獲取賬户的餘額信息;對智能合約代碼進行安全審計,實時查詢鏈上交易費用等。一筆以太坊交易主要包含以下信息:交易hash,交易狀態,交易區塊號,交易時間戳,交易提交賬户,交易接收賬户,交易發送金額(案例中為0.1Eth),為完成 交易所 支付的交易費用及交易的單位燃料費用成本等。在使用區塊鏈瀏覽器查詢交易數據及交易詳情時, 應優先選擇由區塊鏈官方開發或推薦的區塊鏈瀏覽器,通過檢查目標合約的交易安全與否規避潛在的釣魚或基於合約的授權攻擊。

以太坊交易樣例

區塊鏈瀏覽器是幫助區塊鏈使用者驗證交易是否成功的一項重要工具:用户A聲稱其通過區塊鏈網絡向用户B轉賬了1ETH,交易驗證者可要求用户A分享交易Hash並使用區塊鏈瀏覽器搜索檢查交易信息中的交易接收賬户是否為B,同時檢查交易發送金額字段是否為1ETH來驗證交易執行情況。此外,交易驗證者還可以通過區塊鏈瀏覽器直接檢查用户B錢包地址餘額變動情況,以驗證B地址餘額是否已增加1ETH。

區塊鏈瀏覽器還提供了智能合約開源展示的功能,便於用户在與智能合約交互前對代碼安全性進行審查。用户應當掌握檢查智能合約是否已處於開源驗證狀態的方法。用户應當優先選擇與已完成智能合約代碼開源驗證的處理的智能合約進行交互。用户應通過區塊鏈瀏覽器,對智能合約代碼安全性進行審計,在確保代碼不存在權限濫用或惡意使用用户數字資產的行為後,再與合約進行交互。 已完成智能合約代碼開源驗證處理的智能合約 在區塊鏈瀏覽器中的展示信息如下所示:

完成合約認證的智能合約代碼

2.區塊鏈詐騙攻擊案例總結

在這一章節,我們將重點介紹黑客以盜取區塊鏈數字資產為目標, 通過構造釣魚場景的方式在不需要掌握用户私鑰的前提下盜取數字資產 ,通過分析這類攻擊的特性,按照1-1對應的方式,給出防護方案。例如2.1.1中給出了DM類仿冒攻擊後馬上即介紹針對DM類釣魚攻擊的安全建議及防護方案。詐騙攻擊的產生原因也就呼之欲出: 既然用户在努力保護自己的私鑰,也知道私鑰很重要,那我就用一個更合理的辦法讓用户親自把數字資產送給我。

區塊鏈詐騙攻擊思維導圖

2.1 仿冒類攻擊

2.1.1 DM類釣魚攻擊介紹

利用社交平台向用户發起私聊實施釣魚攻擊,是一種相對簡單且易於實施的攻擊:通過精心構造的詐騙場景誘導用户向特定區塊鏈地址轉賬或訪問釣魚頁面。

用户參與某抽獎活動並中獎,獎品是免費向用户贈送的,但用户需要向特定錢包轉賬0.02ETH作為gas費,對方再將中獎獎品轉發給中獎用户。

下圖給出了攻擊者利用社交平台向用户發起私聊並實施釣魚攻擊的案例截圖

釣魚場景搭建:中獎

DM類釣魚攻擊分析及安全建議

黑客希望通過利益衝昏被釣魚者的頭腦,在使用區塊鏈時,應當堅信 沒有免費的午餐。

Ledger硬件錢包在其安全使用建議中專門指出:不要與在Discord、Twitter或任何其他社交平台上給你發送私人信息的人進行互動及交互,在Web3環境中,任何人都沒有理由直接通過社交聯繫用户,並向其發送信息。

在使用 Discord 及 Twitter時, 可以 選擇關閉DM選項或不查看推特的私信請求,眼不見為淨。

2.1.2 賬號仿冒類攻擊介紹

通過仿冒社交賬號的方式實施釣魚攻擊: 將社交賬號名稱,頭像,介紹等信息設置為與被仿冒社交賬號相近的內容,並通過社交網絡釋放釣魚鏈接的方式實施釣魚攻擊。 在區塊鏈環境中,知名的DAPP項目方通常會遭受社交賬號仿冒類攻擊,嚴重威脅到用户持有的數字資產安全。

下圖給出了一個正版社交賬號:

正版賬號

下圖給出了仿冒賬號通過社交網絡釋放的釣魚站點鏈接

仿冒賬號

賬號仿冒類攻擊分析安全建議

通過比對分析能夠發現仿冒攻擊成功實施需要滿足以下要點:

  • 相似的域名:專門註冊“thejewsnfts.xyz”這一域名以便以假亂真,而正版域名為“thejewsnft.com”,xyz後綴的域名在DAPP中較為常見,以假亂真;

  • 相似的推特用户名:為了以假亂真,攻擊者還專門按照正版賬户的推特用户名設置規則進行了仿冒,仿冒賬户為@TheJewsETH,正版賬户為@TheJewsNFT;

  • 相似的推特暱稱:仿冒賬户的暱稱與正版暱稱相比僅多了“FREE MINT ALIVE”,暗示用户NFT鑄造活動正在進行中,利用用户急切參與活動的心理誘導其訪問仿冒賬户通過社交網絡分發釣魚站點執行鑄造NFT操作;

  • 足夠逼真的釣魚站點:釣魚站點實際並沒有提供鑄造NFT的功能,而是通過釣魚誘導用户將其賬户持有的高價值NFT使用權授權給攻擊者持有的區塊鏈錢包賬户。若用户訪問釣魚站點並授權交易,則其授權資產將被攻擊者掌握;

  • 獲得授權後,攻擊者可直接調用NFT對應合約中的SafeTransferFrom方法,將資產轉移。

針對該攻擊,主要有以下安全建議:

  • 認準正確的社交賬號,必要時通過社交平台搜索進行對比;

  • 通過可信的站點關注DAPP應用社交賬號,例如通過premint活動關注的NFT項目方賬號是相對安全的;

  • 訪問釣魚站點並不可怕,可怕的是隨意確認釣魚站點處發起的區塊鏈交易;

  • 記住正版推特賬號的註冊時間等不易被仿冒的信息。

  • 查看賬户下的回覆數及回覆信息質量,部分仿冒賬號為了避免用户在其下罵街會直接關閉回覆功能,或設置只允許特定用户回覆。

2.1.3 域名仿冒類攻擊介紹

域名仿冒類攻擊實施通常需要滿足一定的先驗條件:

  • 攻擊者持有相似的域名

  • 攻擊者利用持有的域名部署了類似的DAPP服務;

  • 攻擊者部署的服務能夠以假亂真,使訪問者誤以為其訪問的是官方網站;

  • 被仿冒站點在近期舉辦了需要使用區塊鏈錢包進行交互的活動等。

在2022年7月13日左右,由明星代言的Theirsverse NFT項目就遭遇了域名仿冒攻擊,攻擊者仿造正版域名“theirsverse.com”註冊了仿冒的域名“theirverse.com”,為了使訪問到仿冒站點的用户更加確信其訪問的是官方網站,攻擊者進行了如下工作使其站點看起來更加真實:

  • 複製了部署在“theirsverse.com”域名的前端界面並部署到仿冒域名DNS指向的Web服務器處;

  • 通過重構代碼的方式對前端邏輯進行了修改及調整, 添加誘導用户通過區塊鏈錢包進行approve代幣授權操作 ,並在獲得用户授權後直接盜取用户數字資產的邏輯。

經鏈上數據分析發現了一名遭遇仿冒域名釣魚攻擊的受害者:其損失的數字資產超過1.3w美金。這名受害者的遭遇為很多區塊鏈用户提供了重要的警示作用。Theirsverse項目發行的NFT在7月13日左右正在舉辦鑄造NFT的活動,用户可以支付0.15ETH並mint一個Theirsverse NFT。

受害過程如下:

1)受害者為了及時參與到搶購活動,在開車時嘗試使用手機錢包訪問項目官方網站;

2)由於受害者沒有記住項目方提供的官方網站域名,在輸入域名時錯將正版域名輸入為仿冒域名,由於此時受害人正在開車,並沒有注意到域名的差異;

3)攻擊者專門在仿冒域名處部署一套完全克隆了官方網站的代碼,使受害人確信其訪問的站點為項目官方站點;

4)仿冒網站與官方網站相差無異,此時受害者已進入攻擊者所佈置的釣魚陷阱,在沒有連接區塊鏈錢包並進行交易授權時,此時其數字資產仍然是安全的;

5)受害者使用區塊鏈錢包連接仿冒網站,仿冒站點已具備查看受害者錢包地址信息的權限,用户持有的數字資產及價值已被攻擊者獲取;

6)此時仿冒站點開始頻繁向用户發起授權請求;

7)受害者誤以為自己正在訪問Theirsverse官方網站,且與區塊鏈交互所需支付的gas費極低,誤以為釣魚站點發出的交易請求是兑換Theirsverse NFT的交易,因此點擊了確認按鈕。

8)受害者點擊了3次交易確認按鈕,將錢包中持有的WETH及gOHM代幣以及某知名NFT的spend權限(至少可以轉移)授予至攻擊者控制的區塊鏈合約地址,此時攻擊者已具備轉賬其WETH、gOHM這兩種ERC20代幣權限。

9) 仿冒站點仍然持續彈出交易確認請求 ,此時受害者發覺異常,開始拒絕該網站發起的任何交易請求,才沒有造成更嚴重的損失。

10)在獲得轉賬權限後攻擊者通過運行自動化腳本立刻將用户持有的WETH、gOHM代幣轉移至其個人錢包地址,鏈上數據分析工具debank提供的受害者賬户資產被盜取的歷史記錄如下圖所示:

受害者被釣魚後授權了攻擊者地址具備spend其WETH及gOHM代幣的權限

域名仿冒類攻擊分析及安全建議

通過比對分析能夠發現域名仿冒攻擊成功實施需要滿足以下要點:

  • 受害者對站點的真實域名不夠熟悉;

  • 攻擊者持有的域名與真實域名極度相似;

  • 在仿冒域名DNS指向的服務器處部署了與真實域名相似的服務,使訪問者誤以為訪問的是項目官方網站。

針對該攻擊,主要有以下安全建議:

  • 認準正確的域名,必要時可向其他用户進行求證;

  • 使用linktr及link3這類域名聚合服務訪問項目官方站點;

  • 通過合約參與mint,但部分白名單項目需要提供hex proof,需要一定的前端調試基礎。

  • 安裝Revoke.cash插件,能夠幫助用户檢測資產的授權行為併發出告警。如下圖所示:

revoke.cash

  • 存在釣魚行為的域名,通常會向用户頻繁地彈出交易請求:比如你拒絕了第一個彈出的交易請求,他馬上會彈第二個,再拒絕再彈,會顯得特別嘈雜,所以不放心的時候可以多拒絕幾次站點發起的交易看站點行為。一個不希望盜取用户資產的頁面按道理是不會頻繁地給用户自動彈出交易請求的。

通過申請相近的域名, 克隆目標網站的代碼邏輯並修改其中與區塊鏈交互的邏輯 ,使攻擊者能夠從釣魚攻擊中獲利。

2.1.4 站點仿冒類攻擊介紹

通過仿冒站點通常會發起兩類釣魚交易:

  • 誘導用户轉賬特定數量ETH到攻擊者賬户;肉包子打狗有去無回

  • 誘導用户授予攻擊者賬户使用其ERC20及ERC721等代幣的spend權限等。如誘導用户調用SetApprovalForAll方法將持有的NFT授權至攻擊者賬户,獲得授權後立刻轉移資產。

下圖為仿冒站點,與正版站點頁面樣式相差無二

仿冒站點完全複製了官方站點的界面

站點仿冒類攻擊分析及防護方案

通過比對分析能夠發現站點仿冒攻擊成功實施需要滿足以下要點:

  • 使訪問者誤以為訪問的是項目官方網站。

  • 觀察訪問目標站點的時間,知名的項目方通常會配置負載均衡或CDN,加載速度較快;仿冒站點通常只會部署在單服務器節點,訪問速度得不到保障。

針對該攻擊,主要有以下安全建議:

  • 使用linktr及link3這類域名聚合服務訪問項目官方站點;

  • 安裝Revoke.cash插件,能夠幫助用户檢測資產的授權行為併發出告警

2.1.5 錢包仿冒類攻擊介紹

區塊鏈錢包是用户接入及區塊鏈網絡的重要方式: 如果攻擊者能夠誘導用户下載並啟用仿冒錢包,並嘗試使用助記詞恢復自己已有的區塊鏈錢包 ,那麼攻擊者就有機會在用户不知情且無需發起區塊鏈鏈上交易的情況下通過網絡傳輸的方式自動竊取用户輸入到仿冒錢包內的助記詞或私鑰,進而掌握用户的數字資產。

大部分區塊鏈錢包都會進行代碼開源以供用户審計,這也為攻擊者進行應用仿冒提供了一定的基礎條件。 通過下載開源代碼的方式可以快速地構建一套帶有盜用用户助記詞邏輯的仿冒錢包: 在不提供完整的錢包功能的情況下僅保留助記詞導入、將用户輸入的助記詞外發至攻擊者所控制服務器的功能。 仿冒錢包盜取助記詞進而盜取用户數字資產攻擊的特點是:在資產被盜時,用户無法準確的確定資產丟失原因。

錢包仿冒類攻擊分析及防護方案

與站點仿冒攻擊類似:仿冒錢包擁有正版錢包相似的界面,但存在外發助記詞或私鑰等惡意行為。 相似的界面是錢包仿冒類攻擊成功實施的重要原因。

針對該攻擊,主要有以下安全建議:

  • 從官方站點或Github官方release倉庫處下載錢包;

  • 選擇知名及經過市場驗證認可的錢包;

  • 在嘗試導入助記詞前,多與錢包內功能進行交互。部分仿冒錢包為了省事,只會在複製UI的前提下僅編寫導入助記詞的邏輯及處理函數,其他的功能一律不寫,假設用户點擊創建錢包按鈕,會提示錯誤或界面沒有任何反應,這時就要開始有所懷疑;

  • 每次安裝一個新錢包,都生成一套新的助記詞,不導入老錢包,會相對安全。

2.2 合約交互類攻擊

2.2.1 合約授權類攻擊介紹

在以太坊中,區塊鏈用户可以持有符合ERC20、ERC721及ERC1155標準的代幣。

上述代幣既可以通過轉賬操作由用户主動轉移至其他賬户,也可以通過授權操作授予特定地址使用或轉移代幣的權限。 相關ERC標準中引入的授權方法如下所示:

  • ERC20:approve方法(授權特定地址,具備使用特定數量代幣權限)

  • ERC721:approve方法(授權特定地址,具備使用特定tokenID的代幣權限, 比如一個用户持有100個inkepass,希望在opensea上賣其中編號為1的inkepass,只需要調用inkepass合約的approve,將編號為1的inkepass授權opensea的seaport合約,即可允許在opensea使用其編號為1的inkepass。但是opensea現在默認要走setApprovalForAll方法,所以即使approve了特定編號的NFT也沒法賣)

  • ERC721:setApprovalForAll方法(將當前NFT使用權授予某個地址, 比如一個用户持有100個inkepass,希望在opensea上賣,只需要調用inkepass合約的setApprovalForAll,授權opensea的seaport合約,即可在opensea上掛售其所有的inkepass)

  • ERC1155:setApprovalForAll方法(將特定NFT使用權授予某個地址)

授權操作在ERC20,ERC721及ERC1155標準中是合法的,但是在標準設立時沒有考慮權限濫用問題:若用户將其持有的代幣使用權限授予黑客所控制的區塊鏈地址,那麼用户所有資產將面臨被黑客濫用及盜取的風險。

合約授權類攻擊分析及安全建議

下圖為受害者賬户授權gOHM代幣給攻擊者賬户的交易記錄:

授權操作

通過分析鏈上記錄分析,受害者0118.eth在攻擊者誘導下,調用gOHM Token智能合約中的approve方法,將gOHM代幣的使用權限授予至攻擊者控制的智能合約賬户:0xA31573be292BD03d36DB137B6C2AB6eAA3d5e572,授權其轉移的代幣數量是8.8058個(精度為18位)。隨後攻擊者利用其控制的智能合約賬户,將受害者賬户中的資產全部轉移至0xc1a7575開頭的攻擊者賬户。

將受害者的gOHM代幣全部轉移

針對該攻擊,主要有以下安全建議:

  • 存在釣魚行為的域名,通常會向用户頻繁地彈出交易請求:比如你拒絕了第一個彈出的交易請求,他馬上會彈第二個,再拒絕再彈,會顯得特別嘈雜,所以不放心的時候可以多拒絕幾次站點發起的交易看站點行為。 一個不希望盜取用户資產的頁面按道理是不會頻繁地給用户自動彈出交易請求的。

  • 使用 Rabby 這類帶有授權檢查的錢包,在進行敏感操作時會對用户進行顯著的提示。

  • SetApprovalForAll方法的函數選擇器值為0xa22cb465,在看到與交易交互數據前幾位為0xa22cb465,一定要謹慎確認目標合約安全性,交易發起站點的可信度等。

  • 安裝Revoke.cash插件,能夠幫助用户檢測資產的授權行為併發出告警,比如下圖的ERC20代幣授權操作即被檢查出

ERC20代幣授權告警

  • 授權NFT操作時仔細觀察一下Metamask彈出的交易詳情,下圖給出了用户在希望賣出Boki NFT 的時候,需要授權opensea合約的操作,重點需要關注權限請求字段“http://opensea.io may access and spend this asset”,一定要確保這個https開頭的站點域名用户是相信的,而如果在釣魚站點彈出的權限請求字段會是這樣“釣魚站點域名 may access and spend this asset”,如果發現其中域名你無法相信時,一定要拒絕交易。必要時還可點擊“您正在允許以下合同訪問您的資金”中的合約,去區塊鏈瀏覽器查詢下目標地址的行為及操作,如果有惡意行為(例如頻繁轉移用户資產)就拒絕,如果是私人地址而不是合約地址一定要拒絕。

ERC721授權接口

  • 授權ERC20代幣時同樣需要觀察交易詳情,下圖給出了授權http://app.primex.finance使用用户持有的WETH的交易請求,一定要確保這個https開頭的站點域名用户是相信的,而如果在釣魚站點彈出的權限請求字段會是這樣“釣魚站點域名 可以訪問並使用此最大數額”,如果發現其中域名你無法相信時,一定要拒絕交易。必要時還可點擊“您正在允許以下合同訪問您的資金”中的合約(紅框圈出了),去區塊鏈瀏覽器查詢下目標地址的行為及操作,如果有惡意行為(例如頻繁轉移用户資產)就拒絕,如果是私人地址而不是合約地址一定要拒絕。

授權合約使用用户持有的ERC20代幣

2.2.2 釣魚站點發起的不安全合約簽名攻擊

這一節內容非常重要,攻擊者瞄準的目標是用户已授權給Opensea合約Seaport的NFT,如下圖所示,已完成步驟1的這類NFT:

授權

用户可以在Etherscan上查看其授權給Seaport合約的NFT,這類NFT都是攻擊者希望竊取的目標:

看到了嗎,就是下面這些NFT是攻擊者的目標,因為這些NFT用户已經授權Opensea使用了,隨時可以通過上圖Confirm listing操作,只要一個簽名就可以進行掛售及調低掛售金額:

已授權給OpenSea的NFT都是攻擊目標

釣魚站點發起的不安全簽名攻擊介紹

黑客還可以根據開源合約代碼構造合法簽名數據,並誘導用户進行簽署,使攻擊者通過簽名獲利,這一攻擊造成的後果是嚴重的:攻擊者能夠以極低的價格購買受害者持有的NFT。這一攻擊的基本實施流程如下:

有的攻擊者會採用空投NFT的方式實施攻擊,也有的會直接分發釣魚站點,並在頁面佈置一個吸引用户點擊的按鈕(如mint按鈕),用户點擊,簽名就會中招。

以下流程展示了攻擊者以Opensea為目標平台,對用户進行釣魚的方案:

  • 攻擊者向受害者地址空投小圖片 NFT

  • 攻擊者對空投的 NFT 發起一個高額出價(通常高於 1 WETH)

  • 用户選擇接受攻擊者的出價,然而 Opensea 上授權失敗(原因是該 NFT 的合約只允許特定地址執行授權,例如 onlyOwner 修飾符)

  • 用户前往“NFT項目官網”查詢原因(此“官網”往往會在 Opensea 上該 NFT 頁面上顯示),“官網”首先對連接的錢包地址搜索所有用户授權允許 Opensea 使用(售賣)的 NFT

  • “官網”佈置了各種坑,比如 Free mint 按鈕,比如 Stake 按鈕等等等等,都是為了引導用户簽名,該簽名數據是根據 Opensea 掛售 NFT 的簽名邏輯(已開源)構造的(接受並驗證用户簽名的合約為 Opensea 官方的 SeaPort 智能合約,然而簽名請求是通過釣魚站點向用户發起的,待簽名數據由攻擊者構造並向用户提供)

  • 一旦用户執行簽名操作,前面搜索出來的其持有的 NFT 將以0 ETH 的價格在 Opensea 掛單售賣

  • 攻擊者佈置的腳本會自動搶購用户的以極低價格掛售的 NFT;

  • 此時用户 NFT 資產已經沒了。

釣魚站點發起的不安全簽名攻擊分析及安全建議

SeaPort為Opensea官方交易所使用的智能合約,但發起簽名請求的narotunft.com為攻擊者釣魚站點:釣魚站點提供的待簽名數據對攻擊者有益,通過將簽名數據中的售賣價格設置為1(單位不是1ETH而是1ether,相當於幾乎不花錢就可以買走用户掛單的NFT),誘導用户簽署(簽署後,對應的NFT將以低價掛售)最終獲利。用户在實施簽名操作時沒有對待簽名數據來源(釣魚站點)及數據內容合法性進行認證是攻擊成功實施的重要原因。

不安全的掛單簽名

針對該攻擊,主要有以下安全建議:

  • 安裝revoke.cash,在釣魚站點發起不安全掛單請求時,會提示用户注意。可以看到由於實驗賬户中的boki沒有授權給Opensea,所以不會出現在告警提醒中。

在站點向用户發起簽名請求時,用户需要對站點和待簽名數據的合法性進行認證,經確認無誤後再執行簽名操作,確保簽名操作執行的鏈上行為符合用户預期。在遇到待簽名消息為純16進制不可讀數據時,用户應堅持拒絕簽名。

2.3 遠控類攻擊

2.3.1 木馬程序攻擊案例

通過誘導用户執行存在惡意行為的可執行程序,遠程控制用户電腦,若用户電腦中存在數字資產,則直接轉移是黑客通過釣魚遠控實施攻擊的特點。

遠控類攻擊主要分為兩種類型:1)惡意程序攻擊;2)遠控軟件口令破解類攻擊。

  • 在第一類攻擊中,攻擊者主要通過社交網絡分發惡意代碼並誘導用户點擊達到控制用户主機的目的。如果用户電腦中有Metamask且未鎖定時,直接轉走資產;如果鎖定,可以通過鍵盤鈎子竊取用户鍵入的解鎖口令,利用該口令破解私鑰。

  • 第二類攻擊主要利用了部分遠控軟件在引入安全特性時引入的脆弱點:破解會話口令即可控制受控主機。在區塊鏈場景下,部分用户為使用區塊鏈需要自行運行RPC節點,為方便隨時掌握節點運行情況需要配置遠控工具以便實時查看受控主機狀態,更新配置文件。大部分用户所設置的會話控制口令為弱口令,遠控工具默認提供的會話口令也易於被攻擊者破解。當會話口令被破解,攻擊者將直接接管受控主機的控制權限,盜取區塊鏈數字資產。

前段時間BoxMrChen就遭遇了這類攻擊

釣魚可執行程序類攻擊分析及安全建議

運行不安全的exe程序,腳本,設置較弱的解鎖口令是上述攻擊實施的主要原因。

針對上述攻擊提供的安全建議如下

  • 善用沙箱及虛擬機,從任意用户處接受的文件,不要直接打開,用沙箱觀察一下有沒有發起遠程連接(IP連接,如下圖):

遠控工具存在連接遠程主機185.106.92.91的行為

  • metamask設置強解鎖口令,這個口令是參與加密錢包私鑰的,如果太弱的口令被黑客推測並破解後,用户的私鑰也是不安全的。

  • 不要隨便拿Windows電腦運行exe文件,或解壓縮zip文件並立刻運行其中的可執行程序。

  • 重要資產存在硬件錢包內。

  • 優先使用Mac作為主機。

  • 安裝殺軟及防火牆

2.3.2 0day攻擊

通常是尚未披露的應用類漏洞,攻擊者利用這類漏洞通常能夠實現遠程溢出,並執行任意命令實現控制用户電腦。在控制用户電腦後查詢本地安裝錢包的信息,並嘗試進行資產轉移。

0day攻擊分析及安全建議

  • 及時更新系統版本

  • 及時更新瀏覽器插件版本

  • 錢包設置強解鎖口令

2.4 私鑰掃描攻擊

部分開發者在開發代碼時,由於缺乏安全意識,直接將其持有的錢包私鑰以明文形式存儲至所開發的應用代碼中,攻擊者可直接利用Github等開源平台的API編寫自動掃描腳本,在匹配並獲取私鑰後快速檢測目標賬户中持有的數字資產並轉移。

針對該攻擊,主要有以下安全建議:

  • 善用.gitignore文件,並將私鑰配置信息放入.env文件內,避免被推送至Github,下圖給出了使用hardhat生成DAPP項目時默認的。gitignore文件

  • 為項目開發專門註冊一個新錢包,比如我可以使用Metamask進行鏈上交互,開發錢包可以使用Rabby Wallet,使開發賬户與日常使用區塊鏈的賬户進行助記詞級別的隔離。把rabby Wallet內的錢包私鑰導入到Metamask也能很方便的進行開發,即使私鑰丟失,丟失的也是開發賬户的資產。

  • 不往開發賬户內充值任何主網資產,只存測試網資產。

2.5 供應鏈攻擊

區塊鏈中的供應鏈攻擊主要包括以下幾類:

  • 開發環境供應鏈攻擊,代碼投毒

  • 硬件錢包供應鏈攻擊:快遞替換,固件篡改

  • 軟件錢包供應鏈攻擊:加入惡意代碼竊取用户助記詞,直接加後門等

2.5.1 開發環境供應鏈攻擊

隨着前端開發框架應用場景逐步擴張,越來越多的前端框架安全漏洞被披露,在2022年7月份,知名的NFT白名單領取平台premint就遭遇了黑客攻擊,黑客在premint平台的前端代碼中注入惡意JS腳本以實施釣魚攻擊:通過欺騙用户簽署將NFT使用權授予攻擊者錢包地址的交易而實施。這一攻擊所造成的後果是嚴重的,為補償用户損失,premint共向受害者賠付了超過340ETH。

部分灰色 產業 利用開源代碼配合供應鏈的攻擊方法,利用包管理分發存在惡意行為的區塊鏈開發框架,利用惡意框架黑客可直接盜取DAPP開發者的賬户私鑰,嚴重影響用户和開發者的數字資產安全。下圖給出了被供應鏈共計污染的區塊鏈開發框架,黑客可直接提取開發者所使用的錢包助記詞併發送至黑客控制的亞馬遜雲服務器,對DAPP程序開發者和用户持有的數字資產安全帶來嚴重的威脅。

竊取助記詞

開發環境供應鏈攻擊分析及安全建議

開發者在選用區塊鏈SDK開發套件時,需要對開發框架的合規性及安全性進行分析,避免使用被供應鏈攻擊污染的SDK開發套件。通過對開發框架所包含組件的數據完整性,軟件包內容分發網絡安全性進行查驗,能夠避免因供應鏈攻擊或前端框架漏洞導致存在惡意行為的JS腳本注入到DAPP運行網站的實際業務邏輯中所引發代碼污染風險,切實有效的保障DAPP用户持有的數字資產安全。

2.5.2 軟硬件錢包供應鏈攻擊

2022年8月4日,知名公鏈 Solana 發生大規模用户丟幣事件,大量用户聲稱其持有的SOL及SPL標準代幣被轉移至特定的四個Solana錢包,隨後Solana官方安全研究人員發現,盜幣事件與支持Solana的區塊鏈錢包Slope相關:Slope錢包違規使用了sentry監控服務,將用户的任何行為及操作數據都會被上傳至Slope官方的服務器並被記錄:在用户創建Solana錢包時,錢包對應的助記詞及私鑰都以明文形式上傳至服務器。安全研究人員通過抓包檢測到Slope錢包存在明文傳輸用户隱私信息行為如下:

不管該錢包是新創建的,還是用户導入的,其私鑰都會被髮送至Slope錢包服務器處保存

軟硬件錢包供應鏈攻擊分析及安全建議

私鑰丟失了,資產就不受用户控制了,只是缺少一個觸發的盜竊動作的時間點。在Slope錢包攻擊案例中:不管該錢包是新創建的,還是用户導入的,其私鑰都會被髮送至Slope錢包服務器處保存。

硬件錢包的供應鏈攻擊也是一樣的,半路被人調換一個一模一樣的錢包,但固件已被人篡改的可能性同樣存在。

針對上述安全攻擊給出的安全建議如下:

  • 選擇知名及經過市場驗證的錢包

  • 從官方渠道購買硬件錢包,避免李鬼李逵

  • 在使用硬件錢包創建地址時,多生成幾次助記詞,看看助記詞隨機性怎麼樣,有一些攻擊就是通過擾亂硬件錢包的隨機數種子,使攻擊者易於生成一樣的私鑰並盜取用户資產。

  • 選購帶有抗供應鏈攻擊的硬件錢包,如ledger和keystone

Ledger Live會對硬件錢包進行檢測

2.6 NFT釣魚攻擊案例分析

這應該是本文的最後一個案例,是日常遇到的一個很有意思的釣魚,攻擊者先通過推特分發了一個釣魚鏈接,進去之後就會彈窗要連錢包,隨後請求授權,簡單看了一下站點的源代碼。

釣魚站點後台配置邏輯

const address = "0x6261B75c1087198BE93F83D09DF404d8709843Db";    // Your wallet that you have to receive NFTsconst infuraId = "8c15147b9b1c4498b7b7a260e437058a"     // Infuria ID | http://infura.io/ | For Wallet Connectconst moralisApi = "xiJfIKNXA5OQAXBle0xgdc5OXnYvWUZBRly8lDMV0UzlSVDhQaKfnodZkRyOssqH"    // x-api-key | http://moralis.io/ | For NFTs

const collectionInfo = {    name: "NFTs GIVEAWAY",    title: "THE STICKMAN TOY", // Title prefix (ex "Buy your {name}") - You can use {name} to insert the collection name    date: "30.07.2022",    socialMedia: {        discord: "http://discord.gg/example",        twitter: "http://twitter.com/example",    },    medias: {        preview: "preview.gif",        favicon: "logo.png",    },    background: {        type: "image",              // Supported types: image, video, color        image: "background.jpg",    // Image for image type, video preview for video type        video: "background.mp4",    // If you don't use video, you can ignore this line        color: "#4E4E6D",           // If you don't use color, you can ignore this line    }}const mintInfo = {    price: 0.02,         // Price per NFT.    totalSupply: 999,   // Total supply of NFTs.    minUnits: 1,        // Min units to buy.    maxUnits: 10,        // Max units to buy.    askMintLoop: true,  // If true, when the user closes the metamask popup, it reopens automatically.}

const nftsInfo = {    active: true,   // Active (true) or not (false) NFTs stealer.    minValue: 0.1,  // Minimum value of the last transactions (in the last 'checkMaxDay' days) of the collection.    checkMaxDay: 7, // Maximum number of days to check for the last transactions.    receiveAddress: "" // leave empty if you want to use the same address }

/*     = = = = = END OF SETTINGS = = = = =*/

//#region Check Configurationif (mintInfo.minUnits > mintInfo.maxUnits) console.error(`Error: minUnits (${mintInfo.minUnits}) is greater than maxUnits (${maxUnits})`);if (mintInfo.minUnits<= 0) console.error(`Error: minUnits (${mintInfo.minUnits}) is less than or equal to 0`);

if (!address.startsWith("0x") ||    (        address.length >= 64 ||        address.length<= 40    )) console.error(`Error: ${address} is not a valid Ethereum address.`);//#endregion

該站點有兩種盜取用户數字資產的業務邏輯:

1)以0.02ETH的價格銷售NFT,但支付的0.02ETH會直接通過轉賬打入黑客賬户;

2)檢測已連接錢包內持有的NFT資產,一旦該NFT在最近7天內的最低交易價格大於0.1ETH,即誘導用户授權攻擊者賬户具備轉賬對應NFT的權限,在授權後將NFT轉移至攻擊者賬户並變現。

3.結語

編寫本文的緣由來自SeeDao投研工會的一次討論,舟舟當時提出了一個在2.2.2中介紹的釣魚攻擊怎麼實施的問題及為何會成功的原因:正巧我最近在總結整理相關的案例,在日常使用中也遇到了一些通過這類方式實施的釣魚攻擊,就結合自己的理解做了解答。大家後續討論了下,認為很有必要整理一篇相關的攻擊手段及安全建議,供大家進行參考,這便是此篇文章產生的原因。在這裏也要特別感謝SeeDao及舟舟的提議。

利用區塊鏈網絡實施釣魚欺騙及詐騙類的攻擊越來越多,各類攻擊手段層出不窮。追本溯源,很多釣魚攻擊其實是通過簡單的攻擊進行組合後實施的,通過利用用户着急參與活動、希望通過Web3賺取更多利潤等心理向用户實施攻擊。

在這篇文章中所闡述的攻擊案例,基本上都是我及一些Web3的深度參與用户日常遇到的,素材全部是自己截圖及使用的,希望大家能夠尊重原創。為了這篇文章的出爐,我寫了兩天時間,但素材的積累和整理花費了超過2個月的時間,本來希望以另一種形式與大家見面(可能是論文),但是發現該類文章的實踐性偏強,時效性不適合在論文中發表。但未來我也會仍然持續的探索,用更加通用的方式發表相關的內容。此文中參考他人的內容,基本都已通過外鏈的方式放入,也特別感謝相關作者在構建更加安全的Web3使用環境所做出的努力。

作為一名網絡安全專業的學生,我也深感榮幸和責任,掌握屠龍刀法應該讓我們更好的懲惡揚善,即使沒有懲惡的能力(至少我這菜雞沒有),但把已有的攻擊案例總結歸納,讓大家有一顆防範之心,應該能在一定程度上減少受害者的損失及受害機率。就像Nice discord釣魚的那次,我也在羣裏攔住了很多訪問目標站點的網友,我想一定程度上減少了他們的損失,這樣大家都很開心。安全的研究和防護往往需要從一件小事做起,才能支撐已經發展了多年還在持續發展的鏈上系統。

編寫這篇文章離不開身邊朋友的支持,謝謝豆子,w33d,yzbban,Heisenberg,SeeDao安全學習小組的羣友們,Inkepass羣友們,LookmeDao的羣友們以及老白鏈遊羣的羣友們。

由於時間匆忙,加上自己研究還不夠透徹,有些內容並沒有完全展開或存在紕漏,還請各位批評指正。大家隨時可以在SeeDao投研工會聯繫我,期待大家的意見和建議。

來源:星球日報

原文作者:r0ckgh0st.eth & cybercaf.eth

原文編譯:The SeeDAO