前言:
OKX Web3特別策劃了《安全特刊》欄目,針對不同類型的鏈上安全問題進行專期解答。透過最發生在用戶身邊最真實案例,與安全領域專家人士或機構共同聯合,由不同視角進行雙重分享與解答,從而由淺入深梳理並歸納安全交易規則,旨在加強用戶安全教育的同時,幫助用戶從自身開始學會保護私鑰以及錢包資產安全。
某一天,突然有人送你1個價值100萬美元的錢包地址私鑰,你會想要把錢立刻轉走嗎?
如果想,那麼這篇文章就是為你量身訂做的。
本文是OKX Web3《安全特刊》第01期,特邀加密產業身經「百詐」的知名安全機構-慢霧安全團隊與OKX Web3安全團隊,從使用者遭遇的最真實的案例出發,進行分享,乾貨滿滿!
慢霧安全團隊:非常感謝OKX Web3的邀請。慢霧(SlowMist)作為一家業界領先的區塊鏈安全公司,主要透過安全審計及反洗錢追蹤溯源等服務廣大客戶,並建構了紮實的威脅情報合作網絡。 2023 年度SlowMist 協助客戶、合作夥伴及公開被黑事件凍結資金共超過1,250 萬美元。希望秉著對產業對安全的敬畏心,繼續輸出有價值的東西。
OKX Web3安全團隊:大家好,非常開心可以進行這次分享。 OKX Web3安全團隊主要負責OKX Web3錢包的安全能力建設,提供產品安全、用戶安全、交易安全等多重防護服務,7X24小時守護用戶錢包安全的同時,為維護整個區塊鏈安全生態貢獻力量。
Q1:能否分享一些真實的被竊案例?
慢霧安全團隊:第一,大部分案例是因為使用者把私鑰或助記詞存到網路上了。例如,用戶經常使用到的Google文件、騰訊文件、百度雲盤、微信收藏、備忘錄等雲端儲存服務進行私鑰或助記詞存儲,一旦這些平台帳號被駭客收集並「撞庫」成功,私鑰很容易被偷。
第二,用戶下載虛假APP後,引發了私鑰外洩。例如,多重簽名騙局是最典型的案例之一,詐騙者誘導用戶下載假錢包並盜取錢包助記詞,隨後立即修改該用戶錢包的帳戶權限:將錢包帳戶權限由用戶本人,變成用戶本人和詐欺者共同持有,從而搶佔該錢包帳戶的控制權。這類詐欺者往往會保持耐心,等待用戶帳戶累積了一定加密資產後,一次轉走。
OKX Web3安全團隊:慢霧已經概述了私鑰被盜的2類主要情況,而第2種,欺詐者利用虛假APP盜取用戶私鑰的本質是木馬程序,這類木馬程序通過獲取訪問用戶輸入法、照片等權限,從而盜取用戶私鑰。相對於IOS用戶而言,安卓用戶遭遇到的木馬病毒攻擊更多。這裡簡單分享兩個案例:
案例一,用戶回饋錢包資產被盜,經過我們團隊與用戶溝通排查發現:是由於他此前透過谷歌搜索,下載並安裝了被偽裝的某數據平台軟體,此軟體是木馬程式。但由於用戶在搜尋該平台軟體時,其連結出現在Google搜尋的TOP5,導致用戶誤以為是官方軟體。事實上,許多用戶對Google提供的連結並不進行辨別,所以很容易透過這種方式遭遇到木馬攻擊,我們建議用戶透過防火牆、防毒軟體、以及Hosts配置等多方面進行日常安全防護。
案例二,用戶回饋在投資某個DeFi專案時,發生了錢包資產被竊的情況。但透過我們的分析排查發現:該DeFi項目本身並不存在問題,用戶B錢包資產被盜是由於其在Twitter上對該項目評論時,被冒充該DeFi項目的官方客服盯上,經該假冒客服的引導,點擊並進入該虛假連結輸入了助記詞,從而導致錢包資產被盜。
由此可見,詐騙者的手段並不高明,但是需要使用者提高辨別意識,任何情況都不能輕易洩漏自己的私鑰。此外,我們錢包已針對該惡意網域進行了安全風險提示。
Q2:是否存在最佳的私鑰保管方法?目前有哪些替代方案可以減少對私鑰的依賴?
慢霧安全團隊:私鑰或助記詞其實是單點故障問題,一旦被竊或遺失就很難挽回。目前,例如安全多方運算MPC、社交認證技術、Seedless/Keyless、預先執行和零知識證明技術等等新的技術,正在幫助用戶減少對私鑰的依賴。
以MPC 為例,第一,MPC技術是指,所有參與者為了完成一項任務而執行複雜的聯合計算,而他們的資料保持私有安全,不與其他參與者共享。第二, MPC 錢包通俗來講是,利用MPC技術,將一個私鑰安全打碎成多片,由多方共同管理;或者乾脆就是多方共同產生一個虛擬的密鑰,可能後者的情形更為普遍,因為這時候沒有人曾經見過完整的私鑰。總之,MPC 的核心思路為分散控制權以達到分散風險或提高備災的目的,有效避免了單點故障等安全問題。
注意,MPC涉及到一個詞叫Keyless ,可以理解為“無助記詞的”,或者也可以說成“無私鑰的”。但這個「無」並不是實際意義上的沒有金鑰,而是指不需要使用者備份助記詞或私鑰、且感知不到它們的存在。所以關於Keyless錢包,需要了解這3點:
1.創建Keyless錢包過程中,私鑰不會在任何時間、任何地點被創建或儲存。
2.在簽署事務時,不涉及私鑰,而且私鑰在任何時候都不會重構。
3.Keyless錢包不會在任何時候產生或保存完整的私鑰和種子短語。
OKX Web3安全團隊:目前不存在完美的私鑰保管方式。但是我們安全團隊推薦使用硬體錢包、手抄保存私鑰、設定多重簽章、分散式儲存助記詞等方式來進行私鑰管理。例如,分散存儲助記詞是指,用戶可以將助記詞分成2組或多組進行存儲,降低助記詞被盜的風險。再例如,設定多重簽名是指,使用者可以選定信任的人,共同簽名來決定交易的安全性。
當然,為保障用戶錢包私鑰安全,OKX Web3錢包整套底層是不觸網的,用戶助記詞和私鑰相關信息,全部加密保存在用戶的設備本地,而且相關SDK也是開源的,經過了技術社群廣泛的驗證,更加的公開透明。此外,OKX Web3錢包也透過與慢霧等知名的安全機構進行合作,進行了嚴格的安全審計。
除此之外,為了更好地保護我們的用戶,針對私鑰管理的部分,OKX Web3安全團隊正在提供並規劃更強大的安全能力,正在持續迭代升級中,在這裡簡單分享:
1.雙因子加密。目前,大部分錢包通常會採用密碼加密助記詞的方式,將加密後的內容保存在本地,但如果用戶中了木馬病毒,該木馬則會掃描加密後的內容,並對用戶輸入的密碼進行監聽,如果一旦被詐騙者監聽到,則可以解密加密的內容,從而獲取到用戶的助記詞。未來,OKX Web3錢包將會以雙因子的方式對助記詞進行加密,即使詐騙者透過木馬拿到用戶的密碼,也無法解開加密的內容。
2.私鑰複製安全。大部分木馬會透過用戶在複製私鑰的時候盜取用戶剪貼簿中的信息,導致用戶私鑰洩漏。我們計劃透過增加用戶私鑰複製過程的安全性,例如複製部分私鑰、及時清除剪貼簿資訊等方式或功能,來幫助用戶降低私鑰資訊被盜風險等等。
Q3:由私鑰被盜切入,目前常見釣魚方式有什麼?
慢霧安全團隊:根據我們的觀察,釣魚活動每個月都在逐步增加。
第一,目前錢包盜賊(Wallet Drainers)構成了當前釣魚活動的主要威脅,持續以各種形式攻擊普通用戶。
錢包盜賊(Wallet Drainers)是一種與加密貨幣相關的惡意軟體,這些軟體部署在釣魚網站上,誘騙用戶簽署惡意交易,從而竊取用戶錢包資產。例如,目前比較活躍的錢包盜賊(Wallet Drainers)有:
1.透過社會工程學,取得Discord Token 並進行釣魚的Pink Drainer。社會工程學通俗理解就是,以溝通的方式套取使用者的私密資訊。
2.還有Angel Drainer,會對網域服務提供者進行社會工程攻擊。在取得了網域帳號相關權限後,Angel Drainer會修改DNS 解析指向,並將使用者重新導向到假網站等等。
第二,目前最常見的還是盲簽釣魚,盲簽的意思是說用戶在和一個項目進行交互的時候不知道要簽要授權的東西是什麼內容,就稀里糊塗的點了確認,然後就導致了資金被竊。關於盲簽釣魚,我們舉幾個例子:
案例1:例如eth_sign。 eth_sign 是一種開放式簽名方法,它允許對任意Hash 進行簽名,也就是說它可以被用來對交易或任何資料進行簽名,而一般沒有技術基礎的用戶想要看懂簽名的內容是比較困難的,這裡就會存在一定的釣魚風險。還好現在越來越多的錢包已經開始對這種簽名進行安全提醒,某種程度上可以避免一些資損風險。
案例2:permit簽名釣魚。我們都知道在ERC20 幣種的交易中,用戶可以調用approve 函數進行授權,但是permit 函數允許用戶在鏈下生成簽名再授權給指定用戶使用一定數量額度的token,攻擊者利用permit 方法進行釣魚,當受害者訪問釣魚網站的時候,攻擊者透過網站讓用戶簽署permit 授權,用戶簽署後攻擊者可以拿到簽名後的數據,攻擊者調用token 合約的permit 函數並傳入簽名數據然後廣播到鏈上來獲得token 的授權額度,進而竊取使用者的token。
案例3:隱藏的create2手法。 create2允許開發者在將合約部署到以太坊網路之前預測合約的地址。基於create2,攻擊者就可以為每個惡意簽章產生臨時的新位址。欺騙使用者授予權限簽名後,攻擊者就可以在這個位址建立合約然後轉移使用者的資產。因為是空白地址,所以這些地址可以繞過一些釣魚插件和安全公司的監控警報,所以隱蔽性很強,用戶很容易中招。
總而言之,對於釣魚網站,用戶可以在互動之前對項目的官網進行鑑別,並且留意互動過程中是否有惡意簽名請求,並應該警惕提交助記詞或私鑰的行為,切記不在任何地方洩漏助記詞或私鑰。
OKX Web3安全團隊:我們對常見的釣魚方式進行了研究,並在產品側提供了多維度的安全防護。就目前使用者遇到的最主要的幾類釣魚方式簡單分享:
第一類,虛假空投類。駭客一般會針對受害者地址產生首尾相似的地址,並對用戶進行小額轉賬、0U轉賬,或者假代幣轉賬的空投,該類交易會展示在用戶的交易歷史中,如果用戶不小心複製粘貼錯地址,則會造成資產損失。針對該類攻擊,OKX Web3錢包能夠識別其歷史交易並打成風險標,同時在用戶向其地址轉帳的時候,會進行安全風險提示。
第二類,誘導簽名類別。通常駭客會在知名專案的Twitter、Discord、TG等公眾地方進行評論、並發布虛假DeFi專案網址或領取空投的網址,誘導用戶進行點擊,從而盜取用戶資產。除了慢霧提到的eth_sign、permit、create2等簽名類釣魚,還有一些就是:
方式1:直接轉帳盜取主鏈代幣。駭客往往會為惡意合約函數命名為Claim,SeurityUpdate 等具有誘導性名字,而實際函數邏輯為空,因此只轉移用戶主鏈代幣。目前OKX Web3錢包已經上線預先執行的功能,能夠顯示交易上鍊後的資產變動及授權變動,對用戶進行安全風險提示。
方式2:鏈上授權。駭客通常會誘導用戶簽署approve / increaseAllowance / decreaseAllowance /setApprovalForAll 交易,該交易會允許駭客指定地址轉移用戶的代幣資產,並在用戶簽署後即時監控用戶的帳號,一旦有對應的資產轉入立刻轉走。針對釣魚者的安全防護過程是一種對抗,也是持續升級的過程。
儘管大部分的錢包會對駭客的授權位址進行安全風險偵測,但攻擊者的攻擊方式也在升級,例如利用create2的特性,攻擊者會預先計算好新位址,因新位址並不在安全黑位址庫中,所以可以輕意的繞過安全偵測。攻擊者會等到有魚上鉤後,再去該地址部署合約,並將用戶的資金轉走。例如,近期我們也發現不少攻擊者,會使用戶授權給uniswap.multicall合約,因該合約是一個正規項目的合約,也可以繞過安全產品的偵測。
方式3:權限變更:包括tron權限變更,和solana權限變更等。一是,在tron權限變更中,多簽是tron鏈的特性,在許多釣魚網站中,釣魚者會將更改帳號權限的交易,偽裝成轉帳的交易,如果用戶不小心簽署了這筆交易,則使用者的帳號會變成一個多簽帳號,使用者對其帳號失去了控制權限。二是,在solana權限變更中,釣魚者會透過SetAuthority來修改用戶代幣的ATA帳號的Owner, 一旦用戶簽署了這筆交易,該ata帳號的owner就會變成釣魚者,從而使得釣魚者拿到了用戶的資產。
其他方式:另外,由於協議本身的設計機制等問題,也容易被釣魚者利用。基於以太坊的中間件協議EigenLayer 的queueWithdrawal 調用,允許指定其他地址作為withdrawer,用戶被釣魚簽署了該交易。七天后,指定地址透過completeQueuedWithdrawal 獲得用戶的質押資產。
第三類,上傳助記詞。攻擊者通常會提供偽裝的空投項目、或假打新的工具,誘導用戶上傳私鑰或助記詞,具體案例見如上。此外,有時也會偽裝成插件錢包彈跳窗,來誘導用戶上傳助記詞。
Q4:熱錢包和冷錢包攻擊方式的差異化
OKX Web3安全團隊:熱錢包跟冷錢包的區別在於私鑰的存儲方式不同,冷錢包的私鑰一般是離線存儲,而熱錢包通常存儲在有網絡的環境中。所以,針對冷錢包跟熱錢包的安全風險會有所不同。熱錢包安全風險上面已經非常全面,不再展開。
冷錢包的安全風險主要包括:
第一,社會工程及物理攻擊風險、及交易過程風險。關於社會工程及物理攻擊風險是指,由於冷錢包通常離線存儲,則可能存在被攻擊者以社會工程手段,偽裝成親人或朋友用以存取冷錢包的權限。
第二,作為一個實體設備,可能被損壞或遺失。關於交易過程風險是指, 在交易過程中,冷錢包同樣也會遇到前面提到的各類空投,誘導簽章等場景的攻擊方式。
Q5:就像開篇所述“贈送高價值的錢包私鑰”,還有哪些另類的釣魚陷阱?
慢霧安全團隊:是的,「故意贈送高價值的錢包私鑰」是非常經典的案例,在多年前就已經出現,但直到現在還是會有人上當。這種騙局其實就是騙子故意洩漏私鑰助記詞,你將私鑰助記詞導入錢包後,攻擊者時刻監控你的錢包,一旦你轉入ETH,就立刻給你轉走。這類手法就是利用了用戶貪小便宜的心理,導入的人越多,手續費越高,損失就越多。
其次,有部分用戶會認為“我沒有什麼值得攻擊的”,這種防禦低下的心態會讓用戶變得容易受攻擊。任何人的信息(如電子郵件,密碼,銀行資訊等)對攻擊者來說都是有價值的。甚至還有用戶認為只要不點擊垃圾郵件中的鏈接,就不會受到威脅,但有些釣魚郵件可能會透過圖片或附件來植入惡意軟體。
最後,對於「安全」我們需要有個客觀的認識,那就是沒有絕對的安全。何況網路釣魚攻擊的方式演變很多,發展也很快速,大家都應該不斷學習,提高自我安全意識才是最可靠的。
OKX Web3安全團隊:防範第三方釣魚陷阱確實是一個複雜的問題,因為釣魚者往往利用了人們的心理弱點和常見的安全疏忽。很多人平常都很謹慎,但往往遇到忽如其來的「大餡餅」時,往往放鬆了警惕,放大了自己的貪婪特性,從而導致上當受騙。在這個過程中,人性的弱點會大於技術,就算有更多的安全手段,使用者也會短期忽略,事後回想起來,才會發現自己早已上當受騙。我們要清楚,“天下沒有免費的午餐”,時刻注意提高警惕,注意安全風險,尤其是在區塊鏈這個黑暗森林裡面。
Q6:對使用者提高私鑰安全的建議
慢霧安全團隊:在回答這個問題之前,我們先整理下一般攻擊是怎麼去盜取用戶的資產的。攻擊者一般是透過以下兩種方式來竊取使用者的資產的:
方式一:騙取使用者對竊取資產的惡意交易資料進行簽名,如:欺騙使用者將資產授權或轉移給攻擊者
方式二:騙取用戶在惡意網站或App 上輸入錢包的助記詞,如:欺騙並誘騙用戶在虛假的錢包頁面中輸入錢包的助記詞
知道了攻擊者是如何盜取錢包資產後,我們就要對可能的風險進行防範:
防範一:盡可能做到所見即所簽。都說錢包是進入Web3 世界的鑰匙,用戶互動最重要的就是拒絕盲簽,在簽名之前要識別簽名的數據,知道自己簽的交易是做什麼的,否則就放棄簽名。
防範二:雞蛋不要放在同一個籃子裡。透過對不同資產以及使用頻率的情況可以對錢包進行分層級管理,讓資產的風險處於可控。參與空投等活動的錢包由於使用頻率較高,建議存放小額資產。大額資產一般不會頻繁動用,建議放在冷錢包中且使用的時候要確保網路環境,物理環境是安全的。有能力的話盡可能地使用硬體錢包,由於硬體錢包一般不能直接匯出助記詞或私鑰,所以可以提高助記詞私鑰被盜門檻。
防範三:各種釣魚手法和事件層出不窮,使用者要學會自行辨識各種釣魚手法,提高安全意識,進行自我教育避免被騙,掌握自救能力。
防範四:不急不貪、多方驗證。此外,使用者若想了解更全面的資產管理方案,可以參考慢霧出品的《加密資產安全解決方案》,了解更多的安全意識及自我教育,可以參考《區塊鏈黑暗森林自救手冊》 。
OKX Web3安全團隊:私鑰作為存取和控制錢包加密資產的唯一憑證,保護錢包私鑰安全至關重要。
防範一:了解你的DApp。在進行鏈上DeFi投資的時候,一定要對使用的DApp進行全方面的了解,以防止訪問了虛假DApp造成資產損失。儘管我們OKX Web3錢包針對DApp進行了多種策略的風險偵測和提示,但攻擊者會持續更新攻擊手法,並繞過安全風險偵測。用戶在投資的時候,一定要擦亮眼睛。
防範二:了解你的簽名。用戶在進行鏈上交易簽名的時候,一定要對交易進行確認,確保了解交易的細節,對於看不懂的交易一定要謹慎,不要盲目簽名。 OKX Web3錢包會對鏈上交易以及離線簽章進行解析,並模擬執行,展示資產變動及授權變動的結果。用戶可以在交易前,重點關注該結果是否符合預期。
防範三:了解你下載的軟體。下載輔助交易及投資軟體時,請確保是從官方平台下載的,下載後要及時使用防毒軟體掃描。如果下載惡意軟體,木馬會透過截圖監控剪貼簿、記憶體掃描、上傳快取檔案等手段,來取得使用者的助記詞或私鑰。
防範四:提升安全意識,妥善保管私鑰。盡可能不要複製助記詞,私鑰等重要訊息,不要截圖,不要將該類資訊保存到第三方的雲端平台中。
防範五:強密碼&多簽,在使用密碼的過程中,使用者應該盡可能增加密碼的複雜度,防止駭客在拿到私鑰加密檔案後,對其進行爆破。在交易過程中,如果有多簽機制,一定要採用多簽,這樣,如果一方的助記詞或私鑰洩漏,也不會影響整體的交易。