安全動(dòng)態(tài)

微軟發(fā)布Windows Defender System Guard運(yùn)行時(shí)認(rèn)證技術(shù),預(yù)期在平臺(tái)安全方面取得進(jìn)展

來(lái)源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2018-04-24    瀏覽次數(shù):
 

信息來(lái)源:FreeBuf

上周,微軟推出了一項(xiàng)新的 Windows 平臺(tái)安全技術(shù):Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證。這項(xiàng)技術(shù)主要用于應(yīng)對(duì)軟件中的攻擊,與 Credential Guard 一樣,利用基于虛擬化安全中涉及的源于硬件的安全技術(shù)。

微軟表示,希望用戶能夠控制自己的設(shè)備,了解設(shè)備的安全健康狀況。如果重要的安全功能失效,用戶可以及時(shí)注意到并及時(shí)應(yīng)對(duì)。而 Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證這項(xiàng)新的 Windows 平臺(tái)安全技術(shù)就可以滿足這些需求。

在 Windows 10 Fall Creators 更新中,微軟工作人員將所有系統(tǒng)完整性功能重新組織到 Windows Defender System Guard 中。內(nèi)置于核心 Windows 操作系統(tǒng)中的Windows Defender System Guard運(yùn)行時(shí)認(rèn)證將逐步適用于 Windows 的所有版本。

微軟

很多漏洞利用都會(huì)針對(duì)安全技術(shù)發(fā)起攻擊,以便在相同信任域中運(yùn)行。例如,特權(quán)進(jìn)程就是用于提供(至少是代碼和數(shù)據(jù)層面的)隔離環(huán)境,與普通的用戶模式進(jìn)程隔離開(kāi)來(lái)。NT 內(nèi)核根據(jù)執(zhí)行進(jìn)程對(duì)象中保存的某些值確定進(jìn)程是否受到保護(hù),通過(guò)內(nèi)核漏洞或驅(qū)動(dòng)程序(例如 Mimikatz)篡改這些值就能有效地破壞進(jìn)程保護(hù)。因此,將與篡改相關(guān)的安全決策移至單獨(dú)的信任域會(huì)增加攻擊者的攻擊復(fù)雜程度。

運(yùn)行時(shí)認(rèn)證適用于多個(gè)場(chǎng)景:

為端點(diǎn)檢測(cè)和響應(yīng)(EDR)以及殺軟供應(yīng)商提供補(bǔ)充信號(hào)(包括與 Windows Defender 高級(jí)威脅防護(hù)堆棧的完全集成);

檢測(cè)內(nèi)核篡改、Rootkit和漏洞等問(wèn)題;

受保護(hù)的游戲反作弊方案(例如,檢測(cè)可導(dǎo)致游戲狀態(tài)修改的進(jìn)程保護(hù)旁路);

敏感交易(銀行應(yīng)用程序、交易平臺(tái))

有條件訪問(wèn)(啟用和增強(qiáng)基于設(shè)備安全的訪問(wèn)策略)

第一階段的 Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證將在下一次 Windows 10 更新中推出,為未來(lái)的創(chuàng)新奠定基礎(chǔ)。這項(xiàng)技術(shù)有助于構(gòu)建新的操作系統(tǒng)功能,以便在系統(tǒng)遭遇完全入侵的情況下(例如通過(guò)內(nèi)核級(jí)漏洞利用)檢測(cè)入侵行為,并有效溝通。

認(rèn)證與建議信任

要在技術(shù)層面上引入 Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證,最好從最明顯的層級(jí)開(kāi)始,例如最終可以向依賴方公開(kāi)的客戶端 API。因此,微軟也正在開(kāi)發(fā)可使用運(yùn)行時(shí)認(rèn)證的客戶端 API。這個(gè) API 將提供一份運(yùn)行時(shí)報(bào)告,詳細(xì)說(shuō)明 Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證時(shí)系統(tǒng)的安全狀態(tài),具體包括敏感系統(tǒng)屬性的運(yùn)行時(shí)間測(cè)量。

為了使運(yùn)行時(shí)報(bào)告真正實(shí)現(xiàn)重要意義,必須以提供合理阻止篡改方案的方式生成運(yùn)行時(shí)報(bào)告。這就要求:

運(yùn)行時(shí)報(bào)告生成必須與攻擊者隔離;

這種隔離必須是可以證明的;

運(yùn)行時(shí)報(bào)告必須以在隔離環(huán)境之外無(wú)法再現(xiàn)的方式進(jìn)行加密簽名

運(yùn)行時(shí)認(rèn)證技術(shù)還涉及到 VBS 圍圈(enclaves)的概念,VBS 圍圈是指基于虛擬化安全的內(nèi)存中受保護(hù)執(zhí)行區(qū)域。在啟用虛擬安全模式(VSM)的設(shè)備上,采用底層指令集架構(gòu)(ISA)的虛擬化擴(kuò)展將會(huì)從邏輯上把系統(tǒng)劃分為兩個(gè)(理論上更多)獨(dú)立的區(qū)域:常見(jiàn)的運(yùn)行 NT 內(nèi)核的“正常”世界和運(yùn)行安全內(nèi)核(SK)的獨(dú)立’安全’世界。這兩個(gè)獨(dú)立區(qū)域就稱作“虛擬信任級(jí)別”(VTL),其中 NT 是 VTL-0,SK 是 VTL-1。

VBS 圍圈使得“正常”VTL-0 用戶模式過(guò)程的孤立部分成為可能。這個(gè)孤立部分所有代碼和數(shù)據(jù)都存在于 VTL-1 中。一個(gè)圍圈內(nèi)外的事務(wù)都通過(guò)一個(gè)定義良好的、由 VSL 調(diào)用(NT 和 SK 用于通信的機(jī)制)支持的 API 來(lái)完成。結(jié)果就是,從 Windows Fall Creators Update(1709)開(kāi)始,可以在一個(gè)區(qū)域內(nèi)執(zhí)行代碼并保存數(shù)據(jù),從而導(dǎo)致整個(gè) VTL-0 “正?!蹦J剑òㄓ脩裟J胶蛢?nèi)核模式)在執(zhí)行過(guò)程中和保持在圍圈內(nèi)(在 VTL-1 中)時(shí),不能直接作用于孤立代碼和數(shù)據(jù)。

在 VBS 圍圈中,運(yùn)行時(shí)認(rèn)證組件可以觀察并證明報(bào)告中包含的一組安全屬性。例如,應(yīng)用程序可以要求 Windows Defender System Guard 從硬件支持的區(qū)域測(cè)量系統(tǒng)的安全性并返回報(bào)告。應(yīng)用程序可以使用此報(bào)告中的詳細(xì)信息來(lái)決定是執(zhí)行敏感的金融交易還是顯示個(gè)人信息。

VBS 圍圈還可以暴露由特定 VBS 簽名密鑰簽署的圍圈認(rèn)證報(bào)告。如果 Windows Defender System Guard 可以獲得主機(jī)系統(tǒng)在 VSM 處于活動(dòng)狀態(tài)下運(yùn)行的證據(jù),則可以使用此證明和簽署的會(huì)話報(bào)告來(lái)確保特定圍圈正常運(yùn)行。

至于運(yùn)行時(shí)報(bào)告本身的簽名,會(huì)在圍圈內(nèi)生成一個(gè)不對(duì)稱的公私密鑰對(duì)。公鑰由 Windows Defender System Guard 證明服務(wù)后端簽署以創(chuàng)建會(huì)話證書(shū)。此外,Windows Defender System Guard 證明服務(wù)后端會(huì)生成一個(gè)簽名的會(huì)話報(bào)告,其中包含有關(guān)計(jì)算機(jī)的詳細(xì)信息。這些詳細(xì)信息包括啟動(dòng)安全屬性,包括啟用安全啟動(dòng)的計(jì)算機(jī)是否啟動(dòng),以確保核心操作系統(tǒng)未被越獄或篡改。最后,運(yùn)行時(shí)報(bào)告由配對(duì)的私鑰在本地簽名,該私鑰永遠(yuǎn)不會(huì)離開(kāi)圍圈。依賴方可根據(jù)會(huì)話證書(shū)驗(yàn)證報(bào)告簽名、確保以 Microsoft CA 為根的證書(shū)簽名有效,進(jìn)而輕松驗(yàn)證運(yùn)行時(shí)和會(huì)話報(bào)告。

微軟

因此,建立必要的信任以確保運(yùn)行時(shí)報(bào)告的真實(shí)性,需要以下信息:

證明機(jī)器的啟動(dòng)狀態(tài):操作系統(tǒng)、管理程序和安全內(nèi)核(SK)二進(jìn)制文件必須由 Microsoft 簽名并根據(jù)安全策略進(jìn)行配置

綁定 TPM 與管理程序的運(yùn)行狀況之間的信任關(guān)系,為測(cè)量的引導(dǎo)日志(Measured Boot Log)建立信任;

從測(cè)量的啟動(dòng)日志中提取 VSM IDK,并使用它們來(lái)驗(yàn)證 VBS 圍圈簽名;

上述后端驗(yàn)證以及用可信任CA在圍圈內(nèi)生成的臨時(shí)密鑰公共組件的簽名簽發(fā)會(huì)話證書(shū);

使用臨時(shí)私鑰為運(yùn)行時(shí)報(bào)告簽名

圍圈與 Windows Defender System Guard 認(rèn)證服務(wù)之間的網(wǎng)絡(luò)調(diào)用都來(lái)自 VLT-0。同時(shí),認(rèn)證協(xié)議能夠確保即使在不可信的傳輸機(jī)制下也能夠抵御篡改。

在充分建立上述信任鏈之前,需要許多基礎(chǔ)技術(shù)。為了讓依賴方了解自己可以獲取運(yùn)行時(shí)報(bào)告中信任級(jí)別的任何特定配置,每個(gè) Windows Defender System Guard 證明服務(wù)簽名的會(huì)話報(bào)告都會(huì)分配到一個(gè)安全級(jí)別。安全級(jí)別反映了平臺(tái)上啟用的底層技術(shù),并根據(jù)平臺(tái)的功能確定信任級(jí)別。微軟工作人員正在將各種安全技術(shù)的實(shí)現(xiàn)映射到安全級(jí)別中,并在發(fā)布 API 供第三方使用時(shí)分享這一技術(shù)。最高級(jí)別的信任至少需要以下功能:

支持 VBS 的硬件+ OEM 配置;

啟動(dòng)時(shí)的動(dòng)態(tài)信任根測(cè)量;

安全啟動(dòng)以驗(yàn)證虛擬機(jī)管理程序、NT、SK 圖像

確保安全政策:虛擬機(jī)監(jiān)控程序代碼完整性(HVCI)和強(qiáng)制的內(nèi)核模式代碼完整性(KMCI);禁用測(cè)試簽名;禁用內(nèi)核調(diào)試

測(cè)量

會(huì)話報(bào)告中的安全級(jí)別本身就是一個(gè)重要而有趣的指標(biāo)。而 Windows Defender System Guard 可以提供更多功能,對(duì)于運(yùn)行時(shí)測(cè)量系統(tǒng)安全狀態(tài)尤其有效。

我們稱這個(gè)運(yùn)行時(shí)間測(cè)量組件為“斷言引擎”,是在運(yùn)行時(shí)不斷測(cè)量(“斷言”)系統(tǒng)完整性,證明啟動(dòng)時(shí)安全態(tài)勢(shì)的安全級(jí)別。

一些注意事項(xiàng):

A. “斷言”引擎在設(shè)計(jì)時(shí)考慮了理想的系統(tǒng)配置(即具有最高安全級(jí)別的系統(tǒng)配置);

在安全級(jí)別最低的情況下,業(yè)務(wù)需求需要 Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證才能在系統(tǒng)上運(yùn)行;在這種情況下,Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證無(wú)法確保效果,并且可以充當(dāng)非鎖定 Windows 版本上其他安全產(chǎn)品的信號(hào);

B. 在運(yùn)行理想配置時(shí),由于虛擬機(jī)監(jiān)控程序代碼完整性(HVCI)和強(qiáng)制的內(nèi)核模式代碼完整性(KMCI)限制,非 ROP 內(nèi)核模式代碼執(zhí)行很困難;在這種情況下:

更可能造成數(shù)據(jù)損壞;

在非競(jìng)爭(zhēng)場(chǎng)景中很難篡改任何所需的內(nèi)核模式代理;

運(yùn)行時(shí)斷言主要針對(duì)可在最嚴(yán)格攻擊條件下合理執(zhí)行的攻擊;

C. 微軟正在努力突破(當(dāng)前)操作系統(tǒng)設(shè)計(jì)的限制;

微軟的多個(gè)團(tuán)隊(duì)在合力研究改善 System Guard 運(yùn)行時(shí)認(rèn)證和核心內(nèi)核安全功能。在當(dāng)前版本的操作系統(tǒng)中,主要依靠 NT 內(nèi)核線程管理和獲取到的安全內(nèi)核原語(yǔ)。

SGRA-architecture.png

Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證體系結(jié)構(gòu)的高級(jí)概覽

在架構(gòu)上,這個(gè)解決方案統(tǒng)稱為 Windows Defender System Guard 運(yùn)行時(shí)監(jiān)視器,由以下客戶端組件組成:

VTL-1 斷言引擎本身;

VTL-0 內(nèi)核模式代理;

托管斷言引擎的 VTL-0 進(jìn)程,被稱為“代理”

為了快速響應(yīng)威脅,微軟選擇了一種動(dòng)態(tài)腳本方式,以便經(jīng)常發(fā)布更新。此外,微軟還采用了一個(gè)滿足成熟度、占用空間和性能要求的開(kāi)源庫(kù)。此腳本組件構(gòu)成了在 VTL-1 中執(zhí)行的斷言引擎核心。

如果不能以任何方式與系統(tǒng)進(jìn)行交互,在此引擎中運(yùn)行任意邏輯將不會(huì)有效。為了讓引擎執(zhí)行有用的工作,可以通過(guò)“助手”的形式提供本地幫助。這些協(xié)助通過(guò)代理服務(wù)或內(nèi)核模式代理在 VTL-0 中執(zhí)行。

在 Windows 的下一次更新中,斷言邏輯通過(guò)帶內(nèi)傳送的(在簽名引擎 DLL 內(nèi)部)。未來(lái),這些腳本可以實(shí)現(xiàn)帶外傳遞,這也是設(shè)計(jì)的核心部分。這有助于迅速響應(yīng)安全事件(例如,發(fā)現(xiàn)新的攻擊不變量),而無(wú)需通過(guò)服務(wù)交付組件更新。應(yīng)用程序和服務(wù)可以利用這種認(rèn)證技術(shù)來(lái)確保系統(tǒng)不受篡改,并且讓關(guān)鍵流程按照預(yù)期運(yùn)行。這種基于硬件的“健康證明”可用于識(shí)別受感染的機(jī)器,或識(shí)別對(duì)關(guān)鍵云服務(wù)的訪問(wèn)。運(yùn)行時(shí)認(rèn)證可用作各種高級(jí)安全應(yīng)用程序的平臺(tái)。

新技術(shù)推動(dòng)新安全進(jìn)展

微軟認(rèn)為,通過(guò)現(xiàn)代硬件和適當(dāng)?shù)陌踩呗?,可以顯著提高鎖定平臺(tái)的安全性。在直接特權(quán)代碼執(zhí)行難以實(shí)現(xiàn)的當(dāng)代,將會(huì)有越來(lái)越多的攻擊行為利用數(shù)據(jù)損壞發(fā)起入侵。在當(dāng)前的模型中,瞬間變化也是一個(gè)挑戰(zhàn)。但是,未來(lái)的創(chuàng)新將導(dǎo)致持久性更難實(shí)現(xiàn),短暫的惡意變化也更加困難。Windows Defender System Guard 運(yùn)行時(shí)認(rèn)證技術(shù)致力于不斷提升整個(gè) Windows 10 安全堆棧的防御能力,從而讓攻擊者更改系統(tǒng)、影響安全狀態(tài)的行為更容易檢測(cè)。換句話說(shuō),運(yùn)行時(shí)認(rèn)證更多的是檢測(cè)可能代表著攻擊行為的微小痕跡,而不是尋找明顯的信號(hào)。

微軟對(duì)這項(xiàng)新技術(shù)充滿期待,認(rèn)為這項(xiàng)技術(shù)有可能在平臺(tái)安全方面取得重大進(jìn)展。更多細(xì)節(jié)將會(huì)陸續(xù)發(fā)布。

 
 

上一篇:全國(guó)網(wǎng)信工作會(huì)議召開(kāi) 網(wǎng)絡(luò)強(qiáng)國(guó)催生網(wǎng)安千億級(jí)市場(chǎng)

下一篇:2018年04月24日 聚銘安全速遞