前のトピック: アクセサ エレメント次のトピック: ネイティブ セキュリティの拡張


インストルメンテーションの仕組み

インストルメンテーションは、アプリケーションの実行フローの CA ControlMinder による監視、追跡、変更を実現する手法です。 インストルメンテーションにより、CA ControlMinder はシステム プロセスを監視し、アプリケーション アドレス空間で専用モジュールのインターセプトおよび実装を行うことができます。

インストルメンテーション プロセスには、カーネル インストルメンテーション フェーズおよびユーザ モード インストルメンテーション フェーズという 2 つのフェーズがあります。

: カーネル インターセプトおよびユーザ モード インターセプトの詳細については、「アカウントの保護」の章を参照してください。 インストルメンテーションの詳細については、「リファレンス ガイド」を参照してください。

以下の図に、インストルメンテーション プロセスを示します。

以下の図に、インストルメンテーション プロセスを示します。

カーネル インストルメンテーション フェーズでは、CA ControlMinder により以下が実行されます。

  1. CA ControlMinder はシステム起動時にインストルメンテーション ドライバ(cainstrm.sys)をロードします。
  2. ユーザまたはプログラムのアクションの結果、新しいプロセス イベントが作成されます。
  3. インストルメンテーション ドライバは一定の時間間隔でレジストリ ハイブをスキャンし、インストルメンテーション承認済みプロセスを探します。

    インストルメンテーションの ApplyonProcesses レジストリ キーを使用して、、インストルメンテーション承認済みプロセスのリストを指定します。 インストルメンテーションのレジストリ キーの詳細については、「リファレンス ガイド」を参照してください。

  4. CA ControlMinder は、新しいプロセス イベントを識別すると、承認済みプロセスのリストからプロセス名を検索します。 プロセス名が見つかったら、ドライバはそのプロセスのアドレス空間にインストルメンテーション DLL を挿入します。

ユーザ モード インストルメンテーション フェーズでは、CA ControlMinder により以下が実行されます。

  1. インストルメンテーション DLL は インストルメンテーションのレジストリ ハイブをスキャンしてプロセスのアドレス空間にロードするプラグインを特定し、以下のいずれかを実行します。
  2. CA ControlMinder は Microsoft Detours ライブラリを使用して、各プラグインに含まれる特定の関数に基づいてフッキング プロシージャを実行します。

    Microsoft Detours は、Win32 関数のインストルメンテーション実行に使用するライブラリです。 Microsoft Detours の詳細については、Microsoft Detours の Web サイトを参照してください。