微軟最近的精力主要放在了 Win11 22H2 年度更新上了,正式版本預計要到明年 9 月底正式發布,現在已經大量推送。
近年來,微軟下大力緩解和修複特定的惡意軟件或漏洞,增加了大量的緩解措施,如零初始化池分配(zero-initialized pool allocation)、CET、XFG 和最新的 CastGuard,攻擊者利用漏洞變得越來越困難。最重要的是,通過 ETW,特别是威脅情報 ETW 通道,可以提高對惡意軟件和利用技術的可見性。
在 23H2 預覽版本中,微軟推出了一個新的 ETW 事件,這次針對的是 NT API,這些 API 可針對各種可疑行為。Windows 事件跟蹤 ( ETW ) 提供了一種用于檢測用戶模式應用程序和内核模式驅動程序的機制。Log Analytics 代理用于收集寫入到管理和操作 ETW 通道的 Windows 事件。 但是,有時需要捕獲和分析其他事件,例如寫入分析通道的事件。
系統調用使用可見性
随着這一新的變化,微軟将重點放在幾個系統調用上,這些調用通常不應該被許多應用程序使用,但可能會被漏洞利用,例如 KASLR 繞過、VM 檢測或物理内存訪問。這個新事件所涉及的許多情況都已被限制為特權進程,有些需要為管理員或系統進程保留特權,有些則限制為低 IL 或不受信任的調用方。但是,試圖調用這些系統調用中的任何一個都可能表明存在可疑活動。
到目前為止,EDR 檢測這類活動的唯一方法是将用戶模式挂鈎放置在洩漏内核指針的所有不同 NtQuery 函數中。但實踐證明,這并不理想。一段時間以來,微軟一直試圖讓 EDR 遠離用戶模式挂鈎,主要是通過添加 ETW 事件,允許 EDR 通過非侵入性方式使用相同的信息。
為了跟上這一趨勢,Windows 11 23H2 向威脅情報頻道添加了一個新的 ETW 事件—— THREATINT_PROCESS_SYSCALL_USEGE。生成此 ETW 事件是為了指示非管理員進程對 API+ 信息類進行了 API 調用,該 API 調用可能會及時發現某些異常以及潛在的惡意活動。此事件将為兩個 API 中的信息類生成:
NtQuerySystemInformation; NtSystemDebugControl;
這些 API 有許多信息類,其中許多是 " 無害的 ",并且通常被許多應用程序使用。為了避免發送不感興趣或無用的信息,以下信息類将生成 ETW 事件:
包含這些信息類的原因各不相同,有些會洩漏内核地址,有些可用于 VM 檢測,另一些用于硬件持久性,還有一些表示大多數應用程序不應具備的物理内存知識。總的來說,這一新事件包含了應用程序無法正常運行的各種指标。
每一種緩解措施都必須考慮潛在的性能影響,當在頻繁調用的代碼路徑中生成 ETW 事件時,可能會降低系統的速度。因此,有一些限制适用于此:
1. 事件隻會為用戶模式的非管理員調用者生成。由于 Admin->内核不被認為是 Windows 上的邊界,因此許多緩解措施不應用于管理進程,以降低對系統的性能影響。
2. 對于每個流程,每個信息類隻生成一次事件。這意味着如果 NtQuerySystemInformation 被一個進程調用 10 次,并且都使用相同的信息類,那麼隻會發送一個 ETW 事件。
3. 隻有在調用成功時才會發送事件,失敗的調用将被忽略,并且不會産生任何事件。
為了支持上述第 2 個限制并跟蹤流程所涉及的信息類,EPROCESS 結構中添加了一個新字段:
當一個流程第一次成功調用一個被監控的信息類時,将設置與該信息類對應的位,即使沒有為這些流程發送 ETW 事件,也會發生在管理流程上。ETW 事件僅在未設置位時發送,已确保每個類隻發送一次事件。雖然沒有 API 來查詢這個 EPROCESS 字段,但它确實有一個很好的副作用,那就是留下每個進程使用哪些信息類的記錄——如果你分析一個系統,可以查看這些記錄,但前提是在系統中啟用了 Syscall Usage 事件,否則位不會被設置。
檢查數據
目前還沒有啟用這個事件,也沒有人使用它,但我希望看到 Windows Defender 很快開始使用它,希望其他 EDR 也能使用。我手動啟用了這個事件,以查看這些 " 可疑的 "API 是否在常規設備上被使用,使用我的 I/O 環漏洞作為完整性測試,因為我知道它使用 NtQuerySystemInformation 洩漏内核指針。以下是正常執行幾分鐘後的一些結果:
顯然,有一些信息類在設備上使用非常頻繁,到目前為止主要的是 SystemFirmwareTableInformation。這些常見的類可能會在早期被 EDR 忽略,因此更容易被濫用。
總結
這是否意味着不再有基于 API 的 KASLR 繞過,或者所有現有漏洞都會立即被檢測到?當然不會。EDR 需要一段時間才能開始注冊和使用這些事件,特别是因為 23H2 将在明年秋天的某個時候正式發布,而大多數安全産品可能還需要一兩年的時間才能意識到這一事件的存在。由于此事件被發送到隻有 PPL 才能注冊的威脅情報頻道,因此許多産品根本無法訪問此事件或其他與攻擊相關的事件。此事件将使 EDR 能夠獲取惡意進程進行的一些額外調用的信息,但這隻是攻擊的其中一步,如果安全産品過于依賴它,無疑會導緻許多誤報。無論如何,這一事件隻涉及一些已知的指标,而其他許多指标則被忽略。