安全動態(tài)

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

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

信息來源:FreeBuf

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

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

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

微軟

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

運行時認(rèn)證適用于多個場景:

為端點檢測和響應(yīng)(EDR)以及殺軟供應(yīng)商提供補充信號(包括與 Windows Defender 高級威脅防護堆棧的完全集成);

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

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

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

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

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

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

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

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

運行時報告生成必須與攻擊者隔離;

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

運行時報告必須以在隔離環(huán)境之外無法再現(xiàn)的方式進行加密簽名

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

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

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

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

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

微軟

因此,建立必要的信任以確保運行時報告的真實性,需要以下信息:

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

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

從測量的啟動日志中提取 VSM IDK,并使用它們來驗證 VBS 圍圈簽名;

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

使用臨時私鑰為運行時報告簽名

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

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

支持 VBS 的硬件+ OEM 配置;

啟動時的動態(tài)信任根測量;

安全啟動以驗證虛擬機管理程序、NT、SK 圖像

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

測量

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

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

一些注意事項:

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

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

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

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

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

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

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

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

SGRA-architecture.png

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

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

VTL-1 斷言引擎本身;

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

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

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

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

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

新技術(shù)推動新安全進展

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

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

 
 

上一篇:全國網(wǎng)信工作會議召開 網(wǎng)絡(luò)強國催生網(wǎng)安千億級市場

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