(57)【特許請求の範囲】
【請求項１】
制御システム内で行われる不正な通信を検知する検知装置を備える不正通信検知システムであって、
前記検知装置は、
不正通信の有無を判定するための判定リストを格納し、
前記制御システム内を流れる通信パケットを受信し、
前記判定リスト中の参照データと、前記通信パケットに関する受信データとが一致するか否かを判定し、
前記判定リスト中の前記参照データと、前記通信パケットに関する前記受信データとが一致しない場合、前記判定リスト中の参照データと前記通信パケットに関する前記受信データとの類似度を算出し、類似度が所定の条件を満たすか否かを判定し、
前記類似度が前記所定の条件を満たさないと判定した場合、前記通信パケットが不正な通信パケットであると判断する、ことを特徴とする不正通信検知システム。
【請求項２】
前記検知装置は、
前記類似度が前記所定の条件を満たすと判定した場合、前記通信パケットに関し、前記判定リストに追加するための前記通信パケットに関する前記受信データを、新たな参照データとして前記判定リストに追加する、ことを特徴とする請求項１に記載の不正通信検知システム。
【請求項３】
前記検知装置は、
前記制御システムの制御装置により制御されるデバイスの挙動が正当な挙動であるか否かを判定するための判定パターンを格納し、
前記類似度が前記所定の条件を満たすと判定した場合、前記通信パケットに基づき前記デバイスを動作させた際に得られる観測値が、前記判定パターン中の前記デバイスの正当な挙動を示す正当観測パターンを満たすか否かを判定し、
前記観測値が前記正当観測パターンを満たすと判定した場合、前記通信パケットに関し、前記判定リストに追加するための前記通信パケットに関するレスポンスデータを、新たな参照データとして前記判定リストに追加し、
前記観測値が前記正当観測パターンを満たさないと判定した場合、前記通信パケットに関し、アラートを生成する、ことを特徴とする請求項１又は請求項２に記載の不正通信検知システム。
【請求項４】
前記検知装置は、
前記観測値が前記正当観測パターンを満たすと判定された場合、前記観測値に基づき、前記正当観測パターンを更新する、ことを特徴とする請求項３に記載の不正通信検知システム。
【請求項５】
前記検知装置は、
前記観測値が前記正当観測パターンを満たすと判定された場合、前記通信パケットに関し、前記判定リストに追加するための前記通信パケットに関する前記レスポンスデータを、前記判定リスト中の複数のエントリのうち、前記通信パケットの前記レスポンスデータに最も類似する前記参照データのエントリに隣接させて、新たなエントリとして前記判定リストに追加する、ことを特徴とする請求項３に記載の不正通信検知システム。
【請求項６】
前記検知装置は、
前記通信パケットに格納されたデータパターンを前記受信データとして前記判定リストを生成する、ことを特徴とする請求項１〜請求項３のいずれか一項に記載の不正通信検知システム。
【請求項７】
前記検知装置は、
前記通信パケットに格納されたデータパターンと、前記データパターンが格納されている前記通信パケット内の領域に関する情報及び／又は前記データパターンの受信周期に関する情報と、を組み合わせて、前記受信データを作成し前記判定リストを生成する、ことを特徴とする請求項１〜請求項３のいずれか一項に記載の不正通信検知システム。
【請求項８】
前記検知装置は、
前記検知装置が試運転モードにあるときに、前記判定リスト及び前記判定パターンを生成し、
前記検知装置が実運転モードにあるときに、前記判定リスト及び前記判定パターンを更新し、前記通信パケットが不正な通信パケットであるか否かを判断する、ことを特徴とする請求項４に記載の不正通信検知システム。
【請求項９】
制御システム内で行われる不正な通信を検知する不正通信検知方法であって、
前記制御システム内を流れる通信パケットを受信し、
不正通信の有無を判定するための判定リスト中の参照データと、前記通信パケットに関する受信データとが一致するか否かを判定し、
前記判定リスト中の前記参照データと、前記通信パケットに関する前記受信データとが一致しない場合、前記判定リスト中の参照データと前記通信パケットに関する前記受信データとの類似度を算出し、類似度が所定の条件を満たすか否かを判定し、
前記類似度が前記所定の条件を満たさないと判定した場合、前記通信パケットが不正な通信パケットであると判断する、ことを特徴とする不正通信検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，制御システム内を流れる通信パケットの正当性を検証し、不正な通信を検知する不正通信検知システム及び不正通信検知方法に関する。
【背景技術】
【０００２】
電力、鉄道、水道、ガスといった社会インフラおよび自動車で利用される制御システムは、センサの情報をもとにバルブ及びアクチュエータといった装置を動作させ、あらかじめ設定されている圧力や温度を保つことが要求される。この動作を実現するためには、コントローラ等の組込み装置において、定期的にセンサからの情報を取得し、状態を確認し、他のコントローラやサーバ等に通知し、必要に応じて制御を行うことが必要となる。このため、制御システムでは周期的に大量の通信が発生し、その通信データをもとに処理を行うことが通例である。
【０００３】
一方、制御システムはこれまで専用ＯＳおよび専用プロトコルを利用しており、インターネット等の外部ネットワークからアクセスできない領域に孤立した状態で設置されている。このため、いわゆるコンピュータウィルスやＤｏＳ攻撃といったサイバー攻撃からは無縁であると考えられてきた。しかしながら、コスト削減のために汎用ＯＳおよび汎用プロトコルを利用するケースが増加しており、効率向上のために情報系システムとの接続も進んできている。また、近年では、制御システムをターゲットとしたコンピュータウィルスが発見されており、制御システムにおいても情報システムと同様にマルウェア等の感染や外部からの不正アクセスを検知する技術が必要となっている。
【０００４】
このような課題に対し、制御システム内のネットワークで発生しうるトラフィックパターンのリストを用いて、通信パケットがリストに適合しない場合は、不正な通信として検知する技術が知られている（たとえば、特許文献１参照）。また、通信パケットと制御システムの物理的な測定値を監視し、測定値と通信パケットを相関させることで、不正な通信パケットを検知する技術が知られている（たとえば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−３４２７３号公報
【特許文献２】特開２０１４−１７９０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、制御システムで利用される組み込み機器は使用可能なリソースに制約があり、制御システム内を流れるすべての正当なパケットパターンを網羅した判定リストを作成するのは困難である。このため、通信パケットに対して、判定リストを用いて通信パケットの検知を行う場合には、誤検知や検知もれが多発する可能性がある。また、すべての通信パケットに対して、制御システムの測定値と相関させる場合には、不正通信検知装置の負荷が高まる可能性がある。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、処理性能に制約がある組込み装置であっても、効果的に制御システム内を流れる通信パケットの誤検知及び検知漏れの低減が可能となる不正通信検知システム及び不正通信検知方法を提供する。
【課題を解決するための手段】
【０００８】
上記目的を達成するため本発明の一実施形態である不正通信検知システムは、  制御システム内で行われる不正な通信を検知する検知装置を備える不正通信検知システムであって、前記検知装置は、不正通信の有無を判定するための判定リストを格納し、前記制御システム内を流れる通信パケットを受信し、前記判定リスト中の参照データと、前記通信パケットに関する受信データとが一致するか否かを判定し、前記判定リスト中の前記参照データと、前記通信パケットに関する前記受信データとが一致しない場合、前記判定リスト中の参照データと前記通信パケットに関する前記受信データとの類似度を算出し、類似度が所定の条件を満たすか否かを判定し、前記類似度が前記所定の条件を満たさないと判定した場合、前記通信パケットが不正な通信パケットであると判断する。
【０００９】
また、本発明の一実施形態である不正通信検知方法は、制御システム内で行われる不正な通信を検知する不正通信検知方法であって、前記制御システム内を流れる通信パケットを受信し、不正通信の有無を判定するための判定リスト中の参照データと、前記通信パケットに関する受信データとが一致するか否かを判定し、前記判定リスト中の前記参照データと、前記通信パケットに関する前記受信データとが一致しない場合、前記判定リスト中の参照データと前記通信パケットに関する前記受信データとの類似度を算出し、類似度が所定の条件を満たすか否かを判定し、前記類似度が前記所定の条件を満たさないと判定した場合、前記通信パケットが不正な通信パケットであると判断する。
【発明の効果】
【００１０】
本発明によれば、処理性能に制約がある組込み装置であっても、制御システム内を流れる通信パケットの誤検知や検知もれの低減が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第一の実施形態に係る制御システム向け不正通信検知システムの構成を例示する図である。
【図２】図１に示す制御装置のハードウェア構成を例示する図である。
【図３】図１に示すネットワーク装置のハードウェア構成を例示する図である。
【図４】図１に示す検知装置及び監視装置のハードウェア構成を例示する図である。
【図５】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、通信パケットの検知を行う処理フローを例示する図である。
【図６】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置を用いて制御装置の間で試運転時等に行われる制御業務の通信パケットを収集する処理フローを例示する図である。
【図７】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、監視装置を用いて制御装置で観測した観測データを収集し、格納する処理フローを例示する図である。
【図８】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、観測値を取得した後に実行する判定パターン生成処理の処理フローを例示する図である。
【図９】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置を用いて制御装置間で送受信される通信パケットの正当性を検証する処理フローを例示する図である。
【図１０】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置を用いて制御装置間で送受信される通信パケットの正当性を検証する処理フローにおける、通信パケットの類似度を算出する処理フローを例示する図である。
【図１１】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置を用いて制御装置間で送受信される通信パケットの正当性を検証する処理フローにおける、通信パケットの有害判定及び判定リスト更新を行う処理の処理フローを例示する図である。
【図１２】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置の観測値格納部や監視装置の観測値格納部に格納される制御システムの観測値の構成を例示する図である。
【図１３】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、制御装置と監視装置で送受信される観測値収集コマンドの構成を例示する図である。
【図１４】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置の判定パターン格納部に格納される制御システムの判定パターンの構成を例示する図である。
【図１５】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置の通信パケット格納部に格納される通信パケットの構成を例示する図である。
【図１６】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置の判定リスト格納部に格納される判定リストの構成を例示する図である。
【図１７】本発明の第一の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置の類似パケット格納部に格納される類似パケットの構成を例示する図である。
【図１８】本発明の第二の実施形態に係る制御システム向け不正通信検知システムの構成を例示する図である。
【図１９】本発明の第二の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置を用いて制御装置間で送受信される通信パケットの正当性を検証する処理フローにおける、類似パケットを格納する処理フローを例示する図である。
【図２０】本発明の第二の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置を用いて制御装置間で送受信される通信パケットの正当性を検証する処理フローにおける、通信パケットの有害判定及び判定リスト更新を行う処理の処理フローを例示する図である。
【図２１】本発明の第二の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置の類似パケット格納部に格納される類似パケットの構成を例示する図である。
【図２２】本発明の第三の実施形態に係る制御システム向け不正通信検知システムの構成を例示する図である。
【図２３】本発明の第三の実施形態に係る制御システム向け不正通信検知システムにおいて、通信パケットの検知を行う処理フローを例示する図である。
【図２４】本発明の第三の実施形態に係る制御システム向け不正通信検知システムにおいて、検知装置を用いて制御装置間で送受信される通信パケットの正当性を検証する処理フローにおける、通信パケットの判定リスト更新を行う処理の処理フローを例示する図である。
【発明を実施するための形態】
【００１２】
本発明の一実施形態に係る制御システム向け不正通信検知システム１及び不正通信検知方法について説明する。なお、これにより本発明が限定されるものではない。
【００１３】
図１は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１の構成図である。
【００１４】
本実施形態の制御システム向け不正通信検知システム１は、図１に例示するように、制御装置１０１〜１０ｎと、ネットワーク装置２０と、検知装置３０と、監視装置４０と、ネットワーク５０と、から構成されている。ここで、制御システムとは、例えば、電力、鉄道、水道、ガス等の社会インフラおよび自動車で利用される制御システムであり、センサの情報をもとにバルブ及びアクチュエータといったデバイスを動作させ、あらかじめ設定されている圧力や温度を保つように構成されている。なお、制御装置１０１〜１０ｎ、ネットワーク装置２０、監視装置４０、及びネットワーク５０は、制御システムの一部としても機能している。
【００１５】
制御装置１０１〜１０ｎは、制御処理を行う制御処理部１０１１〜１０１ｎと、ネットワーク５０やネットワーク装置２０等と通信を行う通信部１０２１〜１０２ｎと、を含む。
【００１６】
ネットワーク装置２０は、ネットワーク装置２０に入力される通信パケットを複製するパケット複製部２０１と、ネットワーク５０と通信を行う第一通信部２０２と、検知装置３０と通信を行う第二通信部２０３と、制御装置１０ｎと通信を行う第三通信部２０４と、を含む。なお、ネットワーク装置２０は、４つ以上の通信部を保有しても良い。
【００１７】
検知装置３０は、観測値通信部３０１と、観測値取得部３０２と、判定パターン生成部３０３と、判定パターン更新部３０４と、パケット通信部３０５と、通信パケット取得部３０６と、判定リスト生成部３０７と、リスト判定部３０８と、類似性判定部３０９と、有害性判定部３１０と、判定リスト更新部３１１と、アラート生成部３１２と、観測値格納部３１３と、判定パターン格納部３１４と、通信パケット格納部３１５と、判定リスト格納部３１６と、類似度閾値格納部３１７と、類似パケット格納部３１８と、アラート格納部３１９と、動作モード管理部３２０と、受信時間格納部３２１と、通信識別部３２２と、通信識別情報格納部３２３と、を備える。
【００１８】
観測値通信部３０１は、ネットワーク５０と通信を行う。観測値取得部３０２は、検知装置３０に入力される観測値を取得する。判定パターン生成部３０３は、取得した観測値から判定パターンを生成する。判定パターン更新部３０４は、生成した判定パターンを更新する。パケット通信部３０５は、ネットワーク装置２０と通信を行う。通信パケット取得部３０６は、検知装置３０に入力される通信パケットを取得する。判定リスト生成部３０７は、取得した通信パケットから判定リストを生成する。リスト判定部３０８は、取得した通信パケットの正当性を検証する。類似性判定部３０９は、取得した通信パケットが判定リストに該当しない場合、取得した通信パケットと判定リストとの類似性を判定する。有害性判定部３１０は、類似性判定の結果、類似性があると判断した場合に、生成した判定パターンと取得した観測値を用いて、通信パケットの有害性を判定する。判定リスト更新部３１１は、通信パケットに有害性がないと判断した場合に、通信パケットを判定リストに追加する。アラート生成部３１２は、通信パケットに有害性があると判断した場合と類似性がないと判断した場合にアラートを生成する。
【００１９】
観測値格納部３１３は、観測値取得部３０２で取得した観測値を格納する。判定パターン格納部３１４は、取得した観測値から生成した判定パターンを格納する。通信パケット格納部３１５は、通信パケット取得部３０５で取得した通信パケットを格納する。判定リスト格納部３１６は、通信パケットの正当性を検証するために必要な情報を格納する。類似度閾値格納部３１７は、通信パケットと判定リストの類似性を判定する際に利用する情報を格納する。類似パケット格納部３１８は、類似性判定部３０９による類似性判定の結果、類似性があると判断した通信パケットを格納する。アラート格納部３１９は、アラート生成部３１２で生成したアラートを格納する。動作モード管理部３２０は、検知装置３０の動作モードの管理を行う。受信時間格納部３２１は、通信パケットを受信した受信時間に関する情報を格納する。通信識別部３２２は、ネットワーク５０やネットワーク装置２０との通信で使用する通信プロトコルを識別する。通信識別情報格納部３２３は、通信プロトコルを識別するために必要な情報を格納する。
【００２０】
監視装置４０は、ネットワーク５０と通信を行う通信部４０１と、監視装置４０に入力される観測値を取得する観測値取得部４０２と、観測値取得部で取得した観測値を格納する観測値格納部４０３と、を含む。  
【００２１】
図２は、制御装置１０１〜１０ｎのハードウェア構成を例示する図である。
【００２２】
各制御装置１０１〜１０ｎは、通信装置１１と、入出力装置１２と、記憶装置１３と、ＣＰＵ１４と、メモリ１５と、を備え、各構成要素は、バスなどの内部通信線１６で連結されている。また、各制御装置１０１〜１０ｎには、センサ、バルブ及びアクチュエータ等のデバイスが接続されている。
【００２３】
図３は、ネットワーク装置２０のハードウェア構成を例示する図である。
【００２４】
ネットワーク装置２０は、第一通信装置２１１と、第二通信装置２１２と、第三通信装置２１３と、記憶装置２２と、入出力装置２３と、ＣＰＵ２４と、メモリ２５と、を備え、各構成要素がバスなどの内部通信線２６で連結されている。なお、ネットワーク装置２０は、４つ以上の通信装置を保有しても良い。
【００２５】
図４は検知装置３０や監視装置４０のハードウェア構成を例示する図である。
【００２６】
検知装置３０および監視装置４０は、それぞれ、通信装置３１と、入出力装置３２と、記憶装置３３と、ＣＰＵ３４と、メモリ３５と、記憶媒体３７を読み込み可能な読取装置３６と、を備え、各構成要素がバスなどの内部通信線３８で連結されている。
【００２７】
次に、本実施形態の制御システム向け不正通信検知システム１における処理フローについて説明する。以下に述べる処理フローは、制御装置１０１〜１０ｎ、ネットワーク装置２０、検知装置３０、および監視装置４０の記憶装置に格納されたプログラムがメモリにロードされ、ＣＰＵにより実行されることにより、制御システム向け侵入検知システムを構築する装置上に具現化される各処理部により実行されるものである。また、各プログラムは予め記憶装置に格納されても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬する伝送波）を介して、必要なときに導入されても良い。
【００２８】
図５は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、監視装置４０を用いて、検知装置３０で通信パケットの検知に利用する判定リスト及び判定パターンを生成する処理と、通信パケットの検知を行う処理と、判定リスト及び判定パターンを更新する処理と、の処理フローを示した図である。
【００２９】
はじめに、検知装置３０は、検知装置３０の動作モードを試運転モードに設定する（Ｓ５０１（Ｓ５０１と表現する。以下同様））。ここで、動作モードを試運転モードに設定できない、もしくは、以降の処理が試運転モードに設定されないまま実行されようとする場合には、以降の処理を中止してもよい。
【００３０】
次に、検知装置３０は、試運転モードにおける通信パケットの収集業務を行う（Ｓ５０２）。なお、収集業務の処理フローは図６において詳細に説明する。
【００３１】
次に、検知装置３０は、Ｓ５０２で収集した通信パケット（通信パケット格納部３１５に格納された通信パケット）に基づき、判定リスト生成処理を行う（Ｓ５０３）。判定リストとは、制御システムを正常に動作させる通信パケットに基づき生成されるデータパターンのリストである。ここで、判定リスト生成処理の例として、まず、Ｓ５０２で収集した通信パケットに格納された通信プロトコル番号、サイズ、及び通信パケットの受信周期などの情報と、通信識別情報格納部３２３に格納された情報とを用いて、通信に使用しているＤＮＰ３．０又はＥｔｈｅｒｎｅｔ／ＩＰ及びＭｏｄｂｕｓなどの通信プロトコルを識別する。これにより、判定リスト生成に使用するデータパターンが格納された通信パケットの領域を識別することを想定しているが、これに限定されるものではない。
【００３２】
また、通信パケットから判定リスト格納部３１６に格納するエントリの生成方法の例として、通信パケットの識別した領域に格納されているバイナリデータのパターンを抽出し、データパターンが格納されていたパケット内の領域を表す情報と、データパターンを組み合わせて生成する方法、又は、データパターンと通信周期を表す情報を組み合わせて生成する方法を想定しているが、これに限定されるものではない。
【００３３】
次に、検知装置３０は、生成したエントリを判定リスト格納部３１６に格納する（Ｓ５０４）。ここで、判定リスト（Ａ１６０１、図１６）へ格納する方法の例として、生成したエントリに、エントリ番号に相当するリストＩＤを付与し、リストＩＤとエントリの組を判定リスト格納部３１６へ格納することを想定しているが、これに限定されるものではない。なお、判定リスト（Ａ１６０１）の構成は、図１６において詳細に説明する。
【００３４】
一方、監視装置４０は、観測値の観測業務を行う（Ｓ５０５）。なお、観測値の構成は図１２において詳細に説明する。また、観測業務の処理フローは図７において詳細に記載する。
【００３５】
次に、検知装置３０は、観測値を収集するための観測値収集コマンド（Ａ５０１）を監視装置４０に送信する。なお、観測値収集コマンドの構成は図１３において詳細に説明する。
【００３６】
次に、監視装置４０は、観測値格納部４０３に格納されている観測値を取得する（Ｓ５０６）。
【００３７】
次に、監視装置４０は、取得した観測値を検知装置３０に送信する（Ａ５０２）。
【００３８】
次に、検知装置３０は、取得した観測値を観測値格納部３１３に格納し、判定パターン（Ａ１４０１、図１４）を生成する（Ｓ５０７）。判定パターンとは、正当な制御コマンドにより、制御システムを制御した時の、センサおよびアクチュエータなどのデバイスごとの、温度および圧力等の個々の観測項目の変化量及び周期に関する情報を想定しているが、これに限定されるものではない。なお、判定パターンの構成は図１４において詳細に説明する。また、判定パターン生成処理の処理フローは図８において詳細に説明する。また、Ｓ５０７の処理ステップはＳ５０６の処理ステップに含めてもよい。
【００３９】
次に、検知装置３０の動作モードを実運転モードに設定する（Ｓ５０８）。
【００４０】
次に、通信パケット取得部３０６で取得した通信パケットの検知業務を行う（Ｓ５０９）。当該検知業務では、判定リストのデータパターンに類似するデータパターンを有する通信パケットを、取得した通信パケットから抽出する処理等を行う。なお、通信パケットの構成は、図１５において詳細に説明する。また、検知業務の処理フローは、図９において詳細に詳細な記載する。
【００４１】
一方、監視装置４０は、Ｓ５０５と同様の観測値の観測業務を行う（Ｓ５１０）。
【００４２】
次に、検知装置３０は、Ｓ５０９で取得した通信パケットの中で、判定リスト格納部３１６に格納された判定リストと類似したパケットが有るか無いかを判定する（Ｓ５１１）。すなわち、類似パケット格納部３１８に、通信パケットが格納されているか否かを判定する。その結果、無いと判定された場合には処理を終了する（Ｓ５１２）。
【００４３】
一方で、有ると判定された場合には、検知装置３０は観測値収集コマンド（Ａ５０３）を監視装置４０に送信する。
【００４４】
次に、監視装置４０は、観測値格納部４０３に格納されている観測値を取得する（Ｓ５１３）。
【００４５】
次に、監視装置４０は取得した観測値を検知装置３０に送信する（Ａ５０４）。
【００４６】
次に、検知装置３０は、取得した観測値を観測値格納部３１３に格納し、通信パケットの有害判定及び判定リスト更新処理を行う（Ｓ５１４）。なお、有害判定及び判定リスト更新処理の処理フローは、図１１において詳細に説明する。
【００４７】
次に、検知装置３０は、観測値格納部３１３に空き容量があるかどうか判定する（Ｓ５１５）。
【００４８】
判断の結果、空き容量がないと判定された場合は、検知装置３０は、判定パターンの生成処理を行う（Ｓ５１６）。上記と同様に、判定パターンの構成は図１４において詳細に説明し、判定パターン生成処理の処理フローは図８において詳細に説明する。当該処理により、Ｓ５０７で生成した判定パターンに代えて新たな判定パターンが生成され、制御システムの経年変化に応じて判定パターンを生成することができる。一方で、空き容量があると判定された場合は、Ｓ５１６の処理は行わない。
【００４９】
Ｓ５１６の処理の後、Ｓ５０９、Ｓ５１１、及びＳ５１４〜Ｓ５１６の処理が繰り返し実行される。
【００５０】
図６は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０が行う収集業務Ｓ５０２の処理フローを示した図である。  
【００５１】
はじめに、制御装置１０１は、検知装置３０が試運転モードに設定されたことに基づき、試運転用の制御コマンドを生成する（Ｓ６０１）。当該試運転用の制御コマンドは、制御装置１０１に予め記憶されている。
【００５２】
次に、制御装置１０１は生成した制御コマンド（Ａ６０１）を、ネットワーク装置２０を介して制御装置１０ｎに送信する。
【００５３】
次に、ネットワーク装置２０は、制御措置１０１から受信した制御コマンドを複製する（Ｓ６０２）。
【００５４】
次に、ネットワーク装置２０は、複製した制御コマンド（Ａ６０１）を検知装置３０と制御装置１０ｎに送信する。
【００５５】
次に、検知装置３０は、受信した通信パケットを通信パケット格納部３１５に格納する（Ｓ６０３）。
【００５６】
次に、制御装置１０ｎは、制御装置１０１から受信した制御コマンド（Ａ６０１）を用いて、制御装置１０ｎに接続されているデバイスの制御業務を行う（Ｓ６０４）。
【００５７】
次、各デバイスを処理した結果を示すレスポンス（Ａ６０２）を制御装置１０１に送信する。
【００５８】
次に、ネットワーク装置２０は、受信したレスポンス（Ａ６０２）を複製する（Ｓ６０５）。
【００５９】
次に、ネットワーク装置２０は、複製したレスポンスを制御装置１０１および検知装置３０に送信する。
【００６０】
次に、検知装置３０は、受信したレスポンス（Ａ６０２）を通信パケット格納部３１５に格納する（Ｓ６０６）。
【００６１】
図７は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、監視装置４０が行う観測業務Ｓ５０５及びＳ５１０の処理フローを示した図である。
【００６２】
はじめに、制御装置１０ｎは、収集可能な観測値を収集する（Ｓ７０１）。ここで観測値には、センサ及びアクチュエータなどのデバイスの、圧力、温度、及びタイミングなどの物理的なパラメータを含むことができるが、これらに限定されるものではない。次に、制御装置１０ｎは、収集した観測値（Ａ７０１）を、ネットワーク装置２０を介して監視装置４０に送信する。
【００６３】
次に、ネットワーク装置２０は、受信した観測値（Ａ７０１）を複製する（Ｓ７０２）。
【００６４】
次に、複製した観測値（Ａ７０１）を監視装置４０および検知装置３０に送信する。
【００６５】
次に、監視装置４０は、受信した観測値（Ａ７０１）を観測値格納部４０３に格納する（Ｓ７０３）。なお、検知装置３０は、受信した観測値（Ａ７０１）を通信パケット格納部３１５に格納する。格納された通信パケットは、判定リスト生成処理（Ｓ５０３）及び検知業務（Ｓ５０９）に用いられる。
【００６６】
図８は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０が行う判定パターン生成処理Ｓ５０７及びＳ５１６の処理フローを示した図である。
【００６７】
はじめに、検知装置３０は、判定パターン生成処理を開始する（Ｓ８０１）。
【００６８】
次に、検知装置３０は、観測値格納部３１３に格納されている観測値を取得する（Ｓ８０２）。
【００６９】
次に、検知装置３０は、観測値が有する観測項目および観測された値を示す観測データを用いて、判定パターンを生成する（Ｓ８０３）。上記のように、判定パターンとは、センサ及びアクチュエータなどのデバイスごとに、温度や圧力といった個々の観測項目の変化量や周期に関する情報を想定しているが、これに限定されるものではない。また、判定パターンの生成方法の例として、取得した観測値を、観測値に含まれる装置ＩＤごとに分類し、各装置ＩＤにおいて観測項目ごとにさらに分類し、各観測項目において最大値、最小値、及び周期などを抽出し、抽出情報から変化量などを算出し、算出した情報（正当観測パターン）と観測項目と装置ＩＤとを組み合わせて生成することを想定しているが、これに限定されるものではない。
【００７０】
次に、Ｓ８０２で取得した観測値における装置ＩＤ及び観測項目の中で、判定パターンが生成されていない装置ＩＤ及び観測項目の有無を検証する（Ｓ８０４）。検証の結果、判定パターンが生成されていない装置ＩＤ及び観測項目があると判断された場合には、ステップＳ８０３に戻って、別の装置ＩＤ及び観測項目に対する判定パターンの生成を行う。
【００７１】
一方、全ての装置ＩＤ及び観測項目において判定パターンが生成されていると判断された場合には、生成した判定パターンを判定パターン格納部３１４に格納する（Ｓ８０５）。
【００７２】
次に、観測値格納部３１３に格納された観測値を消去する（Ｓ８０６）。次に、処理を終了する（Ｓ８０７）。
【００７３】
図９は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０が行う検知業務（Ｓ５０９）の処理フローを示した図である。検知業務では、制御装置間で送受信される通信パケットの正当性が検証される。
【００７４】
はじめに、制御装置１０１は、検知装置３０が実運転モードに設定されたことに基づき、実運転用の制御コマンドを生成する（Ｓ９０１）。
【００７５】
次に、制御装置１０１は、生成した制御コマンド（Ａ９０１）を、ネットワーク装置２０を介して制御装置１０ｎに送信する。
【００７６】
次に、ネットワーク装置２０は、制御措置１０１から受信した制御コマンドを複製する（Ｓ９０２）。
【００７７】
次に、ネットワーク装置２０は、複製した制御コマンド（Ａ９０１）を検知装置３０と制御装置１０ｎに送信する。
【００７８】
次に、検知装置３０は、ネットワーク装置２０から受信した制御コマンドである通信パケット（Ａ９０１）の受信時刻を取得する（Ｓ９０３）。また、受信した通信パケット（Ａ９０１）は、通信パケット格納部３１５に格納される。
【００７９】
次に、受信した通信パケット（Ａ９０１）に対して、判定リスト格納部３１６に格納されている判定リストを用いて、判定処理を行う（Ｓ９０４）。すなわち、通信パケットのパケットデータに該当するデータパターン（受信データ）が、判定リストの正当通信パターンの正当なデータパターン（参照データ）に一致するか否かが判定される。ここで、通信パケットの周期情報を用いて判定する場合は、過去に受信した通信パケットを通信パケット格納部３１５から読み出し判定を行うことを想定しているがこれに限定されるものではない。この場合、通信パケットのデータパターン及び受信周期に関する情報が、受信パターンに相当する。また、通信パケットに関する受信データは、データパターンと、それが格納されている領域に関する情報とを組み合わせて構成されてもよく、さらに受信周期に関する情報を組み合わせて構成してもよい。
【００８０】
この結果、通信パケットのパケットデータに該当するデータパターンが、判定リストの正当通信パターンの正当なデータパターンに一致する（該当）と判断された場合には、処理を終了する（Ｓ９０５）。
【００８１】
一方で、一致しない（非該当）と判断された場合には、検知装置３０は、判定リスト格納部３１６に格納された判定リストを用いて類似度を算出する（Ｓ９０６）。なお、類似度算出処理の処理フローは図１０において詳細に説明する。
【００８２】
次に、検知装置３０は、Ｓ９０６で算出した類似度と、類似度判定閾値格納部３１７に格納された類似性を判定する際に利用する情報と、を用いて、受信した通信パケットのデータパターンと判定リストのデータパターンの類似判定処理を行う（Ｓ９０７）。ここで、Ｓ９０７では、類似度閾値格納部３１７に格納された閾値を読み出し、Ｓ９０６で算出された全ての類似度のうち、一つでも閾値の範囲内にあるか（所定の条件を満たすか）否かを判断する。この結果、全ての類似度が閾値の範囲外と判断された場合には、検知装置３０は、アラートを生成する（Ｓ９０８）。
【００８３】
次に、検知装置３０は、生成したアラートをアラート格納部３１９に格納する（Ｓ９０９）。一方で、全ての類似度のうち、一つでも閾値の範囲内と判断された場合には、通信パケットを類似パケットとして類似パケット格納部３１８に格納する（Ｓ９１０）。ここで、類似パケットの構成は図１７で詳細説明する。また、類似パケット格納部３１８に既に同じデータパターンが格納されている場合には、格納済みである同じデータパターンの類似パケット領域に含まれるパターン数の更新を行い、類似パケットの新たな格納は行わない。
【００８４】
次に、制御装置１０ｎは、制御装置１０１から受信した制御コマンド（Ａ６０１）を用いて、制御装置１０ｎに接続されているデバイスの制御業務を行う（Ｓ９１１）。
【００８５】
次に、各デバイスを処理した結果を示すレスポンス（Ａ９０２）を制御装置１０１に送信する。
【００８６】
次に、ネットワーク装置２０は、受信したレスポンス（Ａ９０２）を複製する（Ｓ９１２）。
【００８７】
次に、ネットワーク装置２０は、複製したレスポンス（Ａ９０２）を検知装置３０及び制御装置１０１に送信する。
【００８８】
次に、検知装置３０は、ネットワーク装置２０から受信したレスポンスである通信パケット（Ａ９０２）の受信時刻を取得する（Ｓ９１３）。
【００８９】
次に、受信した通信パケット（Ａ９０２）に対して、判定リスト格納部３１６に格納されている判定リストを用いて、判定処理を行う（Ｓ９１４）。この結果、通信パケットのパケットデータに該当するデータパターンが、判定リストの正当通信パターンの正当なデータパターンに合致する（該当）と判断された場合には、処理を終了する（Ｓ９１５）。
【００９０】
一方で、合致しない（非該当）と判断された場合には、検知装置３０は、判定リスト格納部３１６に格納された判定リストを用いて類似度を算出する（Ｓ９１６）。
【００９１】
次に、検知装置３０は、Ｓ９１６で算出した類似度と類似度判定閾値格納部３１７に格納された類似性を判定する際に利用する情報を用いて、受信パケットのデータパターンと判定リストのデータパターンの類似判定処理を行う（Ｓ９１７）。ここで、Ｓ９１７では、類似度閾値格納部３１７に格納された閾値を読み出し、Ｓ９１６で算出された全ての類似度が閾値の範囲内か否かを判断する。
【００９２】
この結果、閾値の範囲外と判断された場合には、アラートを生成する（Ｓ９１８）。
【００９３】
次に、生成したアラートをアラート格納部３１９に格納する（Ｓ９１９）。
【００９４】
一方で、閾値の範囲内と判断された場合には、通信パケットを類似パケット格納部３１８に格納する（Ｓ９２０）。ここで、類似パケット格納部３１８に既に同じデータパターンが格納されている場合には、格納済みである同じデータパターンの類似パケット領域に含まれるパターン数の更新を行い、類似パケットの新たな格納は行わない。
【００９５】
図１０は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０が行う類似度算出処理Ｓ９０６およびＳ９１６の処理フローを示した図である。
【００９６】
はじめに、検知装置３０は、類似度算出処理を開始する（Ｓ１００１）。
【００９７】
次に、検知装置３０は、通信パケット格納部３１５に格納されている通信パケット（Ａ９０１）を取得する（Ｓ１００２）。
【００９８】
次に、検知装置３０は、判定リスト格納部３１６に格納されている判定リストを取得する（Ｓ１００３）。
【００９９】
次に、検知装置３０は、通信パケットに格納されているパケットデータと、判定リストに格納されているリストＩＤに紐づいた正当データパターンを用いて類似度を算出する（Ｓ１００４）。ここで、類似度とは、例えば、パケットデータと正当データパターンを１バイトなどのデータブロックに分割し、データブロック毎に一致しているか否かを判定し、一致している数を算出し、ブロック数で除算することで算出する方法や、ファジーハッシュなどを用いるが、これらに限定されるものではない。
【０１００】
次に、検知装置３０は、判定リスト格納部３１６に格納されているリストＩＤの中で、類似度を算出していないリストＩＤの有無を検証する（Ｓ１００５）。検証の結果、類似度を算出していないリストＩＤがあると判断された場合には、ステップＳ１００３に戻り、別のリストＩＤに紐づいた正当データパターンを用いて類似度を算出する。一方で、検知装置３０は、すべてのリストＩＤに対して類似度を算出済みであると判断された場合には、処理を終了する（Ｓ１００６）。
【０１０１】
図１１は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０が行う有害判定及び判定リスト更新処理Ｓ５１４の処理フローを示した図である。
【０１０２】
はじめに、検知装置３０は、有害判定及び判定リスト更新処理を開始する（Ｓ１１０１）。
【０１０３】
次に、検知装置３０は、類似パケット格納部３１８から一つの類似パケットを取得する（Ｓ１１０２）。
【０１０４】
次に、検知装置３０は、受信時間格納部３２１から類似パケットの受信時刻情報を収集する（Ｓ１１０３）。
【０１０５】
次に、検知装置３０は、類似パケットの受信時刻近辺の観測値を観測値格納部３１３から取得する（Ｓ１１０４）。ここで、観測値の取得方法の例として、受信時刻及び類似パケット内のデバイスのアドレス情報と、観測値の観測時刻及び装置ＩＤとに基づき、観測値を取得することを想定しているが、これに限定されるものではない。
【０１０６】
次に、検知装置３０は、判定パターン格納部３１４から判定パターンを取得する（Ｓ１１０５）。
【０１０７】
次に、検知装置３０は、観測項目ごとに取得した観測値が観測項目の判定パターンに一致するか否かを判定する（Ｓ１１０６）。例えば、温度および圧力等の個々の観測項目の観測データが、判定パターンの観測項目の変化量の範囲内に収まっており、又は、バルブの開閉の周期が、判定パターンのバルブの周期と等しい場合に、判定パターンに一致していると判断される。その結果、観測項目ごとに取得した観測値が観測項目の判定パターンに一致しないと判断された場合には、当該観測値を削除して、アラートを生成する（Ｓ１１０７）。このように、不正な通信パケットを検知することができ、アラートを作業者に対し通知することができる。
【０１０８】
次に、検知装置３０は、生成したアラートをアラート格納部３１９に格納する（Ｓ１１０８）。
【０１０９】
一方で、観測値が判定パターンに一致すると判断された場合には、検知装置３０は、類似パケットから判定リストに追加するエントリを生成する（Ｓ１１０９）。ここで、エントリの生成方法の例として、類似パケットに格納されているデータパターンを抽出することを想定しているがこれに限定されるものではない。
【０１１０】
次に、検知装置３０は、生成したエントリを判定リスト格納部３１６に格納する（Ｓ１１１０）。ここで、エントリを格納する方法の例として、生成したエントリに、エントリ番号に相当するリストＩＤを付与し、リストＩＤとエントリの組を判定リスト３１６へ格納することを想定しているが、これに限定されるものではない。これにより、観測結果に基づいて、正当なデータパターンを有する通信パケットに関する新たなエントリを判定リストに対し追加することができる。
【０１１１】
次に、検知装置３０は、類似パケット格納部３１８から当該類似パケットを削除する（Ｓ１１１１）。
【０１１２】
次に、検知装置３０は、類似パケット格納部３１８に格納されている類似パケットのレコード数を取得する（Ｓ１１１２）。
【０１１３】
次に、検知装置３０は、類似パケット格納部３１８に格納されている類似パケットの有無を判定する（Ｓ１１１３）。判定の結果、レコード数が０でないと判断された場合には、検知装置３０は、ステップＳ１１０２に戻って、別の類似パケットを類似パケット格納部３１８から取得する。一方で、レコード数が０と判断された場合には、処理を終了する（Ｓ１１１４）。
【０１１４】
図１２は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、監視装置４０の観測値格納部４０３に格納される観測値の構成を例示する図である。
【０１１５】
観測値（Ａ１２０１）は、観測した時刻を示す観測時刻（Ａ１２０２）と、装置を識別する情報を示す装置ＩＤ（Ａ１２０３）と、観測された値を識別する情報を示す観測項目（Ａ１２０４）と、観測された値を示す観測データ（Ａ１２０５）と、から構成される。ここで、装置ＩＤに使用する情報の例として、装置のＩＰアドレスを使用する方法があるが、これに限定されるものではない。また、観測値（Ａ１２０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素が含まれていればよい。また、観測値（Ａ１２０１）の構成要素の順序は上記に限定されるものではない。
【０１１６】
図１３は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０が監視装置４０に送信する観測値収集コマンドの構成を例示する図である。
【０１１７】
観測値収集コマンド（Ａ１３０１）は、観測値を収集する指示であるコマンド（Ａ１３０２）と、装置を識別する情報を示す装置ＩＤ（Ａ１３０３）と、観測値の収集時刻を指定する時刻データ（Ａ１３０４）と、から構成される。ここで、時刻データ（Ａ１３０４）には、観測値の収集開始時刻と収集終了時刻が含まれていてもよいし、観測値の収集開始時刻と収集期間が含まれていてもよいし、複数の収集時刻が含まれていてもよい。また、装置ＩＤに使用する情報の例として、装置のＩＰアドレスを使用する方法があるが、これに限定されるものではない。また、観測値収集コマンド（Ａ１３０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素が含まれていればよい。また、観測値収集コマンド（Ａ１３０１）の構成要素の順序は上記に限定されるものではない。
【０１１８】
図１４は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０の判定パターン格納部３１４に格納される判定パターンの構成を例示する図である。
【０１１９】
判定パターン（Ａ１４０１）は、装置を識別する情報を示す装置ＩＤ（Ａ１４０２）と、観測された値を識別する情報を示す観測項目（Ａ１４０３）と、観測された値の正当な挙動を示す正当観測パターン（Ａ１４０４）から構成される。ここで、装置ＩＤに使用する情報の例として、装置のＩＰアドレスを使用する方法があるが、これに限定されるものではない。また、判定パターン（Ａ１４０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素が含まれていればよい。また、判定パターン（Ａ１４０１）の構成要素の順序は上記に限定されるものではない。また、観測項目（Ａ１４０３）には、一つ又は複数の観測項目を含んでいてもよいし、正当観測パターン（Ａ１４０４）には、一つ又は複数の観測項目に対応する正当観測パターンを含んでいてもよい。
【０１２０】
図１５は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０の通信パケット格納部３１５に格納される通信パケットの構成を例示する図である。
【０１２１】
通信パケット（Ａ１５０１）は、パケットを受信した日時を示す受信日時（Ａ１５０２）と、パケットのサイズを示すサイズ（Ａ１５０３）と、パケットのバイナリデータを示すパケットデータ（Ａ１５０４）から構成される。また、パケットデータ（Ａ１５０４）は、ペイロードに含まれるデータのパターンを示すパケットデータである。ここで、通信パケット（Ａ１５０１）の構成要素は上記に限定されるものではなく、少なくとも上記の構成が含まれていればよい。また、通信パケット（Ａ１５０１）の構成要素の順序は上記に限定されるものではない。パケットデータには、制御コマンド、レスポンス、または、観測値等が含まれる。
【０１２２】
図１６は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０の判定リスト格納部３１６に格納される判定リストの構成を例示する図である。
【０１２３】
判定リスト（Ａ１６０１）は、正当データパターンを識別する情報を示すリストＩＤ（Ａ１６０２）と、正当通信パターン（Ａ１６０３）から構成される。ここで、正当通信パターン（Ａ１６０３、参照データ）は、通信パケットの中で検知処理を行う領域を示す情報と、検知領域に含まれる正当なデータパターンとの組み合わせで構成されてもよいし、通信パケットに含まれる正当なデータパターンと、次に受信するまでの時間情報や受信パケット数などの受信周期情報との組み合わせで構成されてもよいし、これらに限定されるものではない。正当通信パターンを正当なデータパターンのみで構成することにより、処理速度を速くすることができ、正当通信パターンを、正当なデータパターンと、データパターンが格納されている通信パケット内の領域に関する情報及び／又はデータパターンの受信周期に関する情報と、を組み合わせて構成することにより、精度よく判定処理を行うことができる。また、判定リスト（Ａ１６０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素を含んでいればよい。また、判定リスト（Ａ１６０１）の構成要素の順序は上記に限定されるものではない。
【０１２４】
図１７は、本発明の第一の実施形態に係る制御システム向け不正通信検知システム１において、検知装置３０の類似パケット格納部３１８に格納される類似パケットの構成を例示する図である。
【０１２５】
類似パケット（Ａ１７０１）は、パケットを受信した日時を示す受信日時（Ａ１７０２）と、パケットのサイズを示すサイズ（Ａ１７０３）と、ペイロードに含まれるデータのパターンを示すパケットデータ（Ａ１７０４）と、パケットデータの受信回数を示すパターン数（Ａ１７０５）から構成される。ここで、受信日時（Ａ１７０２）には、例えば、パケットデータ（Ａ１７０５）を含む通信パケットを初めて取得した受信日時を指定する方法が考えられるが、これに限定されるものではない。また、類似パケット（Ａ１７０１）の構成要素は上記に限定されるものではなく、少なくとも上記の要素を含んでいればよい。また、類似パケット（Ａ１７０１）の構成要素の順序は上記に限定されるものではない。
【０１２６】
以上のように、本実施形態に係る不正通信検知システム１によれば、低負荷で不正通信検知システム１を構築できるので、処理性能に制約がある組込み装置であっても、効果的に制御システム内を流れる通信パケットの誤検知及び検知漏れの低減が可能となる不正通信検知システム１及び不正通信検知方法を提供することができる。
【０１２７】
次に、本発明の第二の実施形態に係る制御システム向け不正通信検知システム２００１について説明する。
【０１２８】
図１８は、本発明の第二の実施形態に係る制御システム向け不正通信検知システム２００１の構成図である。
【０１２９】
本実施形態の制御システム向け不正通信検知システムは、図１８に例示するように、制御装置１０１〜１０ｎと、ネットワーク装置２０と、検知装置３０と、監視装置４０と、ネットワーク５０と、から構成されている。
【０１３０】
制御装置１０１〜１０ｎと、ネットワーク装置２０と、監視装置４０の構成要素は図１と同様である。
【０１３１】
検知装置３０の構成要素は、図１で示した構成要素に加えて、類似パケット判定順序決定部３２４と、判定リスト追加箇所決定部３２５と、を備える。類似パケット判定順序決定部３２４は、類似パケット格納部３１８に格納された類似パケットの判定順序を決定する。判定リスト追加箇所決定部３２５は、有害性処理部３１０で無害と判断された類似パケットを、判定リスト格納部３１７に格納された判定リストへ追加する位置を決定する。
【０１３２】
本実施形態の制御システム向け不正通信検知システム２００１における処理フローについて説明する。以下に述べる処理フローは、制御装置１０１〜１０ｎやネットワーク装置２０や検知装置３０や監視装置４０の記憶装置に格納されたプログラムがメモリにロードされ、ＣＰＵにより実行されることにより、制御システム向け侵入検知システムを構築する装置上に具現化される各処理部により実行されるものである。また、各プログラムは予め記憶装置に格納されても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬する伝送波）を介して、必要なときに導入されても良い。なお、本実施形態に係る不正通信検知システム２００１では、第一の実施形態に係る不正通信検知システム１で実行される処理と基本的に同様の処理が実行されるが、以下の説明では、第一の実施形態に係る不正通信検知システム１で実行される処理とは異なる処理について説明する。
【０１３３】
本実施形態に係る不正通信検知システム２００１において実行される処理は、第一の実施の形態の不正通信検知システム１とほぼ同様であるが、検知装置３０が行う類似パケット格納処理Ｓ９１０およびＳ９２０の処理と、有害判定及び判定リスト更新処理Ｓ５１４の処理とが異なるので、以下においてそれらの処理について説明する。
【０１３４】
まず、本実施形態における類似パケット格納処理Ｓ９１０およびＳ９２０の処理フローについて説明する。
【０１３５】
図１９は、本発明の第二の実施形態が適用された制御システム向け不正通信検知システム２００１において、検知装置３０が行う類似パケット格納処理Ｓ９１０およびＳ９２０の処理フローを示した図である。
【０１３６】
はじめに、検知装置３０は、類似パケット格納処理を開始する（Ｓ１９０１）。
【０１３７】
次に、類似パケットごとに、算出した類似度の中から、最大値を取得する（Ｓ１９０２）。
【０１３８】
次に、類似度が最大値となった判定リストのレコードの正当データパターンに紐づいたリストＩＤを取得する（Ｓ１９０３）。
【０１３９】
次に、類似パケットに含まれるデータパターンと、取得した類似度の最大値と、取得したリストＩＤなどを類似パケット格納部３１８に格納する（Ｓ１９０４）。ここで、類似パケットの構成は図２１において詳細に説明する。
【０１４０】
次に、処理を終了する（Ｓ１９０５）。
【０１４１】
本実施形態における有害判定及び判定リスト更新処理Ｓ５１４の処理フローについて説明する。
【０１４２】
図２０は、本発明の第二の実施形態に係る制御システム向け不正通信検知システム２００１において、検知装置３０が行う図５に示した有害判定及び判定リスト更新処理Ｓ５１４の処理フローを示した図である。
【０１４３】
なお、図２０に示した処理フローにおいて、Ｓ２００１、Ｓ２００２、Ｓ２００４〜Ｓ２０１０、Ｓ２０１３〜Ｓ２０１７については、第一実施形態における、図１１の有害判定及び判定リスト更新処理Ｓ５１４の処理フローのＳ１１０１〜Ｓ１１１４とほぼ同様であるので説明を省略し、残りのステップについて主に説明をする。
【０１４４】
Ｓ２００２で一つの類似パケットを取得した後、検知装置３０は、取得した類似パケットに含まれる類似度は、類似パケット格納部３１８に格納された残りの類似パケットに含まれる類似度と比較して、最小か否かを判断する（Ｓ２００３）。ここで、類似度の比較方法には、最小か否かを用いているが、これに限定されるものではない。
【０１４５】
判断の結果、最小ではないと判断された場合には、検知装置３０は、ステップＳ２００２に戻り、別の類似パケットを類似パケット格納部３１８から取得する。一方で、最小であると判断された場合には、類似パケットから類似パケットの受信時刻情報を取得する（Ｓ２００４）。
【０１４６】
類似パケットから判定リストに追加するエントリを生成した（Ｓ２０１０）後、検知装置３０は、判定リスト格納部３１６から判定リスト内の正当通信パターンに含まれる正当データパターンを取得する（Ｓ２０１１）。
【０１４７】
次に、検知装置３０は、類似パケットに含まれるリストＩＤと、取得した正当データパターンに紐づいたリストＩＤとが一致するか否かを判定する（Ｓ２０１２）。判定の結果、一致しないと判断された場合には、検知装置３０は、ステップＳ２０１１に戻り、別の正当データパターンを判定リスト格納部３１６から取得する。
【０１４８】
一方で、一致すると判断された場合には、検知装置３０は、生成したエントリを判定リスト格納部３１６に追加する（Ｓ２０１３）。ここで、エントリを格納する方法の例として、生成したエントリに、エントリ番号に相当するリストＩＤを付与し、リストＩＤとエントリの組を判定リスト３１６へ格納することを想定しているが、これに限定されるものではない。また、エントリを追加する位置は、リストＩＤが一致した判定リストの直上、直下など（隣接する位置）を用いるが、これに限定されるものではない。このように、類似するエントリを隣接させることにより、Ｓ２００７において観測項目ごとに取得した観測値が観測項目の判定パターンに一致するか否かを判定する際の処理速度を速くすることができる。また、検知装置３０が試運転モードにあるときに、判定リスト及び判定パターンを生成し、検知装置３０が実運転モードにあるときに、判定リスト及び判定パターンを更新し、通信パケットが不正な通信パケットであるか否かと判断するので、制御システム内を流れる通信パケットの誤検知及び検知漏れの低減が可能となる。
【０１４９】
図２１は、本発明の第二の実施形態に係る制御システム向け不正通信検知システム２００１において、検知装置３０の類似パケット格納部３１８に格納される類似パケットの構成を例示する図である。
【０１５０】
類似パケット（Ａ２１０１）は、受信日時（Ａ２１０２）と、サイズ（Ａ２１０３）と、パケットデータ（Ａ２１０４）と、パターン数（Ａ２１０５）と、類似度（Ａ２１０６）と、リストＩＤ（Ａ２１０７）と、から構成される。
【０１５１】
受信日時（Ａ２１０２）、サイズ（Ａ２１０３）、パケットデータ（Ａ２１０４）、およびパターン数（Ａ２１０５）は、第一の実施形態において説明した類似パケット（Ａ１７０１）の受信日時（Ａ１７０２）、サイズ（Ａ１７０３）、パケットデータ（Ａ１７０４）、およびパターン数（Ａ１７０５）と同じである。類似度（Ａ２１０６）は、判定リスト格納部３１６に格納された正当データパターンとの類似度の最大値を示す。リストＩＤ（Ａ２１０７）は、判定リスト格納部３１６に格納された正当データパターンに紐づいたリストＩＤの中で、類似度が最大となったリストＩＤである。
【０１５２】
次に、本発明の第三の実施形態に係る制御システム向け不正通信検知システム３００１について説明する。
【０１５３】
図２２は、本発明の第三の実施形態が適用された制御システム向け不正通信検知システム３００１の構成図である。
【０１５４】
本実施形態の制御システム向け不正通信検知システムは、図２２に例示するように、制御装置１０１〜１０ｎと、ネットワーク装置２０と、検知装置３０と、ネットワーク５０と、から構成されている。
【０１５５】
制御装置１０１〜１０ｎと、ネットワーク装置２０の構成要素は図１と同様である。
【０１５６】
本実施形態に係る検知装置３０の構成要素は、図１で示した第一の実施形態の検知装置３０の構成要素から、観測値通信部３０１と、観測値取得部３０２と、判定パターン生成部３０３と、判定パターン更新部３０４と、有害性判定部３１０と、観測値格納部３１３と、判定パターン格納部３１４と、観測時間格納部３２１とを除いたものである。また、本実施形態において類似パケット格納部３１８に格納する類似パケットのフォーマットは図１７に記載した通りである。
【０１５７】
本実施形態の制御システム向け不正通信検知システム３００１における処理フローについて説明する。以下に述べる処理フローは、制御装置１０１〜１０ｎやネットワーク装置２０や検知装置３０の記憶装置に格納されたプログラムがメモリにロードされ、ＣＰＵにより実行されることにより、制御システム向け侵入検知システムを構築する装置上に具現化される各処理部により実行されるものである。また、各プログラムは予め記憶装置に格納されても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬する伝送波）を介して、必要なときに導入されても良い。なお、本実施形態に係る不正通信検知システム３００１では、第一の実施形態に係る不正通信検知システム１で実行される処理と基本的に同様の処理が実行されるが、以下の説明では、第一の実施形態に係る不正通信検知システム１で実行される処理とは異なる処理について説明する。
【０１５８】
本実施形態における検知装置３０で通信パケットの検知に利用する判定リストを生成する処理、通信パケットの検知を行う処理、及び判定リストを更新する処理について説明する。
【０１５９】
図２３は、本発明の第三の実施形態に係る制御システム向け不正通信検知システム３００１において、検知装置３０で通信パケットの検知に利用する判定リストを生成する処理と、通信パケットの検知を行う処理と、判定リストを更新する処理と、の処理フローを示した図である。
【０１６０】
本実施形態における、判定リストを生成する処理、通信パケットの検知を行う処理、及びリストを更新する処理は、第一の実施の形態において図５に基づき説明した処理と同様である。すなわち、検知装置３０は、図５におけるＳ５０１〜Ｓ５０４、Ｓ５０８、Ｓ５０９、Ｓ５１１、Ｓ５１２、Ｓ５１４と同様の処理である、試運転モード設定処理（Ｓ２３０１）、収集業務処理（Ｓ２３０２）、判定リスト作成処理（Ｓ２３０３）、判定リスト格納処理（Ｓ２３０４）、実運転モード設定処理（Ｓ２３０５）、検知業務処理（Ｓ２３０６）、判定処理（Ｓ２３０７）、終了処理（Ｓ２３０８）、及び、判定リスト更新処理（Ｓ２３０９）を実行する。これにより、実運転における正当なデータパターンを有する通信パケットに基いて、新たなエントリを判定リストに対し追加することができる。
【０１６１】
このように、本実施形態における検知装置３０は、観測装置４０から観測値を取得せず、通信パケット（制御コマンド及びリクエスト等）による判定リストのみに基づいて、不正な通信パケットの検知を行う。
【０１６２】
次に、本実施形態における検知装置３０が行う判定リスト更新処理Ｓ２３０９の処理について説明する。
【０１６３】
図２４は、本発明の第三の実施形態に係る制御システム向け不正通信検知システム３００１において、検知装置３０が行う判定リスト更新処理Ｓ２３０９の処理フローを示した図である。
【０１６４】
本実施形態における、判定リスト更新処理は、第一の実施の形態において図１１に基づき説明した判定リスト更新処理と同様である。すなわち、検知装置３０は、図１１におけるＳ１１０１、Ｓ１１０２、Ｓ１１０９〜１１１４と同様の処理である、判定リスト開始処理（Ｓ２４０１）、類似パケット取得処理（Ｓ２４０２）、エントリ生成処理（Ｓ２４０３）、判定リスト追加処理（Ｓ２４０４）、類似パケット削除処理（Ｓ２４０５）、レコード数取得処理（Ｓ２４０６）、レコード数判定処理（Ｓ２３０７）、及び、終了処理（Ｓ２３０８）を実行する。
【０１６５】
なお、本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
【０１６６】
たとえば、検知装置３０内に監視装置４０の機能が含まれている場合や、検知装置３０内にネットワーク装置２０の機能が含まれている場合や、制御装置１０１〜１０ｎ、検知装置３０、及び監視装置４０にネットワーク５０との通信機能が含まれておらず、別の装置を経由してネットワーク５０と通信を行う場合や、監視装置４０内に検知装置３０の機能が含まれている場合や、検知装置３０に有害判定処理機能、判定リスト更新機能、判定パターン生成機能、判定パターン更新機能などが含まれておらず、別の装置にこれら機能が含まれており、ネットワーク５０を経由して通信を行う場合などである。
【０１６７】
該実施形態の場合においてもシステム全体において行う処理に本質的な変化はない。
【０１６８】
また、上記実施形態の各構成等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【符号の説明】
【０１６９】
１、２００１、３００１：不正通信検知システム、１０１〜１０ｎ：制御装置、２０：ネットワーク装置、３０：検知装置、４０：監視装置、４０１：通信部、４０２：観測値取得部、４０３：観測値格納部、５０：ネットワーク、Ａ５０２、Ａ５０４、Ａ７０１、Ａ１２０１：観測値、Ａ６０１、Ａ９０１：制御コマンド、Ａ６０２、Ａ９０２：レスポンス、Ａ１４０１：判定パターン、Ａ１４０４：正当観測パターン、Ａ１５０１：通信パケット、Ａ１５０４：パケットデータ、Ａ１６０１：判定リスト、Ａ１６０３：正当通信パターン
【図１】
0006650343.tif 000002
【図２】
0006650343.tif 000003
【図３】
0006650343.tif 000004
【図４】
0006650343.tif 000005
【図５】
0006650343.tif 000006
【図６】
0006650343.tif 000007
【図７】
0006650343.tif 000008
【図８】
0006650343.tif 000009
【図９】
0006650343.tif 000010
【図１０】
0006650343.tif 000011
【図１１】
0006650343.tif 000012
【図１２】
0006650343.tif 000013
【図１３】
0006650343.tif 000014
【図１４】
0006650343.tif 000015
【図１５】
0006650343.tif 000016
【図１６】
0006650343.tif 000017
【図１７】
0006650343.tif 000018
【図１８】
0006650343.tif 000019
【図１９】
0006650343.tif 000020
【図２０】
0006650343.tif 000021
【図２１】
0006650343.tif 000022
【図２２】
0006650343.tif 000023
【図２３】
0006650343.tif 000024
【図２４】
0006650343.tif 000025