説明

不正通信検出システム

【課題】FW(ファイアウォール)のログ解析やIDS(侵入検出システム)の設置、運用に頼らずに、プラントネットワーク内でセキュリティの脅威となりうる不正トラフィックやその予兆を検出できる不正通信検出システムを提供する。
【解決手段】プラントネットワークで発生しうるセッションのリストであるセッションホワイトリスト51aを予め記憶する記憶手段51と、前記補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部53と、前記セッション判定分離手段により生成された前記セッション情報を前記セッションホワイトリスト51aと比較し、前記セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第1の不正通信検出手段54を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プラントネットワークを伝播するパケットをミラーリングにより捕捉して不正な通信を検出する不正通信検出システムに関し、特に、FW(ファイアウォール)のログ解析やIDS(侵入検出システム)の設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック(ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など)やその予兆を検出できる不正通信検出システムに関するものである。
【背景技術】
【0002】
近年、インダストリアルオートメーションにおけるプロセス制御システムとして、フィードバック制御ループを構成する流量計や温度計などのセンサ、アクチュエータ、フィールドコントローラを含むフィールド機器がネットワークに接続されたフィールド制御ネットワークが提案されている。
また、プラント全体の動作を最適にするための制御ネットワーク管理システムとして、プラントネットワークも提案されている。
【0003】
一方、工場にはオフィス用に敷設されたIPネットワークも存在している。IPネットワークは広く普及しており、IPネットワークで多く用いられているイーサネット(登録商標)は、柔軟にネットワークを構築できることから、プラントネットワーク、フィールド制御ネットワークをIPネットワーク上で動作させるようなプロトコルも提案されている。
【0004】
このようなプロトコルを用いることにより、プラントネットワーク、フィールド制御ネットワークをオフィス用に敷設されたIPネットワークと共存させることができる。
すなわち、センサやアクチュエータなどを直接IPネットワークに接続することができ、メンテナンスや運用面においてより簡単に末端のデバイスにアクセスすることが可能になる。
【0005】
これらのネットワークでは、セキュリティの脅威となりうる不正トラフィック(ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など)が発生する可能性がある。不正トラフィックが発生するとプラント運転に影響を与えてしまうことがある。このため、不正トラフィックの特定やネットワーク状況把握する必要があった。
【0006】
図6は、従来のプラントネットワークにおける不正通信検出システムの一実施例の構成説明図である。
図6において、プラントネットワーク100は、プラント全体の動作を最適にするための制御ネットワーク管理システムであって、具体的には、以下の要素から構成される。
【0007】
たとえば、フィールド機器を制御しプラントの運転を行うためのコンソール装置であるオペレーションコンソール1、異種のインダストリアルオートメーション制御システムを相互に動作させるためのサーバであって、プロセス由来のデータをマルチベンダ環境で共有しイントラネットの業務システムに転送するOPCサーバ2、ワークステーションであってフィールド制御ネットワークに属する機器に組み込む制御ロジックの開発、改造が行われるエンジニアリングワークステーション3、その他の端末装置(PC−2、PC−3)から構成される。これらオペレーションコンソール1、OPCサーバ2、エンジニアリングワークステーション3はネットワーク100を介して相互に接続される。
【0008】
このプラントネットワーク100は、浄水場やプラント等に設置され、インダストリアルオートメーションにおけるプロセス制御システムとして、フィードバック制御ループを構成するフィールド機器(流量計や温度計などのセンサ、アクチュエータ、フィールドコントローラを含む機器)により構成される制御バスネットワーク200と接続される。
【0009】
具体的には、オペレーションコンソール1、エンジニアリングワークステーション2、OPCサーバ3は、制御バスネットワーク200およびプラントネットワーク100に相互に接続される。
【0010】
プラントネットワーク100は、プラント工場にオフィス用に敷設されたIPネットワーク(以下、イントラネットという)300と接続される。
【0011】
イントラネット300は、オフィス用の端末装置であるPC−1などから構成され、ネットワーク間の通信を制限する機能を有するファイアウォール(以下、FWという)4を介してインターネット400と接続される。
【0012】
また、イントラネット300は、FW6を介してプラントネットワーク100と接続される。イントラネット300には、IDS5が接続され、PC−1などにより制御される。IDS5は、FW6とプラントネットワーク100との間の接続線にも接続される。
【0013】
ここで、プラントネットワーク100は、点線で囲んだ部分には、近年、Windows(登録商標)を搭載した装置やオープンな技術が導入されてきているので、セキュリティに係るリスクが発生している。
このセキュリティに係るリスクについて、IDS5により侵入検知することによりプラントネットワークのセキュリティを確保している。
【0014】
IDS5は、いわゆる侵入検知システムであって従来の不正通信検出システムを構成するものである。IDS5は、プラントネットワーク100を監視して不正なトラフィックを検出することにより、プラントネットワーク100のセキュリティを確保する。
【0015】
より具体的には、IDS5がシグネチャ型である場合には、IDS5はプラントネットワーク100とFW6間で送受信されるパケットを取得し、取得したパケットを予め記憶されている不正パケットの情報(以下、単に、シグネチャと呼ぶ。)と照合する。IDS5は、パケットの内容とシグネチャとが一致するときは不正なパケットであるものとして通信を遮断する。
【0016】
また、IDS5がアノマリ型である場合には、IDS5は統計的な手法で予め正常状態が定義されており、現在の状態が予め定義されている正常状態から逸脱した場合に異常であると判断して不正パケットの通過を遮断する。
【0017】
この結果、従来のプラントネットワークにおける不正通信検出システムは、シグネチャ型(或いは、アノマリ型)のIDSを介してインターネット等の汎用のネットワークに接続することにより、不正なパケットの侵入を検知してこれを遮断することが可能になる。
【0018】
たとえば、従来のプラントネットワークにおける不正通信検出システムに関連する先行技術文献として下記の特許文献1がある。
【先行技術文献】
【特許文献】
【0019】
【特許文献1】特開2005−128784号公報
【発明の概要】
【発明が解決しようとする課題】
【0020】
従来のプラントネットワークにおける不正通信検出システムでは、サポート切れのアプリケーションやOS(Operation System)が混在した環境であることが多いため、攻撃トラフィック(不正トラフィック)が流れた場合の影響はイントラネットに比べて大きいという問題点があった。
【0021】
また攻撃トラフィック(不正トラフィック)により、制御バスネットワークに接続するフィールド機器の動作に影響を与えることもあり、プラントを最適に運転させることができなくなってしまうという問題点もあった。
【0022】
また、プラントネットワークに接続される機器に脆弱性が発見され、当該機器が備えるソフトウェア等のセキュリティパッチが入手可能になったとしても、予定外のプラント運転の停止、プロセス制御システムの停止は、生産計画に影響するなどの理由で、すぐにシステムを停止してパッチなどの適用ができない場合が多いという問題点もあった。
【0023】
これらの問題点に対しては、上述のようにIDSでトラフィックを監視し、または、FWのログを解析してプラントネットワークを監視するものが提案されているが、以下の問題点(A)〜(C)があった。
【0024】
(A)IDSによる監視では、攻撃トラフィック(不正トラフィック)がプラントネットワーク上を流れた後にのみ攻撃を検知できるだけであり、制御バスネットワークに接続するフィールド機器の動作に影響を与えてしまうことがあるという問題点があった。
つまり、プラントネットワークでは、攻撃トラフィックが流れてしまうと被害が大きくなるので、事前に検知のできないIDSによる監視では不十分であるという問題点があった。
【0025】
(B)IDSによる監視では、既知の攻撃しか検出できないので、新たな攻撃パターンによる攻撃トラフィック(不正トラフィック)を検知できないという問題点があった。
【0026】
(C)FWのログの監視には特殊なスキルが必要であるという問題点、リアルタイムにトラフィックを監視することは困難であるという問題点もあった。
【0027】
本発明は、このような問題点を解決するものであり、その目的は、FW(ファイアウォール)のログ解析やIDS(侵入検出システム)の設置、運用に頼らずに、プラントネットワーク内でセキュリティの脅威となりうる不正トラフィック(ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など)やその予兆を検出できる不正通信検出システムを実現することにある。
【課題を解決するための手段】
【0028】
上記目的を達成するために、本発明のうち請求項1に記載の発明は、
プラントネットワークを伝播するパケットをミラーリングにより捕捉して不正な通信を検出する不正通信検出システムにおいて、
前記プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、
前記補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、
前記セッション判定分離部により生成された前記セッション情報を前記セッションホワイトリストと比較し、前記セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第1の不正通信検出手段を備えたことを特徴とする不正通信検出システムである。
【0029】
請求項2記載の発明は、請求項1に記載の不正通信検出システムにおいて、
前記記憶手段が、
前記プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、
前記セッション判定分離部が、
前記補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、
前記セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、
生成された前記トラフィックパターン情報を前記トラフィックパターンホワイトリストと比較し、前記トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第2の不正通信検出手段を備えたことを特徴とする。
【0030】
請求項3記載の発明は、請求項1または2に記載の不正通信検出システムにおいて、
前記セッション判定分離部が、
前記補足されたパケットに基づき、過去に成立したセッションの実績情報を示すセッション特徴情報を生成し、
このセッション特徴情報に基づき前記セッションホワイトリストを生成するホワイトリスト生成手段を備えたことを特徴とする。
【0031】
請求項4記載の発明は、請求項1〜3のいずれかに記載の不正通信検出システムにおいて、
前記セッション判定分離部は、
前記補足されたパケットを時系列に複数のメモリブロックに記憶するセッション検出用ワークメモリと、
前記セッションが成立しているパケットを時系列に複数のメモリブロックに記憶するセッション情報用メモリと、
前記補足されたパケットに対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリの最古のメモリブロック内に記憶されるパケットの中から検出されると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記して最新のセッション検出用ワークメモリのメモリブロックに記憶するデータ処理手段と、
対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットについて、前記セッション情報用メモリに同パケットにセッションが成立した旨を示す成立情報が付記されて記録されているときは、セッションが成立した実績があるものと判定して当該セッションを前記セッション情報に記憶すると共に、このパケットを前記セッション情報用メモリの最新のメモリブロックに記憶する定期処理手段を備えたことを特徴とする。
【0032】
請求項5記載の発明は、請求項4に記載の不正通信検出システムにおいて、
前記セッションが不成立であるパケットを記憶する待ち合わせ用メモリを備え、前記定期処理手段が、対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットであって、前記セッション情報用メモリにおいても同パケットにセッションが成立した旨を示す成立情報が付記されていないパケットは、セッションが成立していないパケットと判定し前記セッション不成立パケット情報に記憶すると共に、このパケットを前記待ち合わせ用メモリに記憶することを特徴とする。
【発明の効果】
【0033】
本発明によれば、プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、セッション判定分離部により生成されたセッション情報をセッションホワイトリストと比較し、セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第1の不正通信検出手段を備えたことにより、FW(ファイアウォール)のログ解析やIDS(侵入検出システム)の設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック(ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など)やその予兆を検出できる点で有効である。
【0034】
また請求項2の発明によれば、記憶手段が、プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、セッション判定分離部が、補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、生成されたトラフィックパターン情報をトラフィックパターンホワイトリストと比較し、トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第2の不正通信検出手段を備えたことにより、UDPのようなセッション成立に際して、応答パケットの送信を不要とするようなプロトコルによる通信であっても、FWのログ解析やIDSの設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック(ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など)やその予兆を検出できる点で有効である。
【0035】
また、本発明によれば、本発明の不正通信検出システムは、上述のような構成とすることにより、不正トラフィックをリアルタイムに検知できるだけでなく、ホワイトリストに適合しないパケット(不正通信)をリアルタイムに検知できるためセキュリティの脅威の予兆が検知できる点で有効である。
また、本発明の不正通信検出システムは、上述のような構成とすることにより、プラントネットワークにワームやボットウィルスに感染してしまった場合に(ネットワーク経由の場合も、ネットワーク経由ではなく、USBメモリ経由の場合であっても)、ワームやボットの活動による不正なトラフィックの予兆を迅速に検知できる点で有効である。
【図面の簡単な説明】
【0036】
【図1】本発明の不正通信検出システムの一実施例の構成説明図である。
【図2】図1の検出装置の構成説明図である。
【図3】図2のセッション判定分離部の構成ブロック図である。
【図4】本発明の不正通信検出装置のセッション判定分離部の動作説明図である。
【図5】本発明の不正通信検出装置の動作説明図である。
【図6】従来のプラントネットワークにおける不正通信検出システムの一実施例の構成説明図である。
【発明を実施するための形態】
【0037】
<第1の実施例>
本発明は、プラントネットワークのデフォルトゲートウェイには、ワームやウイルス、ボットの通信、および、それらの予兆の通信が届くため、デフォルトゲートウェイのトラフィックを監視すれば、これらのセキュリティの脅威を発見できることに着目したものである。
(構成の概要)
以下、図面を参照して、本発明を詳細に説明する。図1は本発明の不正通信検出システムの一実施例の構成説明図であり、図6と共通する部分には同一の符号を付けて適宜説明を省略する。
【0038】
図6との相違点は、主に、記憶手段がプラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶し、セッション判定分離部が補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成し、第1の不正通信検出手段がセッション判定分離部により生成されたセッション情報をセッションホワイトリストと比較し、セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する点が相違する。
【0039】
図1において、本発明の不正通信検出システム1は、主に、イントラネット300と接続され、FW6とプラントネットワーク100との間の接続線にも接続される検出装置50から構成される。本発明の不正通信検出システム1は、イントラネット300に接続され、検出装置50の検出結果を表示するコンソール装置60とからも構成されるものでもよい。
【0040】
検出装置50は、プラントネットワーク100を監視して不正なトラフィックを検出し、セキュリティの脅威を発見、脅威を発見した場合には、イベントとしてコンソール装置60に通知することにより、プラントネットワーク100のセキュリティを確保する。
【0041】
なお、本発明の不正通信検出システムは、検出装置50を設置することで、プラントネットワーク100に影響を与えたり、攻撃者に検出装置50を踏み台にされてプラントネットワーク100を攻撃されたりすることを避けるため、以下の項目を考慮した構成にしている。
(イ)デフォルトゲートウェイにあるFW(または、レイヤ3スイッチ)のプラントネットワーク100側のトラフィックをミラーしてから、キャプチャする。
(ロ)プラントネットワーク100に直接接続させない
【0042】
具体的には、検出装置50は、特に図示しないが、FW6とプラントネットワーク100とを接続するスイッチ(図示せず)からミラーリングによりプラントネットワークを伝播するパケットをキャプチャ(捕捉)して不正な通信を検出する。
具体的には、検出装置50は、スイッチ(図示せず)のポートの1つを、指定したポート(ソースポート)に流れるパケットをコピーして出力するミラーポートとして設定し、そのミラーポートに検出装置の通信手段(監視用インタフェースなど)を接続し、プラントネットワーク300を伝播するパケットをキャプチャする。
【0043】
図2は図1の検出装置の構成説明図である。
図2において、検出装置50は、プラントネットワーク100で発生しうるセッションのリストであるセッションホワイトリスト51aを予め記憶する記憶手段51と、FW6とプラントネットワーク100とを接続するスイッチ(図示せず)からミラーリングによりプラントネットワーク100を伝播するパケットを補足するパケットキャプチャ手段52と、パケットキャプチャ手段52により補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示す「セッション情報」を生成するセッション判定分離部53と、セッション判定分離部53により生成された「セッション情報」をセッションホワイトリスト51aと比較し、セッションホワイトリスト51a中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第1の不正通信検出手段54とから構成される。
【0044】
ここで、セッションホワイトリスト51aの例を以下の表1に示す。
【表1】

【0045】
また、記憶手段51が、プラントネットワーク100で発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリスト51bを予め記憶するものでもよい。ここで、トラフィックパターンホワイトリスト51bの例を以下の表2に示す。このトラフィックパターンホワイトリスト51bは、一定期間、本システムを稼動させ、トラフィックパターンを集めて作成するものでもよい。
【0046】
【表2】

【0047】
トラフィックパターンは後述の、パケットの伝播の仕方の違いにより分類された、”Normal”、”Port_Scan”、”Port_Scan2”、Network_Scan”、”Network_Scan2”及び”Network_Scan3”の6つのタイプのパターンから成るものでよい。
【0048】
また、セッション判定分離部53が、補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示す「セッション不成立パケット情報」を生成するものでもよい。
また、セッション判定分離部53が、補足されたパケットに基づいて、過去に成立したセッションの実績情報を示す「セッション特徴情報」を生成するものでもよい。
【0049】
セッション判定分離部53は、セッション判定分離部53から補足したパケットを取得し、または記憶手段52からセッション判定分離部53が補足したパケットを取得する。
そして、セッション判定分離装置53は、取得したパケットに基づき、以下の表3に示した「セッション情報」、「セッション特徴情報」、「セッション不成立パケット情報」の3種類の情報のうち少なくともいずれかの情報を抽出し生成するものでよい。
【0050】
【表3】

【0051】
また、検出装置50は、セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段55と、トラフィックパターン判定手段55により生成されたトラフィックパターン情報をトラフィックパターンホワイトリスト51bと比較し、トラフィックパターンホワイトリスト51b中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第2の不正通信検出手段56からも構成されるものでもよい。
【0052】
パケットキャプチャ手段52は、補足したパケットの内容を調べ、セッションの組を見つけるために必要なパケット情報を抽出する。パケットキャプチャ手段52は、たとえば、IPv4のTCP/UDP/ICMPの場合は、以下の表4に示す情報を抽出する。
そして、抽出した情報または補足したパケットをセッション判定分離部53に送信する、または記憶手段52に記憶させる。
【0053】
【表4】

【0054】
第1の不正通信判定手段54は、セッション判定分離部53が生成したセッション情報を取得して、記憶手段51に記憶されるセッションホワイトリスト51aと比較し、比較結果(たとえば検出された不正通信の情報)を通信手段を介してコンソール装置60に送信する。第1の不正通信判定手段54から送信される比較結果(たとえば検出された不正通信の情報)は、コンソール装置60の表示手段(モニタ)等に表示される。
【0055】
トラフィックパターン判定手段55は、セッション判定分離部53が生成したセッション不成立パケット情報を取得して、これら取得したパケットに基づきトラフィックパターンを生成する。判定・変換のアルゴリズムは、たとえば関連特許、特許出願(特許4479459号、特許4415380号、特開2007−221311号公報)に記載のものを使用するものでよい。
【0056】
具体的には、トラフィックパターン判定手段55は、捕捉したパケットの送信先ポート、タイプまたはこれらの一方若しくは両方の組み合わせによるトラフィックパターン(分類)を自動する。
たとえば、トラフィックパターン判定手段55は、受信(捕捉)したパケットの伝播の仕方の違いにより、”Normal”、”Port_Scan”、”Port_Scan2”、Network_Scan”、”Network_Scan2”及び”Network_Scan3”の6つのタイプに分類する。
【0057】
トラフィックパターン判定手段55は、たとえば、セッション不成立パケットの送信元ポート番号の種類数と送信先ポート番号の種類数とが同じであり、尚且つ、送信先ネットワークのアドレスの種類数と送信先ホストのアドレス種類数とが同じである場合にタイプ”Normal”に分類する。
また、トラフィックパターン判定手段55は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも多く、尚且つ、送信先ネットワークのアドレスの種類数と送信先ホストのアドレス種類数とが同じである場合にタイプ”Port_Scan”に分類する。
また、トラフィックパターン判定手段55は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも少なく、尚且つ、送信先ネットワークのアドレスの種類数と送信先ホストのアドレス種類数とが同じである場合にタイプ”Port_Scan2”に分類する。
【0058】
また、トラフィックパターン判定手段55は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも多く、尚且つ、送信先ネットワークのアドレスの種類数の方が送信先ホストのアドレス種類数よりも少ない場合にタイプ”Network_Scan”に分類する。
また、トラフィックパターン判定手段55は、セッション不成立パケットの送信元ポート番号の種類数と送信先ポート番号の種類数と同じであり、尚且つ、送信先ネットワークのアドレスの種類数の方が送信先ホストのアドレス種類数よりも少ない場合にタイプ”Network_Scan2”に分類する。
また、トラフィックパターン判定手段55は、セッション不成立パケットの送信元ポート番号の種類数の方が送信先ポート番号の種類数よりも少なく、尚且つ、送信先ネットワークのアドレスの種類数の方が送信先ホストのアドレス種類数よりも少ない場合にタイプ”Network_Scan3”に分類する。
【0059】
第2の不正通信判定手段56は、トラフィックパターン判定手段55が生成したトラフィックパターン情報を取得して、記憶手段51に記憶されるトラフィックパターンセッションホワイトリスト51bと比較し、比較結果(たとえば検出された不正通信の情報)を通信手段を介してコンソール装置60に送信する。第1の不正通信判定手段54から送信される比較結果は、コンソール装置60の表示手段(モニタ)等に表示される。
【0060】
また、セッション判定分離部53は、補足されたパケットに基づき、過去に成立したセッションの実績情報を示すセッション特徴情報を生成するものでもよい。このセッション特徴情報に基づきセッションホワイトリスト51bを生成するホワイトリスト生成手段を備えるものでもよい。
【0061】
なお、検出装置50は、特に図示しないが、プラントネットワーク100を介してパケット通信を行う第1の通信手段と、イントラネット300を介してパケット通信を行う第2の通信手段と、この検出装置50全体を制御し、不正通信を検出するCPUなどの演算制御手段を有する。
【0062】
また、記憶手段51は、たとえばRAM(Random Access Memory)やROM(ROM - Read Only Member)などであり、主にOS(Operating System)や、検出装置50として動作させるためのプログラムやアプリケーション、これらプログラムなどの実行時に使用されるデータ、コンソール装置60等に到達するまでの経路情報(IPアドレス、MACアドレス等のネットワーク情報)などの各種情報を格納する。
【0063】
演算制御手段は、記憶手段51に格納されているOSなどを起動して、このOS上で格納されたプログラムを読み出し実行することにより各機器または各部全体を制御し、各機器または各部固有の動作を行う。このとき記憶手段は、演算制御手段によって実行されるプログラムやアプリケーションをプログラム格納エリアに展開し、入力されたデータや、プログラムやアプリケーションの実行時に生じる処理結果などのデータをワークエリアに一時的に記憶するものであってもよい。
【0064】
図3は図2のセッション判定分離部の構成ブロック図である。
図3において、セッション判定分離部53は、補足されたパケット(またはパケットキャプチャ手段52により抽出されたパケット情報)を時系列に複数のメモリブロックに記憶するセッション検出用ワークメモリ53aと、セッションが成立しているパケット(またはパケットキャプチャ手段52により抽出されたパケット情報)を時系列に複数のメモリブロックに所定期間分記憶するセッション情報用メモリ53bと、セッションが不成立であるパケット(またはパケットキャプチャ手段52により抽出されたパケット情報)を所定期間分記憶する待ち合わせ用メモリ53cから構成される。
【0065】
セッション検出用ワークメモリ53aは、セッションが成立するパケットの組を見つけるために使用するメモリである。
セッション検出用ワークメモリ53aは、最古のメモリブロックから最新のメモリブロックまで、定期処理手段53eによる定期処理の間隔と同じ時間幅の単位のブロックでパケットに関する情報を記憶し、管理する。
【0066】
セッション情報用メモリ53bは、セッションが成立したパケットに関して、セッション情報を一定期間保存しておくメモリである。
セッション情報用メモリ53bは、最古メモリブロックから最新メモリブロックまで、定期処理手段53eによる定期処理の間隔と同じ幅の単位のブロックでパケットに関する情報を記憶し、管理する。
【0067】
待ち合わせ用メモリ53cは、セッションが成立しなかったパケットを、パケットの時間順に出力するために必要な期間保持するためのメモリである。
また、待ち合わせ用メモリ53cは、最古メモリブロックから最新メモリブロックまで、定期処理手段53eによる定期処理の間隔と同じ幅の単位のブロックでパケットに関する情報を記憶し、管理する。
【0068】
ここで、セッションが成立するということは、通信相手が存在する(通信が一方通行ではなく、一定期間内に、双方向で行われる)ことを意味するものとする。セッション判定分離部53はセッションの成立の成否についての条件情報を予め有する。ここで、セッション成立しているものしてと判断するための条件例を以下に示す。
【0069】
(X)IPv4/TCP(Transmission Control Protocol)による通信の場合
ホストAから、ホストBに対して、SYN(Synchronize)パケットが送られたとき、一定期間内に、ホストBからホストAに、対応するSYN/ACK(ACKnowledgement)パケットが返る場合に、ホストAとホストBを「組」とする。
ここで、「対応する」とは、「送信元ポート番号」、「送信先ポート番号」、「Sequence Number」、「Acknowledgement Number」などに矛盾が無いことを意味する。
【0070】
(Y)IPv4/UDP(User Datagram Protocol)による通信の場合
ホストAから、ホストBに対して、UDPパケットが送られたとき、一定期間内に、ホストBからホストAに、対応するUDPパケットが返る場合に、ホストAとホストBを「組」とする。
ここで、「対応する」とは、「送信元ポート番号」、「送信先ポート番号」に矛盾がないことを意味する。
【0071】
(Z)IPv4/ICMP(Internet Control Message Protocol)による通信の場合
ホストAから、ホストBに対して、「ICMP_ECHO」、 「ICMP_TIMESTAMP」、「ICMP_INFO_REQUEST」または、「ICMP_ADDRESS」が送信されたとき、一定期間内に、ホストBから、ホストAに、それぞれ、「ICMP_ECHOREPLY」、「ICMP_TIMESTAMPREPLY」、「ICMP_INFO_REPLY」または 、「ICMP_ADDRESSREPLY」が返信される場合に、ホストAとホストBを「組」とする。
【0072】
また、セッション判定分離部53は、データ処理手段53d、定期処理手段53e、定期的に時刻イベントまたはトリガを発生するタイマー手段53f、FIFO(リングバッファメモリ)であり、パケットキャプチャ手段52から受信するパケットの時系列のパケット情報やタイマーからの時刻イベントまたはトリガを格納するタスクキュー手段53g、タスクキュー手段53gを定期的に監視し、タスクキュー内に何らかのタスクがあった場合に、タスクの内容に応じた処理を起動するタスク管理手段53hからも構成される。
【0073】
データ処理手段53dは、補足されたパケットに対応するセッションの成立相手となるパケットがセッション検出用ワークメモリ53aの最古のメモリブロック内に記憶されるパケットの中から検出されると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記して(セッションが成立したという印をつけて)セッション検出用ワークメモリ53aの最新のメモリブロックに記憶する。
【0074】
定期処理手段53eは、対応するセッションの成立相手となるパケットがセッション検出用ワークメモリに記憶されていない補足されたパケットについて、セッション情報用メモリ53bに同パケット(同種のパケット、パケットキャプチャ手段52により抽出された同種のパケット情報)にセッションが成立した旨を示す成立情報が付記されて記録されているときは、セッションが成立した実績があるものと判定して当該セッションに係わるセッション情報を生成すると共に、このパケットをセッション情報用メモリ53bの最新のメモリブロックに記憶する。
【0075】
定期処理手段53eが生成するセッション情報は、セッション開始時刻、セッションの長さ、セッションの向きとプロトコル情報、セッションのステータス(通信中/終了)のうち少なくともいずれかを含むものである。
【0076】
定期処理手段53eはセッション情報用メモリ53bの最古のメモリブロック内のパケットに関する情報を取り出し、「送信元IPアドレス、送信先IPアドレス、サービス」の組がユニークになるように加工して、セッション特徴情報を生成する。
【0077】
また、定期処理手段53eは、対応するセッションの成立相手となるパケットがセッション検出用ワークメモリ53aに記憶されていない補足されたパケットであって、セッション情報用メモリ53bにおいても同パケット(同種のパケット)にセッションが成立した旨を示す成立情報が付記されていないパケットは、セッションが成立していないパケットと判定しセッション不成立パケット情報に記憶すると共に、このパケットを待ち合わせ用メモリ53cに記憶する。
【0078】
(動作の説明)
このような構成で、本発明の不正通信検出装置は次の動作(1)〜(3)、(イ−1)〜(イ−2)、(ロー1)〜(ロー6)、(ハ−1)〜(ハ−3)、(ニ−1)〜(ニ−5)を行う。
(1)パケットキャプチャ手段52は、トラフィックをキャプチャするたびに、パケット情報を抽出し、タスクキュー手段53gに入力する。
(2)タイマー53fは、時刻情報を定期的にタスクキュー手段53gに入力する。
【0079】
(3)セッション判定分離部53は、「(イ)データ処理」および「(ロ)定期処理」を実行する。ここで、タスク管理手段53hは、タスクキュー手段53gを監視して、タスクがある場合は、タスクを一つ取り出し、そのタスクがパケット情報の場合には「(イ)データ処理」を実行し、時刻イベントの場合には「(ロ)定期処理」を実行する。
【0080】
図4は、本発明の不正通信検出装置のセッション判定分離部の動作説明図、図5は本発明の不正通信検出装置の動作説明図である。以下、図4、図5中の(イ−1)〜(イ−2)、(ロ−1)〜(ロ−5)、(ハ−1)〜(ハ−3)、(ニ−1)〜(ニ−5)の各動作処理を示す処理番号にあわせて説明する。ここで(イ−1)〜(イ−2)は「データ処理」を、(ロ−1)〜(ロ−5)は「定期処理」の動作を説明している。
【0081】
(イ)データ処理について
(イ−1)
データ処理手段53dは、タスクキュー手段53gに格納されたパケット(パケットキャプチャ手段52により補足されたパケット)に対応するセッションの成立相手となるパケットを、セッション検出用ワークメモリ53aの最古のメモリブロックから新しいメモリブロックの順番に各メモリブロック内に記憶されるパケットの中から検索する。
【0082】
(イ−2)
データ処理手段53dは、補足されたパケットに関して、「セッションの成立相手となるパケット」を検出すると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記する(セッションが成立したという印をつける)。
また、データ処理手段53dは、セッション検出用ワークメモリ53aの最新のメモリブロックにセッション成立した旨を示す成立情報を付記された当該キャプチャされたパケットに関する情報を記憶(追加)する。
【0083】
(ロ)定期処理について
(ロ−1)
定期処理手段53eは、セッション検出用ワークメモリ53aの最古のメモリブロックから、メモリブロック内に含まれる全てのパケットに関する情報を取得する。
定期処理手段53eは、各パケットの情報を検査して、セッションが成立した旨を示す情報が付記されているかどうか(セッションが成立したという印があるかどうか)を確認する。定期処理手段53eは、セッションが成立した旨を示す情報が付記されている(セッションが成立した印がある)パケットは、「セッションが成立した」ものと判定する。
【0084】
(ロ−2)
定期処理手段53eは、セッションが成立した旨を示す情報が付記されていない(セッションが成立した印がない)パケットについては、過去一定期間内にセッションが成立した記録があるかどうかを確認するために、セッション情報用メモリを検索する(ロ−2A)。
定期処理手段53eは、セッションが成立した記録を検出できると、このパケットは「セッションが成立した」ものとして判定する。
【0085】
定期処理手段53eは、記録がないパケットは、「セッションが成立しない」と判定して、データが時間順になるように注意して、待ち合わせ用メモリ53c内の適切なブロックにパケットに関する情報を書き込む(ロ−2B)。
【0086】
(ロ−3)
定期処理手段53eは、「セッションが成立した」と判定されたパケットについては、当該セッションをセッション情報として生成する(ロー3A)と共に、このセッション情報をセッション情報用メモリ53bの最新のメモリブロックに書き込む(ロ−3B)。
【0087】
(ロ−4)
定期処理手段53eは、セッション情報用メモリ53bの最古のメモリブロック内のパケットに関する情報を取り出し(ロ−4A)、「送信元IPアドレス、送信先IPアドレス、サービス」の組がユニークになるように加工して、セッション特徴情報を生成する(ロ−4B)。
【0088】
(ロ−5)
定期処理手段53eは、待ち合わせ用メモリ53cの最古のメモリブロックからブロック内のパケットに関する情報を取り出し(ロ−5A)、時刻順になるように並べ替えて「セッション不成立パケット情報」として生成する(ロ−5B)。
【0089】
定期処理が終了すると、第1の不正通信判定手段54、トラフィックパターン判定手段55、第2の不正通信判定手段56がそれぞれ以下の動作(ハ−1)〜(ハ−3)、(ニ−1)〜(ニ−5)を行う。
【0090】
(ハ−1)
定期処理後、第1の不正通信判定手段54は、定期処理手段53eが生成した「セッション情報」を取得する。
(ハ−2)
第1の不正通信判定手段54は、セッション判定分離部53が生成したセッション情報に基づいて、記憶手段51に記憶されるセッションホワイトリスト51aと比較し、セッションホワイトリスト51a中のいずれのセッションにも適合しないときは当該セッション情報に係る通信を不正な通信として検出する。
(ハ−3)
第1の不正通信判定手段54は、不正な通信を検出すると、検出結果をコンソール装置60に送信する。コンソール装置60は、第1の不正通信判定手段54から受信した検出結果に基づき、不正通信に係る情報を表示する。
【0091】
(ニ−1)
定期処理後、トラフィックパターン判定手段55は、定期処理手段53eが生成した「セッション不成立パケット情報」を取得する。
(ニ−2)
トラフィックパターン判定手段55は、定期処理手段53eが生成した「セッション不成立パケット情報」に基づいて、トラフィックパターン情報を生成する。
(ニ−3)
第2の不正通信判定手段56は、トラフィックパターン判定手段55が生成したトラフィックパターン情報を取得する。
(ニ−4)
第2の不正通信判定手段56は、トラフィックパターン判定手段55により生成されたトラフィックパターン情報をトラフィックパターンホワイトリスト51bと比較し、トラフィックパターンホワイトリスト51b中のいずれのトラフィックパターンにも適合しないときは当該トラフィッパターン情報に係る通信を不正な通信として検出する。
(ニ−5)
第2の不正通信判定手段56は、不正な通信を検出すると検出結果をコンソール装置60に送信する。コンソール装置60は、第2の不正通信判定手段56から受信した検出結果に基づき、不正通信に係る情報を表示する。
【0092】
この結果、本発明の不正通信検出システムは、プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、セッション判定分離部により生成されたセッション情報をセッションホワイトリストと比較し、セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第1の不正通信検出手段を備えたことにより、FW(ファイアウォール)のログ解析やIDS(侵入検出システム)の設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック(ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など)やその予兆を検出できる。
【0093】
また、本発明の不正通信検出システムは、記憶手段が、プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、セッション判定分離部が、補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、生成されたトラフィックパターン情報をトラフィックパターンホワイトリストと比較し、トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第2の不正通信検出手段を備えたことにより、UDPのようなセッション成立に際して、応答パケットの送信を不要とするようなプロトコルによる通信であっても、FWのログ解析やIDSの設置、運用に頼らずにプラントネットワーク内でセキュリティの脅威となりうる不正トラフィック(ワーム、ボット、ウイルスの通信、設定ミス、人為的な攻撃など)やその予兆を検出できる。
【0094】
つまり、本発明の不正通信検出システムは、上述のような構成とすることにより、不正トラフィックをリアルタイムに検知できるだけでなく、ホワイトリストに適合しないパケット(不正通信)をリアルタイムに検知できるため、既知の攻撃だけではなくセキュリティの脅威の予兆が検知できる点で有効である。このため攻撃トラフィックが流れる前にセキュリティ脅威の予兆を検知できるのでフィールド機器の動作への影響が比較的少なくなる点で有効である。
また、本発明の不正通信検出システムは、上述のような構成とすることにより、プラントネットワークにワームやボットウィルスに感染してしまった場合に(ネットワーク経由の場合も、ネットワーク経由ではなく、USBメモリ経由の場合であっても)、ワームやボットの活動による不正なトラフィックの予兆を迅速に検知できる点で有効である。
【0095】
<その他の構成例>
なお、本発明の不正通信検出システムは、上述の第1の実施例の構成に加えて、記憶手段51がブラックリストを記憶し、第3の不正通信判定手段57が第1または第2の不正通信判定手段が不正な通信を検知した後に、さらにブラックリストと比較して、不正トラフィックが発生した原因に関連する情報をコンソール装置60に表示するものでもよい。
ここで、ブラックリストとは、ボットの通信先だと知られているような、問題のある通信先のリストや、既知のワームのトラフィックパターンのリストを指す。
これにより、不正トラフィックの発生原因を除去するための対応を支援できる点、対応のプライオリティ付けをできる点で有効である。
【符号の説明】
【0096】
50 検出装置
51 記憶手段
52 パケットキャプチャ手段
53 セッション判定分離部
53a セッション検出用ワークメモリ
53b セッション情報用メモリ
53c 待ち合わせ用メモリ
53d データ処理手段
53e 定期処理手段
54 第1の不正通信判定手段
55 トラフィックパターン判定手段
56 第2の不正通信判定手段
100 プラントネットワーク

【特許請求の範囲】
【請求項1】
プラントネットワークを伝播するパケットをミラーリングにより捕捉して不正な通信を検出する不正通信検出システムにおいて、
前記プラントネットワークで発生しうるセッションのリストであるセッションホワイトリストを予め記憶する記憶手段と、
前記補足されたパケットに基づいてセッション成立の成否を判定し、成立しているセッションを示すセッション情報を生成するセッション判定分離部と、
前記セッション判定分離部により生成された前記セッション情報を前記セッションホワイトリストと比較し、前記セッションホワイトリスト中のいずれのセッションにも適合しないときは当該セッションに係る通信を不正な通信として検出する第1の不正通信検出手段を備えたことを特徴とする不正通信検出システム。
【請求項2】
前記記憶手段が、
前記プラントネットワークで発生しうるトラフィックパターンのリストであるトラフィックパターンホワイトリストを予め記憶し、
前記セッション判定分離部が、
前記補足されたパケットに基づいてセッション成立の成否を判定し、セッションが成立していないパケットを示すセッション不成立パケット情報を生成し、
前記セッション不成立パケット情報に基づき、セッション不成立のパケットのトラフィックパターンを示すトラフィックパターン情報を生成するトラフィックパターン判定手段と、
生成された前記トラフィックパターン情報を前記トラフィックパターンホワイトリストと比較し、前記トラフィックパターンホワイトリスト中のいずれのトラフィックパターンにも適合しないときは当該トラフィックパターン情報に係る通信を不正な通信として検出する第2の不正通信検出手段を備えたことを特徴とする請求項1に記載の不正通信検出システム。
【請求項3】
前記セッション判定分離部が、
前記補足されたパケットに基づき、過去に成立したセッションの実績情報を示すセッション特徴情報を生成し、
このセッション特徴情報に基づき前記セッションホワイトリストを生成するホワイトリスト生成手段を備えたことを特徴とする請求項1または2記載の不正通信検出システム。
【請求項4】
前記セッション判定分離部は、
前記補足されたパケットを時系列に複数のメモリブロックに記憶するセッション検出用ワークメモリと、
前記セッションが成立しているパケットを時系列に複数のメモリブロックに記憶するセッション情報用メモリと、
前記補足されたパケットに対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリの最古のメモリブロック内に記憶されるパケットの中から検出されると、当該補足されたパケットにセッション成立した旨を示す成立情報を付記して最新のセッション検出用ワークメモリのメモリブロックに記憶するデータ処理手段と、
対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットについて、前記セッション情報用メモリに同パケットにセッションが成立した旨を示す成立情報が付記されて記録されているときは、セッションが成立した実績があるものと判定して当該セッションに基づきセッション情報を生成すると共に、このパケットを前記セッション情報用メモリの最新のメモリブロックに記憶する定期処理手段を備えたことを特徴とする請求項1〜3のいずれかに記載の不正通信検出システム。
【請求項5】
前記セッション判定分離部は、前記セッションが不成立であるパケットを記憶する待ち合わせ用メモリを備え、
前記定期処理手段が、対応するセッションの成立相手となるパケットが前記セッション検出用ワークメモリに記憶されていない前記補足されたパケットであって、前記セッション情報用メモリにおいても同パケットにセッションが成立した旨を示す成立情報が付記されていないパケットは、セッションが成立していないパケットと判定し、このパケットを前記待ち合わせ用メモリに記憶すると共に当該パケットに基づき前記セッション不成立パケット情報を生成することを特徴とする請求項4に記載の不正通信検出システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−34273(P2012−34273A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−173576(P2010−173576)
【出願日】平成22年8月2日(2010.8.2)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】