(57)【要約】【課題】システム・イベントをモニタし、セキュリティ脅威に対する実時間応答を提供するためのコンピュータ実装された方法、データ処理システム、およびコンピュータ・プログラム製品を提供すること。【解決手段】システム・データはコンピュータ・システム内のモニタによって収集される。本発明のエキスパート・システムは、データと知識ベース内の情報を比較して、システム・イベントの形のシステム・リソースに対するセキュリティ脅威と、そのシステム・イベントの影響を緩和するためのアクションとを識別する。システム・イベントの脅威リスク値がシステム・イベントを緩和するためのアクションのアクション・リスク値より大きいかどうかについての判定がなされる。脅威リスク値の方が大きい場合は、ユーザによって設定された信頼値がアクション・リスク値より大きいかどうかの判定がなされる。信頼値の方が大きい場合には、エキスパート・システムは、セキュリティ脅威に対するアクションを実行する。【選択図】図５
2007193791.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティ脅威に対する実時間応答を提供するエキスパート・システムにおいてコンピュータ実装された方法であって、
システムのモニタによって収集されたデータを受信して受信データを形成するステップと、
前記受信データを知識ベース内の情報と比較して、システム・イベントの形のシステム・リソースに対するセキュリティ脅威と前記システム・イベントの影響を緩和するためのアクションとを識別するステップと、
前記システム・イベントの脅威リスクと前記システム・イベントを緩和するための前記アクションのリスクとを比較するステップと、
前記脅威リスクが前記アクションの前記リスクより大きい場合は、ユーザにより構成された信頼コンポーネントが前記アクションの前記リスクより大きいかどうかを判定するステップと、
前記信頼コンポーネントが前記アクションの前記リスクより大きいとの判定に応答して、前記セキュリティ脅威に対する前記アクションを実行するステップと
を含む方法。
【請求項２】
前記脅威リスクが前記アクションの前記リスク以下であるとの判定に応答して、前記アクションを実行せずに、前記システム・イベントをログに記録するステップをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項３】
前記信頼コンポーネントが前記アクションの前記リスク以下であるとの判定に応答して、アクションを取らずに、前記システム・イベントをログに記録するステップをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項４】
前記信頼コンポーネントが、前記ユーザによって前記エキスパート・システムに割り当てられた信頼のレベルである、請求項１に記載のコンピュータ実装された方法。
【請求項５】
前記信頼のレベルを前記エキスパート・システムに適用するステップが、前記エキスパート・システムの決定プロセスにおけるリスクを軽減する、請求項４に記載のコンピュータ実装された方法。
【請求項６】
前記信頼のレベルが前記エキスパート・システムのすべての決定プロセスに適用される、請求項４に記載のコンピュータ実装された方法。
【請求項７】
前記信頼コンポーネントを前記エキスパート・システムの前記決定プロセスに適用するステップが、前記エキスパート・システムの学習の量と程度に影響を与え、前記エキスパート・システムがそれ自体で信頼を確立することを可能にする、請求項６に記載のコンピュータ実装された方法。
【請求項８】
前記信頼コンポーネントが前記アクションの前記リスクより大きい場合にだけ前記アクションを実行するステップが、前記エキスパート・システムのアクション、リアクション、学習、および決定の各プロセスを調整する、請求項１に記載のコンピュータ実装された方法。
【請求項９】
高信頼コンポーネントは、前記ユーザが前記エキスパート・システムによってなされた決定に高いレベルの信頼を有していることを示し、低信頼コンポーネントは、前記ユーザが前記エキスパート・システムによってなされた決定に低いレベルの信頼を有していることを示す、請求項４に記載のコンピュータ実装された方法。
【請求項１０】
前記信頼コンポーネントが、システム管理者によって設定された単一の構成値である、請求項１に記載のコンピュータ実装された方法。
【請求項１１】
システム・イベントが、システム・リソースに脅威を与えるシステム内での出来事である、請求項１に記載のコンピュータ実装された方法。
【請求項１２】
アクションが、前記システム・リソースに脅威を与える前記システム・イベントを緩和する、前記エキスパート・システムによって実行されるシステム変更である、請求項１１に記載のコンピュータ実装された方法。
【請求項１３】
前記モニタが、システム・リソースに対するリスクを検出し通知する、前記システム内に組み込まれたアクティブなデーモンまたはコードの少なくとも一方である、請求項１に記載のコンピュータ実装された方法。
【請求項１４】
前記信頼コンポーネントが、前記エキスパート・システムのすべての動作に適用される、請求項１に記載のコンピュータ実装された方法。
【請求項１５】
前記システムをモニタして前記アクション実行の成功を確認するステップと、
前記アクションの結果を前記知識ベースに入力するステップと
をさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項１６】
前記エキスパート・システムが、現在のセキュリティ脅威をどのように処理するかを決定するときに、前記知識ベースに入力されたアクションの前記結果を考慮する、請求項１５に記載のコンピュータ実装された方法。
【請求項１７】
セキュリティ脅威に対する実時間応答を提供するデータ処理システムであって、
バスと、
コンピュータ使用可能なコードを含む前記バスに接続された記憶装置と、
前記バスに接続された少なくとも１つの管理対象装置と、
前記バスに接続された通信ユニットと、
前記バスに接続された処理ユニットと
を含み、前記処理ユニットが、前記コンピュータ使用可能なコードを実行することによって、システムのモニタによって収集されたデータを受信して受信データを形成し、前記受信データと知識ベースの情報を比較してシステム・イベントの形のシステム・リソースに対するセキュリティ脅威と前記システム・イベントの影響を緩和するためのアクションとを識別し、さらに前記システム・イベントの脅威リスクと前記システム・イベントを緩和するための前記アクションのリスクとを比較し、前記脅威リスクが前記アクションの前記リスクより大きとの判定に応答して、ユーザにより構成された信頼コンポーネントが前記アクションの前記リスクより大きいかどうかを判定し、前記信頼コンポーネントが前記アクションの前記リスクより大きいとの判定に応答して、前記脅威リスクに対する前記アクションを実行する、
データ処理システム。
【請求項１８】
前記脅威リスクが前記アクションの前記リスク以下であるか、または前記信頼コンポーネントが前記アクションの前記リスク以下であるとの一方の判定に応答して、前記処理ユニットがさらに、前記アクションを実行せずに、前記コンピュータ使用可能コードを実行して前記システム・イベントのログを記録する、請求項１７に記載のデータ処理システム。
【請求項１９】
コンピュータ使用可能プログラム・コードを有形に実施したコンピュータ使用可能媒体を含み、セキュリティ脅威に対する実時間応答を提供するためのプログラムであって、前記プログラムがコンピュータに、
システムのモニタによって収集されたデータを受信して受信データを形成する機能と、
前記受信データと知識ベース内の情報を比較して、システム・イベントの形のシステム・リソースに対するセキュリティ脅威と前記システム・イベントの影響を緩和するためのアクションとを識別する機能と、
前記システム・イベントの脅威リスクが、前記システム・イベントを緩和するための前記アクションのリスクより大きいかどうかを判定する機能と、
前記脅威リスクが前記アクションの前記リスクより大きいとの判定に応答して、ユーザによって構成された信頼コンポーネントが前記アクションの前記リスクより大きいかどうかを判定する機能と、
前記信頼コンポーネントが前記アクションの前記リスクより大きいとの判定に応答して、前記セキュリティ脅威に対する前記アクションを実行する機能と
を実行させるプログラム。
【請求項２０】
前記脅威リスクが前記アクションの前記リスク以下であるとの判定、または前記信頼コンポーネントが前記アクションの前記リスク以下であるとの判定の一方に応答して、前記アクションを実行せずに、前記システム・イベントのログを記録する機能をさらに含む、請求項１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に改良されたデータ処理システムに関し、詳細には、システム・イベントをモニタしセキュリティ脅威に対する実時間応答を提供するための、コンピュータ実装された方法、データ処理システム、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
エキスパート・システムは、特定の対象領域の１人または複数人の技術専門家の知識と経験を使用して問題を解決するコンピュータ・プログラムである。エキスパート・システムは、明確に規定された問題領域における膨大な量の専門知識を利用し操作することによって、専門家の意思決定能力を模倣する人工知能ソフトウェアを含む。エキスパート・システムを使用すると、例えばエキスパート・システムの支援なしでは熟練者と同様の仕事を実施することができない非熟練者が、エキスパート・システムの知識ベースの恩恵を受けることが可能になる。システムが複数の専門家の知識を含む場合には、専門家のユーザもまた、特定の対象領域で複数の専門家の知識ベースにアクセスする必要がある場合に、エキスパート・システムを使用することの恩恵を受けることができる。エキスパート・システムの一例に、ルールベース・システムがある。ルールベース・システムは、収集された情報にルールを適用して結論を形成することができる。
【０００３】
意思決定ロジックをプログラム自体の中に組み込む、意思決定ロジックに関する従来のコンピュータ・プログラムとは対照的に、エキスパート・システムは、その知識ベース内の知識を利用する。例えば、車を運転するための従来の意思決定プログラムの擬似コードを以下に示す。コード自体にすべてのロジックが組み込まれていることに留意されたい。
Switch(the_car_near_me){
Slows: ...
Stops: ...
Turns:
If(in_front_of_me)
If(will_I_crash(myspeed,distance_to_impact))
If(there_is_a_car_next_to_me)
Break();
Else
Swerve();
【０００４】
以下の表は、知識ベースのエキスパート・システムを使用して、同じ問題がどのように解決されるかを示す。イベントおよびアクションのルール・ベース中にどのようにロジックが存在し、それによってどのようにコード・ロジックが単純化されるかに留意されたい。
【０００５】
【表１】
2007193791.tif 000003
【０００６】
【表２】
2007193791.tif 000004
上記のイベントおよびアクションから、エキスパート・システムのプログラミング決定ロジックは、以下のように簡略化される。
AnEventOccured(event)
If(event.ActionRequired)
ApplyActionToEvent(event);
【０００７】
したがって、エキスパート・システムを使用するプログラミング・ロジックは、知識をプログラムのコードからルール／知識ベースに移すことによって大幅に簡略化される。上記の例の２つの手法は機能的には等価であり、同じ基本問題を解決するものであるが、エキスパート・システムは、システムの変更やエキスパート・システムの学習機能に適応するときに、意思決定ロジックに関する従来のコンピュータ・プログラムと差別化される。例えば、自動車の安全性に、射出座席（ejection seat）と呼ばれる新技術が導入される場合、従来のプログラミング意志決定ロジック・コードでは、この新技術が適用できるところすべてを調査し、変更する必要がある。一方、エキスパート・システムでは、そのルール・ベースに単に新しいアクションを生成するだけである。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、エキスパート・システムを用いると、特別な知識や専門知識のないユーザが、専門家のユーザと同じぐらい上手く特定の仕事を実施することができるようになる。例えば、エキスパート・システムでは、あるイベントに応答してそのイベントに対するアクションまたは対応策を適用し、システムに対するそのイベントの影響を緩和することが必要になることがある。非専門家ユーザがエキスパート・システムのあらゆる決定を構成するか、またはそれに関与することはできないので（なぜならば、そのためにはユーザの側に専門知識が必要になるので）、エキスパート・システムは、自動的にアクションを実行するように構成することができる。あるいは、状況によっては、エキスパート・システムは、そのアクションを確認するユーザ入力を受信したときにだけアクションを実施できるようにすることもできる。しかし、エキスパート・システムが取るべきアクションに関する全体的な総合レベルの制御をユーザに提供する既存のエキスパート・システムは存在しない。
【課題を解決するための手段】
【０００９】
本発明の諸態様は、システム・イベントをモニタし、セキュリティ脅威に対する実時間応答を提供するコンピュータ実装された方法、データ処理システム、およびコンピュータ・プログラム製品を提供する。システム・データは、コンピュータ・システム内のモニタによって収集される。本発明のエキスパート・システムは、そのデータと知識ベース内の情報を比較して、システム・イベントの形のシステム・リソースに対するセキュリティ脅威と、そのシステム・イベントの影響を緩和するためのアクションとを識別する。システム・イベントの脅威リスク値が、そのシステム・イベントを緩和するためのアクションのアクション・リスク値より大きいかどうかについての判定がなされる。脅威リスク値の方が大きい場合は、ユーザによって設定された信頼値の方がアクション・リスク値より大きいかどうかについての判定がなされる。信頼値の方が大きい場合は、エキスパート・システムはセキュリティ脅威に対するアクションを実行する。
【００１０】
本発明の特徴だと見なされる新規の諸機能については、添付の特許請求の範囲に記載する。しかし、本発明それ自体、ならびに好ましい使用の態様、本発明の他の目的および利点については、例示的な実施形態についての以下の詳細な説明を、添付の図面と併せて読むことによって最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１１】
ここで、図面を参照する。詳細には、図１〜２を参照すると、本発明の諸実施形態を実装することができるデータ処理環境の例示的な略図が示されている。図１〜２は単なる例示に過ぎず、本発明の諸態様または諸実施形態を実装することができる環境に関するどのような制限も主張または示唆することを意図したものではないことを理解されたい。本発明の趣旨および範囲を逸脱することなく、図示の環境に対して多くの変更を加えることができる。
【００１２】
次に、各図を参照すると、図１は、本発明の諸態様を実装することができるデータ処理システムについてのネットワークの絵的表現を示す。ネットワーク・データ処理システム１００は、本発明の諸実施形態を実装することができるコンピュータのネットワークである。ネットワーク・データ処理システム１００は、ネットワーク１０２を含む。ネットワーク１０２は、ネットワーク・データ処理システム１００の内部で相互に接続された様々な装置やコンピュータ間の通信リンクを提供するために使用される媒体である。ネットワーク１０２は、有線、無線通信リンク、あるいは光ファイバ・ケーブルなどの接続を含むことができる。
【００１３】
図示の例では、サーバ１０４およびサーバ１０６は、記憶ユニット１０８と共にネットワーク１０２に接続される。さらに、クライアント１１０、１１２、および１１４もまた、ネットワーク１０２に接続される。これらのクライアント１１０、１１２、および１１４は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータでもよい。図示の例では、サーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント１１０、１１２、および１１４に提供する。この例では、クライアント１１０、１１２、および１１４は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、図示されていない追加のサーバ、クライアント、および他の装置を含むこともできる。
【００１４】
図示の例では、ネットワーク・データ処理システム１００はインターネットであり、ネットワーク１０２は、相互通信のためにＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコル・スイートを使用するネットワークとゲートウェイの世界規模の集りを表す。インターネットの中心には、データやメッセージをルーティングする何千もの企業用、政府機関用、教育機関用、その他のコンピュータ・システムからなる主要なノードまたはホスト・コンピュータ間の高速データ通信ラインのバックボーンが存在する。もちろん、ネットワーク・データ処理システム１００は、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、またはワイド・エリアネットワーク（ＷＡＮ）など、様々な種類のネットワークとして実装することもできる。図１は、一例を示すことを意図したものであり、本発明の様々な実施形態のアーキテクチャ上の制限を意図したものではない。
【００１５】
次に、図２を参照すると、本発明の諸態様を実装することができるデータ処理システムの構成図が示されている。データ処理システム２００は、図１のサーバ１０４またはクライアント１１０などのコンピュータの一例であり、その内部には、本発明の諸実施形態に関する処理を実行するコンピュータ使用可能なコードまたは命令を配置することができる。
【００１６】
図示の例では、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２と、サウス・ブリッジおよび入／出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）２０４を含むハブ・アーキテクチャを使用する。処理ユニット２０６、主メモリ２０８、およびグラフィック・プロセッサ２１０は、ＮＢ／ＭＣＨ２０２に接続される。グラフィック・プロセッサ２１０は、ＡＧＰ（accelerated graphics port）を介してＮＢ／ＭＣＨ２０２に接続することもできる。
【００１７】
図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２は、ＳＢ／ＩＣＨ ２０４に接続される。オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読み出し専用メモリ（ＲＯＭ）２２４、ハード・ディスク・ドライブ（ＨＤＤ）２２６、ＣＤ−ＲＯＭドライブ２３０、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよびその他の通信ポート２３２、ならびにＰＣＩ／ＰＣＩｅデバイス２３４は、バス２３８およびバス２４０を介してＳＢ／ＩＣＨ２０４に接続される。ＰＣＩ／ＰＣＩｅデバイスは、例えば、イーサネット（Ｒ）・アダプタ、アドイン・カード、ノートブック・コンピュータ用のＰＣカードなどを含むことができる。ＰＣＩはカード・バス・コントローラを使用するが、ＰＣＩｅは使用しない。ＲＯＭ２２４は、例えば、フラッシュ・バイナリ入／出力システム（ＢＩＯＳ）のこともある。
【００１８】
ＨＤＤ ２２６およびＣＤ−ＲＯＭドライブ２３０は、バス２４０を介してＳＢ／ＩＣＨ ２０４に接続される。ＨＤＤ ２２６およびＣＤ−ＲＯＭドライブ２３０は、例えば、ＩＤＥ（integrated drive electronics）またはＳＡＴＡ（serial advanced technologyattachment）インタフェースを使用することもできる。スーパＩ／Ｏ（ＳＩＯ）デバイス２３６は、ＳＢ／ＩＣＨ ２０４に接続することができる。
【００１９】
オペレーティング・システムは処理ユニット２０６上で動作し、図２のデータ処理システム２００内部の様々なコンポーネントの制御を調整し提供する。クライアントとしては、オペレーティング・システムは、Microsoft(R) Windows(R) XP（MicrosoftおよびWindowsは、MicrosoftCorporationの米国または他の国々、あるいはその両方における商標である）など市販のオペレーティング・システムでもよい。Java（商標）プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと共に動作させることができ、データ処理システム２００上で実行されるJava（商標）プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する（Javaは、SunMicrosystems, Inc.の米国または他の国々、あるいはその両方における商標である）。
【００２０】
サーバとしては、データ処理システム２００は、例えば、AIX（R）（AdvancedInteractive Executive）オペレーティング・システムまたはLINUX（R）オペレーティング・システムが動作するIBM(R) eServer（商標）pSeries(R)コンピュータ・システムでもよい（eServer、pSeries、およびAIXは、International BusinessMachines Corporationの米国または他の国々、あるいはその両方における商標である。一方、LINUXは、Linus Torvalds氏の米国または他の国々、あるいはその両方における商標である）。データ処理システム２００は、処理ユニット２０６内に複数のプロセッサを含む対称マルチ・プロセッサ（ＳＭＰ）システムでもよい。あるいは、シングル・プロセッサ・システムを使用することもできる。
【００２１】
オペレーティング・システムの命令、オブジェクト指向プログラミング・システム、ならびにアプリケーションまたはプログラムは、ＨＤＤ２２６などの記憶装置上に配置することができ、処理ユニット２０６によって、実行のために主メモリ２０８にロードすることができる。本発明の諸実施形態のための処理は、コンピュータ使用可能なプログラム・コードを使用して処理ユニット２０６によって実行することができる。プログラム・コードは、例えば、主メモリ２０８、ＲＯＭ２２４などのメモリ、あるいは１つまたは複数の周辺装置２２６や２３０に配置することができる。
【００２２】
当業者ならば、図１〜２のハードウェアは、実装に応じて変更できることを理解されよう。図１〜２に示されたハードウェアに追加して、またはそれらの代わりに、フラッシュ・メモリ、等価な不揮発メモリ、または光ディスク装置など、他の内部ハードウェアまたは周辺装置を使用することができる。また、本発明のプロセッサは、マルチ・プロセッサ・データ処理システムに適用することもできる。
【００２３】
いくつかの例示では、データ処理システム２００は携帯情報端末（ＰＤＡ）でもよい。ＰＤＡは、オペレーティング・システム・ファイルまたはユーザ生成データ、あるいはその両方を格納するための不揮発メモリを提供するフラッシュ・メモリを用いて構成される。
【００２４】
バス・システムは、図２に示されたバス２３８またはバス２４０など、１つまたは複数のバスで構成することができる。もちろん、バス・システムは、任意の種類の通信構成またはアーキテクチャを用いて実装することもできる。通信構成またはアーキテクチャは、それらに接続された様々なコンポーネントまたは装置間のデータの転送を提供する。通信ユニットには、図２のモデム２２２またはネットワーク・アダプタ２１２など、データの送受信に使用される１つまたは複数の装置を含めることができる。メモリは、例えば、主メモリ２０８、ＲＯＭ２２４、または図２のＮＢ／ＭＣＨ ２０２などに含まれるキャッシュでもよい。図１〜２に示された例および上述の例は、アーキテクチャ上の制限を示唆することを意図したものではない。例えば、データ処理システム２００はまた、タブレット・コンピュータ、ラップトップ・コンピュータ、またはＰＤＡの形を取るものも含めた電話装置などでもよい。
【００２５】
本発明の例示的実施形態によれば、システムのセキュリティ・イベントを監視し、セキュリティ脅威に対する実時間応答を提供するためのエキスパート・システムが提供される。本発明のエキスパート・システムは、コンピュータ・システムの構成、セキュリティ機能、および脅威に関する知識を組合せ、その情報を知識データベースに格納する。このエキスパート・システムは、コンピュータ・システムを絶えずモニタしてシステム・イベントを検出し、潜在的なセキュリティ脅威を識別する。セキュリティ脅威を検出したとき、エキスパート・システムは、知識ベースを利用して、その潜在的セキュリティ脅威に対する対応策を実行する必要があるかどうかを判定する。対応策の実際の実行については、そのエキスパート・システムがセキュリティ脅威に対抗するアクションを取ることを、システム管理者が許可しているかどうかに依存して決まる。
【００２６】
本発明のエキスパート・システムの中心をなすのは、コンピュータ・システムは、大まかなカテゴリに分類することができるという考えである。例えば、エキスパート・システムは、コンピュータ・システムをリソース、イベント、モニタ、およびアクションのカテゴリに分類することができる。これらの大まかなシステム・カテゴリはさらに要素として定義することができ、各要素は詳細にリンクさせることができる。例えば、リソースは、コンピュータ・システムの中の保護を必要とするコンポーネントである。リソース・カテゴリの要素には、プロセス、ネットワーク・ポート、ファイル・システム、データ・ハードウェアなどを含めることができる。イベントは、リソースを脅かす恐れがある、システムにとっての何らかの出来事である。モニタは、リソースに対するリスクを検出し通知する、システムに組み込まれたアクティブなデーモンまたはコードである。アクションは、リソースを脅かすイベントを緩和するための、エキスパート・システムによって実行されるシステム変更である。イベントは、モニタによってエキスパート・システムに通知され、リソースへのリスクを示唆し、適切なアクションの決定を必要とし、アクションはリソースを保護する。
【００２７】
図３は、本発明の例示的実施形態による、各カテゴリ間の関係の例を示す図である。これらの関係は知識ベースに格納することができる。このことについては、後で図４に関してさらに説明する。この図の例では、モニタ３０２は、イベントＭ３０４などのイベントを検出する。エキスパート・システムは、イベントＭ ３０４の発生がリソースＡ ３０６やリソースＢ ３０８などのシステム・リソースに対するリスクを引き起こす可能性があるかどうかを判定する。リソースＡ３０６に対するリスクに対抗するために、エキスパート・システムは、アクションＩ ３１０などのアクションを取ることによってイベントＭ ３０４のリスクを緩和することができる。同様に、エキスパート・システムは、アクションＪ３１２を取ることによってイベントＭ ３０４のリスクを軽減することもできる。
【００２８】
イベントは何らかの刺激、例えば、プロセスがポート上でリスン・ソケットをオープンするときなどの、ネットワークへのアクセスをオープンしようとする試み、によって生成される。あらゆるイベントは、関連するセキュリティ脅威リスクを有している。イベントのセキュリティ脅威リスク値は、そのイベントの発生がシステムに及ぼす可能性がある潜在的な脅威を反映する。例えば、イベントが無許可のユーザに特権アクセス与えるような場合には、リスクは高くなる。イベントの脅威リスクの尺度は、例えば０から１０の間の整数とすることができる。
【００２９】
アクションは、イベントに応答した、システムのセキュリティ構成に対する変更である。あらゆるアクションは関連するアクション・リスクを有しており、アクションを実行することによるリスクは、イベントのセキュリティ脅威リスクを上回ることがある。アクション・リスクの方が大きい場合は、エキスパート・システムの推論エンジンは、その特定のイベント対してアクションを取らないように推論するはずである。例えば、アクションが正当なユーザへのアクセスを拒否することができる場合には、アクション・リスクは高くなる。アクション・リスクの尺度は、０から１０の間の整数とすることができる。
【００３０】
本発明のエキスパート・システムは、システム管理者が全体の人工知能システムに対する信頼のレベルを構成することを可能にすることによって、既存のシステムに対する利点を提供する。信頼値は、システム管理者がエキスパート・システムに設定した許可または信頼を示すために使用される。例えば、システム管理者は、エキスパート・システムに高い信頼値を割り当てることによって、エキスパート・システムに対するセキュリティを完全に放棄することができる。あるいは、システム管理者自身の個人的な構成設定で十分であることを承知した上で、システムに低い信頼値を割り当てることによってそのシステムにほとんど信頼を与えないこともできる。信頼値は、システム管理者によって入力される単一の構成値であり、それによりエキスパート・システムの構成が単純化される。本発明のエキスパート・システムは、最初に、イベントとして登録されたセキュリティ脅威のリスクの重大さと、そのセキュリティ脅威に対抗するために取るべきアクションのリスクとを比較検討する。脅威リスクの方がアクションのリスクより大きいと判定された場合は、エキスパート・システムはアクションを実行すべきだと決定する。しかし、次に、エキスパート・システムは、アクションのリスクとシステム管理者によって設定された信頼レベルとを比較する。アクション・リスク値が信頼レベルの範囲内にある（例えば、アクション・リスク値が、割り当てられた信頼値以下である）場合は、アクションが取られる。そうでない場合、すなわちアクション・リスク値が信頼レベルの範囲内にない（例えば、アクション・リスク値が割り当てられた信頼値より大きい）場合は、システム管理者は、検知された脅威に対抗するアクションを取るためにエキスパート・システムによってなされた決定を信頼できないことになり、したがってエキスパート・システムはアクションを取らないことになる。
【００３１】
例えば、システム管理者は、エキスパート・システムによってなされるすべての決定に対して信頼値の５を設定する。ただし、信頼値の０は、エキスパート・システムの決定に対する最低レベルの信頼を示し、信頼値の１０は、エキスパート・システムの決定に対する最高レベルの信頼を示す。脅威リスク値の６を有する脅威が検出されたとき、エキスパート・システムは、脅威に対抗するための特定のアクションを識別する。この場合、そのアクションにリスク値の２が割り当てられているとする。エキスパート・システムは、脅威リスク値とアクション・リスク値の差を計算する。脅威リスク値からアクション・リスク値を差し引いた差が０以上の場合は、エキスパート・システムはアクションを取るべきだと判定する。次に、エキスパート・システムは、アクション・リスク値が、システム管理者が定めた信頼レベル以下かどうかを判定する。この場合、アクション・リスク値（２）は、システム管理者の信頼レベル（５）より小さいので、エキスパート・システムによって脅威に対抗するためのセキュリティ・アクションが取られることになる。上記の例は、リスクと信頼コンポーネントを比較する単純な数学モデルであるが、本発明の趣旨および範囲を逸脱することなく、他のより複雑なモデルを使用することができることに留意されたい。
【００３２】
したがって、本発明の機構は、ユーザにエキスパート・システムの信頼を構成する機能を提供する。この信頼レベルは、エキスパート・システムの意思決定プロセスに浸透し、ユーザによってエキスパート・システムの決定プロセスにおけるリスクを軽減するために使用される。エキスパート・システムは、それ自体の信頼をそれ自体で確立することができるので、ユーザがエキスパート・システムの意思決定プロセスに設定した信頼レベルは、エキスパート・システムの学習の量および程度にも影響を与えることがある。言い換えると、エキスパート・システムは、それ自体の結論についての信頼を確立する。例えば、携帯電話会社は、指定された期間、ユーザ自身の電話から特定の番号にダイアルすることをユーザがブロックできる機能を顧客に提供する。この機能のある特定の使用法は、ユーザが酔っているときに、ユーザがいくつかの電話番号にダイアルするのを阻止することである。したがって、ユーザは、酒を飲みに出かける前にユーザの上司の電話番号をブロックすることができる。その理由は、ユーザが酔っているときには、ユーザの上司に電話をするというユーザ自身の決定をユーザが信頼できないからである。
【００３３】
図４は、本発明の例示的実施形態による例示的エキスパート・システムの構成図である。エキスパート・システム４００は、図２のデータ処理システム２００などのデータ処理システムの中に実装することができる。さらに、図４に示されたエキスパート・システムのアーキテクチャは、コンピュータまたはネットワークの脆弱性評価に関係する任意のエキスパート・システム・アプリケーションにも使用することもできる。エキスパート・システム４００は、コンピュータ・システムに対するセキュリティ脅威についての結論または推論を生成するために使用することができる。前述のように、エキスパート・システムは、人間の専門知識からなる知識ベースを使用して問題解決を行う人工知能アプリケーションである。
【００３４】
この図の例では、エキスパート・システム４００は、知識ベース４０２と推論エンジン４０４を含む。これらは共に、潜在的なセキュリティ脅威を検出し、関連するアクションを実施することによってその潜在的な脅威に対応するために使用されるインテリジェント・セキュリティ脅威応答ツールを形成する。知識ベース４０２は、データベース内のデータなどの知識、ならびにルールの形の各データ間の関係を含む。推論エンジン４０４は、知識ベース４０２からの入力（格納されたデータ４０６）を使用して、システム・イベントに関する結論を導くことができる。知識ベース４０２は、使用によってそれ自体を更新する機能も含む。知識ベース４０２は、システム管理者によって、または管理者による使用のためにサード・パーティによって維持することができる。場合によっては、サード・パーティは、ベンダまたはベンダのグループのこともある。
【００３５】
推論エンジン４０４は、プログラム・ロジックとルールを含む。推論エンジンのプログラム・ロジックは、その機能がルールを解釈することなので、最小限に保つことができる。ルールは、イベントおよびアクションのリスクと、システム管理者によってエキスパート・システムに委ねられた制御とのバランスを取るために適用される。システム管理者は、システムを変更し保護するためにエキスパート・システムにどの程度の制御を委託するかを示す、制御権限（power and control）または信頼値の形の単純な構成設定値を使用することができる。推論エンジンのプログラム・ロジックは、イベントのセキュリティ脅威についてのリスクの重大さと、取るべきアクションのリスクを比較検討する。このプログラム・ロジックはまた、セキュリティ脅威リスクと取るべきアクションのリスクとの差を信頼値と比較する。制御権限設定値または信頼値は、０から１０の間の整数値とすることができる。システム管理者は、この信頼値をエキスパート・システムの初期構成の間に設定することができる。システム管理者が高レベルのセキュリティを選択する場合は、システムの制御権限値は１０に設定される。中間および低セキュリティ・レベルの場合は、システムの権制御限値としてそれぞれ５および０が与えられる。
【００３６】
例えば、ネットワーク・スニッファ（sniffer）検出またはポート・スキャナなどのモニタ・コンポーネントは、コンピュータ・システムの様々なポイントに配置することができる。モニタ・コンポーネント（モニタ４０８）は、システムの活動に関する情報を取得するために使用される。モニタ４０８からの情報は、エキスパート・システム４００の推論エンジン４０４に供給される。推論エンジン４０４は、取得したデータを知識ベース４０２に適用する。推論エンジン４０４が、モニタされたデータ内のイベントが潜在的なセキュリティ脅威であると判定した場合は、推論エンジン４０４は、検出されたセキュリティ・イベントに関連する対応策（アクション）を実施することによって、セキュリティ脅威に応答する。
【００３７】
セキュリティ・イベントおよびアクションには、付随するリスク値が存在する。すなわち、(セキュリティ脅威だと認識された)イベントの発生がシステム・リソースに及ぼすリスクと、その脅威に対して取られるアクションに付随するリスクである。システム管理者は、モニタ領域で発生する可能性がある脅威に対する初期脅威リスク値を割り当てることができる。初期脅威リスクは、例えば０から１０の間の整数で、低脆弱性から高脆弱性までの脅威を評価する。さらに、各潜在脅威に対して、システム管理者は、その脅威に対抗するために使用される各対応策にアクション・リスク値を割り当てることができる。なぜならば、脅威に対して取られる各対応策には、固有のリスクが存在するからである。例えば、モニタ・ポートで脅威が検出された場合に、その脅威に対して取られるアクションには、ネットワーク・トラフィックを遮断することによってそのポートへの不許可アクセスを阻止するなどの構成変更を含めることができる。しかし、認識された脅威が誤った警告であり、さらにエキスパート・システムが、そのポートへのアクセスを遮断することによるアクションを取った場合は、取られたアクション自体が害をもたらす可能性があり、システムのアクセシビリティまたは性能にマイナスの影響をもたらすことがあり得る。認識された脅威が誤った警告でなく、しかもエキスパート・システムがその脅威に対して何のアクションも取らなかった場合は、その脅威のために、システムが危うくなるかまたはサービスが拒否されることがあり得る。
【００３８】
システム管理者は、知識ベース４０２内に初期脅威リスク値とアクション・リスク値を割り当てることができる。しかし、割り当てられた脅威およびリスク値は、静的な値またはハード・コード化された値ではない。なぜならば、これらの値は、エキスパート・システム自体によって更新されることがあるからである。例えば、エキスパート・システム４００の知識ベース４０２は、再帰人工ネットワーク・ループ（recurrent artificial network loop）の形で更新することができる。例えば、エキスパート・システムがアクションを実施するときに、システムはアクションの成功を確認するためにモニタされる。このアクション結果４１０は、知識ベース４０２に戻される。（さらに、アクションにマイナスの影響が存在した場合は、イベントが生成され、推論エンジンによって処理される）。知識ベースは、更新によってどのイベントとアクションが影響を受けたかをインテリジェントに識別する。したがって、エキスパート・システムが現在の脅威をどのように処理すべきかに関する結論を導くときに、前のイベントのアクション結果が考慮されることになる。このように、エキスパート・システムは、後の脅威をどのように処理すべきかを決定するときに、すべての要因を全体として考慮することができる。
【００３９】
図５は、本発明の例示的実施形態による、セキュリティ推論エンジンのコア・プログラミング・ロジックを示す図である。図５に示されたセキュリティ推論エンジン・ロジックは、図４の推論エンジン４０４などの推論エンジンに実装することができる。プログラミング・ロジックは、図４のモニタ４０８などのモニタ・コンポーネントが、エキスパート・システムにイベントの形の潜在的なセキュリティ脅威を通知したときに実行することができる。
【００４０】
推論エンジンは、モニタされたデータと知識ベース内の情報を使用し、セキュリティ脅威に応答して、アクションを取るべきかどうかを識別する。ステップ５０２に示されるように、推論エンジンのプログラミング・ロジックは、イベントの脅威リスク（イベント・リスク５０４）が、その脅威に対抗するために取るべきアクションのリスク（アクション・リスク５０６）よりも大きいかどうかを判定する。イベントの脅威リスクの方がアクション・リスクより大きい（（イベント・リスク−アクション・リスク）＞０）場合は、推論エンジンは、そのアクションが必要であり取るべきだと結論づける。アクションを取ることによるリスクが、イベントによってもたらされる実際の脅威リスクより大きい場合は、アクションは取られない。
【００４１】
アクションを取るべきだと結論されたときは、推論エンジンは、システム管理者がエキスパート・システムに設定した信頼レベルに基づいてアクションを実行することができる。例えば、ステップ５０８で、システム管理者によって設定された制御権限信頼値（制御権限信頼値５１０）が、必要なアクションを取ることによるリスク値（アクション・リスク５０６）と比較される。制御権限信頼値がアクション・リスク以上の場合は、エキスパート・システムは必要なアクション５１２を取る権限を有することになる。したがって、システム管理者は、アクションによってシステムを変更し保護することをエキスパート・システムに委託することができる。一方、アクション・リスク値の方が制御権限信頼値より大きい場合は、エキスパート・システムはアクションを取らず、イベント５１４をログに記録することだけを行う。
【００４２】
図６は、本発明の例示的実施形態による、例示的な人工ニューラル・ネットワーク（ＡＮＮ）・エキスパート・システムを示す図である。人工ニューラル・ネットワーク・エキスパート・システム６００は、脳などの生体神経系が情報を処理する方法に基づく情報処理システムを提供する。人間のように、人工ニューラル・ネットワークは実例によって学習する。人工ニューラル・ネットワーク・エキスパート・システム６００は、学習プロセスを通してセキュリティ脅威に対する実時間応答を提供するように構成される。人工ニューラル・ネットワーク・エキスパート・システム６００は、図２のデータ処理システム２００などのデータ処理システム内に実装することができる。
【００４３】
この図の例では、人工ニューラル・ネットワーク・エキスパート・システム６００は、複数の相互に接続された処理要素または人工ニューロン６０２などの人工ニューロンを含む。人工ニューロンは、人工ニューラル・ネットワークの基本コンポーネントであり、特定の処理を実施するために使用される。このことについては、以下で図７に関してさらに説明する。
【００４４】
人工ニューラル・ネットワーク・エキスパート・システム６００は、各要素からなる層を含む。詳細には、人工ニューラル・ネットワーク・エキスパート・システム６００は、入力層６０４、内部処理層６０６、および出力層６０８を含む。入力層６０４は、システムのモニタ・コンポーネント、例えば図４のモニタ４０８などからデータを受信する人工ニューロンを含む。様々なモニタ・コンポーネントとして、ネットワーク・モニタ、システム・モニタ、および侵入トリガ（intrusion trigger）などを含めることができる。データに対して入力層６０４のニューロンがその機能を実行したとき、入力層６０４の出力は内部処理層６０６に提供される。内部処理層６０６は、入力と出力が他のニューロンに接続された人工ニューロンを含む。内部処理層６０６のニューロンは、入力層６０４から受け取ったデータにその機能を実行し、出力層６０８のニューロンに出力を提供する。出力層６０８からの出力は、検出されたセキュリティ脅威に対抗するためにエキスパート・システムによって実行できるアクションを提供する。
【００４５】
ある層の出力が以前の層に戻されるように、各層の複数のニューロン間に単純再帰ネットワーク（ＳＲＮ）・ループの形のフィードバック接続を提供することもできる。例えば、入力層６０４のニューロン６０２の出力はそれ自体に戻され、内部処理層６０６のニューロン６１０の出力は入力層のニューロン６１２に戻され、出力層６０８のニューロン６１４の出力は入力層６０４のニューロン６１６に戻される。このようなＳＲＮループによって、人工ニューラル・ネットワークはそれ自体から学習することが可能になり、したがって検出されたセキュリティ脅威に対応する改良された意思決定が可能になる。
【００４６】
図７は、先に図６で説明した人工ニューロンのより詳細な図を示す。レセプタｒ１ ６２０からの入力などの各入力は、人工ニューロン６２２によって受信される。受信された入力は、相互に関連づけられるか、または単純に加算される。関係づけられた入力は、活性化関数に送られて結果が生成される。活性化関数６２４は、セキュリティ脅威のリスクとその脅威を緩和するために必要なアクションのリスクとを比較検討するとともに、システム管理者がエキスパート・システムの意思決定機能中に設定した信頼レベルに基づいて、エキスパート・システムの実行すべき決定とアクションを調整することができる。このように、システム管理者がエキスパート・システムに割り当てた信頼レベルを使用して、人工ニューラル・ネットワークのアクション、リアクション、学習、および決定のプロセスを調整することができる。
【００４７】
したがって、本発明は、システム・イベントをモニタしセキュリティ脅威に対する実時間応答を提供するエキスパート・システムを提供することによって、従来技術の欠点を解決する。本発明の機構は、ルールベース・エキスパート・システムを提供することによって、システム管理者の仕事を簡単化する。このルールベース・エキスパート・システムは、システムの構成、セキュリティ機能、および脅威に関する知識と、システムをモニタすることから得られた情報とを組み合わせることによって、検出されたセキュリティ脅威に対する事前対応型の（proactive）応答を提供する。本発明のエキスパート・システムは、セキュリティ脅威のリスクの重大さと、そのセキュリティ脅威に対抗するために取るべきアクションのリスクを比較検討する。本発明のエキスパート・システムはさらに、アクション・リスクと、システムの変更および保護に関してエキスパート・システムにどの程度の制御が委託されるかを示す、システム管理者によって設定された信頼値とを比較検討する。必要なアクションについては、エキスパート・システムは、システムによって設定された信頼値によりエキスパート・システムがアクションを取ることが許容される場合にアクションを取ることができる。
【００４８】
本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどのソフトウェアの形で実装される。ただし、それらに限られるものではない。
【００４９】
さらに、本発明は、コンピュータまたは任意の命令実行システムによって、またはそれらと共に使用されるプログラム・コードを提供するコンピュータ使用可能な媒体またはコンピュータ可読の媒体からアクセス可能な、コンピュータ・プログラム製品の形を取ることもできる。この説明のためには、コンピュータ使用可能な媒体またはコンピュータ可読の媒体は、命令実行システム、装置、またはデバイスによって、またはそれらと共に使用されるプログラムを、内蔵、格納、通信、伝播、または搬送することができる任意の有形な装置でもよい。
【００５０】
媒体は、電子、磁気、光学、電磁、赤外、または半導体システム（または装置またはデバイス）、あるいは伝播媒体でもよい。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、固定式磁気ディスク、光ディスクなどがある。現在使用されている光ディスクの例には、ＣＤ−ＲＯＭ（compact disk - read only memory）、ＣＤ−Ｒ／Ｗ（compact disk - read/write）、ＤＶＤ（digitalvideo disc）などがある。
【００５１】
プログラム・コードの格納または実行、あるいはその両方に適するデータ処理システムは、システム・バスを介してメモリ素子に直接または間接に結合された少なくとも１つのプロセッサを含む。メモリ素子には、プログラム・コードの実際の実行の間に使用されるローカル・メモリ、大容量記憶装置、およびキャッシュ・メモリを含めることができる。キャッシュ・メモリは、実行時に大容量記憶装置からコードを取り出さなければならない回数を削減するために、少なくともプログラム・コードの一部についての一時的な記憶を提供する。
【００５２】
入／出力またはＩ／Ｏ装置（キーボード、表示器、ポインティング装置などが含まれるが、これらに限られるものではない）は、直接または中間Ｉ／Ｏコントローラを介してシステムに結合することができる。
【００５３】
データ処理システムが中間のプライベートまたはパブリック・ネットワークを介して他のデータ処理システム、またはリモートのプリンタもしくは記憶装置に結合できるようになるように、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム、およびイーサネット（Ｒ）カードは、現在使用可能な種類のネットワーク・アダプタのほんの一例である。
【００５４】
本発明の記載は、例示および説明のために提示されたものであり、包括的であること、または開示された形の発明に限定されることを意図したものではない。当業者には、多くの修正形態や変形形態が明らかなはずである。実施形態は、本発明の原理、実際の用途を最もよく説明するとともに、当業者が本発明を理解して、企図された特定の用途に適するような様々な修正を含む様々な実施形態を実現できるように選択され記載されたものである。
【図面の簡単な説明】
【００５５】
【図１】本発明を実装することができる分散データ処理システムの絵的表現を示す図である。
【図２】本発明の例示的実施形態によるデータ処理システムの構成図である。
【図３】本発明の例示的実施形態によるコンピュータ・システム・カテゴリ間の関係を示す図である。
【図４】本発明の例示的実施形態による例示的エキスパート・システムの構成図である。
【図５】本発明の例示的実施形態によるセキュリティ推論エンジンのコア・プログラミング・ロジックを示す図である。
【図６】本発明の例示的実施形態による例示的な人工ニューラル・ネットワーク（ＡＮＮ）・エキスパート・システムを示す図である。
【図７】本発明の例示的実施形態による人工ニューロンの詳細を示す図である。
【符号の説明】
【００５６】
３０２  モニタ
３０４  イベント
３０６  リソースＡ
３０８  リソースＢ
３１０  アクションＩ
３１２  アクションＪ
４００  エキスパート・システム
４０２  知識ベース
４０４  推論エンジン
４０６  格納されたデータ
４０８  モニタ
４１０  アクション結果
５０４  イベント・リスク
５０６  アクション・リスク
５１０  制御権限信頼値
６００  人工ニューラル・ネットワーク・エキスパート・システム
６０２  人工ニューロン
６０４  入力層
６０６  内部処理層
６０８  出力層
６２０  レセプタ
６２２  人工ニューロン
６２４  活性化関数
【図１】
2007193791.tif 000005
【図２】
2007193791.tif 000006
【図３】
2007193791.tif 000007
【図４】
2007193791.tif 000008
【図５】
2007193791.tif 000009
【図６】
2007193791.tif 000010
【図７】
2007193791.tif 000011