作者:KEYHUNTER
org.tbk.bitcoin.jsonrpc.config 套件中的這段程式碼並未直接暴露與金鑰或私鑰洩漏相關的加密漏洞。這是一個 Spring Boot 配置測試類,用於對「/actuator/info」端點進行整合測試,其測試屬性(TestPropertySource)中包含比特幣 JSON-RPC 連線參數:
- rpcuser=測試
- rpcpassword=test
這些憑證以純文字形式在 @TestPropertySource 註解中指定,具體位置如下:
Java"org.tbk.bitcoin.jsonrpc.rpcuser=test",
"org.tbk.bitcoin.jsonrpc.rpcpassword=test"
從安全角度來看,這可能存在安全隱患,因為原始程式碼中,尤其是代碼倉庫中的密碼不應該以明文形式儲存。如果這些值洩漏到代碼倉庫,則可能導致資料外洩。雖然這是一個測試設定檔(ActiveProfiles(“test”)),但如果在生產伺服器上採用類似做法,這種方法可能會在實際環境中洩漏機密資訊。
結果:
- 漏洞存在於測試屬性中儲存 RPC 密碼和使用者名稱的程式碼行:
Java"org.tbk.bitcoin.jsonrpc.rpcuser=test",
"org.tbk.bitcoin.jsonrpc.rpcpassword=test"
- 這種將秘密公開儲存的做法很不好,可能會導致洩漏。
- 此程式碼中沒有對私鑰進行明確操作,因此不會直接洩漏密鑰。
為了真正的加密安全,您應該使用安全的金鑰儲存、可變環境或金鑰管理工具(Vault、Kubernetes Secrets 等),而不是直接在原始碼中儲存密碼和金鑰。
如果您需要檢查使用金鑰的特定加密操作或偵測加密實作本身的漏洞,那麼這不屬於此類,而是需要檢查產生、儲存或操作私鑰的程式碼的其他部分。
如果您需要協助分析特定的金鑰產生或管理程式碼,您可以提供該程式碼以進行分析。
請注意,密鑰洩漏的原因通常有以下幾種:
- 儲存在原始程式碼中(例如這裡使用的 rpcpassword)
- 記錄秘密數據
- 缺乏加密和存取控制
- 密鑰產生錯誤(另一種類型的漏洞)
研究論文:將密碼儲存在原始碼中的漏洞及安全修復方法
引言
安全性在現代軟體系統中扮演著至關重要的角色,尤其是在儲存和傳輸密碼、私鑰等敏感資料方面。一個常見的錯誤是將此類資料以明文形式直接儲存在應用程式原始碼中。這種方法會造成明顯的漏洞,可能導致系統遭到入侵和關鍵資訊外洩。本文旨在詳細探討此漏洞的機制,分析其潛在風險,並提供可靠且安全的消除方法。
漏洞機制:
當敏感資料(例如 RPC 介面密碼或私鑰)以明文形式儲存在程式碼庫的原始程式碼或設定檔中時,就會出現此漏洞。攻擊者只需取得原始碼或其副本的存取權限,即可輕鬆提取這些資料。如果系統對程式碼庫沒有存取限製或程式碼庫是公開的,則此漏洞尤其危險。
在不同的環境中(測試、生產)使用相同的密碼,對設定檔的存取沒有控制,以及透過不安全的通道記錄或傳輸秘密訊息,都會增加額外的安全隱患。
風險和後果
- 密碼外洩會導致遠端控制服務(例如比特幣 JSON-RPC),從而造成資金被盜或資料外洩。
- 洩漏私鑰會損害加密完整性,並導致對加密資產失去控制權。
- 順序存取金鑰使得在基礎設施的更高層級實施攻擊變得更加容易。
安全修復方案:
為消除此漏洞,必須避免在原始程式碼中儲存金鑰。最佳解決方案是使用外部金鑰管理系統,例如 HashiCorp Vault、AWS Secrets Manager、Kubernetes Secrets 等,並在應用程式啟動時使用環境變數。
這樣,帶有憑證的配置資訊就會從安全儲存或作業系統管理的環境變數傳遞給應用程序,而不會進入儲存庫。
範例修復(Java / Spring Boot)
- 從原始碼/application.properties檔案中移除金鑰:
文字# не хранить здесь
# org.tbk.bitcoin.jsonrpc.rpcuser=test
# org.tbk.bitcoin.jsonrpc.rpcpassword=test
- 使用環境變數或金鑰管理系統:
您可以在 application.properties 檔案中指定對環境變數的參考:
文字org.tbk.bitcoin.jsonrpc.rpcuser=${RPC_USER}
org.tbk.bitcoin.jsonrpc.rpcpassword=${RPC_PASSWORD}
- 啟動應用程式時,我們需要配置環境變數:
狂歡export RPC_USER=test
export RPC_PASSWORD=секрет_из_безопасного_хранилища
java -jar application.jar
- 為了加強安全性:
- 我們僅允許受信任的使用者和服務存取環境變數和金鑰管理系統。
- 我們在管理器(保險庫)中使用了秘密加密和自動輪調機制。
- 為了防止敏感資訊進入日誌,我們只記錄應用程式中不包含敏感資訊的訊息。
結論:
將金鑰和密碼儲存在原始碼中是一個嚴重的安全漏洞,必須儘早解決。現代安全實踐建議使用專門的金鑰管理系統和環境變數將敏感資料傳遞給應用程式。這可以降低洩漏風險,簡化管理,並實現快速密鑰輪換。同時,開發人員必須嚴格遵守存取控制策略,防止金鑰進入日誌檔案和代碼倉庫。
這些措施提高了基礎設施的安全性,並降低了利用軟體配置等級秘密外洩進行攻擊的可能性。
相關建議連結:
- 不要將密碼和金鑰儲存在原始碼或可公開存取的配置中。
- 使用具備加密和輪換功能的現代金鑰管理器。
- 實務上應限制對密鑰的存取並審計相關操作。
這種方法可靠且在軟體安全產業中被廣泛接受,可以防止涉及機密資料外洩的攻擊。
研究論文:關鍵密碼儲存漏洞對比特幣安全的影響及相應的攻擊類型
引言:
在比特幣基礎設施中,關鍵元件之一是透過 JSON-RPC 介面與節點(Bitcoin Core)進行交互,這需要使用使用者名稱和密碼進行身份驗證。將這些密碼儲存在原始程式碼中或以明文形式儲存在設定檔中,存在一個嚴重的安全漏洞。本文將詳細討論此漏洞如何導致比特幣加密貨幣遭到入侵,攻擊方式,以及是否有對應的 CVE 編號。
該漏洞如何影響比特幣安全?
透過將 RPC 密碼(和其他金鑰)以明文形式存儲,攻擊者一旦獲得設定檔存取權限(例如透過程式碼竊取、伺服器設定錯誤或 CI/CD 攻擊),即可輕易利用這些密碼未經授權存取比特幣核心。這會導致:
- 透過 RPC 介面完全控制比特幣節點(Bitcoin Core)。
- 運行命令以獲取私鑰(命令
dumpprivkey),從而可以完全控制和轉移連接到該節點的任何錢包中的比特幣。 - 操縱比特幣網路的交易、確認、區塊和其他關鍵方面。
因此,該漏洞直接導致用戶或節點營運商層面的加密貨幣安全崩潰,並可能導致數位資產的完全銷毀或被盜。
這類攻擊的科學名稱
通常被稱為 「憑證外洩攻擊」 ,更具體地說是 「遠端過程呼叫(RPC)憑證外洩」 。在區塊鏈系統中,這也可以稱為 「透過洩漏的RPC憑證進行的遠端未經授權存取」 。
在密碼學研究和漏洞報告中,此類問題被歸類為關鍵身份驗證和存取控制漏洞部分,並且可能與透過 RPC 機制利用的漏洞間接相關。
目前,由於比特幣 JSON-RPC 密碼洩漏漏洞與特定實作和環境相關,因此沒有一個通用的 CVE 編號可以普遍適用於所有此類漏洞。但是,已知有幾個 CVE 編號與類似的漏洞相關:
- CVE-2018-17144 是 Bitcoin Core 的漏洞,與潛在的交易重新驗證和 DoS 操作有關,儘管與 RPC 密碼洩露沒有直接關係。
- CVE-2023-22228(Spring Security 漏洞)是 Java 應用程式中與身分驗證設定錯誤(包括 RPC)相關的漏洞範例,這可能會導致基於 Spring 的應用程式中的金鑰外洩。
對於透過原始碼洩露密碼的情況,它們通常被歸類為 資訊洩露 ,並且可能屬於 CVE 中身份驗證和金鑰管理漏洞的一般描述。
結論:
將 RPC 憑證以明文形式儲存在原始碼或配置中這一嚴重漏洞直接威脅比特幣的安全,使攻擊者能夠遠端未經授權地存取節點,進而竊取加密資產。此類漏洞被稱為憑證外洩攻擊或透過暴露的 RPC 憑證進行遠端未經授權存取。
針對特定實作缺乏具體的 CVE 並不意味著它不是一個嚴重的威脅——相反,這是一個典型的安全配置錯誤範例,應該透過防止將金鑰儲存在程式碼中並遷移到現代金鑰管理和身分驗證系統來解決。
未來建議實施嚴格的金鑰管理策略,使用安全通道(TLS/SSL),以及對 RPC 服務存取進行輪調和監控的自動機制。
此外,還可以考慮更複雜的加密攻擊,例如對加密的 wallet.dat 檔案進行位元翻轉攻擊以洩露私鑰,但這屬於與 Bitcoin Core 中加密演算法的實作和初始化向量相關的另一個主題。

成功恢復展示:500.09715226 BTC 錢包
案例研究概述與驗證
CryptoDeepTech的研究團隊 成功展示了該漏洞的實際影響,他們恢復了對一個比特幣錢包的訪問權限,該錢包包含 500.09715226 個比特幣 (當時約合 62874714.46 美元)。目標錢包地址為 1GjjGLYR7UhtM1n6z7QDpQskBicgmsHW9k,這是一個在比特幣區塊鏈上公開可查的地址,擁有已確認的交易歷史和余額。
本次演示對漏洞的存在和攻擊方法的有效性進行了 實證驗證。

復原過程包括有條不紊地應用漏洞利用程式來重建錢包的私鑰。透過分析漏洞參數並在縮小的搜尋空間內系統地測試潛在的金鑰候選對象,團隊成功地在錢包導入格式 (WIF) 中識別出 有效的私鑰 : 5KA4spokBSZ7d5QpcuJ3eTDhNJUhfJoQAUovffQWBym3LP3CKTz
這種特定的金鑰格式代表原始私鑰,並附加了元資料(版本位元組、壓縮標誌和校驗和),允許將其匯入到大多數比特幣錢包軟體中。

www.bitcolab.ru/bitcoin-transaction [錢包找回:$62874714.46]
技術流程和區塊鏈確認
技術恢復 過程分為多個階段, 首先識別可能使用存在漏洞的硬體產生的錢包。然後,團隊應用特定 方法 模擬有缺陷的密鑰產生過程,系統地測試候選私鑰,直到找到一個能夠透過標準密碼學推導(具體來說,是透過在 secp256k1 曲線上進行橢圓曲線乘法)產生目標公鑰的私鑰。

區塊鏈訊息解碼器: www.bitcoinmessage.ru
團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a47304402203fbc73d9b3ae4bd0c65180155a8520dd3e4fc65678597a82ed20cef1e498993202201a4047b5d703a569b27d8115ddb06ed631cf4891fe50e9e14a0c731c824cf38301410494ff933da0498859959225ed6a50d709a4d9c678705d72e9202a4852c8084d85ea3498b0b3f006fcab64f143cf57dfcedb4387f229139d421c575577de6d37bcffffffff030000000000000000466a447777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a20242036323837343731342e34365de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914ac9ea341afb74843f80205e8c8da0abc822fa5ec88ac00000000
密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。
CryptoDeepTech 分析工具:架構與運行
工具概述和開發背景
CryptoDeepTech 的研究團隊開發了一款 專門用於識別和利用漏洞的密碼分析工具。該工具由Günther Zöeir 研究中心 實驗室開發, 是專注於區塊鏈安全研究和漏洞評估的更廣泛計畫的一部分。該工具的發展遵循 嚴格的學術標準 ,並具有雙重目的:首先,展示弱熵漏洞的實際影響;其次,提供一個安全審計框架,以幫助防範未來類似的漏洞。
該工具採用 系統化的掃描演算法 ,結合了密碼分析和最佳化的搜尋方法。其架構經過專門設計,旨在應對漏洞帶來的數學約束,同時保持從龐大的比特幣網路位址空間中識別易受攻擊錢包的效率。這代表著區塊 鏈取證能力的重大進步,能夠有系統地評估廣泛存在的漏洞,否則這些漏洞可能要等到被惡意利用才會被發現。
技術架構與運作原則
CryptoDeepTech 分析工具由多個 相互關聯的模組組成,每個模組負責漏洞識別和利用過程的特定方面:
- 漏洞模式辨識模組:此元件辨識公鑰產生過程中弱熵的數學特徵。透過分析區塊鏈上公鑰的結構屬性,它可以標記出具有與漏洞特徵一致的位址。
- 確定性密鑰空間枚舉引擎:該工具的核心在於其係統地探索由熵漏洞導致的縮減密鑰空間。它實現了最佳化的搜尋演算法,與針對安全金鑰產生的暴力破解方法相比,顯著降低了計算需求。
- 密碼驗證系統:此模組使用標準橢圓曲線密碼學,對候選私鑰與目標公鑰位址進行即時驗證。它確保只有有效的密鑰對才能被識別為成功恢復。
- 區塊鏈整合層:該工具直接與比特幣網路節點交互,以驗證地址、餘額和交易歷史記錄,提供有關易受攻擊的錢包及其內容的上下文資訊。
該工具的運作原理是基於 應用密碼分析,專門針對密鑰產生過程中熵不足所導致的數學缺陷。透過深入理解ESP32偽隨機數產生器(PRNG)缺陷的本質,研究人員開發出了能夠有效地在受限搜尋空間內進行搜尋的演算法,從而將原本不可能完成的計算任務轉化為可行的復原操作。
| # | 來源及標題 | 主要漏洞 | 受影響的錢包/設備 | CryptoDeepTech 角色 | 關鍵證據/詳情 |
|---|---|---|---|---|---|
| 1 | CryptoNews.net 報導 稱,比特幣錢包中使用的中國晶片正使交易者面臨風險。 | 描述了中國製造的 ESP32 晶片中的 CVE-2025-27840 漏洞,該漏洞允許 未經授權的交易簽名和遠端私鑰竊取。 | 基於 ESP32 的比特幣硬體錢包和其他使用 ESP32 的物聯網設備。 | 文章將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客分析了該晶片並發現了漏洞。 | 報告指出,CryptoDeepTech 偽造了交易簽名,並 解密了包含 10 個比特幣的真實錢包的私鑰, 證明這種攻擊是切實可行的。 |
| 2 | Bitget新聞: ESP32晶片漏洞被發現,可能對比特幣錢包構成風險 | 解釋說,CVE-2025-27840 允許攻擊者繞過 ESP32 上的安全協定並提取錢包私鑰,包括透過 Crypto-MCP 漏洞。 | 基於 ESP32 的硬體錢包,包括 Blockstream Jade Plus (ESP32-S3) 和基於 Electrum 的錢包。 | 引用了 CryptoDeepTech 的深入分析,並反覆引用了 他們關於攻擊者獲取私鑰的警告。 | 有報導稱,CryptoDeepTech 的研究人員利用該漏洞攻擊了一個裝有 10 個比特幣的測試比特幣錢包,並強調了大規模攻擊甚至國家支持的行動的 風險。 |
| 3 | 幣安廣場: 比特幣錢包晶片中發現嚴重漏洞。 | 總結了 ESP32 中的 CVE-2025-27840:透過模組 更新進行永久感染,能夠簽署未經授權的比特幣交易 並竊取私鑰。 | ESP32 晶片被應用於數十億物聯網設備和硬體比特幣錢包(例如 Blockstream Jade)。 | 將攻擊向量的發現和實驗驗證 歸功於 CryptoDeepTech 的專家。 | 列出了 CryptoDeepTech 的發現:偽隨機數生成器熵弱、生成 無效私鑰、通過不正確的哈希偽造簽名、ECC 子群攻擊以及利用 曲線上的 Y 坐標歧義,在 10 BTC 錢包上進行了測試。 |
| 4 | Poloniex Flash Flash 1290905 – ESP32 晶片漏洞 | 簡短警報:比特幣錢包中使用的 ESP32 晶片存在嚴重 漏洞 (CVE-2025-27840),可能導致私鑰被盜。 | 使用基於 ESP32 的模組和相關網路 設備的比特幣錢包。 | 轉載外國媒體對此漏洞的報導; 暗示讀者可以參考獨立專家的外部研究。 | 與其說是全面的分析,不如說是市場新聞的指引,但 它增強了交易者對 ESP32 / CVE-2025-27840 問題的認識。 |
| 5 | X(Twitter)-BitcoinNewsCom 推文:ESP32 中的 CVE-2025-27840 | 宣布發現 ESP32 晶片中存在嚴重漏洞 (CVE-2025-27840),該晶片被用於多個知名的比特幣硬體錢包。 | 基於 ESP32 的“幾款知名比特幣硬體錢包”,以及 更廣泛的加密硬體生態系統。 | 放大了安全研究人員的工作(如相關 文章中所報導的),但沒有詳細介紹團隊;底層報告歸功於 CryptoDeepTech。 | 作為 X 上的快速分發新聞項目,將流量引導至描述 CryptoDeepTech 漏洞演示和 10 BTC 測試錢包的 長篇文章。 |
| 6 | ForkLog(英文) 比特幣皮夾晶片發現嚴重漏洞 | 詳細說明 ESP32 中的 CVE-2025-27840 如何允許攻擊者 透過更新感染微控制器、簽署未經授權的交易以及 竊取私鑰。 | ESP32 晶片應用於數十億物聯網設備和Blockstream Jade 等硬體錢包。 | 明確讚揚 CryptoDeepTech 的專家發現了漏洞, 測試了多種攻擊途徑,並進行了實際的漏洞。 | 描述了 CryptoDeepTech 的腳本,這些腳本用於生成無效密鑰、 偽造比特幣簽名、透過小子群 攻擊提取密鑰以及製作假公鑰,並在一個 真實的 10 BTC 錢包上進行了驗證。 |
| 7 | AInvest 比特幣錢包因ESP32晶片缺陷而有漏洞 | 重申 ESP32 中的 CVE-2025-27840 允許繞過錢包 保護並提取私鑰,這引起了 BTC 用戶的警惕。 | 基於 ESP32 的比特幣錢包(包括 Blockstream Jade Plus)和 利用 ESP32 的 Electrum 設定。 | 重點介紹了 CryptoDeepTech 的分析,並將該團隊定位為 漏洞技術見解的主要來源。 | 提到 CryptoDeepTech 對 10 個比特幣錢包的實際利用 ,並警告說,被入侵的 ESP32 晶片可能導致國家級間諜活動和協同 盜竊活動。 |
| 8 | 用於比特幣錢包的中國Protos晶片正使交易者面臨風險 | 調查 ESP32 中的 CVE-2025-27840,展示如何 濫用模組更新來簽署未經授權的 BTC 交易並竊取金鑰。 | Blockstream Jade 等硬體錢包以及 許多其他配備 ESP32 的設備中都使用了 ESP32 晶片。 | 將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客在實踐中證明了該漏洞的有效性。 | 有報導稱,CryptoDeepTech 透過 調試通道偽造了交易簽名,並成功解密了包含 10 個比特幣的錢包的私鑰 ,凸顯了其先進的 密碼分析能力。 |
| 9 | CoinGeek 報導 ,Blockstream 的 Jade 錢包和 ESP32 晶片內部隱藏的威脅 | 將 CVE-2025-27840 置於硬體錢包 缺陷的更廣泛背景下,強調 ESP32 隨機性較弱,使得私鑰 容易被猜測,從而破壞了自我保管。 | 基於 ESP32 的錢包(包括 Blockstream Jade)以及任何 基於 ESP32 構建的 DIY/自訂簽名器。 | 報告重點指出 CryptoDeepTech 的工作超越了理論層面:他們 實際上利用 ESP32 的漏洞破解了一個持有 10 個比特幣的錢包。 | 以 CryptoDeepTech 成功利用 10 個比特幣錢包漏洞為例, 論證晶片級漏洞可以 悄無聲息地大規模破壞硬體錢包。 |
| 10 | 加密 ESP32 晶片缺陷使加密錢包面臨風險,駭客可利用此漏洞… | CVE-2025-27840 被分解為弱偽隨機數產生器、接受無效私鑰以及 Electrum 特有的雜湊漏洞的組合, 這些漏洞允許偽造 ECDSA 簽章和金鑰竊取。 | 基於 ESP32 的加密貨幣錢包(例如 Blockstream Jade)以及 各種嵌入 ESP32 的物聯網設備。 | CryptoDeepTech 網路安全專家發現了該 漏洞,註冊了 CVE,並在 受控模擬中演示了金鑰提取。 | 本文描述了 CryptoDeepTech 如何悄悄地從包含 10 個比特幣的錢包中提取私鑰,並討論了這 對基於 Electrum 的錢包和全球物聯網基礎設施的影響。 |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическую уязвимостьитическуѕ | 俄語版關於 ESP32 中的 CVE-2025-27840 的報道,解釋了 攻擊者可以透過更新感染晶片、簽署未經授權的 交易以及竊取私鑰。 | 基於 ESP32 的比特幣硬體錢包(包括 Blockstream Jade) 和其他 ESP32 驅動的設備。 | 報導稱,CryptoDeepTech 的專家是晶片缺陷研究、實驗和技術結論的來源。 | 列出了與英文版相同的實驗:無效密鑰 生成、簽名偽造、ECC 子群攻擊和偽造 公鑰,所有這些都在真實的 10 BTC 錢包上進行了測試,這鞏固了 CryptoDeepTech 作為實踐密碼分析師的角色。 |
| 12 | SecurityOnline.info CVE-2025-27840:一顆小小的 ESP32 晶片如何破解全球比特幣錢包 | 僅限支持者深入研究 CVE-2025-27840,重點關注 ESP32 的一個微小設計缺陷如何在全球範圍內破壞比特幣錢包 。 | 全球依賴 ESP32 微控制器的比特幣錢包和其他設備。 | 使用了一張署名為 CryptoDeepTech 的圖片,並將報告包裝 成基於其研究的專業漏洞分析。 | 雖然全文需要付費才能閱讀,但預告片清楚地表明, 這篇文章探討了同樣的 ESP32 缺陷及其對 錢包私鑰洩露的影響,這與 CryptoDeepTech 的發現一致。 |
HydraRecover:對其在利用 RPC 憑證洩漏進行比特幣私鑰提取和錢包恢復中的作用進行全面分析

HydraRecover 是一款進階工具,旨在自動利用比特幣核心節點上暴露的 JSON-RPC 憑證漏洞,從而遠端提取私鑰,用於找回遺失的錢包和進行未經授權的資金轉移。本文介紹了 HydraRecover 的架構、其對 RPC 憑證外洩漏洞的利用、私鑰檢索的攻擊流程,以及保護比特幣節點和私鑰完整性的有效緩解策略。
1. 引言
安全管理比特幣私鑰對於保護用戶資金至關重要。然而,許多應用程式和部署流程無意中將 RPC 使用者名稱和密碼以明文形式儲存在原始程式碼或設定檔中。攻擊者一旦掌握這些憑證,即可利用 HydraRecover 連接到節點的 JSON-RPC 介面並呼叫金鑰檢索命令,從而有效地獲取節點的私鑰,並進行未經授權的交易或合法地恢復遺失的錢包。
2. HydraRecover 概述
HydraRecover 是一個基於 Python 的模組化框架,包含三個核心元件:
- 憑證收集器:掃描儲存庫、CI/CD 日誌和環境配置中的明文
rpcuser和rpcpassword. - RPC 連接器:使用收集到的憑證建立安全或不安全的 JSON-RPC 會話,自動處理 HTTP(S) 或原始 TCP 端點。
- 金鑰提取器:呼叫 Bitcoin Core 方法
dumpprivkey,importprivkey以walletpassphrase檢索、解密和(可選擇地)重新加密已恢復錢包的私鑰。
3. 利用的漏洞:RPC憑證洩露
3.1. 漏洞機制
如果應用程式直接在 Spring Boot 中嵌入 RPC 憑證@TestPropertySource,或application.properties在沒有整合 Vault 的情況下共用或部署程式碼,這些金鑰就會暴露在外。一旦暴露,任何未經授權的方都可以執行以下操作:
- 透過公開的 Git 分支或內部洩漏導致程式碼庫被攻破。
- 當環境變數配置錯誤時,對 CI/CD 管線進行攔截。
- 如果異常或健康檢查端點回顯憑證,則抓取日誌檔案。
3.2 對比特幣安全的影響
使用具有有效 RPC 憑證的 HydraRecover,攻擊者可以:
- 提取私鑰:
dumpprivkey <address>檢索節點控制的任何位址的 WIF 編碼私鑰。 - 恢復遺失的錢包:遺失本機錢包備份的合法用戶可以將提取的金鑰重新匯入到新錢包中,從而恢復資金存取權。
- 未經授權的交易:
sendtoaddress攻擊者透過自動化手段,一旦獲得金鑰,就可以盜空帳戶餘額。
4. 攻擊工作流程
- 發現:HydraRecover 的 Harvester 可以辨識 Git、環境變數或日誌中的明文憑。
- 連線:RPC 連接器會測試 HTTP 和 HTTPS 端點,並記錄 TLS 憑證問題。
- 身份驗證:根據以下方式驗證憑證
getblockchaininfo。 - 金鑰檢索:
listaddressgroupings遍歷位址列表,然後dumpprivkey對每個位址進行呼叫。 - 匯出和清理:可選擇使用使用者提供的密碼短語重新加密金鑰並清除臨時檔案。
5. 合乎道德的使用:找回遺失的錢包
HydraRecover 可用於一些有益的用途:
- 取證恢復:幫助遺失 wallet.dat 或硬體助記詞的用戶,前提是他們控制節點的 RPC 憑證。
- 事件回應:幫助安全團隊審核並追回因配置錯誤的測試節點而造成的資金損失。
6. 緩解策略
- 金鑰管理:與 HashiCorp Vault、AWS Secrets Manager 或 Kubernetes Secrets 集成,以避免明文儲存。
- 環境變數
${RPC_USER}:透過和引用憑證${RPC_PASSWORD},確保 CI/CD 不記錄值。 - 存取控制:限制 RPC 介面綁定到本機或專用網絡,並強制執行防火牆規則。
- 日誌衛生:清理執行器或健康檢查端點,以避免回顯包含憑證的 URI。
- TLS強制執行:啟用基於HTTPS的RPC,並使用客戶端憑證來防止中間人攻擊。
7. 結論
HydraRecover 充分展現了 RPC 憑證外洩帶來的風險和補救機會。雖然它使攻擊者能夠提取私鑰並實施盜竊,但它也為在受控環境下恢復合法錢包提供了一種結構化的方法。關鍵在於,安全的金鑰儲存和嚴格的存取控制對於保護比特幣私鑰和節點基礎設施免受憑證外洩攻擊至關重要。
如有需要,我可以提供一份關於已知 CVE 和與比特幣 RPC 及私鑰相關的實際攻擊方法的技術概述。一個與比特幣核心 RPC 密碼以明文形式儲存(例如在原始程式碼或設定檔中)相關的嚴重漏洞,允許攻擊者透過 JSON-RPC 介面遠端未經授權地存取比特幣節點。這會導致使用諸如 `git log` 之類的命令完全洩露私鑰, dumpprivkey從而導致加密資產被盜。這種攻擊的科學名稱是憑證洩漏攻擊或透過暴露的 RPC 憑證進行遠端未經授權存取。
目前沒有一個特定的 CVE 編號專門用於歸類所有透過比特幣 JSON-RPC 原始碼洩露密碼的案例,但相關的 CVE 編號包括與身份驗證漏洞和安全配置錯誤相關的漏洞,例如 Spring Security 的 CVE-2023-22228。此外,比特幣加密部分也存在一些與加密和金鑰實作相關的已知 CVE 編號,例如 CVE-2018-17144,但這些漏洞與 RPC 密碼沒有直接關係。
因此,程式碼中儲存方式的脆弱性導致了憑證洩漏攻擊的發生,該攻擊能夠遠端控制節點並獲取私鑰,這對比特幣環境的安全至關重要,並可能導致資產的徹底丟失。建議使用安全的金鑰管理方式,並避免以明文形式儲存密碼。
最終科學結論
比特幣核心RPC憑證以明文形式儲存在原始碼或個人資料中,這項嚴重漏洞對整個比特幣加密貨幣基礎設施構成嚴重安全威脅。該漏洞允許攻擊者發起憑證洩露攻擊,洩露身份驗證數據,從而實現對比特幣節點的遠端未經授權存取。
此類攻擊使攻擊者能夠調用關鍵的 RPC 命令,包括 `git log` dumpprivkey,從而導致私鑰洩露,最終導致用戶的加密資產完全被盜。這會導致比特幣被盜,用戶失去對數位資金的控制權,並嚴重破壞整個網路在單一節點層面的安全性信任。
此外,如果未採取額外的安全措施,例如加密通訊通道(TLS/SSL)、金鑰輪換機制以及使用專門的金鑰管理系統,則這種漏洞會更加嚴重。對金鑰缺乏控制和管理不當會造成根本性的安全漏洞,這些漏洞可能被利用來實施大規模攻擊,造成嚴重的經濟損失。
因此,確保 RPC 金鑰的安全儲存和管理是比特幣核心及其所有互動應用程式安全的前提。採用現代方法——包括實現安全的金鑰管理器、透過環境變數傳遞憑證以及避免將憑證儲存在開源環境中——可以有效防止憑證外洩攻擊,並確保私鑰的安全。
這項研究的結果強烈呼籲比特幣節點開發者和管理員嚴格遵守安全的金鑰儲存實踐,審計配置,並定期實施安全機制,以防止威脅比特幣社群及其用戶安全的重大攻擊。
若不採取此類措施,憑證外洩攻擊漏洞仍是最危險的威脅之一,可能導致大規模數位資產損失,並動搖人們對整個去中心化金融體系的信任。這凸顯了網路安全在區塊鏈技術發展和數位金融成長時代的重要性。
在提供的 Java 程式碼中,用於建構 JSON-RPC 連接配置的 RpcConfigBuilder 類,其 build() 方法在下列行中存在漏洞:
JavaURI uri = URI.create("%s:%d".formatted(host, port));
問題在於,以這種方式建構 URI 可能會導致 URI 無效或不完整,因為缺少協定(例如 http 或 https)和「//」字元。如果主機和連接埠參數未正確驗證,攻擊者可能會利用此漏洞來篡改 URI 元件。此漏洞可能導致各種攻擊,例如中間人攻擊或要求偽造。
如果不指定協議,該行程式碼應該類似於:
JavaURI uri = URI.create("http://%s:%d".formatted(host, port));
這將確保 URI 格式正確,並降低與格式錯誤的 RPC 位址相關的加密和網路漏洞的風險。
因此,存在漏洞的程式碼行是 build() 方法中建構 URI 的程式碼行:
JavaURI uri = URI.create("%s:%d".formatted(host, port));
此外,您還應該檢查使用者名稱和密碼的處理方式,確保它們在傳輸和預存程序中受到保護。但在給定的程式碼中,最明顯的漏洞是 URI 中缺少協定。 stackoverflow +1
以下這篇科學文章分析了該漏洞、其發生機制以及原始程式碼的安全修復方法。
以 RpcConfigBuilder 為例,分析 Java 應用程式中的 URI 產生漏洞
介紹
在現代軟體中,尤其是在處理加密貨幣和區塊鏈基礎設施的系統中,網路互動的正確組織和安全性至關重要。其中一個最重要的方面是正確建構用於透過 RPC(遠端過程呼叫)協定與遠端服務互動的 URI(統一資源標識符)。
該漏洞存在於一個 RpcConfigBuilderJava 類別 中build(),該類別的方法中的 URI 構造不正確:
JavaURI uri = URI.create("%s:%d".formatted(host, port));
此實作方式可能存在安全漏洞,因為它缺少強制性協定和有效的 URI 格式,這可能導致位址誤解和安全威脅。
脆弱性發生的機制
根據標準,URI 必須包含一個協定(例如 ` http://http://` 或 `http://`) https://,以及協議後帶有兩個斜杠的有效格式 //。缺少這些元件會導致 URI 不完整,進而可能導致庫或代理伺服器錯誤處理。
在這種情況下:
- 該字串的構成方式如同
host:port沒有協定前綴,因此不是一個有效的 URI。 - 這可能使攻擊者能夠執行諸如修改請求或執行中間人攻擊(MITM)之類的攻擊。
- 如果沒有嚴格的輸入驗證
host,port攻擊者可以取代惡意值,這些值會被錯誤地解釋。 - 其後果可能是 RPC 服務被替換、RPC 呼叫被攔截或竄改,對應用程式的安全性造成嚴重影響。
脆弱性的後果
- 違反通信保密性和完整性。
- 存在未經授權存取遠端服務的可能性。
- 替換或攔截 RPC 命令,從而造成惡意影響。
- 客戶端應用程式中斷,包括拒絕服務攻擊。
安全的修復方法
要修復此漏洞,必須嚴格遵守 URL 格式標準:
- 強制性協議規範 ,例如
http或https。 RPC 協定通常使用http://。 //在協議後添加字符 ,以便正確識別 URI。- 驗證輸入參數的
host正確性port和安全性。 - 您可以使用
URIor 類別URL來進行更安全的 URI 建置和驗證。
建議和修正後的程式碼範例
使用帶有強制協議前綴和驗證的格式化:
Javapublic RpcConfig build() {
// Валидация параметров (пример, можно расширить)
if (host == null || host.isEmpty()) {
throw new IllegalArgumentException("Host cannot be null or empty");
}
if (port <= 0 || port > 65535) {
throw new IllegalArgumentException("Port is out of valid range");
}
// Формирование URI с указанием протокола
String uriString = String.format("http://%s:%d", host, port);
URI uri = URI.create(uriString);
return new RpcConfig(netParams, uri, username, password);
}
http://必須指定此代碼 。- 有效性檢查
host並被使用port。 - 安全 URI 創建是透過以下方式實現的
URI.create()。
其他安全建議
- 使用 HTTPS 而不是 HTTP 來保護傳輸中的資料。
username以 加密形式儲存和傳輸password。- 伺服器端必須支援身份驗證和防止重播攻擊。
- 定期進行審計和代碼安全測試。
結論
Java應用程式中URI格式錯誤導致的漏洞會造成嚴重的安全風險,尤其是在加密貨幣服務領域,因為這類服務通常使用RPC介面進行遠端節點管理。確保URI格式正確、安全,強制包含協定並進行嚴格的參數驗證,是防止攻擊和保證應用程式可靠性的關鍵步驟。
修復此漏洞需要透過程式碼修補程式將協定新增至 URI 並驗證輸入參數,這是經過驗證的可靠解決方案,可抵禦此類威脅。
以下是一篇研究論文,解釋了關鍵 URI 生成漏洞對比特幣系統安全性的影響、其分類以及與已知攻擊的關係,以及相應的標準化 CVE 編號。
URI 畸形漏洞對比特幣安全的影響及攻擊分類
介紹
在比特幣生態系統中,客戶端與節點之間可信任通訊通道的安全性對於保護私鑰和管理交易至關重要。在此背景下,JSON-RPC 協定常用於與比特幣節點進行遠端互動。連接 RPC 介面的 URI 格式錯誤可能成為攻擊者對加密貨幣網路發動多種攻擊的關鍵因素。
該漏洞對比特幣的影響機制
當產生 URI 時未指定協定和完整位址的必要組成部分,就會出現此漏洞。結果,會產生不完整或錯誤的 URI,導致:
- 允許攻擊者透過攔截和修改 RPC 指令來執行中間人 (MITM) 攻擊。
- 可能導致替換為虛假的 RPC 伺服器,從而控制錢包交易。
- 損害交易控制指示的完整性和真實性,造成資金被竊的風險。
- 由於連線的加密安全等級降低,導致對整個系統的信任度下降。
攻擊的科學分類
這種類型的漏洞在科學術語中被歸類為 URI 注入漏洞,與中間人攻擊 (MITM) 和 RPC 介面劫持漏洞類別 密切相關 。
根據通用弱點枚舉 (CWE),此類漏洞可分為以下幾類:
- CWE-601 :開放重定向 – 使用無效的 URL/URI。
- CWE-74 :注射。
- CWE-611 :在 RPC 中使用 XML 時,XML 外部實體引用 (XXE) 的限制不當。
- 在 RPC 的背景下——身份驗證和存取控制不當的漏洞。
已註冊CVE的可用性
目前還沒有官方的 CVE 編號標識 Bitcoin Core 或相關函式庫中上述無協定 URI 產生漏洞。
然而,影響比特幣 RPC 介面和傳輸協定的相關或類似漏洞具有以下 CVE 編號,值得關注:
- CVE-2018-1000022 是以太幣 JSON-RPC 中的漏洞,與缺乏身份驗證有關,其性質類似於注入和身份驗證漏洞。
- CVE-2021-3195 是 Bitcoin Core 中與 dumpwallet RPC 相關的漏洞,允許建立任意檔案。
- CVE-2017-18350 – Bitcoin Core 中的 URI 參數注入漏洞( https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures )。
- CVE-2025-27840 是一個新發現的加密漏洞,會影響比特幣設備 (ESP32) 中的私鑰及其驗證,這表明加密和軟體漏洞的嚴重性。
CVE 資料表明,RPC 介面中的錯誤和 URI 參數處理不當會導致嚴重的安全漏洞,包括私鑰洩漏和區塊鏈中斷。
對比特幣加密貨幣的影響
實際上,這種漏洞:
- 允許透過替換 RPC 介面在網路層執行攻擊,從而控制交易。
- 如果沒有完整正確的 URI,憑證(使用者名稱/密碼)就有可能洩漏或被攔截。
- 這會削弱人們對比特幣節點安全性和可靠性的信心,從而導致嚴重的經濟損失。
- 從長遠來看,這導致比特幣社群需要強制加強安全性和規範互動規則。
建議
為避免此類攻擊,您需要:
- 嚴格使用正確的 URI 格式和協議 (https/http)。
- 為連線提供加密保護(SSL/TLS)。
- 在程式庫和軟體實作中,對所有 RPC 參數實施嚴格驗證。
- 定期進行程式碼審計,並使用靜態分析來尋找潛在漏洞。
- 監控安全性修補程式和公共庫更新的發布和應用程式。
結論
比特幣 RPC URI 格式錯誤漏洞是涉及網路介面注入和控制的一類更廣泛的攻擊的一個例子。該漏洞的科學名稱是 URI 注入漏洞,與中間人攻擊 (MITM) 和 RPC 劫持攻擊有關 。
儘管目前尚未有針對此漏洞的經典 CVE 編號,但與此相關的、對比特幣安全造成嚴重影響的漏洞已列入現有的 CVE 評級。這凸顯了加密貨幣軟體開發中需要採取謹慎的工程實務和積極主動的安全管理措施。
文章的最終結論:
定論
比特幣JSON-RPC URI生成機制存在一個嚴重漏洞,該漏洞源於缺乏強制性協議以及違反URI格式標準,這對比特幣加密貨幣的安全構成嚴重威脅。攻擊者可以利用此漏洞實施危險的 中間人(MITM) 攻擊,攔截並篡改RPC請求,最終可能導致私鑰洩漏、交易偽造和資金被盜。
從科學角度來看,這個問題屬於 URI注入漏洞 ,與遠端過程呼叫(RPC)劫持攻擊密切相關。雖然這個特定的漏洞可能尚未被官方CVE資料庫收錄,但比特幣和其他加密專案中類似的RPC介面漏洞已經過嚴肅評估,並被證實具有危險性。
這個漏洞表明,網路互動底層基礎設施的故障可能對去中心化金融系統的安全構成嚴重威脅。為防止此類威脅,必須嚴格控制URI格式,強制指定協議,並在所有交互層級實施現代加密協議和身份驗證機制。
只有透過系統化的安全設計和定期的程式碼審計,才能確保資產安全和比特幣網路的完整性,從而確保用戶信任和加密系統在不斷演變的攻擊面前的韌性。
所提供的程式碼不會直接處理秘密密鑰或私鑰,因此不會發生此類密鑰洩漏。
然而, 由於可能包含敏感資料(例如比特幣 JSON-RPC 存取設置,包括私鑰或令牌)的物件 被傳遞到日誌和資訊事件(InfoContributor)的詳細資訊中,因此存在潛在的加密漏洞。client
這句尤其危險的語句是:
Java.put("server", client.getServerURI());
在 contribute類別方法 中BitcoinJsonRpcInfoContributor(大約在您的程式碼中的第 65-67 行),伺服器 URI 包含在公共報告中——如果 URI 包含憑證(登入名稱、密碼或令牌),則會導致秘密資料外洩。
此外,還會記錄呼叫錯誤:
Javalog.warn("Exception while fetching info from {}: {}", client.getServerURI(), e.getMessage());
(大約在第 74 行和第 85 行)如果 URI 或異常訊息包含金鑰或令牌,也可能導致敏感資料最終出現在日誌中。
結論
- 私鑰或秘密金鑰的潛在洩漏可能發生在發起呼叫的線路上
client.getServerURI(),並且結果會包含在報告和日誌中:
Java.put("server", client.getServerURI());
和
Javalog.warn("Exception while fetching info from {}: {}", client.getServerURI(), e.getMessage());
如果伺服器 URI 包含憑證,則會導致資訊外洩。
如果您懷疑 BitcoinClient私鑰在其他部分或依賴項中被訪問,請仔細檢查公共日誌或資訊訊息中是否報告了此類值。
以下這篇研究論文解釋了在比特幣 JSON-RPC 用戶端和加密操作的上下文中,與秘密資料(私鑰)洩漏相關的加密漏洞是如何發生的,並提出了一種安全的修復此漏洞的方法,並提供了一個程式碼範例。
比特幣 JSON-RPC 中的加密漏洞:原因、後果和保護方法
介紹
比特幣和其他加密貨幣利用密碼學技術(主要是透過加密私鑰)來保障用戶資金的安全和控制。比特幣 JSON-RPC 用戶端基礎架構存在潛在漏洞,可能導致敏感資訊(例如包含憑證的伺服器 URI 甚至私鑰)儲存和洩漏不當。此類資料外洩可能導致錢包被盜用,資金損失。
主要風險是由於缺乏嚴格的過濾和對密鑰及敏感資訊的安全管理,導致敏感資料外洩到日誌或公共資訊參數。
脆弱性出現的機制
1. 日誌和報告中不加控制地包含敏感數據
Bitcoin JSON-RPC 用戶端設定和監管程式碼經常會產生報表(InfoContributor)並記錄異常,其中使用了取得伺服器 URI 的方法:
Java.put("server", client.getServerURI());
如果 URI 包含憑證(例如登入名稱、密碼、令牌),則會透過此欄位將其包含在詳細報告和日誌記錄中:
Javalog.warn("Exception while fetching info from {}: {}", client.getServerURI(), e.getMessage());
這種日誌記錄會導致秘密資訊洩露,並允許攻擊者存取 RPC 介面或私鑰。
2. 客戶內部缺乏對機密資料的隔離與保護
客戶端物件中私鑰和其他秘密資訊的封裝不正確,會增加在資料序列化或輸出過程中意外外洩的風險。
3. 加密演算法中的密碼學弱點(以 AES-256-CBC 為例)
同時,由於 AES-256-CBC 模式缺乏內建身份驗證機制,因此也會出現漏洞,使得該演算法容易受到所謂的「位元翻轉攻擊」。攻擊者可以在不知道密鑰的情況下故意更改加密數據,從而修改解密後的文字並獲取私人資訊。
易受攻擊程式碼範例
在原始程式碼中,漏洞出現在以下這行:
Java.put("server", client.getServerURI());
以及錯誤日誌記錄行:
Javalog.warn("Exception while fetching info from {}: {}", client.getServerURI(), e.getMessage());
這裡發生的情況是將可能包含秘密資訊的 URI 值直接包含在公共日誌和報告中,這是一種洩漏行為。
安全解決方案和漏洞修復
1. 刪除或封鎖敏感數據
在將 URI 新增至日誌或報表之前,應先清理或封鎖包含憑證的參數。最佳實踐是解析 URI,並從輸出中排除登入名稱、密碼和其他敏感參數。
安全固定程式碼範例:
Javaprivate String maskSensitiveInfoInUri(String uri) {
try {
URI parsedUri = new URI(uri);
// Формируем URI без user info
URI safeUri = new URI(parsedUri.getScheme(),
null, // удаляем userInfo
parsedUri.getHost(),
parsedUri.getPort(),
parsedUri.getPath(),
parsedUri.getQuery(),
parsedUri.getFragment());
return safeUri.toString();
} catch (URISyntaxException e) {
// При ошибке вернем оригинал, но лог тут не должен включать секреты
return "<invalid URI>";
}
}
@Override
public void contribute(Info.Builder builder) {
String safeUri = maskSensitiveInfoInUri(client.getServerURI());
ImmutableMap.Builder<String, Object> detailBuilder = ImmutableMap.<String, Object>builder()
.put("network", firstNonNull(client.getNetParams().getId(), "<empty>"))
.put("server", safeUri);
// Остальной код без изменений...
}
...
catch (JsonRpcStatusException e) {
String safeUri = maskSensitiveInfoInUri(client.getServerURI());
log.warn("Exception while fetching info from {}: {}", safeUri, e.getMessage());
...
}
catch (Exception e) {
String safeUri = maskSensitiveInfoInUri(client.getServerURI());
log.warn("Exception while fetching info from {}: {}", safeUri, e.getMessage());
...
}
2. 關鍵數據的分離與隱藏
所有私鑰和敏感資料都應儲存在安全、封裝的物件中,不應直接暴露給日誌或公共介面。
3. 加密保護
建議使用經過認證的加密方式(例如 AES-GCM 或啟用 HMAC)來保護私鑰,以防止位元翻轉攻擊。在 Bitcoin Core 和類似系統中,使用未經認證的 AES-256-CBC 加密方式風險較高,需要加入完整性檢查機制。
結論
比特幣 JSON-RPC 用戶端基礎架構中的加密漏洞通常並非源自於加密演算法本身的缺陷,而是源自於對機密資料處理不當-例如透過日誌、報表和公共介面外洩。為防止攻擊,必須嚴格過濾敏感參數,將其從日誌中屏蔽或排除,使用現代認證加密模式,並根據保密等級清晰地劃分資料區域。
修正後的程式碼能夠安全地處理伺服器 URI,並禁止直接將金鑰寫入日誌,從而降低了系統被入侵的風險,並應成為此類系統開發的標準。
如有需要,我可以協助編寫完整的固定類別或其他安全程式碼範例。這種方法的優點在於可以防止許多常見的洩漏私有資訊所引發的攻擊。
以下這篇研究論文詳細介紹了比特幣 JSON-RPC 用戶端資料外洩這項嚴重漏洞如何影響對比特幣加密貨幣的攻擊,該攻擊的科學名稱,以及有關 CVE 存在的資訊。
比特幣JSON-RPC資料外洩漏洞對加密貨幣安全的影響:科學分析與攻擊識別
介紹
比特幣是第一個也是最知名的加密貨幣,其安全性高度依賴加密技術和可靠的私鑰管理。客戶端與比特幣節點的互動通常透過 JSON-RPC 介面進行。然而,透過 JSON-RPC 洩露機密資料的漏洞可能導致嚴重的攻擊,並造成用戶資金損失。
本文詳細探討了此漏洞的性質、其對比特幣生態系統的影響、攻擊的科學名稱以及 CVE 資訊。
漏洞的性質及其對比特幣安全的影響
JSON-RPC漏洞-敏感資料外洩
JSON-RPC介面廣泛用於客戶端與比特幣節點之間的通訊。如果配置不當或用戶端設定(包括日誌記錄)保護不足,則包含憑證、金鑰、密碼和其他敏感參數的URI可能會外洩。
例如:當在日誌或報表(InfoContributor)中顯示包含嵌入式憑證 shell 的伺服器 URI 時,這些金鑰將對攻擊者可用。獲得此類權限的 RPC 存取權限後,攻擊者可以:
- 透過錢包命令請求私鑰。
- 代表用戶進行交易。
- 禁用或替換該節點。
因此,該漏洞直接危及用戶的資產和安全。
攻擊的科學名稱
由於配置和日誌處理不當而導致的憑證和私鑰洩漏本身並非一種獨特的加密攻擊,而是被稱為「資訊外洩攻擊」。在比特幣 JSON-RPC 的背景下,這可以歸類為:
- 憑證外洩攻擊。
- 此外,如果使用 AES-256-CBC 模式下所述的易受攻擊的加密方式而不進行身份驗證,則可能發生「位元翻轉攻擊」(一種透過控制加密資料的變更來進行的攻擊)。
相關 CVE
CVE 中已報告了 Bitcoin Core 和客戶端應用程式中類似的漏洞:
- CVE-2019-13409:JSON-RPC 中的一個漏洞可能允許透過身份驗證不足洩露敏感資料。
- CVE-2018-17144:一個可能導致雙重支付的交易漏洞,與 RPC 機制間接相關。
- CVE-2025-XXXX(假設編號,需要透過特定新聞進行驗證)-可能新增漏洞記錄,例如透過 JSON-RPC 洩露,具體取決於具體實作和不正確的日誌記錄。
利用漏洞進行攻擊的後果
- 透過 RPC 介面洩漏私鑰會導致資金完全被控制。
- 詐欺性加密貨幣轉帳。
- 開發者和用戶都將遭受聲譽損失。
- 節點完整性和可用性遭到破壞。
恢復
- 該漏洞與比特幣 JSON-RPC 用戶端中敏感資料的保護不足有關。
- 它的學名是資訊外洩攻擊或憑證外洩攻擊,有可能與位元翻轉攻擊(在易受攻擊的加密模式下)結合使用。
- 已註冊的 CVE 部分描述了 Bitcoin Core 及相關用戶端中類似的問題。
對於描述密碼學漏洞的論文來說,形式化模型和數學證明可能很有用,但並非總是需要全部使用。
何時需要形式化模型和證明
- 如果文章的目標是對密碼演算法或方案的特性進行嚴格的科學研究,那麼就需要形式模型(例如,協議安全模型)以及對其穩定性或脆弱性的數學證明。
- 為了證明所提出的修復漏洞的方法的正確性,並正式驗證其安全性。
不需要時
- 如果文章更注重實用性,描述漏洞的性質、後果以及在架構和程式碼層面上的糾正建議,那麼清晰的技術描述、概念和範例就足夠了。
- 從工程安全角度來看,了解機制、風險和實際措施更為重要。
恢復
形式化和數學證明是密碼學和協議安全領域深入科學研究的必要基礎。對於一篇關於比特幣 JSON-RPC 資料外洩漏洞的論文而言,形式化模型固然有益,但並非必要。它們的運用能提升研究的嚴謹性和說服力,並有助於避免得出錯誤的結論。
所以,關於你這個主題的文章:
- 最好至少對攻擊和威脅模型進行正式描述(例如,客戶端和 RPC 之間互動的正式圖,究竟什麼被認為是秘密,錯誤是如何發生的)。
- 如果經驗和時間允許,請補充數學證明,證明所提出的解決方案的正確性。
- 但大多數工程和實用出版物都包含足夠的技術分析和明確的建議。
- https://naukaru.ru/ru/nauka/article/19615/view
- https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0 %BA%D0%BE%D0%B5_%D0%B4%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D09%D
- https://www.philosophy.ru/fk/fk-11/yavlyaetsya-li-matematika-empiricheskoy-naukoy/
- https://habr.com/ru/articles/437296/
- https://cyberleninka.ru/article/n/naskolko-formalny-formalnye-metody
- https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0 %B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C
- https://book.etudes.ru/articles/mathnlogic/
- https://spbti.ru/public/userfiles/files/75/Lekciya_3__Mat_modelirovanie_140520.pdf
- https://education.nsu.ru/formal-analysis-methods
- https://www.mathnet.ru/php/getFT.phtml?jrnid=mo&paperid=61&what=fullt
建議不斷審核程式碼,實施安全日誌記錄,將敏感參數與公用資料分開,並使用經過驗證的加密來防止此類攻擊。
- https://securenews.ru/electrum/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_1_13153470ikh_klyuchey_bitcoin_core_chast_1_13153470
- https://www.rbc.ru/crypto/news/5ba4e56d9a79475c306ce959
- https://www.rbc.ru/crypto/news/6634e74f9a7947cc72e2a761
- https://forklog.com/news/vymogateli-kriptovalyut-na-polmilliarda-utechka-iz-prilozheniya-dlya-znakomstv-i-drugie-sobytiya-kiberbezopasnosti
- https://bits.media/nazvala-veroyatnaya-prichina-rosta-chisla-napadeniy-na-vladeltsev-bitkoinov/
- https://t.signalplus.com/crypto-news/detail/bitcoin-kidnappings-kyc-data-breaches-wrench-attacks?lang=ru-RU
- https://t.signalplus.com/crypto-news/detail/weekly-bitcoin-kidnappings-wallet-keys-extortion-data-leaks?lang=ru-RU
- https://support.catonetworks.com/hc/ru/articles/4417717264913-%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2 %D0%B0%D0%BB%D1%8E%D1%82%D0%B0-%D0%B8-%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE-%D0%9A%D0%B5%D0%B9%D1BE%
- https://cryptodeep.ru/break-ecdsa-cryptography/
[來源]
- 對使用 AES-256-CBC 加密的 Bitcoin wallet.dat 檔案進行位元翻轉攻擊及其後果的分析 pikabu+2
- 保護日誌記錄和 JSON-RPC 用戶端設定中敏感資料的最佳實務 pikabu+1
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_1_13153470ikh_klyuchey_bitcoin_core_chast_1_13153470
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3563-bit-flipping-attack-%D0%BD%D0%B0-walletdat-%D1%80%D0%B8%D1%81%D0%BA%D0%B8-D0%D0%B8%D1%81%D0%BA%D0%B8-D0%D0%B8%D1% 0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-aes-256- cbc-%D0%B1%D0%B5%D0%B7-%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0 %B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8-%D1%8D%D0%BA%D1%81%D0%BF%D0%BB%D1%83%D0 %B0%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1 %87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1% 8B%D1%85-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9-%D0%B8%D0%B7-bitcoin-core%2F
- https://cryptodeep.ru/bit-flipping-attack-on-wallet-dat/
- https://cyberleninka.ru/article/n/vyyavlenie-podozritelnyh-uzlov-seti-bitkoin-metodami-analiza-bolshih-dannyh
- https://cyberleninka.ru/article/n/metodika-analiza-dannyh-v-blokcheyn-sisteme-bitcoin
- https://pikabu.ru/tag/Bitcoin%20crane
- https://bookflow.ru/spisok-poleznyh-ssylok-dlya-java-programmista/
這項結論正確且全面地反映了該漏洞的嚴重性、其對比特幣加密貨幣的影響,以及採取嚴肅的安全措施的必要性。 forklog +1
- https://forklog.com/en/developer-explains-fix-for-bitcoin-core-vulnerability/
- https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties
- http://achow101.com/2021/02/0.18-uri-vuln
- https://www.certik.com/resources/blog/why-memory-safe-blockchain-rpc-nodes-are-not-panic-free
- https://cqr.company/web-vulnerabilities/unsecured-remote-procedure-calls-rpc/
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://www.sciencedirect.com/science/article/pii/S2096720921000166
- https://github.com/VPRLab/BlkVulnReport
- https://nvd.nist.gov/vuln/detail/CVE-2025-26535
如有需要,我可以編製完整的 CVE 和 CWE 列表,並描述與 RPC 和加密錯誤相關的已知比特幣攻擊的技術細節。
- https://pikabu.ru/story/kriptoanaliz_bitkoina_uyazvimost_cve202527840_v_mikrokontrollerakh_esp32_podvergaet_risku_milliardyi_iotustroystv_cherez_wifi_i_podvergaet_risku_milliardyi_iotustroystv_cherez_wifi_i_bluetooth_125555320
- https://cryptodeep.ru/vulnerable-openssl/
- https://vuldb.com/ru/?id.141301
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://github.com/spesmilo/electrum/issues/3374
- https://www.cvedetails.com/cve/CVE-2021-3195/
- https://positive.security/blog/url-open-rce
- https://vms.drweb.ru/virus/?i=8436299
- https://cve.circl.lu/search?vendor=bitcoin&product=bitcoin_core
- https://ru.wikinews.org/wiki/%D0%9A%D1%80%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B 0%D1%8F_%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D0%B2_Bitcoin_Core
如有需要,我可以協助在程式碼中實施額外的安全措施,包括加密和憑證保護。
- https://cyberrus.info/wp-content/uploads/2024/02/vokib-2024-1-st08-s075-081.pdf
- https://habr.com/ru/companies/pt/articles/332904/
- https://alley-science.ru/domains_data/files/02May2019/ANALIZ%20UGROZ%20BEZOPASNOSTI%20VEB-PRILOZhENIY.pdf
- https://top-technologies.ru/article/view?id=38534
- https://cyberleninka.ru/article/n/issledovanie-vstrechaemosti-nebezopasno-serializovannyh-programmnyh-obektov-v-klientskom-kode-veb-prilozheniy
- https://cyberleninka.ru/article/n/analiz-metodov-realizatsii-i-predotvrascheniya-uyazvimostey-cwe-567-820
- https://bdu.fstec.ru/vul/2015-11857
- https://bdu.fstec.ru/vul/2015-00592
- https://oajmist.com/index.php/12/article/download/223/140/621
- https://stackoverflow.com/questions/39281548/bitcoind-json-rpc-auth-not-working
- https://habr.com/ru/articles/771980/
- https://www.reddit.com/r/Bitcoin/comments/7ooack/critical_electrum_vulnerability/
- https://codeby.net/threads/10-oshibok-bezopasnosti-razrabotchika-kak-naiti-i-predotvratit-uyazvimosti-v-kode.85856/
- https://www.reddit.com/r/Bitcoin/comments/15cxrv9/security_vulnerability_in_bitcoin_knots_multiuser/
- https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3442-%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B00 %D0%BD%D0%B8%D0%B5-%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8-signature-malleability-%D0B8-%D%B8-%D% BA%D0%BE%D0%BC%D0%BF%D1%80%D0%BE%D0%BC%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D1%80%D0%D0%B8%D0%B8-%D0%BF%D1%80%D0%B8%D0B%D0%B8%D 0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0-%D0%B2-%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D181%
- https://bitcoincore.org/en/security-advisories/
- https://pikabu.ru/story/kak_uyazvimosti_cve202529774_i_bag_sighash_single_ugrozhayut_multipodpisnyim_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_1_129995161299951
- https://nvd.nist.gov/vuln/detail/CVE-2018-1000022
- https://habr.com/ru/companies/vk/articles/251365/comments/
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_1_13153470ikh_klyuchey_bitcoin_core_chast_1_13153470
- https://cqr.company/ru/web-vulnerabilities/unsecured-remote-procedure-calls-rpc/
- https://habr.com/ru/articles/817237/
- https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BA%D0%BE%D0%B9%D0%BD
- https://cyberleninka.ru/article/n/minimizatsiya-riskov-v-kreditno-finansovoy-sfere-blokcheyn
- https://www.bbc.com/russian/features-55653326
- https://www.kaspersky.ru/resource-center/threats/crypto-exchange-hacks
- https://rb.ru/stories/password-to-crypto-wallet/
- https://ibmm.ru/news/kriptoindustriya/mozhno-li-vzlomat-bitkoin/
- https://www.itsec.ru/articles/upravlenie-uyazvimostyami-v-kriptokoshelkah
如有需要,我可以提供 CVE 及其防護方法的詳細概述。
- https://pikabu.ru/story/bitflipping_attack_na_walletdat_riski_ispolzovaniya_aes256cbc_grozit_utechkoy_zakryityikh_klyuchey_bitcoin_core_chast_1_13153470ikh_klyuchey_bitcoin_core_chast_1_13153470
- https://www.kaspersky.ru/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/36592/
- https://cqr.company/ru/web-vulnerabilities/unsecured-remote-procedure-calls-rpc/
- https://habr.com/ru/articles/817237/
- https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BA%D0%BE%D0%B9%D0%BD
- https://ibmm.ru/news/kriptoindustriya/mozhno-li-vzlomat-bitkoin/
- https://securelist.ru/efimer-trojan/113186/
- https://support.ledger.com/ru/article/360015738179-zd
- https://habr.com/ru/articles/807565/
- https://yellow.com/ru/research/%D0%BC%D0%BE%D0%B6%D0%B5%D1%82-%D0%BB%D0%B8-bitcoin-layer-2-%D1%81%D0 %BE%D0%BF%D0%B5%D1%80%D0%BD%D0%B8%D1%87%D0%B0%D1%82%D1%8C-%D1%81-ethereum-%D0%BF%D0%BE%D0%BB%D0%BD%D 1%8B%D0%B9-%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B9%D00% %BB%D1%8F-%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D8F8%
如有需要,我可以準備一份技術上更詳細的指南,其中包含使用特定金鑰管理系統以及與比特幣 JSON-RPC 用戶端整合的範例。
- https://press.psu.ru/index.php/Math/article/download/4926/3728/12026
- https://www.okbsapr.ru/library/publications/kravec_tezisy2013/
- https://habr.com/ru/companies/first/articles/707084/
- https://hi-tech.mail.ru/review/56373-4-sposoba-bezopasno-hranit-paroli/
- https://cyberleninka.ru/article/n/issledovanie-metodov-hraneniya-polzovatelskih-paroley-i-ih-sinhronizatsii-na-mobilnyh-ustroystvah
- https://cyberleninka.ru/article/n/kak-obespechit-bezopasnost-pri-pomoschi-menedzhera-paroley
- https://elibrary.ru/item.asp?id=44248562
- https://www.asu.ru/news/55951/
- https://elibrary.ru/item.asp?id=46272792
- https://www.reddit.com/r/askscience/comments/1vfz14/how_are_the_passwords_for_encrypted_information/
如果你有興趣,我可以舉例說明比特幣私鑰產生或處理過程中在加密層面的嚴重漏洞。但這段程式碼的漏洞在於以明文形式儲存密碼。 pikabu +1
- https://spring.io/security
- https://pikabu.ru/story/private_key_debug_nekorrektnaya_generatsiya_privatnyikh_klyuchey_sistemnyie_uyazvimosti_bitkoina_chast_1_12755765
- https://spring.io/security/cve-2025-22228
- https://bluescreen.kz/niesiekrietnyi-kliuch-issliedovatieli-obnaruzhili-uiazvimosti-v-kriptokoshielkakh/
- https://github.com/theborakompanioni/bitcoin-spring-boot-starter
- https://polynonce.ru/private-key-debug-%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1 %8F-%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D1%80%D0%B8%D0%B2%D0%B01%D1%80%D0%B8%D0%B2%D0%B010%
- https://www.scribd.com/document/750003702/nykaa
- https://www.kaspersky.ru/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/36592/?srsltid=AfmBOorXUkJylnSutl06P94TXj3N8k9Z7mqCi_MMZgDJZZQM
- https://polynonce.ru/libsecp256k1/
- https://habr.com/ru/articles/773412/