- Advertisement -
首頁 技術頻道 RoT FPGA助力 企業伺服器韌體更安全

RoT FPGA助力 企業伺服器韌體更安全

- Advertisement -

為解決這一個問題,有些處理元件採用集合在晶片上的硬體電路來檢測未經授權的韌體修改。然而,電路板上其他未採用此種方案的處理元件還是缺乏有效保護,整個伺服器仍然易受攻擊。美國國家標準與技術研究所(NIST)於2018年發布了NIST SP 800 193標準,訂下了一套標準的安全機制,稱為平台韌體保護恢復(PFR),它主要基於以下三個指導原則(圖1)。

圖1 平台韌體保護恢復機制三大指導原則

PFR功能主要依賴外部的硬體(晶片)帶有「信任根(RoT)」的元件。使用基於FPGA的RoT裝置的FR解決方案證明其比使用基於MCU的硬體信任根裝置更安全、擴展性更好、系統可靠性更高。而PFR開發套件能讓伺服器的原始設備製造商快速為其現有設計增加PFR功能,並充分利用這一強大的安全技術帶來的優勢。系統架構師和系統整合商如今可以更為方便地設計、實現和維護符合PFR標準的FPGA RoT裝置,而毋須擁有專門的安全專業知識。

易受網路攻擊之伺服器韌體

預計到2021年,網路攻擊犯罪造成的損失將達到6兆美元。網路駭客不斷尋找規避安全措施的新方法,目的地在:

.偷看或竊取儲存在伺服器上的專有資料(信用卡號、公司智慧財產權等)。

.繞過伺服器偷看或竊取資料。

.劫持伺服器,對其他目標進行DDoS攻擊。

.透過讓伺服器的一個或多個硬體元件無法運行,而對其造成破壞(稱之為「變磚頭」)。

由於作業系統和應用會定期更新,以便加入新功能或修復漏洞,它們很容易成為駭客入侵伺服器的最大目標。於是,組織的安防資源和戰略一般會傾向於保護作業系統和應用軟體。然而,入侵伺服器還有另外一個較少為人所知的攻擊載體,也就是所謂的韌體。

韌體是指伺服器元件(即CPU、網路控制器,片上RAID解決方案等)率先上電後立即執行的第一個啟動代碼。韌體的處理器假定韌體為一個有效可靠的起點,從中啟動並根據伺服器的配置使用它來分階段驗證和載入更高級別的功能。在某些情況下,處理元件在其運行整個執行週期內皆須借使韌體提供的功能。

 國際資訊系統審計協會(ISACA)於2016年的一份調查顯示,在那些聲稱將硬體安全放在企業首位的受訪者中,超過半數「報告了至少一起受惡意軟體影響的韌體被引入公司系統的事件」,並且17%的受訪者表示「這些事件造成了實質性影響」。

韌體安全狀態

伺服器韌體可能在供應鏈的各個不同階段遭到入侵,包括:

.在原始設備製造商處,於生產過程中操作人員惡意植入受感染的韌體。

.在系統整合商處,於根據客戶要求配置伺服器時安裝未經授權的韌體。

.轉運到客戶的過程中,駭客可以打開伺服器包裝,通過線纜下載未經授權的韌體,將惡意程式碼植入組件的SPI記憶體中。

.現場運行過程中,駭客可以利用韌體的自動更新,將可繞過任何現有保護機制的偽造韌體替換掉真正的進行更新。

典型的伺服器主機板目前都使用至少兩種標準的韌體實例,分別為統一可延伸韌體介面(UEFI)和基板管理控制器(BMC),儘管這些介面能對韌體造成一定的保護作用,但也非常有限。

統一可延伸韌體介面(UEFI)

UEFI(之前稱為BIOS)是負責將伺服器韌體載入作業系統的軟體程式。UEFI在生產過程中就已經安裝就緒,用於檢查伺服器有哪些硬體元件、喚醒這些元件並將其交給作業系統。這一標準透過一種稱之為安全啟動的過程,以檢測未經授權的韌體,如果檢測到未經授權的韌體,該安全機制就會阻止硬體元件啟動。然而,安全啟動的實現和支援因元件和供應商而異,這會導致元件安全效能出現漏洞,從而被駭客利用。此外,如果非法韌體設法繞過了安全啟動,UEFI就無法將元件的韌體恢復到上一個經授權的版本並繼續運行。

基板管理控制器(BMC)

基板管理控制器是主機板上的一種專用微控制器(MCU),透過獨立的連接與系統管理員通訊以及使用感測器來監控「電腦、網路伺服器或其他硬體設備」。許多BMC會篩查各自的韌體安裝情況以確保韌體的合法性,但是對於其他的伺服器韌體則無能為力。BMC無法阻止惡意程式碼攻擊電路板上的其他韌體(圖2)。例如,如果惡意程式碼被植入元件的SPI記憶體未使用的分區,那麼BMC則無法阻止代碼進入伺服器的整個代碼流。

圖2 統一可延伸韌體介面和基板管理控制器介面只能提供有限的韌體保護。

平台韌體保護恢復標準

為解決當前韌體標準的安全問題,美國國家標準技術研究所(NIST)於2018年5月發布了一項新標準,為包括UEFI和BMC在內的所有韌體提供全面保護。這一被稱為PFR的NIST SP 800新標準旨在「提供技術指導和建議,支援平台韌體和資料的恢復,預防潛在的破壞性入侵」。它提供了一種保護系統中所有韌體的統一方法,並且可以設定為對正常系統操作不具有攻擊性,不過一旦確定未經授權的韌體正在嘗試安裝,它就會停止所有相關組件。PFR也能對各個元件可能支援的任何安全功能獨立運行。

該標準概括了保護韌體的三大關鍵原則:

保護:透過阻止對元件SPI記憶體的保護區域實施未經授權的寫入或者清除全部或部分韌體的惡意行為,以確保元件的韌體處於穩定狀態。在有些情況下,甚至對保護區讀取的操作也是禁止的。

檢測:在元件的處理器從韌體啟動之前,可以先驗證來自原始設備製造商的韌體更新裝置。若韌體有被檢測到受破壞或未經授權,則立刻啟動恢復過程。

恢復:若檢測到韌體被篡改或被破壞,處理器將從上一個已認證之韌體版本及「黃金鏡像」啟動,或者通過可信進程獲得新的韌體,啟動全系統的恢復。

PFR需要基於硬體的可信根

根據NIST的這一標準,實現安全的PFR功能需要硬體信任根(RoT)對伺服器的韌體執行保護、檢測和恢復操作(表1)。符合NIST標準的RoT裝置必須在啟動之前,且不借助任何其他外部元件的情況下對其韌體進行以上操作。硬體RoT解決方案必須具備以下特點:

.可擴展性

RoT裝置必須透過外部SPI鏡像實現保護、檢測和恢復功能,同時具備毫微秒級回應速度。這需要專用處理和I/O介面,保證伺服器的效能不受影響。

.不可繞過性

未經授權的韌體不能繞過RoT裝置,從而無法從受損的韌體件啟動伺服器。

.自我保護性

RoT裝置必須動態地應對不斷變化的攻擊面(設備或系統中未經授權的使用者所能進入的所有節點),保護自身免受外部攻擊。

.自我檢測性

RoT裝置必須能夠使用不可繞過的加密硬體模組檢測未授權的韌體。

.自我恢復性

當設備發現未經授權的韌體時,RoT裝置必須能夠自動切換到上一個黃金韌體鏡像,確保伺服器繼續運行。

.保護   

啟動前是否能檢測有缺陷的韌體?是否能從有缺陷的韌體中恢復?運行期間是否保護所有韌體在系統內部更新過程中免受攻擊?

如圖3所示,RoT裝置首先上電,並透過加密方式檢查所有元件的韌體,以及是否有未經授權的修改。若RoT裝置檢測到任何破壞,則啟動可信韌體恢復過程。在極端情況下,若電路板上所有的韌體全部受損,RoT裝置還可以利用儲存在該元件中的可信韌體進行全系統恢復(透過BMC)。

圖3 NIST SP 800-193標準

BMC從可信韌體啟動後,從系統外部取得可被信任的韌體替代被破壞的韌體版本。RoT裝置隨後再次驗證所有韌體,然後啟動電路板的上電程式,在此過程中板上所有元件都將上電,並強制從已知的完好韌體鏡像中啟動,最後開始正常工作。為保證SPI記憶體不再遭受入侵,RoT將主動監測SPI記憶體和對應處理器之間的所有活動,當發現惡意程式企圖更新韌體的行為時將阻止安裝更新。

實現符合NIST標準之PFR解決方案

在PLD上實現信任根的難點在於,實現方案的同時不給原始設備製造商帶來過大的負擔。信任根硬體解決方案(包括基於PLD的解決方案)必須具備可擴展性,也就意味著它能夠保護伺服器上的所有韌體,同時回應時間達到毫微秒級。

它還要能夠使用不可修改的加密模組,透過加密檢測來確定韌體是否遭到篡改。將PFR與伺服器所有元件完整的啟動時序控制功能相結合,RoT就變得不可繞過。最後,解決方案還應能夠自動切換回最近的黃金韌體鏡像,以便在偵測到韌體被破壞時伺服器還是可以繼續運行。

按照定義,基於硬體的RoT裝置自然需要在晶片中實現。在此情況下,最常用的晶片平台即微控制器和現場可程式設計閘陣列(FPGA)。在充分考慮到FPGA和MCU的運行特點和特性後,我們發現FPGA更適用於PFR解決方案。

使用MCU實現可信根

MCU過去常在伺服器硬體產品中用於構建信任根。簡單來說,就是保留MCU層的一部分為可信執行環境(TEE),MCU的這一部分與晶片的其他區域保持物理隔離,並持續監控韌體,確保其獲得授權並正常工作。通常來說,伺服器上的PFR功能是透過向現有的硬體架構上添加RoT MCU實現的。

MCU通常難以支援驗證服務器中的多個韌體實例。這是因為它無法在沒有外部設備(如PLD)的說明下回應所有對伺服器韌體實例的系統內部攻擊(而PLD能即時監控SPI儲存設備的流量並同步檢測和回應入侵行為)。如圖4所示,使用MCU實現PFR的三個元件為:

圖4 如果需各元件同時啟動,那麼符合PFR標準、使用MCU作為可信根的伺服器還需要額外的元件(FPGA)來提供必要的高性能;在大規模的伺服器應用場景下,此種解決方案不可擴展。

RoT MCU:RoT MCU執行檢測、恢復和保護功能,是實現RoT的核心元件。

保護PLD:透過即時監控所有元件處理器與其SPI儲存體設備之間的活動,大規模實現PFR,全面保護電路板。

控制PLD:該元件整合了所有電路板級的上電和重定時序功能,包括風扇控制、SGPIO、I2C緩衝、訊號整合和帶外通訊等啟動主機板必須的功能。RoT MCU命令控制PLD為電路板上電。若需要在極端情況進行恢復,RoT MCU則命令控制PLD僅為可信恢復過程中使用的部分電路板供電。

這種基於MCU的PFR方案有諸多限制。例如,圖4電路中使用的控制PLD無法保護自身韌體,也就意味著這種架構並非完全符合NIST PFR的要求。控制PLD的代碼仍有可能被修改,讓RoT MCU失效。還有可能受到永久拒絕服務攻擊(PDoS),透過刪除這些PLD上的資訊,讓系統無法運行,從而使讓伺服器無法啟動。

保護和控制PLD存在的安全性漏洞使得元件在運輸或者系統整合過程中很難防止對韌體的攻擊。為了達到NIST SP 800 193標準,RoT MCU必須同時為控制PLD和保護PLD實現PFR功能。而使用MCU在這些元件上實現恢復和保護功能非常困難。最後,基於MCU的方案需要額外的系統級進程來檢測試圖繞過整個RoT電路的攻擊行為。

PLD滿足PFR標準

正如其名,可程式設計邏輯電路(PLD)是一種幾乎可以暫態實現遠端重新程式設計的積體電路,以適應不斷變化的場景。PLD可以在硬體層面上改變其電路,因此一旦檢測到未經授權的韌體,該韌體就無法安裝。由於PLD被設計為可重新程式設計,因此比MCU有更多的I/O介面,這讓它們可以並行運行多個功能而非按循序執行,因此它們在檢測未授權韌體時,識別和回應速度更快。

此外,PLD使用了先進的模擬軟體,讓工程師得以驗證其PLD設計的功能。工程師還可以使用這一工具來測試其針對各種韌體網路攻擊的設計是否可以保護PLD自身。與PLD相比,MCU的韌體更新需要更複雜的測試和驗證,因為MCU不能透過模擬支援功能驗證。

相反,MCU韌體的任何更新都必須經過多次回歸(試錯過程)測試,以確保新韌體不會對MCU中的其他功能產生不良影響;這一過程遠比運行PLD模擬軟體繁瑣。當我們對比PLD和MCU的特點時,會發現PLD能提供性能更優、更為可靠的平台實現基於硬體的可信根;它也成為滿足PFR標準的必要元件。

應對供應鏈攻擊 MCU/FPGA各有所長

如果出現韌體攻擊,兩種不同類型的PFR系統將採取以下應對措施(按照實施順序)(表2):

為實現簡化FPGA RoT解決方案。半導體業者如萊迪思(Lattice)開始提供PFR開發套件(圖5)。伺服器元件的原始設備製造商和系統整合商如今可以快速實現基於FPGA的PFR,滿足上市時間的要求。該套件包括一個軟體功能庫、相關的IP和3個開發板,用於實現PFR(包括保護PLD功能)。使用者可以通過Lattice Diamond軟體工具將電路板控制PLD功能添加到RoT FPGA設計中。萊迪思PFR開發套件和開發板包括:

圖5 Lattice FPGA RoT開發套件

1.一塊RoT FPGA開發板。

2.一塊運行Python程式編碼的ECP5 FPGA板,用於類比伺服器的BMC。開發人員可以透過Python程式編碼執行命令來類比對元件SPI儲存體的攻擊。

3.一個PFR介面卡,用於在SPI儲存體中存儲BMC代碼。在開發板的RoT FPGA中實現的PFR功能可以保護PFR介面卡韌體免受攻擊(意味著基於FPGA的該解決方案符合NIST PFR標準)。

此一套件讓使用者能夠設計、實現和維護符合NIST標準的自訂PFR方案,而無需專門的安全專業知識。

對於涉足數位領域的企業和組織而言,網路安全是個至關重要的問題。如今駭客會透過攻擊企業伺服器韌體來獲取未經授權訪問伺服器資料的許可權,或者直接讓伺服器永久癱瘓。而透過基於FPGA的RoT裝置實現的PFR則能有效解決這一難題,提供安全可靠、容易擴展、全套完備的方案,在供應鏈的任何環節保護伺服器元件的韌體。全新的PFR開發套件為加速和簡化RoT裝置的開發提供了便捷途徑,確保伺服器安全無虞。

相關文章

- Advertisement -
- Advertisement -

最新文章

- Advertisement -

熱門文章

- Advertisement -

編輯推薦

- Advertisement -