-
Cobo DeFi安全課(上):復盤2022 DeFi安全大事件
路安
2023-04-12
6030
DEFI
-
摘要:受 Moledao 邀請,Cobo 安全總監 Max 近日通過網絡為社區成員分享了一堂 DeFi 安全課。Max 為大家回顧了過去一年多 Web3 行業遭遇的重大安全事件,并著重探討了這些安全事件發生的原因以及如何規避,總結了常見智能合約的安全漏洞及預防措施,還對項目方和一般用戶給出了一些安全建議。
受 Moledao 邀請,Cobo 安全總監 Max 近日通過網絡為社區成員分享了一堂 DeFi 安全課。Max 為大家回顧了過去一年多 Web3 行業遭遇的重大安全事件,并著重探討了這些安全事件發生的原因以及如何規避,總結了常見智能合約的安全漏洞及預防措施,還對項目方和一般用戶給出了一些安全建議。在此,我們將 Max 分享的內容分為兩篇發布,供 DeFi 愛好者收藏。
根據慢霧統計,2022 年發生了 300 多起區塊鏈安全事件,總涉及金額達 43 億美元。
本文詳細講解以下八個典型案例,這些案例損失金額基本都是大于 1 億美元,其中 Ankr 涉及的金額雖然較小,但也是一個比較典型的案例。
Ronin Bridge
事件回顧:
2022 年 3 月 23 日,NFT 游戲 Axie Infinity 側鏈 Ronin Network 表示,早些時候發現,Sky Mavis 的 Ronin 驗證器節點和 Axie DAO 驗證器節點遭到入侵,導致在兩筆交易中橋接了 17.36 萬枚 ETH(當前價值逾 5.9 億美元)和 2550 萬 USD。
美國財政部表示,朝鮮黑客組織 Lazarus 與 AxieInfinity Ronin Network 6.25 億美元的黑客事件有關。
據媒體引述知情人士透露,黑客通過領英聯系了 Axie Infinity 開發商 Sky Mavis 公司的一名員工,經過幾輪面試告知其以高薪被錄用。隨后該員工下載了以 PDF 文檔呈現的偽造的「Offer」錄取信,導致黑客軟件滲透到 Ronin 的系統,從而黑客攻擊并接管 Ronin 網絡上九個驗證器中的四個,只差一個驗證器無法完全控制。隨后,黑客又控制了未撤銷權限的 Axie DAO 來實現最終的入侵。
朝鮮黑客團體已經存在很長時間,在 Web3 技術還未盛行的時候,已有多起新聞報道一些銀行或大型商業機構遭到入侵?,F在,越來越多傳統的黑客團體,以及一些國家級勢力,已從以往盜取數據和信用卡信息的行為,演變成攻擊區塊鏈項目,直接獲得實際利益。
這次事件的攻擊方式非常典型,在傳統的安全領域稱作 APT,即高級持續性威脅。黑客團體一旦確定目標,就會通過社會工程學等方法,先控制目標組織內的一臺電腦,作為跳板點,以進一步滲透,最終達成攻擊目的。
此事件也暴露出了 Axie Infinity 公司員工安全意識較弱,以及公司內部安全體系存在一些問題。
Wormhole
事件回顧:
根據 Wormhole 發布針對該事件的報告中指出,此次事件中 Wormhole 的漏洞具體是 Solana 端核心 Wormhole 合約的簽名驗證代碼存在錯誤,允許攻擊者偽造來自「監護人」的消息來鑄造 Wormhole 包裝的 ETH,共損失約 12 萬枚 ETH。
Jump Crypto 投入 12 萬枚以太坊以彌補跨鏈橋 Wormhole 的被盜損失,支持 Wormhole 繼續發展
Wormhole 遇到的問題主要是代碼層面的,因為它使用了一些廢棄的函數。拿以太坊舉例,初期版本的 Solidity 中,有些函數設計不完善,隨著后續的更新逐漸被廢棄。其他生態中也是一樣的情況。因此,建議開發者使用最新版本,以避免出現類似問題。
Nomad Bridge
事件回顧:
跨鏈互操作協議 Nomad 橋遭受黑客攻擊,是由于 Nomad 橋 Replica 合約在初始化時可信根被設置為 0x0,且在進行可信根修改時并未將舊根失效,導致了攻擊者可以構造任意消息對橋進行資金竊取,攻擊者能夠從攻擊中榨取超過 1.9 億美元的價值。
黑客正是利用該漏洞,找一筆有效交易反復發送構造好的交易數據抽取跨鏈橋被鎖定的資金,從而導致 Nomad 上鎖定的資金被幾乎全數盜走。
派盾 (PeckShield) 監測顯示,Nomad 被攻擊事件中,約 41 個地址獲利約 1.52 億美元 ( 占 80%),包括約 7 個 MEV 機器人 ( 約 710 萬美元 )、Rari Capital 黑客 ( 約 340 萬美元 ) 和 6 個白帽黑客 ( 約 820 萬美元 ),約 10% 的 ENS 域名地址獲利 610 萬美元。
Nomad Bridge 這個事件很典型,本質上是因為它的設置在初始化的時候存在一些問題,如果黑客找到一批曾經有效的交易然后重新廣播出去的話,那么那筆有效交易涉及的資金就會重新再去執行,并將收益返回給黑客。在整個以太坊生態中,參與者有很多,除了項目方和參與者之外,還有很多 MEV 機器人。在這個案例中,當自動化的機器人發現了這筆攻擊交易無論誰廣播出去,發出廣播這個人都會得到收益。只要能覆蓋 Gas 費,大家都多去廣播,所以整個事件就變成了一個搶錢事件。這次事件涉及到的地址非常多,雖然事后項目方找到一些 ENS 以及一些白帽黑客的地址,追回一部分資金,但絕大部分資金都沒有被追回來。如果黑客用一個非常干凈的設備,非常干凈的地址的話,是很難從一些數據關聯的角度找到背后的人是誰。
雖說像 Google、微軟、Facebook、阿里、騰訊等都經受過黑客攻擊,但是他們的程序都是閉源的;而在以太坊生態,或者是整個智能合約生態,很多程序都是開源的,對于黑客來講,分析開源的實際上是相對簡單的。所以當項目有漏洞的時候,基本就宣布了這個項目的失敗。
Beanstalk
事件回顧:
基于以太坊的算法穩定幣項目 Beanstalk Farms 在這次閃電貸攻擊中的損失約為 1.82 億美元,具體資產包括 79238241 枚 BEAN3CRV-f、1637956 枚 BEANLUSD-f、36084584 枚 BEAN 和 0.54 枚 UNI-V2_WETH_BEAN。攻擊者獲利超 8000 萬美元,包括約 24830 枚以太坊以及 3600 萬枚 BEAN。
本次攻擊的主要原因在于提案的投票與執行兩階段間無時間間隔,導致攻擊者在完成投票后未經社區審核可以直接執行惡意提案。
攻擊過程:
提前一天購買Token并質押獲取提案資格,創建惡意提案合約;
通過閃電貸獲取大量 Token 投票惡意合約;
惡意合約執行,完成套利。
Beanstalk 也是很典型的案例,黑客沒有用到什么漏洞,只是利用了項目的一個機制。這個項目的機制是任何人抵押 Token 之后可以提交提案,提案也是一個合約。攻擊者在實施攻擊的前一天買了一定的 Token ,然后提交了一個惡意的提案,提案在 24 小時之后就可以被投票,投完票之后沒有任何時間窗口,沒有任何時間鎖,投票被通過,就可以立刻執行。
現在很多項目都講社區自治,用純去中心化的方式,就會出現很多問題。比如提案,每一個提案是否有審核機制?一個提案到底是正常的提案還是惡意的提案?提案如果被通過,閃電貸過來直接抵押投票就有用,還是創建一種機制必須要 staking 一定的時間,甚至是發放投票 Token 才可以?以及提案通過之后到執行這個階段,到底應不應該有一個時間鎖?理論上是應該有的,這樣的話大家只要看在時間鎖內的操作,給了大家一個出逃的機會,如果沒有的話,假如執行的是一個惡意操作,誰也跑不了。
Wintermute
事件回顧:
2022 年 9 月 21 日早上,Evgeny Gaevoy 在推特上公布被盜事件進展,稱 Wintermute 確實曾于 6 月份使用 Profanity 和一個內部工具來創建錢包地址。這樣做的原因是優化手續費,而不只是為了創建靚號,并稱在上周得知 Profanity 存在漏洞后,Wintermute 加速棄用舊密鑰。但由于內部(人為)錯誤,調用了錯誤的函數,因此 Wintermute 沒有刪除受感染地址的簽名和執行操作。
我們可以看到網上很多前面有八個 0 這種號,以太坊地址中的 0 越多,手續費就越低,所以很多 MEV 的搶跑機器人和項目方都比較喜歡用,尤其是一些相對高頻操作的。
Wintermute 是一家做市商,當時他們把很多 Token 發到一個合約里,用靚號生成程序生成合約地址。這個合約的 Owner 也是一個靚號,剛好非常不巧的是這個 Owner 靚號私鑰被人給強算出來了,合約里的錢直接都被轉走了。
當我們在網上使用一種開源工具的時候,一定要有接受可能帶來一些不好后果的準備。當使用一個外部程序的時候,強烈建議要對它進行一個相對比較充分的安全評估。
Harmony Bridge
事件回顧:
Horizon 跨鏈橋損失逾 1 億美元,包括超 1.3 萬枚以太坊及 5000 枚 BNB。
Harmony 創始人稱,Horizon 被攻擊是由私鑰泄露導致。
據彭博社報道,根據區塊鏈研究公司 Elliptic 的最新分析,被稱為 Lazarus Group 的疑似朝鮮黑客組織被認為是在 Harmony 跨鏈橋 Horizon 盜取 1 億美元的幕后黑手。Elliptic 的分析強調了此次黑客事件中指向 Lazarus Group 的關鍵因素,包括自動存入 Tornado.Cash 以模擬 Ronin Bridge 事件的程序化洗錢,以及盜竊的時間等。
Harmony 這個事件沒有公布具體的細節,但最后的報道說可能還是朝鮮黑客集團,如果是朝鮮黑客組織的話,與 Ronin Bridge 攻擊手法是一致的。朝鮮的黑客組織這些年非?;钴S,尤其是針對幣圈,最近很多公司都受到過他們的釣魚攻擊。
Ankr
事件回顧:
Ankr: Deployer update 合約。Ankr: Deployer 給 Ankr Exploiter 轉了 BNB。Ankr Exploiter 通過更新后合約的鑄幣方法進行鑄幣。被憑空鑄Ankr: Deployer update 合約。
Ankr: Deployer 給 Ankr Exploiter 轉了 BNB。
Ankr Exploiter 通過更新后合約的鑄幣方法進行鑄幣。
被憑空鑄造出 10 萬億枚 aBNBc,黑客 A 將 aBNBc 通過 PancakeSwap 兌換出 500 萬枚 USDC,掏空了交易池,導致 aBNBc 幾乎歸零;,黑客 A 后續將幣跨到以太坊,并轉入 Tornado Cash。
黑客 A 鑄幣之后的約半小時,aBNBc 暴跌,產生了套利機會,套利者 B 利用借貸協議 Helio 的預言機 6 小時平均加時權重的設置,利用 aBNBc 在市場上和在 Helio 系統中的價差將其換成 hBNB,并將 hBNB 質押換出穩定幣 HAY,并將其換成 BNB 和 USDC,總共套出超過 1700 萬美元等值的穩定幣和 BNB,基本掏空 HAY 的交易對池子。
Ankr 將從 1500 萬美元恢復基金中調資購買增發的 HAY 以補償攻擊事件受害者
Ankr 的整體的損失不大,我們單獨來說一下。因為現在很多 DeFi 的項目都是樂高積木,A 依賴 B、B 依賴 C,各種組裝,那么當鏈條中其中某一環節出現問題的時候,整個鏈條中的上游下游可能全部都受影響。
后來 Ankr 發文說明了事件發生的緣由:歸結于一個已離職的內部員工作惡。暴露的問題:首先,Staking 合約 Owner 是一個 EOA 賬戶而不是多簽,本質上來講誰掌握私鑰,誰就能控制智能合約,這是非常不安全的;其次,Deployer 的私鑰又能被所謂的核心員工所掌控,甚至是離職之后依然可用;也就是說整個內部安全體系基本沒有起到什么作用。
Mango
事件回顧:
黑客使用了兩個賬戶一共 1000 萬 USDT 起始資金。第一步,黑客首先向 Mango 交易平臺 A、B 地址分別轉入 500 萬美元。第二步,黑客通過 A 地址在 Mango 上利用 MNGO 永續合約做空平臺 Token MNGO,開倉價格 0.0382 美元,空單頭寸 4.83 億個;與此同時,黑客在 B 黑客使用了兩個賬戶一共 1000 萬 USDT 起始資金。
第一步,黑客首先向 Mango 交易平臺 A、B 地址分別轉入 500 萬美元。
第二步,黑客通過 A 地址在 Mango 上利用 MNGO 永續合約做空平臺 Token MNGO,開倉價格 0.0382 美元,空單頭寸 4.83 億個;與此同時,黑客在 B 地址做多 MNGO,開倉價格 0.0382 美元,多單頭寸 4.83 億個。( 多空雙開的原因在于,Mango 平臺深度較差,如果不和自己做對手盤,倉位就很難開到這么高 )
第三步,黑客轉身拉盤多個平臺 (FTX、Ascendex) 上 MNGO 的現貨價格,致使價格出現 5-10 倍的增長,該價格通過 Pyth 預言機傳遞到 Mango 交易平臺,進一步推動價格上漲,最終 Mango 平臺上 MNGO 價格從 0.0382 美元拉升至最高 0.91 美元。
第四步,黑客的多頭頭寸收益為 4.83 億個 *(0.91 美元 - 0.0382 美元 )= 4.2 億美元,黑客再利用賬戶凈資產從 Mango 進行借貸。好在平臺流動性不足,黑客最終只借出近 1.15 億美元資
攻擊發生后,黑客發布了一項新提案,表示希望官方利用國庫資金 (7000 萬美元 ) 償還協議壞賬。據了解,目前國庫資金約為 1.44 億美元,其中包括價值 8850 萬美元的 MNGO Token 以及近 6000 萬美元的 USDC。黑客表示,如果官方同意上述方案,將返還部分被盜資金,同時希望不會被進行刑事調查或凍結資金?!溉绻@個提案通過,我將把這個賬戶中的 MSOL、SOL 和 MNGO 發送到 Mango 團隊公布的地址。Mango 國庫將用于覆蓋協議中剩余的壞賬,所有壞賬的用戶將得到完整補償...... 一旦 Token 如上述所述被送回,將不會進行任何刑事調查或凍結資金?!?/p>
據 CoinDesk 報道,此前公布身份的 Mango 攻擊者 Avraham Eisenberg 2022 年 12 月 26 日在波多黎各被捕,Avraham Eisenberg 面臨商品欺詐和商品操縱的指控,這些指控可能會受到罰款、監禁的懲罰。
Mango 這個事件可以定義成安全事件,也可以定義為套利行為,因為問題不是安全漏洞,而是業務模式漏洞。其交易品類中包括 BTC、ETH 等市值較高的幣種,也有 MNGO 這樣的小幣種,而這種小幣種在熊市流動性不足時,只要花很少的錢可能就把幣價拉起來,這種幣價操控行為使永續合約的平臺的頭寸管理變得十分困難。
所以作為項目方,要充分考慮到各種場景,在測試的時候,要把所有超出預期的場景都包含在測試用例中。
而作為普通用戶,去參與某個項目的時候,不能只盯著收益,還要多考慮考慮本金安全。拋開安全漏洞層面,要花心思去看一下它的業務模式有沒有一些漏洞可能被利用。
免責聲明:世鏈財經作為開放的信息發布平臺,所有資訊僅代表作者個人觀點,與世鏈財經無關。如文章、圖片、音頻或視頻出現侵權、違規及其他不當言論,請提供相關材料,發送到:2785592653@qq.com。
風險提示:本站所提供的資訊不代表任何投資暗示。投資有風險,入市須謹慎。
世鏈粉絲群:提供最新熱點新聞,空投糖果、紅包等福利,微信:trr3544。