HashEx安全警報 - 單一簽名可能會耗盡您的錢包 - 每日Hodl

HodlX 客戶投稿提交您的文章

DeFi 領域的零日無事故。這一次,該漏洞是在廣泛使用的“橢圓庫”中發現的。

更糟糕的是,這種利用可能導致黑客控制用戶的私鑰並耗盡錢包。

通過用戶簽署的簡單欺詐信息。 這是一個嚴重的問題嗎?

首先要考慮的是,像 elliptic 這樣的庫為開發者提供了現成的代碼組件。

這意味著開發者不需要從頭開始編寫代碼並在過程中檢查,而是直接借用他們所需的元素。

雖然這被認為是一種更安全的做法,因為這些庫不斷被使用和測試,但如果有一個漏洞被漏掉,這也會增加風險。

Elliptic庫在JavaScript生態系統中被廣泛使用。它為許多知名區塊鏈項目、Web應用程序和安全系統提供加密功能。

根據NPM統計,包含錯誤的包每週大約下載1200萬到1300萬次,超過3000個項目直接將其列為依賴項。

這種廣泛的使用意味著該漏洞可能影響大量應用程序——特別是加密貨幣錢包、區塊鏈節點和電子簽名系統——以及任何依賴於ECDSA簽名的服務,尤其是在處理外部提供的輸入時。

此漏洞允許遠程攻擊者在沒有適當授權的情況下完全破壞敏感數據。

這就是該問題獲得極高嚴重性評級的原因——在CVSS評分中大約為9分(滿分10分)。

重要的是要指出,利用此漏洞需要一系列非常特定的操作,並且受害者必須簽署攻擊者提供的任意數據。

這意味著一些項目可能會保持安全,例如,如果一個應用程序僅簽署預定的內部消息。

然而,許多用戶在通過加密錢包簽署消息時並沒有像簽署交易時那樣多加關注。

每當一個Web 3.0網站要求用戶簽署服務條款時,用戶往往會忽略閱讀這些條款。

同樣,用戶可能會在沒有完全理解影響的情況下快速為空投簽署一條消息。

技術細節

問題出在未能在創建ECDSA (橢圓曲線數字簽名算法)簽名時正確處理錯誤。

ECDSA通常用於確認消息,例如區塊鏈交易,是真實的。

要創建一個簽名,您需要一個祕密密鑰——只有擁有者知道它——以及一個稱為‘nonce’的唯一隨機數。

如果同一個隨機數被多次用於不同的消息,某人可能會通過數學推導出祕密密鑰。

通常,攻擊者無法從一個或兩個簽名中推導出私鑰,因為每個簽名都使用一個獨特的隨機數(nonce)。

但是橢圓曲線庫存在一個缺陷——如果它接收到一種奇怪類型的輸入(,例如一個特殊字符串,而不是預期的格式),它可能會為不同的消息生成兩個具有相同隨機數的簽名。

這個錯誤可能會洩露私鑰,這在正確使用ECDSA時是絕對不應該發生的。

要利用這個漏洞,攻擊者需要兩個條件。

  • 用戶的有效消息及其簽名 – 例如,來自之前的任何交互
  • 用戶需要簽署第二條信息,該信息明確創建用於利用該漏洞

通過這兩個簽名,攻擊者可以計算用戶的私鑰,從而獲得對與之相關的資金和操作的完全訪問權限。詳細信息可在 GitHub 安全公告中找到。

利用場景

攻擊者可能通過多種方式利用此漏洞,包括以下幾種。

  • 網絡釣魚攻擊將用戶引導至假網站並請求消息簽名
  • 惡意 DApps (去中心化應用)偽裝成無害服務,例如簽署使用條款或參與空投
  • 社會工程誘使用戶簽署看似無害的消息
  • 妥協服務器的私鑰,這些私鑰用於簽署用戶的消息

一個特別令人擔憂的方面是用戶在簽署消息時的態度普遍較為鬆懈,相較於交易。

加密項目經常要求用戶簽署服務條款或空投參與消息,這可能使得被利用變得更容易。

所以,想想看——你會簽署一條消息以領取免費代幣嗎?如果那份簽名可能會讓你失去全部加密資產呢?

建議

用戶必須及時將所有使用橢圓曲線庫進行簽名的應用程序和錢包更新到最新的安全版本。

在簽署消息時要謹慎,特別是來自不熟悉或可疑來源的消息。

錢包和應用程序的開發者應驗證他們的橢圓曲線庫版本。

如果任何用戶可能受到易受攻擊版本的影響,開發者必須通知他們緊急更新的必要性。


Gleb Zykov 是 HashEx 區塊鏈安全公司的聯合創始人兼首席技術官。他在 IT 行業擁有超過 14 年的經驗,在互聯網安全方面有超過 8 年的經驗,並且在區塊鏈技術方面擁有強大的技術背景 (比特幣、以太坊和基於 EVM 的區塊鏈)。

查看原文
本頁面內容僅供參考,非招攬或要約,也不提供投資、稅務或法律諮詢。詳見聲明了解更多風險披露。
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate.io APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)