慢霧:2022 區塊鏈安全回顧
回顧過去的一年,我們看到加密領域出現了很多新場景、新應用和新變化。玩家也在逐漸增多,但是安全問題也一直困擾著行業的發展。因此,慢霧整理了2022年行業中出現的那些重大的安全事件,並進行了相應的分析和解讀。
根據慢霧區塊鏈被黑事件檔案庫( SlowMist Hacked )統計,2022 年安全事件共 295 件,損失高達 37.28 億美元。相比 2021 年的 97.95 億美元下降約 62%,但這並不包括因市場動盪而損失的資產。
(2022 年安全事件統計)
其中各生態 DeFi、跨鏈橋、NFT 等安全事件 245 起,交易所安全事件 10 起,公鏈安全事件 11 起,錢包安全事件 5 起,其他類型安全事件 24 起。
從時間上來看,5月和10月攻擊事件數量最高,達到38件。3月損失金額最高,達到約7億美元。
一、區塊鏈生態安全概覽
公鏈
公鏈是 Web3 領域最重要的基礎設施,也是行業中競爭最激烈的賽道之一。而 2022 年最令人訝異的莫過於 Terra 事件了。5 月 8 日,加密貨幣市場上出現了史上最具破壞性的一次崩盤。Terra 網絡的算法穩定幣 UST 出現了 2.85 億美元的巨額拋售,引發了一系列連鎖反應。Terra 的原生代幣 LUNA 的價格突然毫無徵兆的連續跳崖式暴跌,一天時間,Luna 市值蒸發了近 400 億美元,全生態項目 TVL 也幾乎歸零。此次事件或許成為了開啟 2022 加密寒冬的死亡按鈕。
DeFi / 跨鏈橋
據 DeFi Llama 數據顯示,截止 12 月底,DeFi 總鎖倉價值約為 398 億美元,同比巨降75%。Ethereum 以占比整個 DeFi TVL 的 58.5%(233 億美元)占據主導地位,緊隨其後的是 TRON,TVL 為 43 億美元,BNB Chain ( BNB ) 為 42 億美元。有趣的是,2022 年 5 月,Ethereum 的TVL 在 DeFi 中的占比減少了 35% ,而TRON 的 TVL 占比增長了 47%。
根據 SlowMist Hacked 統計,2022 年 BNBChian 上發生安全事件約 90 起,總損失金額約 7.85 億美元,居各鏈平台損失金額第一位。而 Ethereum 上發生安全事件約 50 起,總損失金額約 5.28 億美元,其次是 Solana 上發生安全事件約 11 起,總損失金額約 1.96 億美元。
據 Dune Analytics的數據,以太坊跨鏈橋的鎖定總價值(TVL)約 83.9 億美元,對比上半年降低了約 31%。目前 TVL 最高的是 Polygon Bridges(30 億美元),排名第二的是 Arbitrum Bridges(12.8 億美 元),隨後是 Optimism Bridges(8.5 億美元)。跨鏈橋允許用戶將加密資產從一條鏈轉移到另一條鏈,主要解決多鏈擴展問題。然而,跨鏈橋智能合約中的大量資金加上缺少安全審計,引來了黑客的目光。
根據 SlowMist Hacked 統計,2022 年跨鏈橋安全事件共 15 起,損失高達 12.1 億美元,占比2022年總損失的 32.45%。
總而言之,對項目方來說,想要盡可能的消除漏洞、降低安全風險,就必須做出有效的努力------在項目上線之前,對其進行全面深入的安全審計。同時,建議各項目方通過引入多簽機制來加大資產保護的力度。另一方面,各項目在進行協議間交互或移植其他協議的代碼時,需充分了解移植協議的架構以及自己項目的架構設計,做好協議之間的兼容性,防止資金損失情況的發生。對用戶來說,隨著區塊鏈領域的玩法愈發多樣化,用戶在進行投資前認真了解項目背景,查看該項目是否有開源、是否經過審計,在參與項目時需要提高警惕,注意項目風險。
NFT
NFT 在 2022 年表現極為搶眼,據 NFTScan 數據顯示,在以太坊上的 NFT 全年交易次數達 1.98 億次,明顯高於 2020 年和 2021 年。而在 BNBChain 上的 NFT 全年交易次數達 3.45 億次,在 Polygon 上的 NFT 全年交易次數達 7.93 億次。
另一方面,根據 SlowMist Hacked 不完全統計,2022 年 NFT 賽道安全事件約 56 起,損失超 6543 萬美元,其中大部分是由釣魚攻擊導致,占比約為 40%(22 起),其次是 Rug Pull,占比約為 21%(12 起)。
錢包 / 交易平台
2 月 8 日,美國司法部(DOJ)發布公告稱,已經查獲了價值 36 億美元的比特幣,這些比特幣與 2016 年加密貨幣交易所 Bitfinex 的黑客事件有關。34 歲的 Ilya Lichtenstein 和其 31 歲的妻子 Heather Morgan 在紐約被捕,兩人被指控共謀洗錢和詐騙罪。這也是美國司法部有史以來最大規模的金融扣押。
11月6日,幣安創始人CZ發推稱決定清算賬面上所有剩餘的FTT,由此引發兩大交易所之間的對峙。儘管Alameda CEO和FTX CEO SBF接連發推試圖穩固用戶信心並闢謠此前曝光的消息,但還是引發FTX 在流動性枯竭後迅速破產。最終,FTX暴雷,SBF被捕。中心化交易所的不透明再度引發人們的信任危機,缺乏審慎監管的問題越發凸顯。無論是對消費者更嚴格的保護,還是對機構更明確的規則,監管的腳步都將愈發清晰。
在 FTX 暴雷後,硬體錢包的銷量大幅增長,用戶量最多的錢包 MetaMask 月活用戶達 3000 萬。根據 Finbold 數據顯示,基於排名前 21 個加密貨幣存儲 APP 應用,在 2022 年 1 月至 2022 年 10 月期間,Android 和 iOS 設備上的加密錢包下載量已經達到約 1.0206 億次。雖然這個數字低於 2021 年牛市期間的 1.7785 億次下載量,但比除 2021 年之外的任何一年都高。按月細分數據顯示,加密錢包下載量年初呈下降趨勢,但在 Terra/Luna 崩潰以及 FTX 暴雷後均出現較大幅度增長。
其他
區塊鏈技術不可逆、匿名性特徵在有效保護隱私的同時,也為網絡犯罪提供了"保護傘"。隨著元宇宙、NFT 等概念受到熱捧,加密貨幣盜竊事件、欺詐事件時有發生,很多不法分子打著區塊鏈旗號發行所謂的虛擬資產,實施詐騙,黑灰產的先進與專業度已經遠超想象。
據中國人民銀行支付結算司數據,2021年涉詐款項的支付方式中,利用加密貨幣進行支付僅次於銀行轉帳,排名第二位,高達 7.5 億美元;而 2020 年、2019 年僅為 1.3、0.3 億美元,逐年大幅 增長的趨勢明顯。值得關注的是,加密貨幣轉帳在"殺豬盤"詐騙中增長迅速。2021 年"殺豬盤"詐騙 資金中 1.39 億美元使用加密貨幣支付,是 2020 年的 5 倍、2019 年的 25 倍。
根據美國聯邦貿易委員會(FTC)發布的一份報告,在自2021年年初以來的一年多時間裡,已有超過4.6萬人報告自己遭遇了加密貨幣詐騙,損失總額超過10億美元。根據報告,最常見的加密貨幣詐騙類型是投資相關欺詐,在總金額10億美元中占5.75億美元,最常向詐騙者支付的加密貨幣包括 BTC(70%)、USDT(10%)和ETH(9%)。
二、攻擊手法
295 起安全事件中,攻擊手法主要分為三類:由項目自身設計缺陷和各種合約漏洞引起的攻擊;包含 Rug Pull、釣魚、Scam 類型的手法;由私鑰洩露引起的資產損失。
2022 年最常見的攻擊手法是由項目自身設計缺陷和各種合約漏洞引起,約 92 起,造成損失 10.6 億美元,占總數量的40.5%。其中較為主要的是利用閃電貸引起的攻擊,約 19 起,造成損失 6133 萬美元,其他包括重入問題、價格操縱、驗證問題等等。
因私鑰被盜引起的資產損失發生率約為 6%,損失金額卻達到 7.46 億美元,僅次於合約漏洞利用,因私鑰被盜的事件中,損失最大的來自Ronin事件,其次是Harmony,都是來自跨鏈橋。
在 Web3 世界,用戶的安全意識往往是參差不齊,這也導致了針對用戶的釣魚攻擊花樣多多且頻繁發生。例如,攻擊者利用惡意手段將各項目的官方媒體平台(如 Discord、Twitter)占為己有或者偽造官方媒體號並發布釣魚Mint、AirDrop鏈接,還時不時轉發真正的官方號內容來混淆視聽。例如,利用搜索引擎上的廣告宣傳虛假網站或者與官方域名高度相似的域名及內容來以假亂真;例如通過偽造的郵件、吸引人的贈品活動來引你入局;又例如利用新用戶信息差提供假APP下載鏈接。無論如何,提高安全意識才是最必要的,同時,一旦發現自己中招,第一時間轉移資產,及時止損並保留證據,必要時尋求業內安全機構的幫助。
其次,最令人憎惡的則是 Rug Pull。Rug Pull通常指項目的開發者放棄項目,帶著資金逃跑,更多是項目方主動作惡。它可以以多種方式發生:比如當開發者啟動初始流動性,推高價格,然後撤回流動性項目方先創建一個加密項目,通過各種營銷手段吸引加密用戶投資,並在合適的時機毫無徵兆地卷走用戶投資的資金,拋售加密資產,最終銷聲匿跡,投資該項目的用戶也將蒙受巨大損失。再比如推出一個網站,但在吸引了數十萬存款後關閉。2022 年 RugPull 事件達到 50 起,損失約 1.88 億美元,常發生於 BSC 生態及 NFT 領域。
2022年其他較為新型的手法為前端惡意攻擊、DNS攻擊以及BGP劫持;最為奇葩的則是人為配置操作失誤導致的資產損失。
三、釣魚/騙局手法
此節只選取部分 SlowMist 曾披露過的釣魚/騙局手法。
瀏覽器惡意書籤盜取 Discord Token
現在的瀏覽器都有自帶的書籤管理器,在提供便利的同時卻也容易被攻擊者利用。通過精心構造惡意的釣魚頁面可以讓你收藏的書籤中插入一段 JavaScript 代碼,有了這個幾乎可以做任何事情,包括通過 Discord 封裝好的 webpackChunkdiscord_app 前端包進行信息獲取。當 Discord 用戶點擊時,惡意 JavaScript 代碼就會在用戶所在的 Discord 域內執行,盜取 Discord Token,攻擊者獲得項方的 Discord Token 後就可以直接自動化接管項方的 Discord 賬戶相關權限。攻擊者拿到了 Token 等同於登錄了 Discord 賬號,可以做登錄 Discord 的任何同等操作,比如建立一個 Discord webhook 機器人,在頻道裡發布公告等虛假消息進行釣魚。下面是演示受害者點擊了釣魚的書籤:
下面是演示攻擊者編寫的 JavaScript 代碼獲取 Token 等個人信息後,通過 Discord Server 的 webhook 接收到。
可以看到,在用戶登錄 Web 端 Discord 的前提下,假設受害者在釣魚頁面的指引下添加了惡意書籤,在 Discord Web 端登錄時,點擊了該書籤,觸發惡意代碼,受害者的 Token 等個人信息便會通過攻擊者設置好的 Discord webhook 發送到攻擊者的頻道上。
"零元購" NFT 釣魚
例如下圖釣魚網站,簽名內容為
Maker:用戶地址
Taker:0xde6135b63decc47d5a5d47834a7dd241fe61945a
Exchange:0x7f268357A8c2552623316e2562D90e642bB538E5(OpenSea V2 合約地址)
這是一種較為常見的 NFT 釣魚方式,即騙子能夠以 0 ETH(或任何代幣)購買你所有授權的 NFT。也就是說,這是欺騙用戶簽名 NFT 的銷售訂單,NFT 是由用戶持有的,一旦用戶簽名了此訂單,騙子就可以直接通過 OpenSea 購買用戶的 NFT,但是購買的價格由騙子決定,也就是說騙子不花費任何資金就能"買"走用戶的 NFT。
此外,簽名本身是為攻擊者存儲的,不能通過 Revoke.Cash 或 Etherscan 等網站取消授權來廢棄簽名的有效性,但可以取消你之前的掛單授權,這樣也能從根源上避免這種釣魚風險。
Redline Stealer 木馬盜幣
這種攻擊主要是通過 Discord 邀請用戶參與新的遊戲項目內測,打著"給予優惠"等幌子,或是通過群內私聊等方式發一個程序讓你下載,一般是發送壓縮包,解壓出來是一個大概 800 M 左右的 exe 文件,一旦你在電腦上運行,它會掃描你電腦上的文件,然後過濾包含 Wallet 等關鍵詞的文件上傳到攻擊者伺服器,達到盜取加密貨幣的目的。
RedLine Stealer 是一種惡意木馬軟件,2020 年 3 月被發現,在地下論壇上單獨出售。該惡意軟件從瀏覽器中收集保存的憑據、自動完成數據和信用卡等信息。在目標機器上運行時,會搜集如用戶名、位置數據、硬體配置和已安裝的安全軟件等詳細信息。 新版本的 RedLine 增加了竊取加密貨幣的能力,能夠自動掃描本地計算機已安裝的數字貨幣錢包信息,並上傳到遠端控制機。該惡意軟件具有上傳和下載文件、執行命令以及定期發回有關受感染計算機的信息的能力。常常針對加密貨幣錢包目錄、錢包文件進行掃描:
空白支票 eth_sign 釣魚
連接錢包後並點擊 Claim 後,彈出一個簽名申請框,同時 MetaMask 顯示了一個紅色提醒警告,而光從這個彈窗上無法辨別要求簽名的到底是什麼內容。其實這是一種非常危險的簽名類型,基本上就是以太坊的"空白支票"。通過這個釣魚,騙子可以使用您的私鑰簽署任何交易。
這種 ethsign 方法可以對任意哈希進行簽名,那麼自然可以對我們簽名後的 bytes32 數據進行簽名。因此攻擊者只需要在我們連接 DApp 後獲取我們的地址對我們賬戶進行分析查詢,即可構造出任意數據(如:native 代幣轉帳,合約調用)讓我們通過 ethsign 進行簽名。
除此之外,還有一種釣魚:在你拒絕上述的 sign 後,它會在你的 MetaMask 自動顯示另一個簽名框,趁你沒注意就騙到你的簽名。而看看簽名內容,使用了 SetApprovalForAll 方法,同時 Approved asset 的目標顯示為 All of your NFT,也就是說,一旦你簽名,騙子就可以毫無節制地盜走你的所有 NFT。
這種釣魚方式對用戶會有很強的迷惑性,以往我們碰到的授權類釣魚在 MetaMask 會給我直觀的展示出攻擊者所要我們簽名的數據。而當攻擊者使用 eth_sign 方法讓用戶簽名時,MetaMask 展示的只是一串 bytes32 的哈希。
尾號相同 + TransferFrom 零轉帳騙局
用戶的地址轉帳記錄中不斷出現陌生地址轉帳 0 USDT,而這筆交易均是通過調用 TransferFrom 函數完成的。究其原因主要是代幣合約的 TransferFrom 函數未強制要求授權轉帳數額必須大於 0,因此可以從任意用戶賬戶向未授權的賬戶發起轉帳 0 的交易而不會失敗。惡意攻擊者利用此條件不斷地對鏈上活躍用戶發起 TransferFrom 操作,以觸發轉帳事件。
除了0USDT轉帳騷擾,還伴隨著攻擊者針對交易規模較大頻率較高的用戶不斷空投小額數量的 Token(例如 0.01 USDT 或 0.001 USDT 等),攻擊者地址尾數和用戶地址尾數幾乎一樣,通常為後幾位,用戶去複製歷史轉帳記錄中的地址時一不小心就複製錯,導致資產損失。
以上只是舉例了一些常見的攻擊手法和場景,實際上道高一尺魔高一丈,黑客的攻擊手法永遠都在推陳出新,我們能做的就是不斷提高自己的見識。
對於個人用戶來說,遵守以下安全法則及原則,可以避免大部分風險:
兩大安全法則:
零信任。簡單來說就是保持懷疑,而且是始終保持懷疑。
持續驗證。你要相信,你就必須有能力去驗證你懷疑的點,並把這種能力養成習慣。
安全原則:
網上的知識,凡事都參考至少兩個來源的信息,彼此佐證,始終保持懷疑。
做好隔離,也就是雞蛋不要放在一個籃子裡。
對於存有重要資產的錢包,不做輕易更新,夠用就好。 所見即所簽。即你看到的內容就是你預期要簽名的內容,當你簽名發出去後,結果就應該是你預期的,絕不是事後拍斷大腿的。
重視系統安全更新,有安全更新就立即行動。
不亂下程序。