AppLocker 架構和元件
本文適用於 IT 專業人員,說明 AppLocker 的基本架構及其主要元件。
AppLocker 會使用應用程式識別服務來提供檔案的屬性,並評估檔案的 AppLocker 原則。 AppLocker 原則是 API) (的條件式訪問控制專案,而原則是使用屬性型訪問控制 SeAccessCheckWithSecurityAttributes 或 AuthzAccessCheck 函式來評估。
AppLocker 提供三種方式來攔截和驗證是否允許檔案根據 AppLocker 原則執行。
建立新的進程
執行應用程式檔案時,會建立新的進程。 發生這種情況時,AppLocker 會呼叫應用程式識別元件來計算用來建立新進程的主要可執行文件屬性。 然後,它會使用這些屬性更新新進程的令牌,並檢查 AppLocker 原則以確認可執行檔是否允許執行。
已載入 DLL
載入 DLL 時,會將通知傳送至 AppLocker,以確認允許載入 DLL。 AppLocker 會呼叫應用程式識別元件來計算檔屬性。 它會複製現有的進程令牌,並將重複令牌中的這些應用程式識別屬性取代為已載入 DLL 的屬性。 AppLocker 接著會評估此 DLL 的原則,並捨棄重複的令牌。 根據這項檢查的結果,系統會繼續載入 DLL 或停止進程。
腳本正在執行
執行腳本檔案之前,腳本主機 (例如,PowerShell) 呼叫 AppLocker 來驗證腳本。 AppLocker 會使用檔名或檔句柄在使用者模式中呼叫應用程式識別元件,以計算檔屬性。 接著會根據 AppLocker 原則評估腳本檔案,以確認它應該執行。 在每個案例中,AppLocker 所採取的動作都會寫入事件記錄檔。