現代數據中心依靠 Baseboard Management Controllers (BMCs) 進行遠程管理。這些嵌入式處理器使管理員能夠重新配置服務器、監控硬件運行狀況并推送固件更新,即使在系統關閉電源時也是如此。
但是,這種能力會嚴重損害安全性并擴大攻擊面。如果不加以保護,受損的 BMC 可以對整個設備群提供持久的秘密訪問。
NVIDIA Offensive Security Research (OSR) 團隊最近分析了數據中心環境中使用的 BMC 固件。該團隊確定了 18 個漏洞,并開發了 9 個正在運行的漏洞。現代基礎設施中經常被忽視的組件中存在的此類漏洞可能會導致嚴重的安全漏洞,從而給企業帶來風險。
本文將介紹 BMC 的工作原理、OSR 發現的漏洞,以及企業應該采取哪些措施來保護自己。有關更多詳細信息,請參閱 Breaking BMC:The Forgotten Key to the Kingdom。
是什么讓 BMC 變得強大且有風險
BMC 是嵌入式服務處理器,可實現安全的大規模遠程管理。在超大規模或物理上無法訪問的環境中,它們使管理員能夠監控硬件、重新配置系統固件并恢復計算機。其中一些操作甚至可以在不啟動主機電源的情況下執行。
通過鍵盤視頻鼠標 (KVM) 訪問,BMC 可以修改 BIOS 設置、應用固件更新并控制啟動行為。它們收集詳細的遙測數據,如溫度、功耗和風扇轉速,并且獨立于主機操作系統運行。雖然這種訪問級別對于現代基礎設施至關重要,但也會帶來潛在的安全風險。
BMC 通常在傳統安全監控系統之外運行,通過專用管理接口公開,并由第三方固件堆棧提供支持。如果受到入侵,它們就會成為在其控制的每個系統中保持持久性的平臺,而檢測方式通常很難甚至無法檢測到。
NVIDIA DGX H100 等 NVIDIA 系統依靠 BMC 實現安全、可擴展的操作。因此,即使組件來自外部供應商,其安全性也會受到嚴格評估。
BMC 不僅僅是一個控制平面,而是一個潛在的妥協平面,這使得保護 BMC 至關重要。

BMC 內部:從 Side Channels 到 Root Access
在評估過程中,NVIDIA OSR 團隊分析了現代數據中心服務器中常用的 BMC 固件包。在無法訪問源代碼的情況下,該團隊直接從設備鏡像對固件進行逆向設計,發現了 18 個漏洞 (從憑據處理缺陷到內存損壞錯誤) ,并開發了 9 個可行的漏洞來評估實際影響。此外,它還能夠驗證 NVIDIA 產品是否容易受到這些攻擊,并允許驗證補丁。
通過側信道泄露憑據
該團隊對 IPMI 身份驗證過程進行了調查,并確認該過程仍然容易受到最初于 2013 年發現并分配給 CVE-2013-4786 的 hash-leak 漏洞的影響。不過,只有當攻擊者知道 BMC 系統中的有效用戶名時,才能利用此漏洞。BMC 響應時間顯示了一個經典的 timing oracle 側通道,允許團隊識別有效的用戶名。獲得有效的用戶名后,我們可以使用泄露的 hash 和標準 word lists 離線強制密碼。
該漏洞源于 BMC 在身份驗證期間使用 memcmp
比較用戶名。由于 memcmp
在第一個不匹配時退出,因此響應時間泄露了用戶名的初始字符數是正確的,從而提供了一個典型的時間側通道。

通過不安全的 API 實現完全遠程訪問
固件鏡像表示用戶數據庫由 Redis 管理,使用加密密碼,但密鑰一起存儲。該團隊發現了一個 API,可以通過它查詢 Redis 數據庫。我們確定了密碼和用戶名的存儲位置,通過 API 訪問這些位置,解密了密碼,并成功獲取了完整的用戶數據庫。
另一個 API 允許使用 BMC 憑據對 IPMI 服務器進程中的虛擬內存進行讀/ 寫訪問。在不檢查區域或大小的情況下,我們發現服務器模塊加載在一致的基礎地址上。這表明缺乏 Address Space Layout Randomization (ASLR) ,ASLR 是針對堆噴灑、面向返回的編程漏洞和直接內存操作等一系列攻擊的標準緩解措施。

由于缺乏 ASLR,團隊能夠識別隱藏配置標志的位置,并直接通過 API 進行切換。這使我們能夠啟用通常不公開的文件下載功能。通過將此與單獨的路徑遍歷漏洞關聯,我們能夠從 BMC 檢索敏感文件,包括 /etc/shadow
。

/etc/shadow
這些功能在默認情況下處于啟用狀態,并且可以在身份驗證后使用。它們共同為我們提供了對系統的深度訪問權限,并為我們指明了堅持的清晰路徑。
與主機系統旋轉
在完全訪問 BMC 后,團隊開始探索與主機系統本身進行交互的方法。使用 BMC KVM 功能,我們修改了 Bootloader 參數,并獲得了對主機操作系統的 shell 訪問權限,無需任何用戶憑據。在此實例中,Secure Boot 未啟用。但是,如果啟用該功能,則可以通過 BMC 調整 Unified Extensible Firmware Interface (UEFI) 設置。這將允許 Secure Boot 被禁用,前提是 UEFI 不受密碼保護。
進入后,團隊發現主機的磁盤未加密,并且包含剩余的固件更新鏡像。這使我們能夠檢索原始 BMC 固件并對其進行逆向工程,以便更詳細地了解系統。
我們還確定了一個公開 API,允許 BMC 直接讀取和寫入主機的 SPI 閃存。借助此功能,我們能夠修改 NVRAM 條目,例如禁用 Secure Boot。這不是一條理論路徑,而是經過了測試和確認。對持久性和主機妥協的影響是嚴重的。

經典內存漏洞,無現代緩解措施
在審查身份驗證功能時,團隊發現了一種邏輯,用于處理用于記錄目的的共享遙測庫。在該代碼中,我們發現了基于堆棧的經典預身份驗證緩沖區溢出。BMC 固件使用 strcpy
將未驗證的輸入復制到固定大小的緩沖區中,然后立即進行函數指針調用。這提供了在嘗試登錄期間執行代碼的直接路徑。
真正突出的是缺乏針對堆棧和內存損壞漏洞的標準現代緩解措施,包括:
- 堆棧的 Data execution prevention
- 堆棧 Cookie
- ASLR
- 控制流完整性 (CFI)
- 沙盒
這些是現代系統中的基準緩解措施,如果不采用這些措施,則利用起來要容易得多。
該團隊針對此身份驗證前漏洞開發了一個漏洞,該漏洞完全劫持了控制流,允許執行注入的 shellcode。由于缺少防御層,開發過程并不困難。
推動整個生態系統的修復
在驗證漏洞后,OSR 與負責受影響 BMC 固件的供應商 American Megatrends Inc. (AMI) 密切合作。我們提供詳細的技術報告,使 AMI 能夠修補問題并協調整個客戶群的修復工作。
由于此固件在整個行業中廣泛部署 (不僅僅是在 NVIDIA 系統中) ,因此該團隊與供應商并行發布了我們自己的 CVE,以加速感知和補救。這有助于確保受影響的 NVIDIA 客戶可以迅速采取行動,而正式的供應商 CVE 則遵循其標準流程。
這項工作的影響不僅限于 NVIDIA 產品。識別并披露常用 BMC 平臺中的漏洞有助于提高整個生態系統中 BMC 安全的標準。
安全團隊現在應該做什么
BMC 不僅僅是后臺基礎設施,還是能夠深度控制硬件的特權系統。如果它們不是您的安全模型的一部分,則應該是。開始使用:
- 限制訪問:將 BMC 接口放置在隔離的管理網絡上,切勿將其公開到互聯網上。
- 積極修補:與您的供應商合作,確保 BMC 固件得到更新并追蹤 CVE。
- 監控活動:將 BMC 事件視為日志記錄和檢測策略的一部分。關注固件、配置和登錄行為的變化。
- 審核供應鏈:詢問供應商如何構建、測試和維護 BMC 固件。盡可能進行驗證。
- 推動強化:需要基本的緩解措施,如 ASLR、堆棧保護和嵌入式系統中的不可執行內存。這些保護措施應作為基準。
BMC 是實現全面系統控制的門戶。一旦遭到入侵,它們就會為攻擊者提供持久的低級立足點。保護它們對于保護現代基礎設施至關重要。
加強基礎設施安全性
通過主動識別漏洞、與供應商密切合作并與更廣泛的社區分享見解,NVIDIA 正在幫助在整個數據中心生態系統中推動更強大的防御。
這項 BMC 研究是深度技術安全工作如何揭示隱藏風險并產生實際影響的一個例子。該團隊將繼續挑戰假設,調查被忽視的組件,并提高基礎設施安全性。保護堆棧意味著保護堆棧的每一層。如需了解更多信息,請參閱完整的研究論文,即 Breaking BMC:The Forgotten Key to the Kingdom。
想要詳細了解如何保護堆棧的其他層?瀏覽 NVIDIA GTC 演講,了解代理式 AI 的最新進展。
?
?