【課題を解決するための手段】
【0010】
本発明の態様に従って、データ通信ネットワークのデータトラフィックにおける侵入を検出するための侵入検出方法が提供され、その方法は、
−データトラフィックをパースして、データトラフィックのプロトコルメッセージの少なくとも1つのプロトコルフィールドを抽出することと、
−抽出されたプロトコルフィールドを、そのプロトコルフィールドのそれぞれのモデルと関連付けることであって、そのモデルは、モデルのセットから選択されることと、
−抽出されたプロトコルフィールドのコンテンツが、モデルで定義された通りの安全領域内にあるかどうかを評価することと、
−抽出されたプロトコルフィールドのコンテンツが、安全領域外であることが確定された場合に侵入検出信号を生成することを備える。
【0011】
データトラフィックのパーシングは、データネットワーク上でどのデータ通信が行われているかに従って、プロトコルの個々のフィールド(「プロトコルフィールド」と呼ぶ)の識別を可能にする。その後、フィールド(「プロトコルフィールド」)とモデルとの間の関連付けが(上手くいけば)行われる。そこへ、モデルのセットが提供される。以下でより詳細に説明するように、抽出されたプロトコルフィールドに適したモデルが選択される。プロトコルフィールドのコンテンツが、通常の、安全で許容できる領域内であるか否かを確定するために、プロトコルフィールドは、その後、モデルを使用して評価される。後者の場合、適したアクションを実行できる。プロトコルメッセージをパースすることによって、データトラフィックの個々のプロトコルフィールドを識別でき、そして特定のプロトコルフィールドの評価に適したモデルを選択できる。従って、例えば、各プロトコルフィールドが、その固有のプロトコルフィールドに適合したそれぞれのモデルを適用し、例えば、プロトコルフィールドの型および/またはコンテンツに適合したモデルを適用して、種々のモデルを適用して種々のプロトコルフィールドを評価できる、十分な評価を行うことができる。本発明に従った侵入検出方法は、コンピュータ実装の侵入検出方法にすることができる。パーサ(即ち、パーシング)は、事前定義されたプロトコル仕様を利用できる。また、例えば、プロトコルが未知である場合、ネットワークのデータトラフィックをモニタし、そこからプロトコル仕様を導くことによってそのプロトコルを学習できる。
【0012】
本明細書の文脈において、プロトコルという用語は、データネットワーク経由で送信されるメッセージの一部またはすべてのコンテンツを定義するルールのセットであると理解する。ネットワークプロトコルは、PDU(プロトコルデータユニット)としても知られる、プロトコルメッセージの定義を備えることができる。プロトコルメッセージ(PDU)はさらに、1または複数のフィールドを備えることができる。さまざまな型のフィールドが存在し得る。フィールドは、別のPDU、または「原子」データエンティティ(例えば、数字、文字列またはバイナリが不透明なオブジェクト)のいずれかを備えることができる。以下でより詳細に説明するように、ネットワークプロトコルを木として体系化することができ、節がPDUに、木の葉が原子データエンティティ(フィールド)になる。各フィールド(または各フィールドに関係するフィールド)に対し、別個のモデルを提供できる。例として、プロトコルメッセージが、ある人の個人データ(例えば、名前、住所および個人用の設定)を備えていると仮定すると、個人データを送信するプロトコルメッセージは、「名前」、「住所」、および「個人用の設定」のフィールドを備えることが可能である。「名前」フィールドはさらに、例えば、「姓」、「名」、「ログイン名」などのフィールドを備えることが可能である。「住所」フィールドは、例えば、「自宅住所」および「勤務先住所」のフィールドを備えることが可能である。「自宅住所」フィールドは、例えば、「自宅住所の番地」、「自宅住所の電話番号」、「自宅住所の郵便番号」、「自宅住所の都市名」を備えることができ、一方、「勤務先住所」は、例えば、「勤務先住所の番地」、「勤務先住所の電話番号」、「勤務先住所の郵便番号」、「勤務先住所の都市名」などのフィールドを備えることができる。フィールドごとに別個のモデルを構築できる。例えば、フィールドの一つ一つに、それぞれ別個のモデルを提供することが可能である。実施形態において、フィールドのサブセットに同じモデルを適用でき、例えば、「勤務先住所の都市名」および「自宅住所の都市名」のフィールドは、同じモデルを適用できる。
【0013】
データトラフィックという用語は、ネットワーク経由で通信されるデータストリーム、データパケットなどの、任意のデータを備えるものと理解する。データネットワークという用語は、(例えば、デジタル)データの送信を可能にする任意のデータ通信体系を備えるものと理解する。ネットワークは、インターネットなどの、公衆網を備えるまたはそれに接続されてもよいし、および/または承認されたユーザまたは承認された機器のみにアクセスが許可される私的ネットワークまたは仮想私的ネットワークを備えてもよい。有線接続、ガラスファイバー接続、無線接続および/またはその他の接続を経由して送信を行うことができる。モデルという用語は、プロトコルフィールドを評価するために、そのプロトコルフィールドに適用するルールまたはルールのセットを備えるものと理解する。モデルは、通常の、本物または侵入されていないプロトコルメッセージを記述できる。学習段階で多くのプロトコルメッセージを使用すればするほど、モデルは、通常の、本物または侵入されていないプロトコルメッセージを多く記述できる。
【0014】
侵入という用語は、データを受信するコンピュータシステムにとって恐らく有害であり、データネットワークに接続されたコンピュータシステム上で稼動するアプリケーションにとって恐らく有害であり、またはデータネットワークに接続されたデバイスの動作、インストール、装置などにとって恐らく有害である、望ましくない任意のデータを備えるものと理解する。
【0015】
実施形態において、モデルのセットは、各プロトコルフィールドのプロトコルフィールドのセットに対して、それぞれのモデルを備える。従って、各プロトコルフィールドに対し、そのプロトコルフィールドに固有に適合したモデルを適用できるので、より正確な結果を得ることができる。
【0016】
実施形態において、モデルのセットは、1つのプロトコルフィールドに対して2つのモデルを備え、その1つのプロトコルフィールドに対する2つのモデルのうちの固有の1つは、場合によってはモデルの精度がさらに上がるように、別のフィールドの値に基づいて選択される。
【0017】
同様に、実施形態においてプロトコルフィールドに対する時間列の解析を実行でき、そこでモデルのセットは、1つのプロトコルフィールドに対して少なくとも2つのモデルを備え、2つのモデルのうちの第1のモデルは、データトラフィックが観察される第1の時間間隔と関連付けられ、そしてモデルのうちの第2のモデルは、データトラフィックが観察される第2の時間間隔と関連付けられ、その第2の時間間隔を、例えば、第1の時間間隔と重複しない時間間隔とする。
【0018】
実施形態において、フィールドのモデルは、学習段階で決定され、その学習段階は、
−データトラフィックをパースして、そのデータトラフィックにおいて適用されるプロトコルの少なくとも1つのプロトコルフィールドを抽出することと、
−抽出されたプロトコルフィールドを、そのプロトコルフィールドのモデルと関連付けることであって、そのモデルは、モデルのセットから選択されることと、
−抽出されたプロトコルフィールドのコンテンツを使用して、抽出されたプロトコルフィールドのモデルを更新することを備える。
【0019】
従って、学習段階でデータトラフィックを観察でき、そして抽出されたプロトコルフィールドのコンテンツを適用して、そのプロトコルフィールドが関連付けられた対応するモデルを更新できる。抽出されたプロトコルフィールドとモデルのうちの1つとの間で関連付けが行われない場合、その抽出されたプロトコルフィールドに対する新しいモデルが作成されて、モデルのセットに付加される。
【0020】
従って、プロトコルメッセージが構築される学習段階を2つの段階に区別できる。このような学習段階におけるプロトコルメッセージは、通信プロトコルに基づいて構築されてもよいし、またはデータ通信ネットワークのデータトラフィックから読み出されてもよい。
【0021】
プロトコルメッセージをそれらの構造体およびプロトコルフィールドの値で記述できるので、そのモデルは、学習段階のプロトコルフィールドおよびその値に関連させることができる。学習段階の種々のプロトコルフィールドは、種々のデータ型を有し得る。即ち、プロトコルフィールドの値は、数(整数、浮動少数点数など)、文字列、ブール値または2進値であってよい。これを、通信プロトコルによって定義できる。そのモデルを、少なくとも1つのプロトコルフィールドのデータ型に従って構築できる。
【0022】
決定されたプロトコルフィールドおよび/または上述のプロトコルフィールドの決定された値は、モデルと比較され、そしてその比較に基づいて分類される。プロトコルメッセージは、異常として、即ち、モデルによる比較に基づいて定義された安全領域外であると(従って、恐らく危険であると)分類されることもある。
【0023】
学習段階において、モデルに学習させるために適用されるプロトコルメッセージをネットワークのデータトラフィックから取得できる。代替としてまたはそれに加えて、シミュレーションデータを適用できる。学習段階において、侵入の恐れのあるプロトコルメッセージを統計的方法で識別できる。即ち、モデル(複数)に学習させるプロトコルメッセージを使用する前に、使用頻度の低いプロトコルメッセージまたは普通でないコンテンツを有するプロトコルメッセージを除去できる。代替としてまたはそれに加えて、演算子は、ある種のプロトコルメッセージを侵入と見なし、そして学習の前にそのようなプロトコルメッセージが除去されるか、またはそれに従ってモデルが修正されるいずれかである。
【0024】
上述の学習段階以外でモデル(複数)に学習させる(即ち、訓練する)代替手段を適用できる。例えば、プロトコルおよびアプリケーションを検査することによってモデルを導いて、そこから期待されるプロトコルメッセージ、そのフィールドおよび/またはフィールドの値を作成し、そしてそこからモデル、またはモデルのセットを構築できる。また、このような検査によるモデル(複数)の構築とモデル(複数)の学習との組み合わせを適用できる。例えば、最初に、学習段階でモデル(複数)を学習し、その後、プロトコルメッセージ、そのフィールドおよび/またはフィールドの値の周知の振る舞いおよび結果として生じる発生および/またはコンテンツの情報に基づいて、学習したモデル(複数)を適応させる。
【0025】
実施形態において、侵入検出信号は、パーシングが、フィールドがプロトコルに従っていると確定することができないので、プロトコルに従わない(例えば、正しく形成されていないプロトコルメッセージの)フィールドが検出された場合にもアクションを実行することができるようにさらに生成される。
【0026】
実施形態において、侵入検出信号は、抽出されたフィールドをモデルのセットのどのモデルとも関連付けることができない場合、適したモデルが提供されていないのであれば、抽出されたフィールドがプロトコルに従う可能性のある場合にもアクションを実行することができるようにさらに生成される。可能性のあるプロトコルフィールドのサブセットのみを、例えば、制御アプリケーションにおいて使用し、例えば、プロトコルに従うが、通常は適用されないプロトコルフィールドが読み出された時に警告を発するようにさせることがよくある。
【0027】
方法を種々のプロトコル層で適用できる。例えば、プロトコルは、アプリケーション層プロトコル、セッション層プロトコル、トランスポート層プロトコルさらに下位レベルのネットワークプロトコルスタックのうちの少なくとも1つであってよい。データ通信ネットワークのアプリケーション層を、国際標準化機構で決定された開放型システム間相互接続モデル(OSIモデル)で定義できる。アプリケーション層において、コンピュータまたはサーバ上で稼動するソフトウェアは、プロトコルメッセージを送信することによって互いに通信できる。プロトコルメッセージは、SCADAあるいは産業用制御ネットワークのプロトコルメッセージ、ウィンドウズ(登録商標)系オフィスオートメーションネットワークのプロトコルメッセージ、HTTPプロトコルメッセージなどであってよい。
【0028】
ソフトウェア間の通信は、プロトコルメッセージ(の一部)の構造体および可能性のある値が定義された、ある種の通信プロトコルに従うことができる。プロトコルメッセージの構造体を、プロトコルメッセージのプロトコルフィールドによってさらに記述できる。ソフトウェアは、通信プロトコルに従っていないプロトコルメッセージを処理することができない場合もある。
【0029】
実施形態において、侵入検出信号の生成に応答して、方法は、
−プロトコルフィールドまたはプロトコルフィールドを包含するデータパケットを除去することと、
−侵入警告メッセージを発するおよび出力することのうちの少なくとも1つをさらに備える。例えば、プロトコルフィールドまたはプロトコルフィールドを包含するデータパケットなどを孤立させるような、その他の侵入検出アクションを適用できる。
【0030】
実施形態において、プロトコルフィールドのモデルは、
−許容できるプロトコルフィールド値のセットと、
−許容できるプロトコルフィールド値の領域の定義とのうちの少なくとも1つを備える。
【0031】
プロトコルフィールドが数値を備える場合、単純なモデルを提供することによって、データ処理の負荷を下げてプロトコルフィールドを検査することを可能にする。
【0032】
実施形態において、プロトコルフィールドのモデルは、
−許容できるアルファベット(letters)、数字(digits)、シンボル、およびスクリプトの定義を備える。プロトコルフィールドが文字または文字列を備える場合、単純なモデルを提供することによって、データ処理の負荷を下げてプロトコルフィールドを検査することを可能にする。
【0033】
実施形態において、プロトコルフィールドのモデルは、周知の攻撃に関する情報を考慮に入れることができるように、事前に定義された侵入署名のセットを備える。上述の(例えば、許容できるプロトコルフィールド値のセット、許容できるプロトコルフィールド値の領域の定義、許容できるアルファベット(letters)、数字(digits)、シンボル、およびスクリプトの定義を備える)ようなモデルと事前に定義された侵入署名のセットとの組み合わせは、固有のフィールドごとに、そのフィールドの通常のコンテンツのモデルとそのフィールドに対する1または複数の固有の侵入署名とを組み合わせて適用できるので、非常に効果的である。
【0034】
実施形態において、プロトコルは、プリミティブなプロトコルフィールドと複合的プロトコルフィールドとを備え、複合的プロトコルフィールドはさらに、少なくとも1つのプリミティブなプロトコルフィールドを備え、そこでそれぞれのモデルは、各プリミティブなプロトコルフィールドのモデルのセットで提供される。従って、複合的(即ち、プロトコルフィールドが自身で「番地名」、「電話番号」、「郵便番号」、および「都市名」を備える「住所」などの、プロトコルフィールドを備える)であるプロトコルフィールドが、自身の基本的(プリミティブな)プロトコルフィールドに分割できることによって、プリミティブなプロトコルフィールドのそれぞれに適したモデルを適用することが可能となるような、効率の良い侵入検出を提供できる。
【0035】
学習段階の少なくとも1つのプロトコルフィールドのモデルおよび/または学習段階の少なくとも1つのプロトコルフィールドの値を、学習段階の少なくとも1つのプロトコルフィールドのデータ型に従って構築できるので、そのモデルは、通常の、本物または侵入されていないプロトコルメッセージを記述することが、プロトコルフィールドのデータ型を考慮に入れていないモデルよりも正確である。
【0036】
数字データ型でプロトコルフィールドを記述するために最適化されたモデルは、文字列または2進データ型でプロトコルフィールドを記述するよりも正確でない(または適さない)場合もあり得る。同様に、文字列データ型でプロトコルフィールドを記述するのに最適なモデルは、数字または2進データ型でプロトコルフィールドを記述するよりも正確でない場合もあり得る。従って、モデルを構築する場合、モデルの精度は、プロトコルフィールドのデータ型を考慮に入れることによって改善される。
【0037】
実施形態において、複数のモデル型が提供される。抽出されたプロトコルフィールドのモデル型は、抽出されたプロトコルフィールドの特性に基づいて、学習段階の複数のモデル型から選択され、そして抽出されたプロトコルフィールドのモデルは、選択されたモデル型に基づいて構築される。
【0038】
固有のプロトコルフィールドのモデルを取得するために、いくつかのステップを実行できる。前述したように、複数の異なるモデル型を適用できる。最初に、使用可能なモデル型のセットからのある種のモデル型が、固有のプロトコルフィールド用に選択される。ひとたびある種のプロトコルフィールドに対するモデル型が決定されると、そのプロトコルフィールドに対するモデルが構築される。本明細書の他の部分で説明したように、そのモデルを、学習段階のデータトラフィックの解析を用いた例として構築できる。プロトコルフィールドの特性は、そのプロトコルフィールド自身のデータ、プロトコルの文脈におけるプロトコルフィールドの意味などに適した任意の特性であってよい。一部の例を以下に説明する。異なるモデル型を採用することによって、異なるフィールド値の型に固有であるモデリング技法を適用することと、プロトコルのプロトコルフィールドまたはプロトコルに適用される文脈の意味、役割および重要度によって多少制限のあるやり方で、値の安全領域に適応することの両方が可能である。一般に、異なるモデル型は、特定のプロトコルフィールド値が侵入されたか否かを確定するために、異なる型の基準を適用できる。例えば、異なる型のモデルは、値の領域、値の数値分布、値のセット、演算子のセット、テキスト値のセット、状態記述のセット、テキスト文字のセットまたは領域、テキストエンコーディングのセット/領域などのいずれかを適用できる。モデル型という用語は、従って、ある値が安全領域内であるかどうかを決定するために、ある型の値およびその基準に対する安全領域を定義する経験則を一緒にした、ある値型で許可された演算のセットとして理解できる。
【0039】
モデル型の選択は、常時、即ち、侵入のモニタリングおよび検出中だけでなく、学習段階中にも実行されることができる。学習段階中、モデル型は、特定のプロトコルフィールドのモデルを構築するプロセスの一部として選択できる。検出中、特定のプロトコルフィールドのモデルが一貫した結果を提供しないように見える場合、異なるモデル型を選択できる。
【0040】
プロトコルフィールド値(複数)のデータ型、および/またはパースされたプロトコルフィールド(複数)のセマンティックを使用して、モデル型の選択を実行できる。実施形態において、プロトコルフィールドの特性は、プロトコルフィールドのデータ型を備え、その方法は、
−抽出されたプロトコルフィールドのデータ型を決定することと、
−決定されたデータ型を使用してモデル型を選択することを備える。
【0041】
プロトコルフィールド値のデータ型(「数字」、「文字列」、「アレイ」、「セット」など)を、例えば、プロトコル仕様から抽出できる。あるいは、プロトコルフィールド値のデータ型を、例えば、ネットワークトラフィックを観察することによって推論できる。一実施形態において、フィールド値は、正規表現によって推論される。例えば、正規表現^[0−9]+$を使用して、数値整数型フィールド値を特定できる。プロトコルフィールド値のデータ型にマッチする適切なモデル型を選択することによって、より信頼性のある検出結果をもたらすことができるモデルを取得できる。
【0042】
モデル型の選択は、さらにまたはその代わりに、プロトコルフィールド値のデータ型に基づいて、パースされたプロトコルフィールドのセマンティックに基づいて行うことができる。従って、実施形態において、プロトコルフィールドの特性は、プロトコルフィールドのセマンティックを備えることができ、その方法は、
−抽出されたプロトコルフィールドのセマンティックを決定することと、
−決定されたセマンティックを使用してモデル型を選択することを備える。
【0043】
パースされたプロトコルフィールドにセマンティックを割り当てることができる。セマンティックの割り当ては、学習段階中に手動によって、観察したネットワークデータから推論することによって、プロトコル仕様から情報を抽出することによってなど、種々のやり方で実行できる。例えば、複数のモデル型がある種のプロトコルフィールドの値型に使用可能である場合、セマンティックは、最も適切なモデル型を選択するために適用されることができる。例えば、数値型のプロトコルフィールド値に対し、そのようなプロトコルフィールド値の領域を包含するモデル型、プロトコルフィールド値のセットを包含するモデル型などを活用できる。セマンティックを考慮に入れ、好適には、セマンティックならびにプロトコルフィールドの値型の両方を考慮に入れることによって、そのような特定のプロトコルフィールドに最も適した適切なモデル型を割り当てることが可能となる。
【0044】
セマンティックの使用の例は、数値領域がどのように「厳密か」をフィールドの重要度に基づいて決定するためのものであってよい。言い換えれば、プロトコルフィールドのセマンティックが、このフィールドはセキュリティ上の理由で重要であると提案すれば、より緩やかな領域(例えば、学習段階中に観察された最大値の2倍および最小値の半分)が適用されるであろう、反対の場合に比べて、より厳密な数値領域を適用できる。
【0045】
プロトコルフィールドの値型および/またはプロトコルのセマンティックに従ったモデル型をプロトコルフィールドに割り当てることによって、プロトコルフィールドのデータのコンテンツを考慮に入れるモデル型が割り当てられ、従って、プロトコルフィールドのコンテンツに従ってモデルを適合させることが可能になる。例えば、フィールドの型が数値整数であり、そしてそのセマンティックが、このフィールドが別のフィールド長を包含するということであれば、数値分布型のモデルを選択できる。一方、フィールドの型が数値整数であり、そしてそのフィールドのセマンティックがメッセージ型であれば、数値設定型のモデルを選択できる。第3の例として、フィールドの型が数値整数であり、そしてそのフィールドのセマンティックがモーターの速度であれば、厳密な数値領域型のモデルを適用できる。
【0046】
実施形態において、モデルのセットは、演算子のプロトコルフィールドのモデルと引数のプロトコルフィールドのモデルとを備え、演算子のプロトコルフィールドおよび引数のプロトコルフィールドに対する関連付けおよび評価が実行される。プロトコルは、(命令、呼び出しなどの)演算子を包含するプロトコルフィールドと、演算子が適用する被演算子(即ち、引数)を包含するプロトコルフィールドとを備えることができる。本発明の実施形態に従って、それぞれのモデルは、引数を備えるプロトコルフィールドだけでなく演算子を備えるプロトコルフィールドとも関連付けが可能であることに留意されたい。従って、侵入された引数の値を認識できるだけでなく、侵入の可能性のある演算子も認識できる。また、演算子が最も適切なモデル型の割り当てを許可することを考慮に入れ、演算子は、通常、事前定義されたあるデータ型を包含する1または複数の引数の後に続くことから、従って、侵入検出の精度を改善できる。
【0047】
さらに、プロトコルメッセージを、送信ホストによって要求された時に受信ホスト(複数)で実行される演算の仕様とすることができる。それにより、プロトコルメッセージは、演算子フィールド(即ち、どのような演算が要求されるかについての仕様)、引数フィールド(即ち、どのような方法で演算を実行すべきかについての仕様)、およびマーシャリングフィールド(即ち、要求される演算と直接関連していないフィールドであるが、メッセージを正しく受信して変換する、またはより一般的には、ネットワーク通信を処理するためにホストが必要とするパラメータを包含する)を備えることができる。マーシャリングは、オブジェクトのメモリ表現を、記憶または送信に適したデータフォーマットに変換するプロセスとして理解でき、典型的には、データを、コンピュータプログラムの異なる部分の間で移動させる、またはあるプログラムから別のプログラムに移動させなければならない場合に使用される。
【0048】
例えば、HTTPリクエストは、演算子を指定するメソッドフィールド(例えば、GET、POST、PUTなど)、メソッドの引数(例えば、/index.php?id=3)を包含するURLフィールド、および演算自体と関連していないが、ホストが通信するために使用される情報(例えば、ヘッダContet−length:100は、リクエストメッセージ本体が100バイト長であると指定する)を包含するいくつかのヘッダフィールド(例えば、Contet−length:100)を包含する。
【0049】
別の例として、Modbus/TCPリクエストメッセージは、受信するPLC/RTUデバイス上でどのような演算が実行されるかを特定する関数コードフィールド、望ましい演算の引数を指定するデータレジスタの変数、演算と直接関連していないいくつかの他のフィールド(例えば、レジスタカウントフィールド、データ長フィールドなど)を包含し、それらは、受信するホストが、どのような方法でメッセージをパースするかを(例えば、いくつのレジスタが送信されるかを)理解するために必要とされる。
【0050】
攻撃または侵入の試みは、悪意のあるデータをこれらの異なるフィールドのそれぞれに注入することによって実行され得る。同様に、異なるフィールドの値が通常とは異なっている理由により、このような攻撃または侵入の試みを検出できる。演算子およびマーシャリングフィールドの検査は、攻撃または侵入の試みを検出する精度を上げることができる。それによって、実施形態において、モデルのセットは、マーシャリングプロトコルフィールドのモデルをさらに備え、マーシャリングプロトコルフィールドに対する関連付けおよび評価がさらに実行される。
【0051】
例えば、バッファオーバーフロー攻撃は、文字列フィールドに、受信ホストによって割り当てられたバッファよりも多い文字を注入することによって実行され得る。文字列フィールドが普通でない文字値を包含する理由により、このような攻撃を検出できる。一方、完全に有効なテキスト文字のみを悪意のあるペイロードとして使用することによって成功する攻撃が、実行され得る。同じ攻撃は、その後、別のフィールドが、文字列長が通常よりも長いと指定する理由により、検出され得る。これは、正当な文字列長の最大許可値が、受信するホストによって割り当てられるバッファのサイズになるので、必然的に真である。
【0052】
さらに、検出精度をさらに上げる、または不適切な警告が生成される回数をさらに減らすために、異なる固有のモデル型を演算子フィールド、引数フィールドおよびマーシャリングフィールドに使用できる。異なる演算子フィールドに対し、(同じまたは異なるモデル型の)異なるモデルを使用できる。異なる引数フィールドに対し、(同じまたは異なるモデル型の)異なるモデルを使用できる。異なるマーシャリングフィールドに対し、(同じまたは異なるモデル型の)異なるモデルを使用できる。モデル型は、例えば、データ型および上述のようなセマンティックに基づいて選択されてもよい。
【0053】
本発明に従った侵入検出システムおよび方法は、テキストデータトラフィック(即ち、テキストプロトコル)またはバイナリデータトラフィック(即ち、バイナリプロトコル)などの、任意の型のデータトラフィックに適用されてよいことに留意されたい。一般に、テキストプロトコルの仕様は、そのほとんどのフィールド値の型記述を持たない。例えば、HTTPプロトコルの仕様は、テキスト文字列としてパースされなければならないヘッダ値またはパラメータ値と型を関連付けない。このような場合、トラフィックを検査することによってフィールドの型を推論する必要がある。一方、この振る舞いは、バイナリプロトコルには存在せず、その仕様は、適切なパーシングを可能にするために、すべてのプロトコルフィールドの型を含む必要がある。このため、バイナリプロトコルでは、フィールドの値型を推論する不確実性がないので、本技術をバイナリプロトコルに適用することは、テキストプロトコルに適用するよりもずっと正確である。特に、パースされるプロトコルフィールドのデータ型およびセマンティックを考慮に入れる場合、バイナリデータのストリームは、データ型および/またはセマンティックに基づいて各プロトコルフィールドの適したモデル型をパースして選択するという意味において、バイナリデータのコンテンツを考慮することが可能になるという、意味が与えられる。バイナリプロトコルにおいて、プロトコルフィールドのデータ型という用語は、プロトコルフィールドの(バイナリ)データ、即ち、例えば、数字、文字列などの、別のデータ型を表すバイナリデータで表されるデータとして理解されたい。
【0054】
一般に、プロトコルメッセージは、プリミティブなプロトコルフィールドと複合的プロトコルフィールドとを備えることができる。複合的プロトコルフィールドは、2以上のサブプロトコルフィールドを備え、サブプロトコルフィールドのそれぞれをプリミティブなプロトコルフィールドまたは複合的プロトコルフィールドにできる。複合的プロトコルフィールドのモデルは、学習段階で観察されるプロトコルフィールドのインスタンスのカウンタを備えることができる。プロトコルフィールドが所定の回数(閾値)よりも少なく観察された場合、検出段階中に複合的プロトコルフィールドを観察して、侵入検出信号を生成させることができる。複合的プロトコルフィールドのセマンティックに従って、セキュリティに関する重要度を変えることができる。従って、例えば、セキュリティに関するフィールドの重要度に従ってセマンティックを使用して、異なるモデル型またはモデルの異なる感度を指定できる。例えば、セキュリティに関係のない複合的フィールドの場合、観察されたインスタンスの閾値を、生成された不適切な侵入検出信号の量を制限するように変更でき、従って、ユーザビリティが改善する。さらに、複合的フィールドのセマンティックをそのサブフィールドに伝搬できることによって、モデル型およびモデル設定のより正確な選択が可能となる。例えば、セキュリティと非常に関係する複合的フィールドに包含された数値型の基本フィールドを、数値領域型のモデルよりも厳密に安全領域の値を定義できる、数値設定型のモデルに関連付けることができ、従って、侵入検出精度が改善する。
【0055】
本発明の別の態様に従って、データ通信ネットワークのデータトラフィックにおける侵入を検出するための侵入検出システムが提供され、
−データトラフィックをパースして、データトラフィックのプロトコルメッセージの少なくとも1つのプロトコルフィールドを抽出するパーサと、
−抽出されたプロトコルフィールドを、そのプロトコルフィールドのそれぞれのモデルと関連付けるエンジンであって、そのモデルは、モデルのセットから選択されることと、
−抽出されたプロトコルフィールドのコンテンツが、モデルで定義された通りの安全領域内にあるかどうかを評価することモデルハンドラと、
−抽出されたプロトコルフィールドのコンテンツが、安全領域外であることが確定された場合に侵入検出信号を生成するアクチュエータとを備える。
【0056】
本発明に従ったシステムを用いて、本発明に従った方法と同じまたは同様の効果を実現できる。また、本発明に従った方法を参照して説明されるのと同じまたは同様の実施形態を提供して、同じまたは同様の効果を実現できる。パーサ、エンジン、モデルハンドラおよびアクチュエータを、データ処理デバイスによって実行されるのに適したソフトウェア命令によって実装できる。それらは、同じデータ処理デバイスによって実行される同じソフトウェアプログラムに実装されてもよいし、または2以上の異なるデータ処理デバイスにおいて実行されてもよい。例えば、パーサは、データトラフィックが通過するロケーションにおいてローカルに実行されてよいし、一方、エンジン、モデルハンドラおよびアクチュエータは、例えば、安全なロケーションにおいてリモートに置かれてよい。また、異なる場所からのデータをモニタでき、それによって、例えば、パーサを各場所で提供でき、各パーサからの出力データは、単一のエンジン、モデルハンドラおよびアクチュエータに送信される。
【0057】
上述した方法およびシステムは、侵入検出のみに適用されるものではないことに留意されたい。この目的の代替または追加として、上述した方法およびシステムをモニタリング目的に適用できる。例えば、工場、データセンターなどの、独立施設のデータネットワークのデータトラフィックをモニタできる。それぞれまたはある種のプロトコルフィールドに対し、安全または望ましい動作状態を表すモデルを定義できる。上述した方法およびシステムを適用して、そのような動作状態以外のステータスを検出できる。あるいは、事前に安全または望ましい動作状態を定義する代わりに、本明細書で説明したようなシステムおよび/または方法を学習段階に適用でき、それによって、学習段階で取得されるモデルは、モニタする時に動作の記述を取得することが可能になる。転送されるデータは、適切なプロトコルフィールドのモデルを学習するために適用されるデータなど、動作状態が導かれる情報を備えることができる。例えば、工場のデータネットワークでは、モーターの速度、反応装置の温度、水圧だけでなく、エラーメッセージ、プロシージャコールなどにも関連する制御情報を転送できる。このようなデータを、望ましいまたは安全な動作状態を定義する事前定義されたモデルと比較するか、またはモデルに学習させるためのいずれかに使用でき、よって、学習するモデルからステータスを導く。モニタリングは、システム/ネットワークの管理者にとって重要な意味を持つある種のプロトコルフィールド(またはプロトコルフィールドの組み合わせ)の値を観察することによって工場またはコンピュータネットワークの「健全な」状態を検査することを備えることができ、そしてコンピュータネットワークまたは工業プロセスなどの興味深いイベントを定義できる。よって、本明細書の侵入検出という用語が適用される場合、これは、モニタリングも指すものとして理解できる。
【0058】
限定されない実施形態が開示された以下の説明および添付の概略図を参照し、例のみによって本発明のさらなる効果および特徴を説明する。