国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      Bios閃存攻擊保護和通知的制作方法

      文檔序號:6496038閱讀:263來源:國知局
      Bios閃存攻擊保護和通知的制作方法
      【專利摘要】提供用于BIOS閃存攻擊保護和通知的系統(tǒng)和方法。處理器初始化模塊(包括初始化固件檢驗?zāi)K)可配置成響應(yīng)加電和/或復(fù)位而首先運行,以及檢驗處理器封裝的非易失性存儲器中存儲的初始化固件。初始化固件配置成檢驗BIOS。如果初始化固件和/或BIOS的檢驗失敗,則系統(tǒng)配置成選擇多個響應(yīng)的至少一個,其中包括但不限于阻止BIOS運行、發(fā)起恢復(fù)、報告檢驗失敗、暫停、關(guān)機和/或允許BIOS運行以及操作系統(tǒng)(OS)在受限功能性模式進行引導(dǎo)。
      【專利說明】BIOS閃存攻擊保護和通知
      【技術(shù)領(lǐng)域】
      [0001]本公開涉及BIOS保護,以及更具體來說,涉及BIOS閃存攻擊保護和通知。
      【背景技術(shù)】
      [0002]計算裝置、個人計算機、工作站和服務(wù)器(以下稱作“計算機”或“多個計算機”)通常包括作為計算機硬件(例如處理器、芯片組、存儲器等)與操作系統(tǒng)(OS)之間的接口的基本輸入和輸出系統(tǒng)(BIOS)。BIOS包括固件和/或軟件代碼,以便初始化和實現(xiàn)計算機的低級硬件服務(wù),例如與計算機主板關(guān)聯(lián)的基本鍵盤、視頻、磁盤驅(qū)動器、輸入/輸出(1/0)端口和芯片組驅(qū)動程序(例如存儲控制器)。
      [0003]通過固件、例如基本輸入/輸出系統(tǒng)(BIOS)對計算機系統(tǒng)的初始化和配置在預(yù)引導(dǎo)階段期間進行。在復(fù)位之后,處理器引用預(yù)定地址,其映射到存儲BIOS固件的非易失性存儲裝置。處理器依次取BIOS指令。這些指令通常使計算機初始化其電子硬件,初始化其外圍裝置,以及引導(dǎo)操作系統(tǒng)。統(tǒng)一可擴展固件接口(UEFI)是一種現(xiàn)代BIOS固件架構(gòu),其包括若干階段,例如安全性階段(SEC)、平臺環(huán)境初始化(PEI)、驅(qū)動程序運行環(huán)境(DXE)階段以及引導(dǎo)裝置選擇(BDS)階段。
      [0004]損害平臺固件的方法不斷被開發(fā)。損害平臺固件使許多工具能夠攻擊系統(tǒng)。與軟件攻擊不同,被損害固件難以檢測,并且恢復(fù)是困難的。被損害固件一般是系統(tǒng)的軟件層(包括大多數(shù)防病毒和間諜軟件工具)不可見的。固件的不可見和持久性質(zhì)使它對于惡意rootkit是理想的。Rootkit是平臺中小巧并且隱匿的惡意鉤子,其獲得運行軟件的最高可能特權(quán)以及最低可見性。其主要功能是發(fā)動攻擊或者向被感染系統(tǒng)上的其它病毒和蠕蟲提供 API。
      [0005]BIOS通常存儲在閃速存儲器中,以便允許可重編程性。編程則可由于波狀因數(shù)和最終用戶便利的原因,在沒有跳線變化的情況下執(zhí)行。此可重編程性引起由未經(jīng)授權(quán)人員和/或惡意軟件進行攻擊的弱點。也可利用BIOS中的弱點。通過訪問系統(tǒng)B10S,可安裝lOOtkit,其經(jīng)過系統(tǒng)重新引導(dǎo)繼續(xù)存在。防病毒軟件可能無法可靠地檢測這種“持久,,rootkit。
      [0006]在一些情況下,BIOS可存儲在真ROM中,從而阻止可重編程性。但是,BIOS更新和其它合法修改可以是必需的,其可以僅通過對系統(tǒng)和R0M(其存儲BIOS)的物理訪問來實現(xiàn)。
      【專利附圖】

      【附圖說明】
      [0007]通過按照要求保護主題的實施例的以下詳細(xì)描述,要求保護主題的特征和優(yōu)點將會顯而易見,其中,應(yīng)該認(rèn)為描述是參照附圖,附圖包括:
      圖1示出按照本公開的各個實施例的系統(tǒng)(計算平臺);
      圖2示出按照本公開的一個實施例、閃速存儲器中存儲的信息的示范存儲布置;
      圖3示出按照本公開、用于檢驗BIOS的示范操作的流程圖; 圖4示出按照本公開、用于檢驗BIOS的示范操作的另一個流程圖;以及 圖5是按照本公開的一個實施例、與從復(fù)位到OS引導(dǎo)的引導(dǎo)過程關(guān)聯(lián)的操作的圖示。
      [0008]雖然以下詳細(xì)描述將參照說明性實施例進行,但是,本領(lǐng)域的技術(shù)人員將會清楚地知道對它們的許多備選、修改和變更方案。
      【具體實施方式】
      [0009]一般來說,本公開提供用于BIOS存儲攻擊保護和通知的系統(tǒng)(和方法)。一種示例系統(tǒng)(計算平臺)包括處理器復(fù)合體(processor complex),其包括處理器以及稱合到處理器的管芯外(off-die)非易失性存儲器。處理器包括處理器初始化模塊,并且可包括易失性和非易失性存儲器。處理器初始化模塊包括初始化固件檢驗?zāi)K,以及處理器復(fù)合體包括初始化固件。初始化固件可通過處理器的指令集架構(gòu)(ISA)來編寫,并且可存儲在管芯外非易失性存儲器中。
      [0010]處理器初始化模塊配置成響應(yīng)復(fù)位而首先來運行,以便執(zhí)行處理器的內(nèi)部初始化。復(fù)位可通過加電和/或模型特定寄存器的狀態(tài)來觸發(fā)。如本文所使用的“復(fù)位”是重啟事件,其中流程控制返回給處理器初始化模塊。復(fù)位包括加電復(fù)位,其中系統(tǒng)的電氣組件在重啟之前使電力被去除。存儲器內(nèi)容可以或者可以不保存以供后續(xù)恢復(fù)。復(fù)位還包括僅CPU復(fù)位,其中對系統(tǒng)的電氣組件保持電力。
      [0011]初始化固件檢驗?zāi)K作為處理器初始化模塊的組成部分配置成檢驗(即,嘗試檢驗或認(rèn)證)初始化固件。處理器初始化模塊和/或初始化固件檢驗?zāi)K可包括處理器易失性和/或非易失性存儲器中存儲的微碼、電路和/或狀態(tài)信息。初始化固件配置成在初始化固件檢驗?zāi)K之后來運行,并且配置成檢驗(即,嘗試檢驗)BIOS。初始化固件可按照處理器ISA或者內(nèi)部格式。如果初始化固件和/或BIOS的檢驗失敗,則系統(tǒng)配置成發(fā)起一個或多個響應(yīng)。響應(yīng)包括但不限于:阻止初始化固件和/或BIOS運行,發(fā)起恢復(fù)(例如使用帶外(00B)通信),使用模型特定寄存器(MSR)報告檢驗失敗,暫停,關(guān)機,和/或?qū)⒂嬎闫脚_配置用于“隔離模式(quarantine mode) ”中的操作,從而允許BIOS運行以及操作系統(tǒng)
      (OS)進行引導(dǎo)。在隔離模式中,可使系統(tǒng)的某種功能性是對BIOS和OS不可用的。
      [0012]有利地,處理器初始化模塊、初始化固件檢驗?zāi)K和初始化固件是處理器封裝的整體部分,并且通常是除了處理器制造商之外的各方不可用的。初始化固件起源和真實性可由處理器復(fù)合體來保證,以及初始化固件可在隔離運行模式(其可包括分區(qū)存儲器)來運行。與UEFI BIOS不同,可以不使內(nèi)部處理器初始化/復(fù)位和固件接口是一般可用的。允許隔離模式中的操作在BIOS檢驗失敗時提供受限操作,而不是完全阻止操作。然后,可將BIOS檢驗失敗傳遞給用戶。例如,可使用例如主板上的物理跳線設(shè)定來本地更新BIOS。在另一個示例中,可通過網(wǎng)絡(luò)、使用與遠程代理的00B通信來更新BIOS。
      [0013]系統(tǒng)架構(gòu)
      圖1示出按照本公開的各個實施例的系統(tǒng)。圖1的系統(tǒng)100可包括處理器復(fù)合體102、系統(tǒng)存儲器(RAM)104(包括OS 150)、平臺控制器集線器(PCH) 106、可信平臺模塊(TPM)108、一個或多個盤驅(qū)動器110、微處理器子系統(tǒng)112、EEPR0M 114和網(wǎng)絡(luò)端口 116。系統(tǒng)100可經(jīng)由網(wǎng)絡(luò)120和網(wǎng)絡(luò)端口 116耦合到遠程代理118。雖然示為獨立塊,但是在一些實施例中,TPM 108可包含在微處理器子系統(tǒng)112中。[0014]作為系統(tǒng)100的一般概述,處理器復(fù)合體102配置成響應(yīng)系統(tǒng)復(fù)位,例如響應(yīng)系統(tǒng)的加電和/或模型特定寄存器(MSR)的狀態(tài),而運行處理器初始化模塊126 (其中包括初始化固件檢驗?zāi)K128),并且可運行初始化固件130。處理器初始化模塊126和初始化固件檢驗?zāi)K128可通過微碼和/或電路來實現(xiàn)。初始化固件檢驗?zāi)K128配置成檢驗初始化固件130,以及初始化固件130配置成檢驗BIOS。初始化固件檢驗?zāi)K128可在管芯上(即,在處理器122管芯上)和/或封裝上(即,在處理器復(fù)合體102中)包含。例如,專用狀態(tài)機和/或嵌入式(從屬)控制器可幫助和/或進行檢驗活動。這類專用狀態(tài)機和/或嵌入式控制器可包含在處理器復(fù)合體102中。例如,初始化固件130可對密碼簽名BIOS執(zhí)行密碼完整性校驗,以便實現(xiàn)經(jīng)檢驗的引導(dǎo)。如果BIOS檢驗失敗,則處理器復(fù)合體102配置成發(fā)起一個或多個響應(yīng)。響應(yīng)包括但不限于限制對一些系統(tǒng)技術(shù)的BIOS(和OS)訪問和/或禁用一些系統(tǒng)技術(shù)(即,隔離模式中的引導(dǎo))、更新模型特定寄存器(例如用于報告)、發(fā)起恢復(fù)(例如經(jīng)由帶外(OOB)功能性)、阻止BIOS的操作、阻止OS的引導(dǎo)、暫停、關(guān)機和/或它們的組合。(一個或多個)特定響應(yīng)可在制造時選擇,和/或可通過更新處理器配置和/或初始化固件來選擇,如本文所述。
      [0015]處理器復(fù)合體102可包括處理器(CPU) 122和管芯外非易失性存儲器124。例如,管芯外非易失性存儲器124可包含在處理器復(fù)合體封裝(其包括處理器122和管芯外非易失性存儲器124)中。在另一個示例中,非易失性存儲器124可包含在例如同一管芯上的處理器122中。處理器122可包括非易失性存儲器123、處理器初始化模塊126、初始化固件檢驗?zāi)K128、pMSR 132和/或eMSR 133。初始化固件檢驗?zāi)K128可包含在處理器初始化模塊126中,或者可以是獨立模塊。處理器初始化模塊126和/或初始化固件檢驗?zāi)K128可包括易失性和/或非易失性存儲器中存儲的微碼、電路和/或狀態(tài)信息。
      [0016]管芯上和/或封裝上的非易失性存儲器可包括多種非易失性存儲器技術(shù),其中包括但不限于其內(nèi)容在制造時設(shè)置的只讀(例如ROM)、工廠可更新(例如熔絲)、和/或現(xiàn)場可更新(例如熔絲、閃存)。例如,處理器非易失性存儲器123可配置成存儲微碼和/或其它持久處理器狀態(tài)信息。管芯外非易失性存儲器124配置成存儲初始化固件130。初始化固件檢驗?zāi)K128和初始化固件130通??捎商幚砥髦圃焐虂砩?,并且在制造過程期間存儲。處理器復(fù)合體102 (其中包括初始化固件檢驗?zāi)K128和初始化固件130)可以是比較安全的,并且一般是惡意軟件進行的攻擊不可訪問的。初始化固件檢驗?zāi)K128(例如包括熔絲和/或可重編程狀態(tài)機)和初始化固件130可使用例如密碼密鑰來安全地更新。
      [0017]處理器非易失性存儲器123的至少一部分可以是經(jīng)由一個或多個模型特定寄存器(MSR) 132、133可訪問的。MSR可配置成訪問和/或控制處理器配置。MSR可包括持久MSR( “pMSR”)132和/或短暫MSR( “eMSR”)133。持久MSR 132配置成跨電力循環(huán)持續(xù)存在,即,可被認(rèn)為是非易失性的。短暫MSR 133配置成僅在系統(tǒng)100被加電和運行時持續(xù)存在,g卩,可被認(rèn)為是易失性的。pMSR 132和eMSR 133均配置成暴露配置策略,以及向第三方報告處理器122狀態(tài)。例如,MSR 132、133可用于開啟或關(guān)閉電源管理功能、報告差錯、報告狀態(tài)和/或開啟或關(guān)閉某些功能性(例如管理程序(hypervisor))。在一些實施例中,eMSR 133可用于報告檢驗失敗。例如,如果BIOS檢驗失敗,則可設(shè)置B10S_VERFICAT10NMSR0有利地,將B10S_VERIFICAT10N MSR配置為短暫MSR 133允許BIOS廠商在計算平臺的操作壽命期間更新BIOS。[0018]一般來說,MSR 132、133可由第三方功能使用讀MSR(例如訪問狀態(tài))或者寫MSR指令(例如改變MSR的內(nèi)容)來訪問。一些MSR 132、133可以是“不可變的”,表示不可變MSR的內(nèi)容不可由第三方帶外或帶內(nèi)處理器ISA代碼運行動作來改變。例如,B10S_VERIFICATION MSR可以是不可變的。惡意軟件可能無法改變不可變MSR的內(nèi)容,使得不可變MSR可提供用于報告例如BIOS的狀態(tài)的比較安全通道。在一個實施例中,MSR 132,133可包括PlatformJJpdate MSR, PlatformJJpdate MSR配置成觸發(fā)初始化固件檢驗?zāi)K128和初始化固件130及其關(guān)聯(lián)檢驗動作的運行。例如,Platform_Update MSR可在隨候選BIOS固件更新而被寫入時觸發(fā)運行。
      [0019]處理器復(fù)合體102配置成響應(yīng)系統(tǒng)100復(fù)位,而運行處理器初始化模塊126,包括初始化固件檢驗?zāi)K128。處理器復(fù)合體102可配置成基于模型特定寄存器、例如Platform_Update MSR,來運行處理器初始化模塊126和初始化固件檢驗?zāi)K128。初始化固件檢驗?zāi)K128配置成檢驗初始化固件130,如本文所述。如果初始化固件130的檢驗失敗,則初始化固件檢驗?zāi)K128可配置成發(fā)起一個或多個響應(yīng),如本文所述。例如,處理器初始化模塊126和初始化固件檢驗?zāi)K128可包括易失性和/或非易失性存儲裝置中存儲的微碼、電路和/或狀態(tài)信息。如果初始化固件130的檢驗成功,則處理器復(fù)合體102配置成運行初始化固件130。這樣,可在檢驗BIOS之前檢查(檢驗)初始化固件。本文所述的方法和系統(tǒng)配置成建立信任鏈,其根源于處理器初始化模塊126和初始化固件檢驗?zāi)K128中,然后擴展到初始化固件130,并且然后擴展到BIOS 134。
      [0020]EEPROM 114配置成存儲BIOS 134、固件接口表(FIT) 136和可管理性引擎(ME)固件138。EEPROM 114是可重編程的,從而允許對BIOS 134的更新。BIOS 134可經(jīng)由例如微處理器子系統(tǒng)112和可管理性引擎固件138耦合到網(wǎng)絡(luò)120,從而允許遠程編程。例如,EEPROM 114可以是閃速存儲器,其配置成本地或遠程重編程。例如,閃速存儲器可以是“或非”類型閃速存儲器。“或非”閃速存儲器通常是字節(jié)可寫、塊可擦、小于“與非”類型閃速存儲器(例如用于“或非”的I兆字節(jié)至16兆字節(jié)對用于“與非”的千兆字節(jié)),并且通常用于原處運行(execute-1n-place)代碼。EEPROM 114可以是另一種類型的可重編程非易失性存儲裝置,其中包括但不限于基于電阻和/或基于電荷的存儲器(例如鐵氧體磁芯存儲器)、相變存儲器(PCM)、基于磁的存儲器(MRAM)、基于碳納米管的非易失性存儲器技術(shù)等。這類技術(shù)在它們是可重編程時可稱作“非易失性RAM”或者“NVRAM”,并且可包括一次性寫入存儲裝置,例如熔絲/熔絲陣列。雖然本文中論述“或非”閃存和閃速存儲器,但是按照本公開,可采用其它非易失性存儲器技術(shù)。所使用的特定存儲器技術(shù)可取決于系統(tǒng)要求,并且是設(shè)計選擇。
      [0021]圖2示出用于閃速存儲器114中存儲的信息的示范存儲布置200。閃存可包括BIOS初始化模塊202、B10S 204和其它固件206。BIOS初始化模塊202可包括處理器復(fù)位向量208、FIT指針210和FIT結(jié)構(gòu)212。FIT結(jié)構(gòu)212可包括FIT結(jié)束標(biāo)記214、BIOS初始化模塊指針216、檢驗證書218和/或FIT報頭220。圖2的FIT結(jié)構(gòu)212對應(yīng)于圖1的FIT 136,以及圖2的BIOS 204對應(yīng)于圖1的BIOS 134。
      [0022]FIT 136配置成提供到閃速存儲器114中存儲的固件(其中包括BIOS 134)的接口(例如指針)。如果FIT 136為空或者為零(nullified),則處理器自舉可配置成回復(fù)到缺省處理器自舉或復(fù)位向量地址。如果FIT 136不為空,則它可包含配置成描述可運行代碼和/或數(shù)據(jù)的多種記錄。這類記錄可包含指針和其它元數(shù)據(jù),例如到閃速存儲器中將要運行的的代碼/數(shù)據(jù)塊的指針,代替或者補充缺省復(fù)位向量地址。FIT 136或者相似機制配置成允許功能性的備選指定和/或加載,代替或者補充使用處理器的缺省復(fù)位向量208所實現(xiàn)的缺省行為。這個配置對系統(tǒng)定制和加補丁目的可以是有用的。初始化固件130可使用FIT結(jié)構(gòu)212中的指針(例如BIOS初始化模型指針216)來確定閃存114中的BIOS 134的位置。在一些實施例中,初始化固件130可使用其它技術(shù)、例如搜索閃存114和/或平臺跨接(strapping)選項,以便確定BIOS 134的位置。
      [0023]BIOS 134配置成初始化和測試硬件,以及加載OS 150??芍鼐幊绦栽试SBIOS 134被更新(無需更換EEPROM 114),但是也提供惡意程序進行攻擊的途徑。惡意程序(其可損害BIOS 134)通常以較高特權(quán)等級運行,因此難以通過常規(guī)防惡意軟件程序來檢測。有利地,按照本公開的初始化固件檢驗?zāi)K128和初始化固件130配置成在處理器122取和/或運行BIOS 134代碼之前運行,并且因此可在其運行之前檢測被損害BIOS。如果BIOS134被損害(即,檢驗失敗),則初始化固件130配置成發(fā)起一個或多個響應(yīng),如本文所述。例如,響應(yīng)檢測到被損害系統(tǒng),備選FIT條目可配置成指向EEPROM 114中的存儲結(jié)構(gòu)200中的恢復(fù)BIOS塊。在另一個示例中,EEPROM 114可包括EEPROM 114的獨立區(qū)域(或者另一個不同的EEPR0M)中存儲的BIOS 134的副本,其可響應(yīng)檢測到被損害系統(tǒng)而被訪問(解碼)。換言之,系統(tǒng)100可包括“備份”B10S,其配置成在BIOS 134的檢驗失敗時被運行。備份BIOS可存儲在EEPROM 114和/或另一個EEPROM中。
      [0024]再次來看圖1,微處理器子系統(tǒng)112可包括嵌入式微處理器140、高速緩沖存儲器142和非易失性存儲器(ROM) 144。微處理器子系統(tǒng)112配置成運行閃速存儲器114中存儲的可管理性引擎固件138。在這個實施例中,微處理器子系統(tǒng)112經(jīng)由平臺控制器集線器(PCH) 106耦合到處理器復(fù)合體102,以及經(jīng)由網(wǎng)絡(luò)端口 116耦合到網(wǎng)絡(luò)120和遠程代理118。微處理器子系統(tǒng)112配置成提供帶外通信。帶外通信可在微處理器子系統(tǒng)112與處理器復(fù)合體102之間和/或在系統(tǒng)100與遠程代理118之間進行。例如,如果BIOS 134的檢驗失敗,則微處理器子系統(tǒng)112 (和可管理性引擎固件138)可配置成與遠程代理118進行00B通信,以便從遠程代理118來取回已更新、經(jīng)檢驗的BIOS。有利地,這可允許遠程更新和/或認(rèn)證閃速存儲器中存儲的BIOS (其已經(jīng)被攻擊),而無需對閃速存儲器114的實際現(xiàn)場物理訪問。
      [0025]因此,響應(yīng)復(fù)位(例如與加電關(guān)聯(lián),和/或基于模型特定寄存器的狀態(tài)),系統(tǒng)100配置成運行處理器初始化模塊126,以便執(zhí)行初始化序列(即,處理器122初始化階段),以及初始化固件檢驗?zāi)K128配置成檢驗處理器復(fù)合體102中包含的初始化固件130。系統(tǒng)100還配置成運行初始化固件130,以檢驗BIOS 134。如果初始化固件130和/或BIOS134的檢驗失敗,則系統(tǒng)100還配置成發(fā)起一個或多個響應(yīng),其中包括但不限于將系統(tǒng)(計算平臺)配置成在具有受限功能性的隔離模式中進行引導(dǎo)、發(fā)起恢復(fù)過程(例如經(jīng)由00B功能性)、使用一個或多個MSR來報告檢驗狀態(tài)、阻止初始化固件和/或BIOS運行、關(guān)機和/或停止處理器。有利地,與BIOS 134不同,處理器復(fù)合體102中包含的處理器初始化模塊126、初始化固件檢驗?zāi)K128和初始化固件130是相對不可訪問的(例如,它們是管芯上的或者在處理器封裝襯底上),并且一般沒有包括所發(fā)布接口協(xié)議。處理器初始化模塊126、初始化固件檢驗?zāi)K128、初始化固件130和處理器復(fù)合體102的這個配置提供“信任根”,由其可檢驗BIOS 134。
      [0026]示范方法
      圖3示出按照本公開、用于檢驗(認(rèn)證)B10S的示范操作的流程圖300。本實施例中所示的操作可由與系統(tǒng)100關(guān)聯(lián)的電路、固件和/或軟件模塊(例如包括CPU 122的處理器復(fù)合體102)來執(zhí)行。過程流程可開始于操作305。操作305包括復(fù)位,例如加電復(fù)位或者僅CPU復(fù)位。操作310包括運行處理器初始化模塊。操作310包括運行初始化固件檢驗?zāi)K,并且可包括與加電關(guān)聯(lián)的其它處理器活動。初始化固件是否得到檢驗(即,通過檢驗)可在操作315來確定。
      [0027]如果初始化固件得到檢驗,則初始化固件可在操作330來運行。BIOS是否得到檢驗可在操作335來確定。如果BIOS得到檢驗,則可在操作340啟用全系統(tǒng)引導(dǎo)。例如,檢驗可包括沿缺省復(fù)位向量路徑或者備選FIT指定路徑或模塊的一個或多個BIOS元件。全系統(tǒng)引導(dǎo)表示所有系統(tǒng)功能性可以是對BIOS和OS可用的。操作345可包括將控制傳遞給BIOS。例如,初始化固件130可將系統(tǒng)100的控制傳遞給BIOS 134。操作350可包括引導(dǎo)系統(tǒng),引導(dǎo)系統(tǒng)包括初始化系統(tǒng)硬件和加載OS。
      [0028]如果初始化固件沒有得到檢驗(S卩,未通過檢驗)和/或BIOS沒有得到檢驗(SP,未通過檢驗),則可在操作355發(fā)起一個或多個響應(yīng)。如果初始化固件未通過檢驗,則初始化固件檢驗?zāi)K128可配置成選擇和發(fā)起這些響應(yīng)。如果BIOS未通過檢驗,則初始化固件130可配置成選擇和發(fā)起這些響應(yīng)。響應(yīng)可包括操作360、365、370 (和375)、380、385、390和395中的一個或多個。操作380包括暫停。例如,可在操作380暫停處理器122。操作385包括阻止初始化固件和/或BIOS的運行。系統(tǒng)(例如系統(tǒng)100)可在操作395關(guān)機。
      [0029]操作360包括在隔離模式(即,受約束或受限操作模式)中引導(dǎo)系統(tǒng)。在隔離模式中,可禁用一些系統(tǒng)功能性和/或?qū)σ恍┫到y(tǒng)組件的訪問。當(dāng)初始化固件和/或BIOS未通過檢驗時,隔離模式配置成允許受限系統(tǒng)功能性。例如,可禁用“較高”系統(tǒng)功能、例如管理程序。操作365包括更新模型特定寄存器(MSR)。模型特定寄存器的更新可配置成傳遞初始化固件和/或BIOS檢驗失敗。模型特定寄存器可以是不可變的,使得它不可由第三方來改變,從而提供比較安全的報告方法。例如,可更新MSR以傳遞失敗,而無需傳遞失敗情形的細(xì)節(jié)。這個受限報告配置成阻止攻擊者使用失敗情形的細(xì)節(jié)來損害檢測功能性。
      [0030]可在操作370發(fā)起恢復(fù)過程。操作370可包括保持配置成允許初始重試的交叉復(fù)位狀態(tài),其中初始重試包括復(fù)位、翻轉(zhuǎn)到初始化固件和/或BIOS的備份副本、回退到初始化固件和/或BIOS的先前鏡像,和/或更新初始化固件和/或BIOS。初始化固件的備份副本是否存在可取決于與非易失性存儲器關(guān)聯(lián)的性質(zhì)。操作370中的重試次數(shù)可受到限制。例如,可實現(xiàn)計數(shù)器,其配置成在重試次數(shù)達到預(yù)定值時,觸發(fā)從恢復(fù)過程的退出。在另一個示例中,翻轉(zhuǎn)或回退可引起持久狀態(tài)的修改,使得后續(xù)重試可觸發(fā)從恢復(fù)過程的退出。初始化固件和/或BIOS可使用安全(即,密碼)技術(shù)來更新。
      [0031]操作370可包括經(jīng)由帶外(00B)通信來更新初始化固件和/或BIOS。例如,圖1的微處理器子系統(tǒng)112可配置成通過網(wǎng)絡(luò)120、經(jīng)由00B通信與遠程代理118進行通信,以便取回已更新、未損害BIOS。例如,已更新BIOS可具有比失敗BIOS要高的無變化修訂版(例如以便避免對先前可能的錯誤BIOS的回退攻擊)。微處理器子系統(tǒng)112還可配置成以所取回BIOS對閃速存儲器114重新編程。然后可在操作375發(fā)起復(fù)位。[0032]操作390可包括實現(xiàn)時間延遲。例如,時間延遲可插入響應(yīng)之間。在另一個示例中,時間延遲可插入操作370的重試之間。(一個或多個)時間延遲配置成降低攻擊速率以及可將攻擊評估為成功或失敗的速率。
      [0033]通過操作360、365、370、375、380、385、390和395所述的響應(yīng)可單獨地或者組合地執(zhí)行。特定響應(yīng)可被預(yù)先確定并且存儲在例如管芯外非易失性存儲器124中。例如,響應(yīng)可在各種時間并且使用各種方法來選擇,其中包括但不限于在制造時、在初始操作時、通過跳線、通過特殊保護用戶初始設(shè)置和/或通過更新初始化固件檢驗?zāi)K和/或初始化固件。
      [0034]因此,如流程圖300所示,處理器初始化模塊和初始化固件檢驗?zāi)K可配置成在初始化固件和BIOS之前運行,以便檢驗初始化固件和BIOS。如果初始化固件和/或BIOS未通過檢驗,則可發(fā)起一個或多個響應(yīng)。有利地,一些響應(yīng)配置成允許系統(tǒng)、例如系統(tǒng)100工作在隔離模式中,更新初始化固件和/或BIOS,和/或傳遞初始化固件和/或BIOS檢驗失敗。相應(yīng)地,對BIOS檢驗失敗的響應(yīng)并不局限于停止系統(tǒng)100。
      [0035]圖4示出按照本公開、用于檢驗BIOS的示范操作的另一個流程圖400。本實施例中所示的操作可由與系統(tǒng)100關(guān)聯(lián)的電路、固件和/或軟件模塊(例如包括CPU 122的處理器復(fù)合體102)來執(zhí)行。圖4中,與檢驗BIOS關(guān)聯(lián)的操作包含在初始化ROM 402 (其對應(yīng)于圖1的初始化ROM 127)中,以及與BIOS關(guān)聯(lián)的操作包含在UEFI (BIOS)固件404 (其對應(yīng)于BIOS 134)中。
      [0036]程序流程可開始于操作405。操作405可響應(yīng)系統(tǒng)復(fù)位而執(zhí)行。操作405可包括處理器初始化模塊(其中包括初始化固件檢驗?zāi)K及其初始化固件的檢驗)的運行以及初始化固件的運行。如果初始化固件檢驗?zāi)K成功地檢驗初始化固件,則處理器可開始初始化固件的運行。操作405可以可選地包括初始化基本存儲器功能(例如建立系統(tǒng)存儲器),和/或初始化其它系統(tǒng)元件、例如互連結(jié)構(gòu)??焖俾窂浇涌谑腔ミB結(jié)構(gòu)的一個示例,其可配置成將處理器子系統(tǒng)與平臺控制器集線器和/或微處理器子系統(tǒng)互連。操作410包括確定在閃速存儲器中是否存在具有簽名清單(manifest)的固件接口表(FIT)和OEM BIOS塊。例如,在包括TPM 108的系統(tǒng)中,操作410可包括通過將清單的散列(hash)與TPM 108的NV數(shù)據(jù)寄存器中的所存儲散列值進行比較,來確認(rèn)簽名清單的完整性。
      [0037]如果閃速存儲器中不存在具有簽名清單的固件接口表(FIT)或者不存在OEMBIOS塊,則可執(zhí)行操作415。操作415包括設(shè)置不可變模型特定寄存器(N0T_SIGNED_MSR)和/或暫停處理器子系統(tǒng)。如果在閃速存儲器中存在具有簽名清單的FIT和OEM BIOS塊,則可執(zhí)行操作420。操作420包括讀取簽名清單和關(guān)聯(lián)OEM UEFI BIOS固件卷。操作420還可包括向遠程證書授權(quán)中心(certificate authority, CA)檢驗簽名清單(數(shù)字簽名)。例如,檢驗簽名清單可使用微處理器子系統(tǒng)112和可管理性引擎固件138來00B執(zhí)行。
      [0038]可在操作425確定數(shù)字簽名是否匹配、關(guān)聯(lián)公開密鑰是否尚未撤消并且沒有到期以及IN_UPDATE_MSR模型特定寄存器是否為“假(FALSE)”。如果不是,則可在操作430讀取FIT中的下一個條目??稍诓僮?35確定FIT條目是否已經(jīng)窮盡。如果FIT條目已經(jīng)窮盡(即,F(xiàn)IT中沒有未測試條目),則可執(zhí)行操作415。如果數(shù)字簽名匹配、關(guān)聯(lián)公開密鑰尚未撤消并且沒有到期以及IN_UPDATE_MSR模型特定寄存器為“假”,則可在操作440啟用全引導(dǎo)。全引導(dǎo)可包括啟用高級技術(shù)和其它硬件能力。
      [0039]操作445可包括將控制傳遞給UEFI BIOS固件,其可包括安全性階段(SEC)、平臺環(huán)境初始化階段(PEI)和/或驅(qū)動程序運行環(huán)境(DXE)??稍诓僮?50確定是否存在UEFI固件更新。如果存在UEFI固件更新,則可在操作455使用UEFI固件驗證來認(rèn)證更新。操作460包括設(shè)置模型特定寄存器IN_UPDATE_MSE,更新閃速存儲器中的UEFI固件,并且清除模型特定寄存器IN_UPDATE_MSR。然后可在操作465發(fā)起復(fù)位。如果不存在UEFI固件更新,則UEFI BIOS固件可在操作470完成引導(dǎo)。
      [0040]圖5是與從復(fù)位到OS引導(dǎo)的引導(dǎo)過程500關(guān)聯(lián)的操作的圖示。圖5的引導(dǎo)過程500對應(yīng)于BIOS固件的成功檢驗,如本文所述。過程500可包括兩個階段(階段I和階段2)以及多個子階段。過程500可隨復(fù)位(例如加電或者僅CPU)502而發(fā)起。響應(yīng)復(fù)位,處理器初始化模塊(包括初始化固件檢驗?zāi)K)可在子階段504期間如本文所述來運行。初始化固件檢驗?zāi)K可配置成定位FIT,以及認(rèn)證初始化固件,如本文所述。初始化固件則可在子階段506期間、如本文所述來檢驗OEM BIOS,和/或啟用互連結(jié)構(gòu)(例如QPI)和系統(tǒng)存儲器。子階段504和子階段506包含在階段I中。階段I的操作可由處理器初始化模塊和初始化固件來執(zhí)行,并且因此可以是比較安全的。UEFI BIOS固件則可在子階段508期間初始化平臺(例如系統(tǒng)100),其中包括SEC、PEI和DXE。SEC建立暫時存儲器存儲庫,其中包括但不限于使用處理器的高速緩存作為RAM(CAR),以便運行PEI核心和PEI模塊。當(dāng)DXE開始時,初始化存儲器應(yīng)當(dāng)是可用的。DXE可包括PC1、H、USB、I/0、遺留BIOS、SMBIOS和/或ACPI。該過程可結(jié)束于子階段510、即引導(dǎo)裝置選擇,其對應(yīng)于發(fā)起操作系統(tǒng)的引導(dǎo)。子階段508和子階段510包含在階段2中。階段I包括初始化固件檢驗和BIOS檢驗。階段2包括經(jīng)檢驗的UEFI BIOS固件和引導(dǎo)裝置選擇的啟動和運行。
      [0041]一般來說,本公開提供用于BIOS存儲攻擊保護和通知的系統(tǒng)(和方法)。一個示例系統(tǒng)包括處理器初始化模塊,其可包括處理器非易失性存儲器中存儲的處理器控制和/或數(shù)據(jù)狀態(tài)以及耦合到處理器的處理器封裝中的非易失性存儲器中存儲的初始化固件。處理器初始化模塊(包括初始化固件檢驗?zāi)K)配置成響應(yīng)復(fù)位而首先運行,以及初始化固件檢驗?zāi)K配置成檢驗初始化固件。初始化固件配置成在由初始化固件檢驗?zāi)K進行檢驗之后運行,并且又配置成檢驗BIOS。如果初始化固件和/或BIOS的檢驗失敗,則系統(tǒng)配置成執(zhí)行下列步驟的至少一個:阻止初始化固件和/或BIOS運行,發(fā)起恢復(fù)(例如使用帶外(00B)通信),使用模型特定寄存器(MSR)報告檢驗失敗,暫停處理器,關(guān)機,和/或允許BIOS運行以及操作系統(tǒng)(OS)在受限功能性(“隔離”)模式中進行引導(dǎo)。在隔離模式中,可使系統(tǒng)的某種功能性是對BIOS和OS不可用的。
      [0042]如本文的任何實施例所使用的“電路”可包括例如單一或者任何組合的硬連線電路、可編程電路、狀態(tài)機電路、嵌入式控制器和/或固件(其存儲由可編程電路運行的指令)。
      [0043]OS 150可包括任何通用或定制操作系統(tǒng)。例如,OS 150可使用MicrosoftWindows、HP-UX、Linux或UNIX和/或其它通用操作系統(tǒng)來實現(xiàn)。
      [0044]雖然圖3、圖4和圖5示出按照各個實施例的方法,但是要理解,在任何實施例中,并非所有這些操作都是必需的。實際上,本文中完全預(yù)期,在本公開的其它實施例中,圖3、圖4和/或圖5所示的操作可按照附圖的任一個中未具體示出的方式相結(jié)合,但是仍然完全符合本公開。因此,針對一個附圖中沒有完全示出的特征和/或操作的權(quán)利要求被認(rèn)為處于本公開的范圍和內(nèi)容之內(nèi)。[0045]本文所述的實施例可使用硬件、軟件和/或固件來實現(xiàn),例如以便執(zhí)行本文所述的方法和/或操作。本文所述的某些實施例可作為存儲機器可執(zhí)行指令的有形機器可讀介質(zhì)來提供,其中機器可運行指令在由機器運行時,使機器執(zhí)行本文所述的方法和/或操作。有形機器可讀介質(zhì)可包括但不限于:任何類型的盤,包括軟盤、光盤、致密光盤只讀存儲器(CD-ROM)、可重寫致密光盤(CD-RW)和磁光盤;半導(dǎo)體器件,例如只讀存儲器(ROM)、諸如動態(tài)隨機存取存儲器(RAM)和靜態(tài)RAM之類的RAM、可擦可編程只讀存儲器(EPROM)、電可擦可編程只讀存儲器(EEPROM)、閃速存儲器、磁卡或光卡;或者適合于存儲電子指令的任何類型的有形介質(zhì)。機器可包括任何適當(dāng)?shù)奶幚砥脚_、裝置或系統(tǒng)、計算平臺、裝置或系統(tǒng),并且可使用硬件和/或軟件的任何適當(dāng)組合來實現(xiàn)。指令可包括任何適當(dāng)類型的代碼,并且可使用任何適當(dāng)?shù)木幊陶Z言來實現(xiàn)。
      [0046]因此,在一個實施例中,本公開提供用于檢驗計算平臺的基本輸入/輸出系統(tǒng)(BIOS)的方法。該方法包括:響應(yīng)復(fù)位而運行處理器初始化模塊,其中處理器初始化模塊包含在計算平臺中的處理器中,并且處理器初始化模塊包括初始化固件檢驗?zāi)K;嘗試使用初始化固件檢驗?zāi)K來檢驗計算平臺中的處理器封裝中的非易失性存儲器中存儲的初始化固件;嘗試使用初始化固件來檢驗BIOS,其中BIOS包含在可重編程非易失性存儲器中;以及如果初始化固件和BIOS中的至少一個未通過檢驗,則發(fā)起至少一個響應(yīng)。
      [0047]在另一個實施例中,本公開提供計算平臺。計算平臺包括處理器封裝,其中包括:處理器,包括處理器初始化模塊,其中處理器初始化模塊包括初始化固件檢驗?zāi)K;以及管芯外非易失性存儲器,其中存儲了初始化固件。計算平臺還包括可重編程非易失性存儲器,其中存儲了基本輸入/輸出系統(tǒng)(BIOS)固件。處理器配置成:響應(yīng)計算平臺的復(fù)位而運行處理器初始化模塊,嘗試使用初始化固件檢驗?zāi)K來檢驗初始化固件,嘗試使用初始化固件來檢驗BIOS固件,以及如果初始化固件和BIOS固件中的至少一個未通過檢驗,則發(fā)起至少一個響應(yīng)。
      [0048]在另一個實施例中,本公開提供包括其上存儲的指令的有形計算機可讀介質(zhì),指令在由一個或多個處理器來運行時,使一個或多個處理器執(zhí)行包括響應(yīng)復(fù)位而運行處理器初始化模塊的操作,其中處理器初始化模塊包含在計算平臺的處理器中,并且處理器初始化模塊包括初始化固件檢驗?zāi)K;嘗試使用初始化固件檢驗?zāi)K來檢驗計算平臺的處理器封裝的非易失性存儲器中存儲的初始化固件;嘗試使用初始化固件來檢驗B10S,其中BIOS包含在可重編程非易失性存儲器中;以及如果初始化固件和BIOS中的至少一個未通過檢驗,則發(fā)起至少一個響應(yīng)。
      [0049]本文采用的術(shù)語和表達用作描述而非限制性方面,并且在使用這類術(shù)語和表達時,不是要排除所示和所述特征的任何等效方案(或者它們的一部分),并且要知道,在權(quán)利要求書的范圍之內(nèi),各種修改是可能的。因此,權(quán)利要求書意在涵蓋所有這類等效方案。
      [0050]本文描述了各種特征、方面和實施例。特征、方面和實施例容許相互結(jié)合以及變更和修改,如本領(lǐng)域的技術(shù)人員將會理解。因此,本公開應(yīng)當(dāng)被認(rèn)為包含這類組合、變更和修改。
      【權(quán)利要求】
      1.一種用于檢驗計算平臺的基本輸入/輸出系統(tǒng)(BIOS)的方法,所述方法包括: 響應(yīng)復(fù)位而運行處理器初始化模塊,其中所述處理器初始化模塊包含在所述計算平臺中的處理器中,并且所述處理器初始化模塊包括初始化固件檢驗?zāi)K; 嘗試使用所述初始化固件檢驗?zāi)K來檢驗所述計算平臺中的處理器封裝中的非易失性存儲器中存儲的初始化固件; 嘗試使用所述初始化固件來檢驗所述BIOS,其中所述BIOS包含在可重編程非易失性存儲器中;以及 如果所述初始化固件和所述BIOS中的至少一個未通過檢驗,則發(fā)起至少一個響應(yīng)。
      2.如權(quán)利要求1所述的方法,還包括將所述計算平臺的控制傳遞給所述BIOS,其中所述至少一個響應(yīng)包括將所述計算平臺配置用于具有受限平臺功能性的隔離模式中的操作。
      3.如權(quán)利要求1所述的方法,其中,所述至少一個響應(yīng)從包括以下項的多個響應(yīng)來選取:阻止所述初始化固件運行、阻止所述BIOS運行、發(fā)起恢復(fù)、使用模型特定寄存器來報告所述檢驗失敗、暫停所述處理器、將所述計算平臺關(guān)機以及將所述計算平臺配置用于具有受限平臺功能性的隔離模式中的操作。
      4.如權(quán)利要求1所述的方法,還包括響應(yīng)所述初始化固件的檢驗失敗,而更新所述初始化固件。
      5.如權(quán)利要求1所述的方法,其中,所述至少一個響應(yīng)包括通過網(wǎng)絡(luò)、使用帶外通信、經(jīng)由所述計算平臺的微處理器子系統(tǒng)來更新所述BIOS。
      6.如權(quán)利要求1所述的方法,還包括響應(yīng)將候選BIOS固件更新寫到模型特定寄存器,而觸發(fā)所述初始化固件檢驗?zāi)K和所述初始化固件的運行。`
      7.一種計算平臺,包括: 處理器封裝,包括: 處理器,包括處理器初始化模塊,其中所述處理器初始化模塊包括初始化固件檢驗?zāi)K,以及 管芯外非易失性存儲器,其中存儲了初始化固件;以及 可重編程非易失性存儲器,其中存儲了基本輸入/輸出系統(tǒng)(BIOS)固件; 所述處理器配置成: 響應(yīng)所述計算平臺的復(fù)位而運行所述處理器初始化模塊, 嘗試使用所述初始化固件檢驗?zāi)K來檢驗所述初始化固件, 嘗試使用所述初始化固件來檢驗所述BIOS,以及 如果所述初始化固件和所述BIOS固件中的至少一個未通過檢驗,則發(fā)起至少一個響應(yīng)。
      8.如權(quán)利要求7所述的計算平臺,其中,所述處理器還配置成將所述計算平臺的控制傳遞給所述BIOS,以及所述至少一個響應(yīng)包括將所述計算平臺配置用于具有受限平臺功能性的隔離模式中的操作。
      9.如權(quán)利要求7所述的計算平臺,其中,所述至少一個響應(yīng)從具有以下項的多個響應(yīng)來選取:阻止所述初始化固件運行、阻止所述BIOS運行、發(fā)起恢復(fù)、使用模型特定寄存器來報告所述檢驗失敗、暫停所述處理器、將所述計算平臺關(guān)機以及將所述計算平臺配置用于具有受限平臺功能性的隔離模式中的操作。
      10.如權(quán)利要求7所述的計算平臺,其中,所述處理器還配置成響應(yīng)所述初始化固件的檢驗失敗而更新所述初始化固件。
      11.如權(quán)利要求7所述的計算平臺,還包括配置成通過網(wǎng)絡(luò)、使用帶外通信來更新所述BIOS固件的微處理器子系統(tǒng)。
      12.如權(quán)利要求7所述的計算平臺,還包括模型特定寄存器,其中所述處理器配置成響應(yīng)候選BIOS固件被寫到模型特定寄存器,而運行所述初始化固件檢驗?zāi)K和所述初始化固件。
      13.—種包括其上存儲的指令的有形計算機可讀介質(zhì),所述指令在由一個或多個處理器來運行時,使所述一個或多個處理器執(zhí)行包括下列步驟的操作: 響應(yīng)復(fù)位而運行處理器初始化模塊,其中所述處理器初始化模塊配置成包含在所述計算平臺中的處理器中,并且所述處理器初始化模塊包括初始化固件檢驗?zāi)K; 嘗試使用所述初始化固件檢驗?zāi)K來檢驗配置成存儲在所述計算平臺中的處理器封裝中的非易失性存儲器中的初始化固件; 嘗試使用所述初始化固件來檢驗所述BIOS,其中所述BIOS配置成包含在可重編程非易失性存儲器中;以及 如果所述初始化固件和所述BIOS中的至少一個未通過檢驗,則發(fā)起至少一個響應(yīng)。
      14.如權(quán)利要求13所述的計算機可讀介質(zhì),其中,所述操作還包括將所述計算平臺的控制傳遞給所述BIOS,其中所述至少一個響應(yīng)包括將所述計算平臺配置用于具有受限平臺功能性的隔離模式中的操作。
      15.如權(quán)利要求13所述·的計算機可讀介質(zhì),其中,所述至少一個響應(yīng)從包括以下項的多個響應(yīng)來選取:阻止所述初始化固件運行、阻止所述BIOS運行、發(fā)起恢復(fù)、使用模型特定寄存器來報告所述檢驗失敗、暫停所述處理器、將所述計算平臺關(guān)機以及將所述計算平臺配置用于具有受限平臺功能性的隔離模式中的操作。
      16.如權(quán)利要求13所述的計算機可讀介質(zhì),其中,所述操作還包括響應(yīng)所述初始化固件的檢驗失敗而更新所述初始化固件。
      17.如權(quán)利要求13所述的計算機可讀介質(zhì),其中,所述至少一個響應(yīng)包括通過網(wǎng)絡(luò)、使用帶外通信、經(jīng)由所述計算平臺的微處理器子系統(tǒng)來更新所述BIOS。
      18.如權(quán)利要求13所述的計算機可讀介質(zhì),其中,所述操作還包括響應(yīng)將候選BIOS固件更新寫到模型特定寄存器,而觸發(fā)所述初始化固件檢驗?zāi)K和所述初始化固件的運行。
      【文檔編號】G06F12/14GK103718165SQ201280037871
      【公開日】2014年4月9日 申請日期:2012年7月5日 優(yōu)先權(quán)日:2011年7月7日
      【發(fā)明者】J.P.赫德, S.H.羅賓森, V.J.茲梅 申請人:英特爾公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1