大部分人只注意到Windows 10是一個(gè)免費(fèi)更新的系統(tǒng)以及開(kāi)始菜單又再次出現(xiàn)在新的Windows系統(tǒng)中,但卻沒(méi)有注意到該版本已經(jīng)開(kāi)始支持微軟所推行的可信平臺(tái)模塊(Trusted Platform Modules,簡(jiǎn)稱TPM)2.0的安全啟動(dòng)功能。目前,Windows 10對(duì)于安裝的硬件沒(méi)有什么特殊的要求,但是一年之后,所有安裝Windows 10的新設(shè)備都將被強(qiáng)制要求配備TPM 2.0加密芯片,并激活安全啟動(dòng)功能。
通過(guò)微軟所謂的“測(cè)量啟動(dòng)”(Measured Boot)機(jī)制,可以利用TPM芯片檢測(cè)各組件的完整性,可以有效地防范惡意軟件在系統(tǒng)運(yùn)行之前加載,能夠確保新的Windows系統(tǒng)比以往的任何版本更安全。但是,在微軟Windows認(rèn)證強(qiáng)制激活安全啟動(dòng)功能的同時(shí),并沒(méi)有強(qiáng)制要求安全啟動(dòng)功能是可以被禁止的,這有可能會(huì)導(dǎo)致平行安裝的其他系統(tǒng)以及閃存盤、光盤啟動(dòng)電腦時(shí)出現(xiàn)問(wèn)題。
“測(cè)量啟動(dòng)”的基本問(wèn)題是明確的,首先,設(shè)備啟動(dòng)時(shí)將變得更加安全,以Windows 10為例,使用它的智能手機(jī)、平板電腦和電腦都能夠從中獲益。以往,由于防病毒軟件以及其他相關(guān)的安全工具是運(yùn)行在操作系統(tǒng)中的,所以在設(shè)備啟動(dòng)的階段這些安全工具是無(wú)法發(fā)揮作用的。此時(shí),如果攻擊者能夠設(shè)法在Windows運(yùn)行之前加載攻擊程序,那么他們將可以完全控制系統(tǒng)。由于攻擊程序在系統(tǒng)和安全工具之前運(yùn)行,所以它們完全可以設(shè)法阻止安全工具運(yùn)行,或者將自己隱藏起來(lái)。
在Windows 8中微軟已經(jīng)開(kāi)始提高啟動(dòng)的安全性,一個(gè)重要的里程碑是UEFI 2.3.1版本的固件和安全啟動(dòng)功能。UEFI固件的優(yōu)點(diǎn)是不能夠通過(guò)系統(tǒng)中運(yùn)行的軟件對(duì)系統(tǒng)進(jìn)行修改,并且通過(guò)UEFI固件的安全啟動(dòng)功能只允許加載簽名的引導(dǎo)程序。這對(duì)于Linux系統(tǒng)來(lái)說(shuō)曾經(jīng)是一個(gè)問(wèn)題,不過(guò),現(xiàn)在已經(jīng)基本解決了Linux引導(dǎo)程序的簽名問(wèn)題。在激活UEFI固件安全啟動(dòng)功能的情況下,啟動(dòng)階段將檢查所有的部件是否擁有有效的簽名。在Windows啟動(dòng)之前,所有沒(méi)簽名的模塊將無(wú)法運(yùn)行。
上面介紹的UEFI固件安全啟動(dòng)功能并不一定需要TPM加密芯片,但是如果在TPM加密芯片的支持下,Windows 10可以通過(guò)其稱為“測(cè)量啟動(dòng)”的方式啟動(dòng)系統(tǒng)。這種新的啟動(dòng)方式從它的名稱上就可以看出其特點(diǎn),那就是它需要進(jìn)行大量的檢測(cè)和計(jì)算。打開(kāi)電腦,首先檢測(cè)計(jì)算UEFI固件相關(guān)的散列值,并將其保存在TPM加密芯片24個(gè)平臺(tái)配置寄存器中的一個(gè)。這是一個(gè)受保護(hù)的安全存儲(chǔ)區(qū)域,只有當(dāng)電腦啟動(dòng)時(shí)才可以重新寫入新的內(nèi)容。根據(jù)相關(guān)的標(biāo)準(zhǔn),該區(qū)域的寄存器被劃分為寄存器0~7用于與UEFI固件相關(guān)的檢測(cè)數(shù)據(jù),而寄存器8~15可以用于Windows系統(tǒng),例如存儲(chǔ)BitLocker相關(guān)的加密數(shù)據(jù),其余的寄存器則可以用于其他供應(yīng)商,例如病毒掃描程序相關(guān)的數(shù)據(jù)。與此同時(shí),UEFI固件安全啟動(dòng)功能將同步工作,檢查各組件的簽名。在加載任何模塊時(shí),將檢測(cè)計(jì)算其散列值,并將結(jié)果存儲(chǔ)在上面介紹的TPM寄存器中。
在本文的圖表中詳細(xì)地列出了每一個(gè)步驟,在UEFI固件相關(guān)的檢測(cè)完成之后,檢驗(yàn)并對(duì)系統(tǒng)加載程序、內(nèi)核模塊和系統(tǒng)驅(qū)動(dòng)程序進(jìn)行計(jì)算,并將檢測(cè)計(jì)算的結(jié)果保存到TPM。緊接著,將加載預(yù)先啟動(dòng)的反惡意程序軟件(Early Launch Anti Malware,簡(jiǎn)稱ELAM),Windows系統(tǒng)通過(guò)提前加載反惡意程序軟件的方式,讓像卡巴斯基、賽門鐵克之類的第三方的病毒掃描程序可以早于操作系統(tǒng)和任何第三方軟件加載,確保早期肆虐Windows操作系統(tǒng)的Rootkit惡意程序?qū)⒉荒茉僮鲪?。在ELAM加載的過(guò)程中,同樣會(huì)檢測(cè)計(jì)算出一個(gè)散列值保存于TPM寄存器。ELAM加載程序一旦結(jié)束,Windows系統(tǒng)將啟動(dòng),用戶可以登錄,“測(cè)量啟動(dòng)”過(guò)程將產(chǎn)生一個(gè)包含所有加載組件的散列值等數(shù)據(jù)的加密日志文件。
“測(cè)量啟動(dòng)”的亮點(diǎn)在于,最終還可以通過(guò)外部對(duì)日志文件進(jìn)行檢測(cè)。通過(guò)被稱為“遠(yuǎn)程認(rèn)證客戶端”的軟件讀取日志文件,并通過(guò)局域網(wǎng)或者互聯(lián)網(wǎng)將其轉(zhuǎn)發(fā)到檢測(cè)服務(wù)器上進(jìn)行分析,以判定加載的組件是否是安全的。如果分析結(jié)果是安全的,那么用戶可以繼續(xù)使用電腦。如果分析結(jié)果是其中的一個(gè)模塊已經(jīng)被操縱,那么它將被標(biāo)記為受感染的模塊,并嘗試中止它。
“測(cè)量啟動(dòng)”這種通過(guò)外部檢查加載組件是否安全的功能是UEFI固件的安全啟動(dòng)功能所不具備的,因?yàn)樗贿\(yùn)行在本地電腦上。然而,我們不知道,是否有人會(huì)為個(gè)人用戶提供檢測(cè)服務(wù)器。對(duì)于企業(yè)用戶來(lái)說(shuō),檢測(cè)企業(yè)員工使用的筆記本電腦和智能手機(jī)是否安全是非常重要的,這也包括員工自己的設(shè)備,要確保這些設(shè)備沒(méi)有感染惡意軟件,企業(yè)有必要建立自己的檢測(cè)服務(wù)器。