Web2 的安全性漏洞:Web3 專案所忽視的危險

2022-09-23

關鍵要點

  • DeFi 專案正經由 Web2 的漏洞被駭客入侵。

  • 在最近的兩個案例中,標籤管理與網域名稱系統遭利用來侵害 DeFi 的專案安全性。

  • Web3 團隊應更加注意 Web2 安全要求,以保護整個生態系。

在過去幾個月內,我們看到一些 Web3 專案成為了駭客的目標,他們利用 Web2 的漏洞來竊取數十萬美元的使用者資金。其他專案可以從中學到一些教訓。我們應該花一些時間對這些 Web2 的安全性漏洞進行反思,我們才能一起守護 Web3 生態系。

區塊鏈技術已為金融帶來變革。由於自我託管、智能合約與 Web3 產品的出現,使用者已然可以直接管理自己的資金與投資。但在這不斷變化的環境中,我們需要在去中心化與安全性之間找到平衡。當涉及普通人的資金時,後者尤其重要。有鑑於 Web3 去中心化的本質,重點通常會擺在確保不同產品與平台的核心區塊鏈協定與智能合約足夠穩健、安全與沒有漏洞。 

然而,許多 Web3 專案仍舊依賴 Web2 的框架與技術,以在其核心區塊鏈協定之上運行額外的功能。所以駭客開始利用 Web2 的安全性漏洞作為攻擊媒介,以竊取專案與使用者的資金。例如利用前端程式碼或系統,而非攻擊智能合約本身。

這些 Web2 漏洞是什麼?它們是如何運作的?對此我們能做些什麼?在本文中,我們將透過研究最近幾個月因 Web2 漏洞而受害的兩個主要 DeFi 專案—KyberSwap 與 Curve Finance—來回答這些問題,並從這些案例中得出一些結論,以幫助促進廣大的社群的安全性。

KyberSwap 因 Google 標籤管理器 (Google Tag Manager) 漏洞損失 265,000 美元

去中心化交易所 KyberSwap 於 2022 年 9 月 1 日因前端漏洞受到攻擊。該攻擊導致了 265,000 美元的損失。發生了什麼事?簡單來說,駭客在 KyberSwap 的 Google 標籤管理器 (GTM) 中插入惡意程式碼,允許他們將用戶資金轉移到自己的地址。 

Google 標籤管理器 (GTM) — Web2 的安全性漏洞 

這是一個 Web2 漏洞,因為 GTM 與 KyberSwap 的智能合約或區塊鏈協定功能毫無關聯性。相反的,GTM 是一個標籤管理系統,幫助新增與更新數位行銷標籤,協助如轉換率追蹤與網站分析。駭客能夠透過網路釣魚取得 KyberSwap 的 GTM 帳戶,接著植入惡意程式碼。由於 KyberSwap 的前端被入侵,犯罪者可以取用使用者的資金,並最終造成 265,000 美元的損失。 

其指令碼專門針對巨鯨錢包。Kyber 網路 (KyberSwap 背後的流動性中心) 成功停用了 GTM 並清除不良指令碼,從而阻止任何進一步的犯罪活動。順道一提:KyberSwap 宣布會賠償所有損失。但如果當初有對 Web2 安全性更加注意,此次透過前端攻擊本來是可以完全避免的。

Curve Finance 因 DNS 漏洞損失 570,000 美元

KyberSwap 並非唯一一個近期受到前端漏洞攻擊的 DeFi 專案。於 2022 年 8 月 9 日,有一群駭客利用了去中心化交易所 Curve Finance 的系統漏洞,從使用者錢包竊取了價值 57 萬美元的以太幣 (ETH)。此次前端攻擊源於 DNS 快取汙染 (DNS cache poisoning) — 一種讓駭客能夠將想要連上 Curve Finance 網域的使用者重新導向的安全性漏洞。使用者被帶到一個假的仿冒網站。

DNS 快取汙染 — Web2 安全性漏洞 

DNS 是網域名稱系統 (domain name system) 的縮寫。它是協助人們輕鬆瀏覽網路的基本工具之一。每當有人輸入網域名稱時,其設備都會向 DNS 伺服器發送查詢 (query),詢問相關的 IP 地址。 

一般而言,該查詢會經過多個 DNS 伺服器,直到它找到對應的地址。可以把網路想成是一個大型且複雜的高速公路系統,每一條路通往不同的網站。在這些路上,DNS 伺服器的功能就像交通警察,引導車輛朝正確的方向行駛。

在 Curve Finance 的案例中,駭客創造了一個與 Curve 真實 DNS 伺服器一模一樣的複製品,將使用者重新導向一個看起來與該專案一模一樣的虛假網站。這讓犯罪者可以在 Curve 的「首頁」中植入惡意合約。當用戶在他們的錢包上核准使用合約時,他們的資金就被抽乾了,損失總計 570,000 美元。

專案方該如何保護使用者?從中學到的教訓

最大的教訓是,如果一個專案不認真看待 Web2 的安全性,無論智能合約有多強大都沒有用。團隊必須思考 Web2 與 Web3 之間可能存在落差,並應該對整體專案安全性負起更多責任。 

我們能從 GTM 漏洞中學到什麼 

例如,在 KyberSwap 與 GTM 漏洞的案例中,團隊需要記得使用兩步驟驗證 (2FA),以保護如 GTM 帳戶等輔助工具。專案方也應該只讓必要的少數人擁有存取帳戶的權限,只有他們能夠部署想要程式碼到他們的網站上。由於該權限非常危險,必須有一個適當的權限控管系統。例如,在幣安,我們將權限獨立分為三種不同角色:標籤開發人員、安全性檢查人員與發佈者。他們都無法獨自新增新的網站程式碼 — 需要 3 者才能共同完成該流程。

我們能從 DNS 漏洞中學到什麼 

避開被入侵的 DNS 伺服器總是比事後清理損失更簡單。以下是普通使用者該如何保護他們的資金:

  • 不要點擊可疑的連結。

  • 定期清除 DNS 快取。

  • 定期掃描裝置上有害的程式。

但在此情況下,若談到如何保護自己,一般人能做的實在是有限。受侵入的 DNS 伺服器通常會將使用者重新導向一個完全一模一樣的首頁,幾乎不可能察覺出差異。  

最大的責任落在加密貨幣公司身上。專案方應該確保他們使用安全、信譽良好的網域管理供應商。在 Curve Finance 的被駭案例中,幣安執行長 CZ 在 Twitter 上提到,他們使用了「一個不安全的 DNS。任何 Web3 專案都不應該這麼做。因為非常容易受到社交工程的攻擊。」

團隊不應該試圖透過低端 DNS 供應商節省成本。可靠的供應商應該支援自訂協定,以防止駭客更改網域名稱設置。 

Web3 帶來了大量的機會,但我們不應忽視自上一個網路時代以來就存在的安全性威脅。讓我們保持警惕,在各個方面共同保護我們的生態系。

299,962,275 位用戶選擇了我們。立即一探究竟。