(57)【要約】      （修正有）【課題】ＦＷ（ファイアウォール）のログ解析やＩＤＳ（侵入検出システム）の設置、運用に頼らずに、プラントネットワーク内でセキュリティの脅威となりうる不正トラフィックやその予兆を検出できる不正通信検出システムを提供する。【解決手段】プラントネットワークで発生しうるセッションのリストであるセッションホワイトリスト５１ａを予め記憶する記憶手段５１と、前記補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部５３と、前記セッション判定分離手段により生成された前記セッション情報を前記セッションホワイトリスト５１ａと比較し、前記セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第１の不正通信検出手段５４を備える。【選択図】図２
2012034273.tif 000002
【特許請求の範囲】
【請求項１】
プラントネットワークを伝播するパケットをミラーリングにより捕捉して不正な通信を検出する不正通信検出システムにおいて、
前記プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、
前記補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、
前記セッション判定分離部により生成された前記セッション情報を前記セッションホワイトリストと比較し、前記セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第１の不正通信検出手段を備えたことを特徴とする不正通信検出システム。
【請求項２】
前記記憶手段が、
前記プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、
前記セッション判定分離部が、
前記補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、
前記セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、
生成された前記トラフィックパターン情報を前記トラフィックパターンホワイトリストと比較し、前記トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第２の不正通信検出手段を備えたことを特徴とする請求項１に記載の不正通信検出システム。
【請求項３】
前記セッション判定分離部が、
前記補足されたパケットに基づき、過去に成立したセッションの実績情報を示すセッション特徴情報を生成し、
このセッション特徴情報に基づき前記セッションホワイトリストを生成するホワイトリスト生成手段を備えたことを特徴とする請求項１または２記載の不正通信検出システム。
【請求項４】
前記セッション判定分離部は、
前記補足されたパケットを時系列に複数のメモリブロックに記憶するセッション検出用ワークメモリと、
前記セッションが成立しているパケットを時系列に複数のメモリブロックに記憶するセッション情報用メモリと、
前記補足されたパケットに対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリの最古のメモリブロック内に記憶されるパケットの中から検出されると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記して最新のセッション検出用ワークメモリのメモリブロックに記憶するデータ処理手段と、
対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットについて、前記セッション情報用メモリに同パケットにセッションが成立した旨を示す成立情報が付記されて記録されているときは、セッションが成立した実績があるものと判定して当該セッションに基づきセッション情報を生成すると共に、このパケットを前記セッション情報用メモリの最新のメモリブロックに記憶する定期処理手段を備えたことを特徴とする請求項１〜３のいずれかに記載の不正通信検出システム。
【請求項５】
前記セッション判定分離部は、前記セッションが不成立であるパケットを記憶する待ち合わせ用メモリを備え、
前記定期処理手段が、対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットであって、前記セッション情報用メモリにおいても同パケットにセッションが成立した旨を示す成立情報が付記されていないパケットは、セッションが成立していないパケットと判定し、このパケットを前記待ち合わせ用メモリに記憶すると共に当該パケットに基づき前記セッション不成立パケット情報を生成することを特徴とする請求項４に記載の不正通信検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラントネットワークを伝播するパケットをミラーリングにより捕捉して不正な通信を検出する不正通信検出システムに関し、特に、ＦＷ（ファイアウォール）のログ解析やＩＤＳ（侵入検出システム）の設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック（ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など）やその予兆を検出できる不正通信検出システムに関するものである。
【背景技術】
【０００２】
近年、インダストリアルオートメーションにおけるプロセス制御システムとして、フィードバック制御ループを構成する流量計や温度計などのセンサ、アクチュエータ、フィールドコントローラを含むフィールド機器がネットワークに接続されたフィールド制御ネットワークが提案されている。
また、プラント全体の動作を最適にするための制御ネットワーク管理システムとして、プラントネットワークも提案されている。
【０００３】
一方、工場にはオフィス用に敷設されたＩＰネットワークも存在している。ＩＰネットワークは広く普及しており、ＩＰネットワークで多く用いられているイーサネット（登録商標）は、柔軟にネットワークを構築できることから、プラントネットワーク、フィールド制御ネットワークをＩＰネットワーク上で動作させるようなプロトコルも提案されている。
【０００４】
このようなプロトコルを用いることにより、プラントネットワーク、フィールド制御ネットワークをオフィス用に敷設されたＩＰネットワークと共存させることができる。
すなわち、センサやアクチュエータなどを直接ＩＰネットワークに接続することができ、メンテナンスや運用面においてより簡単に末端のデバイスにアクセスすることが可能になる。
【０００５】
これらのネットワークでは、セキュリティの脅威となりうる不正トラフィック（ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など）が発生する可能性がある。不正トラフィックが発生するとプラント運転に影響を与えてしまうことがある。このため、不正トラフィックの特定やネットワーク状況把握する必要があった。
【０００６】
図６は、従来のプラントネットワークにおける不正通信検出システムの一実施例の構成説明図である。
図６において、プラントネットワーク１００は、プラント全体の動作を最適にするための制御ネットワーク管理システムであって、具体的には、以下の要素から構成される。
【０００７】
たとえば、フィールド機器を制御しプラントの運転を行うためのコンソール装置であるオペレーションコンソール１、異種のインダストリアルオートメーション制御システムを相互に動作させるためのサーバであって、プロセス由来のデータをマルチベンダ環境で共有しイントラネットの業務システムに転送するＯＰＣサーバ２、ワークステーションであってフィールド制御ネットワークに属する機器に組み込む制御ロジックの開発、改造が行われるエンジニアリングワークステーション３、その他の端末装置（ＰＣ−２、ＰＣ−３）から構成される。これらオペレーションコンソール１、ＯＰＣサーバ２、エンジニアリングワークステーション３はネットワーク１００を介して相互に接続される。
【０００８】
このプラントネットワーク１００は、浄水場やプラント等に設置され、インダストリアルオートメーションにおけるプロセス制御システムとして、フィードバック制御ループを構成するフィールド機器（流量計や温度計などのセンサ、アクチュエータ、フィールドコントローラを含む機器）により構成される制御バスネットワーク２００と接続される。
【０００９】
具体的には、オペレーションコンソール１、エンジニアリングワークステーション２、ＯＰＣサーバ３は、制御バスネットワーク２００およびプラントネットワーク１００に相互に接続される。
【００１０】
プラントネットワーク１００は、プラント工場にオフィス用に敷設されたＩＰネットワーク（以下、イントラネットという）３００と接続される。
【００１１】
イントラネット３００は、オフィス用の端末装置であるＰＣ−１などから構成され、ネットワーク間の通信を制限する機能を有するファイアウォール（以下、ＦＷという）４を介してインターネット４００と接続される。
【００１２】
また、イントラネット３００は、ＦＷ６を介してプラントネットワーク１００と接続される。イントラネット３００には、ＩＤＳ５が接続され、ＰＣ−１などにより制御される。ＩＤＳ５は、ＦＷ６とプラントネットワーク１００との間の接続線にも接続される。
【００１３】
ここで、プラントネットワーク１００は、点線で囲んだ部分には、近年、Ｗｉｎｄｏｗｓ（登録商標）を搭載した装置やオープンな技術が導入されてきているので、セキュリティに係るリスクが発生している。
このセキュリティに係るリスクについて、ＩＤＳ５により侵入検知することによりプラントネットワークのセキュリティを確保している。
【００１４】
ＩＤＳ５は、いわゆる侵入検知システムであって従来の不正通信検出システムを構成するものである。ＩＤＳ５は、プラントネットワーク１００を監視して不正なトラフィックを検出することにより、プラントネットワーク１００のセキュリティを確保する。
【００１５】
より具体的には、ＩＤＳ５がシグネチャ型である場合には、ＩＤＳ５はプラントネットワーク１００とＦＷ６間で送受信されるパケットを取得し、取得したパケットを予め記憶されている不正パケットの情報（以下、単に、シグネチャと呼ぶ。）と照合する。ＩＤＳ５は、パケットの内容とシグネチャとが一致するときは不正なパケットであるものとして通信を遮断する。
【００１６】
また、ＩＤＳ５がアノマリ型である場合には、ＩＤＳ５は統計的な手法で予め正常状態が定義されており、現在の状態が予め定義されている正常状態から逸脱した場合に異常であると判断して不正パケットの通過を遮断する。
【００１７】
この結果、従来のプラントネットワークにおける不正通信検出システムは、シグネチャ型（或いは、アノマリ型）のＩＤＳを介してインターネット等の汎用のネットワークに接続することにより、不正なパケットの侵入を検知してこれを遮断することが可能になる。
【００１８】
たとえば、従来のプラントネットワークにおける不正通信検出システムに関連する先行技術文献として下記の特許文献１がある。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００５−１２８７８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
従来のプラントネットワークにおける不正通信検出システムでは、サポート切れのアプリケーションやＯＳ（Operation System）が混在した環境であることが多いため、攻撃トラフィック（不正トラフィック）が流れた場合の影響はイントラネットに比べて大きいという問題点があった。
【００２１】
また攻撃トラフィック（不正トラフィック）により、制御バスネットワークに接続するフィールド機器の動作に影響を与えることもあり、プラントを最適に運転させることができなくなってしまうという問題点もあった。
【００２２】
また、プラントネットワークに接続される機器に脆弱性が発見され、当該機器が備えるソフトウェア等のセキュリティパッチが入手可能になったとしても、予定外のプラント運転の停止、プロセス制御システムの停止は、生産計画に影響するなどの理由で、すぐにシステムを停止してパッチなどの適用ができない場合が多いという問題点もあった。
【００２３】
これらの問題点に対しては、上述のようにＩＤＳでトラフィックを監視し、または、ＦＷのログを解析してプラントネットワークを監視するものが提案されているが、以下の問題点（Ａ）〜（Ｃ）があった。
【００２４】
（Ａ）ＩＤＳによる監視では、攻撃トラフィック（不正トラフィック）がプラントネットワーク上を流れた後にのみ攻撃を検知できるだけであり、制御バスネットワークに接続するフィールド機器の動作に影響を与えてしまうことがあるという問題点があった。
つまり、プラントネットワークでは、攻撃トラフィックが流れてしまうと被害が大きくなるので、事前に検知のできないＩＤＳによる監視では不十分であるという問題点があった。
【００２５】
（Ｂ）ＩＤＳによる監視では、既知の攻撃しか検出できないので、新たな攻撃パターンによる攻撃トラフィック（不正トラフィック）を検知できないという問題点があった。
【００２６】
（Ｃ）ＦＷのログの監視には特殊なスキルが必要であるという問題点、リアルタイムにトラフィックを監視することは困難であるという問題点もあった。
【００２７】
本発明は、このような問題点を解決するものであり、その目的は、ＦＷ（ファイアウォール）のログ解析やＩＤＳ（侵入検出システム）の設置、運用に頼らずに、プラントネットワーク内でセキュリティの脅威となりうる不正トラフィック（ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など）やその予兆を検出できる不正通信検出システムを実現することにある。
【課題を解決するための手段】
【００２８】
上記目的を達成するために、本発明のうち請求項１に記載の発明は、
プラントネットワークを伝播するパケットをミラーリングにより捕捉して不正な通信を検出する不正通信検出システムにおいて、
前記プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、
前記補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、
前記セッション判定分離部により生成された前記セッション情報を前記セッションホワイトリストと比較し、前記セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第１の不正通信検出手段を備えたことを特徴とする不正通信検出システムである。
【００２９】
請求項２記載の発明は、請求項１に記載の不正通信検出システムにおいて、
前記記憶手段が、
前記プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、
前記セッション判定分離部が、
前記補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、
前記セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、
生成された前記トラフィックパターン情報を前記トラフィックパターンホワイトリストと比較し、前記トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第２の不正通信検出手段を備えたことを特徴とする。
【００３０】
請求項３記載の発明は、請求項１または２に記載の不正通信検出システムにおいて、
前記セッション判定分離部が、
前記補足されたパケットに基づき、過去に成立したセッションの実績情報を示すセッション特徴情報を生成し、
このセッション特徴情報に基づき前記セッションホワイトリストを生成するホワイトリスト生成手段を備えたことを特徴とする。
【００３１】
請求項４記載の発明は、請求項１〜３のいずれかに記載の不正通信検出システムにおいて、
前記セッション判定分離部は、
前記補足されたパケットを時系列に複数のメモリブロックに記憶するセッション検出用ワークメモリと、
前記セッションが成立しているパケットを時系列に複数のメモリブロックに記憶するセッション情報用メモリと、
前記補足されたパケットに対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリの最古のメモリブロック内に記憶されるパケットの中から検出されると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記して最新のセッション検出用ワークメモリのメモリブロックに記憶するデータ処理手段と、
対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットについて、前記セッション情報用メモリに同パケットにセッションが成立した旨を示す成立情報が付記されて記録されているときは、セッションが成立した実績があるものと判定して当該セッションを前記セッション情報に記憶すると共に、このパケットを前記セッション情報用メモリの最新のメモリブロックに記憶する定期処理手段を備えたことを特徴とする。
【００３２】
請求項５記載の発明は、請求項４に記載の不正通信検出システムにおいて、
前記セッションが不成立であるパケットを記憶する待ち合わせ用メモリを備え、前記定期処理手段が、対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットであって、前記セッション情報用メモリにおいても同パケットにセッションが成立した旨を示す成立情報が付記されていないパケットは、セッションが成立していないパケットと判定し前記セッション不成立パケット情報に記憶すると共に、このパケットを前記待ち合わせ用メモリに記憶することを特徴とする。
【発明の効果】
【００３３】
本発明によれば、プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、セッション判定分離部により生成されたセッション情報をセッションホワイトリストと比較し、セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第１の不正通信検出手段を備えたことにより、ＦＷ（ファイアウォール）のログ解析やＩＤＳ（侵入検出システム）の設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック（ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など）やその予兆を検出できる点で有効である。
【００３４】
また請求項２の発明によれば、記憶手段が、プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、セッション判定分離部が、補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、生成されたトラフィックパターン情報をトラフィックパターンホワイトリストと比較し、トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第２の不正通信検出手段を備えたことにより、ＵＤＰのようなセッション成立に際して、応答パケットの送信を不要とするようなプロトコルによる通信であっても、ＦＷのログ解析やＩＤＳの設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック（ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など）やその予兆を検出できる点で有効である。
【００３５】
また、本発明によれば、本発明の不正通信検出システムは、上述のような構成とすることにより、不正トラフィックをリアルタイムに検知できるだけでなく、ホワイトリストに適合しないパケット（不正通信）をリアルタイムに検知できるためセキュリティの脅威の予兆が検知できる点で有効である。
また、本発明の不正通信検出システムは、上述のような構成とすることにより、プラントネットワークにワームやボットウィルスに感染してしまった場合に（ネットワーク経由の場合も、ネットワーク経由ではなく、ＵＳＢメモリ経由の場合であっても）、ワームやボットの活動による不正なトラフィックの予兆を迅速に検知できる点で有効である。
【図面の簡単な説明】
【００３６】
【図１】本発明の不正通信検出システムの一実施例の構成説明図である。
【図２】図１の検出装置の構成説明図である。
【図３】図２のセッション判定分離部の構成ブロック図である。
【図４】本発明の不正通信検出装置のセッション判定分離部の動作説明図である。
【図５】本発明の不正通信検出装置の動作説明図である。
【図６】従来のプラントネットワークにおける不正通信検出システムの一実施例の構成説明図である。
【発明を実施するための形態】
【００３７】
＜第１の実施例＞
本発明は、プラントネットワークのデフォルトゲートウェイには、ワームやウイルス、ボットの通信、および、それらの予兆の通信が届くため、デフォルトゲートウェイのトラフィックを監視すれば、これらのセキュリティの脅威を発見できることに着目したものである。
（構成の概要）
以下、図面を参照して、本発明を詳細に説明する。図１は本発明の不正通信検出システムの一実施例の構成説明図であり、図６と共通する部分には同一の符号を付けて適宜説明を省略する。
【００３８】
図６との相違点は、主に、記憶手段がプラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶し、セッション判定分離部が補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成し、第１の不正通信検出手段がセッション判定分離部により生成されたセッション情報をセッションホワイトリストと比較し、セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する点が相違する。
【００３９】
図１において、本発明の不正通信検出システム１は、主に、イントラネット３００と接続され、ＦＷ６とプラントネットワーク１００との間の接続線にも接続される検出装置５０から構成される。本発明の不正通信検出システム１は、イントラネット３００に接続され、検出装置５０の検出結果を表示するコンソール装置６０とからも構成されるものでもよい。
【００４０】
検出装置５０は、プラントネットワーク１００を監視して不正なトラフィックを検出し、セキュリティの脅威を発見、脅威を発見した場合には、イベントとしてコンソール装置６０に通知することにより、プラントネットワーク１００のセキュリティを確保する。
【００４１】
なお、本発明の不正通信検出システムは、検出装置５０を設置することで、プラントネットワーク１００に影響を与えたり、攻撃者に検出装置５０を踏み台にされてプラントネットワーク１００を攻撃されたりすることを避けるため、以下の項目を考慮した構成にしている。
（イ）デフォルトゲートウェイにあるＦＷ（または、レイヤ３スイッチ）のプラントネットワーク１００側のトラフィックをミラーしてから、キャプチャする。
（ロ）プラントネットワーク１００に直接接続させない
【００４２】
具体的には、検出装置５０は、特に図示しないが、ＦＷ６とプラントネットワーク１００とを接続するスイッチ（図示せず）からミラーリングによりプラントネットワークを伝播するパケットをキャプチャ（捕捉）して不正な通信を検出する。
具体的には、検出装置５０は、スイッチ（図示せず）のポートの１つを、指定したポート（ソースポート）に流れるパケットをコピーして出力するミラーポートとして設定し、そのミラーポートに検出装置の通信手段（監視用インタフェースなど）を接続し、プラントネットワーク３００を伝播するパケットをキャプチャする。
【００４３】
図２は図１の検出装置の構成説明図である。
図２において、検出装置５０は、プラントネットワーク１００で発生しうるセッションのリストであるセッションホワイトリスト５１ａを予め記憶する記憶手段５１と、ＦＷ６とプラントネットワーク１００とを接続するスイッチ（図示せず）からミラーリングによりプラントネットワーク１００を伝播するパケットを補足するパケットキャプチャ手段５２と、パケットキャプチャ手段５２により補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示す「セッション情報」を生成するセッション判定分離部５３と、セッション判定分離部５３により生成された「セッション情報」をセッションホワイトリスト５１ａと比較し、セッションホワイトリスト５１ａ中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第１の不正通信検出手段５４とから構成される。
【００４４】
ここで、セッションホワイトリスト５１ａの例を以下の表１に示す。
【表１】
2012034273.tif 000003
【００４５】
また、記憶手段５１が、プラントネットワーク１００で発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリスト５１ｂを予め記憶するものでもよい。ここで、トラフィックパターンホワイトリスト５１ｂの例を以下の表２に示す。このトラフィックパターンホワイトリスト５１ｂは、一定期間、本システムを稼動させ、トラフィックパターンを集めて作成するものでもよい。
【００４６】
【表２】
2012034273.tif 000004
【００４７】
トラフィックパターンは後述の、パケットの伝播の仕方の違いにより分類された、”Ｎｏｒｍａｌ”、”Ｐｏｒｔ＿Ｓｃａｎ”、”Ｐｏｒｔ＿Ｓｃａｎ２”、Ｎｅｔｗｏｒｋ＿Ｓｃａｎ”、”Ｎｅｔｗｏｒｋ＿Ｓｃａｎ２”及び”Ｎｅｔｗｏｒｋ＿Ｓｃａｎ３”の６つのタイプのパターンから成るものでよい。
【００４８】
また、セッション判定分離部５３が、補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示す「セッション不成立パケット情報」を生成するものでもよい。
また、セッション判定分離部５３が、補足されたパケットに基づいて、過去に成立したセッションの実績情報を示す「セッション特徴情報」を生成するものでもよい。
【００４９】
セッション判定分離部５３は、セッション判定分離部５３から補足したパケットを取得し、または記憶手段５２からセッション判定分離部５３が補足したパケットを取得する。
そして、セッション判定分離装置５３は、取得したパケットに基づき、以下の表３に示した「セッション情報」、「セッション特徴情報」、「セッション不成立パケット情報」の３種類の情報のうち少なくともいずれかの情報を抽出し生成するものでよい。
【００５０】
【表３】
2012034273.tif 000005
【００５１】
また、検出装置５０は、セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段５５と、トラフィックパターン判定手段５５により生成されたトラフィックパターン情報をトラフィックパターンホワイトリスト５１ｂと比較し、トラフィックパターンホワイトリスト５１ｂ中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第２の不正通信検出手段５６からも構成されるものでもよい。
【００５２】
パケットキャプチャ手段５２は、補足したパケットの内容を調べ、セッションの組を見つけるために必要なパケット情報を抽出する。パケットキャプチャ手段５２は、たとえば、ＩＰｖ４のＴＣＰ／ＵＤＰ／ＩＣＭＰの場合は、以下の表４に示す情報を抽出する。
そして、抽出した情報または補足したパケットをセッション判定分離部５３に送信する、または記憶手段５２に記憶させる。
【００５３】
【表４】
2012034273.tif 000006
【００５４】
第１の不正通信判定手段５４は、セッション判定分離部５３が生成したセッション情報を取得して、記憶手段５１に記憶されるセッションホワイトリスト５１ａと比較し、比較結果（たとえば検出された不正通信の情報）を通信手段を介してコンソール装置６０に送信する。第１の不正通信判定手段５４から送信される比較結果（たとえば検出された不正通信の情報）は、コンソール装置６０の表示手段（モニタ）等に表示される。
【００５５】
トラフィックパターン判定手段５５は、セッション判定分離部５３が生成したセッション不成立パケット情報を取得して、これら取得したパケットに基づきトラフィックパターンを生成する。判定・変換のアルゴリズムは、たとえば関連特許、特許出願（特許４４７９４５９号、特許４４１５３８０号、特開２００７−２２１３１１号公報）に記載のものを使用するものでよい。
【００５６】
具体的には、トラフィックパターン判定手段５５は、捕捉したパケットの送信先ポート、タイプまたはこれらの一方若しくは両方の組み合わせによるトラフィックパターン（分類）を自動する。
たとえば、トラフィックパターン判定手段５５は、受信（捕捉）したパケットの伝播の仕方の違いにより、”Ｎｏｒｍａｌ”、”Ｐｏｒｔ＿Ｓｃａｎ”、”Ｐｏｒｔ＿Ｓｃａｎ２”、Ｎｅｔｗｏｒｋ＿Ｓｃａｎ”、”Ｎｅｔｗｏｒｋ＿Ｓｃａｎ２”及び”Ｎｅｔｗｏｒｋ＿Ｓｃａｎ３”の６つのタイプに分類する。
【００５７】
トラフィックパターン判定手段５５は、たとえば、セッション不成立パケットの送信元ポート番号の種類数と送信先ポート番号の種類数とが同じであり、尚且つ、送信先ネットワークのアドレスの種類数と送信先ホストのアドレス種類数とが同じである場合にタイプ”Ｎｏｒｍａｌ”に分類する。
また、トラフィックパターン判定手段５５は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも多く、尚且つ、送信先ネットワークのアドレスの種類数と送信先ホストのアドレス種類数とが同じである場合にタイプ”Ｐｏｒｔ＿Ｓｃａｎ”に分類する。
また、トラフィックパターン判定手段５５は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも少なく、尚且つ、送信先ネットワークのアドレスの種類数と送信先ホストのアドレス種類数とが同じである場合にタイプ”Ｐｏｒｔ＿Ｓｃａｎ２”に分類する。
【００５８】
また、トラフィックパターン判定手段５５は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも多く、尚且つ、送信先ネットワークのアドレスの種類数の方が送信先ホストのアドレス種類数よりも少ない場合にタイプ”Ｎｅｔｗｏｒｋ＿Ｓｃａｎ”に分類する。
また、トラフィックパターン判定手段５５は、セッション不成立パケットの送信元ポート番号の種類数と送信先ポート番号の種類数と同じであり、尚且つ、送信先ネットワークのアドレスの種類数の方が送信先ホストのアドレス種類数よりも少ない場合にタイプ”Ｎｅｔｗｏｒｋ＿Ｓｃａｎ２”に分類する。
また、トラフィックパターン判定手段５５は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも少なく、尚且つ、送信先ネットワークのアドレスの種類数の方が送信先ホストのアドレス種類数よりも少ない場合にタイプ”Ｎｅｔｗｏｒｋ＿Ｓｃａｎ３”に分類する。
【００５９】
第２の不正通信判定手段５６は、トラフィックパターン判定手段５５が生成したトラフィックパターン情報を取得して、記憶手段５１に記憶されるトラフィックパターンセッションホワイトリスト５１ｂと比較し、比較結果（たとえば検出された不正通信の情報）を通信手段を介してコンソール装置６０に送信する。第１の不正通信判定手段５４から送信される比較結果は、コンソール装置６０の表示手段（モニタ）等に表示される。
【００６０】
また、セッション判定分離部５３は、補足されたパケットに基づき、過去に成立したセッションの実績情報を示すセッション特徴情報を生成するものでもよい。このセッション特徴情報に基づきセッションホワイトリスト５１ｂを生成するホワイトリスト生成手段を備えるものでもよい。
【００６１】
なお、検出装置５０は、特に図示しないが、プラントネットワーク１００を介してパケット通信を行う第１の通信手段と、イントラネット３００を介してパケット通信を行う第２の通信手段と、この検出装置５０全体を制御し、不正通信を検出するＣＰＵなどの演算制御手段を有する。
【００６２】
また、記憶手段５１は、たとえばＲＡＭ（Random Access Memory）やＲＯＭ（ROM - Read Only Member）などであり、主にＯＳ（Operating System）や、検出装置５０として動作させるためのプログラムやアプリケーション、これらプログラムなどの実行時に使用されるデータ、コンソール装置６０等に到達するまでの経路情報（ＩＰアドレス、ＭＡＣアドレス等のネットワーク情報）などの各種情報を格納する。
【００６３】
演算制御手段は、記憶手段５１に格納されているＯＳなどを起動して、このＯＳ上で格納されたプログラムを読み出し実行することにより各機器または各部全体を制御し、各機器または各部固有の動作を行う。このとき記憶手段は、演算制御手段によって実行されるプログラムやアプリケーションをプログラム格納エリアに展開し、入力されたデータや、プログラムやアプリケーションの実行時に生じる処理結果などのデータをワークエリアに一時的に記憶するものであってもよい。
【００６４】
図３は図２のセッション判定分離部の構成ブロック図である。
図３において、セッション判定分離部５３は、補足されたパケット（またはパケットキャプチャ手段５２により抽出されたパケット情報）を時系列に複数のメモリブロックに記憶するセッション検出用ワークメモリ５３ａと、セッションが成立しているパケット（またはパケットキャプチャ手段５２により抽出されたパケット情報）を時系列に複数のメモリブロックに所定期間分記憶するセッション情報用メモリ５３ｂと、セッションが不成立であるパケット（またはパケットキャプチャ手段５２により抽出されたパケット情報）を所定期間分記憶する待ち合わせ用メモリ５３ｃから構成される。
【００６５】
セッション検出用ワークメモリ５３ａは、セッションが成立するパケットの組を見つけるために使用するメモリである。            
セッション検出用ワークメモリ５３ａは、最古のメモリブロックから最新のメモリブロックまで、定期処理手段５３ｅによる定期処理の間隔と同じ時間幅の単位のブロックでパケットに関する情報を記憶し、管理する。
【００６６】
セッション情報用メモリ５３ｂは、セッションが成立したパケットに関して、セッション情報を一定期間保存しておくメモリである。
セッション情報用メモリ５３ｂは、最古メモリブロックから最新メモリブロックまで、定期処理手段５３ｅによる定期処理の間隔と同じ幅の単位のブロックでパケットに関する情報を記憶し、管理する。
【００６７】
待ち合わせ用メモリ５３ｃは、セッションが成立しなかったパケットを、パケットの時間順に出力するために必要な期間保持するためのメモリである。
また、待ち合わせ用メモリ５３ｃは、最古メモリブロックから最新メモリブロックまで、定期処理手段５３ｅによる定期処理の間隔と同じ幅の単位のブロックでパケットに関する情報を記憶し、管理する。
【００６８】
ここで、セッションが成立するということは、通信相手が存在する（通信が一方通行ではなく、一定期間内に、双方向で行われる）ことを意味するものとする。セッション判定分離部５３はセッションの成立の成否についての条件情報を予め有する。ここで、セッション成立しているものしてと判断するための条件例を以下に示す。
【００６９】
（Ｘ）ＩＰｖ４／ＴＣＰ（Transmission Control Protocol）による通信の場合
ホストＡから、ホストＢに対して、ＳＹＮ（Synchronize）パケットが送られたとき、一定期間内に、ホストＢからホストＡに、対応するＳＹＮ／ＡＣＫ（ACKnowledgement）パケットが返る場合に、ホストＡとホストＢを「組」とする。
ここで、「対応する」とは、「送信元ポート番号」、「送信先ポート番号」、「Sequence Number」、「Acknowledgement Number」などに矛盾が無いことを意味する。
【００７０】
（Ｙ）ＩＰｖ４／ＵＤＰ（User Datagram Protocol）による通信の場合
ホストＡから、ホストＢに対して、ＵＤＰパケットが送られたとき、一定期間内に、ホストＢからホストＡに、対応するＵＤＰパケットが返る場合に、ホストＡとホストＢを「組」とする。
ここで、「対応する」とは、「送信元ポート番号」、「送信先ポート番号」に矛盾がないことを意味する。
【００７１】
（Ｚ）ＩＰｖ４／ＩＣＭＰ（Internet Control Message Protocol）による通信の場合
ホストＡから、ホストＢに対して、「ICMP_ECHO」、 「ICMP_TIMESTAMP」、「ICMP_INFO_REQUEST」または、「ICMP_ADDRESS」が送信されたとき、一定期間内に、ホストＢから、ホストＡに、それぞれ、「ICMP_ECHOREPLY」、「ICMP_TIMESTAMPREPLY」、「ICMP_INFO_REPLY」または 、「ICMP_ADDRESSREPLY」が返信される場合に、ホストＡとホストＢを「組」とする。
【００７２】
また、セッション判定分離部５３は、データ処理手段５３ｄ、定期処理手段５３ｅ、定期的に時刻イベントまたはトリガを発生するタイマー手段５３ｆ、ＦＩＦＯ（リングバッファメモリ）であり、パケットキャプチャ手段５２から受信するパケットの時系列のパケット情報やタイマーからの時刻イベントまたはトリガを格納するタスクキュー手段５３ｇ、タスクキュー手段５３ｇを定期的に監視し、タスクキュー内に何らかのタスクがあった場合に、タスクの内容に応じた処理を起動するタスク管理手段５３ｈからも構成される。
【００７３】
データ処理手段５３ｄは、補足されたパケットに対応するセッションの成立相手となるパケットがセッション検出用ワークメモリ５３ａの最古のメモリブロック内に記憶されるパケットの中から検出されると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記して（セッションが成立したという印をつけて）セッション検出用ワークメモリ５３ａの最新のメモリブロックに記憶する。
【００７４】
定期処理手段５３ｅは、対応するセッションの成立相手となるパケットがセッション検出用ワークメモリに記憶されていない補足されたパケットについて、セッション情報用メモリ５３ｂに同パケット（同種のパケット、パケットキャプチャ手段５２により抽出された同種のパケット情報）にセッションが成立した旨を示す成立情報が付記されて記録されているときは、セッションが成立した実績があるものと判定して当該セッションに係わるセッション情報を生成すると共に、このパケットをセッション情報用メモリ５３ｂの最新のメモリブロックに記憶する。
【００７５】
定期処理手段５３ｅが生成するセッション情報は、セッション開始時刻、セッションの長さ、セッションの向きとプロトコル情報、セッションのステータス（通信中／終了）のうち少なくともいずれかを含むものである。
【００７６】
定期処理手段５３ｅはセッション情報用メモリ５３ｂの最古のメモリブロック内のパケットに関する情報を取り出し、「送信元ＩＰアドレス、送信先ＩＰアドレス、サービス」の組がユニークになるように加工して、セッション特徴情報を生成する。
【００７７】
また、定期処理手段５３ｅは、対応するセッションの成立相手となるパケットがセッション検出用ワークメモリ５３ａに記憶されていない補足されたパケットであって、セッション情報用メモリ５３ｂにおいても同パケット（同種のパケット）にセッションが成立した旨を示す成立情報が付記されていないパケットは、セッションが成立していないパケットと判定しセッション不成立パケット情報に記憶すると共に、このパケットを待ち合わせ用メモリ５３ｃに記憶する。
【００７８】
（動作の説明）
このような構成で、本発明の不正通信検出装置は次の動作（１）〜（３）、（イ−１）〜（イ−２）、（ロー１）〜（ロー６）、（ハ−１）〜（ハ−３）、（ニ−１）〜（ニ−５）を行う。
（１）パケットキャプチャ手段５２は、トラフィックをキャプチャするたびに、パケット情報を抽出し、タスクキュー手段５３ｇに入力する。
（２）タイマー５３ｆは、時刻情報を定期的にタスクキュー手段５３ｇに入力する。
【００７９】
（３）セッション判定分離部５３は、「（イ）データ処理」および「（ロ）定期処理」を実行する。ここで、タスク管理手段５３ｈは、タスクキュー手段５３ｇを監視して、タスクがある場合は、タスクを一つ取り出し、そのタスクがパケット情報の場合には「（イ）データ処理」を実行し、時刻イベントの場合には「（ロ）定期処理」を実行する。
【００８０】
図４は、本発明の不正通信検出装置のセッション判定分離部の動作説明図、図５は本発明の不正通信検出装置の動作説明図である。以下、図４、図５中の（イ−１）〜（イ−２）、（ロ−１）〜（ロ−５）、（ハ−１）〜（ハ−３）、（ニ−１）〜（ニ−５）の各動作処理を示す処理番号にあわせて説明する。ここで（イ−１）〜（イ−２）は「データ処理」を、（ロ−１）〜（ロ−５）は「定期処理」の動作を説明している。
【００８１】
（イ）データ処理について
（イ−１）
データ処理手段５３ｄは、タスクキュー手段５３ｇに格納されたパケット（パケットキャプチャ手段５２により補足されたパケット）に対応するセッションの成立相手となるパケットを、セッション検出用ワークメモリ５３ａの最古のメモリブロックから新しいメモリブロックの順番に各メモリブロック内に記憶されるパケットの中から検索する。
【００８２】
（イ−２）
データ処理手段５３ｄは、補足されたパケットに関して、「セッションの成立相手となるパケット」を検出すると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記する（セッションが成立したという印をつける）。
また、データ処理手段５３ｄは、セッション検出用ワークメモリ５３ａの最新のメモリブロックにセッション成立した旨を示す成立情報を付記された当該キャプチャされたパケットに関する情報を記憶（追加）する。
【００８３】
（ロ）定期処理について
（ロ−１）
定期処理手段５３ｅは、セッション検出用ワークメモリ５３ａの最古のメモリブロックから、メモリブロック内に含まれる全てのパケットに関する情報を取得する。
定期処理手段５３ｅは、各パケットの情報を検査して、セッションが成立した旨を示す情報が付記されているかどうか（セッションが成立したという印があるかどうか）を確認する。定期処理手段５３ｅは、セッションが成立した旨を示す情報が付記されている（セッションが成立した印がある）パケットは、「セッションが成立した」ものと判定する。
【００８４】
（ロ−２）
定期処理手段５３ｅは、セッションが成立した旨を示す情報が付記されていない（セッションが成立した印がない）パケットについては、過去一定期間内にセッションが成立した記録があるかどうかを確認するために、セッション情報用メモリを検索する（ロ−２Ａ）。
定期処理手段５３ｅは、セッションが成立した記録を検出できると、このパケットは「セッションが成立した」ものとして判定する。
【００８５】
定期処理手段５３ｅは、記録がないパケットは、「セッションが成立しない」と判定して、データが時間順になるように注意して、待ち合わせ用メモリ５３ｃ内の適切なブロックにパケットに関する情報を書き込む（ロ−２Ｂ）。
【００８６】
（ロ−３）
定期処理手段５３ｅは、「セッションが成立した」と判定されたパケットについては、当該セッションをセッション情報として生成する（ロー３Ａ）と共に、このセッション情報をセッション情報用メモリ５３ｂの最新のメモリブロックに書き込む（ロ−３Ｂ）。
【００８７】
（ロ−４）
定期処理手段５３ｅは、セッション情報用メモリ５３ｂの最古のメモリブロック内のパケットに関する情報を取り出し（ロ−４Ａ）、「送信元ＩＰアドレス、送信先ＩＰアドレス、サービス」の組がユニークになるように加工して、セッション特徴情報を生成する（ロ−４Ｂ）。
【００８８】
（ロ−５）
定期処理手段５３ｅは、待ち合わせ用メモリ５３ｃの最古のメモリブロックからブロック内のパケットに関する情報を取り出し（ロ−５Ａ）、時刻順になるように並べ替えて「セッション不成立パケット情報」として生成する（ロ−５Ｂ）。
【００８９】
定期処理が終了すると、第１の不正通信判定手段５４、トラフィックパターン判定手段５５、第２の不正通信判定手段５６がそれぞれ以下の動作（ハ−１）〜（ハ−３）、（ニ−１）〜（ニ−５）を行う。
【００９０】
（ハ−１）
定期処理後、第１の不正通信判定手段５４は、定期処理手段５３ｅが生成した「セッション情報」を取得する。
（ハ−２）
第１の不正通信判定手段５４は、セッション判定分離部５３が生成したセッション情報に基づいて、記憶手段５１に記憶されるセッションホワイトリスト５１ａと比較し、セッションホワイトリスト５１ａ中のいずれのセッションにも適合しないときは当該セッション情報に係る通信を不正な通信として検出する。
（ハ−３）
第１の不正通信判定手段５４は、不正な通信を検出すると、検出結果をコンソール装置６０に送信する。コンソール装置６０は、第１の不正通信判定手段５４から受信した検出結果に基づき、不正通信に係る情報を表示する。
【００９１】
（ニ−１）
定期処理後、トラフィックパターン判定手段５５は、定期処理手段５３ｅが生成した「セッション不成立パケット情報」を取得する。
（ニ−２）
トラフィックパターン判定手段５５は、定期処理手段５３ｅが生成した「セッション不成立パケット情報」に基づいて、トラフィックパターン情報を生成する。
（ニ−３）
第２の不正通信判定手段５６は、トラフィックパターン判定手段５５が生成したトラフィックパターン情報を取得する。
（ニ−４）
第２の不正通信判定手段５６は、トラフィックパターン判定手段５５により生成されたトラフィックパターン情報をトラフィックパターンホワイトリスト５１ｂと比較し、トラフィックパターンホワイトリスト５１ｂ中のいずれのトラフィックパターンにも適合しないときは当該トラフィッパターン情報に係る通信を不正な通信として検出する。
（ニ−５）
第２の不正通信判定手段５６は、不正な通信を検出すると検出結果をコンソール装置６０に送信する。コンソール装置６０は、第２の不正通信判定手段５６から受信した検出結果に基づき、不正通信に係る情報を表示する。
【００９２】
この結果、本発明の不正通信検出システムは、プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、セッション判定分離部により生成されたセッション情報をセッションホワイトリストと比較し、セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第１の不正通信検出手段を備えたことにより、ＦＷ（ファイアウォール）のログ解析やＩＤＳ（侵入検出システム）の設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック（ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など）やその予兆を検出できる。
【００９３】
また、本発明の不正通信検出システムは、記憶手段が、プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、セッション判定分離部が、補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、生成されたトラフィックパターン情報をトラフィックパターンホワイトリストと比較し、トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第２の不正通信検出手段を備えたことにより、ＵＤＰのようなセッション成立に際して、応答パケットの送信を不要とするようなプロトコルによる通信であっても、ＦＷのログ解析やＩＤＳの設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック（ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など）やその予兆を検出できる。
【００９４】
つまり、本発明の不正通信検出システムは、上述のような構成とすることにより、不正トラフィックをリアルタイムに検知できるだけでなく、ホワイトリストに適合しないパケット（不正通信）をリアルタイムに検知できるため、既知の攻撃だけではなくセキュリティの脅威の予兆が検知できる点で有効である。このため攻撃トラフィックが流れる前にセキュリティ脅威の予兆を検知できるのでフィールド機器の動作への影響が比較的少なくなる点で有効である。
また、本発明の不正通信検出システムは、上述のような構成とすることにより、プラントネットワークにワームやボットウィルスに感染してしまった場合に（ネットワーク経由の場合も、ネットワーク経由ではなく、ＵＳＢメモリ経由の場合であっても）、ワームやボットの活動による不正なトラフィックの予兆を迅速に検知できる点で有効である。
【００９５】
＜その他の構成例＞
なお、本発明の不正通信検出システムは、上述の第１の実施例の構成に加えて、記憶手段５１がブラックリストを記憶し、第３の不正通信判定手段５７が第１または第２の不正通信判定手段が不正な通信を検知した後に、さらにブラックリストと比較して、不正トラフィックが発生した原因に関連する情報をコンソール装置６０に表示するものでもよい。
ここで、ブラックリストとは、ボットの通信先だと知られているような、問題のある通信先のリストや、既知のワームのトラフィックパターンのリストを指す。
これにより、不正トラフィックの発生原因を除去するための対応を支援できる点、対応のプライオリティ付けをできる点で有効である。
【符号の説明】
【００９６】
５０  検出装置
５１  記憶手段
５２  パケットキャプチャ手段
５３  セッション判定分離部
５３ａ  セッション検出用ワークメモリ
５３ｂ  セッション情報用メモリ
５３ｃ  待ち合わせ用メモリ
５３ｄ  データ処理手段
５３ｅ  定期処理手段
５４  第１の不正通信判定手段
５５  トラフィックパターン判定手段
５６  第２の不正通信判定手段
１００  プラントネットワーク
【図１】
2012034273.tif 000007
【図２】
2012034273.tif 000008
【図３】
2012034273.tif 000009
【図４】
2012034273.tif 000010
【図５】
2012034273.tif 000011
【図６】
2012034273.tif 000012