(57)【要約】      （修正有）【課題】複数のセキュリティポリシーを効率よく実施することができるようにする。【解決手段】セキュリティシステム１００は、セキュリティポリシーのルールリストおよび関連のプロセス設定基準を生成することによってセキュリティポリシーを結合する。ルールリストのルールは、ルールタイプおよびルールのアクションに基づいて配列される。アプリケーションを実行するための新しいプロセスが開始されるとき、セキュリティシステム１００は、アプリケーションによって満たされるプロセス設定基準を決定する。次いでセキュリティシステムは、満たされたプロセス設定基準に関連付けられているルールリストのルールを識別する。【選択図】図１
2006114026.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいてセキュリティポリシーを実施する方法であって、
プロセス設定基準、ならびにルールタイプ、条件、およびアクションをそれぞれ有する１つまたは複数のルールを有するセキュリティポリシーを提供することと、
第１の特権モードで、
前記セキュリティポリシーの前記ルールのリストを含むルールリストを生成することであって、前記ルールリスト内の各ルールは前記ルールを含む前記セキュリティポリシーの前記プロセス設定基準に関連付けられ、前記ルールリストはルールタイプおよびアクションによって配列されることと、
第２の特権モードで、
プロセスが開始されると、前記プロセスによって満たされる１つまたは複数のプロセス設定基準に関連付けられている前記ルールリストの前記ルールを識別することと、
前記プロセスに関連するセキュリティイベントが行われると、前記識別されたルールを前記ルールリストの順序で前記セキュリティイベントに適用することと
を含むことを特徴とする方法。
【請求項２】
前記第１の特権モードはユーザモードであり、前記第２の特権モードはカーネルモードであることを特徴とする請求項１に記載の方法。
【請求項３】
プロセス設定基準が変更されたとき、
前記第１の特権モードで、
前記ルールリストの前記プロセス設定基準を更新することと、
前記第２の特権モードに通知を提供することと、
前記第２の特権モードで、前記プロセスの前記ルールリストの前記ルールを再識別して、前記プロセスに関連する次のセキュリティイベントが行われると、前記再識別されたルールを適用することができるようにすることと
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
セキュリティポリシーが変更されたとき、プロセスの前記識別されたルールは動的に更新されることを特徴とする請求項１に記載の方法。
【請求項５】
前記ルールタイプはグローバル、アプリケーション固有、およびデフォルトの実行範囲を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ルールは、アプリケーション固有の前にグローバル、デフォルトの前にアプリケーション固有という順序で配列されることを特徴とする請求項６に記載の方法。
【請求項７】
前記アクションは拒否および許可を含み、拒否アクションを有するルールは、各ルールタイプ内に、許可アクションを有するルールの前に配列されることを特徴とする請求項１に記載の方法。
【請求項８】
前記ルールリストは、前記関連のルールへの各プロセス設定基準のマッピングを含むことを特徴とする請求項１に記載の方法。
【請求項９】
プロセス設定基準、ならびにルールタイプ、条件、およびアクションをそれぞれ有する１つまたは複数のルールを有するセキュリティポリシーを提供することと、
前記セキュリティポリシーの前記ルールのリストを含むルールリストを生成することであって、前記ルールリスト内の各ルールは前記ルールを含む前記セキュリティポリシーの前記プロセス設定基準を有しており、前記ルールリストはルールタイプによって配列されることと
を含む方法によってセキュリティポリシーをマージするようにコンピュータシステムを制御する命令を含むことを特徴とするコンピュータ可読媒体。
【請求項１０】
前記ルールリストはアクションによってルールタイプ内にさらに配列されることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記アクションは拒否および許可を含み、拒否アクションを有するルールは、各ルールタイプ内に、許可アクションを有するルールの前に配列されることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記ルールリストは、プロセス設定テーブルおよびルールテーブルを含み、前記プロセス設定テーブルはプロセス設定基準を前記ルールテーブル内の前記関連のルールにマッピングすることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１３】
異なるセキュリティタイプを有するセキュリティポリシーのために個別のルールリストが生成されることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１４】
前記生成されたルールリストを、前記セキュリティポリシーの実施のためのセキュリティ構成要素に提供することを含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１５】
前記マージすることはユーザモードで実行され、前記セキュリティの実施はカーネルモードで実行されることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
セキュリティポリシーが変更されると、前記ルールリストが動的に更新されることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１７】
前記ルールタイプはグローバル、アプリケーション固有、およびデフォルトの実行範囲を含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１８】
前記ルールは、アプリケーション固有の前にグローバル、デフォルトの前にアプリケーション固有という順序で配列されることを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記セキュリティポリシーの前記ルールのリストを含むルールリストを受信することであって、前記ルールリスト内の各ルールはプロセス設定基準を有しており、前記ルールリストはルールタイプによって配列されることと、
プロセスが開始されると、そのプロセス設定基準が前記プロセスによって満たされる前記ルールリストの前記ルールを識別することと、
前記プロセスに関連するセキュリティイベントが行われると、前記識別されたルールを前記ルールリストの順序で前記セキュリティイベントに適用することと
を含む方法によってセキュリティポリシーを実施するようにコンピュータシステムを制御する命令を含むことを特徴とするコンピュータ可読媒体。
【請求項２０】
前記セキュリティポリシーはカーネルモードで実施され、前記ルールリストはユーザモードで生成されることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
プロセス設定基準が変更されたとき、前記プロセス設定基準が前記プロセスによって満たされたかどうかに前記変更が影響を与えたプロセスの前記ルールリストの前記ルールを識別して、前記プロセスに関連する次のセキュリティイベントが行われると、前記識別されたルールを適用することができるようにすることと
を含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２２】
セキュリティポリシーが変更されたとき、プロセスの前記識別されたルールは動的に更新されることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２３】
前記ルールタイプはグローバル、アプリケーション固有、およびデフォルトの実行範囲を含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２４】
前記ルールは、アプリケーション固有の前にグローバル、デフォルトの前にアプリケーション固有という順序で配列されることを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項２５】
前記アクションは拒否および許可を含み、拒否アクションを有するルールは、各ルールタイプ内に、許可アクションを有するルールの前に配列されることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２６】
前記ルールリストは、前記関連のルールへの各プロセス設定基準のマッピングを含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２７】
前記セキュリティポリシーの前記ルールのリストを含むルールリストを生成する第１の特権モードで実行されるマージ構成要素であって、前記ルールリスト内の各ルールは、プロセス設定基準を有しており、前記ルールリストはルールタイプおよびアクションによって配列されることと、
第２の特権モードで実行される実施構成要素であって、プロセスによって満たされた１つまたは複数のプロセス設定基準に関連付けられている前記ルールリストの前記ルールを識別し、前記ルールリストの前記順序で前記プロセスのセキュリティイベントに前記識別されたルールを適用する実施構成要素と
を含むことを特徴とするセキュリティポリシーを実施するためのコンピュータシステム。
【請求項２８】
前記第１の特権モードはユーザモードであり、前記第２の特権モードはカーネルモードであることを特徴とする請求項２７に記載のコンピュータシステム。
【請求項２９】
セキュリティポリシーが変更されたとき、プロセスの前記識別されたルールは動的に更新されることを特徴とする請求項２７に記載のコンピュータシステム。
【請求項３０】
前記ルールタイプはグローバル、アプリケーション固有、およびデフォルトの実行範囲を含むことを特徴とする請求項２７に記載のコンピュータシステム。
【請求項３１】
前記ルールは、アプリケーション固有の前にグローバル、デフォルトの前にアプリケーション固有という順序で配列されることを特徴とする請求項３０に記載のコンピュータシステム。
【請求項３２】
前記アクションは拒否および許可を含み、拒否アクションを有するルールは、各ルールタイプ内に、許可アクションを有するルールの前に配列されることを特徴とする請求項３０に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
記載の技術は一般に、ソフトウェアシステムの脆弱性の利用を防ぐセキュリティシステムに関する。
【背景技術】
【０００２】
インターネットは、コンピュータシステム間の通信を容易にし、電子商取引を有効にすることでは大いに成功したが、インターネットに接続されているコンピュータシステムは、その操作を妨害しようとするハッカーによってほぼ常に攻撃を受けている。攻撃の多くは、こうしたコンピュータシステムで実行されているアプリケーションプログラムまたは他のコンピュータプログラムを含むソフトウェアシステムの脆弱性を利用しようとする。ソフトウェアシステムの開発者、および企業のコンピュータシステムの管理者は、脆弱性を識別し、取り除くのにかなり骨を折り、多大な出費をする。しかし、ソフトウェアシステムが複雑であるため、ソフトウェアシステムがリリースされる前に、すべての脆弱性を識別し、取り除くことは実質上不可能である。ソフトウェアシステムがリリースされた後、開発者は、様々な方法で脆弱性に気付く可能性がある。ハッカーが脆弱性を識別し、利用する前にそれを取り除くことができるように、悪意のない当事者が脆弱性を識別し、内密に開発者に知らせる場合がある。最初にハッカーが脆弱性を識別した場合、開発者は、それが利用されるまで脆弱性がわからない場合があり、時として惨憺たる結果をもたらし得る。
【０００３】
開発者がどのようにして脆弱性の存在に気付くかに関係なく、開発者は一般に、脆弱性を取り除くソフトウェアシステムの「修正プログラム」または更新版を開発して、システム管理者に配布する。例えばハッカーに知られていないなど脆弱性がまだ利用されていない場合、開発者は、規律ある方法で修正プログラムを設計し、実装し、テストし、配布することができる。脆弱性がすでに広範にわたって露呈している場合、開発者は、通常の環境で使用されるのと同じ配慮なしに修正プログラムの配布を急ぐ可能性がある。修正プログラムがコンピュータシステムの管理者に配布されると、管理者は、修正プログラムをスケジュールし、インストールして脆弱性を取り除く責任がある。
【０００４】
残念ながら、管理者は、様々な理由のために、脆弱性を取り除く修正プログラムのインストールを遅らせることが多い。修正プログラムがインストールされると、ソフトウェアシステム、および場合によってはそれが実行されているコンピュータシステムをシャットダウンし、再起動する必要がある場合がある。組織の成功に極めて重要であるソフトウェアシステムに脆弱性がある場合、管理者は、ソフトウェアシステムを保持し、攻撃されるその関連のリスクを持ったまま稼動させることと、企業の重要なリソースをシャットダウンさせて修正プログラムをインストールすることとのトレードオフを分析する必要がある。一部の管理者は、配布を急いだために、修正プログラムが適切にテストされておらず、意図せぬ副作用がある可能性があることを心配するため、修正プログラムのインストールを遅らせるかもしれない。修正プログラムに意図せぬ副作用がある場合、ソフトウェアシステム、コンピュータシステム、または修正プログラムによって影響を受けた他の何らかのソフトウェア構成要素は、修正プログラム自体によってシャットダウンする可能性がある。管理者は、修正プログラムをインストールするかどうかを決定するときに、意図せぬ副作用の可能性を考慮に入れる必要がある。こうした管理者は、他者による体験が重大な意図せぬ副作用はないことを示すまで、修正プログラムのインストールを遅らせる可能性がある。
【０００５】
まだ修正プログラムが適用されていない既知の脆弱性が利用されようとしているかどうかを識別するために使用することができる侵入検出システムが開発されている。こうした侵入検出システムを使用して、その修正プログラムがまだ開発されていない、またはインストールされていない新しく発見された脆弱性の利用を防ぐことができる。こうした侵入検出システムは、脆弱性を利用できる方法ごとに「署名」を定義することができる。例えば、ある属性を有するあるタイプのメッセージを送信することによって脆弱性を利用することができる場合、その利用の署名は、そのタイプおよび属性を指定することになる。メッセージの受信などのセキュリティ実施イベントが行われたとき、侵入検出システムは、その署名をチェックして、何かがセキュリティ実施イベントに一致するかどうかを決定する。一致した場合、侵入検出システムは、メッセージをドロップするなど、利用を防ぐ措置を講じることができる。
【０００６】
新しく発見された脆弱性の利用の署名は、様々な方法で作成することができる。侵入検出システムの開発者は、新しい利用に気付いたときに新しい署名を作成し、配布することができる。次いで管理者は、新しい署名をインストールして、利用を防ぐことができる。しかし、開発者は、既知のすべての利用の署名を提供することはできない。例えば、開発者がサポートしてない専用アプリケーションプログラムに脆弱性が存在する場合がある。こうした脆弱性の利用を防ぐために、侵入検出システムは、管理者が各自の署名を作成できるようにすることができる。
【０００７】
１つまたは複数の署名の組は、セキュリティポリシーとみなすことができる。侵入検出システムの開発者は、様々なセキュリティポリシーを提供することができる。例えば、開発者は、オペレーティングシステムの脆弱性の署名を定義するあるセキュリティポリシー、およびアプリケーションまたはアプリケーションのクラスに固有の他の多くのセキュリティポリシーを提供することができる。同様に、管理者は、企業によって使用されているカスタムアプリケーションに固有のセキュリティポリシーを定義することができる。
【０００８】
一般に、侵入検出システムが実施できるのは、１つのセキュリティポリシーのみである。こうした場合、複数のセキュリティポリシーを、侵入検出システムに提供される単一のセキュリティポリシーに結合し、またはマージする必要がある。セキュリティポリシーを結合するために、侵入検出システムの開発者または管理者は、一般に様々なセキュリティポリシーを調べ、署名のロジックのマージを試み、各セキュリティポリシーの正味の効果が実施されるようにする。しかし、署名が非常に複雑であるとともに、異なるセキュリティポリシーの効果、およびそれらの間の対話も複雑でとらえにくい可能性があるため、セキュリティポリシーの結合は、時間がかかり、エラーをもたらしやすい。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
複数のセキュリティポリシーの効果を、効率よく実施することができる結合された１つのセキュリティポリシーに自動的に結合する機構を有することが望ましい。
【課題を解決するための手段】
【００１０】
セキュリティポリシーを結合し実施する方法およびシステムが提供される。セキュリティシステムに、プロセス設定基準（ｐｒｏｃｅｓｓ  ｓｅｔ  ｃｒｉｔｅｒｉｏｎ）および関連のルールを有するセキュリティポリシーが提供される。プロセス設定基準は、関連のルールが適用されるプロセスまたはアプリケーションの属性を定義する。ルールは、条件、およびその条件が満たされたときに実行されるアクションを提供する。セキュリティシステムは、ユーザモードでセキュリティポリシーを結合し、カーネルモードで結合されたセキュリティポリシーを実施する。セキュリティシステムは、セキュリティポリシーのルールのリストであるルールリストを生成することによってセキュリティポリシーを結合する。ルールリストの各ルールは、セキュリティポリシーから導出された関連のプロセス設定基準を有している。ルールリストのルールは、例えばグローバルルールなどのルールタイプおよびルールのアクションに基づいて配列される。セキュリティシステムは、カーネルモードでルールリストを使用して、セキュリティポリシーを実施する。アプリケーションを実行するための新しいプロセスが開始されるとき、セキュリティシステムは、アプリケーションによって満たされるプロセス設定基準を決定する。次いでセキュリティシステムは、満たされたプロセス設定基準に関連付けられているルールリストのルールを識別する。セキュリティシステムは、識別されたこうしたルールをプロセスに関連付ける。プロセスに関連付けられているセキュリティ実施イベントが行われるとき、セキュリティシステムは、プロセスに関連付けられている各ルールを、ルールリストによって指定されている順序でセキュリティ実施イベントに適用する。
【発明を実施するための最良の形態】
【００１１】
セキュリティポリシーを結合し実施する方法およびシステムが提供される。実施されるセキュリティポリシーの集まりは、組織の全セキュリティポリシーを表す。一実施形態において、セキュリティシステムに、プロセス設定基準および関連のルールを有するセキュリティポリシーが提供される。プロセス設定基準は、関連のルールが適用されるプロセスまたはアプリケーションの属性を定義する。例えば、プロセス設定基準は、アプリケーション名のリスト、または一致するアプリケーション名を定義する正規表現とすることができる。プロセス設定基準に使用され得るアプリケーションの他の属性には、実行可能ファイルを含むディレクトリの名前、Ｍｉｃｒｏｓｏｆｔなどアプリケーションの開発者、アプリケーションに関連付けられているレジストリエントリなどがある。プロセスがプロセス設定基準に一致するアプリケーションを実行している場合、関連するルールはプロセスに適用される。各ルールは、ルールタイプ、条件、およびアクションを有し得る。例えば、ルールタイプは、ルールがグローバルであるか、アプリケーション固有であるか、デフォルトであるかを指定することができる。グローバルルールは、ルールに関連付けられているプロセス設定基準を満たすすべてのプロセスに適用される。アプリケーション固有ルールは、ルールに関連付けられているプロセス設定基準を満たし、さらにルールによって特に識別されるプロセスのみに適用される。グローバルルールまたはアプリケーション固有ルールが適用されないときにデフォルトのルールが適用される。一実施形態では、ルールタイプは、以下で詳述するように「実行範囲」を指す。
【００１２】
セキュリティシステムは、ユーザモードでセキュリティポリシーを結合し、カーネルモードで結合されたセキュリティポリシーを実施する。セキュリティシステムは、セキュリティポリシーのルールのリストを含むルールリストを生成することによってセキュリティポリシーを結合する。ルールリストの各ルールは、セキュリティポリシーから導出された関連のプロセス設定基準を有している。さらに、ルールリストのルールは、ルールタイプおよびルールのアクションに基づいて配列される。例えば、グローバルルールはアプリケーション固有ルールの前に配列され、アプリケーション固有ルールはデフォルトルールの前に配列される。同じルールタイプを有するルールの各グループは、「ルールセット」と呼ばれる。各ルールセット内で、ルールは、それらのアクションに基づいて配列される。例えば、「拒否」アクションを有するルールは、「許可」アクションを有するルールより前に配列される。
【００１３】
セキュリティシステムは、カーネルモードでルールリストを使用して、セキュリティポリシーを実施する。アプリケーションを実行するための新しいプロセスが開始されるとき、セキュリティシステムは、アプリケーションによって満たされるプロセス設定基準を決定する。次いでセキュリティシステムは、満たされたプロセス設定基準に関連付けられているルールリストのルールを識別する。セキュリティシステムは、識別されたこうしたルールをプロセスに関連付ける。プロセスに関連付けられているセキュリティ実施イベントが行われるとき、セキュリティシステムは、プロセスに関連付けられている各ルールを、ルールリストによって指定されている順序でセキュリティ実施イベントに適用する。適用されたルールの条件が満たされ、関連のアクションが拒否された場合、セキュリティシステムは、セキュリティ実施イベントに関連付けられているアクティビティを拒否し、ルールの適用を停止する。
【００１４】
セキュリティシステムは、セキュリティポリシーの動的更新および実施をサポートする。全セキュリティポリシーは、新しいセキュリティポリシーを追加する、または既存のセキュリティポリシーを更新することによって更新することができる。セキュリティポリシーは、プロセス設定基準またはルールを変更することによって更新することができる。全セキュリティポリシーが更新されると、セキュリティシステムは、ルールリストを再生成し、変更の指示を提供する。セキュリティシステムは、カーネルモードで、変更を認識し、実行中のプロセスに関連付けられているルールを動的に更新する。
【００１５】
ルールタイプに基づいてルールを選択的に配列し、プロセス設定基準を関連のルールにマッピングすることによって、セキュリティシステムは、セキュリティポリシーを自動的に結合し、効率よく実施することができる。
【００１６】
一実施形態では、セキュリティポリシーは、条件、アクション、および任意選択で例外を指定するルールを含む。例えば、ルールは、ポート８０以外の任意のネットワークポートではアプリケーションがメッセージを受信しない可能性があることを示し得る。ルールの条件は、メッセージがポート８０以外のネットワークポートで受信されたことを検出することができ、拒否アクションは、メッセージの破棄をもたらす。別の例で、ルールは、アプリケーションがネットワークポート８０でメッセージの送信を試みるとき、ルールが実施されるコンピューティングシステムのユーザに認証が求められることを示す。ルールは、その挙動に基づいて複数のセキュリティタイプにカテゴリ化することができる。例えば、ネットワークセキュリティタイプのルールは、ネットワークトラフィックのセキュリティ実施に向けられる。各セキュリティタイプは、そのセキュリティタイプのルールを実施するそれ自体のセキュリティエンジンを有している。
【００１７】
ルールの条件、アクション、および例外は、表現として指定することができる。ルールは、意味的に「ＩＦ条件  ＴＨＥＮ動作  ＥＸＣＥＰＴ例外」と表すことができる。ルールの条件は、ルールのセキュリティ実施アクションが実行される状況の表現である。動作は、条件が満たされると実行されるアクティビティの表現である。１つのルールが複数のアクションを有する場合がある。例外は、条件が満たされている場合でさえアクションを実行できないときの表現である。条件は、静的でも動的でもよい。静的条件とは、例えばハードコーディングされたファイルのリストを指すものである。動的条件とは、例えば、提供された基準に一致するファイルのリストを決定するためのクエリを実行するものである。セキュリティ実施アクションは、セキュリティ実施イベントをもたらした要求の許可、要求の拒否、ユーザへの入力の要求、ユーザへの通知などを含み得る。他のルール構文もあり得る。一例として、「ｅｌｓｅ」構文は、条件が偽のときに代替のアクションを実行するために追加することができる。
【００１８】
一実施形態において、セキュリティポリシーは、デフォルトのルールおよびアクションを指定することができる。セキュリティ実施イベントがセキュリティポリシーのルールの条件のいずれも満たさないとき、デフォルトのアクションを実行することができる。例えば、あるセキュリティポリシーのデフォルトのアクションは、セキュリティ実施イベントを生成したアクティビティを可能にすること、別のセキュリティポリシーのデフォルトのアクションは、アクティビティを拒否することとすることができる。
【００１９】
セキュリティポリシーは、ルールを複数のルール範囲に分類することができる。範囲は、様々なレベルで定義することができ、これらのレベルは、階層関係を有する。例えば、範囲を、アプリケーションレベル、実行レベル、および保護レベルで定義することができる。各アプリケーションレベルは実行レベルを有し、各実行レベルは保護レベルを有し得る。アプリケーションレベル範囲は、ソフトウェアリソースに関連付けられているすべてのルールを識別することができる。一実施形態において、アプリケーションレベル範囲は、１群のルールのプロセス設定基準を定義し、実行レベルおよび保護レベルの範囲は、あるルールの条件の一部とすることができる。例えば、ネットワークプロトコルスタック、Ｗｅｂブラウザアプリケーション、文書処理アプリケーション、およびデータベースアプリケーションのアプリケーションレベル範囲を示すことができる。実行レベル範囲は、アプリケーションの実行コンテキストに関連付けられているルールを識別することができる。一例として、Ｗｅｂブラウズアプリケーションは、そのＨＴＴＰ、ファイル転送プロトコル、および「ｔｅｌｎｅｔ」の実行コンテキストの実行レベル範囲を有し得る。各実行レベル範囲は、１つまたは複数の保護レベル範囲を有し得る。保護レベル範囲は、ルールがグローバルであるか、リソース固有であるか、デフォルトであるかを識別することができる。ルールは、グローバルであるとき、ファイルシステムなど、どのリソースがセキュリティ実施イベントをもたらしたかに関係なく、アプリケーションレベル範囲および実行レベル範囲内のすべてのプロセスに適用される。ルールは、リソース固有のとき、識別されたリソースがそのルールに関連するセキュリティ実施イベントをもたらしたときのみ適用される。ルールは、デフォルトのとき、リソース固有ルールで特に識別されなかったすべてのリソースに適用され得る。
【００２０】
図１は、一実施形態におけるセキュリティシステムの構成要素を示すブロック図である。セキュリティシステム１００は、ユーザモード構成要素１１０およびカーネルモード構成要素１２０を含む。ユーザモード構成要素は、ポリシーマネージャ構成要素１１１、ポリシーストア１１２、ルールジェネレータ構成要素１１３、プロセス設定テーブル１１４、およびルールテーブル１１５を含む。ポリシーマネージャ構成要素は、ポリシーストアからセキュリティポリシーを取り出し、セキュリティポリシーの保護オブジェクトを生成し、ルールジェネレータ構成要素に保護オブジェクトを提供する。ポリシーマネージャ構成要素は、セキュリティポリシー内のルールのタイプおよびプロセス設定基準ごとに保護オブジェクトを生成する。したがって、保護オブジェクトは、ルールタイプ、プロセス設定基準、および関連のルールセットを含む。ルールジェネレータ構成要素は、保護オブジェクトを入力し、プロセス設定テーブルおよびルールテーブルに格納されるルールリストを生成する。ルールジェネレータ構成要素は、保護オブジェクト内の各プロセス設定基準のプロセス設定テーブルにエントリを追加する。ルールジェネレータ構成要素は、保護オブジェクトのルールセットを、同じアクションタイプをそれぞれ有する複数のルールセットに分割する。例えば、あるルールセットは、拒否のアクションを有するルールのために生成され、別のルールセットは、許可のアクションを有するルールのために生成される。ルールセットのこの分割は、アクションに基づいたルールの配列を容易にする。また、ルールジェネレータ構成要素は、保護オブジェクトに関連付けられているデフォルトのアクションのルールセットも作成する。次いでルールジェネレータ構成要素は、ルールテーブルに各ルールセットの各ルールを格納する。ルールテーブル内のルールは、ルールタイプに従って配列され、ルールタイプ内ではルールのアクションに従って配列される。分割された各ルールセットは、ルールセット内のルールの連続的な配列を表す。ルールジェネレータ構成要素は、プロセス設定テーブルのエントリを、エントリのプロセス設定基準に関連付けられている各ルールを示すように設定する。例えば、プロセス設定基準が異なる５つのルールに関連付けられている場合、そのプロセス設定基準のエントリは、５つのルールを識別することになる。ルールリスト、すなわちプロセス設定テーブルおよびルールテーブルを生成した後、セキュリティシステムのユーザモード構成要素は、カーネルモード構成要素に通知する。
【００２１】
セキュリティシステムのカーネルモード構成要素は、セキュリティエンジン構成要素１２１、プロセス／ルールベクトルテーブル１２２、およびルールエンジン構成要素１２３を含む。セキュリティエンジン構成要素には、セキュリティ実施イベントが行われるたびに通知される。セキュリティエンジン構成要素はイベントが適用されるプロセスを識別し、プロセス／そのプロセスのルールベクトルテーブルからルールベクトルを取り出す。ルールベクトルは、そのプロセスに適用されるルールテーブル内のルールを識別する。次いで、セキュリティエンジン構成要素は、ルールベクトルの各ルールを、ルールテーブルの配列に基づいた順序でセキュリティ実施イベントに適用する。セキュリティエンジン構成要素は、ルールエンジン構成要素を呼び出してプロセスのルールベクトルを提供する。ルールエンジン構成要素は、プロセスによって満たされるプロセス設定基準を識別し、満たされたプロセス設定基準に関連付けられている各ルールの指示を取り出す。次いでルールエンジン構成要素は、ルールの識別をルールベクトルに結合し、これは次いでセキュリティエンジン構成要素に提供される。
【００２２】
セキュリティシステムが実装されるコンピューティング装置は、中央処理装置、メモリ、キーボードやポインティング装置などの入力装置、ディスプレイ装置などの出力装置、およびディスクドライブなどの記憶装置を含む。メモリおよび記憶装置は、セキュリティシステムを実施する命令を含み得るコンピュータ可読媒体である。さらに、データ構造およびメッセ―ジ構造は、通信リンク上の信号など、データ送信媒体を介して格納または送信することができる。インターネット、ローカルエリアネットワーク、広域ネットワーク、二点間ダイヤルアップ接続、セル方式電話ネットワークなど、様々な通信リンクを使用することができる。
【００２３】
セキュリティシステムは、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラム可能家庭用電化製品、デジタルカメラ、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境など、様々な動作環境に実装することができる。クライアントコンピュータシステムは、セル方式電話、ＰＤＡ、スマートフォン、パーソナルコンピュータ、プログラム可能家庭用電化製品、デジタルカメラなどとすることができる。
【００２４】
セキュリティシステムは、１つまたは複数の構成要素または他の装置によって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、プログラムモジュールの機能は、必要に応じて様々な環境で結合し、または分散させることができる。
【００２５】
図２は、一実施形態におけるセキュリティシステムのデータ構造を示すブロック図である。ルールリスト２１０は、プロセス設定テーブル２１１、およびルールテーブル２１２を含む。プロセス設定テーブルは、セキュリティポリシーの各プロセス設定のエントリを含む。各エントリは、プロセス設定基準をルールテーブル内の関連のルールにマッピングさせる。ルールテーブルは、セキュリティポリシーの各ルールのエントリを含む。エントリは、ルールの条件、アクション、および例外を識別する。ルールテーブルのルールは、ルールタイプおよびアクションに基づいて配列される。プロセス／ルールベクトルマッピング２２０は、各プロセスに適用可能なルールを識別する。マッピングは、プロセスおよび関連のルールベクトルを識別する各プロセスのエントリを含む。これらのデータ構造がデータ構造の１つの考え得る論理構成を示すことを当業者であれば理解されよう。データ構造の他の構成は、メモリ使用量および計算速度の目標に応じて適し得る。
【００２６】
図３は、一実施形態におけるルールジェネレータのルールの準備構成要素（ｐｒｅｐａｒｅ  ｒｕｌｅｓ  ｃｏｍｐｏｎｅｎｔ）の処理を示すフロー図である。この構成要素は、ユーザ特権モードで実行される。構成要素は、ループして、ポリシーマネージャ構成要素によって提供された各保護オブジェクトを処理する。ブロック３０１で、構成要素は、次の保護オブジェクトを選択する。決定ブロック３０２で、すべての保護オブジェクトがすでに選択されている場合、構成要素は完了し、そうでない場合、ブロック３０３に進む。ブロック３０３で、構成要素は、ルールのアクションに基づいて保護オブジェクトのルールを様々なルールに分割する。ブロック３０４で、構成要素は、デフォルトアクションのルールセットを作成する。ブロック３０５〜３０７で、構成要素は、ループして、ルールセットのルールをルールリストに追加する。ブロック３０５で、構成要素は、次のルールセットを選択する。決定ブロック３０６で、すべてのルールセットがすでに選択されている場合、構成要素はブロック３０１にループして次の保護オブジェクトを選択し、そうでない場合はブロック３０７に進む。ブロック３０７で、構成要素は、マージ構成要素を呼び出し、選択されたルールセットおよび保護オブジェクトのプロセス設定基準を渡すことによってルールおよびプロセス設定基準をルールリストに追加する。次いで構成要素はブロック３０５にループして、次のルールセットを選択する。
【００２７】
図４は、一実施形態におけるルールジェネレータのマージ構成要素の処理を示すフロー図である。この構成要素は、ユーザモードで実行される。構成要素に、ルールセットおよびプロセス設定基準が渡される。構成要素は、ルールセットの各ルールをルールリストのルールテーブルに追加し、それに応じてプロセス設定テーブルを更新する。ブロック４０１で、構成要素は、プロセス設定テーブルが渡されたプロセス設定基準のエントリを含んでいるかどうかをチェックする。決定ブロック４０２で、エントリが検出された場合、構成要素はブロック４０４に進み、そうでない場合、ブロック４０３に進む。ブロック４０３で、構成要素は、プロセス設定テーブルに渡されたプロセス設定基準の新しいエントリを作成する。ブロック４０４で、構成要素は、渡されたルールセットのルールのルールテーブル内の適切な挿入点を検索する。適切な挿入点は、ルールタイプおよびアクションの配列に基づいて識別される。ブロック４０５で、構成要素は、ルールセットのルールをルールテーブルの挿入点に挿入する。ブロック４０６で、構成要素は、プロセス設定テーブル内の渡されたプロセス設定基準のエントリを更新する。ルールがルールテーブル内でインデックスによって識別されると、構成要素は、ルールテーブル内の新しい位置を反映するように、プロセス設定テーブル内の他のエントリを更新する必要がある。あるいは、結合および実施のプロセス中、特定のプロセスに対して最適化されたルールテーブルの異なるデータ構造を使用することができる。例えば、結合時にはリンクされたリストデータ構造を使用し、実施時には簡単なリストデータ構造を使用することができる。次いで構成要素は戻る。
【００２８】
図５は、一実施形態におけるルールベクトルの初期化構成要素（ｉｎｉｔｉａｌｉｚｅ  ｒｕｌｅ  ｖｅｃｔｏｒｓ  ｃｏｍｐｏｎｅｎｔ）の処理を示すフロー図である。この構成要素は、カーネルモードで実行され、ルールエンジン構成要素のサブ構成要素とすることができる。構成要素は、セキュリティエンジン構成要素が起動したときに呼び出される。構成要素は、例えば共有メモリを介してルールリストの情報にアクセスし、プロセスのルールベクトルを生成する。ブロック５０１で、構成要素は、現在実行中のプロセスのうちの次のものを選択する。決定ブロック５０２で、すべてのプロセスがすでに選択されている場合、構成要素は完了し、そうでない場合、ブロック５０３に進む。ブロック５０３で、構成要素は、ルールベクトルの取り出し構成要素（ｒｅｔｒｉｅｖｅ  ｒｕｌｅ  ｖｅｃｔｏｒ  ｃｏｍｐｏｎｅｎｔ）を呼び出して選択されたプロセスのルールベクトルを取り出す。ブロック５０４で、構成要素は、プロセス／ルールベクトルマッピング内に、選択されたプロセスとルールベクトルの組み合わせのエントリを格納する。次いで構成要素はブロック５０１にループして、次のプロセスを選択する。
【００２９】
図６は、一実施形態におけるルールベクトルの取り出し構成要素の処理を示すフロー図である。構成要素は、プロセス識別子を受け取り、そのプロセスによって満たされるプロセス設定基準を識別する。次いで構成要素は、満たされたプロセス設定基準に関連付けられているルールのそれぞれを識別するルールベクトルを作成する。ブロック６０１で、構成要素は、次のプロセス設定基準を選択する。決定ブロック６０２で、すべてのプロセス設定基準がすでに選択されている場合、構成要素はブロック６０５に進み、そうでない場合、ブロック６０３に進む。決定ブロック６０３で、渡されたプロセスが選択されたプロセス設定基準を満たす場合、構成要素はブロック６０４に進み、そうでない場合、ブロック６０１にループして次のプロセス設定基準を選択する。ブロック６０４で、構成要素は、選択されたプロセス設定基準に関連付けられているルールをルールベクトルに追加し、次いでブロック６０１にループして次のプロセス設定基準を選択する。ブロック６０５で、構成要素は、ルールベクトル内のルールをソートし、重複する任意のルールを削除し、戻る。
【００３０】
図７は、一実施形態におけるプロセス設定基準の更新構成要素（ｕｐｄａｔｅ  ｐｒｏｃｅｓｓ  ｓｅｔ  ｃｒｉｔｅｒｉｏｎ  ｃｏｍｐｏｎｅｎｔ）の処理を示すフロー図である。この構成要素は、プロセス設定基準が変更されたときに呼び出される。ブロック７０１で、構成要素は、コンピュータ上で現在実行中のプロセスのうちの次のものを選択する。決定ブロック７０２で、すべてのプロセスがすでに選択されている場合、構成要素は完了し、そうでない場合、ブロック７０３に進む。決定ブロック７０３で、更新に起因して、選択されたプロセスがプロセス設定基準を満たすかどうかに関する変更があった場合、構成要素はブロック７０４に進み、そうでない場合、ブロック７０１にループして次のプロセスを選択する。選択されたプロセスが前のまたは更新されたプロセス設定基準のうちの１つだけを満たすときに更新に起因する変更がある。ブロック７０４で、構成要素は、選択されたプロセスの新しいルールベクトルを生成する。ブロック７０５で、構成要素は、ルールベクトルへの変更をセキュリティエンジン構成要素に通知し、次いでブロック７０１にループして次のプロセスを選択する。セキュリティエンジンは、通知があり次第、変更されたルールベクトルの使用を開始して、セキュリティポリシーの動的更新および実施に影響を与えることができる。
【００３１】
図８は、一実施形態におけるセキュリティエンジン構成要素のルールの実施サブ構成要素（ｅｎｆｏｒｃｅ  ｒｕｌｅｓ  ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）の処理を示すフロー図である。この構成要素は、カーネルモードで実行され、プロセス識別子およびセキュリティ実施イベントを受け取る。構成要素は、プロセスのルールベクトルによって識別されたルールをセキュリティ実施イベントに適用する。ブロック８０１で、構成要素は、識別されたプロセスのルールベクトルを取り出す。ブロック８０２で、構成要素は、ルールベクトル内の次のルールを順番に選択する。決定ブロック８０３で、ルールベクトルのルールがすでに選択されている場合、構成要素は完了し、そうでない場合、ブロック８０４に進む。決定ブロック８０４で、選択されたルールの条件が満たされている場合、構成要素はブロック８０５に進み、そうでない場合、ブロック８０２にループして次のルールを選択する。決定ブロック８０５で、ルールの例外が満たされていない場合、構成要素はブロック８０６に進み、そうでない場合、ブロック８０２にループして次のルールを選択する。ブロック８０６で、構成要素はルールのアクションを実行し、完了する。
【００３２】
上記から、例示の目的で本明細書にセキュリティシステムの特定の実施形態を説明してきたが、本発明の意図および範囲から逸脱することなく様々な変更を加えることができることを理解されよう。したがって、本発明は、添付の特許請求の範囲を除いて限定されない。
【図面の簡単な説明】
【００３３】
【図１】一実施形態におけるセキュリティシステムの構成要素を示すブロック図である。
【図２】一実施形態におけるセキュリティシステムのデータ構造を示すブロック図である。
【図３】一実施形態におけるルールジェネレータのルールの準備構成要素の処理を示すフロー図である。
【図４】一実施形態におけるルールジェネレータのマージ構成要素の処理を示すフロー図である。
【図５】一実施形態におけるルールベクトルの初期化構成要素の処理を示すフロー図である。
【図６】一実施形態におけるルールベクトルの取り出し構成要素の処理を示すフロー図である。
【図７】一実施形態におけるプロセス設定基準の更新構成要素の処理を示すフロー図である。
【図８】一実施形態におけるセキュリティエンジン構成要素のルールの実施サブ構成要素の処理を示すフロー図である。
【符号の説明】
【００３４】
１００  セキュリティシステム
１１０  ユーザモード
１２０  カーネルモード
１１１  ポリシーマネージャ
１１２  ポリシーストア
１１３  ルールジェネレータ
１１４  プロセス設定テーブル
１１５  ルールテーブル
１２１  セキュリティエンジン
１２２  プロセス／ルールベクトルテーブル
１２３  ルールエンジン
２１０  ルールリスト
２１１  プロセス設定テーブル
２１２  ルールテーブル
２２０  プロセス／ルールベクトルマッピング
【図１】
2006114026.tif 000003
【図２】
2006114026.tif 000004
【図３】
2006114026.tif 000005
【図４】
2006114026.tif 000006
【図５】
2006114026.tif 000007
【図６】
2006114026.tif 000008
【図７】
2006114026.tif 000009
【図８】
2006114026.tif 000010