天天看點

Xeon SP伺服器新技術:防代碼入侵從BIOS做起

伺服器固件保護,在BMC還是晶片組上實作更好?

其實從技術上看,我覺得他們說的這個還有更簡單通用的辦法可以實作。

上圖随便找個例子,Nuvoton品牌源自華邦電子,與ASPEED等同為流行的底闆管理晶片品牌之一。

這是我幾年前拍攝的某伺服器主機闆上的BMC管理晶片,對于該部件伺服器廠商有幾種選擇:使用通用型号BMC、自主設計?或者部分定制。

我在前面說“最安全”那家,就是宣稱使用的自主BMC。其實這東西就像RAID卡,術業有專攻,自主設計未見得比晶片廠商通用方案的功能強。而且我覺得所謂自主與部分定制,可能隻是依賴第三方程度上的差别。本文想談談不同伺服器廠商的設計,晶片的不同真的會影響安全性嗎?

Intel Boot Guard:在晶片組上的保護

Intel Boot Guard流程圖,引用自Dell PowerEdge Product Group資料《CYBER-RESILIENCY STARTS AT THE CHIPSET AND BIOS》,文章結尾會列出下載下傳連結。

這張圖看起來可能有點不太好懂,我來給大家用文字解釋下。

Dell第14代PowerEdge伺服器支援Intel BootGuard驗證啟動特性。該啟動衛士擴充平台可信根(platform root of trust)到PCH晶片組。PCH包含一次性可程式設計“保險絲”,由Dell工廠在制造過程中燒錄標明的Boot Guard政策和主公鑰(Master PubicKey)的hash。

在BIOS SPI flash(閃存)上的密鑰清單由這個Dell主公鑰簽名,并委托授權到啟動政策清單密鑰。然後該啟動政策清單授權初始化啟動塊(IBB)——複位後執行的第一段BIOS代碼子產品。如果IBB認證失敗,Boot Guard将關閉系統并不允許啟動。每個BIOS子產品包含該啟動鍊中下一個子產品的hash值,并用它來驗證下一個子產品。

該IBB驗證(SEC+PEI)在交接控制權之前。(SEC+PEI)接下來驗證(PEI+MRC)和(PEI+MRC)進一步驗證(DXE+BDS)子產品。在這一點之後,如果打開了UEFI安全啟動,可以擴充可信根來保持處理BIOS、第三方UEFI驅動和OS loader。

點評:以上描述給我的感覺就是,在BIOS啟動全程避免執行被破壞的代碼,以防止在這個階段被注入後門等安全隐患。是以,不僅BMC晶片上支援“建立不可更改的指紋”,Intel的PCH晶片組已經內建該功能了,盡管我現在還不确認有多少伺服器廠商對此提供支援。

BIOS備援恢複選項

不知有多少朋友經曆過1998年的CIH病毒,那時候我恰好在中關村,幫同學配的一台電腦沒幾天BIOS就被破壞無法開機了,當然還有程式設計器或者土辦法熱插拔來恢複。雖然CIH在當年産生的破壞遠比前不久的比特币勒索病毒要大,但其作者隻是因為惡作劇想破壞資料(C槽以外的不難恢複)而并沒想到以此牟利。

上圖中有一個BIOS經過iDRAC(BMC)和PCH映射的過程。

前面說的Intel Boot Guard是防止未經驗證的BIOS代碼執行,而這裡的備援恢複選項則是在面對黑客破壞或者更新BIOS時斷電而無法啟動的情況。

每台PowerEdge 14G伺服器上有2個BIOS SPI ROM,一個主ROM,另一個為恢複ROM,後者在正常啟動時處于離線。當主ROM受損時BIOS恢複程序會自動觸發系統複位。

具體的恢複過程我就不在這裡贅述了,在CIH病毒之後的那幾年,可能有朋友還記得技嘉等廠商推出過雙BIOS PC主機闆,也是同類的功能。當然伺服器的實作要複雜些,需嚴格確定過程的安全可靠,不像當年DIY主機闆上有時莫名奇妙地從第二顆BIOS啟動執行恢複了。

就寫這麼多吧,我隻是想讓大家了解技術的另一種實作方式,心裡有數就能防忽悠:)

參考資料

http://en.community.dell.com/techcenter/extras/m/white_papers/20444061

繼續閱讀