(57)【要約】  産業制御システム（ＩＣＳ）内でプロトコルに依存しない異常検出を実施するコンピュータ実施方法であり、検出段階を実施すること（１４００）は、ＩＣＳ（１４３０）と関連した少なくとも１つの新しいネットワークパケットに基づくバイトフィルタリングモデルを使用してバイトフィルタリングを実行し、少なくとも１つの新しいネットワークパケットの異なるバイトにわたる制約を分析することを含む水平検出を実行しバイトフィルタリングと水平モデルに基いて少なくとも１つのネットワークパケットに水平制約異常が存在するかを決定し（１４４０）、水平検出に基づいてメッセージクラスタリングを実行し第１のクラスタ情報を生成し（１４５０）、少なくとも１つの新しいネットワークパケットの各バイトの時間的なパターンを分析することを含む垂直検出を実行し第１のクラスタ情報と垂直モデルに基いて垂直異常が存在するかを決定すること（１４６０）を含む。
2021527873.tif 000002
【特許請求の範囲】
【請求項１】
産業制御システム（ＩＣＳ）内でプロトコルに依存しない異常な検出を実施するためのコンピュータ実施方法であって、
検出段階を実施すること（１４００）は、
前記ＩＣＳと関連した少なくとも１つの新しいネットワークパケットに基づくバイトフィルタリングモデルを使用してバイトフィルタリングを実行すること（１４３０）と、
前記少なくとも１つの新しいネットワークパケットの異なるバイトにわたる制約を分析することを含む水平検出を実行し、前記バイトフィルタリングと水平モデルに基づいて前記少なくとも１つのネットワークパケットに水平制約異常が存在するかどうかを決定すること（１４４０）と、
前記水平検出に基づいてメッセージクラスタリングを実行し、第１のクラスタ情報を生成すること（１４５０）と、
前記少なくとも１つの新しいネットワークパケットの各バイトの時間的なパターンを分析することを含む垂直検出を実行し、前記第１のクラスタ情報と垂直モデルに基づいて垂直異常が存在するかどうかを決定すること（１４６０）と、を含む方法。
【請求項２】
前記検出段階を実施することは、
検出用に前記少なくとも１つの新しいネットワークパケットを記録することと、
前記少なくとも１つの新しいネットワークパケットを少なくとも１つのセッションにグループ化することを含む前記少なくとも１つのネットワークパケットを前処理することと、をさらに含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの新しいネットワークパケットを前処理することは、前処理モデルに基づいて新しいトラフィックを決定することと、前記新しいトラフィックに応答して警告を発動することと、をさらに含む、請求項２に記載の方法。
【請求項４】
前記バイトフィルタリングを実行することは、前記バイトフィルタリングモデルに基づいて新しい違反パターンを見つけることと、前記新しい違反パターンを見つけることに応答して警告を発動することと、をさらに含む、請求項１に記載の方法。
【請求項５】
前記メッセージクラスタリングを実行することは、前記水平モデルの確率分布に基づいて、前記少なくとも１つの新しいネットワークパケットのクラスタを決定することをさらに含む、請求項１に記載の方法。
【請求項６】
学習段階を実施することをさらに含み、前記学習段階を実施することは、
前記バイトフィルタリングモデルを生成するために、１つ以上のネットワークパケットに基づいてバイトフィルタリングを実行することと、
前記水平モデルを生成するために前記バイトフィルタリングに基づいて水平学習を実行することと、
第２のクラスタ情報を生成するために前記水平学習に基づいてメッセージクラスタリングを実行することと、
垂直モデルを生成するために前記第２のクラスタ情報に基づいて垂直学習を実行することと、を含む、請求項１に記載の方法。
【請求項７】
前記学習段階を実施することは、
学習用に１つ以上のネットワークパケットを記録することと、
前記１つ以上のネットワークパケットを前処理することと、をさらに含む、請求項６に記載の方法。
【請求項８】
コンピュータにプロトコルに依存しない異常な検出を実施する方法を実行させるために、コンピュータによって実行可能なプログラム命令が具現化されたプログラム命令を有する非一時的なコンピュータ読み取り可能な記憶媒体を含むコンピュータプログラム製品であって、前記コンピュータによって実行される方法は、
検出段階を実施すること（１４００）であって、
前記ＩＣＳと関連した少なくとも１つの新しいネットワークパケットに基づくバイトフィルタリングモデルを使用してバイトフィルタリングを実行すること（１４３０）と、
前記少なくとも１つの新しいネットワークパケットの異なるバイトにわたる制約を分析することを含む水平検出を実行し、前記バイトフィルタリングと水平モデルに基づいて前記少なくとも１つのネットワークパケットに水平制約異常が存在するかどうかを決定すること（１４４０）と、
前記水平検出に基づいてメッセージクラスタリングを実行し、第１のクラスタ情報を生成すること（１４５０）と、
前記少なくとも１つの新しいネットワークパケットの各バイトの時間的なパターンを分析することを含む垂直検出を実行し、前記第１のクラスタ情報と垂直モデルに基づいて垂直異常が存在するかどうかを決定すること（１４６０）と、を含むコンピュータプログラム製品。
【請求項９】
前記検出段階を実施することは、
検出用に前記少なくとも１つの新しいネットワークパケットを記録することと、
前記少なくとも１つの新しいネットワークパケットを少なくとも１つのセッションにグループ化すること含む前記少なくとも１つのネットワークパケットを前処理することと、をさらに含む、請求項８に記載のコンピュータプログラム製品。
【請求項１０】
前記少なくとも１つの新しいネットワークパケットを前処理することは、前処理モデルに基づいて新しいトラフィックを決定することと、前記新しいトラフィックに応答して警告を発動することと、をさらに含む、請求項９に記載のコンピュータプログラム製品。
【請求項１１】
前記バイトフィルタリングを実行することは、前記バイトフィルタリングモデルに基づいて新しい違反パターンを見つけることと、前記新しい違反パターンを見つけることに応答して警告を発動することと、をさらに含む、請求項８に記載のコンピュータプログラム製品。
【請求項１２】
メッセージクラスタリングを実行することは、前記水平モデルの確率分布に基づいて、前記少なくとも１つの新しいネットワークパケットのクラスタを決定することをさらに含む、請求項８に記載のコンピュータプログラム製品。
【請求項１３】
前記方法は、学習段階を実施することをさらに含み、前記学習段階を実施することは、
前記バイトフィルタリングモデルを生成するために、１つ以上のネットワークパケットに基づいてバイトフィルタリングを実行することと、
前記水平モデルを生成するために前記バイトフィルタリングに基づいて水平学習を実行することと、
第２のクラスタ情報を生成するために前記水平学習に基づいてメッセージクラスタリングを実行することと、
前記第２のクラスタ情報に基づいて垂直学習を実行することと、を含む、請求項８に記載のコンピュータプログラム製品。
【請求項１４】
前記学習段階を実施することは、
学習用に１つ以上のネットワークパケットを記録することと、
前記１つ以上のネットワークパケットを前処理することと、をさらに含む、請求項１３に記載のコンピュータプログラム製品。
【請求項１５】
プロトコルに依存しない異常な検出を実施するためのシステムであって、
プログラムコードを記憶するための記憶装置（１５１０）と、
記憶装置に動作可能に結合され、前記記憶装置に記憶されたプログラムコードを実行するように構成された少なくとも１つのプロセッサ装置（１５０５）と、を含み、
検出段階は、
前記ＩＣＳと関連した少なくとも１つの新しいネットワークパケットに基づくバイトフィルタリングモデルを使用して少なくともバイトフィルタリングを実行することに基づいて、バイトフィルタリングモデルを使用してバイトフィルタリングを実行することと、
前記少なくとも１つの新しいネットワークパケットの異なるバイトにわたる制約を分析すること含む水平検出を実行し、前記バイトフィルタリングと水平モデルに基づいて前記少なくとも１つのネットワークパケットに水平制約異常が存在するかどうかを決定することと、
前記水平検出に基づいてメッセージクラスタリングを実行し、第１のクラスタ情報を生成することと、
前記少なくとも１つの新しいネットワークパケットの各バイトの時間的なパターンを分析することを含む垂直検出を実行し、前記第１のクラスタ情報と垂直モデルに基づいて垂直異常が存在するかどうかを決定することと、によって実施するシステム。
【請求項１６】
前記少なくとも１つのプロセッサ装置は、さらに、
検出用に前記少なくとも１つの新しいネットワークパケットを記録することと、
前記少なくとも１つの新しいネットワークパケットを少なくとも１つのセッションにグループ化することを含む前記少なくとも１つのネットワークパケットを前処理することと、によって前記検出段階を実施するよう構成されている、請求項１５に記載のシステム。
【請求項１７】
前記少なくとも１つのプロセッサ装置は、さらに、前処理に基づいて新しいトラフィックを決定すること、および前記新しいトラフィックに応答して警告を発動することによって、前記少なくとも１つの新しいネットワークパケットを前処理するよう構成されている、請求項１６に記載のシステム。
【請求項１８】
前記少なくとも１つのプロセッサ装置は、さらに、前記バイトフィルタリングモデルに基づいて新しい違反パターンを見つけること、および前記新しい違反パターンを見つけることに応答して警告を発動することによって前記バイトフィルタリングを実行するよう構成されている、請求項１５に記載のシステム。
【請求項１９】
前記少なくとも１つのプロセッサ装置は、さらに、前記水平モデルの確率分布に基づいて、前記少なくとも１つの新しいネットワークパケットのクラスタを決定することによって、前記メッセージクラスタリングを実行するよう構成されている、請求項１５に記載のシステム。
【請求項２０】
前記少なくとも１つのプロセッサ装置は、さらに、
学習用に１つ以上のネットワークパケットを記録すること、
前記１つ以上のネットワークパケットを前処理すること、
前記バイトフィルタリングモデルを生成するために、前記１つ以上のネットワークパケットの前処理に基づいてバイトフィルタリングを実行すること、
前記水平モデルを生成するために前記バイトフィルタリングに基づいて水平学習を実行すること、
第２のクラスタ情報を生成するために前記水平学習に基づいてメッセージクラスタリングを実行すること、および
前記第２のクラスタ情報に基づいて垂直学習を実行すること、
によって学習段階を実施するよう構成されている、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願情報）
本出願は２０１８年８月１７日に出願された仮出願番号６２／７１９，２３８および２０１９年８月８日に出願された米国特許出願番号１６／５３５，５２１に対する優先権を主張するものであり、その全体が夫々参照により本明細書に組み込まれる。
【背景技術】
【０００２】
（技術分野）
本発明は、コンピュータセキュリティアーキテクチャに関し、より詳細には、プロトコルに依存しない異常検出に関する。
【０００３】
（関連技術の説明）
制御コンピュータシステムは成長し、セキュリティ攻撃からますます注目を集めている。このようなセキュリティ攻撃の例として、例えば、Ｓｔｕｘｎｅｔ、ＶＰＮフィルタ、およびＭｉｒａｉがある。いくつかの制御コンピュータシステムにおいて、装置の高い要求と安定性のため、ホストレベルのセキュリティソリューションを配備するのが困難な場合がある。
【発明の概要】
【０００４】
本原理の一態様によれば、産業制御システム（ＩＣＳ）内でプロトコルに依存しない異常な検出を実施するための方法が提供される。前記方法は、検出段階を実施することを含む。検出段階を実施することは、ＩＣＳと関連した少なくとも１つの新しいネットワークパケットに基づくバイトフィルタリングモデルを使用してバイトフィルタリングを実行すること、および水平検出を実行し、前記バイトフィルタリングと水平モデルに基づいて前記少なくとも１つのネットワークパケットに水平制約異常が存在するかどうかを決定することを含む。水平検出を実行することは、前記少なくとも１つの新しいネットワークパケットの異なるバイトにわたる制約を分析することを含む。検出段階を実施することは、前記水平検出に基づいてメッセージクラスタリングを実行し、第１のクラスタ情報を生成すること、および垂直検出を実行し、前記第１のクラスタ情報と垂直モデルに基づいて垂直異常が存在するかどうかを決定することを含む。垂直検出を実行することは、前記少なくとも１つの新しいネットワークパケットの各バイトの時間的なパターンを分析することを含む。
【０００５】
本原理の他の態様によれば、産業制御システム（ＩＣＳ）内でプロトコルに依存しない異常な検出を実施するためのシステムが提供される。前記システムは、プログラムコードを記憶するための記憶装置と、記憶装置に動作可能に結合された少なくとも１つのプロセッサ装置とを含む。前記少なくとも１つのプロセッサ装置は、検出段階を実施するために前記記憶装置に記憶されたプログラムコードを実行するように構成される。前記少なくとも１つのプロセッサ装置は、前記ＩＣＳと関連した少なくとも１つの新しいネットワークパケットに基づくバイトフィルタリングモデルを使用してバイトフィルタリングを実行すること、および水平検出を実行し、前記バイトフィルタリングと水平モデルに基づいて前記少なくとも１つのネットワークパケットに水平制約異常が存在するかどうかを決定することにより前記検出段階を実施するように構成される。前記水平検出を実行することは、水平モデルに基づいて前記少なくとも１つの新しいネットワークパケットの異なるバイトにわたる制約を分析することを含む。前記少なくとも１つのプロセッサ装置は、さらに、前記水平検出に基づいてメッセージクラスタリングを実行し、前記第１のクラスタ情報を生成すること、および垂直検出を実行し、前記第１のクラスタ情報と垂直モデルに基づいて垂直異常が存在するかどうかを決定することにより前記検出段階を実施するように構成される。前記垂直検出を実行することは、前記少なくとも１つの新しいネットワークパケットの各バイトの時間的なパターンを分析することを含む。
【０００６】
これらおよび他の特徴および利点は添付の図面に関連して読まれるべき、その例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００７】
本開示は、以下の図面を参照して、好ましい実施形態の以下の説明において詳細を提供する。
【図１】本発明の一実施形態による、産業制御システム（ＩＣＳ）の高レベルの概要を示すブロック／フロー図である。
【図２】本発明の一実施形態による、プロトコルに依存しない異常な検出を実施するためのアーキテクチャの高レベルの概要を示すブロック／フロー図である。
【図３】本発明の一実施形態による、プロトコルに依存しない異常な検出を実施するための例示的なアーキテクチャを示すブロック／フロー図である。
【図４】本発明の一実施形態による、図３のアーキテクチャによって実施される例示的なバイトフィルタリング方法を示す図である。
【図５】本発明の一実施形態による、図３のアーキテクチャによって実施される例示的な水平学習方法を示す図である。
【図６】本発明の一実施形態による、図３のアーキテクチャによって実施される検出のためのバイトレベルの異常閾値を生成するための例示的な方法を示す図である。
【図７】本発明の一実施形態による、図３のアーキテクチャによって実施される検出のためのメッセージレベルの水平異常閾値を生成する例示的な方法を示す図である。
【図８】本発明の一実施形態による、図３のアーキテクチャによって実施される例示的な違反カウント方法を示す図である。
【図９】本発明の一実施形態による、図３のアーキテクチャによって実施される例示的なメッセージクラスタリング方法を示す図である。
【図１０】本発明の一実施形態による、図３のアーキテクチャによって実施される例示的な垂直方向の学習方法を示す図である。
【図１１】本発明の一実施形態による、図３のアーキテクチャによって実施される例示的な水平検出方法を示す図である。
【図１２】本発明の一実施形態による、図３のアーキテクチャによって実施される例示的な垂直検出方法を示す図である。
【図１３】本発明の一実施形態による、プロトコルに依存しない異常な検出の学習段階を実施するためのシステム／方法を示すブロック／フロー図である。
【図１４】本発明の一実施形態による、プロトコルに依存しない異常な検出の検出段階を実施するためのシステム／方法を示すブロック／フロー図である。
【図１５】本発明の一実施形態によるコンピュータシステムを示すブロック／フロー図である。
【発明を実施するための形態】
【０００８】
本明細書で説明される実施形態はプロトコルの事前知識を必要とせずに、制御コンピュータシステムの異常な検出を提供し、本明細書では、プロトコルに依存しない、またはプロトコルにとらわれない異常な検出と呼ばれる。例示的に、本明細書で説明される実施形態は、産業制御システム（ＩＣＳ）の異常な検出を提供することができる。例えば、異常な検出はオペレーショナルテクノロジ（ＯＴ）ネットワークまたはシステムプロトコルの事前の知識を必要とせずに、ＯＴネットワークまたはシステムトラフィックのために提供され得る。したがって、本明細書で説明される実施形態は手動分析なしにＩＣＳセキュリティソリューションを提供することができ、それによって、リバースエンジニアリングが困難であり得る、専有のまたは未知のネットワークプロトコルおよび拡張を有するＩＣＳシステムに適用可能性を提供する。したがって、本明細書で説明される実施形態は、制御コンピュータシステムのためのセキュリティソリューションを設計する際の時間およびリソースの消費を低減することができる。
【０００９】
本明細書に記載する実施形態は完全にハードウェアであってもよく、完全にソフトウェアであってもよく、またはハードウェアおよびソフトウェア要素の両方を含むものであってもよい。好ましい実施形態では、本発明がファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアで実施される。
【００１０】
実施形態は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するプログラムコードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能なコンピュータプログラム製品を含むことができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを格納、通信、伝搬、または伝達する任意の装置を含むことができる。媒体は、磁気、光学、電子、電磁気、赤外線、または半導体システム（または装置またはデバイス）、または伝達媒体とすることができる。媒体は、半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスクおよび光ディスクなどのコンピュータ読み取り可能な記憶媒体を含むことができる。
【００１１】
各コンピュータプログラムは本明細書に記載する手順を実行するために、記憶媒体または装置がコンピュータによって読み取られるとき、コンピュータの操作を構成し制御するために、汎用または特殊目的のプログラム可能コンピュータによって読み取り可能な、機械読み取り可能な記憶媒体または装置（例えば、プログラムメモリまたは磁気ディスク）に実体的に記憶することができる。本発明のシステムはまた、コンピュータプログラムで構成された、コンピュータ読み取り可能な記憶媒体で実施されるものと考えることができ、その場合、構成された記憶媒体は、コンピュータを特定の所定の予め決められた方法で動作させて、本明細書に記載する機能を実行させる。
【００１２】
プログラムコードを記憶および／または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含んでもよい。メモリ要素は、プログラムコードの実際の実行中に採用されるローカルメモリ、バルク記憶、および実行中にバルク記憶からコードが検索される回数を減らすために少なくとも何らかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。入力／出力またはＩ／Ｏ装置（キーボード、ディスプレイ、ポインティング装置などを含むが、これらに限定されない）は直接または経由するＩ／Ｏコントローラを介してシステムに結合され得る。
【００１３】
介在する専用ネットワークまたは公衆ネットワークを介して、データ処理システムを他のデータ処理システムあるいは遠隔プリンタまたは記憶装置に結合できるようにするために、ネットワークアダプタをシステムに結合することもできる。モデム、ケーブルモデム、およびイーサネットカードは、現在利用可能なネットワークアダプタのタイプのほんの一部である。
【００１４】
ここで、図を詳細に参照すると、同様の数字は同一または類似の要素を示し、最初は図１に示されており、システム１００の高レベルの概要が例示的に示されている。図示のように、システム１００は、ネットワーク１０２に接続された産業制御システム（ＩＣＳ）１１０および工場１２０を含むことができる。例えば、ＩＣＳ１１０は、オペレーショナルテクノロジ（ＯＴ）ネットワークまたはシステムを含むことができる。ＩＣＳ１１０は、工場１２０の構成要素を制御することができる。ＩＣＳ１１０は、本明細書に記載の実施形態にしたがって任意の適切な環境を制御するように構成することができることを理解され、認識されたい。ＩＣＳ１１０は工場１２０の外部にあるものとして示されているが、他の実施形態ではＩＣＳ１１０は工場１２０内に配置することができる。
【００１５】
敵がネットワーク１００にアクセスする場合、敵は悪意のあるパケットをＩＣＳ１１０に送信して、悪意のある目的のためにＩＣＳ１１０を構成し、制御することができる。ＩＣＳ１１０に対するこのような攻撃と戦うために、システム１００は、ネットワーク１０２に接続された少なくとも１つのプロセッサ装置１３０をさらに含むことができる。少なくとも１つのプロセッサ装置１３０は独立した構成要素として示されているが、他の実施形態では少なくとも１つのプロセッサ装置１３０がＩＣＳ１１０の構成要素および／または工場１２０内に配置された構成要素とすることができる。
【００１６】
少なくとも１つのプロセッサ装置１３０はネットワーク１００（例えば、パッシブ監視）内で交換されているネットワークトラフィックを監視するように構成することができる。以下にさらに詳細に説明するように、少なくとも１つのプロセッサ装置１３０は構成要素１０２、１１０および／または１２０に対する攻撃を検出し、それによってネットワークセキュリティを提供するために、プロトコルに依存しない異常な検出を実装することができる。例えば、少なくとも１つのプロセッサ装置１３０は通常の使用におけるネットワークトラフィックパターンを監視し、通常の使用に基づいて通常の使用モデルを構築することができる。後に、攻撃者が悪意のあるトラフィックを送信すると、少なくとも１つのプロセッサ装置１３０は悪意のあるトラフィックが通常の使用モデルと比較して異常であることを検出することができ、これは悪意のあるトラフィックが実際に立ち向かう必要がある攻撃であること知らせることができる。
【００１７】
ここで図２を参照すると、本原理の一実施形態による、プロトコルに依存しない異常な検出のためのシステム／方法２００の高レベルの概要を示すブロック／フロー図が例示的に示されている。例えば、システム／方法２００は、プロトコルに依存しないディープラーニングベースの異常な検出を使用することができる。システム／方法２００はＩＣＳ（例えば、ＯＴネットワーク）のコンテキスト内で異常な検出を実行するよう実装することができる。より具体的には、システム／方法２００がそれらのプロトコル構造を知らなくてもＩＣＳネットワークパケットの異常な検出を実行するように実装することができる。例えば、システム／方法２００は、図１の少なくとも１つのプロセッサ装置１３０によって実施することができる。
【００１８】
インストール段階中に進行中の攻撃がないと仮定すると、トレーニング段階は、トレーニングネットワークトラフィックを捕捉することによってトレーニングトラフィック２１０を生成することを含むことができる。前処理構成要素２２０はトレーニングトラフィック２１０を前処理し、これは、同じ送信元および宛先を有するトラフィックを分類することを含むことができる。次いで、トレーニング構成要素２３０は、前処理されたトラフィックに機械学習プロセスを適用することによって、機械学習モデルを生成することができる。閾値決定構成要素２４０は、イベントが異常であるかどうかを決定するための閾値を自動的に決定することができる。トレーニング段階は、ネットワークトラフィックパターンを要約する機械学習モデルであるモデル２５０を生成する。
【００１９】
実際の使用では、試験段階は、試験ネットワークトラフィックを捕捉することによって試験トラフィック２６０を生成することを含むことができる。テストネットワークトラフィックは、無害なトラフィックおよび／または悪意のあるトラフィックを含む可能性がある。次いで、検出構成要素２７０は、モデル２５０をテストトラフィック２６０と比較して、決定された閾値に基づいて、テストトラフィック２６０がモデル２５０と異なるかどうかを決定することができる。テストトラフィック２６０がモデル２５０と異なると決定されると、セキュリティ異常が報告される。さもなければ、セキュリティ異常は報告されない。検出結果２８０は、テストされたトラフィックが無害であるか悪意のあるものであるかを示す。
【００２０】
システム／方法２００に関するさらなる詳細を、図３を参照して以下に説明する。
【００２１】
図３を参照すると、プロトコルに依存しない異常の検出のためのアーキテクチャ３００を示すブロック／フロー図が提供されている。例えば、アーキテクチャ３００は、プロトコルに依存しないディープラーニングに基づく異常な検出を使用することができる。アーキテクチャ３００は、ＩＣＳ（例えば、ＯＴネットワーク）のコンテキスト内で異常な検出を実行するよう実装することができる。より具体的には、アーキテクチャ３００は、そのプロトコル構造を知らなくてもＩＣＳネットワークパケットの異常な検出を実行するよう実装することができる。例えば、アーキテクチャ３００は、図１の少なくとも１つのプロセッサ装置１３０によって実施することができる。
【００２２】
より具体的には、アーキテクチャ３００が学習段階３０２および検出段階３０４を含むことができる。高レベルの概要として、検出メカニズムは、水平モデル（または水平制約）および垂直モデル（または垂直制約）を含む少なくとも２つのタイプのモデルに基づくことができる。水平モデルは同じパケットの異なるバイトオフセット間の関係を参照し、異なるプロトコル分野と値の範囲にわたる依存性を捕捉することができる。垂直モデルは異なるネットワークパケットにわたる同じバイトオフセットの時間的関係を参照し、値のシーケンスや値の異常ジャンプのような、パケットの特定のバイトオフセットの時系列の時間的特性を捕捉する。以下にさらに詳細に説明するように、ディープラーニング技術は、水平および垂直モデルを生成するために使用することができる。
【００２３】
学習段階３０２の間に、ネットワークトラフィックパターンが分析され、学習される。ディープラーニング技術は、時間と共に異なる分野や複数のパケットにわたる制約を発見するために使用することができる。
【００２４】
例えば、学習構成要素３１０のパケット監視はネットワーク（例えば、ＩＣＳネットワーク）のネットワークインタフェースを監視し、学習のネットワークパケットを記録することができる。記録されたネットワークパケットは、ファイルまたはメモリの何れかに格納される。
【００２５】
前処理構成要素３１２は、ネットワークパケットをグループ化することによって、ネットワークパケットを処理することができる。ネットワークパケットは、送信元インターネットプロトコル（ＩＰ）アドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、および／またはプロトコル番号（例えば、５タプル）によってグループ化することができる。ネットワーク５タプルに基づく各グループは「セッション」と呼ぶことができ、学習と検出は各セッションで実行される。学習されたパケットからの可能なパターンは、前処理モデル３１４に格納することができる。
【００２６】
バイトフィルタリング構成要素３１６は、学習または検出に適さない各パケットのバイトのリストを分析することができる。例えば、不変量のバイトとシーケンス番号は明白なパターンを有することができ、これは明示的な学習なしに取り扱うことができる。バイトフィルタリング構成要素３１６の出力は、バイトフィルタリングモデル３１８に格納することができる。
【００２７】
例えば、バイトフィルタリング構成要素３１６は、入力として、水平分析に使用されるオフセットのリストを含む、通常状態のネットワークパケットのデータセット、セットＳ、および出力水平変量を受信することができる。より具体的には、バイトフィルタリング構成要素３１６は、様々な長さ（例えば、１、２、および４）の複数の時間ウィンドウを試して、異なる長さの値（例えば、短い整数、整数、長い整数）を捕捉することができる。Ｓのすべてのパケットに対するバイトオフセットｋに対して、オフセットｋ，Ｅkから始まる時間ウィンドウのエントロピーを計算することができる。Ｅk＝０の場合、それは定数値である。この制約は明確な制約であるため、記録して直接チェックすることができる。Ｅkの高い値はシリアル番号と同様に、非常に多様なパターンに対応する（例えば、各パケットは固有の値を有する）。したがって、ゼロ値エントロピーおよび高値エントロピーの両方は学習から除外することができる。バイトフィルタリング構成要素３１６（「アルゴリズム１：メッセージエントロピー分類：バイト（）の分類」）によって実施することができる方法の例を、図４の図４００を参照して示す。
【００２８】
図３に戻って参照すると、異常の検出のため、水平学習構成要素３２０は、パケットの異なるバイトにわたって制約を学習することができる。水平学習構成要素３２０の出力は、水平モデルを含むことができる。
【００２９】
例えば、水平学習構成要素３２０は、入力として、正常状態のネットワークパケットのデータセット、セットＳ、バイトレベル異常偽陽性閾値α、およびメッセージレベル異常偽陽性閾値β、ここで、α、∈［０，１）を受信することができる。入力に基づいて、水平学習構成要素３２０は、水平モデルＭ、バイトＢのための水平フィルタ、検出αのための内部バイトレベル水平異常閾値、および検出ηのための内部メッセージレベル異常閾値を含む出力を生成することができる。
【００３０】
より具体的にはセットＢは、バイトフィルタリング構成要素３１６の出力に基づいて生成することができ、ここで、ｎはＢのサイズである。次に、セットＳはトレーニングデータセットＳtrain、検証データセットＳval、およびテストデータセットＳtestに分割することができる。各バイトオフセットｋ＝１，２，...，ｎ−１に対して、ディープラーニングモデルは、入力およびラベルに基づいて訓練を受ける。より具体的には、入力がオフセット０からｋ−１までのフィルタリングされたバイトを含むことができ、ラベルはオフセットｋでフィルタリングされたバイトを含むことができる。一実施形態では、ディープラーニングモデルは、長期短期記憶（ＬＳＴＭ）のディープラーニングモデルを含む。水平学習（「アルゴリズム２：水平学習」）を実行するために水平学習構成要素３２０によって実施することができる方法の一例は、図５の図５００を参照して説明される。
【００３１】
αの検出のための内部バイトレベル閾値は閾値αおよびセットＳに基づいて生成される。より具体的には閾値σkを生成するために、水平学習構成要素３２０は、最小リストおよび最大リストを初期化することができる。次に、セットＳ内のメッセージｍについて、水平学習構成要素３２０は０からｋ−１までのバイトの条件付き確率分布（ＣＰＤ）を計算し、ＣＰＤを最大ＣＰＤで分割することによって、相対最大閾値Ｐmaxを計算し、ＣＰＤを最小ＣＰＤで分割することによって、相対最小閾値Ｐminを計算し、ＰmaxおよびＰminを、それぞれ、最大リストおよび最小リストに加えることができる。最小リストと最大リストは昇順でソートされる。そして、閾値αと設定Ｓに基づいて、最小値と最大値が設定される。例えば、σkの最小値は最小リスト［｜Ｓtest｜α］として、σk の最大値は最大リスト［｜Ｓtest｜α］として設定することができる。閾値σ（「アルゴリズム３：バイト閾値水平生成」）を生成するために水平学習構成要素３２０によって実施することができる方法の一例は、図６の図６００を参照して説明される。
【００３２】
検出ηの内部メッセージレベル閾値は閾値σおよびβに基づいて生成され、Ｓを設定することができる。より具体的には閾値ηを生成するために、水平学習構成要素３２０は違反リスト（「違反リスト」）を初期化することができる。次に、メッセージｍについて、各パケットの違反または異常の数が計算される。
【００３３】
違反の数が計算された後、違反の数を違反リストに加えることができる。違反リストは降順にソートすることができ、閾値ηは入力レート閾値βとメッセージセットＳ全体のサイズとによって計算されたメッセージ順序を用いて設定される。例えば、閾値ηは、違反リスト［｜Ｓ｜β］として設定することができる。閾値η（「アルゴリズム４：メッセージ閾値水平生成（）」）を生成するために水平学習構成要素３２０によって実施される方法の例は、図７の図７００を参照して説明される。
【００３４】
違反リストに加えられた違反の数は、メッセージｍのバイト違反をチェックすることによって計算することができる。例えば、各ｋ＝１，２，．．．，ｎ−１に対して、そのバイトが確率分布に基づく未知の値を有する場合、異常がカウントされる。最大および最小の予測値、ＰmaxおよびＰminは、確率分布に基づいて計算できる。ＰmaxおよびＰminは異常をカウントするかどうかを決定するために、検出σkの内部バイトレベル異常閾値の夫々のものと比較され得る。そして、異常の総数を返すことができる。違反（「アルゴリズム５：バイト違反チェック（）」）の数を計算するために水平学習構成要素３２０によって実施することができる方法の一例は、図８を参照して説明される。
【００３５】
ネットワークパケットは複数の異種構造を有することができるので、各バイトは異なる意味を表すことができる。例えば、第１のパケットの第１０のバイトは、例えば、パケットの長さ（「構造Ａ」）とすることができ、第２のパケットの第１０のバイトは、例えば、温度値（「構造Ｂ」）とすることができる。我々はプロトコルの知識を前提としていないので、我々はパケットのバイトが構造Ａを表すか構造Ｂを表すかを知ることはできない。
【００３６】
メッセージクラスタリング構成要素３２２は、水平学習構成要素３２０の出力に基づいて、パケットのクラスタリングを実行することができる。メッセージクラスタリング構成要素３２２の出力は、クラスタ化されたパケットを含むことができる。例えば、メッセージクラスタリング構成要素３２２はバイトオフセットｋで同様の推測された意味的な意味を持つメッセージ（パケット）をクラスタ化することができ、クラスタあたりの確率分布テンプレート、バイトオフセットｋで同様の確率分布を持つメッセージサブセットを出力することができる。
【００３７】
より具体的には、各メッセージｍについて、確率分布は水平モデルと、オフセット０からｋ−１までのメッセージバイトとを使用して計算することができる。確率分布のエントロピーがクラスタリング閾値よりも高い場合、これは、本明細書ではプロブリストと呼ばれるリストに加えることができる。プロブリストおよびクラスタリング標準偏差を含むパラメータを用いたクラスタリング方法（例えば、密度ベースのクラスタリング）は、ｃ個のクラスタを生成するために使用することができる。クラスタの数が高すぎる（ｃが大きすぎる）場合、すべてのクラスタは１つにマージすることができ、ｃは１に設定される。次に、クラスタあたりの確率分布テンプレートは、ｉ＝１，２，３，．．．，ｃごとに計算することができる。
【００３８】
メッセージクラスタリング構成要素３２２がメッセージクラスタリング（「アルゴリズム７：バイトによるクラスタメッセージ」）を実行するために実装される方法の一例は、図９の図９００を参照して説明される。
【００３９】
一旦パケットが一緒にクラスタ化されると、パケットが同様の構造を有することが期待される。垂直学習構成要素３２４は、クラスタリングに基づいてメッセージの時間的パターンを学習することができる。例えば、垂直学習構成要素３２４は、ｎ個のパケットの各１０番目のバイト値を時系列として分析することができる。垂直学習構成要素３２４の出力は、垂直モデルを含むことができる。
【００４０】
例えば、各バイトオフセットｋ＝１，２，．．．，ｎに対して、メッセージクラスタリングは、クラスタおよび確率分布テンプレートを生成するために使用することができる。クラスタのサイズが０である場合、水平モデルは厳しすぎ、プロセスは別の値ｋに続く。クラスタｊ＝１，．．．，ｃごとに、データセットＳjはデータセットＳj内の各メッセージのバイトフィルタを使用して生成される。次いで、データセットＳjは、トレーニングと検証セットに分割され得る。そして、データセット配置が実行され、垂直モデルがトレーニングされ、損失関数が使用される。クロスエントロピーは離散変数符号化と共に使用することができ、平均二乗誤差は、連続変数符号化と共に使用することができる。最良の段階および符号化スタイルは、精度に基づいて選択することができる。次に、バイトレベルおよびメッセージレベルの垂直異常検出閾値は、水平学習構成要素３２０を参照して上述したのと同様の方法で生成することができる。
【００４１】
垂直学習（「アルゴリズム８：垂直学習」）を実行するために垂直学習構成要素３２４によって実行することができる方法の一例は、図１０の図１０００を参照して説明される。
【００４２】
構成要素３２０〜３２４の出力は、それぞれ記憶構成要素３２６に格納することができる。
【００４３】
検出段階３０４の間に、新しいネットワークパケットが分析され、新しいネットワークパケットに基づいて既存の異常を検出する。
【００４４】
例えば、検出構成要素３３０のパケット監視はネットワーク（例えば、ＩＣＳネットワーク）のためのネットワークインタフェースを監視し、検出のためのネットワークパケットを記録することができる。記録されたネットワークパケットは学習構成要素３１０のパケット監視と同様に、ファイルまたはメモリの何れかに格納される。
【００４５】
前処理構成要素３１２と同様に、前処理構成要素３３２は、ネットワークパケットをグループ化することによって、ネットワークパケットを処理することができる。ネットワークパケットは、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、および／またはプロトコル番号（例えば、５タプル）によってグループ化することができる。ネットワーク５タプルに基づく各グループは「セッション」と呼ぶことができ、学習と検出は各セッションで実行される。
【００４６】
前処理構成要素３３２は、前処理モデル３１４をさらに受信することができる。何れかのトラフィックが新しいものであり、前処理モデル３１４において見つからない場合、前処理構成要素３３２は、警告を発動することができる。
【００４７】
バイトフィルタリング構成要素３３４は、検出に適さない新しいネットワークパケットのバイトのリストを分析することができる。より具体的には、バイトフィルタリング構成要素３３４は、新しいネットワークパケットのバイト値がバイトフィルタリングモデル３１８内に含まれるかどうかを決定することができる。新しい違反パターンが発見された場合、バイトフィルタリング構成要素３３４は、警告を発動することができる。バイトフィルタリング構成要素３３４は（例えば、図４の「アルゴリズム１：メッセージエントロピー分類：バイト分類（）」の方法を使用して）バイトフィルタリング構成要素３１６と同様の方法を実施することができる。
【００４８】
異常検出のために、水平検出構成要素３３６は、水平学習構成要素３２０によって生成される水平モデルに基づいて、新しいネットワークパケットに水平制約異常が存在するかどうかを検出することができる。
【００４９】
より具体的には、水平検出構成要素３３６が新しいネットワークパケットが入ってくるメッセージｍに基づいて異常なパケットであるかどうかを決定することができる。例えば、各バイトオフセットｋに対して、０からｋ−１までのバイトに対して条件付き確率分布が計算される。メッセージｍ、条件付き確率分布、およびバイトレベル異常閾値が与えられると、異常または違反の数が計算される（例えば、図８の「バイト違反チェック」の方法を使用して）。次に、違反の総数が閾値を超えると、新しいネットワークパケットは異常であると決定される。さもなければ、新しいネットワークパケットは正常であると決定される。
【００５０】
水平学習（「アルゴリズム６：水平検出（メッセージレベル）」）を実行するために水平検出構成要素３３６によって実施される方法の一例は、図１１の図１１００を参照して説明される。
【００５１】
メッセージクラスタリング構成要素３３８は、水平モデルの確率分布に基づいて、新しいネットワークパケットのクラスタを決定することができる。メッセージクラスタリング構成要素３３８は、クラスタ情報を出力することができる。メッセージクラスタリング構成要素３３８はメッセージクラスタリング構成要素３２２（例えば、図９の「バイトによるクラスタメッセージ」の方法を使用して）と同様に動作することができる。
【００５２】
垂直検出構成要素３４０は垂直の異常が存在するかどうかを決定するために、新しいネットワークパケットの各バイトの時間的パターンを分析することができる。垂直検出構成要素３４０によって実行される分析は、メッセージクラスタリング構成要素３３８によって出力されるクラスタ情報と、垂直学習構成要素３２４によって生成される垂直モデルとに基づくことができる。
【００５３】
例えば、各バイトオフセットｋについて、水平確率分布は、水平モデルを使用して計算される。水平確率分布のエントロピーが閾値未満である場合、偽を返すことができる。最も近いクラスタＩＤは、水平確率分布および確率分布テンプレートを使用して得ることができる。垂直確率分布は垂直モデルを使用して、メッセージの段階数について計算することができ、ここで、Ｗは時間ウィンドウのサイズを指す。違反の数を決定することができる。違反の数が閾値を超える場合、真を返すことができる。さもなければ、偽を返すことができる。
【００５４】
垂直検出（「アルゴリズム９：垂直検出」）を実行するために垂直検出構成要素３４０によって実施される方法の一例は、図１２の図１２００を参照して説明される。
【００５５】
図１３を参照すると、プロトコルに依存しない異常な検出の学習段階を実施するためのシステム／方法１３００を説明するブロック／フロー図が提供されている。学習段階の間、ネットワークトラフィックパターンは、ディープラーニング技術を使用して分析され、学習され、時間と共に異なる分野や複数のパケットにわたる制約を発見する。
【００５６】
例えば、ブロック１３１０で、学習のために１つ以上のネットワークパケットが記録される。１つ以上のネットワークパケットを記録することは、ネットワーク（例えば、ＩＣＳネットワーク）の１つ以上のネットワークインタフェースを監視することを含むことができる。１つ以上のネットワークパケットは、ファイルまたはメモリに格納される。ブロック１３１０に関するさらなる詳細は、図３の構成要素３１０を参照して上述される。
【００５７】
ロック１３２０で、１つ以上のネットワークパケットが前処理される。前処理は、前処理モデルを含む出力を生成することができる。１つ以上のネットワークパケットの前処理は、１つ以上のネットワークパケットのグループ化を含むことができる。１つ以上のネットワークパケットは、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、および／またはプロトコル番号（例えば、５タプル）によってグループ化することができる。ネットワーク５タプルに基づく各グループは「セッション」と呼ぶことができ、学習と検出は各セッションで実行される。学習パケットからの可能なパターンは、前処理モデルに格納される。ブロック１３２０に関するさらなる詳細は、図３の構成要素３１２および３１４を参照して上述される。
【００５８】
ブロック１３３０で、バイトフィルタリングは前処理に基づいて実行される。バイトフィルタリングを実行することは、学習または検出に適さない各パケットのバイトのリストを分析することを含むことができる。例えば、不変量のバイトとシーケンス番号は明白なパターンを有することができ、これは明示的な学習なしに取り扱うことができる。バイトフィルタリング構成要素の出力は、バイトフィルタリングモデルに格納される。ブロック１３３０に関するさらなる詳細は、図３の構成要素３１６および３１８、ならびに図４の図４００を参照して上述される。
【００５９】
ブロック１３４０において、バイトフィルタリングに基づいて水平学習が実行され、水平モデルを生成する。水平学習は、パケットの異なるバイトにわたる学習制約を含むことができる。水平学習は、正常状態のネットワークパケットのデータセットと閾値の第１のセットとを含む入力に基づいて実行される。例えば、閾値のセットは、例えば、バイトレベルの異常偽陽性閾値およびメッセージレベルの異常偽陽性閾値を含むことができる。
【００６０】
水平モデルは同じパケットの異なるバイトオフセット間の関係を参照し、異なるプロトコル分野と値の範囲にわたる依存性を捕捉することができる。水平学習の出力は、例えば、水平フィルタおよび閾値の第２のセットをさらに含むことができる。閾値の第２のセットは、例えば、検出のための内部バイトレベル水平異常閾値と、検出のための内部メッセージレベル異常閾値とを含むことができる。ブロック１３４０に関するさらなる詳細は、図３の構成要素３２０および図５〜８の図５００〜８００の図を夫々参照して上述される。
【００６１】
ネットワークパケットは複数の異種構造を有することができるので、各バイトは異なる意味を表すことができる。例えば、第１のパケットの第１０のバイトは、例えば、パケットの長さ（「構造Ａ」）とすることができ、第２のパケットの第１０のバイトは、例えば、温度値（「構造Ｂ」）とすることができる。我々はプロトコルの知識を前提としていないので、我々はパケットのバイトが構造Ａを表すか構造Ｂを表すかを知ることはできない。
【００６２】
ブロック１３５０で、水平学習に基づいてメッセージクラスタリングが実行され、クラスタ情報が生成される。メッセージクラスタリングは水平学習の出力に基づいてクラスタ化されたメッセージまたはパケットを生成し、対応するクラスタ情報を出力することができる。一旦パケットが一緒にクラスタ化されると、パケットが同様の構造を有することが期待される。ブロック１３５０に関するさらなる詳細は、図３の構成要素３２２および図９の図９００を参照して上述される。
【００６３】
ブロック１３６０において、クラスタ情報に基づいて垂直学習が実行され、垂直モデルを生成する。垂直学習は、メッセージの時間的パターンを学習することを含むことができる。例えば、垂直学習は、パケットの各々のバイト値を時系列として解析することができる。ブロック１３６０に関するさらなる詳細は、図３の構成要素３２４および図１０の図１０００を参照して上述される。
【００６４】
図１４を参照すると、プロトコルに依存しない異常検出の検出段階を実施するためのシステム／方法１４００を説明するブロック／フロー図が提供されている。検出段階では、新しいネットワークパケットが分析され、新しいネットワークパケットに基づいて既存の異常を検出する。
【００６５】
例えば、ブロック１４１０で、少なくとも１つの新しいネットワークパケットは、検出のために記録される。新しいネットワークパケットを記録することは、パケット監視を使用して、ネットワーク（例えば、ＩＣＳネットワーク）のネットワークインタフェースを監視することを含む。新しいネットワークパケットは、ファイルまたはメモリの何れかに格納される。ブロック１４１０に関するさらなる詳細は、図３の構成要素３３０を参照して上述される。
【００６６】
ブロック１４２０で、少なくとも１つの新しいネットワークパケットは前処理される。１つ以上のネットワークパケットの前処理は、少なくとも１つの新しいネットワークパケットのグループ化を含むことができる。少なくとも１つの新しいネットワークパケットは、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、および／またはプロトコル番号（例えば、５タプル）によってグループ化される。ネットワーク５タプルに基づく各グループは「セッション」と呼ぶことができ、学習と検出は各セッションで実行される。少なくとも１つの新しいネットワークパケットの前処理は、前処理モデルの受信を含むことができる。何れかのトラフィックが新しいものであり、前処理モデルに見つからない場合警告が発動される。ブロック１４２０に関するさらなる詳細は、図３の構成要素３３２を参照して上述される。
【００６７】
ブロック１４３０で、バイトフィルタリングは前処理に基づいて実行される。より具体的には、バイトフィルタリングが新しいネットワークパケットのバイト値がバイトフィルタリングモデル内に含まれるかどうかを決定することができる。新しい違反パターンが発見された場合、バイトフィルタリング構成要素３３４は、警告を発動することができる。ブロック１４３０に関するさらなる詳細は、図３の構成要素３３４および図４の図４００を参照して上述される。
【００６８】
ブロック１４４０において、バイトフィルタリングおよび水平モデルに基づいて水平検出が実行される。水平モデルは、水平学習によって生成される。水平検出は、少なくとも１つの新しいネットワークパケットに、水平制約異常が存在するかどうかを検出することによって実行される。ブロック１４４０に関するさらなる詳細は、図３の構成要素３３６および図１１の図１１００を参照して上述される。
【００６９】
ブロック１４５０では、クラスタ情報を生成するために、水平検出に基づいてメッセージクラスタリングが実行される。メッセージクラスタリングは水平モデルの確率分布に基づいて、少なくとも１つの新しいネットワークパケットのクラスタを決定することができ、対応するクラスタ情報を出力することができる。ブロック１４５０に関するさらなる詳細は、図３の構成要素３３８および図９の図９００を参照して上述される。
【００７０】
ブロック１４６０において、メッセージクラスタリングおよび垂直モデルに基づいて垂直検出が実行される。垂直モデルは垂直学習によって生成される。垂直検出は、少なくとも１つの新しいネットワークパケットの各バイトの時間的パターンを分析することによって実行され、垂直異常が存在するかどうかを決定する。ブロック１４６０に関するさらなる詳細は、図３の構成要素３４０および図１２の図１２００を参照して上述される。
【００７１】
次に図１５を参照すると、本発明の一実施形態による、サーバまたはネットワーク装置を表す例示的なコンピュータシステム１５００が示されている。コンピュータシステム１５００は、システムバス１５０２を介して他の構成要素に動作可能に結合された少なくとも１つのプロセッサ（ＣＰＵ）１５０５を含む。キャッシュ１５０６、読み出し専用メモリ（ＲＯＭ）１５０８、ランダムアクセスメモリ（ＲＡＭ）１５１０、入力／出力（Ｉ／Ｏ）アダプタ１５２０、サウンドアダプタ１５３０、ネットワークアダプタ１５９０、ユーザインタフェースアダプタ１５５０、およびディスプレイアダプタ１５６０は、システムバス１５０２に動作可能に結合される。
【００７２】
第１記憶装置１５２２および第２記憶装置１５２９は、Ｉ／Ｏアダプタ１５２０によってシステムバス１５０２に動作可能に結合される。記憶装置１５２２および１５２９はディスク記憶装置（例えば、磁気または光ディスク記憶装置）、ソリッドステート磁気装置などの何れかであってもよい。記憶装置１５２２および１５２９は、同じタイプの記憶装置であっても、異なるタイプの記憶装置であってもよい。
【００７３】
スピーカ１５３２は、サウンドアダプタ１５３０によって、システムバス１５０２に動作可能に結合されてもよい。送受信器１５９５は、ネットワークアダプタ１５９０によってシステムバス１５０２に動作可能に結合される。ディスプレイ装置１５６２は、ディスプレイアダプタ１５６０によってシステムバス１５０２に動作可能に結合される。
【００７４】
第１ユーザ入力装置１５５２、第２ユーザ入力装置１５５９、および第３ユーザ入力装置１５５６は、ユーザインタフェースアダプタ１５５０によってシステムバス１５０２に動作可能に結合される。ユーザ入力装置１５５２、１５５９、および１５５６は、センサ、キーボード、マウス、キーパッド、ジョイスティック、画像キャプチャ装置、動き検出装置、電力測定装置、マイク、前述の装置のうちの少なくとも２つの機能を組み込んだ装置などのうちの任意のものとすることができる。もちろん、本発明の精神を維持しながら、他のタイプの入力装置を使用することもできる。ユーザ入力装置１５５２、１５５９、および１５５６は、同じタイプのユーザ入力装置または異なるタイプのユーザ入力装置とすることができる。ユーザ入力装置１５５２、１５５９、および１５５６は、システム１５００との間で情報を入出力するために使用される。
【００７５】
異常検出（ＡＤ）構成要素１５７０は、システムバス１５０２に動作可能に結合される。ＡＤ構成要素１５７０は、上述の動作の１つまたは複数を実行するように構成される。ＡＤ構成要素１５７０は、スタンドアロンの特殊目的のハードウェア装置として実装されることができ、または、記憶装置に記憶されたソフトウェアとして実装されることができる。ＡＤ構成要素１５７０がソフトウェア実装される実施形態において、コンピュータシステム１５００の別の構成要素として示されるが、ＳＲ構成要素１５７０は、例えば、第１記憶装置１５２２および／または第２記憶装置１５２９に格納される。あるいは、ＡＤ構成要素１５７０は別の記憶装置（図示せず）に格納される。
【００７６】
もちろん、コンピュータシステム１５００は当業者によって容易に企図されるように、他の要素（図示せず）を含むこともでき、特定の要素を省略することもできる。例えば、当業者によって容易に理解されるように、他の様々な入力装置および／または出力装置は、その特定の実装に応じて、コンピュータシステム１５００に含まれる。例えば、様々なタイプの無線および／または有線の入力および／または出力装置を使用することができる。さらに、様々な構成の追加のプロセッサ、コントローラ、メモリなども、当業者には容易に理解されるように利用することができる。コンピュータシステム１５００のこれらおよび他の変形は本明細書で提供される本発明の教示を与えられれば、当業者によって容易に企図される。
【００７７】
以上の説明は、あらゆる点において、限定するものではなく例示的および典型的なものとして理解すべきであり、本明細書において開示されている本発明の範囲は、詳細な説明から決定されてはならず、そうではなく、特許法で許容されるすべての幅に応じて解釈される特許請求の範囲から決定されなければならない。本明細書において示され、かつ、説明された実施形態は、本発明の原理についての単なる例示的なものにすぎないこと、また、当業者は、本発明の範囲および精神から逸脱することなく、様々な修正を加えることができることを理解されたい。当業者は、本発明の範囲および精神から逸脱することなく、様々な他の特徴組合せを実現することが可能である。以上、本発明の態様について、特許法で要求される詳細および特異性と共に説明したが、特許請求され、特許証で保護されることが望ましいものは、添付の特許請求の範囲に説明されている。
【図１】
2021527873.tif 000003
【図２】
2021527873.tif 000004
【図３】
2021527873.tif 000005
【図４】
2021527873.tif 000006
【図５】
2021527873.tif 000007
【図６】
2021527873.tif 000008
【図７】
2021527873.tif 000009
【図８】
2021527873.tif 000010
【図９】
2021527873.tif 000011
【図１０】
2021527873.tif 000012
【図１１】
2021527873.tif 000013
【図１２】
2021527873.tif 000014
【図１３】
2021527873.tif 000015
【図１４】
2021527873.tif 000016
【図１５】
2021527873.tif 000017
【国際調査報告】
2021527873.tif 000018
2021527873.tif 000019
2021527873.tif 000020