
「我錢包裡的ETH 都沒了!」
今日,DeFinance 創始人Arthur 在社交媒體上表示其遭受魚叉式網絡釣魚攻擊。 Arthur 點擊了一封酷似Defiance Capital 合作資管平台官方地址發來的郵件中的PDF 文檔,導致其熱錢包被盜,損失大量NFT 以及其他資產價值超400ETH。
Web3.0 的世界好像並不安全,我們的鏈上資產似乎處處受到威脅。確實,從上層來看,鏈上應用不光要考慮應用邏輯的漏洞,還要考慮所部屬鏈共識層可能潛在的攻擊途徑(搶跑等)。除此之外,我們還需要擦亮雙眼看清交互前端,並預防各類釣魚鏈接。最致命的一點是,交易一旦獲得清算保證,回滾成本極高。這麼說來,Web3.0 整體安全程度還不如Web2.0 呢。
但從更底層維度來看,理論上來說Web3.0 其實應該是更安全的。例如,鏈上的去中心化平行執行為鏈上應用打造了去信任化的執行環境。 Web2.0 應用常遇到的DoS 攻擊也被Gas 機制所解決。協議的開源同時也讓用戶在使用前「有權」進行DYOR,等等...
本文出自加密錢包ZenGo 聯創Tal Be'ery,文中就Web3.0 固有的安全優勢進行了詳細解讀,並提出了現存問題的潛在解決方案。律動研究院將全文進行了翻譯:
我知道這一點聽起來很荒唐,畢竟Web3 的安全性是目前科技領域的一大笑柄,而Web3 在去年也因安全漏洞損失了超過100 億美元。然而,我認為目前這樣的情況應該是階段性的,而非持續性的,一旦Web3 應用程序變得更加成熟,它們將在安全性上超越很多「傳統應用程序」。
Web3 三角
圖片描述
Web3 三角
在對Web3 作出定義之後,我們便可以開始探討它的安全性,而這主要包括智能合約的安全性。為了簡單起見,我們將只討論以太坊上的智能合約,但我相信其結論也適用於其他相似的系統和區塊鏈。
Web3 的安全性有其內在優勢
想像一下,如果Web3 軟件環境中沒有了惡意軟件、拒絕服務攻擊以及其他類型的攻擊,該是一次多麼美妙的升級。下面我們一起來認識一下實現了安全烏托邦的Web3:
-Web3 解決了可信執行的問題:對於傳統的應用程序,可信執行是一個尚未解決的主要問題。目前,一個應用程序必須信任其軟件(操作系統)和硬件(處理器和固件)的執行環境。如果這種信任被惡意軟件或能夠植入惡意處理器的硬件供應鏈攻擊所破壞,攻擊者便可以獲得控制權。 Web3 利用執行的去中心化解決了這個基本的安全問題。所有的區塊鏈節點都在平行執行web3 的代碼,並且必須就執行的結果達成一致。除非執行引擎本身存在一些系統性風險(例如以太坊的EVM 本身存在漏洞),否則攻擊者必鬚髮動「51% 算力攻擊」,用惡意軟件感染大多數區塊鏈節點,以破壞其執行。
-Web3 可以免疫注入式攻擊:對於傳統的網絡應用程序,所有參數都是以字符串的形式發送。這個設計缺陷是大多數傳統網絡應用程序漏洞背後的核心原因,這些漏洞包括SQL 注入和命令注入,讓攻擊者能夠將非預期輸入偷運到尚未完善的網絡應用程序之中。相比之下,由於Web3 的強類型性質,這種非預期輸入(比如,當預期是一個數字時,輸入的卻是一個字符串)將立即失敗,而Web3 應用程序則不需要做任何特殊的準備。
-Web3 對拒絕服務攻擊的抵抗力更強:雖然這些攻擊並不聰明,因為它們通常不是靠「腦力」,而是靠殭屍網絡大軍的「蠻力」,以較低的成本向攻擊目標發送垃圾流量,但它們仍然是傳統Web 應用程序面對的一個主要問題。相比之下,Web3 應用程序就不會受此困擾,因為區塊鍊為了防止被過量使用,設置了較高的交易費用,從而讓DoS 攻擊者無從下手。
除了上面幾點以外,Web3 在其他方面也表現出了很好的安全性(例如,在應對軟件供應鏈攻擊方面)。但是,僅僅是做到了上面幾點,就已經相當厲害了。
但除了上述的技術優勢外,鑑於Web3 的完全開放性和透明度,Web3 還具有一些理念意義上的安全優勢。早在Web3 出現之前,開放式安全理念在安全領域就有很多擁護者,認為它比「隱蔽式安全」更具優勢。 Web3 將開放式安全理念發揮到了極致:在Web3 中,不僅代碼按照慣例是開源的,而且根據定義,二進製文件在區塊鏈上也是對外公開的,且可以被驗證為是已發布源代碼的結果。此外,根據定義,所有代碼的執行(交易)都是公開的,任何人都可以對其進行驗證和審查。
理論優勢並非實際優勢
如果Web3 的安全性在理論上大大優於傳統應用程序,那為什麼在實際操作中,DeFI 應用程序的安全性還是比不過傳統的銀行應用程序?
我認為這不是因為Web3 的安全性本身有多差,而是因為它的運行環境異常惡劣,攻擊者可以更容易地靠黑客攻擊賺錢。 Web3 應用程序每時每刻都在處理著「流動資金」,因為區塊鏈上的資金轉移幾乎都是即時發生且不可改變的;而在傳統的銀行系統中,即使銀行應用程序被黑,在攻擊者兌現以前,這些惡意交易所涉及的財產都可以被追回。
具體而言,我們可以看一下規模最大的銀行被黑案之一——2016 年孟加拉銀行黑客入侵案。攻擊者利用惡意軟件滲透到銀行當中,並發送欺詐性的SWIFT 電匯,試圖劫走10 億美元。為了真正得到這10 億美元,攻擊者需要看好一個特定的日期,這一天正好銀行放假,好讓他們有足夠的時間來變現。他們還需要在一家能夠處理大量電彙的菲律賓銀行提前做好準備,以便在電匯被退回之前將資金套現。最終,攻擊者「只」獲得了10 億美元中的6000 萬美元,而這並不是因為銀行的軟件安全性高,而是因為環境比較寬鬆,給了防衛者足夠的時間追回電匯。
因此,我們可以得出結論,為了擊敗攻擊者,我們需要為防衛者爭取更多的時間。
要想做到這一點,我們需要減少攻擊的檢測時間,或者延長交易可逆轉前的時間,又或者同時做好這兩點。
我非常看好我們社區在改善攻擊檢測時間上的能力,因為目前已經有一些安全公司(如peckshield)能夠根據公開數據,利用上述的區塊鏈透明度及「開放式安全」理念,提前對黑客攻擊作出預警。從最近發生的黑客攻擊案及其事後分析來看,沒有什麼能阻止在交易執行時分析的實時進行(甚至在交易執行節點內存池中的一個「代辦事宜」時也一樣)。當我們把這樣一種先進的預警系統集成進合約當中以後,可能就足以用來杜絕此類惡意交易了,正如最近出現的Forta.network 等項目所顯示的那樣。
即使在今天,套現也不像看起來那麼容易。一些Crypto Token 已經設置了自己的黑名單,用以凍結名單用戶的資產。此外,要想兌現成法幣,攻擊者通常需要藉助中心化交易所,而這些交易所正受到越來越多的監管,並也增添了KYC 功能(了解你的客戶)及黑名單,阻止了攻擊者進行兌現。因此,如今一些攻擊者更願意歸還大部分被黑的資金,只保留一小部分,並把這部分資金洗白成被黑應用程序發放的「漏洞修補賞金」(bug bounty)。正如最近查獲的Bitfinex 被黑資金,這些黑客其實很難將大筆的Crypto 套現。可以肯定的是,套現只會變得越來越難。
結論:我們終將成功
雖然Web3 的安全性還遠遠不夠,但隨著它的不斷改進,未來很有可能成為我們數字活動的安全護盾。就像大多數革命性的技術一樣,Web3 的功能越豐富,其安全性就越是問題,這也是一直以來的情況。不過今後在風險投資和成功Web3 項目的資金支持下,安全系統的人才將不斷從傳統安全產品湧入Web3 領域,我相信到那時Web3 的安全性便可以充分的發揮出來。
原文鏈接
原文鏈接