根據(jù)新的NIST SP 800 193標(biāo)準(zhǔn)、在硬件上使用基于FPGA的可信根器件來實現(xiàn)平臺硬件保護(hù)和恢復(fù)(PFR), 可讓服務(wù)器固件免受網(wǎng)絡(luò)攻擊,保護(hù)性能更上一層樓。萊迪思全新PFR開發(fā)工具套件能夠簡單快速實現(xiàn)基于FPGA的PFR解決方案。
概述
典型的企業(yè)服務(wù)器包含多個處理組件,每個組件使用各自的非易失性SPI Flash緩存來保存其固件(即上電后處理組件立即啟動所需的軟件)。盡管使用閃存很方便現(xiàn)場升級和修復(fù)問題,但同時也容易遭受惡意攻擊。黑客可以未經(jīng)授權(quán)就訪問固件,在組件的閃存中植入惡意代碼。這些代碼能夠輕易躲過標(biāo)準(zhǔn)的系統(tǒng)檢測手段,即便是進(jìn)行更新或更換硬盤也無法解決,從而對系統(tǒng)造成永久性破壞。
為解決這一問題,一些處理組件采用集成在芯片上的硬件電路來檢測未經(jīng)授權(quán)的固件修改。然而,電路板上其他未采用此種方案的處理組件還是缺乏有效保護(hù),整個服務(wù)器仍然易受攻擊。美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)最近發(fā)布了2018年NISTSP800193標(biāo)準(zhǔn),定義了一種標(biāo)準(zhǔn)的安全機制,稱為平臺固件保護(hù)恢復(fù)(PFR), 它主要基于以下三個指導(dǎo)原則:
PFR功能主要依賴外部的硬件(芯片)帶有“可信根”(RoT)的器件。使用基于FPGA的RoT器件實現(xiàn)PFR解決方案比使用基于MCU的可信根器件更安全、擴展性更好、系統(tǒng)可靠性更高。萊迪思推出的全新PFR開發(fā)套件能讓服務(wù)器的原始設(shè)備制造商快速為其現(xiàn)有設(shè)計增加PFR功能,并充分利用這一強大的安全技術(shù)帶來的優(yōu)勢。系統(tǒng)架構(gòu)師和系統(tǒng)集成商如今可以更為方便地設(shè)計、實現(xiàn)和維護(hù)符合PFR標(biāo)準(zhǔn)的FPGA RoT器件,而無需擁有專門的安全專業(yè)知識。預(yù)計到2021年,網(wǎng)絡(luò)攻擊犯罪造成的損失將達(dá)到6萬億美元1。網(wǎng)絡(luò)黑客不斷尋找規(guī)避安全措施的新方法,旨在:
? 偷看或竊取存儲在服務(wù)器上的專有數(shù)據(jù)(信用卡號、公司知識產(chǎn)權(quán)等)
? 繞過服務(wù)器偷看或竊取數(shù)據(jù)
? 劫持服務(wù)器,對其他目標(biāo)進(jìn)行DDoS攻擊
? 通過讓服務(wù)器的一個或多個硬件組件無法運行,從而對其造成破壞(稱之為“變磚頭”)
由于操作系統(tǒng)和應(yīng)用會定期更新,以便加入新功能或修復(fù)漏洞,它們很容易成為黑客入侵服務(wù)器的最大目標(biāo)。于是,組織的安防資源和戰(zhàn)略一般會傾向于保護(hù)操作系統(tǒng)和應(yīng)用軟件。然而,入侵服務(wù)器還有另外一個較少為人所知的攻擊載體:固件。
固件是指服務(wù)器組件(即CPU、網(wǎng)絡(luò)控制器,片上RAID解決方案等)率先上電后立即執(zhí)行的第一個啟動代碼。組件的處理器假定固件為一個有效可靠的起點,從中啟動并根據(jù)服務(wù)器的配置使用它來分階段驗證和加載更高級別的功能。在某些情況下,處理組件在其整個運行周期內(nèi)使用固件執(zhí)行所需的功能。
國際信息系統(tǒng)審計協(xié)會(ISACA)2016年的一份調(diào)查顯示,在那些聲稱將硬件安全視作組織頭等大事的受訪者中,超過半數(shù)“報告了至少一起受惡意軟件影響的固件被引入公司系統(tǒng)的事件”,并且17%的受訪者表示“這些事件造成了實質(zhì)性影響。2”
固件安全狀態(tài)
服務(wù)器固件可能在供應(yīng)鏈的各個不同階段遭到入侵,包括:
? 在原始設(shè)備制造商處:在生產(chǎn)過程中操作人員惡意植入受感染的固件
? 在系統(tǒng)集成商處:在根據(jù)客戶要求配置服務(wù)器時安裝未經(jīng)授權(quán)的固件
? 轉(zhuǎn)運到客戶的過程中:黑客可以打開服務(wù)器包裝,通過線纜下載未經(jīng)授權(quán)的固件,將惡意代碼植入組件的SPI存儲器中
? 現(xiàn)場運行過程中:黑客可以利用固件的自動更新,將可繞過任何現(xiàn)有保護(hù)機制的偽造固件替代正常的更新典型的服務(wù)器主板目前都使用至少兩種標(biāo)準(zhǔn)的固件實例:統(tǒng)一可擴展固件接口(UEFI)和基板管理控制器(BMC)。盡管這些接口能對固件起到一定的保護(hù)作用,但也非常有限。
統(tǒng)一可擴展固件接口(UEFI)
UEFI(之前稱為BIOS)是負(fù)責(zé)將服務(wù)器固件載入操作系統(tǒng)的軟件程序。UEFI在生產(chǎn)過程中就已經(jīng)安裝就緒,用于檢查服務(wù)器有哪些硬件組件、喚醒這些組件并將其交給操作系統(tǒng)3。這一標(biāo)準(zhǔn)通過一種稱之為安全啟動的過程檢測未經(jīng)授權(quán)的固件,如果檢測到未經(jīng)授權(quán)的固件,該安全機制就會阻止硬件組件啟動4。然而,安全啟動的實現(xiàn)和支持因組件和供應(yīng)商而異,這會導(dǎo)致組件安全性能出現(xiàn)漏洞,從而被黑客利用。此外,如果非法固件設(shè)法繞過了安全啟動,UEFI就無法將組件的固件恢復(fù)到上一個經(jīng)授權(quán)的版本并繼續(xù)運行。
基板管理控制器
基板管理控制器是母板上的一種專用微控制器(MCU),通過獨立的連接與系統(tǒng)管理員通信以及使用傳感器來監(jiān)控“計算機、網(wǎng)絡(luò)服務(wù)器或其他硬件設(shè)備5”。許多BMC會篩查各自的固件安裝情況以確保固件的合法性,但是對于其他的服務(wù)器固件則無能為力。BMC無法阻止惡意代碼攻擊電路板上的其他固件。例如,如果惡意代碼被植入組件的SPI存儲器未使用的分區(qū),那么BMC則無法阻止代碼進(jìn)入服務(wù)器的整個代碼流。
?
圖 1:統(tǒng)一可擴展固件接口和基板管理控制器接口只能提供有限的固件保護(hù)
平臺固件保護(hù)恢復(fù)(NIST SP 800 193標(biāo)準(zhǔn))
為解決當(dāng)前固件標(biāo)準(zhǔn)的安全問題,美國國家標(biāo)準(zhǔn)技術(shù)研究所(NIST)于2018年5月發(fā)布了一項新標(biāo)準(zhǔn),為包括UEFI和BMC在內(nèi)的所有固件提供全面保護(hù)。這一被稱為PFR的NIST SP 800新標(biāo)準(zhǔn)旨在“提供技術(shù)指導(dǎo)和建議, 支持平臺固件和數(shù)據(jù)的恢復(fù),預(yù)防潛在的破壞性入侵。6”它提供了一種保護(hù)系統(tǒng)中所有固件的統(tǒng)一方法,并且可以配置為對正常系統(tǒng)操作不具有侵入性。一旦確定未經(jīng)授權(quán)的固件正在嘗試安裝,它則會停止任何相關(guān)組件。并且PFR還相對于各個組件可能支持的任何安全功能獨立運行。
該標(biāo)準(zhǔn)概括了保護(hù)固件的三大關(guān)鍵原則:
? 保護(hù)? –?? 通過阻止對組件SPI存儲器的保護(hù)區(qū)域?qū)嵤┪唇?jīng)授權(quán)的寫入或者清除全部或部分固件的惡意行為,從而確保組件的固件處于穩(wěn)定狀態(tài)。在有些情況下,甚至對保護(hù)區(qū)的讀取的操作也是禁止的。
? 檢測 – 在組件的處理器從固件啟動之前,可以先驗證來自原始設(shè)備制造商的固件更新包。若檢測到固件有破壞或未經(jīng)授權(quán),則啟動恢復(fù)過程。
? 恢復(fù) – 若檢測到固件被篡改或被破壞,處理器將從上一個可信固件版本(即“黃金鏡像”)啟動,或者通過可信進(jìn)程獲得新的固件,啟動全系統(tǒng)的恢復(fù)。
PFR需要基于硬件的可信根
根據(jù)NIST的這一標(biāo)準(zhǔn),實現(xiàn)安全的PFR功能需要可信根(RoT)器件對服務(wù)器的固件執(zhí)行保護(hù)、檢測和恢復(fù)操作。符合NIST標(biāo)準(zhǔn)的RoT器件必須在啟動之前、且不借助任何其他外部組件的情況下對其固件進(jìn)行以上操作。
硬件RoT解決方案必須擁有以下特點:
? 可擴展?? – RoT器件必須通過外部SPI鏡像實現(xiàn)保護(hù)、檢測和恢復(fù)功能,同時具備毫微秒級響應(yīng)速度。這需要專用處理和I/O接口,保證服務(wù)器的性能不受影響。
? 不可繞過 – 未經(jīng)授權(quán)的固件不能繞過RoT器件,從而無法從受損的固件啟動服務(wù)器。
? 自我保護(hù)?? – RoT器件必須動態(tài)地應(yīng)對不斷變化的攻擊面(設(shè)備或系統(tǒng)中未經(jīng)授權(quán)的用戶可以訪問的所有節(jié)點),保護(hù)自身免受外部攻擊。
? 自我檢測 – RoT器件必須能夠使用不可繞過的加密硬件模塊檢測未授權(quán)的固件。
? 自我恢復(fù) – 當(dāng)設(shè)備發(fā)現(xiàn)未經(jīng)授權(quán)的固件時,RoT器件必須能夠自動切換到上一個黃金固件映像,確保服務(wù)器繼續(xù)運行。
圖 2:NIST SP 800-193標(biāo)準(zhǔn):平臺固件保護(hù)恢復(fù)
如圖3所示,RoT器件首先上電,并通過加密方式檢查所有組件的固件,以及是否有未經(jīng)授權(quán)的修改。若RoT器件檢測到任何破壞,則啟動可信固件恢復(fù)過程。在極端情況下,若電路板上的所有固件全部受損,RoT器件還可以利用存儲在該器件中的可信固件進(jìn)行全系統(tǒng)恢復(fù)(通過BMC)。BMC從可信固件啟動后,從系統(tǒng)外部取得已知可?????? 信的固件替代被破壞的固件版本。RoT器件隨后再次驗證所有固件,然后啟動電路板的上電程序,在此過程中板上所有組件都將上電,并強制從已知的完好固件鏡像中啟動,最后開始正常工作。
為保證SPI存儲器不再遭受入侵,RoT將主動監(jiān)測SPI存儲器和對應(yīng)處理器之間的所有活動,發(fā)現(xiàn)惡意更新固件的行為后,阻止安裝更新。
實現(xiàn)符合NIST標(biāo)準(zhǔn)的PFR解決方案
PLD上實現(xiàn)可信根的難點在于,實現(xiàn)方案的同時不給原始設(shè)備制造商帶來過大的負(fù)擔(dān)。可信根硬件解決方案(包括基于PLD的解決方案)必須可擴展,也就意味著它能夠保護(hù)服務(wù)器上的所有固件,同時響應(yīng)時間達(dá)到毫微秒 級。它還要能夠使用不可修改的加密模塊,通過加密檢測來確定固件是否遭到篡改。將PFR與服務(wù)器所有組件完整的啟動時序控制功能相結(jié)合,RoT就變得不可繞過。最后,解決方案還應(yīng)能夠自動切換回最近的黃金固件鏡像,以便在發(fā)現(xiàn)當(dāng)前固件被破壞時服務(wù)器可以繼續(xù)運行。
按照定義,基于硬件的RoT器件自然需要在芯片中實現(xiàn)。在此情況下,最常用的芯片平臺即微控制器(MCU)和現(xiàn)場可編程門陣列(FPGA)。在充分考慮到FPGA和MCU的運行特點和特性后,我們發(fā)現(xiàn)FPGA在很大程度上更適用于PFR解決方案
使用MCU實現(xiàn)可信根
MCU過去常在服務(wù)器硬件產(chǎn)品中用于構(gòu)建可信根。簡單來說,就是保留MCU層的一部分為可信執(zhí)行環(huán)境。MCU 的這一部分與芯片的其他區(qū)域保持物理隔離,并持續(xù)監(jiān)控固件,確保其獲得授權(quán)并正常工作。通常來說,服務(wù)器上的PFR功能是通過向現(xiàn)有的硬件架構(gòu)上添加RoTMCU實現(xiàn)的。
MCU通常難以支持驗證服務(wù)器中的多個固件實例。這是因為它無法在沒有外部設(shè)備(如PLD)的幫助下響應(yīng)對服????? 務(wù)器所有固件實例的系統(tǒng)內(nèi)部攻擊(而PLD能實時監(jiān)控SPI存儲器的流量并同步檢測和響應(yīng)入侵行為)。
如圖4所示,使用MCU實現(xiàn)PFR的三個組件為:
? RoTMCU– RoT MCU執(zhí)行檢測、恢復(fù)和保護(hù)功能;它是實現(xiàn)RoT的核心組件。
? 保護(hù)PLD– 通過實時監(jiān)控所有組件處理器與其SPI存儲器設(shè)備之間的活動,大規(guī)模實現(xiàn)PFR,全面保護(hù)電路板。
? 控制PLD– 該器件集成了所有電路板級的上電和復(fù)位時序功能,包括風(fēng)扇控制、SGPIO、I2C緩沖、信號集成和帶外通信等啟動主板必須的功能。RoTMCU命令控制PLD為電路板上電。若需要在極端情況進(jìn)行恢復(fù),RoTMCU則命令控制PLD僅為可信恢復(fù)過程中使用的部分電路板供電。
圖 3:如果需要各組件同時啟動,那么符合PFR標(biāo)準(zhǔn)、使用MCU作為可信根的服務(wù)器還需要額外的組件(FPGA) 來提供必要的高性能;在大規(guī)模的服務(wù)器應(yīng)用場景下,此種解決方案不可擴展
這種基于MCU的PFR方案有諸多限制。例如,圖4電路中使用的控制PLD無法保護(hù)自身固件,也就意味著這種架構(gòu)并非完全符合NIST PFR的要求??刂芇LD的代碼仍有可能被修改,讓RoTMCU失效。還有可能受到永久拒絕服務(wù)攻擊(PDoS),通過刪除這些PLD上的信息,讓系統(tǒng)無法運行,從而使讓服務(wù)器無法啟動。保護(hù)和控制PLD 存在的安全漏洞使得組件在運輸或者系統(tǒng)集成過程中很難防止對固件的攻擊。為了達(dá)到NIST SP 800 193標(biāo)準(zhǔn),RoTMCU必須同時為控制PLD和保護(hù)PLD實現(xiàn)PFR功能。而使用MCU在這些器件上實現(xiàn)恢復(fù)和保護(hù)功能非常困難。最后,基于MCU的方案需要額外的系統(tǒng)級進(jìn)程來檢測試圖繞過整個RoT電路的攻擊行為。
使用FPGA實現(xiàn)可信根
?
Root-of-TrustFPGA
圖 4:RoT FPGA解決方案將RoTMCU、控制PLD和保護(hù)PLD的功能集成在單個芯片上,不僅可靠、易擴展,而且不可繞過。在擁有符合PFR標(biāo)準(zhǔn)的PLD的服務(wù)器上,PLD的性能足以并行監(jiān)測所有組件的固件而無需使用額外的FPGA
基于可信根FPGA的PFR方案的優(yōu)勢
正如其名,可編程邏輯電路(PLD)是一種幾乎可以瞬時實現(xiàn)遠(yuǎn)程重新編程的集成電路,以適應(yīng)不斷變化的場景。PLD可以在硬件層面上改變其電路,因此一旦檢測到未經(jīng)授權(quán)的固件,該固件就無法安裝。
由于PLD被設(shè)計為可重新編程,因此比MCU有更多的I/O接口,這讓它們可以并行運行多個功能而非按順序執(zhí)行。 因此它們在檢測未授權(quán)固件時,識別和響應(yīng)速度更快。
此外,PLD使用了先進(jìn)的仿真軟件,讓工程師得以驗證其PLD設(shè)計的功能。工程師還可以使用這一工具來測試其針對各種固件的網(wǎng)絡(luò)攻擊的設(shè)計是否可以保護(hù)PLD自身。與PLD相比,MCU的固件更新需要更復(fù)雜的測試和驗證,因為MCU不能通過仿真支持功能驗證。相反,MCU固件的任何更新都必須經(jīng)過多次回歸(試錯過程)測試, 以確保新固件不會對MCU中的其他功能產(chǎn)生不良影響;這一過程遠(yuǎn)比運行PLD仿真軟件繁瑣。
當(dāng)我們對比PLD和MCU的特點時,會發(fā)現(xiàn)PLD能提供性能更優(yōu)、更為可靠的平臺實現(xiàn)基于硬件的可信根;它也成為滿足PFR標(biāo)準(zhǔn)的必要器件。
應(yīng)對供應(yīng)鏈攻擊:MCU vs. FPGA PFR解決方案
如果出現(xiàn)固件攻擊,兩種不同類型的PFR系統(tǒng)將采取以下應(yīng)對措施(按照實施順序):
RoT MCU
RoT FPGA
檢測:RoTMCU對所有的SPI存儲器設(shè)備按順序執(zhí)行加密檢測,以檢測是否存在未經(jīng)授權(quán)的固件。 遭受入侵的控制PLD(在供應(yīng)鏈環(huán)節(jié))可以繞過RoTMCU的檢測,讓BMC從受損的鏡像啟動。
檢測:RoT FPGA對所有的SPI存儲器設(shè)備按順序執(zhí)行加密檢測,以檢測是否存在未經(jīng)授權(quán)的固件。FPGA在 其片上非易失性存儲器中記錄故障情況用于之后的分析。RoTFPGA可保護(hù)自身免受來自供應(yīng)鏈環(huán)節(jié)的攻擊。
若檢測到受損的固件,恢復(fù)過程則由管理啟動源SPI存 儲器的保護(hù)PLD,或通過控制或保護(hù)PLD啟動并由RoTMCU監(jiān)控。
基于FPGA的系統(tǒng)將此功能集成到其硬件中。RoT和ControlPLD之間不需要進(jìn)行外部通信。這使得解決方案更加可靠且不再受外部攻擊影響。
服務(wù)器完全啟動后,保護(hù)PLD會主動實時監(jiān)視所有的SPI活動以阻止后續(xù)攻擊,并在檢測到入侵時通知RoT MCU。
最終的解決方案更簡單,完全符合NIST的標(biāo)準(zhǔn)。
PFR開發(fā)套件簡化FPGA可信根方案的實現(xiàn)
萊迪思現(xiàn)提供一款PFR開發(fā)套件,可簡化FPGA RoT解決方案的實現(xiàn)。服務(wù)器組件的原始設(shè)備制造商和系統(tǒng)集成商如今可以快速實現(xiàn)基于FPGA的PFR,滿足上市時間的要求。該套件包括一個軟件功能庫、相關(guān)的IP和3個開發(fā)板,用于實現(xiàn)PFR(包括保護(hù)PLD功能)。用戶可以通過Lattice Diamond軟件工具將電路板控制PLD功能添加到RoTFPGA設(shè)計中。萊迪思PFR開發(fā)套件和開發(fā)板包括:
? 一個RoTFPGA開發(fā)板
? 一塊運行Python腳本的ECP5FPGA板,用于模擬服務(wù)器的BMC。開發(fā)人員可以通過Python腳本執(zhí)行命令來模擬對組件SPI存儲器的攻擊。
? 一個PFR適配卡,用于在SPI存儲器中存儲BMC代碼。在開發(fā)板的RoTFPGA中實現(xiàn)的PFR功能可以保護(hù)PFR適配卡固件免受攻擊(意味著基于FPGA的該解決方案符合NISTPFR標(biāo)準(zhǔn))。
萊迪思套件讓用戶能夠設(shè)計、實現(xiàn)和維護(hù)符合NIST標(biāo)準(zhǔn)的自定義PFR方案,而無需專門的安全專業(yè)知識。
圖 5:Lattice FPGA RoT開發(fā)套件擁有三塊開發(fā)板:RoTFPGA開發(fā)板,用于模擬服務(wù)器BMC的ECP5開發(fā)板和用于存儲模擬BMC固件的SPI閃存板
小結(jié)
對于涉足數(shù)字領(lǐng)域的企業(yè)和組織而言,網(wǎng)絡(luò)安全是個至關(guān)重要的問題。如今黑客會通過攻擊企業(yè)服務(wù)器固件來獲取未經(jīng)授權(quán)訪問服務(wù)器數(shù)據(jù)的權(quán)限,或者直接讓服務(wù)器永久癱瘓。而通過基于FPGA的RoT器件實現(xiàn)的PFR則能有效解決這一難題,提供安全可靠、容易擴展、全套完備的方案,在供應(yīng)鏈的任何環(huán)節(jié)保護(hù)服務(wù)器組件的固件。全新的萊迪思PFR開發(fā)套件為加速和簡化RoT器件的開發(fā)提供了便捷途徑,確保你的服務(wù)器安全無虞。
評論
查看更多