AppLocker のアーキテクチャとコンポーネント

IT プロフェッショナル向けのこの記事では、AppLocker の基本的なアーキテクチャとその主要なコンポーネントについて説明します。

AppLocker では、アプリケーション ID サービスを使用して、ファイルの属性を指定し、ファイルの AppLocker ポリシーを評価します。 AppLocker ポリシーは条件付きアクセス制御エントリ (ACE) であり、ポリシーは属性ベースのアクセス制御 SeAccessCheckWithSecurityAttributes または AuthzAccessCheck 関数を使用して評価されます。

AppLocker には、AppLocker ポリシーに従ってファイルの実行が許可されているかどうかをインターセプトして検証する 3 つの方法が用意されています。

新しいプロセスが作成されます

アプリ ファイルを実行すると、新しいプロセスが作成されます。 その場合、AppLocker は Application Identity コンポーネントを呼び出して、新しいプロセスの作成に使用されるメイン実行可能ファイルの属性を計算します。 次に、これらの属性を使用して新しいプロセスのトークンを更新し、AppLocker ポリシーを確認して、実行可能ファイルの実行が許可されていることを確認します。

DLL が読み込まれる

DLL が読み込まれると、DLL の読み込みが許可されていることを確認する通知が AppLocker に送信されます。 AppLocker は、アプリケーション ID コンポーネントを呼び出してファイル属性を計算します。 既存のプロセス トークンを複製し、重複したトークン内のアプリケーション ID 属性を読み込まれた DLL の属性に置き換えます。 その後、AppLocker はこの DLL のポリシーを評価し、重複したトークンは破棄されます。 このチェックの結果に応じて、システムは DLL の読み込みを続行するか、プロセスを停止します。

スクリプトが実行される

スクリプト ファイルを実行する前に、スクリプト ホスト (PowerShell など) が AppLocker を呼び出してスクリプトを確認します。 AppLocker は、ファイル名またはファイル ハンドルを使用してアプリケーション ID コンポーネントをユーザー モードで呼び出して、ファイルのプロパティを計算します。 その後、スクリプト ファイルは AppLocker ポリシーに対して評価され、実行が必要であることを確認します。 いずれの場合も、AppLocker によって実行されたアクションがイベント ログに書き込まれます。