(57)【特許請求の範囲】
【請求項１】
記憶部と、コマンド抽出部と、検知部とを備え、実工場における製造コマンドに含まれる攻撃・異常を検知する攻撃・異常検知装置であって、
前記記憶部は、正常な製造コマンドの集合が記憶された正常コマンド記憶領域と、前記実工場から送信される実際の製造コマンドの集合が記憶された実コマンド記憶領域とを有し、
前記コマンド抽出部は、
コマンド宛先、コマンド名、コマンドパラメータを含んで構成された実際の製造コマンドを前記実工場から受信し、コマンド宛先が同じ実際の製造コマンドに関して受信した順に到達順の番号を付して前記実際の製造コマンドの集合の１つの要素として前記実コマンド記憶領域に記憶させ、
前記実際の製造コマンドを今回受信した際に、コマンド宛先、コマンド名、コマンドパラメータ、到達順を含んだ構成として前記正常コマンド記憶領域に記憶された前記正常な製造コマンドの集合の中から、前記今回受信した前記実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を正常コマンド群として抽出し、前記実コマンド記憶領域に記憶された前記実際の製造コマンドの集合の中から、前記今回受信した前記実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を実コマンド群として抽出し、
前記検知部は、前記コマンド抽出部によって抽出された前記正常コマンド群および前記実コマンド群を前記到達順ごとに比較する第１検知処理を実行することで攻撃・異常を検知する
攻撃・異常検知装置。
【請求項２】
前記コマンド抽出部は、前記実工場の動作が正常な場合に前記実工場から送信される実際の製造コマンドと同一のコマンド宛先、同一のコマンド名、同一のコマンドパラメータを含んで構成された正常な製造コマンドを工場シミュレータによるシミュレーション結果として受信し、コマンド宛先が同じ正常な製造コマンドに関して受信した順に到達順の番号を付して前記正常な製造コマンドの集合の１つの要素として前記正常コマンド記憶領域に記憶させる
請求項１に記載の攻撃・異常検知装置。
【請求項３】
前記コマンド抽出部により受信される前記実際の製造コマンドおよび前記正常な製造コマンドのそれぞれは、前記コマンド宛先以外に、製造コマンドの適用対象を識別するための判別情報が含まれており、
前記コマンド抽出部は、前記検知部により前記第１検知処理が実行された結果、前記今回受信した前記実際の製造コマンドが正常であると仮判定された場合には、前記実際の製造コマンドを今回受信した際に、コマンド宛先、コマンド名、コマンドパラメータ、到達順、判別情報を含んだ構成として前記正常コマンド記憶領域に記憶された前記正常な製造コマンドの集合の中から、前記今回受信した前記実際の製造コマンドに含まれている判別情報と同一の判別情報を有する要素を第２の正常コマンド群として抽出し、コマンド宛先、コマンド名、コマンドパラメータ、到達順、判別情報を含んだ構成として前記実コマンド記憶領域に記憶された前記実際の製造コマンドの集合の中から、前記今回受信した前記実際の製造コマンドに含まれている判別情報と同一の判別情報を有する要素を第２の実コマンド群として抽出し、
前記検知部は、前記コマンド抽出部によって抽出された前記第２の正常コマンド群および前記第２の実コマンド群を比較する第２検知処理を実行し、前記第２の実コマンド群が前記第２の正常コマンド群と一致するか、または部分集合となっていることで前記今回受信した前記実際の製造コマンドが正常であることを最終判定する
請求項１または２に記載の攻撃・異常検知装置。
【請求項４】
次に受信すべき実際の製造コマンドについて到達時間を計測する時間計測部をさらに備え、
前記コマンド抽出部により受信される前記正常な製造コマンドは、到達想定時間が含まれて構成されており、
前記コマンド抽出部は、前記正常コマンド記憶領域に記憶された前記正常な製造コマンドの集合の中から、次に到達すべき実際の製造コマンドに相当する正常なコマンドを対応する到達予想時間とともに抽出し、
前記検知部は、前記次に到達すべき実際の製造コマンドが、前記対応する到達予想時間を経過しても受信できない場合には、実際の正常コマンドの受信異常が発生したことを検知する
請求項１から３のいずれか１項に記載の攻撃・異常検知装置。
【請求項５】
コンピュータを、請求項１から４のいずれか１項に記載された攻撃・異常検知装置に備えられた前記コマンド抽出部、および前記検知部として機能させるための攻撃・異常検知プログラム。
【請求項６】
実工場における製造コマンドに含まれる攻撃・異常を検知する攻撃・異常検知装置により実行される攻撃・異常検知方法であって、
コマンド宛先、コマンド名、コマンドパラメータを含んで構成された実際の製造コマンドを前記実工場から受信する第１ステップと、
コマンド宛先が同じ実際の製造コマンドに関して、受信した順に到達順の番号を付して実際の製造コマンドの集合の１つの要素として実コマンド記憶領域に記憶させる第２ステップと、
コマンド宛先、コマンド名、コマンドパラメータ、到達順を含んだ構成として正常コマンド記憶領域に正常な製造コマンドの集合を記憶させておく第３ステップと、
前記実際の製造コマンドを今回受信した際に、前記第３ステップによって前記正常コマンド記憶領域に記憶された前記正常な製造コマンドの集合の中から、前記今回受信した前記実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を正常コマンド群として抽出する第４ステップと、
前記実コマンド記憶領域に記憶された前記実際の製造コマンドの集合の中から、前記今回受信した前記実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を実コマンド群として抽出する第５ステップと、
前記第４ステップによって抽出された前記正常コマンド群および前記第５ステップによって抽出された前記実コマンド群を前記到達順ごとに比較する第１検知処理を実行することで攻撃・異常を検知する第６ステップと
を有する攻撃・異常検知方法。
【請求項７】
前記第３ステップにおいて、前記正常コマンド記憶領域に前記正常な製造コマンドの集合として記憶されたそれぞれの正常な製造コマンドは、到達予測時間をさらに含んで構成されており、
前記第３ステップによって前記正常コマンド記憶領域に記憶された前記正常な製造コマンドの集合の中から、次に到達すべき実際の製造コマンドに相当する正常なコマンドを対応する到達予想時間とともに抽出する第７ステップと、
前記次に到達すべき実際の製造コマンドが、前記対応する到達予想時間を経過しても受信できない場合には、実際の正常コマンドの受信異常が発生したことを検知する第８ステップと
をさらに有する
請求項６に記載の攻撃・異常検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工場・プラント等の制御に関わる命令（以下、製造コマンドと称す）に対するサイバー攻撃や故障等の異常による不正な改ざん・挿入、破棄を検知する技術に関する。
【背景技術】
【０００２】
製造コマンドに含まれる製造対象製品を識別するための製品ＩＤを用いて、製造工程の異常を検知する方法が開示されている（例えば、特許文献１参照）。【０００３】
さらに、工場・プラント等の正常な稼働状況をシミュレーションにより取得しておき、実際の工場・プラント等の稼働状況と、事前に取得しておいたシミュレーション結果とを比較することで、異常を検知する方法が開示されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−０１４９９２号公報
【特許文献２】特開２０１３−２１８７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術には、以下のような課題がある。
特許文献１、２に係る従来方法は、正常な製造コマンドの流れをシミュレーションにより取得して、製造コマンドの時系列順序を正常コマンド群として記憶しておく。さらに、従来方法は、実際の工場・プラント等における製造コマンドの時系列順序も、同様に実コマンド群として記憶しておく。【０００６】
そして、従来方法は、実際の工場・プラント等で新たな製造コマンドが発生した時点で、正常コマンド群と実コマンド群から、新たな製造コマンドの製品ＩＤを持つものだけを抽出して、抽出結果を比較することで、製造コマンドの攻撃・異常を検知することが可能であった。しかしながら、従来方法は、製品ＩＤを含まない製造コマンドがある場合には、検知が困難であった。【０００７】
本発明は、前記のような課題を解決するためになされたものであり、製品ＩＤを含まない製造コマンドがある場合にも、サイバー攻撃や故障等の異常による不正な改ざん・挿入、破棄を検知することのできる攻撃・異常検知装置、攻撃・異常検知方法、および攻撃・異常検知プログラムを得ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る攻撃・異常検知装置は、記憶部と、コマンド抽出部と、検知部とを備え、実工場における製造コマンドに含まれる攻撃・異常を検知する攻撃・異常検知装置であって、記憶部は、正常な製造コマンドの集合が記憶された正常コマンド記憶領域と、実工場から送信される実際の製造コマンドの集合が記憶された実コマンド記憶領域とを有し、コマンド抽出部は、コマンド宛先、コマンド名、コマンドパラメータを含んで構成された実際の製造コマンドを実工場から受信し、コマンド宛先が同じ実際の製造コマンドに関して受信した順に到達順の番号を付して実際の製造コマンドの集合の１つの要素として実コマンド記憶領域に記憶させ、実際の製造コマンドを今回受信した際に、コマンド宛先、コマンド名、コマンドパラメータ、到達順を含んだ構成として正常コマンド記憶領域に記憶された正常な製造コマンドの集合の中から、今回受信した実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を正常コマンド群として抽出し、実コマンド記憶領域に記憶された実際の製造コマンドの集合の中から、今回受信した実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を実コマンド群として抽出し、検知部は、コマンド抽出部によって抽出された正常コマンド群および実コマンド群を到達順ごとに比較する第１検知処理を実行することで攻撃・異常を検知するものである。【０００９】
また、本発明に係る攻撃・異常検知方法は、実工場における製造コマンドに含まれる攻撃・異常を検知する攻撃・異常検知装置により実行される攻撃・異常検知方法であって、コマンド宛先、コマンド名、コマンドパラメータを含んで構成された実際の製造コマンドを実工場から受信する第１ステップと、コマンド宛先が同じ実際の製造コマンドに関して、受信した順に到達順の番号を付して実際の製造コマンドの集合の１つの要素として実コマンド記憶領域に記憶させる第２ステップと、コマンド宛先、コマンド名、コマンドパラメータ、到達順を含んだ構成として正常コマンド記憶領域に正常な製造コマンドの集合を記憶させておく第３ステップと、実際の製造コマンドを今回受信した際に、第３ステップによって正常コマンド記憶領域に記憶された正常な製造コマンドの集合の中から、今回受信した実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を正常コマンド群として抽出する第４ステップと、実コマンド記憶領域に記憶された実際の製造コマンドの集合の中から、今回受信した実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を実コマンド群として抽出する第５ステップと、第４ステップによって抽出された正常コマンド群および第５ステップによって抽出された実コマンド群を到達順ごとに比較する第１検知処理を実行することで攻撃・異常を検知する第６ステップとを有するものである。【００１０】
さらに、本発明に係る攻撃・異常検知プログラムは、攻撃・異常検知装置に備えられたコマンド抽出部、および検知部として機能させるためのものである。
【発明の効果】
【００１１】
本発明によれば、コマンド記憶領域に記憶された、コマンド宛先および到達順の情報を含む正常な製造コマンドの集合と実際の製造コマンドの集合のそれぞれの中から、新たに受信した実際の製造コマンドに含まれているコマンド宛先と同一のコマンド宛先を有する要素を抽出する構成と、抽出した両要素の到着順ごとにコマンド内容を比較することで、攻撃・異常を検知する構成を備えている。この結果、製品ＩＤを含まない製造コマンドがある場合にも、サイバー攻撃や故障等の異常による不正な改ざん・挿入、破棄を検知することのできる攻撃・異常検知装置、攻撃・異常検知方法、および攻撃・異常検知プログラムを得る
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１における検知サーバの構成図である。
【図２】本発明の実施の形態１における検知サーバ、工場シミュレータ、および実工場の接続構成を示した図である。
【図３】本発明の実施の形態１における検知サーバ、工場シミュレータ、および実工場監視装置のハードウェア構成例を示す図である。
【図４】本発明の実施の形態１における検知サーバで実行される攻撃・異常検知処理の一連動作を示すフローチャートである。
【図５】本発明の実施の形態１におけるコマンド記憶領域の具体例として、コマンド記憶領域が記憶されている状態を示した図である。
【図６】本発明の実施の形態１におけるコマンド記憶領域の具体例として、図５に示すコマンド記憶領域の例の状態で、実工場から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域が記憶されている状態を示した図である。
【図７】本発明の実施の形態１におけるコマンド記憶領域の具体例として、図６に示すコマンド記憶領域の例の状態で、実工場から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域が記憶されている状態を示した図である。
【図８】本発明の実施の形態２における検知サーバの構成図である。
【図９】本発明の実施の形態２における検知サーバで実行される攻撃・異常検知処理の一連動作を示すフローチャートである。
【図１０】本発明の実施の形態２におけるコマンド記憶領域の具体例として、コマンド記憶領域が記憶されている状態を示した図である。
【図１１】本発明の実施の形態２におけるコマンド記憶領域の具体例として、図１０に示すコマンド記憶領域の例の状態で、実工場から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域が記憶されている状態を示した図である。
【図１２】本発明の実施の形態２におけるコマンド記憶領域の具体例として、図１１に示すコマンド記憶領域の例の状態で、実工場から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域が記憶されている状態を示した図である。
【図１３】本発明の実施の形態３における検知サーバの構成図である。
【図１４】本発明の実施の形態３における検知サーバで実行される攻撃・異常検知処理の一連動作を示すフローチャートである。
【図１５】本発明の実施の形態３におけるコマンド記憶領域の具体例として、コマンド記憶領域が記憶されている状態を示した図である。
【図１６】本発明の実施の形態３におけるコマンド記憶領域の具体例として、図１５に示すコマンド記憶領域の例の状態で、実工場から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域が記憶されている状態を示した図である。
【発明を実施するための形態】
【００１３】
以下、本発明の攻撃・異常検知装置、攻撃・異常検知方法、および攻撃・異常検知プログラムの好適な実施の形態につき図面を用いて説明する。
【００１４】
本発明は、製造コマンドの宛先となる生産設備等への製造コマンド発行順序が、多品種少量生産の工場・プラント等だけでなく、少品種大量生産が求められるマスカスタム生産においても、製造コマンドの宛先単位で保証されることに着目している。そして、この着目に基づいて、正常コマンド群と実コマンド群の比較時に、工場・プラント等で新たに発生した製造コマンドの宛先と同一の宛先を持つ製造コマンドだけを抽出して比較することで、従来技術の課題を解決することを技術的特徴としている。
【００１５】
以下の各実施の形態では、正常な製造コマンドの流れをシミュレーションするコンピュータ（以下、シミュレーション装置と称す）から取得した正常な製造コマンドと、実際の工場・プラント等（以下、実工場と称す）から得られる実際の製造コマンドの流れを比較することで、攻撃・異常を検知可能な攻撃・異常検知装置等を説明する。なお、各実施の形態のフローチャートに示す手順により、本発明に係る情報処理方法を実現可能である。
【００１６】
実施の形態１．
図１は、本発明の実施の形態１における検知サーバ１０１の構成図である。検知サーバ１０１は、攻撃・異常検知装置の具体例に相当する。
【００１７】
検知サーバ１０１は、宛先別コマンド抽出部１０２、攻撃・異常検知部１０３、およびコマンド記憶領域１１０から構成される。また、コマンド記憶領域１１０は、正常コマンド記憶領域１２０および実コマンド記憶領域１３０から構成される。そして、コマンド記憶領域１１０は、検知サーバ１０１が保持する情報を格納する。
【００１８】
正常コマンド記憶領域１２０には、例えば、図１に示す情報が記憶されている。すなわち、本実施の形態１における正常コマンド記憶領域１２０は、コマンド宛先１２１、コマンド名１２２、コマンドパラメータ１２３、到達順１２４から構成される。
【００１９】
実コマンド記憶領域１３０には、例えば、図１に示す情報が記憶されている。すなわち、本実施の形態１における実コマンド記憶領域１３０は、コマンド宛先１３１、コマンド名１３２、コマンドパラメータ１３３、到達順１３４から構成される。
【００２０】
工場シミュレータ１５１は、シミュレーション装置の例に相当する。実工場１５２は、実工場の例に相当する。
【００２１】
図２は、本発明の実施の形態１における検知サーバ１０１、工場シミュレータ１５１、および実工場１５２の接続構成を示した図である。工場シミュレータ１５１は、シミュレーションを実現し、結果を送信する工場シミュレータ２１０を備える。工場シミュレータ２１０は、コマンド送信部２１１および工場シミュレーション部２１２から構成される。
【００２２】
実工場１５２は、工場内の製造コマンドを監視し、結果を送信する実工場監視装置２２０を備える。実工場監視装置２２０は、コマンド送信部２２１およびコマンド監視部２２２から構成される。
【００２３】
なお、検知サーバ１０１は、複数の工場シミュレータ１５１および複数の実工場１５２が接続される構成であってもかまわない。さらに、検知サーバ１０１に接続されている工場シミュレータ１５１は、複数の工場シミュレータ１５１が複数階層からなるネットワーク構成であってもよく、同様に、実工場１５２も、複数の実工場１５２が複数階層からなるネットワーク構成であってもよい。
【００２４】
上述の検知サーバ１０１、工場シミュレータ２１０、および実工場監視装置２２０は、コンピュータであり、データ管理装置の各構成要素は、プログラムにより処理を実行できる。また、プログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにすることができる。
【００２５】
図３は、本発明の実施の形態１における検知サーバ１０１、工場シミュレータ２１０、および実工場監視装置２２０のハードウェア構成例を示す図である。図３においては、演算装置３０１、外部記憶装置３０２、主記憶装置３０３、通信装置３０４が、バス３０５により相互に接続されている。
【００２６】
演算装置３０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。外部記憶装置３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスクである。
【００２７】
主記憶装置３０３は、通常、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。通信装置３０４は、通常、イーサネット（登録商標）に対応した通信カードである。
【００２８】
プログラムは、通常は、外部記憶装置３０２に記憶されており、主記憶装置３０３にロードされた状態で、順次、演算装置３０１に読み込まれ、処理が実行される。具体的なプログラムは、図１において宛先別コマンド抽出部１０２および攻撃・異常検知部１０３として説明されている機能を実現するプログラムに相当する。
【００２９】
また、図１に示すコマンド記憶領域１１０は、例えば、外部記憶装置３０２により実現される。
【００３０】
さらに、外部記憶装置３０２には、オペレーティングシステム（ＯＳ）も記憶されている。そして、ＯＳの少なくとも一部が、主記憶装置３０３にロードされ、演算装置３０１は、ＯＳを実行しながら、図１に示す宛先別コマンド抽出部１０２および攻撃・異常検知部１０３の機能を実現するプログラムを実行する。
【００３１】
また、本実施の形態１の説明において、処理の結果を示す情報、データ、信号値、変数値のそれぞれは、主記憶装置３０３にファイルとして記憶されている。
【００３２】
なお、図３の構成は、あくまでも検知サーバ１０１、工場シミュレータ２１０、および実工場監視装置２２０のハードウェア構成の一例を示すものであり、図３に記載の構成に限らず、他の構成であってもよい。例えば、表示ディスプレイ等の出力装置や、マウス・キーボードといった入力装置が、バス３０５にさらに接続されたハードウェア構成であってもよい。
【００３３】
以下、図１に基づいて、本実施の形態１における検知サーバ１０１の動作を説明する。なお、各動作の詳細については、図４に示したフローチャートに基づいて、後述する。
【００３４】
宛先別コマンド抽出部１０２は、工場シミュレータ１５１から送信された製造コマンドを受信する。そして、宛先別コマンド抽出部１０２は、受信した製造コマンドから、コマンド宛先、コマンド名、コマンドパラメータを抽出し、コマンド宛先ごとの到達順を付与する。その後、宛先別コマンド抽出部１０２は、正常コマンド記憶領域１２０に、コマンド宛先１１１、コマンド名１１２、コマンドパラメータ１１３、到達順１１４を記憶させる。
【００３５】
さらに、宛先別コマンド抽出部１０２は、実工場１５２から送信されたコマンドを受信する。そして、宛先別コマンド抽出部１０２は、受信したコマンドから、コマンド宛先、コマンド名、コマンドパラメータを抽出し、コマンド宛先ごとの到達順を付与する。その後、宛先別コマンド抽出部１０２は、実コマンド記憶領域１３０に、コマンド宛先１２１、コマンド名１２２、コマンドパラメータ１２３、到達順１２４を記憶させる。
【００３６】
攻撃・異常検知部１０３は、正常コマンド記憶領域１２０および実コマンド記憶領域１３０から、宛先別コマンド抽出部１０２が受信した実工場１５２の製造コマンドのコマンド宛先と同一のコマンド宛先を持つ製造コマンドを取得する。
【００３７】
さらに、攻撃・異常検知部１０３は、実コマンド記憶領域１３０から取得した製造コマンド群が、正常コマンド記憶領域１２０から取得した製造コマンド群の部分集合になっている場合には、正常と判定し、それ以外の場合には、異常と判定する。
【００３８】
判定結果は、実コマンド記憶領域１３０に記憶される構成であってもよく、あるいは、別装置に送信されるような構成等で、通知されるようになっていてもかまわない。
【００３９】
次に、本実施の形態１で用いるデータ構造について説明する。
【００４０】
図１の正常コマンド記憶領域１２０は、正常コマンドの格納形式の一例を示す図である。コマンド宛先１２１は、製造コマンドの宛先を識別するための一意な識別子である。コマンド名１２２は、製造コマンドの種類を識別するための一意な識別子である。コマンドパラメータ１２３は、製造コマンドの実行に必要な数値、文字列、バイナリ等のパラメータを、１つまたは複数記憶するための領域である。
【００４１】
到達順１２４は、製造コマンドの宛先別に到達した順序を記憶するための領域である。なお、製造コマンドに対して時刻のような順序を識別可能な情報が付与されている場合には、到達順１２４の代わりにその情報を用いてもよい。
【００４２】
図１の実コマンド記憶領域１３０は、実コマンドの格納形式の一例を示す図である。コマンド宛先１３１は、製造コマンドの宛先を識別するための一意な識別子である。コマンド名１３２は、製造コマンドの種類を識別するための一意な識別子である。コマンドパラメータ１３３は、製造コマンドの実行に必要な数値、文字列、バイナリ等のパラメータを、１つまたは複数記憶するための領域である。
【００４３】
到達順１３４は、製造コマンドの宛先別に到達した順序を記憶するための領域である。なお、製造コマンドに対して時刻のような順序を識別可能な情報が付与されている場合には、到達順１３４の代わりにその情報を用いてもよい。また、製造コマンドの正常、攻撃・異常の判定結果を記憶する領域が追加されてもよい。
【００４４】
図４は、本発明の実施の形態１における検知サーバ１０１で実行される攻撃・異常検知処理の一連動作を示すフローチャートである。以下、この図４に示すフローチャートに基づいて、検知サーバ１０１内の宛先別コマンド抽出部１０２および攻撃・異常検知部１０３による攻撃・異常検知処理について説明する。
【００４５】
なお、図４の一連処理においては、実工場１５２の動作が正常な場合には、必ず同一のコマンド宛先および到達順を持つ工場シミュレータ１５１からの製造コマンドが、実工場１５２からの製造コマンドよりも先に到達し、正常コマンド記憶領域１２０に先に記憶されるものとする。
【００４６】
ステップＳ１０１において、宛先別コマンド抽出部１０２は、工場シミュレータ１５１または実工場１５２より、製造コマンドを受信する。
【００４７】
次に、ステップＳ１０２において、宛先別コマンド抽出部１０２は、受信した製造コマンドの送信元を解釈する。そして、宛先別コマンド抽出部１０２は、製造コマンドの送信元が実工場１５２の場合には、ステップＳ１０３に進み、製造コマンドの送信元が工場シミュレータ１５１の場合には、ステップＳ１０４に進む。
【００４８】
ステップＳ１０３に進んだ場合には、宛先別コマンド抽出部１０２は、製造コマンドの宛先の到達順に番号を付与し、コマンド宛先、コマンド名、コマンドパラメータ、到達順を、実コマンド記憶領域１３０に追加する。その後、ステップＳ１０５に進む。
【００４９】
一方、ステップＳ１０４に進んだ場合には、宛先別コマンド抽出部１０２は、製造コマンドの宛先の到達順に番号を付与し、コマンド宛先、コマンド名、コマンドパラメータ、到達順を、正常コマンド記憶領域１２０に追加する。
【００５０】
ステップＳ１０３からステップＳ１０５に進んだ場合には、攻撃・異常検知部１０３は、正常コマンド記憶領域１２０および実コマンド記憶領域１３０から、先のステップＳ１０１で受信した実工場１５２からの製造コマンドと同一の宛先を持つ製造コマンド群である正常コマンド群および実コマンド群を取得する。
【００５１】
次に、ステップＳ１０６において、攻撃・異常検知部１０３は、ステップＳ１０５で取得した正常コマンド群と実コマンド群とを比較する。そして、攻撃・異常検知部１０３は、正常コマンド群と実コマンド群とで製造コマンドの順序が一致する場合には、正常と判定し、ステップＳ１０７に進む。一方、攻撃・異常検知部１０３は、正常コマンド群と実コマンド群とで製造コマンドの順序が一致しない場合には、攻撃・異常と判定し、ステップＳ１０８に進む。
【００５２】
ここで、「製造コマンドの順序が一致する」とは、正常コマンド群と実コマンド群のうちの到達順が同一の製造コマンドについて、コマンド宛先、コマンド名、コマンドパラメータが一致することである。
【００５３】
このとき、攻撃・異常検知部１０３は、正常コマンド群の到達順には存在するが、実コマンド群の到達順には存在しない製造コマンドがあった場合でも、製造コマンドの順序が一致する場合には、正常と判定する。
【００５４】
一方、攻撃・異常検知部１０３は、実コマンド群の到達順には存在するが、正常コマンド群の到達順には存在しない製造コマンドがあった場合には、製造コマンドの順序が一致していても攻撃・異常と判定する。
【００５５】
本実施の形態１における攻撃・異常検知の動作処理について、図５、図６、図７のコマンド記憶領域の例を用いて、具体的に説明する。
【００５６】
図５は、本発明の実施の形態１におけるコマンド記憶領域１１０の具体例として、コマンド記憶領域５１０が記憶されている状態を示した図である。まず、図５に示すコマンド記憶領域５１０に対する攻撃・異常検知の動作処理例について説明する。
【００５７】
正常コマンド記憶領域５２０には、宛先別コマンド抽出部１０２が、工場シミュレータ１５１から送信された製造コマンドを解釈して、コマンド宛先５２１、コマンド名５２２、コマンドパラメータ５２３を抽出し、到達順５２４を付与した結果が蓄積されているものとする。
【００５８】
一方、実コマンド記憶領域５３０には、宛先別コマンド抽出部１０２が、実工場１５２から送信された製造コマンドを解釈して、コマンド宛先５３１、コマンド名５３２、コマンドパラメータ５３３を抽出し、到達順５３４を付与した結果が蓄積されているものとする。
【００５９】
ここで、正常コマンド記憶領域５２０には、４つの製造コマンドが蓄積されており、実コマンド記憶領域５３０には、２つの製造コマンドが蓄積されており、正常な状態である例に基づき、動作を説明する。
【００６０】
図６は、本発明の実施の形態１におけるコマンド記憶領域１１０の具体例として、図５に示すコマンド記憶領域５１０の例の状態で、実工場１５２から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域６１０が記憶されている状態を示した図である。
【００６１】
より具体的には、コマンド記憶領域６１０の例は、図５に示すコマンド記憶領域５１０の例の状態で、宛先別コマンド抽出部１０２が、実工場１５２から新たに１つの製造コマンド「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝８０、Ｂ＝１５、．．．、到達順＝１）」を受信し、実コマンド記憶領域６３０に蓄積した状態に相当する。
【００６２】
ここで、攻撃・異常検知部１０３は、前述の新たな製造コマンドから、コマンド宛先＝設備２となる正常コマンド群を正常コマンド記憶領域６２０から取得し、コマンド宛先＝設備２となる実コマンド群を実コマンド記憶領域６３０から取得する。
【００６３】
この結果として、攻撃・異常検知部１０３は、正常コマンド群として「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝８０、Ｂ＝１５、．．．、到達順＝１）」、実コマンド群として「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝８０、Ｂ＝１５、．．．、到達順＝１）」を得る。
【００６４】
このとき、攻撃・異常検知部１０３は、得られた正常コマンド群と実コマンド群を比較する。そして、攻撃・異常検知部１０３は、比較結果として、コマンド宛先、コマンド名、コマンドパラメータ、到達順がすべて一致するため、製造コマンドの順序が一致していると解釈し、正常と判定する。
【００６５】
次に、図７は、本発明の実施の形態１におけるコマンド記憶領域１１０の具体例として、図６に示すコマンド記憶領域６１０の例の状態で、実工場１５２から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域７１０が記憶されている状態を示した図である。
【００６６】
より具体的には、コマンド記憶領域７１０の例は、図６に示すコマンド記憶領域６１０の例の状態で、宛先別コマンド抽出部１０２が、実工場１５２から新たに１つの製造コマンド「（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝０、Ｂ＝５０、．．．、到達順＝３）」を受信し、実コマンド記憶領域７３０に蓄積した状態に相当する。
【００６７】
ここで、攻撃・異常検知部１０３は、前述の新たな製造コマンドから、コマンド宛先＝設備１となる正常コマンド群を正常コマンド記憶領域７２０から取得し、コマンド宛先＝設備１となる実コマンド群を実コマンド記憶領域７３０から取得する。
【００６８】
この結果として、攻撃・異常検知部１０３は、正常コマンド群として「（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１００、Ｂ＝２０、．．．、到達順＝１）、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝１００、Ｄ＝０、．．．、到達順＝２）、（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝３）」を得る。
【００６９】
同様にして、攻撃・異常検知部１０３は、実コマンド群として「（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１００、Ｂ＝２０、．．．、到達順＝１、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝１００、Ｄ＝０、．．．、到達順＝２））、（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝０、Ｂ＝５０、．．．、到達順＝３）」を得る。
【００７０】
このとき、攻撃・異常検知部１０３は、得られた正常コマンド群と実コマンド群を比較する。そして、攻撃・異常検知部１０３は、比較結果として、到達順１、２の製造コマンドについては、コマンド宛先、コマンド名、コマンドパラメータ、到達順がすべて一致するが、到達順３の製造コマンドについては、コマンドパラメータが一致しないため、製造コマンドの順序が一致していないと解釈し、攻撃・異常と判定する。
【００７１】
このように、本実施の形態１では、検知サーバ１０１が管理するコマンド記憶領域１１０内の正常コマンド記憶領域１２０および実コマンド記憶領域１３０に、宛先別コマンド抽出部１０２が抽出した製造コマンドを蓄積し、さらに、攻撃・異常検知部１０３が実工場１５２から新たに受信した製造コマンドに関して、正常コマンド群および実コマンド群を抽出し、両者の順序を比較することで、攻撃・異常を検知する処理構成を備えている。
【００７２】
従来は、製品ＩＤに基づき、正常コマンド群および実コマンド群を管理しなければならず、製品ＩＤが付与されていない製造コマンドを扱うことが困難であった。これに対して、本実施の形態１による処理構成を用いることにより、製品ＩＤが付与されていない製造コマンドがあったとしても、必ず付与される製造コマンドの宛先を用いることで、実工場の製造コマンドに対する攻撃・異常を検知できるという顕著な効果を得ることができる。
【００７３】
実施の形態２．
本実施の形態２では、製造コマンドの宛先に加えて、製品ＩＤ等の追加情報を用いて、特定の宛先の製造コマンドが破棄される攻撃・異常を検知可能な検知サーバを実現する場合について説明する。
【００７４】
図８は、本発明の実施の形態２における検知サーバ８０１の構成図である。検知サーバ８０１は、攻撃・異常検知装置の具体例に相当する。
【００７５】
検知サーバ８０１は、図１の検知サーバ１０１と比較して、正常コマンド記憶領域８２０および実コマンド記憶領域８３０が記憶するデータ項目に、製品ＩＤがさらに追加されている点が異なっている。そこで、この相違点を中心に、以下に説明する。
【００７６】
ここで、製品ＩＤは、コマンド宛先以外に、製造コマンドの適用対象を識別できる情報の例である。従って、コマンド宛先以外の、製造コマンドの適用対象を識別できる情報の条件に該当する情報であれば、製品ＩＤ以外の情報を追加情報として用いてもかまわない。
【００７７】
図９は、本発明の実施の形態２における検知サーバ８０１で実行される攻撃・異常検知処理の一連動作を示すフローチャートである。以下、この図９に示すフローチャートに基づいて、検知サーバ８０１内の宛先別コマンド抽出部８０２および攻撃・異常検知部８０３による攻撃・異常検知処理について説明する。
【００７８】
ステップＳ２０１において、宛先別コマンド抽出部８０２は、工場シミュレータ８５１または実工場８５２より、製造コマンドを受信する。
【００７９】
次に、ステップＳ２０２において、宛先別コマンド抽出部８０２は、受信した製造コマンドの送信元を解釈する。そして、宛先別コマンド抽出部８０２は、製造コマンドの送信元が実工場８５２の場合には、ステップＳ２０３に進み、製造コマンドの送信元が工場シミュレータ８５１の場合には、ステップＳ２０４に進む。
【００８０】
ステップＳ２０３に進んだ場合には、宛先別コマンド抽出部８０２は、製造コマンドの宛先の到達順に番号を付与し、コマンド宛先、コマンド名、コマンドパラメータ、到達順、製品ＩＤを、実コマンド記憶領域８３０に追加する。その後、ステップＳ２０５に進む。
【００８１】
一方、ステップＳ２０４に進んだ場合には、宛先別コマンド抽出部８０２は、製造コマンドの宛先の到達順に番号を付与し、コマンド宛先、コマンド名、コマンドパラメータ、到達順、製品ＩＤを、正常コマンド記憶領域８２０に追加する。
【００８２】
ステップＳ２０３からステップＳ２０５に進んだ場合には、攻撃・異常検知部８０３は、正常コマンド記憶領域８２０および実コマンド記憶領域８３０から、先のステップＳ２０１で受信した実工場８５２からの製造コマンドと同一の宛先を持つ製造コマンド群である正常コマンド群および実コマンド群を取得する。
【００８３】
次に、ステップＳ２０６において、攻撃・異常検知部８０３は、ステップＳ２０５で取得した正常コマンド群と実コマンド群とを比較する。そして、攻撃・異常検知部８０３は、正常コマンド群と実コマンド群とで製造コマンドの順序が一致する場合には、ステップＳ２０７に進む。一方、攻撃・異常検知部８０３は、正常コマンド群と実コマンド群とで製造コマンドの順序が一致しない場合には、攻撃・異常と判定し、ステップＳ２１０に進む。
【００８４】
ここで、「製造コマンドの順序が一致する」とは、正常コマンド群と実コマンド群のうちの到達順が同一の製造コマンドについて、コマンド宛先、コマンド名、コマンドパラメータが一致することである。
【００８５】
このとき、攻撃・異常検知部８０３は、正常コマンド群の到達順には存在するが、実コマンド群の到達順には存在しない製造コマンドがあった場合でも、製造コマンドの順序が一致する場合には、正常と判定する。
【００８６】
一方、攻撃・異常検知部８０３は、実コマンド群の到達順には存在するが、正常コマンド群の到達順には存在しない製造コマンドがあった場合には、製造コマンドの順序が一致していても、攻撃・異常と判定する。
【００８７】
ステップＳ２０７に進んだ場合には、攻撃・異常検知部８０３は、正常コマンド記憶領域８２０および実コマンド記憶領域８３０から、先のステップＳ２０１で受信した実工場８５２からの製造コマンドと同一の製品ＩＤを持つ製造コマンド群である正常コマンド群および実コマンド群を取得する。
【００８８】
次に、ステップＳ２０８において、攻撃・異常検知部８０３は、ステップＳ２０７で取得した正常コマンド群と実コマンド群とを比較する。攻撃・異常検知部８０３は、正常コマンド群と実コマンド群とで製造コマンドの集合が一致する場合には、正常と判定して、ステップＳ２０９に進む。一方、攻撃・異常検知部８０３は、正常コマンド群と実コマンド群とで製造コマンドの集合が一致しない場合には、攻撃・異常と判定して、ステップＳ２１０に進む。
【００８９】
ここで、「製造コマンドの集合が一致する」とは、正常コマンド群と実コマンド群のうちの製品ＩＤが同一の製造コマンドについて、コマンド宛先、コマンド名、コマンドパラメータが一致することである。
【００９０】
このとき、攻撃・異常検知部８０３は、正常コマンド群の到達順には存在するが、実コマンド群の到達順には存在しない製造コマンドがあった場合でも、製造コマンドの集合が一致する場合には、正常と判定する。
【００９１】
一方、攻撃・異常検知部８０３は、実コマンド群の製品ＩＤには存在するが、正常コマンド群の製品ＩＤには存在しない製造コマンドがあった場合には、製造コマンドの集合が一致していても、攻撃・異常と判定する。
【００９２】
本実施の形態２における攻撃・異常検知の動作処理について、図１０、図１１、図１２のコマンド記憶領域の例を用いて、具体的に説明する。
【００９３】
図１０は、本発明の実施の形態２におけるコマンド記憶領域８１０の具体例として、コマンド記憶領域１０１０が記憶されている状態を示した図である。まず、図１０に示すコマンド記憶領域１０１０に対する攻撃・異常検知の動作処理例について説明する。
【００９４】
正常コマンド記憶領域１０２０には、宛先別コマンド抽出部８０２が、工場シミュレータ８５１から送信された製造コマンドを解釈して、コマンド宛先１０２１、コマンド名１０２２、コマンドパラメータ１０２３、製品ＩＤ１０２５を抽出し、到達順１０２４を付与した結果が蓄積されているものとする。
【００９５】
一方、実コマンド記憶領域１０３０には、宛先別コマンド抽出部８０２が、実工場８５２から送信された製造コマンドを解釈して、コマンド宛先１０３１、コマンド名１０３２、コマンドパラメータ１０３３、製品ＩＤ１０３５を抽出し、到達順１０３４を付与した結果が蓄積されているものとする。
【００９６】
ここで、正常コマンド記憶領域１０２０には、５つの製造コマンドが蓄積されており、実コマンド記憶領域１０３０には、３つの製造コマンドが蓄積されており、正常な状態である例に基づき、動作を説明する。
【００９７】
図１１は、本発明の実施の形態２におけるコマンド記憶領域１０１０の具体例として、図１０に示すコマンド記憶領域１０１０の例の状態で、実工場８５２から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域１１１０が記憶されている状態を示した図である。
【００９８】
より具体的には、コマンド記憶領域１１１０の例は、図１０に示すコマンド記憶領域１０１０の例の状態で、宛先別コマンド抽出部８０２が、実工場８５２から新たに１つの製造コマンド「（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝５０、Ｄ＝０、．．．、到達順＝４、製品ＩＤ＝Ｐ００２）」を受信し、実コマンド記憶領域１１３０に蓄積した状態に相当する。
【００９９】
ここで、攻撃・異常検知部８０３は、前述の新たな製造コマンドから、コマンド宛先＝設備１となる正常コマンド群を正常コマンド記憶領域１１２０から取得し、コマンド宛先＝設備１となる実コマンド群を実コマンド記憶領域１１３０から取得する。
【０１００】
この結果として、攻撃・異常検知部８０３は、正常コマンド群として「（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１００、Ｂ＝２０、．．．、到達順＝１）、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝１００、Ｄ＝０、．．．、到達順＝２）、（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝３）、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝５０、Ｄ＝０、．．．、到達順＝４）」を得る。
【０１０１】
同様にして、攻撃・異常検知部８０３は、実コマンド群として「（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１００、Ｂ＝２０、．．．、到達順＝１）、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝１００、Ｄ＝０、．．．、到達順＝２）、（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝３）、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝５０、Ｄ＝０、．．．、到達順＝４）」を得る。
【０１０２】
このとき、攻撃・異常検知部８０３は、得られた正常コマンド群と実コマンド群を比較する。そして、攻撃・異常検知部８０３は、比較結果として、コマンド宛先、コマンド名、コマンドパラメータ、到達順がすべて一致するため、製造コマンドの順序が一致していると解釈する。
【０１０３】
次に、攻撃・異常検知部８０３は、前述の新たな製造コマンドから、製品ＩＤ＝Ｐ００２となる正常コマンド群を正常コマンド記憶領域１１２０から取得し、製品ＩＤ＝Ｐ００２となる実コマンド群を実コマンド記憶領域１１３０から取得する。
【０１０４】
この結果として、攻撃・異常検知部８０３は、正常コマンド群として「（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝３）、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝５０、Ｄ＝０、．．．、到達順＝４）」を得る。
【０１０５】
同様にして、攻撃・異常検知部８０３は、実コマンド群として「（コマンド宛先＝設備１、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝３）、（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝５０、Ｄ＝０、．．．、到達順＝４）」を得る。
【０１０６】
このとき、攻撃・異常検知部８０３は、得られた正常コマンド群と実コマンド群を比較する。そして、攻撃・異常検知部８０３は、比較結果として、コマンド宛先、コマンド名、コマンドパラメータがすべて一致するため、製造コマンドの集合が一致していると解釈する。
【０１０７】
次に、図１２は、本発明の実施の形態２におけるコマンド記憶領域１０１０の具体例として、図１１に示すコマンド記憶領域１１１０の例の状態で、実工場８５２から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域１２１０が記憶されている状態を示した図である。
【０１０８】
より具体的には、コマンド記憶領域１２１０の例は、図１１に示すコマンド記憶領域１１１０の例の状態で、宛先別コマンド抽出部８０２が、実工場８５２から新たに１つの製造コマンド「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝８０、Ｂ＝１５、．．．、到達順＝１、製品ＩＤ＝Ｐ１０２）」を受信し、実コマンド記憶領域１２３０に蓄積した状態に相当する。
【０１０９】
ここで、攻撃・異常検知部８０３は、前述の新たな製造コマンドから、コマンド宛先＝設備２となる正常コマンド群を正常コマンド記憶領域１２２０から取得し、コマンド宛先＝設備２となる実コマンド群を実コマンド記憶領域１２３０から取得する。
【０１１０】
この結果として、攻撃・異常検知部８０３は、正常コマンド群として「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝８０、Ｂ＝１５、．．．、到達順＝１）」を得る。
【０１１１】
同様にして、攻撃・異常検知部８０３は、実コマンド群として「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝８０、Ｂ＝１５、．．．、到達順＝１）」を得る。
【０１１２】
このとき、攻撃・異常検知部８０３は、得られた正常コマンド群と実コマンド群を比較する。そして、攻撃・異常検知部８０３は、比較結果として、コマンド宛先、コマンド名、コマンドパラメータ、到達順がすべて一致するため、製造コマンドの順序が一致していると解釈する。
【０１１３】
次に、攻撃・異常検知部８０３は、前述の新たな製造コマンドから、製品ＩＤ＝Ｐ１０２となる正常コマンド群を正常コマンド記憶領域１１２０から取得し、製品ＩＤ＝Ｐ１０２となる実コマンド群を実コマンド記憶領域１１３０から取得する。
【０１１４】
この結果として、攻撃・異常検知部８０３は、正常コマンド群として「空集合」を得る。同様にして、攻撃・異常検知部８０３は、実コマンド群として「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝８０、Ｂ＝１５、．．．、到達順＝１、製品ＩＤ＝Ｐ１０２）」を得る。
【０１１５】
このとき、攻撃・異常検知部８０３は、得られた正常コマンド群と実コマンド群を比較する。そして、攻撃・異常検知部８０３は、比較結果として、実コマンド群と比較すべき正常コマンド群が空集合のため、製造コマンドの集合が一致していないと解釈し、攻撃・異常と判定する。
【０１１６】
このように、本実施の形態２では、製造コマンドの宛先に加えて製品ＩＤを用いることで、特定の製造コマンドの宛先が破棄された場合であっても、製品ＩＤを用いて実工場の製造コマンドに対する攻撃・異常が検知できるという顕著な効果を得ることができる。
【０１１７】
実施の形態３．
本実施の形態３では、製造コマンドの宛先に加えて、製品ＩＤ等の追加情報を用いた場合に、特定の宛先の製造コマンドおよび製品ＩＤが破棄される攻撃・異常を検知可能な検知サーバを実現する場合について説明する。
【０１１８】
図１３は、本発明の実施の形態３における検知サーバ１３０１の構成図である。検知サーバ１３０１は、攻撃・異常検知装置の具体例に相当する。
【０１１９】
検知サーバ１３０１は、図１の検知サーバ１０１と比較して、時間計測部１３０４をさらに備えているとともに、正常コマンド記憶領域１３２０および実コマンド記憶領域１３３０が記憶するデータ項目に、製品ＩＤ、到達予想時間、到達時間、累積時間がさらに追加されている点が異なっている。そこで、これらの相違点を中心に、以下に説明する。
【０１２０】
図１４は、本発明の実施の形態３における検知サーバ１３０１で実行される攻撃・異常検知処理の一連動作を示すフローチャートである。以下、この図１４に示すフローチャートに基づいて、検知サーバ１３０１内の宛先別コマンド抽出部１３０２および攻撃・異常検知部１３０３による攻撃・異常検知処理について説明する。
【０１２１】
ステップＳ３０１において、宛先別コマンド抽出部１３０２は、時間計測部１３０４により起動される。そして、宛先別コマンド抽出部１３０２は、正常コマンド記憶領域１３２０より、コマンド宛先ごとに、到達時間１３２７が空欄の製造コマンドのうち、到達順が最も小さい製造コマンドを抽出し、次に来るべき実コマンドの一覧として記憶しておく。
【０１２２】
次に、ステップＳ３０２において、宛先別コマンド抽出部１３０２は、次に来るべき実コマンドの一覧の中に製造コマンドが存在するか否かを確認する。そして、宛先別コマンド抽出部１３０２は、次に来るべき実コマンドの一覧の中に製造コマンドが存在する場合には、その１つを取り出し、ステップＳ３０３に進む。一方、宛先別コマンド抽出部１３０２は、次に来るべき実コマンドの一覧の中に製造コマンドが存在しない場合には、一連処理を終了する。
【０１２３】
ステップＳ３０３に進んだ場合には、宛先別コマンド抽出部１３０２は、ステップＳ３０２で取り出した製造コマンドの累積時間に、前回起動時の時間と現在時刻との差分を加算する。
【０１２４】
さらに、宛先別コマンド抽出部１３０２は、同一のコマンド宛先、かつ、同一の到達順を持つ製造コマンドが、実コマンド記憶領域１３３０に存在する場合には、累積時間で到達時間を更新し、正常コマンド記憶領域１３２０の当該の製造コマンドの到達時間１３２７および累積時間１３２８を更新する。
【０１２５】
次に、ステップＳ３０４において、攻撃・異常検知部１３０３は、当該製造コマンドの累積時間が、到達予想時間を超過しているか否かを確認する。そして、攻撃・異常検知部１３０３は、当該製造コマンドの累積時間が到達予想時間を超過していない場合には、正常と判定し、ステップＳ３０５へ進む。
【０１２６】
一方、攻撃・異常検知部１３０３は、当該製造コマンドの累積時間が到達予想時間を超過している場合には、攻撃・異常と判定し、ステップＳ３０６へ進む。その後、いずれの判定結果の場合にも、ステップＳ３０７に進む。
【０１２７】
ステップＳ３０７に進んだ場合には、宛先別コマンド抽出部１３０２は、次に来るべき実コマンドの一覧の中から、処理対象となっていた製造コマンドを削除する。その後、ステップＳ３０２に戻り、次の処理対象コマンドについて一連処理を繰り返す。
【０１２８】
本実施の形態３における攻撃・異常検知の動作処理について、図１５、図１６のコマンド記憶領域の例を用いて、具体的に説明する。
【０１２９】
００８２
図１５は、本発明の実施の形態３におけるコマンド記憶領域１３１０の具体例として、コマンド記憶領域１５１０が記憶されている状態を示した図である。まず、図１５に示すコマンド記憶領域１５１０に対する攻撃・異常検知の動作処理例について説明する。
【０１３０】
正常コマンド記憶領域１５２０には、宛先別コマンド抽出部１３０２が、工場シミュレータ１３５１から送信された製造コマンドを解釈して、コマンド宛先１５２１、コマンド名１５２２、コマンドパラメータ１５２３、製品ＩＤ１５２５、到達想定時間１５２６を抽出し、到達順１５２４を付与した結果が蓄積されているものとする。
【０１３１】
一方、実コマンド記憶領域１５３０には、宛先別コマンド抽出部１３０２が、実工場１３５２から送信された製造コマンドを解釈して、コマンド宛先１５３１、コマンド名１５３２、コマンドパラメータ１５３３、製品ＩＤ１５３５を抽出し、到達順１５３４を付与した結果が蓄積されているものとする。
【０１３２】
ここで、正常コマンド記憶領域１５２０には、３つの製造コマンドが蓄積されており、実コマンド記憶領域１５３０には、１つの製造コマンドが蓄積されており、正常な状態である例に基づき、動作を説明する。
【０１３３】
図１６は、本発明の実施の形態３におけるコマンド記憶領域１３１０の具体例として、図１５に示すコマンド記憶領域１５１０の例の状態で、実工場１３５２から新たに１つの製造コマンドがさらに受信され、更新されたコマンド記憶領域１６１０が記憶されている状態を示した図である。
【０１３４】
より具体的には、コマンド記憶領域１６１０の例は、図１５に示すコマンド記憶領域１５１０の例の状態で、宛先別コマンド抽出部１３０２が、実工場１３５２から新たに１つの製造コマンド「（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝１００、Ｄ＝０、．．．、到達順＝２、製品ＩＤ＝Ｐ００１）」を受信し、実コマンド記憶領域１６３０に蓄積した状態に相当する。
【０１３５】
ここで、時間計測部１３０４が、時間超過の攻撃・異常検知を行う処理の起動を宛先別コマンド抽出部１３０２に依頼すると、宛先別コマンド抽出部１３０２は、正常コマンド記憶領域１６２０から「（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝１００、Ｄ＝０、．．．、到達順＝２、製品ＩＤ＝Ｐ００１、到達想定時間＝１２０、到達時間＝（空欄）、累積時間＝１０）、（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝１、製品ＩＤ＝Ｐ００２、到達想定時間＝１５０、到達時間＝（空欄）、累積時間＝１００）」を取得する。
【０１３６】
ここで、前回の時間計測部１３０４の起動と現在時刻との時間差分が９０とすると、宛先別コマンド抽出部１３０２は、到達時間と累積時間を更新する結果、「（コマンド宛先＝設備１、コマンド名＝工程完了、コマンドパラメータ＝Ｃ＝１００、Ｄ＝０、．．．、到達順＝２、製品ＩＤ＝Ｐ００１、到達想定時間＝１２０、到達時間＝１００、累積時間＝１００）、（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝１、製品ＩＤ＝Ｐ００２、到達想定時間＝１５０、到達時間＝（空欄）、累積時間＝１９０）」となる。
【０１３７】
このとき、「（コマンド宛先＝設備２、コマンド名＝工程開始、コマンドパラメータ＝Ａ＝１５０、Ｂ＝５０、．．．、到達順＝１、製品ＩＤ＝Ｐ００２、到達想定時間＝１５０、到達時間＝（空欄）、累積時間＝１９０）」は、到達想定時間を累積時間が超過している。従って、攻撃・異常検知部１３０３は、攻撃・異常と判定する。
【０１３８】
このように、本実施の形態３では、製造コマンドの到達想定時間と到達時間と累積時間を用いることで、特定の宛先の製造コマンドおよび製品ＩＤが破棄された場合であっても、到達想定時間と累積時間の差分から、攻撃・異常が検知できるという顕著な効果を得ることができる。
【符号の説明】
【０１３９】
１０１  検知サーバ、１０２  宛先別コマンド抽出部、１０３  攻撃・異常検知部、１１０  コマンド記憶領域、１２０  正常コマンド記憶領域、１３０  実コマンド記憶領域、１５１  工場シミュレータ、１５２  実工場、３０１  演算装置、３０２  外部記憶装置、３０３  主記憶装置、３０４  通信装置、３０５  バス。
【図１】
0006541903.tif 000002
【図２】
0006541903.tif 000003
【図３】
0006541903.tif 000004
【図４】
0006541903.tif 000005
【図５】
0006541903.tif 000006
【図６】
0006541903.tif 000007
【図７】
0006541903.tif 000008
【図８】
0006541903.tif 000009
【図９】
0006541903.tif 000010
【図１０】
0006541903.tif 000011
【図１１】
0006541903.tif 000012
【図１２】
0006541903.tif 000013
【図１３】
0006541903.tif 000014
【図１４】
0006541903.tif 000015
【図１５】
0006541903.tif 000016
【図１６】
0006541903.tif 000017