(57)【要約】【課題】さまざまな通信装置に対応しつつサイバー攻撃対策を可能とする。【解決手段】デバイス１００では、ハイパーバイザ１３０、ハイパーバイザ１３０上で仮想マシンとして動作し、センサ１５０を制御するユーザシステム１２０、および、セキュリティシステム１４０が稼働する。ユーザシステム１２０からフィールドシステムサーバ３５０他の外部装置への通信データは、ハイパーバイザ１３０の仮想スイッチ１３１がセキュリティシステム１４０に中継した後に、セキュリティシステム１４０がハイパーバイザ１３０を介さずに直接に物理ＮＩＣ１１１に出力する。外部装置からユーザシステム１２０への通信データは、ハイパーバイザ１３０を介さずに直接に物理ＮＩＣ１１１からセキュリティシステム１４０が受け取り、仮想スイッチ１３１を中継してユーザシステム１２０に送信される。【選択図】図１
2019109828.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークとデータを送受信する物理通信コントローラを備えるコンピュータを、
前記ネットワークに接続された外部装置と通信する第1の仮想マシンを動作させるハイパーバイザ、
前記ハイパーバイザ上で動作する第２の仮想マシンとして機能させ、
前記ハイパーバイザを、
前記第１の仮想マシンから前記外部装置への通信データを前記第１の仮想マシンから前記第２の仮想マシンに中継し、前記外部装置から前記第１の仮想マシンへの通信データを前記第２の仮想マシンが受け取った後に前記第２の仮想マシンから前記第１の仮想マシンに中継する仮想スイッチとして機能させ、
前記第２の仮想マシンを、
前記仮想スイッチが中継した前記第１の仮想マシンから前記外部装置への通信データを、前記ハイパーバイザを介さず直接に前記物理通信コントローラに出力し、前記外部装置から前記第１の仮想マシンへの通信データを、前記ハイパーバイザを介さず直接に前記物理通信コントローラから受け取って前記仮想スイッチに出力する仮想ネットワーク制御部として機能させる
ための通信装置保護プログラム。
【請求項２】
前記第１の仮想マシン、前記第２の仮想マシン、および前記コンピュータの何れかが受信する通信データの通信量を監視して、前記通信量が所定の第１標準値より大きく、前記通信量と前記第１標準値との差が所定の第１閾値より大きい場合には、前記物理通信コントローラを制御して前記コンピュータを前記ネットワークから切断する監視部
として前記第２の仮想マシンを機能させるための請求項１に記載の通信装置保護プログラム。
【請求項３】
前記第１の仮想マシンが送受信する通信データの通信量を示す第１の仮想マシン通信量を監視して、前記第１の仮想マシン通信量と所定の第２標準値との差が所定の第２閾値より大きい場合、または、前記第１の仮想マシン通信量と前記第２標準値との差が所定の第３閾値より大きい状態が所定の時間継続した場合には、前記第１の仮想マシンを強制停止させる状態管理部
として前記第２の仮想マシンを機能させるための請求項１に記載の通信装置保護プログラム。
【請求項４】
前記ネットワークに接続された管理システムからの制御コマンドに応じて、
前記第１の仮想マシンの起動処理、停止処理、強制停止処理、システム更新処理、
前記第２の仮想マシンのシステム更新処理、
前記コンピュータの情報収集処理、前記管理システムとの時刻同期処理
のうち何れかの処理を実行する保守部
として前記第２の仮想マシンを機能させるための請求項１に記載の通信装置保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全ではないネットワークに接続された通信装置を保護する通信装置保護プログラムに関する。
【背景技術】
【０００２】
情報通信技術の進展にともない、農場や工場、ホームなどのフィールドに設置されているセンサやアクチュエータなどのデバイスをネットワークに接続して監視し、制御するＩｏＴ（Internet of Things）が普及しようとしている。センサで取得した情報の収集やアクチュエータの制御は、クラウド上のフィールドシステムサーバがデバイスと通信して実行する。
【０００３】
デバイスとフィールドシステムサーバが直接に通信すると、通信遅延が発生したり、通信コストが増大したりするという問題が発生する場合がある。このような問題を解決するために、デバイスが設置されているフィールドにゲートウェイ（エッジサーバ）を設置し、ゲートウェイを介して、デバイスを管理するエッジコンピューティングという形態も注目されている。ゲートウェイは、デバイスの動作状況をフィールドシステムサーバに報告したり、センサが取得したデータを集計してフィールドシステムサーバに送信したり、フィールドシステムサーバからの指示を各アクチュエータの指示に翻訳して送信する。
【０００４】
デバイスやゲートウェイという通信装置は、インターネットに接続されるため、ＤｏＳ（Denial of Service）攻撃やウィルスに感染するなどのサイバー攻撃に遭う可能性がある。インターネットサーバやパソコンにおけるサイバー攻撃への対策としては、ファイアウォールやウィルス対策ソフトウェアが普及している（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】独立行政法人情報処理推進機構, "標的型サイバー攻撃対策," 2014年2月10日, [online], [2017年11月6日検索], インターネット＜URL: https://www.ipa.go.jp/security/event/2013/isec-semi/documents/2013videosemi_targeted_cyber_attacks_v1a.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
通信装置はフィールドに設置されるために、電源や温度、粉塵などの動作環境が既存のサーバやパソコンとは大きく異なり、組み込み機器が採用されることが想定される。このために、ＣＰＵ（Central Processing Unit）や記憶容量などのリソースについての制約が大きく、既存のサイバー攻撃への対策を導入することは困難である。
また、デバイスの種類は多種多様であるため、デバイスと通信するゲートウェイも多種多様となり、通信装置（通信装置のＯＳ（Operating System）やアプリケーション（通信の仕様））ごとにセキュリティ対策を導入しようとすると、導入コストや導入期間が増大してしまうという問題が発生する。
【０００７】
このような背景を鑑みて本発明がなされたのであり、本発明は、さまざまな通信装置に対応し、サイバー攻撃対策を可能とする通信装置保護プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、請求項１に記載の発明は、ネットワークとデータを送受信する物理通信コントローラを備えるコンピュータを、前記ネットワークに接続された外部装置と通信する第1の仮想マシンを動作させるハイパーバイザ、前記ハイパーバイザ上で動作する第２の仮想マシンとして機能させ、前記ハイパーバイザを、前記第１の仮想マシンから前記外部装置への通信データを前記第１の仮想マシンから前記第２の仮想マシンに中継し、前記外部装置から前記第１の仮想マシンへの通信データを前記第２の仮想マシンが受け取った後に前記第２の仮想マシンから前記第１の仮想マシンに中継する仮想スイッチとして機能させ、前記第２の仮想マシンを、前記仮想スイッチが中継した前記第１の仮想マシンから前記外部装置への通信データを、前記ハイパーバイザを介さず直接に前記物理通信コントローラに出力し、前記外部装置から前記第１の仮想マシンへの通信データを、前記ハイパーバイザを介さず直接に前記物理通信コントローラから受け取って前記仮想スイッチに出力する仮想ネットワーク制御部として機能させるための通信装置保護プログラムとした。
【発明の効果】
【０００９】
本発明によれば、さまざまな通信装置に対応し、サイバー攻撃対策を可能とする通信装置保護プログラムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るデバイスを含む遠隔制御システムの全体構成を例示する図である。
【図２】本実施形態に係る外向き通信累計量テーブルのデータ構成例を示す図である。
【図３】本実施形態に係る外向き通信平均値テーブルのデータ構成例を示す図である。
【図４】本実施形態に係る内向き通信累計量テーブルのデータ構成例を示す図である。
【図５】本実施形態に係る内向き通信平均値テーブルのデータ構成例を示す図である。
【図６】本実施形態に係るユーザシステムからフィールドシステムサーバへ通信データが送信されるときの処理を示すシーケンス図である。
【図７】本実施形態に係るフィールドシステムサーバからユーザシステムへ通信データが送信されるときの処理を示すシーケンス図である。
【図８】本実施形態に係る監視部が実行するＤｏＳ攻撃対応処理のフローチャートである。
【図９】本実施形態に係る状態管理部が実行するユーザシステム監視処理のフローチャートである。
【図１０】本実施形態に係るユーザシステムが異常状態へ遷移するときの処理を示すシーケンス図である。
【図１１】本実施形態に係る暗号通信部と保守部と時刻同期部とが実行する管理システムからの指示による遠隔保守処理のフローチャートである。
【図１２】本実施形態に係るユーザシステム起動処理を示すシーケンス図である。
【図１３】本実施形態に係るユーザシステム停止処理を示すシーケンス図である。
【図１４】本実施形態に係るシステム情報収集処理を示すシーケンス図である。
【図１５】本実施形態に係るユーザシステム更新処理を示すシーケンス図である。
【図１６】本実施形態に係るセキュリティシステム更新処理を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
≪遠隔制御システムの全体構成≫
以下に本発明を実施するための形態（実施形態）におけるデバイスについて説明する。図１は、本実施形態に係るデバイス１００を含む遠隔制御システムの全体構成を例示する図である。遠隔制御システムは、外部ネットワーク５００により接続されたデバイス１００と管理システム３００とを含んで構成される。遠隔制御システムは、デバイス１００上で仮想マシンとして動作するユーザシステム１２０に対する、外部ネットワーク５００からのサイバー攻撃を防止するとともに、システム更新などの保守も行う。
【００１２】
管理システム３００は、遠隔制御システム全体を管理するシステムであり、後記するユーザシステム（第1の仮想マシン）１２０やセキュリティシステム（第２の仮想マシン）１４０の動作状況を監視したり、システム更新（ファーム更新）を指示したりする。
デバイス１００は、フィールドに設置され、ユーザシステム１２０を仮想マシンとして稼働させる。また、デバイス１００は、管理システム３００からの指示に従い、ユーザシステム１２０の起動や停止、動作状況の管理システム３００への報告、システム更新などを実行して、ユーザシステム１２０を保守する。デバイス１００は１つとは限らず、複数台がフィールドに設置される場合もある。
【００１３】
≪フィールドシステムの全体構成≫
フィールドシステムは、フィールドシステムサーバ３５０と、デバイス１００で動作する仮想マシンのユーザシステム１２０とを含んで構成される。デバイス１００が複数台あるならば、フィールドシステムは複数のユーザシステム１２０を含む。なお、フィールドシステムサーバ３５０を含め、ユーザシステム１２０と通信する装置を外部装置と記す。外部装置には、他のデバイスやフィールドシステムの管理者が意図しない装置を含む場合がある。フィールドシステムサーバ３５０とデバイス１００とは、外部ネットワーク５００により接続される。フィールドシステムサーバ３５０は、管理システム３００と同一装置であってもよい。
【００１４】
フィールドシステムサーバ３５０は、フィールドシステム全体を管理するサーバであり、ユーザシステム１２０を介して後記するセンサ１５０からデータを取得する。センサ１５０に替わりアクチュエータが接続されている場合には、フィールドシステムサーバ３５０は、ユーザシステム１２０を介してアクチュエータを制御する。
ユーザシステム１２０は、センサ１５０からデータを取得してフィールドシステムサーバ３５０に送信したり、取得したデータを集計して集計結果をフィールドシステムサーバ３５０に送信したり、フィールドシステムサーバ３５０から指示を受けてセンサ１５０を制御したりする。センサ１５０がアクチュエータであっても同様である。
【００１５】
≪デバイスの全体構成≫
ハードウェアとしてのデバイス１００は、ＣＰＵ１１２、センサ１５０、物理ＮＩＣ（Network Interface Card）１１１、セキュアストレージ１１３、ＲＴＣ（Real-Time Clock）１１９、ＲＡＭ（Random Access Memory）（不図示）、ＲＯＭ（Read Only Memory）（不図示）およびフラッシュメモリ（不図示）を含んで構成される。ＲＡＭとＲＯＭとフラッシュメモリとは、記憶部２００を構成する。記憶部２００は、セキュリティシステム１４０の記憶部にあたるセキュリティシステム仮想記憶部２１０とユーザシステム１２０の記憶部にあたるユーザシステム仮想記憶部２７０とを含む。
【００１６】
センサ１５０はデバイス１００に接続され、後記するユーザシステム１２０のセンサ制御部１２１により制御される。図１では、センサ１５０は、デバイス１００に外付けされ、ケーブルで直結されているが、デバイス１００に内蔵されてもよい。本実施形態では、センサ１５０がデバイス１００に接続されているが、アクチュエータ他の装置であってもよい。
【００１７】
物理ＮＩＣ（物理通信コントローラ）１１１は、後記するセキュリティシステム１４０から制御され、外部ネットワーク５００と通信データの送受信を行う。通信先には、ユーザシステム１２０が通信するフィールドシステムサーバ３５０を含む外部装置と、セキュリティシステム１４０が通信する管理システム３００とがある。
ＣＰＵ１１２は、記憶部２００にあるプログラムを実行することで、デバイス１００を機能させる制御部である。図１では、ＣＰＵは１つであるが、複数であってもよい。
【００１８】
セキュアストレージ１１３は、ルート鍵１１４と署名検証鍵１１５と署名鍵１１６と復号鍵１１７と暗号鍵１１８とを格納していて、セキュリティシステム１４０からのみアクセス可能である。ルート鍵１１４は、署名検証鍵１１５、署名鍵１１６、復号鍵１１７および暗号鍵１１８の更新データを保護するための鍵であり、署名検証鍵と復号鍵とを含む。署名検証鍵１１５は、管理システム３００からの通信データのデジタル署名を検証するための鍵である。署名鍵１１６は、管理システム３００への通信データのデジタル署名を生成するための鍵である。復号鍵１１７は、管理システム３００からの通信データを復号するための鍵である。暗号鍵１１８は、管理システム３００への通信データを暗号化するための鍵である。
【００１９】
セキュアストレージ１１３は、セキュリティシステム１４０からのみアクセス可能であり、後記するユーザシステム１２０からは、セキュアストレージ１１３が格納する鍵にアクセスできない。このためにユーザシステム１２０に対してサイバー攻撃が発生したとしても、後記する遠隔保守処理（図１１参照）や管理システム３００への通知は安全に実行可能であり、偽の管理システムの指示による遠隔保守処理の実行や不正なシステム更新、不正な通知などは発生しない。
【００２０】
ＲＴＣ１１９は、デバイス１００が内蔵する時計であり、現在の日時（現在時刻）をミリ秒またはマイクロ秒単位で取得可能である。後記するハイパーバイザ１３０とセキュリティシステム１４０とは、ＲＴＣ１１９から現在時刻を取得でき、さらに現在時刻を設定可能である。
一方、後記するユーザシステム１２０は、ＲＴＣ１１９から現在時刻を取得可能であるが、現在時刻を設定することはできない。このためにユーザシステム１２０に対してサイバー攻撃が発生しても、ＲＴＣ１１９の現在時刻の変更は不可能であり、ハイパーバイザ１３０とセキュリティシステム１４０とは、正確な現在時刻が取得可能である。
【００２１】
論理的にはデバイス１００は、ユーザシステム１２０、セキュリティシステム１４０およびハイパーバイザ１３０を含んで構成される。通信装置保護プログラム（不図示）は、記憶部２００に記憶され、セキュリティシステム１４０およびハイパーバイザ１３０を機能させる。
ハイパーバイザ１３０は、ＣＰＵ１１２上で動作し、仮想マシンとしてのユーザシステム１２０とセキュリティシステム１４０とを機能させる。ハイパーバイザ１３０は、ユーザシステム１２０とセキュリティシステム１４０との通信を仲介する仮想スイッチ１３１を含んで構成される。
【００２２】
ユーザシステム（第１の仮想マシン）１２０は、ハイパーバイザ１３０上で稼働する仮想マシンであり、ＣＰＵ１１２を仮想化した仮想ＣＰＵ（不図示）、仮想ＮＩＣ１２３、ユーザシステム仮想記憶部２７０（図１では、記憶部２００の構成要素として記載）を含んで構成される。仮想ＮＩＣ１２３は、仮想スイッチ１３１、セキュリティシステム１４０、物理ＮＩＣ１１１を介してフィールドシステムサーバ３５０を含む外部装置と通信データを送受信する。ユーザシステム仮想記憶部２７０は、ユーザシステム１２０のデータやプログラムを記憶する。ユーザシステム１２０は、所定のタイミングでＨＢ（Heart Beat）をセキュリティシステム１４０に送信するＨＢ送信部１２２、および、センサ１５０を制御するセンサ制御部１２１をさらに含んで構成される。
【００２３】
セキュリティシステム（第２の仮想マシン）１４０は、ハイパーバイザ１３０上で稼働する仮想マシンであり、ＣＰＵ１１２を仮想化した仮想ＣＰＵ（不図示）、物理ＮＩＣ１１１、暗号通信部１４１、監視部１４２、状態管理部１４３、保守部１４４、時刻同期部１４５、仮想ネットワーク制御部１４６、仮想ＮＩＣ１４７、およびセキュリティシステム仮想記憶部２１０（図１では、記憶部２００の構成要素として記載）を含んで構成される。セキュリティシステム仮想記憶部２１０は、後記する外向き通信累計量テーブル２２０（図２参照）、外向き通信平均値テーブル２３０（図３参照）、内向き通信累計量テーブル２４０（図４参照）、内向き通信平均値テーブル２５０（図５参照）、ユーザシステム状態２６１、状態遷移時刻２６２、およびＨＢ受信時刻テーブル２６３を含む。
【００２４】
暗号通信部１４１は、管理システム３００と通信データの送受信を行うとともに、署名検証鍵１１５と復号鍵１１７とを用いて受信データのデジタル署名の検証と復号を行い、署名鍵１１６と暗号鍵１１８を用いて送信データのデジタル署名生成と暗号化を行う。
監視部１４２は、ユーザシステム１２０のＨＢ送信部１２２が送信したＨＢを受信し、ＨＢ受信時刻テーブル２６３に受信時刻を記録する。また、監視部１４２は、後記する内向き通信累計量テーブル２４０を参照して、ＤｏＳ攻撃の有無を判断する。
【００２５】
状態管理部１４３は、外向き通信累計量テーブル２２０（後記する図２参照）を参照して外向き通信平均値テーブル２３０（後記する図３参照）を更新し、内向き通信累計量テーブル２４０（後記する図４参照）を参照して内向き通信平均値テーブル２５０（後記する図５参照）を更新する。さらに、状態管理部１４３は、外向き通信平均値テーブル２３０、内向き通信平均値テーブル２５０およびＨＢ受信時刻テーブル２６３を参照して、ユーザシステム１２０の動作状況を監視し、停止、運用、準異常および異常からなる状態を遷移して管理する。現時点での状態はユーザシステム状態２６１に、状態が遷移した時刻は状態遷移時刻２６２に格納される。
【００２６】
保守部１４４は、管理システム３００から受信した制御コマンドを実行する。制御コマンドは、管理システム３００のデジタル署名が付与され暗号化されており、暗号通信部１４１が復号しデジタル署名を検証して、保守部１４４に出力する。
時刻同期部１４５は、管理システム３００と時刻を含んだ通信データをやり取りし、ＲＴＣ１１９の時刻を調整する時刻同期処理を実行する。通信データのやり取りの方法は、ＳＮＴＰ（Simple Network Time Protocol）と同様である。時刻同期処理は、セキュリティシステム１４０が起動したときや管理システム３００から指示があったときの他に、所定のタイミングで実行される。
【００２７】
仮想ネットワーク制御部１４６は、ユーザシステム１２０とフィールドシステムサーバ３５０を含む外部装置間の通信データの送受信を中継する。詳しくは、仮想ネットワーク制御部１４６は、ユーザシステム１２０が仮想ＮＩＣ１２３から送信した通信データを、仮想スイッチ１３１と仮想ＮＩＣ１４７を経由して受け取り、物理ＮＩＣ１１１に出力して、外部装置に送信する。また、仮想ネットワーク制御部１４６は、外部装置が送信し、物理ＮＩＣ１１１で受信された通信データを受け取って、仮想ＮＩＣ１４７に出力し、出力された通信データは、仮想スイッチ１３１と仮想ＮＩＣ１２３を経由して、ユーザシステム１２０が受信する。
【００２８】
図２は、本実施形態に係る外向き通信累計量テーブル２２０のデータ構成例を示す図である。外向き通信累計量テーブル２２０は、表形式のデータであって、１行（レコード）は、ユーザシステム１２０から１つのアドレスへの送信データの累計値を示し、送信先名称２２１、送信先アドレス２２２、開始時刻２２３、累計データ量２２４および累計フレーム数２２５の列（属性）を含む。
【００２９】
送信先名称２２１は、送信先（外部装置）の名称である。送信先アドレス２２２は、送信先のアドレスである。なお、１つの送信先が複数のアドレスをもつ場合がある。開始時刻２２３は、累計値を取り始めた時刻である。累計データ量２２４は、開始時刻２２３以来の通信データサイズの累計量であり、累計フレーム数２２５は、開始時刻２２３以来の通信データ数である。
【００３０】
外向き通信累計量テーブル２２０のレコードは、送信先アドレス２２２ごと、所定の時間長（累計時間とも記す、図２は累計時間が２分の例）の累計期間ごとに分かれている。レコード２２８とレコード２２９は、送信先がフィールドシステムサーバ３５０（図２ではＦＳＳと記載）であって、同じ送信先アドレス２２２（ＩＰ（Internet Protocol）アドレスが１９３．３．２．２で、ポート番号が３４３）をもつレコードであるが、レコード２２８が最新のレコード（２０１７年１０月１７日１２時３３分３４秒に開始）であり、レコード２２９は、レコード２２８の１つ前（２０１７年１０月１７日１２時３１分３４秒から２分間）のレコードである。
【００３１】
仮想ネットワーク制御部１４６は、ユーザシステム１２０から送信先への通信データを中継する際に、対応する送信先アドレス２２２の最新のレコードの累計データ量２２４を通信データサイズ分だけ加算し、累計フレーム数２２５を１加算する。なお、開始時刻２２３が累計時間より前の時刻ならば、新しいレコードが追加されて、更新される。
【００３２】
図３は、本実施形態に係る外向き通信平均値テーブル２３０のデータ構成例を示す図である。外向き通信平均値テーブル２３０は、表形式のデータであって、１行（レコード）は、ユーザシステム１２０から１つのアドレスへの所定の時間長（図３は１０分の例）である期間内の送信データの平均値を示し、送信先名称２３１、送信先アドレス２３２、開始時刻２３３、平均データ量２３４、平均間隔２３５およびフレーム総数２３６の列（属性）を含む。
【００３３】
送信先名称２３１は、送信先の名称であり、送信先アドレス２３２は、送信先のアドレスであって、それぞれ外向き通信累計量テーブル２２０の送信先名称２２１、送信先アドレス２２２に対応する。開始時刻２３３は、レコードが示す期間の開始時刻である。平均データ量２３４は、レコードが示す期間における通信データサイズの平均値であり、平均間隔２３５は、通信間隔の平均値であって、フレーム総数２３６は通信データ数である。
【００３４】
外向き通信平均値テーブル２３０のレコードは、送信先アドレス２３２ごと、所定の時間長の期間ごとに分かれている。レコード２３８とレコード２３９は、送信先がフィールドシステムサーバ３５０（図３ではＦＳＳと記載）であって、同じ送信先アドレス２３２をもつレコードであるが、レコード２３８が最新のレコード（２０１７年１０月１７日１２時２３分３４秒から１０分間）であり、レコード２３９は、レコード２３８の１つ前（２０１７年１０月１７日１２時１３分３４秒から１０分間）のレコードである。
【００３５】
状態管理部１４３は、所定のタイミング（本実施形態では１０分間隔）で、外向き通信累計量テーブル２２０を参照して、外向き通信平均値テーブル２３０を更新する。詳しくは、状態管理部１４３は、送信先アドレス２２２ごとに外向き通信累計量テーブル２２０のレコードのなかで新しい方から５つのレコードを集計して、平均データ量２３４、平均間隔２３５、フレーム総数２３６を算出する。続いて、状態管理部１４３は、外向き通信平均値テーブル２３０にレコードを追加して、算出した結果を格納する。ここで５つのレコードを集計するのは、外向き通信累計量テーブル２２０の１レコードは、２分間の累計量であり、外向き通信平均値テーブル２３０のレコードは１０分間の平均値であるからである。
【００３６】
図４は、本実施形態に係る内向き通信累計量テーブル２４０のデータ構成例を示す図である。図５は、本実施形態に係る内向き通信平均値テーブル２５０のデータ構成例を示す図である。送信先が送信元に替わったことを除いて、内向き通信累計量テーブル２４０は、外向き通信累計量テーブル２２０と同様の構成であり、内向き通信平均値テーブル２５０は、外向き通信平均値テーブル２３０と同様の構成であって、送信元（外部装置）からユーザシステム１２０への通信量が格納される。
【００３７】
≪ユーザシステムからフィールドシステムサーバへのデータ送信≫
図６は、本実施形態に係るユーザシステム１２０からフィールドシステムサーバ３５０（図６ではＦＳＳと記載）へ通信データが送信されるときの処理を示すシーケンス図である。図６を参照しながら、ユーザシステム１２０から送信された通信データが、ハイパーバイザ１３０、セキュリティシステム１４０、および外部ネットワーク５００を経由して、フィールドシステムサーバ３５０に送信される処理を説明する。
【００３８】
ステップＳ１０１において、ユーザシステム１２０のセンサ制御部１２１が、センサ１５０からデータを取得する。
ステップＳ１０２において、ユーザシステム１２０が、フィールドシステムサーバ３５０向けの通信データ（ステップＳ１０１で取得したデータ）を、仮想ＮＩＣ１２３を経由して、ハイパーバイザ１３０の仮想スイッチ１３１に出力する。
ステップＳ１０３において、ハイパーバイザ１３０の仮想スイッチ１３１が、通信データをセキュリティシステム１４０の仮想ＮＩＣ１４７に出力する。
【００３９】
ステップＳ１０４において、セキュリティシステム１４０の仮想ＮＩＣ１４７が通信データを仮想ネットワーク制御部１４６に出力し、続いて、仮想ネットワーク制御部１４６が、外向き通信累計量テーブル２２０を更新する。詳しくは、仮想ネットワーク制御部１４６は、外向き通信累計量テーブル２２０のレコードであって、開始時刻２２３が最新であり、送信先アドレス２２２が通信データの送信先アドレスに一致するレコードを検索する。次に、仮想ネットワーク制御部１４６は、検索結果のレコードの累計データ量２２４に通信データのサイズ分を加算し、累計フレーム数２２５に１を加算する。
【００４０】
なお、検索結果のレコードの開始時刻２２３がＲＴＣ１１９から取得した現在時刻と比較して累計時間より前の時刻ならば、仮想ネットワーク制御部１４６は、外向き通信累計量テーブル２２０に新しいレコードを追加して、累計データ量２２４に通信データのサイズ分を、累計フレーム数２２５に１を格納する。また、送信先アドレス２２２が通信データの送信先アドレスに一致するレコードがなかった場合にも、仮想ネットワーク制御部１４６は、外向き通信累計量テーブル２２０に新しいレコードを追加して、累計データ量２２４に通信データのサイズ分を、累計フレーム数２２５に１を格納する。
ステップＳ１０５において、セキュリティシステム１４０の仮想ネットワーク制御部１４６は、通信データを物理ＮＩＣ１１１に出力することで、外部ネットワーク５００に出力する。外部ネットワーク５００に出力された通信データは、送信先のフィールドシステムサーバ３５０に送信される。
【００４１】
≪フィールドシステムサーバからユーザシステムへのデータ送信≫
図７は、本実施形態に係るフィールドシステムサーバ３５０（図７ではＦＳＳと記載）からユーザシステム１２０へ通信データが送信されるときの処理を示すシーケンス図である。図７を参照しながら、フィールドシステムサーバ３５０から送信された通信データが、外部ネットワーク５００、セキュリティシステム１４０、およびハイパーバイザ１３０を経由して、ユーザシステム１２０まで送信される処理を説明する。
【００４２】
ステップＳ１１１において、セキュリティシステム１４０の仮想ネットワーク制御部１４６は、フィールドシステムサーバ３５０が送信したユーザシステム１２０向けの通信データ（センサ１５０の制御コマンド）を物理ＮＩＣ１１１から受け取る。
ステップＳ１１２において、仮想ネットワーク制御部１４６が、内向き通信累計量テーブル２４０を更新する。更新の内容は、送信先が送信元に替わったことを除いて、ステップＳ１０４と同様である。
【００４３】
ステップＳ１１３において、仮想ネットワーク制御部１４６が、ユーザシステム１２０向けの通信データを、仮想ＮＩＣ１４７を経由して、ハイパーバイザ１３０の仮想スイッチ１３１に出力する。
ステップＳ１１４において、ハイパーバイザ１３０の仮想スイッチ１３１が、通信データをユーザシステム１２０の仮想ＮＩＣ１２３に出力する。
ステップＳ１１５において、ユーザシステム１２０のセンサ制御部１２１が、受信した通信データに含まれる指示に基づいてセンサ１５０を制御する。
【００４４】
≪ユーザシステムとフィールドシステムサーバ間のデータ通信の特徴≫
ユーザシステム１２０と、フィールドシステムサーバ３５０とが通信するときには、セキュリティシステム１４０が通信データを中継する。セキュリティシステム１４０の仮想ネットワーク制御部１４６は、データ量と通信間隔と通信回数とを監視するために、通信データを中継するときに通信データのサイズと個数の累計量を外向き通信累計量テーブル２２０と内向き通信累計量テーブル２４０とに格納する。この累計量は、後記するＤｏＳ攻撃の有無の判定やユーザシステム１２０の状態判定をするために参照される。なお、図６と図７で示した通信データの送信（中継）処理は、フィールドシステムサーバ３５０以外の外部装置との通信である場合でも同様である。
【００４５】
既存のハイパーバイザにおいては、通信データ送信時の仮想マシンのＮＩＣへの出力は、仮想ＮＩＣへの出力となり、ハイパーバイザを介して物理ＮＩＣへ出力される。通信データ受信時の仮想マシンのＮＩＣからの受け取りについても同様であり、ハイパーバイザを介している。
【００４６】
一方、仮想マシンであるセキュリティシステム１４０は、外部ネットワーク５００へ通信データを送信するときには、直接に物理ＮＩＣ（物理通信コントローラ）１１１に出力する。また、外部ネットワーク５００から通信データを受信するときには、直接に物理ＮＩＣ１１１から受け取る。セキュリティシステム１４０は、ハイパーバイザ１３０を介することなく物理ＮＩＣ１１１と直接に通信データをやり取りすることで、デバイス１００全体の負荷を削減して、効率的に通信することができるという効果が得られる。デバイス１００が、組み込み機器のようなリソースが制限されるハードウェアから構成される場合には、特に効果が大きくなる。
【００４７】
デバイス１００が受信した通信データのなかで、送信先がユーザシステム１２０である通信データだけが、ユーザシステム１２０に中継される。このため、物理ＮＩＣ１１１が受信した通信データであってもデータの形式や送信先アドレスなどが不正である場合には、ユーザシステム１２０には中継されず、ユーザシステム１２０は、サイバー攻撃から保護される。
【００４８】
≪ＤｏＳ攻撃対応処理≫
図８は、本実施形態に係る監視部１４２が実行するＤｏＳ攻撃対応処理のフローチャートである。図８を参照しながら、ＤｏＳ攻撃を検知したときのネットワーク切断と再開の処理を説明する。
ステップＳ２０１において、監視部１４２は、所定時間、待機する。
【００４９】
ステップＳ２０２において、監視部１４２は、ＤｏＳ攻撃が発生しているか否かを判断し、発生している場合は（Ｓ２０２→Ｙ）ステップＳ２０３に進み、発生していない場合は（Ｓ２０２→Ｎ）ステップＳ２０１に戻る。監視部１４２は、ＤｏＳ攻撃発生の有無を内向き通信累計量テーブル２４０を参照して判断する。詳しくは、監視部１４２は、各送信元アドレス２４２の最新のレコードを検索し、累計データ量２４４や累計フレーム数２４５の合計が、所定の標準値（第１標準値）と比較して所定の閾値（第１閾値）より大きいときにはＤｏＳ攻撃が発生していると判断する。また、監視部１４２は、最新のレコードを検索し、検索結果のレコード件数（即ち送信元アドレスの数）が、所定の標準値（第１標準値）と比較して所定の閾値（第１閾値）より大きいときには、ＤｏＳ攻撃が発生していると判断してもよい。なお、データ量やフレーム数、送信元アドレス数、送信先アドレス数などを総称して通信量とも記す。
【００５０】
ステップＳ２０３において、監視部１４２は、ＤｏＳ攻撃の発生を管理システム３００に通知する。通知するメッセージは、暗号通信部１４１により、署名鍵１１６でデジタル署名が付与され、暗号鍵１１８で暗号化されて、物理ＮＩＣ１１１へ出力され、外部ネットワーク５００を経由して管理システム３００に送信される。
ステップＳ２０４において、監視部１４２は、物理ＮＩＣ１１１を外部ネットワーク５００から切断する。詳しくは、監視部１４２は、物理ＮＩＣ１１１に送受信処理の停止要求を出力する。さらに、監視部１４２は、ユーザシステム１２０にネットワーク切断を通知して、フィールドシステムサーバ３５０を含む外部装置への送信停止を指示する。
【００５１】
ステップＳ２０５において、監視部１４２は、所定時間、待機する。
ステップＳ２０６において、監視部１４２は、物理ＮＩＣ１１１を外部ネットワーク５００に接続する。詳しくは、監視部１４２は、物理ＮＩＣ１１１に送受信処理の開始要求を出力する。さらに、監視部１４２は、ユーザシステム１２０にネットワーク再開を通知して、外部装置との通信再開を指示する。
ステップＳ２０７において、監視部１４２は、所定時間、待機する。
ステップＳ２０８において、監視部１４２は、ＤｏＳ攻撃が発生しているか否かをステップＳ２０２と同様に判断して、発生している場合は（Ｓ２０８→Ｙ）ステップＳ２０３に戻り、発生していない場合は（Ｓ２０８→Ｎ）ステップＳ２０１に戻る。監視部１４２は、ステップＳ２０１に戻る際に、管理システム３００にＤｏＳ攻撃が停止したことを通知するようにしてもよい。
【００５２】
≪ＤｏＳ攻撃対応処理の特徴≫
ステップＳ２０１〜Ｓ２０２のループにおいて、監視部１４２は、所定の時間間隔（ステップＳ２０１の待機時間）ごとにＤｏＳ攻撃の有無を判定する。監視部１４２は、ＤｏＳ攻撃があると判定すると、管理システム３００に通知してネットワークを停止する。その後、監視部１４２は、所定の時間（ステップＳ２０５の待機時間）経過後に、ネットワークを再開して、再びＤｏＳ攻撃の有無を判定する。ＤｏＳ攻撃が継続しているならば、監視部１４２は、管理システム３００への通知以降の処理を繰り返し、ＤｏＳ攻撃が停止したならば、通常の状態であるステップＳ２０１〜Ｓ２０２の繰り返し状態に戻る。
【００５３】
ＤｏＳ攻撃を検知した場合には、ネットワークを停止することで、不要な通信処理を実行することがなく、デバイス１００全体の負荷を削減することができる。また、所定の時間経過後にネットワークを再開することで、ＤｏＳ攻撃が終了したときには、ユーザシステム１２０は、外部装置との通信を再開することができる。
【００５４】
≪ユーザシステム監視処理≫
図９は、本実施形態に係る状態管理部１４３が実行するユーザシステム監視処理のフローチャートである。ユーザシステム監視処理は、所定のタイミング（例えば、所定の時間間隔）で実行され、ユーザシステム１２０の状況に応じて、停止と運用と準異常と異常とを含む状態に遷移する。異常状態に遷移するときには、ユーザシステム１２０が強制終了され、管理システム３００に通知される。
【００５５】
ステップＳ３０１において、状態管理部１４３は、外向き通信平均値テーブル２３０（図３参照）と内向き通信平均値テーブル２５０（図５参照）とを更新する。詳しくは、状態管理部１４３は、送信先アドレス２２２ごとに、前回のユーザシステム監視処理以降の累計量を含む外向き通信累計量テーブル２２０（図２参照）のレコードを参照して、平均値を求め、外向き通信平均値テーブル２３０にレコードを追加する。例えば、外向き通信累計量テーブル２２０の累計時間が２分であり、前回のユーザシステム監視処理からの経過時間（以下、前回処理からの経過時間とも記す）が１０分であるならば、外向き通信累計量テーブル２２０の５つのレコードから平均値を求められる。
【００５６】
外向き通信平均値テーブル２３０に追加されるレコードの送信先名称２３１は外向き通信累計量テーブル２２０の外向き通信累計量テーブル２２０の送信先名称２２１であり、送信先アドレス２３２は送信先アドレス２２２である。開始時刻２３３は、参照する外向き通信累計量テーブル２２０のレコードのなかで一番古い開始時刻２２３である。平均データ量２３４は、参照する外向き通信累計量テーブル２２０のレコードにある累計データ量２２４の合計を前回処理からの経過時間で割った商である。平均間隔２３５は、前回処理からの経過時間を後記するフレーム総数２３６で割った商である。フレーム総数２３６は、参照する外向き通信累計量テーブル２２０のレコードにある累計フレーム数２２５の合計である。
内向き通信平均値テーブル２５０についても、外向き通信平均値テーブル２３０と同様に、内向き通信累計量テーブル２４０を参照して更新される。
【００５７】
ステップＳ３０２において、状態管理部１４３は、ユーザシステム１２０の状態を示しているユーザシステム状態２６１が運用ならば（Ｓ３０２→運用）ステップＳ３０３に進み、異常または停止ならば（Ｓ３０２→異常または停止）ユーザシステム監視処理を終了し、準異常ならば（Ｓ３０２→準異常）ステップＳ３０８に進む。なお、ＤｏＳ攻撃が検知されてネットワークが停止状態であるならば、ユーザシステム１２０は停止状態とみなして、ユーザシステム監視処理を終了する。
【００５８】
ステップＳ３０３において、状態管理部１４３は、ネットワークとＨＢの状態を判定する。詳しくは、状態管理部１４３は、ステップＳ３０１で外向き通信平均値テーブル２３０と内向き通信平均値テーブル２５０とに追加したレコードの平均データ量（２３４、２５４）、平均間隔（２３５、２５５）およびフレーム総数（２３６、２５６）と、それぞれの所定の標準値（第２標準値）との差を算出する。さらに、状態管理部１４３は、ＨＢ受信時刻テーブル２６３を参照して、前回のユーザシステム監視処理から現在までのＨＢの各受信間隔と所定の標準値（第２標準値）との差を求め、その平均値を算出する。
【００５９】
状態管理部１４３は、以上の７つの算出した値が、それぞれの正常閾値（第３閾値）未満であれば正常と判定し、何れかの差が準異常閾値（第２閾値）以上ならば異常と判定して、正常でも異常でもなければ準異常と判定する。なお、差とは絶対値としての差であり、正数である。
ステップＳ３０４において、状態管理部１４３は、ステップＳ３０３において異常と判定したならば（Ｓ３０４→異常）ステップＳ３０５に進み、正常と判定したならば（Ｓ３０４→正常）ユーザシステム監視処理を終了し、準異常と判定したならば（Ｓ３０４→準異常）ステップＳ３０６に進む。
【００６０】
ステップＳ３０５において、状態管理部１４３は、後記する異常状態遷移処理（図１０参照）を実行する。
ステップＳ３０６において、状態管理部１４３は、管理システム３００にユーザシステム１２０が準異常状態であることを通知する。詳しくは、状態管理部１４３は、ステップＳ３０３において準異常と判定した根拠となる値とＲＴＣ１１９から取得した現在時刻とを含めた通知を作成し、管理システム３００に送信する。通知は、ステップＳ２０３と同様にしてデジタル署名が付与され暗号化される。
【００６１】
ステップＳ３０７において、状態管理部１４３は、ユーザシステム状態２６１を準異常に変更して、状態遷移時刻２６２にＲＴＣ１１９から取得した現在時刻を格納する。
ステップＳ３０８は、ステップＳ３０３と同様の処理である。
ステップＳ３０９において、状態管理部１４３は、ステップＳ３０８において異常と判定したならば（Ｓ３０９→異常）ステップＳ３１０に進み、準異常と判定したならば（Ｓ３０９→準異常）ステップＳ３１１に進み、正常と判定したならば（Ｓ３０９→正常）ステップＳ３１４に進む。
【００６２】
ステップＳ３１０において、状態管理部１４３は、後記する異常状態遷移処理（図１０）を実行する。
ステップＳ３１１において、状態管理部１４３は、状態遷移時刻２６２と現在時刻との差を求めて、準異常状態の継続時間を算出する。
ステップＳ３１２において、状態管理部１４３は、ステップＳ３１１で算出した準異常状態の継続時間が所定の閾値以上ならば（Ｓ３１２→Ｙ）ステップＳ３１３に進み、閾値未満ならば（Ｓ３１３→Ｎ）ユーザシステム監視処理を終了する。
【００６３】
ステップＳ３１３において、状態管理部１４３は、後記する異常状態遷移処理（図１０）を実行する。
ステップＳ３１４において、状態管理部１４３は、管理システム３００にユーザシステム１２０が運用状態であることを通知する。通知には現在時刻が含まれ、ステップＳ２０３と同様にして、デジタル署名が付与され暗号化される。
ステップＳ３１５において、状態管理部１４３は、ユーザシステム状態２６１を運用に変更して、状態遷移時刻２６２に現在時刻を格納する。
【００６４】
続いて、ステップＳ３０５、Ｓ３１０、Ｓ３１３の異常状態遷移処理の詳細を説明する。図１０は、本実施形態に係るユーザシステム１２０が異常状態へ遷移するときの処理を示すシーケンス図である。
ステップＳ３３１において、セキュリティシステム１４０の状態管理部１４３は、ハイパーバイザ１３０にユーザシステム１２０の強制停止命令を出力する。強制停止命令を出力する方法の１つとして、ハイパーバイザコールの呼び出しがある。
ステップＳ３３２において、ハイパーバイザ１３０は、ユーザシステム１２０を強制的に停止する（電源ＯＦＦ状態にする）。
【００６５】
ステップＳ３３３において、ハイパーバイザ１３０は、ユーザシステム１２０を強制停止したことをセキュリティシステム１４０に通知する。通知の方法として、割り込みやハイパーバイザコールの返り値がある。
ステップＳ３３４において、セキュリティシステム１４０の状態管理部１４３は、ユーザシステム状態２６１を異常に変更して、状態遷移時刻２６２に現在時刻を格納する。
【００６６】
ステップＳ３３５において、状態管理部１４３は、管理システム３００にユーザシステム１２０が異常状態であり、強制停止したことを通知する。詳しくは、状態管理部１４３は、ステップＳ３０３、Ｓ３０８またはＳ３１２において異常または閾値以上と判定した根拠となる値と現在時刻とを含めた通知を作成し、管理システム３００に送信する。通知は、デジタル署名が付与され暗号化される。
【００６７】
≪ユーザシステム監視処理の特徴≫
以上に説明したように、ユーザシステム１２０が送受信する通信データのデータ量や通信データ数、ＨＢの受信間隔について、標準値（第２標準値）との差の何れかが、準異常閾値（第２閾値）以上であれば異常と判定され、正常閾値（第３閾値）以上であれば準異常と判定される。異常と判定される、または、準異常が所定の期間継続した場合には、ユーザシステム１２０は強制停止されて異常状態に遷移する。準異常状態であっても所定の期間内に正常と判定されれば、運用状態に戻る。
【００６８】
このように、通信データのデータ量や通信データ数、ＨＢの受信間隔を用いてユーザシステム１２０を監視して、異常な状況であれば強制停止することで、外部装置との異常な通信、フィールドシステムサーバ３５０でも他のデバイスでもない装置との不正通信、デバイス１００のリソースの不正利用などを未然に防ぐことができるようになる。
【００６９】
≪遠隔保守処理≫
図１１は、本実施形態に係る暗号通信部１４１と保守部１４４と時刻同期部１４５とが実行する管理システム３００からの指示による遠隔保守処理のフローチャートである。図１１を参照しながら、管理システム３００が送信して、セキュリティシステム１４０が受信した制御コマンドによる遠隔保守処理を説明する。なお、遠隔保守処理の一部の詳細は、図１２〜図１６を参照して説明する。
ステップＳ４０１において、暗号通信部１４１は、受信した制御コマンドを、復号鍵１１７を用いて復号し、署名検証鍵１１５を用いて付与されているデジタル署名を検証して、保守部１４４に出力する。復号ないしは署名の検証に失敗した場合には、暗号通信部１４１は、不正な制御コマンドと判断して、管理システム３００に通知する。
【００７０】
ステップＳ４０２において、保守部１４４は、制御コマンドの種別が、ユーザシステム起動ならば（Ｓ４０２→ユーザシステム起動）ステップＳ４０３に、ユーザシステム停止ならば（Ｓ４０２→ユーザシステム停止）ステップＳ４０４に、ユーザシステム強制停止ならば（Ｓ４０２→ユーザシステム強制停止）ステップＳ４０５に、システム情報収集ならば（Ｓ４０２→システム情報収集）ステップＳ４０６に、ユーザシステム更新ならば（Ｓ４０２→ユーザシステム更新）ステップＳ４０７に、セキュリティシステム更新ならば（Ｓ４０２→セキュリティシステム更新）ステップＳ４０８に、鍵更新ならば（Ｓ４０２→鍵更新）ステップＳ４０９に、時刻同期ならば（Ｓ４０２→時刻同期）ステップＳ４１０に進む。
【００７１】
ステップＳ４０３において、保守部１４４は、後記するユーザシステム起動処理（図１２参照）を実行する。
ステップＳ４０４において、保守部１４４は、後記するユーザシステム停止処理（図１３参照）を実行する。
ステップＳ４０５は、異常状態遷移処理（図１０参照）と同様の処理であり、状態管理部１４３の替わりに保守部１４４が実行する。
【００７２】
ステップＳ４０６において、保守部１４４は、後記するシステム情報収集処理（図１４参照）を実行する。
ステップＳ４０７において、保守部１４４は、後記するユーザシステム更新処理（図１５参照）を実行する。
ステップＳ４０８において、保守部１４４は、後記するセキュリティシステム更新処理（図１６参照）を実行する。
【００７３】
ステップＳ４０９において、保守部１４４は、鍵更新処理を実行する。詳しくは、保守部１４４は、制御コマンドに含まれるデータをルート鍵１１４に含まれる復号鍵で復号し、ルート鍵１１４に含まれる署名検証鍵で付与されたデジタル署名を検証して、復号または検証が失敗した場合には、管理システム３００に通知する。復号も検証も成功ならば、保守部１４４は、セキュアストレージ１１３に格納されている署名検証鍵１１５と署名鍵１１６と復号鍵１１７と暗号鍵１１８とを、復号と署名の検証の結果得られた署名検証鍵と署名鍵と復号鍵と暗号鍵とで、それぞれ置き換える
【００７４】
ステップＳ４１０において、保守部１４４は、時刻同期処理を実行するように時刻同期部１４５に指示する。時刻同期部１４５は、管理システム３００を時刻サーバとするＳＮＴＰと同様の処理を実行して現在時刻を取得し、ＲＴＣ１１９の時刻とのずれを修正する。一度の修正で取得した現在時刻とＲＴＣ１１９の時刻のずれがなくなるようにしてもよいし、ずれが所定の値より大きい場合には、所定の間隔で複数回修正して、徐々にずれをなくすようにしてもよい。
続いて、ステップＳ４０３〜Ｓ４０８の各処理の内容を説明する。
【００７５】
≪遠隔保守処理：ユーザシステム起動≫
図１２は、本実施形態に係るユーザシステム起動処理を示すシーケンス図である。図１２を参照して、ステップＳ４０３の処理内容を説明する。
ステップＳ４２１において、セキュリティシステム１４０の保守部１４４は、ハイパーバイザ１３０にユーザシステム１２０の起動命令を出力する。
【００７６】
ステップＳ４２２において、ハイパーバイザ１３０は、ユーザシステム１２０を起動する（電源ＯＮ状態にする）。
ステップＳ４２３において、ハイパーバイザ１３０は、ユーザシステム１２０を起動したことをセキュリティシステム１４０に通知する。
ステップＳ４２４において、ユーザシステム１２０が、起動処理を実行する。
【００７７】
ステップＳ４２５において、ユーザシステム１２０のＨＢ送信部１２２が、ＨＢをセキュリティシステム１４０に送信する。送信方法の１つとして、ハイパーバイザコールを用いてハイパーバイザ１３０にＨＢを送信するように指示し、ハイパーバイザ１３０がセキュリティシステム１４０に割り込みを発生させる方法がある。
ステップＳ４２６において、セキュリティシステム１４０の保守部１４４は、ＨＢの受信を確認した後にユーザシステム状態２６１を運用に変更して、状態遷移時刻２６２に現在時刻を格納する。
ステップＳ４２７において、保守部１４４は、管理システム３００にユーザシステム１２０が運用状態に遷移したことを通知する。通知は、デジタル署名が付与され、暗号化されて、管理システム３００に送信される。
【００７８】
≪遠隔保守処理：ユーザシステム停止≫
図１３は、本実施形態に係るユーザシステム停止処理を示すシーケンス図である。図１３を参照して、ステップＳ４０４の処理内容を説明する。
ステップＳ４３１において、セキュリティシステム１４０の保守部１４４は、ハイパーバイザ１３０にユーザシステム１２０の停止命令を出力する。
ステップＳ４３２において、ハイパーバイザ１３０は、ユーザシステム１２０にシャットダウン割り込みを発生させる。
【００７９】
ステップＳ４３３において、ユーザシステム１２０が、割り込みを受け取り、シャットダウン処理を実行する。
ステップＳ４３４において、ユーザシステム１２０が、シャットダウン処理の最後に電源ＯＦＦのハイパーバイザ―コールを呼び出す。
ステップＳ４３５において、ハイパーバイザ１３０は、ユーザシステム１２０を停止したことをセキュリティシステム１４０に通知する。
【００８０】
ステップＳ４３６において、セキュリティシステム１４０の保守部１４４は、ユーザシステム状態２６１を停止に変更して、状態遷移時刻２６２に現在時刻を格納する。
ステップＳ４３７において、保守部１４４は、管理システム３００にユーザシステム１２０が停止状態に遷移したことを通知する。通知は、デジタル署名が付与され、暗号化されて、管理システム３００に送信される。
【００８１】
≪遠隔保守処理：システム情報収集≫
図１４は、本実施形態に係るシステム情報収集処理を示すシーケンス図である。図１４を参照して、ステップＳ４０６の処理内容を説明する。
ステップＳ４４１において、セキュリティシステム１４０の保守部１４４は、ハイパーバイザ１３０にシステム情報取得命令を出力する。命令には、システム情報を格納する仮想メモリ（不図示）のアドレスが付与される。
ステップＳ４４２において、ハイパーバイザ１３０は、ステップＳ４４１で指定されたアドレスの仮想メモリの領域にシステム情報を格納する。システム情報としては、ユーザシステム１２０とセキュリティシステム１４０の仮想ＣＰＵの使用状況が含まれる。
【００８２】
ステップＳ４４３において、保守部１４４が、外向き通信平均値テーブル２３０と内向き通信平均値テーブル２５０とから、ユーザシステム１２０の通信状況を集計する。
ステップＳ４４４において、保守部１４４は、管理システム３００にステップＳ４４２で取得したシステム情報とステップＳ４４３で集計した通信状況を報告する。報告は、デジタル署名が付与され、暗号化されて、管理システム３００に送信される。
【００８３】
≪遠隔保守処理：ユーザシステム更新≫
図１５は、本実施形態に係るユーザシステム更新処理を示すシーケンス図である。図１５を参照して、ステップＳ４０７の処理内容を説明する。なお、ユーザシステム更新処理が実行されるときには、ユーザシステム１２０は停止状態または異常状態にある。
【００８４】
ステップＳ４５１において、セキュリティシステム１４０の保守部１４４は、ハイパーバイザ１３０にユーザシステム１２０の更新命令を出力する。命令には、更新ファイル（更新データ）が格納された領域のセキュリティシステム仮想記憶部２１０（図１参照）上のアドレスとサイズとが含まれる。
【００８５】
ステップＳ４５２において、ハイパーバイザ１３０は、ステップＳ４５１で指定された更新ファイルを用いて、ユーザシステム１２０の記憶部であるユーザシステム仮想記憶部２７０（図１参照）を更新（ファーム更新）する。
ステップＳ４５３において、ハイパーバイザ１３０は、ユーザシステム１２０を更新したことをセキュリティシステム１４０に通知する。
ステップＳ４５４において、保守部１４４は、管理システム３００にユーザシステム１２０の更新が完了したことを通知する。通知は、デジタル署名が付与され、暗号化されて、管理システム３００に送信される。
【００８６】
≪遠隔保守処理：セキュリティシステム更新≫
図１６は、本実施形態に係るセキュリティシステム更新処理を示すシーケンス図である。図１６を参照して、ステップＳ４０８の処理内容を説明する。
ステップＳ４６１において、セキュリティシステム１４０の保守部１４４は、ハイパーバイザ１３０にセキュリティシステム１４０の更新ファイル（更新データ）が格納された領域のセキュリティシステム仮想記憶部２１０上のアドレスとサイズとを通知する。
【００８７】
ステップＳ４６２において、セキュリティシステム１４０が、シャットダウン処理を実行する。
ステップＳ４６３において、セキュリティシステム１４０が、シャットダウン処理の最後に電源ＯＦＦのハイパーバイザコールを呼び出す。
ステップＳ４６４において、ハイパーバイザ１３０は、ステップＳ４６１で指定された更新ファイルを用いて、セキュリティシステム１４０の記憶部であるセキュリティシステム仮想記憶部２１０（図１参照）を更新（ファーム更新）する。
【００８８】
ステップＳ４６５において、ハイパーバイザ１３０は、セキュリティシステム１４０を起動する（電源ＯＮ状態にする）。
ステップＳ４６６において、セキュリティシステム１４０が、起動処理を実行する。
ステップＳ４６７において、保守部１４４は、管理システム３００にセキュリティシステム１４０の更新が完了したことを通知する。通知は、デジタル署名が付与され、暗号化されて、管理システム３００に送信される。
【００８９】
≪遠隔保守処理の特徴≫
制御コマンドを用いて、セキュリティシステム１４０に指示を出すことにより、管理システム３００は、ユーザシステム１２０やセキュリティシステム１４０の遠隔からのシステム更新（ファーム更新）などが可能となる。これにより、デバイス１００が設置されているフィールドに出向かなくても、新しい機能の追加や不具合の修正ができるようになる。
また、ユーザシステム１２０は、ハイパーバイザ１３０上で動作すればよく、そのＯＳや通信仕様によらず、さまざまなユーザシステム１２０に対して遠隔保守が可能である。これは、ＤｏＳ攻撃対応処理（図８参照）、ユーザシステム監視処理（図９参照）についても同様である。
【００９０】
≪変形例：ネットワーク状態判定≫
ステップＳ３０３とＳ３０８（図９参照）のユーザシステム１２０のネットワーク状態を判定する際に、状態管理部１４３は、データ量や通信間隔、通信回数を参照していた。この他に、送信先アドレス２３２（図３参照）や送信元アドレス２５２（図５参照）を参照して、本来の通信相手であるフィールドシステムサーバ３５０と他のデバイス以外のアドレスが含まれていた場合には、異常と判定するようにしてもよい。また、通信アドレスはＩＰを想定しているが、イーサネット（登録商標）アドレス他のアドレスでもよい。
【００９１】
≪変形例：ＤｏＳ攻撃判定≫
また、ステップＳ２０２、Ｓ２０８のＤｏＳ攻撃の判定においても、本来の通信相手以外の通信データが所定の数以上含まれていた場合にはＤｏＳ攻撃と判定してもよい。さらに、ユーザシステム１２０向けの通信データのデータ量や通信間隔の他に、セキュリティシステム１４０向けまたはデバイス１００向けの通信データのデータ量やフレーム数、ＴＣＰ（Transmission Control Protocol）のＳＹＮパケットなどＤｏＳ攻撃に用いられる通信データの数（フレーム数）を参照してＤｏＳ攻撃の有無を判定してもよい。この場合には、内向き通信累計量テーブル２４０と同様に、セキュリティシステム１４０またはデバイス１００向けの通信データの通信累計量を記録しておいて判定する。
【００９２】
≪変形例：ユーザシステムと外部装置間の通信データ中継処理≫
ステップＳ１０４（図６参照）の外向き通信累計量テーブル２２０（図２参照）の更新において、最新のレコード（開始時刻２２３が現在時刻と比較して累計時間以内のレコード）の数が所定の標準値（第４標準値）と比較して所定の閾値（第４閾値）より大きいならば、仮想ネットワーク制御部１４６は、異常な状態と判断して状態管理部１４３に通知し、状態管理部１４３が異常状態遷移処理（図１０参照）を実行するようにしてもよい。この場合、状態管理部１４３は管理システム３００に、レコード数が異常に増加したことや最新のレコードに含まれる送信先アドレス２２２を通知するようにしてもよい。
【００９３】
また、ステップＳ１０４で更新したレコードにおいて、累計データ量２２４または累計フレーム数２２５が所定の標準値（第４標準値）と比較して所定の閾値（第４閾値）より大きいならば、仮想ネットワーク制御部１４６は、異常な状態と判断して状態管理部１４３に通知し、状態管理部１４３が異常状態遷移処理を実行するようにしてもよい。この場合、状態管理部１４３は管理システム３００に、当該レコードの送信先アドレス２２２、累計データ量２２４および累計フレーム数２２５を通知するようにしてもよい。
【００９４】
仮想ネットワーク制御部１４６は、ステップＳ１１２（図７参照）の内向き通信累計量テーブル２４０の更新においても、上記に説明したステップＳ１０４の外向き通信累計量テーブル２２０の更新と同様に、最新のレコード数、累計データ量２４４および累計フレーム数２４５の何れかが所定の標準値（第４標準値）と比較して所定の閾値（第４閾値）より大きいならば状態管理部１４３に通知し、状態管理部１４３が異常状態遷移処理を実行するようにしてもよい。
【００９５】
このように仮想ネットワーク制御部１４６が異常状態を検知することにより、ＤｏＳ攻撃対応処理（図８参照）の待機中（Ｓ２０１参照）やユーザシステム監視処理（図９参照）の実行の合間であっても、即座に異常な状態に対応できるようになる。例えば、ＤｏＳ攻撃が発生したり、ユーザシステム１２０がウィルスに感染してサイバー攻撃を開始したり、センサ１５０またはユーザシステム１２０に異常が発生して暴走したりした場合に、即座に対応できるという効果がある。
【００９６】
≪変形例：その他≫
ステップＳ１０４〜Ｓ１０５（図６参照）とＳ１１２〜Ｓ１１３（図７参照）の通信データの送信（中継）処理において、仮想ネットワーク制御部１４６は、通信データのサイズを参照して、外向き通信累計量テーブル２２０と内向き通信累計量テーブル２４０とを更新していた。本来の通信相手であるフィールドシステムサーバ３５０と他のデバイス以外との通信を防ぐために、通信データの送信先や送信元を参照してフィルタリングしてもよい。また、通信データの内容を検査し、不正なデータであればフィルタリングしてもよい。フィルタリングされた通信データであっても、外向き通信累計量テーブル２２０と内向き通信累計量テーブル２４０とは更新され、ＤｏＳ攻撃対応処理やユーザシステム監視処理においてＤｏＳ攻撃の有無やネットワーク状態の判定の際に参照される。
【００９７】
システム情報収集処理（図１４参照）で収集される情報として仮想ＣＰＵの使用状況があるが、他の情報を含めてもよい。例えば、ユーザシステム仮想記憶部２７０に含まれる情報（ユーザシステム１２０のファイルやＲＡＭの情報）であってもよい。また、制御コマンドがファイル名やアドレスを含んでおり、収集対象の情報を指定できるようにしてもよい。
本実施形態では、フィールドシステムのデバイスをサイバー攻撃からの保護対象としていたが、ゲートウェイとしての機能をユーザシステムが有するようにしてゲートウェイも保護対象としてもよい。また、フィールドシステムの装置に限る必要はなく、仮想マシンとして動作可能な通信ノードであれば保護対象とすることができる。
【符号の説明】
【００９８】
１００  デバイス（通信装置）
１１１  物理ＮＩＣ（物理通信コントローラ）
１２０  ユーザシステム（通信装置、第1の仮想マシン）
１２２  ＨＢ（Heart Beat）送信部
１２３  仮想ＮＩＣ
１３０  ハイパーバイザ
１３１  仮想スイッチ
１４０  セキュリティシステム（第２の仮想マシン）
１４１  暗号通信部
１４２  監視部
１４３  状態管理部
１４４  保守部
１４５  時刻同期部
１４６  仮想ネットワーク制御部
１４７  仮想ＮＩＣ
２００  記憶部
２１０  セキュリティシステム仮想記憶部
２２０  外向き通信累計量テーブル
２３０  外向き通信平均値テーブル
２４０  内向き通信累計量テーブル
２５０  内向き通信平均値テーブル
２７０  ユーザシステム仮想記憶部
３００  管理システム
３５０  フィールドシステムサーバ（外部装置）
【図１】
2019109828.tif 000003
【図２】
2019109828.tif 000004
【図３】
2019109828.tif 000005
【図４】
2019109828.tif 000006
【図５】
2019109828.tif 000007
【図６】
2019109828.tif 000008
【図７】
2019109828.tif 000009
【図８】
2019109828.tif 000010
【図９】
2019109828.tif 000011
【図１０】
2019109828.tif 000012
【図１１】
2019109828.tif 000013
【図１２】
2019109828.tif 000014
【図１３】
2019109828.tif 000015
【図１４】
2019109828.tif 000016
【図１５】
2019109828.tif 000017
【図１６】
2019109828.tif 000018