(57)【要約】  パケットの検査や不正コマンドの検知に必要な所要時間を削減する。不正侵入防止装置（３）は、制御対象装置に対するコマンドを含むパケットが所定の規則に従って送信される通信網（９−１）に接続される。解析テーブル記憶部（３４）は、所定の数のコマンドを時間の情報と共に記憶するための所定の数のスロットからなる解析テーブルを記憶する。入力部（３１）は、通信網（９−１）から検出したパケットからコマンドを抽出する。パース部（３２）は、コマンドを解析テーブルに挿入する。解析部（３３）は、解析テーブルの各スロットに記憶された複数のコマンドが所定の規則に従っているか否かを解析する。通知部（３５）は、解析結果が異常を示すときにアラームを出力する。出力部（３６）は、解析結果に従ってパケットを通過させるか破棄するかを決定する。
2019035313.tif 000002
【特許請求の範囲】
【請求項１】
制御対象装置に対するコマンドを含むパケットが所定の規則に従って送信されるネットワークに接続された不正侵入防止装置であって、
所定の数の上記コマンドを時間の情報と共に記憶するための上記所定の数のスロットからなる解析テーブルを記憶する解析テーブル記憶部と、
上記ネットワークから検出した上記パケットから抽出した上記コマンドを上記解析テーブルに挿入するパース部と、
上記解析テーブルの各スロットに記憶された複数の上記コマンドが上記所定の規則に従っているか否かを解析する解析部と、
を含む不正侵入防止装置。
【請求項２】
請求項１に記載の不正侵入防止装置であって、
上記解析部は、上記解析テーブルの各スロットのうち上記コマンドが記憶されているスロットの位置が上記一定時間周期と一致するか否かを解析するものである、
不正侵入防止装置。
【請求項３】
請求項１に記載の不正侵入防止装置であって、
上記解析部は、上記解析テーブルの各スロットに記憶された上記コマンド間の差分が上記所定の規則に従ってコマンドが設定されたときに生じ得る変化と一致するか否かを解析するものである、
不正侵入防止装置。
【請求項４】
請求項１に記載の不正侵入防止装置であって、
上記解析部は、上記解析テーブルの各スロットに記憶された上記コマンドの内容が上記所定の規則に従って設定され得る内容であるか否かを解析するものである、
不正侵入防止装置。
【請求項５】
請求項１から４のいずれかに記載の不正侵入防止装置であって、
上記解析部による解析結果が異常を示すときに異常の発生を通知するアラームを出力する通知部をさらに含む、
不正侵入防止装置。
【請求項６】
請求項１に記載の不正侵入防止装置であって、
上記解析部による解析結果が異常を示すときに上記ネットワークから検出した上記パケットに含まれる上記コマンドの内容を上記所定の規則に従って設定され得る内容に改変して上記ネットワークへ送出する出力部をさらに含む、
不正侵入防止装置。
【請求項７】
制御対象装置に対するコマンドを含むパケットが所定の規則に従って送信されるネットワークに接続された不正侵入防止装置が実行する不正侵入検知方法であって、
解析テーブル記憶部が、所定の数の上記コマンドを時間の情報と共に記憶するための上記所定の数のスロットからなる解析テーブルを記憶しており、
パース部が、上記ネットワークから検出した上記パケットから抽出した上記コマンドを上記解析テーブルに挿入し、
解析部が、上記解析テーブルの各スロットに記憶された複数の上記コマンドが上記所定の規則に従っているか否かを解析する、
不正侵入防止方法。
【請求項８】
請求項１から６のいずれかに記載の不正侵入防止装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、電力、ガス、水道、化学、石油等の社会インフラを運用する産業システムへの不正な侵入を防止する技術に関する。
【背景技術】
【０００２】
インターネットテクノロジ（以下、「IT」と呼ぶ）の分野では、マルウェアや分散型サービス拒否攻撃（DDoS: Distributed Denial of Service）といったサイバー攻撃が行われるようになり、不正侵入検知システム（IDS: Intrusion Detection System）や不正侵入防止システム（IPS: Intrusion Prevention System）、ファイアウォール（FW: Firewall）等のセキュリティ技術が発達してきた。これらのセキュリティ技術を、様々な社会インフラを運用制御するためのオペレーションテクノロジ（以下、「OT」と呼ぶ）に導入する取り組みが行われている。【０００３】
ITの分野では、ネットワーク内のすべての情報を情報資産と考え、その情報資産の資産価値が、例えば、漏えい、削除、改変等の理由から毀損することを防ぐことをセキュリティ確保の目的としている。一方、OTの分野では、制御装置が制御対象装置に対してコマンドをパケットとして送信することで制御を行っており、OTネットワークへのサイバー攻撃では、制御対象装置に対するコマンドの偽装や過大なコマンド送信等により重要インフラ自体が破壊され、それにより利用者や運用者の人命に危険が及ぶことが想定される。OTネットワークにおけるサイバー攻撃対策では、こうした事態を防ぐことをセキュリティ確保の目的とする必要がある。【０００４】
OTネットワークの一例として、社会インフラを運用する産業システムにおける監視制御ネットワークが挙げられる。このシステムでは、制御装置が制御対象装置に対してコマンドをパケットとして送信することで制御を行っている。コマンドは、例えばUDP（User Datagram Protocol）のペイロードとして実現されており、実装においては複数のコマンドが１個のUDPペイロードに含まれている。【０００５】
ITネットワークで用いるIDS/IPSでは、サイバー攻撃の検知性能を低下させることなく通信遅延を削減し、セキュリティ機器が処理すべき負荷を低減する提案がなされている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−１６２３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ITネットワークで用いるIDS/IPSをOTネットワークのサイバー攻撃対策に転用した場合、以下のような課題が生じる。【０００８】
OTの分野では、OTネットワークの通信の特性として、コマンドが数百ミリ秒程度の周期で定期的に送信されており、周期のゆらぎも数ミリ秒程度に抑えられるようにシステム設計がされている。OTネットワークにおいて、ITネットワーク用のIDS/IPSによって異常を引き起こす不正なコマンドを含んだパケットを検知する際には、多数のシグネチャやコードエミュレーション等の検査を行うことになる。これらの検査によりパケットの送出が遅延すると、そのパケットに含まれる正常なコマンドの送出も遅延することになる。許容されるコマンド周期のゆらぎを超えた遅延が生じると、不正なコマンドが起こそうとしていた異常とは異なる、別の異常が起きる可能性がある。【０００９】
この発明の目的は、上記のような点に鑑みて、パケットの検査や不正コマンドの検知に必要な所要時間を削減し、パケット送出の遅延が小さい不正侵入検知技術を実現することである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、この発明の不正侵入防止装置は、制御対象装置に対するコマンドを含むパケットが所定の規則に従って送信されるネットワークに接続された不正侵入防止装置であって、所定の数のコマンドを時間の情報と共に記憶するための所定の数のスロットからなる解析テーブルを記憶する解析テーブル記憶部と、ネットワークから検出したパケットから抽出したコマンドを解析テーブルに挿入するパース部と、解析テーブルの各スロットに記憶された複数のコマンドが所定の規則に従っているか否かを解析する解析部と、を含む。
【発明の効果】
【００１１】
この発明の不正侵入検知技術によれば、パケットの検査や不正コマンドの検知に必要な所要時間を削減し、パケット送出の遅延を小さくすることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、不正侵入防止システムの機能構成を例示する図である。
【図２】図２は、制御装置が送信するパケットの構造を例示する図である。
【図３】図３は、制御対象装置の状態遷移を例示する図である。
【図４】図４は、不正侵入防止装置の機能構成を例示する図である。
【図５】図５は、不正侵入防止方法の処理手続きを例示する図である。
【図６】図６は、スロット位置の正常性確認を説明するための図である。
【図７】図７は、スロット間のデータの正常性確認を説明するための図である。
【図８】図８は、スロット内のデータの正常性確認を説明するための図である。
【図９】図９は、タイムアウトの検出を説明するための図である。
【図１０】図１０は、異常検知時のパケット改変を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１４】
実施形態の不正侵入防止システムは、図１に示すように、制御装置１と、少なくとも１台の制御対象装置２−ｎ（ｎ＝１，２，…、ｎは１以上の整数）と、不正侵入防止装置３と、セキュリティ監視装置４とを含む。制御装置１および制御対象装置２−ｎはそれぞれ通信網９−１に接続される。不正侵入防止装置３は通信網９−１を構成するネットワーク機器として構成され、通信網９−１と物理的または論理的に分割された通信網９−２に接続される。セキュリティ監視装置４は通信網９−２に接続される。通信網９−１および通信網９−２は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網である。
【００１５】
不正侵入防止装置３は、例えば、Ｌ２スイッチ、Ｌ３スイッチ、ブリッジ、ルータ等の汎用的なネットワーク機器に、不正侵入防止装置３が備えるべき機能として後述する各機能を備えたものでもよいし、後述する各機能を実装した専用のネットワーク機器であってもよい。また、後述する各機能を実装したプログラムを汎用のコンピュータに読み込んで構成した専用の装置としてもよい。不正侵入防止装置３は、OTネットワークの通信要件として求められる低遅延な処理を実現するために、後述する各機能に性能特化するように実装した専用のCPU（Central Processing Unit）を有する専用のPAL（Programmable Array Logic）、GAL（Generic Array Logic）、FPGA（Field-Programmable Gate Array）等を用いて構成してもよい。
【００１６】
制御装置１および制御対象装置２−ｎは、従来のOTネットワークで用いられる制御装置および制御対象装置である。制御装置１は、制御対象装置２−ｎに対するコマンドを含むパケットを一定時間周期で制御対象装置２−ｎに対して送信する。制御対象装置２−ｎは受信したパケットに含まれるコマンドに従って動作する。
【００１７】
この実施形態では、制御対象装置２−ｎは複数の状態を持ち、それぞれの状態ごとに他の状態へ変更するためのコマンドを持つものとする。例えば、制御対象装置２−ｎが赤・青・黄の３個の電灯を備え、色ごとに電灯を点灯または消灯できる機能を持つ信号機であるものとする。制御装置１は、制御対象装置２−ｎに対して１秒ごとに３個の電灯の点灯または消灯を指示するコマンドを含んだ１個のパケットを送信する。制御対象装置２−ｎは一定時間ごとに受信するパケットに含まれたコマンドに従って３個の電灯それぞれの点灯状態を制御する。
【００１８】
図２に、３個の電灯の点灯または消灯を指示するコマンドを含むパケットの例を示す。このパケットは、パケットヘッダとコマンド部分とを含み、コマンド部分は、青の電灯の点灯（ON）または消灯（OFF）を指示する青コマンドと、黄の電灯の点灯（ON）または消灯（OFF）を指示する黄コマンドと、赤の電灯の点灯（ON）または消灯（OFF）を指示する赤コマンドとからなる。
【００１９】
図３に、制御対象装置２−ｎが備える３個の電灯の状態遷移を示す。図３では正常な状態遷移を実線の矢印で示し、異常な状態遷移を破線の矢印で示している。信号機の電灯が「青」→「黄」→「赤」→「青」→・・・と繰り返すことを正常な状態遷移とし、「黄」→「青」、「青」→「赤」、「赤」→「黄」は異常な状態遷移とする。同一の状態を継続することは正常な状態遷移である。また、同時に複数の電灯が点灯する状態（点灯数が２、３個の場合）も、すべての電灯が消灯している状態（点灯数が０個の場合）もあってはならないこととする。さらに、パケットの到着が0.5秒以上遅延することもあってはならないこととする。
【００２０】
従来の不正侵入防止装置では、図３に示した状態遷移ごとに正常な状態遷移なのか異常な状態遷移なのかを明示したルールを設計し、異常な状態遷移の場合には、コマンドを内包するパケットには影響を与えずにシステム全体の管理者へ警告を行うか、コマンドを内包するパケットを廃棄してシステム全体が異常となることを防止していた。
【００２１】
実施形態の不正侵入防止装置３は、図４に示すように、入力部３１、パース部３２、解析部３３、解析テーブル記憶部３４、通知部３５、および出力部３６を備える。侵入防止装置３が図５に示す各ステップの処理を行うことにより実施形態の不正侵入防止方法が実現される。
【００２２】
解析テーブル記憶部３４には、Ｍ（≧２）個のスロットを備える解析テーブルが記憶されている。解析テーブルが備えるスロットの数は有限であり、制御装置１がパケットを送信する間隔に基づいて観測する必要のある時間をカバーできるように設計すればよい。例えば、スロットの数は７個とする。１個のスロットには一定時間周期で受信したパケットに含まれるコマンドの内容が１個だけ記憶される。例えば、上記の制御装置であれば、0.5秒を単位時間として、パケットを受信した時間の情報に基づいて、どのスロットに記憶するかを決定する。解析テーブルは上記の単位時間ごとにスロットをシフトする。解析テーブルの先頭のスロットには新たに受信したパケットに含まれるコマンドが記憶され、末尾のスロットに記憶されていたコマンドは削除される。すなわち、解析テーブルは、コマンドを記憶するための所定の数のスロットを用いて、所定の数のコマンドを時間の情報と共に時系列に記憶している。
【００２３】
ステップＳ１において、入力部３１は、通信網９−１から制御装置１が送信したコマンドを内包するパケットを検出し、不正侵入防止装置３への入力とする。入力部３１は検出したパケットをパース部３２へ送る。
【００２４】
ステップＳ２において、パース部３２は、入力部３１からパケットを受け取り、そのパケットからコマンドを抽出して解析テーブル記憶部３４に記憶された解析テーブルの先頭のスロットへ時間の情報と共に挿入する。時間の情報は、入力部３１がパケットを受信した時間を示す情報である。解析テーブルでは、すでに記憶しているコマンドが１単位時間分シフトされ、末尾のスロットに記憶されていたコマンドは消去される。
【００２５】
ステップＳ３において、解析部３３は、解析テーブル記憶部３４に記憶された解析テーブルの各スロットに記憶された複数のコマンドを解析し、正常もしくは異常を示す解析結果を生成する。解析テーブルから正常もしくは異常を判断する方法は、解析テーブルに記憶されている複数のコマンドが既知の規則に従っているか否かを判断するものであり、具体的には、データが記憶されたスロットの位置の正常性確認、スロット間のデータの正常性確認、スロット内のデータの正常性確認、タイムアウトの検出などの検査により、状態遷移が正常に行われているか否かを解析する。これらの正常性の解析方法は後述する。解析部３３は、解析結果が異常を示すものであればステップＳ４へ処理を進め、解析結果が正常を示すものであればステップＳ６へ処理を進める。
【００２６】
ステップＳ４において、通知部３５は、セキュリティ監視装置４へ異常の発生を通知するアラームを送信する。セキュリティ監視装置４は、受信したアラームに基づいて、例えば監視画面にメッセージを表示する等の方法により、システム管理者に異常の発生を通知する。ただし、アラームの送信は必須ではなく、異常の種類や異常の発生頻度等に応じてアラームを送信するか否かを判断してもよい。なお、通知部３５が行うステップＳ４は、出力部３６が行うステップＳ５またはステップＳ６と並列で行うことができる。
【００２７】
ステップＳ５において、出力部３６は、解析結果が異常を示したパケットを破棄する。ただし、解析結果が異常を示すものであるときにパケットを破棄することは必須の構成ではなく、例えば、アラームの送信だけは行うがパケットはそのまま通過させる構成とすることもできる。この場合、ステップＳ４の処理を実行した後、ステップＳ５ではなくステップＳ６へ処理を進める。ただし、パケットをそのまま通過させる構成とする場合には、アラームの送信は必須の構成である。
【００２８】
ステップＳ６において、出力部３６は、解析結果が正常を示したパケットをそのまま送出して通過させる。その後、制御対象装置２−ｎは受信したパケットに含まれるコマンドで指示された内容に従って動作を行う。
【００２９】
以下、解析部３３が行う解析方法を、スロットの位置の正常性確認、スロット間のデータの正常性確認、スロット内のデータの正常性確認、タイムアウトの検出の４つを例にして、詳細に説明する。これらの解析方法はすべて実装する必要はなく、パケットが従う既知の規則に適した方法を適宜選択して実装すればよい。
【００３０】
＜スロットの位置の正常性確認＞
図６を参照して、スロットの位置の正常性を確認する方法を説明する。図６は、t秒からt+1.5秒まで0.5秒ごとに解析テーブルの状態を左から右へ並べたものである。各解析テーブル内のスロットは、下方のスロットが先頭のスロットであり、上方のスロットが末尾のスロットである。すなわち、下方から上方へ各単位時間の状態が時系列に並んでいる。各スロット内の丸いオブジェクトは電灯を点灯する指示を表している。例えば、t秒の時点（最も左）の解析テーブルであれば、赤の電灯を点灯する指示を含むコマンドが最新のものであることがわかる。
【００３１】
制御装置１が１秒単位でパケットを送信することが既知であり、0.5秒間パケットの到達が遅延した場合に異常と判定する場合、解析テーブル内のコマンドが記憶されているスロットが１個おきに配置されているかどうかを確認すればよい。図６の例では、t+1.5秒の時点（最も右）の解析テーブルでは、コマンドが記憶されているスロットが下から１番目、４番目、６番目となり、最新のパケットは0.5秒遅延していることがわかる。したがって、解析部３３は、t+1.5秒の時点でスロット位置の異常を示す解析結果を出力する。
【００３２】
＜スロット間のデータの正常性確認＞
図７を参照して、スロット間のデータの正常性を確認する方法を説明する。コマンドが取り得る順番の規則が既知である場合、解析テーブル内の最新のコマンドが記憶されているスロットと、その１つ前のコマンドが記憶されているスロットとでデータを比較し、既知の順番に沿っているかどうかを確認すればよい。図７の例では、t+1.0秒の時点（最も右）の解析テーブルで、最新のコマンドが記憶されているスロットは黄の電灯を点灯するコマンドであり、その１つ前のコマンドが記憶されているスロットは赤の電灯を点灯するコマンドである。「赤」→「黄」への状態遷移は異常な状態遷移であるため、解析部３３は、t+1.0秒の時点でスロット間のデータ異常を示す解析結果を出力する。
【００３３】
＜スロット内のデータの正常性確認＞
図８を参照して、スロット内のデータの正常性を確認する方法を説明する。スロット内のデータが取り得る規則が既知である場合、解析テーブル内の最新のコマンドが記憶されているスロットの内容を参照し、既知の規則に沿っているかどうかを確認すればよい。図８の例では、t+1.0秒の時点（最も右）の解析テーブルで、最新のデータが記憶されているスロットは青と赤の電灯を同時に点灯するコマンドである。複数の電灯が同時に点灯する状態は異常とされているため、解析部３３は、t+1.0秒の時点でスロット内のデータ異常を示す解析結果を出力する。
【００３４】
＜タイムアウトの検出＞
図９を参照して、パケットが何らかの理由で到達しなかった場合のようにパケットがタイムアウトしたことを検出する方法を説明する。制御装置が１秒単位でパケットを送信することが既知である場合、パケットのタイムアウトを検出するには、解析テーブル内の最新のコマンドが記憶されているスロットと、その１つ前のコマンドが記憶されているスロットとの位置を確認すればよい。図９の例では、t+2.0秒の時点（最も右）の解析テーブルで、最新のコマンドが記憶されているスロットと、その１つ前のコマンドが記憶されているスロットとの間に３個の空スロットがあり、１個前のパケットを受信してから最新のパケットを受信するまでに２秒の間隔が空いていたことがわかる。本来t+1.0秒の時点で受信すべきであったパケットが到達していないため、解析部３３は、t+2.0秒の時点でタイムアウトによる異常を示す解析結果を出力する。
【００３５】
解析部３３が行う解析方法のロジックをより具体的に説明する。以下では、パケットが従う規則のうち既知の規則ごとに４つのケースに分けて説明する。
【００３６】
＜ケース１：周期的にパケットのデータが変化することが既知であるとき＞
ある時刻を基準（t=0）として、G, Y, Rの値が下記(1)〜(4)のいずれにも該当しない場合、異常とみなす。なお、Gは青コマンド、Yは黄コマンド、Rは赤コマンドを示す。
【００３７】
(1) t=3.0 * l [sec] (l=0, 1, 2, …)ならば、G=1, Y=0, R=0
(2) t=3.0 * m + 1.0 [sec] (m=0, 1, 2, …)ならば、G=0, Y=1, R=0
(3) t=3.0 * n + 2.0 [sec] (n=0, 1, 2, …)ならば、G=0, Y=0, R=1
(4) t=1.0 * k + 0.5 [sec] (k=0, 1, 2, …)ならば。G=0, Y=0, R=0
【００３８】
表１に各時刻のコマンドの内容とそれぞれの解析結果を示す。t=4.5のコマンドは、1.0* 4 + 0.5であり上記(4)に該当するため、本来はG=0, Y=0, R=0でなければならないが、実際にはG=0, Y=1, R=0であるため、異常と判断される。また、t=6.0のコマンドは、3.0 * 2であり上記(1)に該当するため、本来はG=1, Y=0, R=0でなければならないが、実際にはG=1, Y=1, R=0であるため、異常と判断される。
【００３９】
【表１】
2019035313.tif 000003
＜ケース２：スロット毎にパケットのデータが取り得る値の範囲が既知であるとき＞
各時刻のコマンド中の各値が取り得る値の範囲内であるか否かを検査し、取り得る値の範囲から外れた値を持つコマンドは異常とみなす。
【００４０】
表２に各時刻のコマンドの内容とそれぞれの解析結果を示す。t=3.0のコマンドは、Gの値（=20）が取り得る値の範囲（0 ... 10）から外れているため、異常と判断される。t=6.0のコマンドは、Rの値（=4）が取り得る値の範囲（0 ... 3）から外れているため、異常と判断される。
【００４１】
【表２】
2019035313.tif 000004
【００４２】
＜ケース３：スロット毎に前のスロットとパケットのデータの差分が取り得る範囲が既知であるとき＞
ある時刻t=t0[sec]を基準として、以下の手順で判定を行う。
【００４３】
(1) t=t0におけるG, Y, Rの値をそれぞれG(t0), Y(t0), R(t0)とおく。
【００４４】
(2) 前後のスロットにてG, Y, Rが取り得る値の差分の範囲を以下とする。
【００４５】
ΔGmin < G(t0-1)-G(t0) < ΔGmax
ΔYmin < Y(t0-1)-Y(t0) < ΔYmax
ΔRmin < R(t0-1)-R(t0) < ΔRmax
【００４６】
ここで、ΔGmin, ΔGmaxはそれぞれGが取り得る値の差分の最小値と最大値、ΔYmin, ΔYmaxはそれぞれYが取り得る値の差分の最小値と最大値、ΔRmin, ΔRmaxはRが取り得る値の差分の最小値と最大値である。
【００４７】
(3) 上記を超える差分がG(t0-1)とG(t0)との間、Y(t0-1)とY(t0)との間、R(t0-1)とR(t0)との間のいずれかで存在する場合、異常とみなす。
【００４８】
表３に各時刻のコマンドの内容とそれぞれの解析結果を示す。t=3.0のコマンドは、Gの差分（+15）が取り得る値の差分の範囲（-10 ... 10）を超えているため、異常と判断される。t=6.0のコマンドは、Rの差分（-5）が取り得る値の差分の範囲（-3 ... 3）を超えているため、異常と判断される。
【００４９】
【表３】
2019035313.tif 000005
【００５０】
＜ケース４：コマンド中の各値の相互作用（先行・遅行・逆行）が既知であるとき＞
先行・遅行とは、ある値Ａが変化するとき、他の値Ｂが遅れて同じように変化することである。このとき、値Ａは値Ｂに先行し、値Ｂは値Ａに遅行するという。逆行とは、ある値Ａが変化するとき、他の値Ｂが逆の方向へ変化することである。
【００５１】
ある時刻t=t0[sec]を基準として、以下の手順で判定を行う。
【００５２】
(1) t=t0におけるG, Y, Rの値をそれぞれG(t0), Y(t0), R(t0)とおく。
【００５３】
(2) t=tnからt=tn+1へ遷移するとき、以下を満たさなければ異常とみなす。
【００５４】
先行・遅行の場合（Y(t), R(t)がG(t)に遅行）
(1-1) G(tn+1)-G(tn)>0であれば、Y(tn+2)-Y(tn+1)>0かつR(tn+2)-R(tn+1)>0
(1-2) G(tn+1)-G(tn)<0であれば、Y(tn+2)-Y(tn+1)<0かつR(tn+2)-R(tn+1)<0
逆行の場合（Y(t), R(t)がG(t)に逆行）
(2-1) G(tn+1)-G(tn)>0であれば、Y(tn+1)-Y(tn)<0かつR(tn+1)-R(tn)<0
(2-2) G(tn+1)-G(tn)<0であれば、Y(tn+1)-Y(tn)>0かつR(tn+1)-R(tn)>0
遅行かつ逆行の場合（Y(t), R(t)がG(t)に遅行かつ逆行）
(3-1) G(tn+1)-G(tn)>0であれば、Y(tn+2)-Y(tn+1)<0かつR(tn+2)-R(tn+1)<0
(3-2) G(tn+1)-G(tn)<0であれば、Y(tn+2)-Y(tn+1)>0かつR(tn+2)-R(tn+1)>0
【００５５】
表４に各時刻のコマンドの内容とそれぞれの解析結果を示す。t=6.0のコマンドは、YがG(t)に遅行する条件であるが、G(5.0)-G(4.0)<0（-5）のときにY(6.0)-Y(5.0)>0（+5）であり、上記の規則(1-2)に合致していないため、異常と判断される。
【００５６】
【表４】
2019035313.tif 000006
【００５７】
［変形例］
上述の実施形態では、解析部３３の解析結果が異常を示す場合、出力部３６がパケットを破棄するか、通知部３５がセキュリティ監視装置４へアラームを送信して出力部３６がパケットを通過させる例を示した。異常を検知することのみを目的とし、アラームを送信してパケットをそのまま通過させるように構成した場合、異常の状況によってはシステム全体を危険な状態に陥らせることも考えられる。そこで、変形例の不正侵入防止装置３は、異常なコマンドを伝搬することを防止するために、解析部３３の解析結果が異常を示す場合、出力部３６が送出するパケットに含まれるコマンドの内容を、既知の規則に合致するように改変する。これにより、パケットを受信する監視対象装置２−ｎは、既知の規則に合致した正常なコマンドのみを受信することになるため、異常な動作を引き起こすリスクを回避することができる。図１０は、異常検知時にパケットを改変する動作の例である。この例では、不正侵入防止装置３が受信したパケットは、複数の電灯を点灯する不正なコマンドを含んでいるため、既知の規則に合致するように青の電灯を点灯する指示を消灯する指示に改変し、赤の電灯のみを点灯するコマンドを送出している。
【００５８】
［効果］
従来の不正侵入防止装置では、制御対象機器の状態遷移図および異常遷移を特定するルールを実装し、発生した状態遷移が正常遷移か異常遷移かを判定していた。つまり、異常遷移を特定するルールをデータベースもしくはメモリ上に格納し、個々のコマンドについて制御対象機器の状態遷移が正常か異常かを逐一検査・解析していた。このことから、異常遷移を特定するルールが増大するに従い処理時間が増加し、OTネットワークが許容する遅延時間内に検査・解析・対処などの処理が完了しない懸念があった。
【００５９】
これに対し、本発明では、個々のコマンドについて逐一検査・解析を行わず、解析テーブルにコマンドの内容を時間の情報と共に時系列に保持しておき、コマンドの状態遷移の正常性を確認することにより、検査・解析・対処などの処理に必要な所要時間、すなわち不正侵入防止装置を適用することにより生じる遅延をより小さくすることができる。
【００６０】
上記の＜ケース１＞の場合においては、正常性確認は特定の時間間隔をおいたスロット間（＜ケース１＞の場合は３秒間隔）のビットマスク演算のみで検証可能であり、複雑なシグネチャを有しデータ列のマッチングを検証する場合と比べて、極めて小さな計算量で実施可能な方式である。
【００６１】
上記の＜ケース２＞＜ケース３＞＜ケース４＞の場合においても、正常性確認はスロット間の数値の単純な乗算・減算で行われることから、これらもまた小さな計算量で実施可能な方式である。
【００６２】
上述の変形例で説明したとおり、不正侵入防止装置は、異常を検知するのみの場合、アラーム発報と受信したパケットの再送を並列に行うことができる。このとき、異常を検知するのみならず、異常パケットが伝搬されたり、異常コマンドが実行されたりすることを防ぐために、アラームを発報するだけではなく、出力部３６が当該パケットの内容を安全なコマンドに改変し、システム全体が危険な状態に陥らないようなコマンドを含むパケットとして再送することもできる。このように構成することで、より安全にOTネットワークを運用することができる。
【００６３】
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００６４】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００６５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００６６】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００６８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019035313.tif 000007
【図２】
2019035313.tif 000008
【図３】
2019035313.tif 000009
【図４】
2019035313.tif 000010
【図５】
2019035313.tif 000011
【図６】
2019035313.tif 000012
【図７】
2019035313.tif 000013
【図８】
2019035313.tif 000014
【図９】
2019035313.tif 000015
【図１０】
2019035313.tif 000016
【手続補正書】
【提出日】令和2年1月23日(2020.1.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
＜スロット間のデータの正常性確認＞
図７を参照して、スロット間のデータの正常性を確認する方法を説明する。コマンドが取り得る順番の規則が既知である場合、解析テーブル内の最新のコマンドが記憶されているスロットと、その１つ前のコマンドが記憶されているスロットとでデータを比較し、既知の順番に沿っているかどうかを確認すればよい。図７の例では、t+1.0秒の時点（最も右）の解析テーブルで、最新のコマンドが記憶されているスロットは黄の電灯を点灯するコマンドを記憶しており、その１つ前のコマンドが記憶されているスロットは赤の電灯を点灯するコマンドを記憶している。「赤」→「黄」への状態遷移は異常な状態遷移であるため、解析部３３は、t+1.0秒の時点でスロット間のデータ異常を示す解析結果を出力する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
［変形例］
上述の実施形態では、解析部３３の解析結果が異常を示す場合、出力部３６がパケットを破棄するか、通知部３５がセキュリティ監視装置４へアラームを送信して出力部３６がパケットを通過させる例を示した。異常を検知することのみを目的とし、アラームを送信してパケットをそのまま通過させるように構成した場合、異常の状況によってはシステム全体を危険な状態に陥らせることも考えられる。そこで、変形例の不正侵入防止装置３は、異常なコマンドを伝搬することを防止するために、解析部３３の解析結果が異常を示す場合、出力部３６が送出するパケットに含まれるコマンドの内容を、既知の規則に合致するように改変する。これにより、パケットを受信する制御対象装置２−ｎは、既知の規則に合致した正常なコマンドのみを受信することになるため、異常な動作を引き起こすリスクを回避することができる。図１０は、異常検知時にパケットを改変する動作の例である。この例では、不正侵入防止装置３が受信したパケットは、複数の電灯を点灯する不正なコマンドを含んでいるため、既知の規則に合致するように青の電灯を点灯する指示を消灯する指示に改変し、赤の電灯のみを点灯するコマンドを送出している。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御対象装置に対するコマンドを含むパケットが所定の規則に従って送信されるネットワークに接続された不正侵入防止装置であって、
所定の数の上記コマンドを時間の情報と共に記憶するための所定の数のスロットからなる解析テーブルを記憶する解析テーブル記憶部と、
上記ネットワークから検出した上記パケットから抽出した上記コマンドを上記解析テーブルに挿入するパース部と、
上記解析テーブルの各スロットに記憶された複数の上記コマンドが上記所定の規則に従っているか否かを解析する解析部と、
を含む不正侵入防止装置。
【請求項２】
請求項１に記載の不正侵入防止装置であって、
上記解析部は、上記解析テーブルの各スロットのうち上記コマンドが記憶されているスロットの位置が上記一定時間周期と一致するか否かを解析するものである、
不正侵入防止装置。
【請求項３】
請求項１に記載の不正侵入防止装置であって、
上記解析部は、上記解析テーブルの各スロットに記憶された上記コマンド間の差分が上記所定の規則に従ってコマンドが設定されたときに生じ得る変化と一致するか否かを解析するものである、
不正侵入防止装置。
【請求項４】
請求項１に記載の不正侵入防止装置であって、
上記解析部は、上記解析テーブルの各スロットに記憶された上記コマンドの内容が上記所定の規則に従って設定され得る内容であるか否かを解析するものである、
不正侵入防止装置。
【請求項５】
請求項１から４のいずれかに記載の不正侵入防止装置であって、
上記解析部による解析結果が異常を示すときに異常の発生を通知するアラームを出力する通知部をさらに含む、
不正侵入防止装置。
【請求項６】
請求項１に記載の不正侵入防止装置であって、
上記解析部による解析結果が異常を示すときに上記ネットワークから検出した上記パケットに含まれる上記コマンドの内容を上記所定の規則に従って設定され得る内容に改変して上記ネットワークへ送出する出力部をさらに含む、
不正侵入防止装置。
【請求項７】
制御対象装置に対するコマンドを含むパケットが所定の規則に従って送信されるネットワークに接続された不正侵入防止装置が実行する不正侵入検知方法であって、
解析テーブル記憶部が、所定の数の上記コマンドを時間の情報と共に記憶するための所定の数のスロットからなる解析テーブルを記憶しており、
パース部が、上記ネットワークから検出した上記パケットから抽出した上記コマンドを上記解析テーブルに挿入し、
解析部が、上記解析テーブルの各スロットに記憶された複数の上記コマンドが上記所定の規則に従っているか否かを解析する、
不正侵入防止方法。
【請求項８】
請求項１から６のいずれかに記載の不正侵入防止装置としてコンピュータを機能させるためのプログラム。
【国際調査報告】
2019035313.tif 000017
2019035313.tif 000018