(57)【特許請求の範囲】
【請求項１】
複数の規定された事象を検知することに応答して同事象を記述した事象メッセージを生成するインタセプタを有するコンピュータと、
前記事象メッセージによって記述された事象についての情報をリアルタイム状態情報として格納する、前記コンピュータ上の記憶装置と、を備え、
前記コンピュータは、システム資源へのアクセス規則に違反していることを判定すると、同資源に対するアクセスの実行を阻止するように動作し、前記アクセス規則は、前記検知された事象によって生じるシステム上での活動のパターンに基づき、システム上での許可可能な活動を管理するためのものであり、
前記システム資源へのアクセス規則に違反していることを判定する処理は、システム資源への許容可能なアクセスの基準と、前記検知された事象によって生じるシステム上での活動と、前記リアルタイム状態情報とに基づいて、前記事象メッセージを評価することを含み、
前記規定の事象を検知する処理は、通常の活動パターンで配置された規定の事象を検出する状態収集モードで動作し、その後、規定の事象のパターンと異常パターンの両方が検知され作用を受ける閉じ込めモードで動作することを含むことを特徴とするコンピュータ実行型参照モニタ。
【請求項２】
別のコンピュータ上で実行される外部事象メッセージ生成処理によって、外部事象メッセージが前記コンピュータに伝達されることを特徴とする請求項１に記載のコンピュータ実行型参照モニタ。
【請求項３】
前記アクセス規則は、活動規則セットとして選択された特定の規則セットのみが特定の時間に効力を発揮するように活動規則セットと非活動規則セットとの選択を実行するように機能する、コンパイルされた規則バイトコードをさらに含むことを特徴とする請求項１に記載の前記コンピュータ実行型参照モニタ。
【請求項４】
前記規則バイトコードを所定の記憶領域に上書きし、且つ改訂された活動規則セットを有効にするように改訂後の規則バイトコードをさらに上書きするように機能し、
前記規則セットは、継続的なシステム動作の間において改変されることを特徴とする請求項３に記載の前記コンピュータ実行型参照モニタ。
【請求項５】
許容可能な及び許容不可能な活動を規定する前記アクセス規則は、所定の事象パターンと識別された禁止パターンとをさらに含むことを特徴とする請求項４に記載の前記コンピュータ実行型参照モニタ。
【請求項６】
複数の規定された事象を検知することに応答して同事象を記述した事象メッセージを生成する複数のインタセプタを有するコンピュータと、
前記事象メッセージによって記述された事象についての情報をリアルタイム状態情報として格納する、コンピュータ上の記憶装置と、を備え、
前記コンピュータは、異なる複数のインタセプタでそれぞれ検知された事象を関連付けるべく、異なる複数のインタセプタに亘って前記リアルタイム状態情報を関連付ける処理を実行し、
前記コンピュータは、システム資源へのアクセス規則に違反していることを判定すると、同資源に対するアクセスの実行を阻止するように動作し、前記アクセス規則は、前記検知された事象によって生じるシステム上での活動のパターンに基づき、システム上での許可可能な活動を管理するためのものであり、
前記システム資源へのアクセス規則に違反していることを判定する処理は、システム資源への許容可能なアクセスの基準と、前記検知された事象によって生じるシステム上での活動と、前記リアルタイム状態情報とに基づいて、前記事象メッセージを評価することを含み、
前記規定の事象を検知する処理は、通常の活動パターンで配置された規定の事象を検出する状態収集モードで動作し、その後、規定の事象のパターンと異常パターンの両方が検知され作用を受ける閉じ込めモードで動作することを含むことを特徴とするコンピュータ実行型参照モニタ。
【請求項７】
前記複数のインタセプタのうちの少なくとも一つは、コンピュータオペレーティングシステムの一要素であることを特徴とする請求項６に記載のコンピュータ実行型参照モニタ。
【請求項８】
前記アクセス規則は、リアルタイム参照モニタを再起動すること無しに変更可能であることを特徴とする請求項６に記載の前記コンピュータ実行型参照モニタ。
【請求項９】
前記記憶装置は前記アクセス規則が変更されたときに記憶内容を保持することを特徴とする請求項６に記載の前記コンピュータ実行型参照モニタ。
【請求項１０】
前記複数のインタセプタは二つ以上のシステム資源を監視し、前記記憶装置における記憶領域は単一の記憶領域であることを特徴とする請求項６に記載の前記コンピュータ実行型参照モニタ。
【請求項１１】
前記複数のインタセプタは、ファイルアクセス、レジストリアクセス、ネットワークアクセス、オブジェクトアクセス、システム呼出アクセス、キーボードアクセス、外部入力及びユーザ入力のうちの二つ以上を監視することを特徴とする請求項６に記載の前記コンピュータ実行型参照モニタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピュータシステムの動作方針を制御するソフトウェアに関する。例えば、ファイルおよびネットワーク接続などの種々のシステム資源へのアクセスがそのように制御可能である。
【背景技術】
【０００２】
最近のコンピュータシステムは２段階のソフトウェア、オペレーティングシステムとアプリケーションソフトウェア、によって制御される。オペレーティングシステムは、コンピュータのメモリ内の、オペレーティングシステム空間内で実行されるオペレーティングシステムシステムと、アプリケーション空間内で実行されるアプリケーションとの間の分離を保持する。
【０００３】
アプリケーションは、電子メールメッセージを処理するなどの業務上の問題に対する解決策を提供するソフトウェアである。アプリケーションは、記憶媒体に格納されたネットワーク接続またはファイルなどの資源へのアクセスのための要求をオペレーティングシステムに伝達することによって、その作業を行う。
【０００４】
多くの種類の動作方針の内のいずれか一つ以上を制御することが望まれることも有り得る。一つの共通したシナリオは、故意で悪意のある攻撃からシステムを守るため、または、種々の処理の正しく不干渉な動作を保証するために、上述したように、種々のシステム資源へのアクセスを制御することである。説明のために、セキュリティのためのアクセス制御が述べられている。しかしながら、本記述が、以下の記述の中で明瞭に指摘されかつ暗示されるように、更に広い意味を有することは、当業者にとっては明らかであろう。
【０００５】
そのセキュリティシステム例において、アクセスは一つ以上のリアルタイム処理によって従来の方法で制御されるが、方針は一つ以上の非リアルタイム処理の支援によって別個に確立される。この記述の文脈において、リアルタイム処理とは、そのリアルタイム処理と関連するトランザクションが処理される速度にほとんど影響しないほど、行為が十分速く行われる処理のことである。非リアルタイム処理とは、トランザクションが自然に発生する瞬間速度よりも十分遅い速度でトランザクションを処理する処理のことである。
リアルタイムアクセス制御処理とデータ構造は、参照モニタ、アクセス制御リスト、許可フラグ、アクセストークン、および処理ＩＤチェックを含むが、これらに限定されない。参照モニタとは、コンピュータシステムの構成要素であって、一つの構成要素、例えばユーザ処理、による、他の構成要素、例えばファイル、のアクセスが許可されるかどうかを判定する。
【０００６】
以下に用いられるように、ダイナミック状態とは、情報の集まりであって、リアルタイムに集められ、機械または処理の状態を、その状態に至る特定の事象列の結果として表す。無状態システムまたは構成要素とは、そのようなデータを集めないものをいう。
【０００７】
ここでは無状態参照モニタと呼ばれる従来の参照モニタは、例えば、マイクロソフト（登録商標）のウインドウズ（商標）２０００またはユニックスを含む種々のオペレーティングシステムのカーネルの中に見られる。それらは、ファイルまたは他の資源への特定のアクセスが許可されるかどうかを判定するために用いられる。
【０００８】
従来のオペレーティングシステムは、埋め込み型無状態参照モニタを有し、資源へのアクセスを制御する。ユーザ処理は、ユーザが供給するある種の識別トークンに基づいて開
始され、ユーザに対して識別される。ほとんどの場合、そのアクセス決定は、そのローカルプログラムまたは処理が、要求と、資源に関する一つ以上の静的許可フラグまたは一つのアクセス制御リストとを作る、ユーザのアイデンティティに基づいてなされる。例えば、ユニックスまたはウインドウズ２０００を参照のこと。静的許可フラグとアクセス制御リストの内容は、システムの現在状態を表す情報を含まず、むしろ、システムの状態に拘わらず同じ結果を生成する情報を含んでいる。
【０００９】
最もありふれた参照モニタは単一資源型（例えば、ファイルやネットワーク接続）を扱う。Ｃｏｍｐｕｔｅｒ  Ａｓｓｏｃｉａｔｅｓが提供しているｅＴｒｕｓｔ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ｖ．５．１などのいくつかのものは多重資源型を保護する。
【００１０】
いくつかのオペレーティングシステムは、個々の許可を各ユーザと関係付け、それらの許可を資源の静的アクセス制御リストと比べてチェックすることによってきめ細かい制御を行う。このことは改善点であるが、一般的には限定された数の許可フラグがあるだけである。セキュリティ強化型リナックスはそのようなオペレーティングシステムの一例である。
【００１１】
更にきめが細かくて、個々のユーザがトークン一式を提供できるようにするオペレーティングシステムがあり、いくつかがアクセス制御リストに見られるものと合致するならば、アクセスが認められる。
アクセス制御決定の中に要求プログラムの起点を含むことができる動作環境がある。（例えば、非特許文献１参照）。
【００１２】
従来は、非リアルタイム処理が採用され、有効な方針、例えば、セキュリティ方針を確立または修正するために、データを集め、過去の事象を分析する。一般に、従来の非リアルタイム処理は、例えば、侵入検知システムを含んでいる。
【００１３】
侵入検知システムの一つの種類としては、侵入を表すデータのためのログファイルをポーリング（ｐｏｌｌ）し、監視し、周期的に調べる、またはそのいずれかを行う独立エージェントがある。そのような非リアルタイムシステムの欠点は、侵入が「犯行以後」にのみ検出されることである。侵入者は、ログファイルおよびその他の場所に記録された、侵入としか説明のつかない行為の監査証跡を残す。しかしながら、そのような非リアルタイム侵入検知システムが侵入を識別するときまでに、侵入者はとっくにいなくなっており、被害を被ることになる。（例えば、非特許文献２、非特許文献３、非特許文献４参照）。
【００１４】
上記に述べられているか参照されているような侵入検知システムによって行われる分析は、上記にも述べられているように、リアルタイム構成要素によって実施されるべき方針を開発するのに役立つ。例えば、過去の作用からの侵入検知によって調べられたパターンに基づいて更に複雑な規則に従うことができる参照モニタがあるが、それらは各制御された要求についてのそれらの状態を更新することはできない。（例えば、非特許文献５参照）
【非特許文献１】Ｄａｎ  Ｗａｌｌａｃｈ氏とＥｄｗａｒｄ  Ｆｅｌｔｏｎ氏による「ジャバスタック検査の理解（Ｕｎｄｅｒｓｔａｎｄｉｎｇ  Ｊａｖａ  Ｓｔａｃｋ  Ｉｎｓｐｅｃｔｉｏｎ）」（セキュリティとプライバシーについてのＩＥＥＥ会報、１９９８年５月号）
【非特許文献２】Ｐｅｔｅｒ  Ｇ．  Ｎｅｕｍａｎｎ氏とＰｈｉｌｌｉｐ  Ａ．Ｐｏｒｒａｓ氏による「Ｅｘｐｅｒｉｅｎｃｅ  ｗｉｔｈ  ＥＭＥＲＡＬＤ  ｔｏ  Ｄａｔｅ」（侵入検知とネットワーク監視についての第１回ＵＳＥＮＩＸ研究会、１９９９年４月）
【非特許文献３】Ｅｕｇｅｎｅ  Ｓｐａｆｆｏｒｄ氏等による「独立エージェントを用いた侵入検知（Ｉｎｔｒｕｓｉｏｎ  ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａｕｔｏｎｏｍｏｕｓ  ａｇｅｎｔｓ）」（コンピュータネットワーク３４（２０００年）
【非特許文献４】Ｓｔｅｖｅｎ  Ｒ．  Ｓｎａｐｐ氏等による「分散侵入検知システム−動機付け、体系、および初期原型（ＤＩＤＳ  （Ｄｉｓｔｒｉｂｕｔｅｄ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）――Ｍｏｔｉｖａｔｉｏｎ，Ａｒｃｈｉｔｅｃｔｕｒｅ，ａｎｄＡｎ  Ｅａｒｌｙ  Ｐｒｏｔｏｔｙｐｅ）」（第１４回ナショナルコンピュータセキュリティ会議議事録、１９９１年１０月）
【非特許文献５】Ｄｅｂｒａ  Ａｎｄｅｒｓｏｎ氏等による「次世代侵入検知エキスパートシステム概要（Ｎｅｘｔ−ｇｅｎｅｒａｔｉｏｎ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｅｘｐｅｒｔ  Ｓｙｓｔｅｍ（ＮＩＤＥＳ）  Ａ  ＳＵＭＭＡＲＹ）（ＳＲＩインタナショナル、１９９５年５月）
【発明の開示】
【発明が解決しようとする課題】
【００１５】
遠隔地ハッカーの危険性が伴うネットワークコンピューティングの進歩は、アクセス制御決定を更に困難にする。ほとんどのシステムは、そのアクセス制御決定を、上述したように、特定のユーザに結び付けられたローカル要求プログラムのアイデンティティに基づいて行い、遠隔地ハッカーの恐らくは未知のアイデンティティに基づいて行っていない。
【００１６】
また、前述のものの明らかな組み合わせで構成された従来のシステムは、種々のユーザ、処理、アクセス形式等の間の一線を超える作用のパターンに基づいてアクセスを検知または制御していない。前述のものの明らかな組み合わせで構成された従来のシステムは、新しく経験した脅威に応じて、リアルタイムに、動的に方針を調節することはしない。
【００１７】
従来のシステムは、無状態参照モニタに固有であって、遠隔地ハッカーが信用のあるローカルプログラムをそれによって壊すことができるローカル・アプリケーション・プログラム・エラーの前ではほとんど弾力性のない、動的状態の欠乏に苦慮している。アプリケーションプログラムエラー、すなわち、バグは、プログラムが誤りやすために常に存在し続け、そのテストはすべての種類の悪意ある攻撃を合理的に予見することはできない。
【００１８】
従来の参照モニタが使われる場合、ひとたび攻撃者がローカルアプリケーションを壊そうとするや否や、攻撃者は一般的にそのアプリケーションについてのすべての権利と特権を有する。電子商取引サーバの場合、これは、トランザクション履歴とそれに関連するクレジットカード情報とを見るための能力を含む可能性がある。
【００１９】
最後に、すでに上述したように、従来のシステムは、攻撃の種々の部分が、種々のプログラムまたは処理の一見通常の動作であって組み合わされたときのみ攻撃を形成する動作によって行われる、そういった攻撃を検知し反応することができない。
【課題を解決するための手段】
【００２０】
本発明は、セキュリティ方針などの、コンピュータシステムの動作方針を制御するための改善されたシステム、方法、およびソフトウェア製品を提供する。本発明の一つの実施態様の一側面に従って、リアルタイム参照モニタソフトウェア製品は、機械読み取り可能媒体上に一連の命令を備え、前記一連の命令が、リアルタイム状態情報が格納され、該状態情報がそこから復旧される記憶領域と、活動のパターンに基づいて許容可能な活動を規定する複数の規則と、前記活動を前記活動への規則の適用に基づいて識別し管理する複数のインタセプタと、を規定するソフトウェア製品である。前記ソフトウェアは、前記状態情報を前記複数のインタセプタのうちの種々のインタセプタに亙って関連付ける処理を含むことができる。前記複数のインタセプタの少なくとも一つが従来のコンピュータオペレーティングシステムの既存の要素であることができる。前記状態情報を関連付ける処理は、
許容される資源基準を、前記インタセプタ資源基準と前記状態情報とによって識別される活動を考慮して規定する規則と、前記識別された活動と前記状態情報とに前記規則を適用する規則インタプリタと、を含むことができる。前記規則は前記リアルタイム参照モニタを再起動せずに変更可能である。前記複数の参照インタセプタは二つ以上の資源型と対応でき、前記記憶領域は単一記憶領域である。前記記憶領域内容は前記規則が変更されたときに保存可能である。前記ソフトウェア製品は、同じシステム上のアプリケーションプログラムにメッセージを送ることができるアプリケーションプログラムインタフェースを更に含むことが可能である。このソフトウェア製品は、他のシステム上のアプリケーションプログラムにメッセージを送ることができるアプリケーションプログラムインタフェースを更に含むことができる。前記複数の参照インタセプタは、ファイルアクセス、レジストリアクセス、ネットワークアクセス、オブジェクトアクセス、システム呼出アクセス、キーボードアクセス、外部入力、およびユーザ入力の内の二つ以上を監視することができる。本発明の実施態様のもう一つの側面に従って、コンピュータ実行型参照モニタは、複数の規定された事象を検知し事象メッセージを生成する、コンピュータ上で実行される監視処理と、前記監視処理によって生成された事象メッセージに関する情報が格納された、前記コンピュータ上の記憶装置と、前記コンピュータの動作を変更することによって、事象メッセージの特性と、前記記憶装置に格納された情報と、一組の規則とに対応する、コンピュータ上で実行する、規則翻訳処理と、を含む。前記一組の規則は前記記憶装置に格納された情報に応じて変更可能である。前記一組の規則は変更可能であり、前記記憶装置に格納された情報は、前記一組の規則が変更されたときに保存される。最後に、外部事象メッセージ生成処理が、別のコンピュータ上で実行可能であり、事象メッセージを前記規則翻訳処理に伝達することができる。
【００２１】
本発明の実施態様の更なるもう一つの側面に従い、コンピュータ上で処理方針を実行する方法は、それぞれが複数の規定された事象型のうちの一つを有する第１事象と第２事象を検知するステップと、それぞれが前記第１事象と第２事象のうちの対応する一つについての情報を含む第１事象メッセージと第２事象メッセージを生成するステップと、前記第１事象についての情報を記憶するステップと、前記第１事象についての前記記憶された情報と前記第２事象についての情報とに応じた処理方針を実施するステップと、を含む。前記方法は、一組の規則のうちの一つを前記第１事象についての前記記憶された情報と前記第２事象についての情報とに適用して前記方針を実施する内容を判定するステップを更に含むことができる。前記方法は、前記コンピュータ上でオペレーティングシステムを実行するステップと、前記オペレーティングシステムを再起動することなく、かつ、前記記憶された情報を失うことなく、前記一組の規則を変更するステップと、を更に含むことができる。最後に、前記方法は、前記検知、生成、記憶、および実施を妨害することなく前記一組の規則を変更するステップを含むことができる。
【発明を実施するための最良の形態】
【００２２】
本発明は、その実施態様の種々の側面についての以下の詳細な説明により更に明らかとなる。
本発明の実施態様の側面を図１により説明する。典型的な実施態様はコンピュータシステムのセキュリティ領域の中にあるが、本発明は、当業者にとって明らかなように、他の領域内のシステム内に容易に具体化されることができる。
【００２３】
コンピュータにおいて、システムセキュリティの一つの重要な側面は、システム事象１００、例えば、資源へのアクセス要求、を監視することと、システム事象の影響を制御すること、例えば、資源への必要なアクセスを妨げるか許可すること、とである。事象を監視するために、インタセプタ１０１が、システム事象が通過する制御経路または通信経路に挿入される。例えば、監視された事象がネットワークアクセス要求ならば、インタセプタ１０１は、ネットワークアクセス要求がオペレーティングシステムのある部分から他の
部分へ伝達される点でオペレーティングシステム内に挿入される。インタセプタ１０１は、阻止した各事象１００のための事象メッセージを生成する。事象メッセージ１０３は状態参照モニタ１０４に伝達され、状態参照モニタ１０４はインタセプタ１０１に方針メッセージ１０５を返す。方針メッセージ１０５は、インタセプタ１０１がとる行為、例えば、アクセス要求事象１００を、制御経路または通信経路１０２に沿って、その意図する影響を持ち続けさせる行為、または、その事象１００を経路１０２に沿って通過させない行為などである。他の特に指定されていない事象モニタによって生成された外部事象メッセージ１０６は、状態参照モニタ１０４によっても処理可能である。状態参照モニタ１０４はユーザコンソール１０７およびログファイル１０８とも通信する。
【００２４】
図１の状態参照モニタ１０４を図２を用いて更に詳細に説明する。典型的な参照モニタ１０４は、ドライバとして、オペレーティングシステムの一部として実行されるようになっている。この典型的な参照モニタ１０４は、ここでは状態参照モニタと呼ばれる。なぜなら、それは、以下に述べるように、決定方針を実行するにおいて、システム状態情報を保持すると共に、その変更に信頼を置いているからである。この状態参照モニタ１０４は、オペレーティングシステムシステムの他の部分と通信すると共に、通信チャンネルを介してアプリケーションと通信する。一つのチャンネル２０１は、上述したように、事象メッセージ１０３と方針メッセージ１０５を運ぶ。他のチャンネル２０２は、外部事象メッセージ１０６にみならず、アプリケーション空間２０３からとそこへのその他のメッセージを運ぶ。このその他のメッセージはユーザコンソール１０７およびログ１０８からとそこへのメッセージを含むがそれに限定されない。
【００２５】
通信チャンネル２０１は、状態参照モニタ１０４からとそこへのメッセージを、規則アプリケーションプログラミングインタフェース（ＡＰＩ）２１１を介して伝送する。通信チャンネル２０２は、状態参照モニタ１０４からとそこへのメッセージをユーザＡＰＩ２０４を介して伝送する。
【００２６】
状態参照モニタ１０４内で、すべての種類のメッセージ、特に事象メッセージ１０３と外部事象メッセージ１０６が、事象ルータ２０５によって、状態参照モニタ１０４の規則ＡＰＩ２１１、ユーザＡＰＩ２０４、および他の構成要素との間で経由転送および直接転送される。事象ルータ２０５は、すべての内部通信を方向決めし制御する、状態参照モニタ１０４の通信センタである。
【００２７】
状態参照モニタ１０４の主要な動作論理は、規則インタプリタ２０６の中に含まれており、規則インタプリタ２０６はまた状態データベース２０７とコンパイルされた規則バイトコード２０８の内容を利用する。規則インタプリタ２０６は、設計によって極めてバグに耐えるようにできる一片の小さく簡単な論理で有り得る。状態データベース２０７は、単に動的状態情報の保存手段であり、従って容易にバグに耐えることができる。状態データベース２０７は、少なくとも、安定したメモリまたは記憶場所内の一部に存在することができるので、オペレーティングシステム再立上げを生き延びることができる。
【００２８】
コンパイルされた規則バイトコード２０８は、実施される動作方針を表し、それに対してシステム内の活動と状態がチェックされる。そのように、システムの複雑性の多くがバイトコード２０８内に存在することができる。バイトコード２０８はまた、バグを減らすか無くす設計技法に従わなければならないとしても、バイトコード２０８内のバグが、オペレーティングシステムを破損させることができず、単に不適切な方針決定を行うことができるということは何の価値もない。従って、更に頑健なシステムは、規則のバイトコード２０８への分割と解釈論理の規則インタプリタ２０６への分割から生じる。
【００２９】
状態情報は、ある事象が現時点のある時間内に発生したという情報で有り得るが、それ
に限定されるものではない。禁止された事象の組合せをＸ−Ｙ−Ｚで表すものとする。すなわち、事象Ｘ、事象Ｙ、および事象Ｚは、悪い結果を生じるためのある時間枠内に発生なければならない。そして、状態データベース２０７が情報Ｘ−Ｙを保持しているならば、バイトコード２０８内のルールがＺを禁止する。しかし、バイトコード２０８内の別の規則が、事象Ｘと事象Ｙまたはそのいずれかが適当時間後に状態データベース２０７から取り除かれるようにする。事象Ｘ、Ｙ、およびＺは同一ユーザまたは処理と関連付けされる必要はなく、また、制御されるべき作用の種類に基づいて、同一ユーザまたは処理と関連付けられてもよい。最後に、状態参照モニタ１０４は、状態参照モニタ１０４と、アプリケーション空間２０３内のアプリケーションまたはネットワーク２１０を介してアクセス可能なアプリケーションとの間の通信の助けとなるマッピング可能メモリ２０９を備えている。マッピング可能メモリ２０９は単に、状態参照モニタ１０４と他のアプリケーションの両方によってアドレス可能なシステムメモリの一部であるので、データ伝送は、特別な通信装置、機構、またはプロトコルを必要とせずに、所定の場所に書き込んだり、所定の場所から読み出したりすることによって容易に達成可能である。
【００３０】
インタセプタ１０１はまた、状態参照モニタ１０４のように、前記典型的な実施態様の中でも、オペレーティングシステムカーネルと共に、しかし独立して、ロードされたドライバとして実行される。インタセプタ１０１は、ここでは事象と呼ばれる、さまざまな種類のオペレーティングシステム要求など、例えば、ファイルまたはネットワーク接続などのオペレーティングシステム資源へのアクセスのための要求、を阻止することによって、非常に低いレベルにおいてオペレーティングシステムと相互に作用し合う。インタセプタ１０１は、事象を阻止したときには、上述のように、事象メッセージ１０３を生成する。阻止された各事象は、状態参照モニタ１０４によって、規則バイトコード２０８と状態データベース２０７の内容とによって表される規則に照らし合わして、事象の翻訳のための要求として扱われる。バイトコード２０８に含まれた規則を事象メッセージ１０３と状態データベース２０７の内容とに適用する状態参照モニタ１０４の結果が方針メッセージ１０５であり、この方針メッセージ１０５はインタセプタ１０１に送られる。それからインタセプタ１０１は、方針メッセージ１０５の内容、例えば、資源アクセスの妨害または許可、を実行する。
【００３１】
インタセプタ１０１は他の形式をとることもできる。それは単に、状態参照モニタ１０４に、オペレーティングシステム作用のある側面を観察させ、それに応じてその作用を変更させる、ＡＰＩであってもよい。例えば、適当な変更により、インタセプタ１０１はオペレーティングシステム性能特性を検知し、それに応じて関連パラメータを調節する。
【００３２】
インタセプタ１０１は、状態参照モニタ１０４に与えられた目的にとって重要な資源に影響を与える経路にのみ挿入される必要がある。セキュリティ・アプリケーションにおいては、そのような資源は、ウインドウズ・レジストリ・アクセス要求、ネットワークアクセス要求、ウインドウズ＼システム＼32ディレクトリ・アクセス要求、およびアウトルック個人アドレスブック・アクセス要求のうちの一つ以上を含むことができるが、それに限定されるものではない。インタセプタ１０１は、ウィルス・スキャナ・ログ・ファイルなどの他の資源から入力を引き出すこともできる。
【００３３】
上記に示したように、ユーザレベル・アプリケーションへのアクセスまたはユーザレベル・アプリケーションを介しての状態参照モニタ１０４へのアクセスはアプリケーション空間２０３を介して与えられる。ユーザコンソール１０７上で実行されるグラフィカルユーザインタフェース（ＧＵＩ）は状態参照モニタ１０４へのユーザアクセスを与えて、例えば、性能を監視し、ログを一覧し、動作パラメータと方針を調節することができる。ユーザコンソール１０７を介してアクセスされるＧＵＩは、例えば従来のブラウザであってもよく、または、その目的のために設計された専用のソフトウェアプログラムであっても
よい。動作ログおよび誤りログなどを保持するデータベースまたはファイルシステムもまた、アプリケーション空間２０３を介してアクセス可能である。ログの使用と使用されるログの具体的な種類とは、具体的な個々の要求に基づいて当業者によって規定される。ネットワーク接続２１０もまた、アプリケーション空間２０３を介して状態参照モニタ１０４によってアクセスされる。このネットワーク接続２１０は外部事象メッセージ１０６が到達したネットワーク接続である。
【００３４】
ここで、状態参照モニタ１０４の詳細動作を説明する。動作は二つの類型、通常動作と立上げ時動作、に分けることができる。
通常動作の間、事象はインタセプタ１０１によって阻止され、事象メッセージ１０３が状態参照モニタ１０４に送信される。ファイルアクセス要求およびネットワーク接続要求などの、オペレーティングシステムの他の部分を通常通過する事象は、インタセプタ１０１によって一時的に保持されるので、普通の即座の影響を持たないが、状態参照モニタ１０４は、その事象を妨害するか送信させるかを、そのとき事実上、処理方針に基づいて決定する。
【００３５】
インタセプタ１０１からの事象メッセージ１０３は状態参照モニタ１０４の中で規則ＡＰＩ２１１によって受信される。規則ＡＰＩ２１１は、インタセプタ１０１へのメッセージを送受信するための簡単なインタフェースであり、インタセプタ１０１は、状態参照モニタ１０４との適合性のために特別に書かれてもよく、オペレーティングシステムのパッケージ化された構成要素であってもよく、アドオン構成要素として何らかの団体によって提供されてもよい。規則ＡＰＩは単に、事象メッセージ１０３を事象ルータ２０５に転送する。以下に示されるように、規則ＡＰＩ２１１はまた、必要なときには、事象ルータ２０５からのメッセージをインタセプタ１０１へ転送する。
【００３６】
事象ルータ２０５は状態参照モニタ１０４の通信中枢である。状態参照モニタ１０４の一つの構成要素から別の構成要素へ移動されなければならないどんな種類のメッセージも事象ルータ２０５によって伝送される。指示されたようにメッセージを動かす以外は、事象ルータ２０５は如何なる他のメッセージ処理も行う必要がないが、当業者は、特定のアプリケーションの要求に応じて、事象ルータ２０５内に他の処理を含めることができる。
【００３７】
事象ルータ２０５は、状態参照モニタ１０４の受信構成要素のためのメッセージを、優先順位に従って待ち行列に入れる。事象メッセージ１０３の場合、優先順位は、例えば、事象の種類に基づくことができる。従って、時間の影響を受けやすいネットワークアクセス事象は、そのような時間の影響を受けないファイルアクセス事象よりも先に処理することができる。
【００３８】
事象は、従来のシステムの中で通例となっているようにユーザへの事象メッセージというよりもむしろ、事象を作成したアプリケーションへの事象メッセージの中で識別され、このことは、ユーザ社会と直交する方針が設定され実行されるのを可能にする。これは、セキュリティ方針とアクセス制御方針などの処理方針が、事象を生成するユーザとユーザに帰する権利および特権とに基づいて動作する従来のシステムとは異なっている。
【００３９】
待ち行列に入れられた事象は、処理のために規則インタプリタ２０６によって優先順位ごとに取り上げられる。まず、規則インタプリタ２０６が、事象メッセージによって記述された事象が、状態データベース２０７に格納されるべき動的状態情報の一部として指定された種類のものであるかどうかを判定する。もしそうならば、その事象についての情報が状態データベース２０７の中に格納される。格納される情報は、事象の時間、事象の種類、事象を生成するアプリケーション、そのアプリケーションを有するユーザなどのうちのいくつか又はすべてを含むことができるが、必ずしもそれらに限定されるものではない
。
【００４０】
次に、事象の種類は、コンパイルされた規則バイトコード２０８のどのセグメントが規則インタプリタ２０６によってアドレス指定されるかを決定する。コンパイルされた規則バイトコード２０８のセグメント内で、規則インタプリタ２０６は演算コードに基づいてスイッチ機能を実行する。
【００４１】
一つのセグメント内で、一連の規則がこの擬似コード列（数１という）に続くことによって実行される。
【００４２】
【数１】
0004629332.tif 000002
著しい性能改善が、前述の「switch (Opcode)」命令文の引き数を最適化することによ
って得られる。スイッチ命令文は、予想されるケースが１で始まる連続整数である場合、最も効果的である。従って、規則インタプリタ２０６の中のスイッチ機能によって扱われなければならない演算コードの値を管理するために、その演算コードは、バイトコードが最初に使用される前に以下の擬似コード（数２という）によって翻訳される。
【００４３】
【数２】
0004629332.tif 000003
立上げ時間動作は、種々の規則が、特にセキュリティアプリケーションにおいて、特に攻撃を受けやすい処理のための方針を特化するために、追従可能であることを除いて、通常動作と同じである。更に、特化された立上げ時間規則は、立上げ時間オペレーティングシステム環境が高度に制御されるので、極めて簡単であり、しかもきっちりと書くことができる。
【００４４】
種々の時間に種々の規則セットを提供するために、コンパイルされた規則バイトコード２０８が、この分野で知られているように、活動規則セットと非活動規則セット間の選択をソフトウェアスイッチを使って可能にするデータ構造の中に格納される。従って、このシステムは、混合規則ではなく、一度に一つの規則セットだけを確実に実行している。更
に、規則がロードされるとき、規則チェックなどの種々の処理が実行可能である。この仕組みは特に、他の時間よりも立上げ時間の間に動作する種々の規則セットを有するのに有利である。規則は立上げ時にすべて格納されロードされる必要はないので、スペースと時間を節約できる。立上げ時間規則は、ウインドウズ対応システムに格納でき、ウインドウズ対応システムからロード可能である。後ほど、立上げが行われるときに使用される規則が、ネットワーク資源かファイルからロード可能である。一般に、規則バイトコード２０８はダウンロード可能なプログラムであり、規則インタプリタ２０６は仮想機械である。従って、規則は、オペレーティングシステムを停止するか再起動することなしに、いつでも変更することができる。別の仕組みにおいては、コンパイルされた規則バイトコード２０８は、状態参照モニタ１０４を停止するか、オペレーティングシステムを再立上げすることなしに、容易に上書きできる一定場所に、格納することができる。
【００４５】
上記に示したように、種々の種類の事象パターンが、検知と行為のために、規則バイトコードの中にプログラム可能である。簡単な組み合わせであるＸ−Ｙ−Ｚが先に一例として与えられている。しかしながら、規則はまた、以前に見られなかったどんなパターンも、禁止されたパターンとして識別することができる。この種の規則は、システムが最初に「プロファイル」可能な環境、すなわち、活動の通常の組み合わせとパターンが状態データベースに格納されている状態収集モードで動作可能な環境、において有益である。そのようなシステムはその後、予めプログラム化されたパターンと異常パターンの両方が検知され作用を受ける、「閉じ込め」モードに置かれる。この種のプロファイリングは、作用の真の範囲を捕らえるようにシステムが動作される環境において行われるのが好ましい。規則は、ユーザコンソール１０７において、適切なプログラムインタフェースを介して、バイトコード２０８のユーザ操作によって、動的に厳しくまたは緩くされることも可能である。
【００４６】
方針メッセージと、ユーザコンソールとの通信とに加えて、状態参照モニタは、少なくともそのいくつかはユーザにいかがわしい行為を許すべきかどうかを選択させる種々のレベルの警告と警報を生成することができる。この特徴は一般に有益であるが、上述したようにプロファイルされた、システムの中の特定の用途を持っている。一度閉じ込めモードに入ると、見られていないが通常は安全な作用が依然として存在するが、ユーザはそれについての判断を省略することができる、状態参照モニタ１０４は、その条件に関してユーザに警報を出し、その作用がバイトコード２０８内に定義された規則に基づいて許可できるか否かを記録することができる。
【００４７】
本発明の一実施態様を、悪意のあるユーザとソフトウェアに対してコンピュータシステムを安全にすることに関して説明する。
コンピュータシステムのセキュリティは、新しい決定をする場合、保存された状態の使用を可能にする、以前のアクセス制御を含む、状態参照モニタを使うことによって強化可能である。説明のための状態参照モニタは、ファイル、システム構成情報、ネットワークアクセス、システム呼出、ローカルまたは遠隔のオブジェクト呼出などの数多くの種々の資源のためのアクセス要求を統合し関連付ける。動作環境へのこの包括的な展望は、状態参照モニタ１０４に、従来の単一資源型無状態参照モニタよりも優れたアクセス制御決定をさせることができる。
【００４８】
状態参照モニタは異常作用を検知し、更なるアクセスを防ぐ。例えば、電子商取引サーバが一度壊れると、その後異なる作用をし、このことは正常状態からの逸脱として検知可能である。
【００４９】
状態参照モニタ１０４は、状態データベース２０７を用いてある期間情報を保持し、この情報を用いてその決定の質を改善する。
上述したように、状態参照モニタ１０４は、要求経路に挿入されたインタセプタ１０１を用いてアクセス要求を阻止する。このインタセプタ１０１は、資源型とオペレーティングシステムとに基づく種々の機構を用いて実現される。例えば、ウインドウズＮＴのもとでは、
・ファイル要求は、マイクロソフトが提供するファイルシステムフィルタＡＰＩを用いて阻止される。インタセプタ１０１は全ての要求の経路にある。それは、入手可能な情報からファイル名を抽出し、それを状態参照モニタ１０４に送信する前にその要求を正規化する。状態参照モニタ１０４応答は、その要求を先へ進めるかどうか、または、誤りコードをオペレーティングシステムに返すかどうかを判定する。
・レジストリ要求は、レジストリシステム呼出機能を、関連情報を抽出したのち状態参照モニタ１０４を呼び出す機能と置き換えることによって、阻止される。状態参照モニタ１０４応答は、その要求を元のシステム呼出機能へ渡すかどうか、または、誤りコードをユーザアプリケーションへ返すかどうかを判定する。
・ネットワーク要求は二つの場所の中で阻止される。一つは、アプリケーションと、トランスポートデータインタフェースとの間にあり、マイクロソフトが提供するＡＰＩを使用する。もう一つの阻止は、ネットワークデバイス層内の置き換え機能によって行われる。後者の場合、状態参照モニタ１０４が行為を否定することを望む場合、知らせるべきアプリケーションがないので、パケットは放棄される。
・一般的なシステム呼出は、オペレーティングシステムカーネルへの入口点での置き換え機能によって阻止される。引き数がチェックされ、それから状態参照モニタ１０４が呼び出される。状態参照モニタ１０４応答は、要求を元の機能へ進めさせるかどうか、または、誤りコードをアプリケーションへ返すかどうかを判定する。阻止されるシステム呼出の例には、他の処理におけるキーボードフッキングとメモリ変更が含まれる。
・ＣＯＭオブジェクト呼出は、ユーザアプリケーションの中で用いられる標準ＤＬＬの中の置き換え機能によって阻止される。要求が受信されたとき、状態参照モニタ１０４が呼び出される。状態参照モニタ１０４応答は、要求を元の機能に渡すかどうか、または、誤りコードを返すかどうかを判定する。
【００５０】
他のオペレーティングシステムについては、保護を必要とする他の資源があるかも知れず、上記の例のいくつかは適用できないかも知れない。しかしながら、オペレーティングシステムが提供する阻止ＡＰＩを使用するか、機能ポインタを代わりの阻止コードと置き換えるか、のいずれかの一般的な方法を用いることができる。例えば、実際の機能コードをパッチングして発呼を作る方法を含む他の方法が使用可能である。
【００５１】
状態参照モニタ１０４は、オペレーティングシステム内の既存のどの無状態参照モニタよりもなおその上の更なる処理ステップとして作用する。従って、それは、標準の無状態参照モニタだったらアクセスを否定したであろうとき、アクセスを許可することはできない。
【００５２】
状態参照モニタ１０４の作用を制御する規則は、変更可能であり、即時効果を現す。記憶領域の内容は、この処理の一部として変更可能である。
状態参照モニタ１０４は、限界状態が発生したときにユーザを促すことができる。これは、価値ある追加情報を提供して正しい決定を行う。
【００５３】
他の事象は、制御サーバ、ローカルオペレーティングシステムログ、アプリケーションログ、アプリケーションモニタ、および他のシステムモニタを含む、ローカル源および遠隔源から受信可能である。これらの事象は更に状態データベース２０７の内容を変更することができる。このことは、将来のアクセス制御決定を場合によっては変更する効果がある。
【００５４】
状態データベース２０７は以下のような項目についての情報を保持するために使用可能である。
・アプリケーション作用：例えば、アプリケーションが資源をアクセスする場合、この事実が思い出され、将来のアクセス決定を変更するために使用可能である。
・ユーザ入力：例えば、ユーザは具体的な情報を提供するよう促されることができ、この情報は将来のアクセス決定を変更するために使用可能である。
・外部：例えば、他のシステムは、状態参照モニタ１０４に送信可能なメッセージを生成することができ、このメッセージ情報は、このシステムまたは他のシステムについての将来のアクセス決定を変更するために保存および使用可能である。
・時間：保存された情報の各項目は、個々に指定された時間後に消去されるように設定可能である。
・アプリケーションの継承：一つのアプリケーションが別のアプリケーションを起動するとき、親に関する属性が子に伝送可能である。
【００５５】
記憶領域内の場所は、以下のものを含む種々の異なる種類のオブジェクトを保持できる。
・整数―事象が発生したかどうかを示すための標識としてしばしば使用される。
・ストリング―アプリケーション名称、ファイル名称などを保持するために使用される。・整数またはストリングによって索引付け可能な整数またはストリングの配列―これらは資源名称が索引として使用されるときに、資源についてのフラグを格納するのに役立つ。・範囲ツリー−これは、「範囲リストにデータ項目はあるか？」、例えば、「10.0.0.0〜10.255.255.255または192.168.0.0〜192.168.255.255の範囲にＩＰアドレスはあるか？」といったことを含む問題を扱うときに役立つデータ構造である。
いま述べられたセキュリティ実施態様の状態参照モニタは以下に述べるように動作する。
【００５６】
状態参照モニタ１０４は、例えば、インタセプタ、ユーザ督促応答、正規タイマ、ユーザ空間デーモン、または中央サーバといった資源の一つから要求を受信する。
この要求はフィールドに分類され、各フィールドは状態データベース２０７内の別々の場所にコピーされる。更に、要求の種類が書き留められる。
【００５７】
状態参照モニタはそれからセキュリティ方針の実行を開始する。一つの実施態様はバイトコードインタプリタを用いてセキュリティ方針の実行に踏み出す。バイトコードは、記憶領域内の場所を調べて算術計算を行うなどの簡単な行為、または、事象をフォーマットして別の構成要素に送るなどの複雑な行為を行うことができる。セキュリティ方針を表現する他の言語と方法は可能である。
【００５８】
最適化とは、バイトコードプログラムを、それぞれが特定の要求部分集合を取り扱う数多くの小さく簡単なバイトコードプログラムに分割することである。例えば、各プログラムが特定の資源型のための要求を取り扱うことがありうる。このことは、各要求のために検査される必要のあるバイトコード命令の数を減少させる。
【００５９】
もう一つの実施態様は機械レベル命令の直接実行を含むが、そのような方法の性能はバイトコードを用いるよりも良くなるであろうけれども、複雑であるという欠点と機械コードを攻撃から適切に守る困難性とが直接比較を困難にしている。
【００６０】
バイトコードは記憶領域内の場所を変更して、その後の要求による使用のために一時的にまたは永続的に結果を記録することができる。結果は、ある期間記録された後に消去される。このことは、一連の行為が特定の期間内に起こるときを検出しようとするときに役
立つ。
【００６１】
バイトコードは、要求が許可されるべきか、否定されるべきか、待ち行列に入れられるべきかを示すことができる。
バイトコードが完成し、要求が許可されるべきか拒否されるべきかであると、状態参照モニタはインタセプタに応答し、アクセス決定を返す。
【００６２】
要求が待ち行列に入れられるべきならば、それはその後の分析のために待ち行列に入れられる。このことは、ユーザが何らかの情報のために督促される必要があるか、動作が要求の最終結果が決定可能である前にユーザデーモンによって実施される必要があるときに起こりうる。これらの場合に、状態参照モニタは、ユーザ応答によるか、追加情報を有するユーザデーモンによって、再び作動させられる。バイトコードが呼び出され、そして、それはこの要求が以前に待ち行列に入れられた要求と関連していることを検知する。要求の一部として受信された情報は記憶領域に保存される。
【００６３】
以前に待ち行列に入れられた要求はその後呼び出され、状態参照モニタのバイトコード部に再送信される。バイトコードは元の要求を処理するが、それはいまユーザ応答からの記憶領域内の保存された情報を有している。このことは、それに要求の処理を終了させ、許可応答か拒否応答を返させる。
【００６４】
状態参照モニタは、確実に、要求が順序付けられるようにする、すなわち、要求が別の要求の前か後に起こるようにする。また、要求は、次の要求が開始可能な前に、完全に、すなわち、許可／拒否／行列入れ応答が見つかるまで、バイトコードを介して実行される。このことは、状態参照モニタとセキュリティ方針の両方の実行を簡単にする。
【００６５】
セキュリティ方針は、バイトコードにコンパイルされ、状態参照モニタにロードされるＣ様言語で書くことができる。他の実施態様は、別の原始言語を使用することもでき、あるいは、機械コードを含む種々のコード形式にコンパイルされることもできる。
【００６６】
セキュリティ方針は、保護される必要のある、資源名称、例えば、ファイル名称、ネットワークポート、オブジェクト名称などについてのデータを含む。あるいは、「プログラム」から「データ」を分けて取り出し、それらを別々にロードする。埋め込みデータ方法を有する単一プログラムは更に簡単である。
【００６７】
セキュリティ方針プログラムは、それが受信できる全ての可能な事象のためのハンドラを含む。これらのハンドラのいくつかは単に許可応答または拒否応答を返し、他のハンドラは単に記憶領域が更新されるようにし、いくつかはその混合機能を有する。
【００６８】
セキュリティ方針プログラムは、システムが動作している間は再ロード可能である。このことは記憶領域を変更させず、従って、方針プログラムが再ロードされる前に保存された情報は有効であり続ける。特別な要求が再ロード後の最初の要求として作動させられ、この要求は、必要とされる全ての領域の整頓または変更を行うことができる。
【００６９】
セキュリティ方針プログラムは以下の三つの主要なセクションを含んでいる。
・標準環境命令。この命令は、現在のアプリケーション名称を判定する行為、情報の捕捉を維持する行為、およびファイルがどのファイル群に属するかを判定する行為などの行為を行う。これは許可／拒否の状態を判定しないが、要求される情報が入手できないならば要求を待ち行列に入れることができる。例えば、ウインドウズNTのもとでは、ファイル名称は、ＭＳ／ＤＯＳから持ち越された８．３表記法で表されるか、完全なファイル名称として表されることができる。アクセス制御のためには単一形式が望ましく、従って８．３
形式は完全形式に変換されなければならない。８．３ファイル名称が例えば「ｓｔａｔｅｆ〜１．ｄｏｃ」であるとすると、完全名称は例えば「ｓｔａｔｅｆｕｌ  ｒｅｆｅｒｅｎｃｅ  ｍｏｎｉｔｏｒ．ｄｏｃ」となる。
・単一要求アクセス制御チェック。この命令は単一要求のためのアクセス制御チェックを行う。このチェックのために使用される情報は、要求からのデータ、例えば、ファイルに対しては、ファイル名称、ファイル拡張子、ディスクの種類（フロッピー、ハードディスク、ネットワークドライブ）、ディレクトリ、動作（読み／書き／作成／消去）などと、システムアドミニストレータによって構成されたデータとである。追加の制限が、多分中央サーバからの先に受信したメッセージの結果として設定された記憶領域内の情報から生じることがあり得る。
・多重要求ヒューリスティック。この命令は、多分制限時間中ずっと一連の行為を追跡し、その後の要求を許可または拒否できる。あるいは、一度その一連の行為が認識されると、メッセージが更なる処理のために中央サーバへ送信可能である。一般に、この一連の行為は、悪意のある作用を検知したのち、その検知を利用して、アプリケーションが行うことができる行為を制限するために使用される。いくつかの場合においては、その検知は悪意のある作用のものではなく特定の正常な作用のもので有り得る。例えば、ＴＣＰポート１１０またはＴＣＰポート２５へのネットワーク接続を行うアプリケーションが電子メールアプリケーションとして分類されることも有り得る。この事実は従ってその後のアクセス制御チェックまたは多重要求ヒューリスティックにおいて使用可能である。
説明のための実施態様の状態参照モニタは、時間がかかるか、カーネル空間の中で行うには困難な種々のサービスを、ユーザデーモンにして貰う。このサービスは、ユーザデーモンにメッセージを送り、要求を待ち行列に入れる状態参照モニタによって呼び出される。ユーザデーモンはそのメッセージを処理し、要求されたサービスを実行し、メッセージを状態参照モニタに送信する。状態参照モニタはその結果を保存し、元の要求を立ち上げる。
【００７０】
このサービスは以下のものを含む。
・特定の処理の中で実行されているアプリケーション名称を判定すること。
・ダイアログボックスを位置付け、ユーザ入力を要求すること。
・ファイルに診断データを書き込む。
・実行可能なファイルのバージョン番号を判定すること。
・８．３形式のファイル名称を完全ファイル名称に変換すること。
【００７１】
説明のための状態参照モニタの動作の一例を以下に示す。
状態参照モニタは、入力電子メールメッセージが自動的にそのコピーを送り出すのを防止する一組の規則と共にロード可能である。このことは、ネットワークアクセスを監視することによって検知される電子メールクライアントが、ファイルアクセスを監視することによって検知されるファイルを書き上げたときを書き留めることによって可能である。一方、ファイルが、ファイルアクセスを監視することによって検知されたスプリクティングプログラムによって読み込まれる。このファイルアクセスはそれからオブジェクト呼出または他の手段によって検知された電子メール送信者を呼び出す。このオブジェクト呼出または他の手段はそれから、ファイルアクセスによって検知されと元のファイルの中のデータを読む。この時、ユーザが問い合わされることが可能であり、行為が許可されるか拒否される。この事象の連鎖を検知するために、著しい量の状態の保守が必要とされる。
【００７２】
しかしながら、この例は、電子メール内に埋め込まれたスクリプトがホストコンピュータに対して損害を生じるのを防ぐことはない。損害を防ぐために、もう一つのステップが実行される。上記最終段階において、メッセージが管理サーバに送られ、この管理サーバは、このスクリプトがアクセスから妨害されるべきことを他の状態参照モニタに知らせる
ことができる。事実上各状態参照モニタにあるセキュリティ方針プログラムが告知メッセージをどのように取り扱うべきかを決定する。例えば、それは、一つの処理が、限定されたファイルへ書き込みを行おうとするやいなや、ファイルへの全ての更なる書き込みを防止することができる。
【００７３】
上述された変形と側面に加えて、本発明の側面の実施態様は以下のことを含むこともできる。
複数の状態参照モニタが、単一システムについて例示することができ、それぞれ、記憶領域と、情報の交換を直接または別の構成要素を介して可能にする通信機構とを有している。この状態参照モニタは、資源型に基づいて、あるいは、ユーザ空間に対するカーネル空間に基づいて区分けされる。
【００７４】
ある状態参照モニタはインタセプタに構成情報を送って、送られる要求の数と種類を増加または減少させることができる。例えば、この状態参照は、ウインドウズNTのもとでの「クリエイトプロセス（Ｃｒｅａｔｅ  Ｐｒｏｃｅｓｓ）」システム呼出が阻止されるべきかどうかと、このシステムサービスへの要求がこの状態参照モニタに送られるかどうかとを動的に変更することができる。
【００７５】
ある状態参照モニタは、比較的安定した方針プログラムと頻繁に更新される状態データベースとを有するよりもむしろ、新しい動的規則を取り入れるために頻繁に更新されるそのセキュリティ方針プログラムを有することができる。
【００７６】
ある状態参照モニタは、オペレーティングシステムによって供給される既存の無状態参照モニタに取って代わるか、それを包含することができる。
ある参照モニタは、オペレーティングシステムの必須部分であることができる。
【００７７】
図３に示すコンピュータシステム３００は、それによって、上述の実施態様の種々の要素が、個々にあるいは組み合わされて実行可能であり、一般的に少なくとも一つのメインユニットを備え、このメインツニットは、一つ以上のユーザまたは機械に情報を格納し、情報を送信し、あるいは情報を表示する一つ以上の出力装置３０１と、一つ以上のユーザまたは機械から入力を受信する一つ以上の入力装置３０２との両方に接続されている。このメインユニットは一つ以上のプロセッサを備え、このプロセッサはバスまたはスイッチなどの一つ以上の相互接続機構３０５を介してメモリシステム３０４に接続されている。入力装置３０２と出力装置３０１はまた、相互接続機構３０５を介してプロセッサ３０３とメモリシステム３０４に接続されている。コンピュータシステム３００は更に記憶システム３０６を備え、この記憶システム３０６の中には不揮発性媒体の上または中に情報が保持されている。この媒体は記憶システム内に固定してもよく、取り外し可能であってもよい。
【００７８】
コンピュータシステム３００は、コンピュータプログラム言語を用いてプログラム可能な汎用コンピュータシステムであることができる。そのようなシステムを実行するのに適したコンピュータプログラム言語には、手続き型プログラム言語、オブジェクト指向プログラム言語、この二つの組み合わせ、または他の言語がある。このコンピュータシステムはまた、専用にプログラムされてもよく、専用ハードウェア、または、特定用途向け集積回路（ＡＳＩＣ）であってもよい。
【００７９】
汎用コンピュータシステムにおいては、プロセッサは、オペレーティングシステムと呼ばれるプログラムを実行する、市場で入手可能なプロセッサであり、このオペレーティングシステムは、他のコンピュータプログラムの実行を制御し、スケジューリング、デバッギング、入出力制御、課金処理、コンパイル、記憶割当、データ管理とメモリ管理、およ
び通信制御と関連サービスを行う。前記プロセッサとオペレーティングシステムは、他のコンピュータプログラム言語のアプリケーションプログラムがそのために書かれているコンピュータプラットフォームを規定する。本発明はいずれの特定のプロセッサ、オペレーティングシステム、またはプログラム言語に限定されるものではない。
【００８０】
図４に詳しく示された記憶システム３０６は一般に、コンピュータ読み出し書き込み可能な不揮発性記録媒体４０１を備えており、その媒体の中には、プロセッサによって実行されるプログラム、またはプログラムによって処理される、媒体４０１の上または中に格納された情報、を定義する信号が格納されている。この媒体は、例えば、ディスクメモリまたはフラッシュメモリとすることができる。一般に、動作においては、プロセッサは、データを、不揮発性記録媒体４０１から、プロセッサによる情報へのアクセスを媒体４０２よりも速くさせる別のメモリ４０２に読み込む。このメモリ４０２は一般に、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）またはスタティックメモリ（ＳＲＡＭ）などの揮発性ランダムアクセスメモリである。それは図示されるように記憶システム３０６内に置かれるか、図示されていないが、メモリシステム３０４内に置かれる。プロセッサ３０３は一般に、集積回路メモリ３０４、４０２内でデータを操作し、処理が完了した後にデータを媒体４０１にコピーする。媒体４０１と集積回路メモリ要素３０４、４０２との間のデータ移動を管理するための種々の機構が知られているが、本発明はそれらに限定されるものではない。本発明は特定のメモリシステム３０４または記憶システム３０６に限定されない。
【００８１】
本発明の実施態様の側面は、ソフトウェア、ハードウェア、ファームウェア、またはそのいずれかの組み合わせにおいて実現可能である。実施態様の種々の要素は、個々にあるいは組み合わせて、命令がプロセッサによるアクセスと実行のために格納されているコンピュータ読み出し可能媒体を含むコンピュータプログラム製品として実現可能である。コンピュータによって実行されるとき、その命令はコンピュータに種々の段階の処理を行うよう命令する。
【００８２】
本発明はその数多くの具体的な実施態様と関連付けて説明された。しかしながら、本発明の範囲内に入ると思われる数多くの変更は、当業者にとって明らかである。従って、本発明の範囲はここに添付された特許請求の範囲によってのみ限定されるものである。
【図面の簡単な説明】
【００８３】
【図１】本発明を具体化したソフトウェアシステムの機能ブロック図である。
【図２】図１のソフトウェアシステムの詳細機能ブロック図である。
【図３】図１と図２のソフトウェアシステムを実行することができるハードウェアシステムの機能ブロック図である。
【図４】図３の記憶システム構成要素の機能ブロック図である。
【図１】
0004629332.tif 000004
【図２】
0004629332.tif 000005
【図３】
0004629332.tif 000006
【図４】
0004629332.tif 000007