(57)【要約】【課題】コンピュータシステムの脆弱性が利用されるのを防止する。【解決手段】保護対象のホストコンピュータシステムで実行されるファイアウォールエージェントは、施行エンジンのためのセキュリティポリシーを受け取り、施行エンジンは、セキュリティポリシーをホストコンピュータシステム上で施行することを担う。セキュリティポリシーは規則を有し、各規則は、条件と条件が満たされるときに実施される動作とを提供する。規則は規則タイプも有し、規則タイプは、規則の施行を担うセキュリティコンポーネントを配布システムが識別するのに使用される。ホストコンピュータシステムで受け取ったセキュリティポリシーを配布するために、ファイアウォールエージェントは、規則タイプに部分的に基づいて、どの施行エンジンに規則が適用されるかを識別する。ファイアウォールエージェントは、識別された施行エンジンに規則を配布し、施行エンジンは規則を施行する。【選択図】図１
2006146891.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおける、セキュリティポリシーを施行するために前記セキュリティポリシーの規則を施行エンジンに配布する方法であって、
前記コンピュータシステムにおいて、セキュリティ施行の様々な層を実現する施行エンジンを提供するステップと、
前記コンピュータシステムにおいて、規則を有するセキュリティポリシーを受け取って記憶するステップであって、各規則は規則タイプを有するステップと、
前記コンピュータシステム上で実行されるファイアウォールエージェントの制御下で、
前記記憶されたセキュリティポリシーを取り出すステップと、
取り出されたセキュリティポリシーの規則について、
規則が適用される施行エンジンを前記規則の規則タイプに基づいて識別するステップと、
前記識別された施行エンジンに前記規則を提供するステップと、
前記施行エンジンの制御下で、前記ファイアウォールエージェントから前記施行エンジンに提供された前記規則を施行するステップとを備え、
前記ファイアウォールエージェントは、前記コンピュータシステムの複数の施行エンジンに前記規則を配布するための機構を提供する
ことを特徴とする方法。
【請求項２】
前記セキュリティポリシーは、前記セキュリティポリシーを複数のコンピュータシステムに向けて配布するポリシーコンピュータシステムから受け取られることを特徴とする請求項１に記載の方法。
【請求項３】
前記施行エンジンは階層型ファイアウォールを提供することを特徴とする請求項１に記載の方法。
【請求項４】
前記施行エンジンは挙動阻止セキュリティコンポーネントを含むことを特徴とする請求項１に記載の方法。
【請求項５】
施行エンジンはサブコンポーネントを含み、前記施行エンジンは、規則が提供されると前記規則をサブコンポーネントに提供することを特徴とする請求項１に記載の方法。
【請求項６】
少なくとも１つの施行エンジンはカーネルモードで実行され、少なくとも１つの施行エンジンはユーザモードで実行されることを特徴とする請求項１に記載の方法。
【請求項７】
前記ファイアウォールエージェントはユーザモードサブコンポーネントおよびカーネルモードサブコンポーネントを含み、前記ユーザモードサブコンポーネントは、カーネルモードで実行される施行エンジンに規則を提供するために、前記カーネルモードサブコンポーネントに前記規則を配布することを特徴とする請求項１に記載の方法。
【請求項８】
フローマネージャコンポーネントが、前記様々な層におけるネットワークイベントをインターセプトし、層に対する規則を施行するために前記層に関連する施行エンジンを呼び出すことを特徴とする請求項１に記載の方法。
【請求項９】
単一のフローマネージャコンポーネントが複数の層からのネットワークイベントを処理することを特徴とする請求項８に記載の方法。
【請求項１０】
フローマネージャコンポーネントが１つの層のみからのネットワークイベントを処理することを特徴とする請求項８に記載の方法。
【請求項１１】
施行エンジンはネットワークプロトコルスタックの様々な層でセキュリティを提供することを特徴とする請求項１に記載の方法。
【請求項１２】
様々な施行エンジンの層が様々な接続に使用されることを特徴とする請求項１１に記載の方法。
【請求項１３】
セキュリティポリシーを配布するためのコンピュータシステムアーキテクチャであって、
規則タイプを伴う規則を有するセキュリティポリシーを確立し、前記セキュリティポリシーがホストコンピュータシステムで施行されるように前記セキュリティポリシーを前記ホストコンピュータシステムに提供するためのポリシーサーバコンピュータシステムと、
複数のホストコンピュータシステムとを備え、
前記ホストコンピュータシステムは、
あるタイプのセキュリティを前記ホストコンピュータシステムで施行するための施行エンジンと、
ファイアウォールエージェントとを含み、
前記ファイアウォールエージェントは、
前記ポリシーサーバコンピュータシステムから前記セキュリティポリシーを受け取り、規則タイプおよび施行エンジンタイプに基づいて、前記規則が適用される施行エンジンを識別し、前記セキュリティポリシーが施行されるように前記規則を前記識別された施行エンジンに提供する
ことを特徴とするコンピュータシステムアーキテクチャ。
【請求項１４】
前記施行エンジンは階層型であり、それにより、ある施行エンジンに提供された規則がネットワークイベントに適用されないと前記施行エンジンが判定したときは、別の施行エンジンが、前記別の施行エンジンに提供された前記規則が前記ネットワークイベントに適用されるかどうか判定することを特徴とする請求項１３に記載のコンピュータシステムアーキテクチャ。
【請求項１５】
前記層はプロトコルインターセプトフックおよび施行エンジンを含むことを特徴とする請求項１４に記載のコンピュータシステムアーキテクチャ。
【請求項１６】
前記ファイアウォールエージェントは、ユーザモードで実行される施行エンジンに規則を配布することを特徴とする請求項１３に記載のコンピュータシステムアーキテクチャ。
【請求項１７】
前記ファイアウォールエージェントは、カーネルモードで実行される施行エンジンに規則を配布することを特徴とする請求項１３に記載のコンピュータシステムアーキテクチャ。
【請求項１８】
前記施行エンジンは階層型であり、フローマネージャコンポーネントを含み、前記フローマネージャコンポーネントは、各層におけるネットワークイベントを処理し、前記層の規則を前記ネットワークイベントに対して施行するために前記層の施行エンジンを呼び出すことを特徴とする請求項１３に記載のコンピュータシステムアーキテクチャ。
【請求項１９】
前記フローマネージャコンポーネントは複数の層のネットワークイベントを処理することを特徴とする請求項１８に記載のコンピュータシステムアーキテクチャ。
【請求項２０】
前記フローマネージャコンポーネントは単一の層のネットワークイベントを処理することを特徴とする請求項１８に記載のコンピュータシステムアーキテクチャ。
【請求項２１】
ホストコンピュータシステムのセキュリティポリシーを施行するために前記セキュリティポリシーの規則を施行エンジンに配布するためのホストコンピュータシステムであって、
セキュリティポリシーの規則を受け取って施行することによって前記ホストコンピュータシステムにおけるファイアウォールセキュリティ施行の様々な層を実現する複数の施行エンジンと、
規則を有するセキュリティポリシーを前記ホストコンピュータシステムで受け取るためのコンポーネントであって、各規則は規則タイプを有するコンポーネントと、
規則が適用される施行エンジンを前記規則の規則タイプに基づいて識別し、前記識別されたセキュリティコンポーネントに前記規則を提供するコンポーネントとを備え、
前記ホストコンピュータシステムの前記階層型の施行エンジンに前記規則を配布するための機構が提供される
ことを特徴とするホストコンピュータシステム。
【請求項２２】
前記セキュリティポリシーは、前記セキュリティポリシーを複数のホストコンピュータシステムに向けて配布するポリシーコンピュータシステムから受け取られることを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２３】
前記施行エンジンは挙動阻止セキュリティコンポーネントを含むことを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２４】
施行エンジンはサブコンポーネントを含み、前記施行エンジンは、規則が提供されると前記規則をサブコンポーネントに提供することを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２５】
少なくとも１つの施行エンジンはカーネルモードで実行され、少なくとも１つの施行エンジンはユーザモードで実行されることを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２６】
前記規則を前記施行エンジンに提供する前記コンポーネントは、ユーザモードサブコンポーネントおよびカーネルモードサブコンポーネントを含み、前記ユーザモードサブコンポーネントは、カーネルモードで実行される施行エンジンに規則を提供するために、前記カーネルモードサブコンポーネントに前記規則を配布することを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２７】
前記様々な層におけるネットワークイベントをインターセプトし、層に対する規則を施行するために前記層に関連する施行エンジンを呼び出すフローマネージャコンポーネントを含むことを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２８】
単一のフローマネージャコンポーネントが複数の層からのネットワークイベントを処理することを特徴とする請求項２７に記載のコンピュータシステム。
【請求項２９】
フローマネージャコンポーネントが１つの層のみからのネットワークイベントを処理することを特徴とする請求項２７に記載のコンピュータシステム。
【請求項３０】
セキュリティポリシーを施行するためにホストコンピュータシステムを制御して前記セキュリティポリシーを施行エンジンに配布するための命令を備えるコンピュータ読み取り可能な記録媒体であって、
前記ホストコンピュータシステムにおいて、規則を有するセキュリティポリシーを受け取って記憶するステップであって、各規則は規則タイプを有するステップと、
前記ホストコンピュータシステム上で実行されるファイアウォールエージェントの制御下で、
前記記憶されたセキュリティポリシーを取り出すステップと、
取り出されたセキュリティポリシーの規則について、
規則が適用される施行エンジンを前記規則の規則タイプに基づいて識別するステップと、
前記識別された施行エンジンに前記規則を提供するステップと、
前記施行エンジンの制御下で、前記配布コンポーネントから前記施行エンジンに提供された前記規則を施行するステップと
を含む方法によって前記セキュリティポリシーの施行が行われることを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピュータシステムの脆弱性が利用されるのを防止する、セキュリティポリシーを配布するための方法およびシステムに関する。
【背景技術】
【０００２】
インターネットは、コンピュータシステム間の通信を容易にすることおよび電子商取引を可能にすることに大いに成功してきたが、インターネットに接続されたコンピュータシステムは、その動作を混乱させようとするハッカーによるほぼ常時の攻撃にさらされている。攻撃の多くは、これらのコンピュータシステム上で実行されるアプリケーションプログラムやその他のコンピュータプログラムを含めた、ソフトウェアシステムの脆弱性を利用しようとするものである。ソフトウェアシステムの開発者、および企業のコンピュータシステムの管理者は、脆弱性を識別して除去するために多大な労力および費用に頼る。しかし、ソフトウェアシステムは複雑なので、ソフトウェアシステムがリリースされる前にすべての脆弱性を識別して除去するのはほぼ不可能である。ソフトウェアシステムがリリースされた後で、開発者は様々な方法で脆弱性に気付くことができるようになる。悪意のない第三者が脆弱性を識別し、この脆弱性をハッカーによって識別され利用される前に除去できるよう、開発者に密かに知らせる場合もある。ハッカーが最初に脆弱性を識別した場合、開発者は、この脆弱性が（時として破滅的な結果を伴って）利用されるまで、それについて知らないことがある。
【０００３】
開発者がどのようにして脆弱性に気付くかにかかわらず、開発者は通常、脆弱性を除去する「パッチ」または更新をソフトウェアシステムに対して開発して、システム管理者に配布する。脆弱性がまだ利用されていない場合（例えばハッカーに知られていないであろう場合）は、開発者は統制のとれた方法でパッチを設計し、実装し、テストし、配布することができる。脆弱性がすでに広く明るみになっている場合は、開発者は、通常の状況で用いられるのと同じ注意を払うことなく急いでパッチを配布することがある。パッチがコンピュータシステムの管理者に配布されると、管理者は、スケジューリングおよびパッチのインストールを行って脆弱性を除去することを担う。
【０００４】
残念ながら、管理者はしばしば、パッチをインストールして脆弱性を除去するのを様々な理由で延期する。パッチをインストールするとき、ソフトウェアシステム、および場合によってはそれが実行されているコンピュータシステムを、シャットダウンして再起動することが必要な場合がある。組織の成功にとってクリティカルなソフトウェアシステムに脆弱性がある場合、管理者は、ソフトウェアシステムを稼動させたままにしてそれに付随する攻撃のリスクを負うことと、企業のクリティカルリソースをシャットダウンしてパッチをインストールすることとのトレードオフを分析する必要がある。管理者の中には、パッチが急いで配布されたため正しくテストされておらず意図されない副作用を有するかもしれないという恐れから、パッチのインストールを延期する者もいるかもしれない。パッチが意図されない副作用を有する場合、パッチの影響を受けるソフトウェアシステム、コンピュータシステム、またはその他の何らかのソフトウェアコンポーネントは、パッチ自体によってシャットダウンされることがある。管理者は、パッチをインストールするかどうか決定するとき、意図されない副作用の可能性を計算に入れる必要がある。これらの管理者は、意図されない重大な副作用がないことが他者の経験によって示されるまで、パッチのインストールを延期する場合がある。
【０００５】
まだパッチが当てられていない既知の脆弱性を利用することが試みられているかどうかを識別するのに使用することのできる、侵入検出システムが開発されてきた。これらの侵入検出システムを使用して、まだパッチの開発またはインストールがなされていない新たに発見された脆弱性が利用されるのを防止することができる。これらの侵入検出システムは、脆弱性を利用できる方法それぞれに対する「シグネチャ」を定義することができる。例えば、ある属性を有するあるタイプのメッセージを送信することによって脆弱性を利用することができる場合、この利用に対するシグネチャは、このタイプおよび属性を指定するものとなる。メッセージ受信などのセキュリティ施行イベントが発生したとき、侵入検出システムは、そのシグネチャをチェックして、いずれかがセキュリティ施行イベントにマッチするかどうか判定する。マッチする場合は、侵入検出システムは、メッセージをドロップするなど、この利用を防止するための動作を行うことができる。
【０００６】
新たに発見された脆弱性利用に対するシグネチャは、様々な方法で作成することができる。侵入検出システムの開発者は、新しい利用に気付いたとき、新しいシグネチャを作成して配布することができる。次いで管理者は、新しいシグネチャをインストールして、利用を防止することができる。しかし、開発者は、既知のすべての利用に対するシグネチャを提供するわけではないかもしれない。例えば、開発者のサポートしない専用アプリケーションプログラムに脆弱性がある場合もある。このような脆弱性の利用を防止するために、侵入検出システムでは、管理者が独自のシグネチャを作成できることがある。
【０００７】
１つまたは複数のシグネチャのセットは、セキュリティポリシーと考えることができる。侵入検出システムの開発者は、様々なセキュリティポリシーを提供することができる。例えば開発者は、オペレーティングシステムの脆弱性のシグネチャを定義する１つのセキュリティポリシーを提供することができ、また、１つのアプリケーションまたはある種類の複数のアプリケーションに特有の、他の多くのセキュリティポリシーを提供することができる。同様に、管理者は、企業によって使用されるカスタムアプリケーションに特有のセキュリティポリシーを定義することができる。
【０００８】
侵入はオペレーティングシステム内またはアプリケーション内の様々なポイントで発生する可能性があるので、これらの各ポイントにおける脆弱性利用を検出して防止するための侵入検出システムが開発されてきた。例えば、通信プロトコルのネットワーク層で検出される可能性のある脆弱性利用を防止するための侵入検出システムを開発することができ、また、ファイルがアクセスされている間に検出される可能性のある脆弱性利用を防止するための別の侵入検出システムを開発することができる。侵入検出システムの各開発者は独自の実装ポリシーおよびセキュリティポリシーを提供することができるが、これらは保護対象の各コンピュータシステムに配布する必要がある。さらに、実装ポリシーまたはセキュリティポリシーの更新があれば、それらも保護対象のコンピュータシステムに配布する必要がある。
【０００９】
多数のコンピュータシステムを有する企業のためのセキュリティポリシーを配布および更新することは、複雑で時間のかかる作業である可能性がある。各セキュリティポリシーを、各コンピュータシステムに提供し、次いで、各コンピュータシステムにインストールされた適切な侵入検出システムに提供する必要がある。侵入検出システムの開発者は通常、自分のシステムを相互から独立して開発するので、各侵入検出システムは、セキュリティポリシーを定義および配布するための独自仕様の機構を有する場合がある。企業のシステム管理者は、侵入検出システムを効果的に使用するために、これらの各機構を認識している必要がある場合がある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
コンピュータシステムで受け取ったセキュリティポリシーを、これらのセキュリティポリシーの施行を担うコンポーネントに配布するための一様な方法を提供する機構を有することが望ましいであろう。
【００１１】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、コンピュータシステムの脆弱性が利用されるのを防止する、セキュリティポリシーを配布するための方法およびシステムを提供することにある。
【課題を解決するための手段】
【００１２】
セキュリティポリシーを配布および施行するための方法およびシステムが提供される。分散ファイアウォールシステムは、ポリシーサーバコンポーネント、ファイアウォールエージェント、施行エンジンを備える。保護対象のホストコンピュータシステムで実行されるファイアウォールエージェントは、施行エンジンのためのセキュリティポリシーをポリシーサーバコンポーネントから受け取り、施行エンジンは、これらのセキュリティポリシーをホストコンピュータシステム上で施行することを担う。セキュリティポリシーは規則を有し、各規則は、条件と、条件が満たされるときに実施される動作とを提供する。規則は規則タイプ（セキュリティタイプとも呼ばれる）も有し、規則タイプは、規則の施行を担う施行エンジンをファイアウォールエージェントが識別するのに使用される。ファイアウォールエージェントは、ユーザモードおよびカーネルモードで実行される施行エンジンにセキュリティポリシーを配布することができる。施行エンジンは、セキュリティを施行するための階層型の手法を提供することができる。ホストコンピュータシステムで受け取ったセキュリティポリシーを配布するために、ファイアウォールエージェントは、規則タイプに部分的に基づいて、どの施行エンジンに規則が適用されるかを識別する。次いでファイアウォールエージェントは、識別された施行エンジンに規則を配布し、次いで施行エンジンは規則を施行する。
【発明の効果】
【００１３】
本発明によれば、コンピュータシステムの脆弱性が利用されるのを防止することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
【００１５】
セキュリティポリシーを配布および施行するための方法およびシステムが提供される。分散ファイアウォールシステムは、ポリシーサーバコンポーネント、ファイアウォールエージェント、施行エンジンを備える。保護対象のホストコンピュータシステムで実行されるファイアウォールエージェントは、施行エンジンのためのセキュリティポリシーをポリシーサーバから受け取り、施行エンジンは、これらのセキュリティポリシーをホストコンピュータシステム上で施行することを担う。セキュリティポリシーは、実行スコープおよび関連する規則を有する。実行スコープは、関連する規則が適用されることになるプロセスまたはアプリケーションの属性を定義する。規則は、条件と、条件が満たされるときに実施される動作とを提供する。規則は規則タイプ（セキュリティタイプとも呼ばれる）も有し、規則タイプは、規則の施行を担う施行エンジンをファイアウォールエージェントが識別するのに使用される。ファイアウォールエージェントは、ユーザモードおよびカーネルモードで実行される施行エンジンにセキュリティポリシーを配布することができる。施行エンジンは、分散ファイアウォールのための階層型の手法を提供することができる。例えば、施行エンジンをホストコンピュータシステムにインストールして、ＩＳＯ（International Organization for Standardization）７層参照モデルの様々な層における侵入を防止することができる。ネットワーク層、トランスポート層、セッション層はそれぞれ、その層における侵入の試みを検出するように開発された施行エンジンを有することができる。ホストコンピュータシステムで受け取ったセキュリティポリシーを配布するために、ファイアウォールエージェントは、規則タイプに部分的に基づいて、どの施行エンジンに規則が適用されるかを識別する。次いでファイアウォールエージェントは、識別された施行エンジンに規則を配布し、次いで施行エンジンは規則を施行する。施行エンジンは、規則を受け取ると、規則をそのサブコンポーネントに適宜配布することができる。例えば、ファイアウォールエージェントは、複数のカーネルモード施行エンジンに向けたすべての規則を単一のカーネルモードセキュリティコンポーネントに配布することができ、次いで単一のカーネルモードセキュリティコンポーネントは、規則を施行エンジンに配布する。このようにして、この分散ファイアウォールシステムは、ホストコンピュータシステムに様々な保護層を提供する複数の施行エンジンにセキュリティポリシー規則を配布するための、単一の機構を提供する。
【００１６】
一実施形態では、セキュリティポリシーは、条件と、動作と、任意選択で例外とを指定する規則を含む。例えば、規則は、アプリケーションがポート８０以外のどのネットワークポート上でもメッセージを受信しないことを指示することができる。この規則の条件は、メッセージがポート８０以外のネットワークポート上で受信されたときに満たされ、動作の結果、メッセージは廃棄される。別の例として、規則は、アプリケーションがネットワークポート８０上でメッセージを送信しようとしたときに、この規則が施行されているコンピューティングシステムのユーザに許可を求めるべきであることを指示する。規則は、それらの挙動に基づいて規則タイプまたはセキュリティタイプに類別することができる。例えば、ネットワークセキュリティタイプを有する規則は、ネットワークトラフィックのためのセキュリティ施行に向けることができる。各セキュリティタイプは、そのセキュリティタイプの規則を施行するためのそれ自体のセキュリティコンポーネントを有することができる。セキュリティポリシーを指定するための言語は、２００４年７月１日に出願された「Languages for Expressing Security Policies」という名称の米国特許出願第１０／８８２４３８号に記載されている。
【００１７】
規則の条件、動作、例外は、式として指定することができる。規則は、「ＩＦ条件ＴＨＥＮ動作ＥＸＣＥＰＴ例外」として意味的に表現することができる。規則の条件は、規則のセキュリティ施行動作が実施されることになる状況の式である。動作は、条件が満たされるときに実施されるアクティビティの式である。１つの規則が複数の動作を有することもできる。例外は、条件が満たされても動作が実施されない場合があるときの式である。条件は静的または動的とすることができる。静的な条件は例えば、ハードコードされたファイルリスト（hard-coded list of files）を参照するものである。動的な条件は例えば、クエリを実施して、提供された基準にマッチするファイルリストを決定するものである。セキュリティ施行動作には、セキュリティ施行イベントを引き起こした要求を許可すること、要求を拒否すること、ユーザに入力を求めること、ユーザに通知することなどを含めることができる。その他の規則構造も可能である。例として、「ｅｌｓｅ」構造を追加して、条件が偽であるときに代替動作を実施することができる。
【００１８】
図１は、一実施形態における分散ファイアウォールシステムを示すブロック図である。企業がネットワークシステム１００を有することができ、ネットワークシステム１００は、ポリシーサーバコンピュータシステム１１０およびホストコンピュータシステム１２０を含む。システム管理者は、ポリシーサーバコンピュータシステムのポリシーサーバコンポーネント１１１を使用して、セキュリティポリシーストア１１２に記憶されるセキュリティポリシーを準備し、ホストコンピュータシステムに配布する。各ホストコンピュータシステムは、ファイアウォールエージェント１２１、施行エンジン１２２、ポリシーストア１２３を備える。ファイアウォールエージェントは、ホストコンピュータシステムがセキュリティポリシーを受け取ってそのホストコンピュータシステムの施行エンジンに配布するための、中央機構を提供する。ホストコンピュータシステムのファイアウォールエージェントは、ポリシーサーバコンピュータシステムからセキュリティポリシーを受け取ると、セキュリティポリシーをポリシーストアに記憶する。次いでファイアウォールエージェントは、セキュリティポリシーを規則ごとに処理し、規則を適切な施行エンジンに提供する。ファイアウォールエージェントは、様々なセキュリティポリシーを組み合わせることができ、セキュリティポリシーの規則を順序付けることができ、セキュリティポリシーの施行に影響するであろうセキュリティポリシーまたはシステム構成の変更を施行エンジンに動的に通知することができる。このような組合せ、順序付け、通知は、２００４年１０月１４日に出願された「Method and System for Merging Security Policies」という名称の米国特許出願第１０／９６６８００号に記載されている。次いで、施行エンジンは、規則をネットワークイベントに適用することによって規則を施行する。施行エンジンは、様々なタイプのセキュリティ施行を提供することができる。施行エンジンは、ある種の挙動を行う試みを検出して、この試みを阻止することができる。例えば、ウイルスに感染したアプリケーションが、オペレーティングシステムのいくつかのファイルを削除しようとする場合がある。このアプリケーションと同じプロセス空間で実行されているセキュリティエンジンが、ファイルを削除する試みを検出して阻止することができる。挙動阻止を実施するためのセキュリティエンジンは、２００４年４月２７日に出願された「A Method and System for Enforcing a Security Policy via a Security Virtual Machine」という名称の米国特許出願第１０／８３２７９８号に記載されている。施行エンジンは、ＩＰ（Internet Protocol）、ＩＣＭＰ（Internet Control Message Protocol）、ＴＣＰ（Transmission Control Protocol）、ＦＴＰ（file transfer protocol）、ＤＮＳ（Domain Name System）、ＨＴＴＰ（hypertext transfer protocol）、ＲＰＣ（remote procedure call）など、様々なプロトコルのネットワークイベントに規則を適用するように適合させることができる。脆弱性の利用を防止する技法は、２００４年９月３０日に出願された「Method and System for Filtering Communications to Prevent Exploitation of a Software Vulnerability」という名称の米国特許出願第１０／９５５９６３号に記載されている。
【００１９】
図２は、一実施形態における、ホストコンピュータシステム上で実行される分散ファイアウォールシステムのコンポーネントを示すブロック図である。ホストコンピュータシステムは、ファイアウォールエージェントコンポーネント２２０、カーネルモードコンポーネント２３０、アプリケーションユーザモードコンポーネント２４０を備える。ファイアウォールエージェントコンポーネントは、ポリシー受信コンポーネント２２１、ポリシー解析コンポーネント２２２、ポリシー配布コンポーネント２２３を含む。ファイアウォールエージェントコンポーネントはまた、ポリシーストア２２４および構成マネージャ２２５も含む。ポリシー受信コンポーネントは、ポリシーサーバコンピュータシステムから提供されたセキュリティポリシーを受け取り、ポリシーストアに記憶する。ポリシー解析コンポーネントは、ポリシーをポリシーストアから取り出し、施行エンジンによって処理されるようにこれらをより低水準の言語に変換する。ポリシー配布コンポーネントは、解析されたセキュリティポリシーを受け取り、セキュリティポリシーの規則を適切な施行エンジンに配布する。構成マネージャは、ホストコンピュータシステムの現在構成に基づいてどの規則をどの施行エンジンに配布すべきかを決定する際に使用される構成情報を提供する。
【００２０】
カーネルモードコンポーネントは、施行エンジン２３１、フローマネージャコンポーネント２３３、プロトコルフック２３４を含む。これらのコンポーネントは、層０から層Ｎまでに階層化することができ、これらの層はＩＳＯ７層参照モデルの様々な層に対応するものとすることができる。各層は、関連するプロトコルフック、フローマネージャ、施行エンジンを有することができる。施行エンジンは、その層に特有であり、その層に特有のネットワークイベントを解析し、ファイアウォールエージェントからその層に提供された規則を施行する。各層に対する規則は、その層に特有とすることのできる規則ストア２３２に記憶される。フローマネージャコンポーネントは、ネットワークイベントをインターセプトして、規則を施行するために対応する施行エンジンを呼び出すことを担う。各フローマネージャコンポーネントは、対応する層におけるネットワークイベントを検出することを担う対応するプロトコルフックから、ネットワークイベントを受け取る。アプリケーションユーザモードコンポーネントは、全体的なアーキテクチャにおいてカーネルモードコンポーネントと同様の方式で階層型セキュリティを提供するための、アプリケーションにリンクするダイナミックリンクライブラリとして提供することができる。
【００２１】
この配布システムが実現されるコンピューティングデバイスは、中央処理装置、メモリ、入力デバイス（例えばキーボードやポインティングデバイス）、出力デバイス（例えば表示デバイス）、記憶デバイス（例えばディスクドライブ）を備えることができる。メモリおよび記憶デバイスは、配布システムを実現する命令を含むことのできるコンピュータ可読媒体である。さらに、データ構造およびメッセージ構造は、通信リンク上の信号などのデータ伝送媒体を介して記憶または伝送することもできる。インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、ポイントツーポイントダイヤルアップ接続、セルホンネットワークなど、様々な通信リンクを使用することができる。
【００２２】
この配布システムは様々な動作環境で実現することができ、これらの環境には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家庭用電化製品、デジタルカメラ、ネットワークＰＣ（personal computer）、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。ホストコンピュータシステムは、セルホン、パーソナルデジタルアシスタント、スマートホン、パーソナルコンピュータ、プログラム可能な家庭用電化製品、デジタルカメラなどとすることができる。
【００２３】
この配布システムは、プログラムモジュールなど、１つまたは複数のコンピュータまたはその他のデバイスによって実行されるコンピュータ実行可能命令の一般的な状況で述べることができる。一般に、プログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態で望まれるように結合または分散させることができる。
【００２４】
図３は、一実施形態における、ファイアウォールエージェントのポリシー配布コンポーネントの処理を示す流れ図である。このコンポーネントは、ポリシー解析コンポーネントからポリシーを受け取ると、規則が適用される施行エンジンを識別し、識別された施行エンジンに規則を配布する。ブロック３０１〜３０７で、コンポーネントはループしてセキュリティポリシーを選択する。ブロック３０１で、コンポーネントは次のセキュリティポリシーを選択する。判定ブロック３０２で、すべてのセキュリティポリシーがすでに選択されている場合は、コンポーネントは完了し、そうでない場合はブロック３０３に進む。ブロック３０３〜３０７で、コンポーネントはループして、選択されたセキュリティポリシー内の各規則を処理する。ブロック３０３で、コンポーネントは、選択されたセキュリティポリシーの次の規則を選択する。判定ブロック３０４で、選択されたセキュリティポリシーのすべての規則がすでに選択されている場合は、コンポーネントはブロック３０１にループして、次のセキュリティポリシーを選択し、そうでない場合はブロック３０５に進む。ブロック３０５で、コンポーネントは、選択されたセキュリティ規則の規則タイプ（またはセキュリティタイプ）を識別する。ブロック３０６で、コンポーネントは、識別された規則タイプの規則を施行することを担う施行エンジンを識別する。ブロック３０７で、コンポーネントは、選択された規則を識別されたコンポーネントに提供し、次いでブロック３０３にループして、選択されたセキュリティポリシーの次の規則を選択する。
【００２５】
図４は、一実施形態におけるフローマネージャコンポーネントの処理を示す流れ図である。フローマネージャコンポーネントは、ネットワークイベントを渡され、このネットワークイベントを処理するための適切な施行エンジンを呼び出す。フローマネージャコンポーネントは、各層ごとの、その層だけのネットワークイベントを処理する別々のフローマネージャとして実現してもよく、あるいは、すべての層のネットワークイベントを処理する単一のフローマネージャコンポーネントとして実現してもよい。例示するこの実施形態では、フローマネージャコンポーネントは、すべての層に関するすべてのネットワークイベントを処理する。判定ブロック４０１〜４０３で、コンポーネントは、ネットワークイベントが該当する層を識別する。次いでコンポーネントは、ブロック４１０〜４１３で、この層に関連する施行エンジンを呼び出す。次いでコンポーネントは完了する。フローマネージャは、各ネットワーク接続ごとに別々のフローを維持することができる。施行エンジンおよびフローマネージャは、層、および層によって実施されるプロトコルに特有とすることができる。例えば、接続がパケット層で伝送制御プロトコル（「ＴＣＰ」）またはユーザデータグラムプロトコル（「ＵＤＰ」）を使用するとき、フローマネージャはこのプロトコルに適した施行エンジンを呼び出す。呼び出された施行エンジンは、ある呼出しから次の呼出しへのステート情報を追跡するためのデータ構造をインスタンス化することができる。ユーザモード施行エンジンによって保護される各アプリケーションもまた、各接続ごとに別々のフローを持つフローマネージャを有することができる。
【００２６】
図５は、一実施形態における、特定の層の施行エンジンの処理を示す流れ図である。分散ファイアウォールシステムのコンポーネントの１つである施行エンジンは、ネットワークイベントを提供され、このイベントに適用される規則を識別し、規則の条件が満たされるかどうか判定し、満たされる場合は、規則に関連する動作を実施する。ブロック５０１〜５０４で、コンポーネントはループして、施行エンジンの層に関連する各規則を選択する。ブロック５０１で、コンポーネントは次の規則を選択する。判定ブロック５０２で、すべての規則がすでに選択されている場合は、コンポーネントは完了し、そうでない場合はブロック５０３に進む。判定ブロック５０３で、規則の条件が満たされる場合は、コンポーネントはブロック５０４に進み、そうでない場合は、ブロック５０１にループして次の規則を選択する。ブロック５０４で、コンポーネントは、規則に関連する動作を実施し、次いでブロック５０１にループして次の規則を選択する。各施行エンジンは、その層に適したネットワークイベントおよび規則を処理するように適合させることができる。例えば、ネットワーク層の施行エンジンは、ネットワークパケットを解析し、ネットワークパケットに関係する規則を施行することができる。アプリケーション層の施行エンジンは、そのアプリケーションに関係するファイルへのアクセスまたは修正を行おうとする未許可の試みを検出することができる。
【００２７】
以上のことから、本明細書では例示のために分散ファイアウォールシステムの特定の実施形態を述べたが、本発明の趣旨および範囲を逸脱することなく様々な修正を加えることができることが理解されるであろう。したがって本発明は、添付の特許請求の範囲による場合を除いては限定されない。
【図面の簡単な説明】
【００２８】
【図１】一実施形態における分散ファイアウォールシステムを示すブロック図である。
【図２】一実施形態における、ホストコンピュータシステム上で実行される分散ファイアウォールシステムの各部のコンポーネントを示すブロック図である。
【図３】一実施形態における、ファイアウォールエージェントのポリシー配布コンポーネントの処理を示す流れ図である。
【図４】一実施形態におけるフローマネージャコンポーネントの処理を示す流れ図である。
【図５】一実施形態における、特定の層の施行エンジンの処理を示す流れ図である。
【符号の説明】
【００２９】
１００  分散ファイアウォールシステム
１１０  ポリシーサーバ
１１１  ポリシーサーバコンポーネント
１１２  ポリシーストア
１２０  ホスト
１２１  ファイアウォールエージェント
１２２  施行エンジン
１２３  ポリシーストア
【図１】
2006146891.tif 000003
【図２】
2006146891.tif 000004
【図３】
2006146891.tif 000005
【図４】
2006146891.tif 000006
【図５】
2006146891.tif 000007