返回部落格

關於髒話過濾工具漏洞的簡要分析

Code Auditing
2022年9月21日
閱讀約 6 分鐘

Wintermute 遭到了攻擊,損失超過 1.6 億美元。其根本原因是 Wintermute 項目使用的私鑰因 Profanity 工具中的漏洞而洩漏,該工具曾被 Wintermute 用於生成私鑰和以太坊帳戶。

在本部落格中,我們將描述 Profanity 漏洞的根本原因,以及該漏洞是如何被利用的。

以太坊位址

以太坊位址是由公鑰的 Keccak-256雜湊值生成的,並以十六進位數字表示。公鑰是使用橢圓曲線乘法從私鑰生成的,這是不可逆的。我們可以從私鑰得到公鑰,但如果沒有暴力破解,我們無法從公鑰得到私鑰。請注意,私鑰的長度為 256 位元。給定一個公鑰,您最多需要進行 2^256 次運算才能找到相應的私鑰。

總而言之,私鑰/公鑰與以太坊位址之間的關係如下圖所示。

漏洞的根本原因

Profanity 的目的是尋找一個特殊的以太坊位址,例如位址開頭的五個數字皆為零。為了達到這個目的,Profanity 採用了以下方法。

具體的實現可能會略有不同。

請注意,private_key 的長度為 256 位元(有 2^256 種不同的值)。然而,在生成私鑰的過程中存在一個漏洞。具體來說,種子(seed,在步驟 1 中)只有 32 位元,並且從步驟 1 中的種子到步驟 2 中的 private_key 的過程是確定性的。

這會造成什麼安全影響呢?

如何利用

假設我們有一個持有大量高價值資產的以太坊位址。如果我們能獲得它的私鑰,那麼我們就能控制該帳戶並將所有資產轉移走。然而,正如前面所討論的,我們必須暴力破解整個 2^256 的空間才能找到私鑰,這幾乎是不可能的。

但如果該以太坊位址是使用 Profanity 工具生成的呢?那麼我們可以用低得多的難度進行暴力破解來定位私鑰。我們只需要指定從 0 到 2^32-1 的種子,並重複相同的過程,直到找到能生成相同公鑰(及以太坊位址)的私鑰。由於我們最多只需要 2^32 * loop_threashold 次運算,如果我們擁有強大的 GPU 集群,這可以在幾個小時、幾天或幾週內完成。

不過,這仍然是一個經過優化的演算法。您可以參考慢霧(Slowmist)的文章以了解更多詳細資訊。

重點摘要

確保 DeFi 專案的安全並非易事。除代碼審計外,我們認為社群應該採取主動監控專案狀態的方法,並在 攻擊發生前阻止它。

關於 BlockSec

BlockSec 是一家開創性的區塊鏈安全公司,由一群全球知名的安全專家於 2021 年創立。公司致力於增強新興 Web3 世界的安全性和可用性,以促進其大規模採用。為此,BlockSec 提供智慧合約和 EVM 鏈的 安全審計服務、用於安全開發與主動阻斷威脅的 Phalcon 平台、用於資金追蹤與調查的 MetaSleuth 平台,以及供 Web3 建造者在加密世界中高效運作的 MetaSuites 擴充功能。

迄今為止,該公司已服務超過 300 家知名客戶,如 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap,並從經緯創投(Matrix Partners)、Vitalbridge Capital 和分佈式資本(Fenbushi Capital)等卓越投資者處獲得了兩輪數千萬美元的融資。

官方網站:https://blocksec.com/

官方 Twitter 帳號:https://twitter.com/BlockSecTeam

訂閱最新動態
Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇
Security Insights

Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇

2026年9月24日,攻擊者利用第三方安全產品漏洞,獲取內部憑證並偽造提款指令,導致約3.875億美元從Bitget部分營運錢包(涵蓋Ethereum、其他EVM網絡、XRP Ledger、Zcash及TRON)轉出;私鑰及冷錢包未受影響。本文深入梳理事件路徑與資金流向,分析快速轉換為原生資產及生態恢復應對,提出機構縱深防禦框架,並說明授權區塊鏈滲透測試如何驗證跨層假設。

約1130萬美元損失:Multicall Router、Nostra|BlockSec Weekly
Security Insights

約1130萬美元損失:Multicall Router、Nostra|BlockSec Weekly

本報告涵蓋2026/09/14至2026/09/20期間,探討以太坊與Starknet上兩起合計損失約1130萬美元的安全事件。較大一起中,多重呼叫路由器將自身位址接受為分派目標,導致巢狀呼叫以路由器自身已授權身分而非外部呼叫者身分進入Safe錢包的Gateway模組,約2900枚`aEthrsETH`被轉出至攻擊者建立的Uniswap v4池。在Starknet上,Nostra預言機整合僅要求最少一個聚合來源,當三個設定價格來源中僅兩個達成聚合時,操縱的薄池報價與正常報價平均後將`NSTR`估值約49.52美元,支撐約350萬美元以高估抵押品借貸。

损失約3.2億美元:Liquid Network與Symbiosis遭攻擊事件 | BlockSec
Security Insights

损失約3.2億美元:Liquid Network與Symbiosis遭攻擊事件 | BlockSec

本報告涵蓋2026/09/07至2026/09/13,探討兩起造成約3.2億美元損失的安全事件,包括前份報告未提及、發生於2026/09/06的Liquid Network漏洞事件。較大者為該Liquid Network漏洞:Elements中的rangeproof驗證快取藉由雜湊四個欄位(其中兩個長度可變)串接而成金鑰,且未標示欄位邊界,導致某輸出的驗證結果被錯誤套用至另一個未經檢驗證明的輸出,使攻擊者得以憑空創造4,000枚無擔保L-BTC,並將幾乎全數兌回比特幣。在橫跨BNB Smart Chain、Ethereum與Rootstock的Symbiosis跨鏈橋比特幣路徑中,讀取比特幣存款的鏈下程式碼從存款人可自行控制的欄位取得其身份,並在未檢查手續費是否為負值的情況下自存款中扣除,使330聰的存款鑄造出`46,116,860,184.27388234 syBTC`;其須賣出所經之資金池僅有11.26 syBTC,致使流動性提供者與用戶損失約9.97 BTC(約77萬美元)。

Web3 最佳安全審計方

在上線之前驗證設計、程式碼與業務邏輯,對標業內最高安全標準。

BlockSec 審計
關於髒話過濾工具漏洞的簡要分析