(57)【要約】【課題】分散処理を維持しながら信頼性及び不正なプログラム起動を防止してサイバーセキュリティを向上することができる情報処理システム及び情報処理方法を提供する。【解決手段】複数の演算装置のそれぞれは、制御部、データ生成部及び通信部を備える。制御部は、許可又は許可しない事項を示すリスト情報に基づいて、前記事項についての処理の実行の許否を判定する。データ生成部は、前時点のブロックデータに基づく検証値と、前記事項の発生に関する現時点まで累積された履歴情報と、を含む現時点のブロックデータを生成する。通信部は、ブロックデータを複数の演算装置間で同報する。【選択図】図２
2018142078.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算装置を備える情報処理システムであって、
前記複数の演算装置のそれぞれは、
前記演算装置で許可又は許可しない事項を示すリスト情報に基づいて、前記事項についての処理の実行の許否を判定する制御部と、
前時点のブロックデータに基づく検証値と、前記事項の発生に関する現時点まで累積された履歴情報と、を含む現時点のブロックデータを生成するデータ生成部と、
前記ブロックデータを前記複数の演算装置間で同報する通信部と、
を備える情報処理システム。
【請求項２】
実行が許可されたプログラムを示すプログラムリスト情報を含む開始時点の第１ブロックデータを前記複数の演算装置に提供する管理装置を備え、
前記制御部は、
前記プログラムリスト情報が示すプログラムに基づく処理の実行の許否を判定し、
前記データ生成部は、
前時点の第１ブロックデータに基づく検証値と、前記処理の起動状態を示す起動プログラム情報が現時点まで累積された履歴情報と、を含む現時点の第１ブロックデータを生成し、
前記通信部は、
前記第１ブロックデータを前記複数の演算装置間で同報する
請求項１に記載の情報処理システム。
【請求項３】
所定の機能へのアクセスが許可されたユーザを示すユーザリスト情報を含む開始時点の第２ブロックデータを前記複数の演算装置に提供する管理装置を備え、
前記制御部は、
前記ユーザリスト情報に基づいてユーザからの前記機能へのアクセスの許否を判定し、
前記データ生成部は、
前時点の第２ブロックデータに基づく検証値と、前記機能へのアクセス結果を示すアクセス状態情報が現時点まで累積された履歴情報であるアクセス履歴情報と、を含む現時点の第２ブロックデータを生成し、
前記通信部は、
前記第２ブロックデータを前記複数の演算装置間で同報する
請求項１又は請求項２に記載の情報処理システム。
【請求項４】
前記複数の演算装置のそれぞれは、
サイバーセキュリティが損なわれうる事象を検出する検出部を備え、
前記データ生成部は、
前時点の第３ブロックデータに基づく検証値と、検出された前記事象を示す事象情報が現時点まで累積された履歴情報である事象履歴情報と、を含む現時点の第３ブロックデータを生成し、
前記通信部は、
前記第３ブロックデータを前記複数の演算装置間で同報する
請求項１から請求項３のいずれか一項に記載の情報処理システム。
【請求項５】
プログラムのパッチを示すパッチリスト情報を含む開始時点の第４ブロックデータを前記複数の演算装置に提供する管理装置を備え、
前記制御部は、
前記パッチリスト情報が示すパッチの適用の要否を判定し、
前記データ生成部は、
前時点の第４ブロックデータに基づく検証値と、前記パッチの適用状態を示すパッチ適用情報が現時点まで累積された履歴情報であるパッチ適用履歴情報と、を含む現時点の第４ブロックデータを生成し、
前記通信部は、
前記第４ブロックデータを前記複数の演算装置間で同報する
請求項１から請求項４のいずれか一項に記載の情報処理システム。
【請求項６】
複数の演算装置を備える情報処理システムにおける情報処理方法であって、
前記複数の演算装置のそれぞれが、
前記演算装置で許可又は許可しない事項を示すリスト情報に基づいて、前記事項についての処理の実行の許否を判定する制御過程と、
前時点のブロックデータに基づく検証値と、前記事項の発生に関する現時点まで累積された履歴情報と、を含む現時点のブロックデータを生成するデータ生成過程と、
前記ブロックデータを前記複数の演算装置間で同報する通信過程と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
発電プラント、鉄道システム、船舶、自動車、工場のオートメーション等において、それらの運転を制御するために分散制御システムが用いられることがある。分散制御システムなどの分散システムは、冗長化構成を有する。冗長化構成とは、多重化構成とも呼ばれる。安全性を確保するため、２つ又はそれ以上（例えば、４つ）のサブシステムを備え、サブシステム間で同一の処理を並列に実行可能とする。このとき、各サブシステムを構成する演算装置は、起動時に自装置が備えるハードウェアとソフトウェアの組み合わせが適切か否かを確認することがある。例えば、複数の異なるユーザによる二重承認が得られるときにソフトウェアの更新を行うことが提案されている（特許文献１）。また、分散システムにおいて、認証局サーバ（ＣＡ：Ｃｅｒｔｉｆｉｃａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ）を設けておき、演算装置は認証された電子証明書を用いて演算装置にアクセスするユーザの認証を行うことが提案されている（特許文献２）。また、監視モニタ等の管理装置から提供されるホワイトリストを用いて、演算装置は予め許可されたソフトウェアやプロセス以外のソフトウェアやプロセスの起動を行わないことが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５９６４０７７号公報
【特許文献２】特許第５５９３４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、冗長化構成をとる場合、互いにソフトウェア構成を確認するために演算装置間で相互に通信が発生する。そのため、冗長化台数が増えると、演算装置間で送受信されるデータの通信量が著しく増える。冗長化台数とは、冗長化構成におけるサブシステムの数である。冗長化台数は、多重度と呼ばれることもある。例えば、サブシステム、即ち演算装置の個数がｎ（ｎは、１より大きい整数）個である場合には、演算装置間における通信量は、冗長化構成をとらない場合のｎ（ｎ−１）／２倍となる。そのため、冗長化台数を容易に増やすことができないという課題があった。
また、サイバーセキュリティを確保するために認証局サーバが設けられる場合、認証局サーバが各種のサイバーセキュリティに関する機能に関して中央サーバとしての役割を担う。そのため、分散システムであるにも関わらず、認証局サーバに障害が発生すると、分散システム全体の稼働に影響を及ぼしうるという課題が生じていた。認証局サーバの設置は、ユーザの成りすましに対しては有効な対策であるが、予め許可されたソフトウェア以外の不正なソフトウェアの適用を防止することができない。例えば、感染防止に予め許可したプログラムのみ起動を許可するホワイトリスト方式が用いられる場合、ソフトウェアの更新の度に実行が許可されるソフトウェアを示すホワイトリストの配信を要するうえ、冗長化台数が多いほど更新ならびに配信の負荷が多くなる。更新ならびに配信のために専用の配信サーバを分散システムに設置すると、認証局サーバと同様に、その障害により分散システム全体の稼働に影響を及ぼしうるという課題を生じる。
【０００５】
本発明は、上述の課題を鑑みてなされたものであり、分散処理を維持しながら信頼性及び不正なプログラム起動を防止してサイバーセキュリティを向上することができる情報処理システム及び情報処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
本実施形態の一態様は、複数の演算装置を備える情報処理システムであって、前記複数の演算装置のそれぞれは、前記演算装置で許可又は許可しない事項を示すリスト情報に基づいて、前記事項についての処理の実行の許否を判定する制御部と、前時点のブロックデータに基づく検証値と、前記事項の発生に関する現時点まで累積された履歴情報と、を含む現時点のブロックデータを生成するデータ生成部と、前記ブロックデータを前記複数の演算装置間で同報する通信部と、を備える情報処理システムである。
【０００７】
本実施形態の一態様は、上述の情報処理システムであって、実行が許可されたプログラムを示すプログラムリスト情報を含む開始時点の第１ブロックデータを前記複数の演算装置に提供する管理装置を備え、前記制御部は、前記プログラムリスト情報が示すプログラムに基づく処理の実行の許否を判定し、前記データ生成部は、前時点の第１ブロックデータに基づく検証値と、前記処理の起動状態を示す起動プログラム情報が現時点まで累積された履歴情報と、を含む現時点の第１ブロックデータを生成し、前記通信部は、前記第１ブロックデータを前記複数の演算装置間で同報する。
【０００８】
本実施形態の他の態様は、上述の情報処理システムであって、所定の機能へのアクセスが許可されたユーザを示すユーザリスト情報を含む開始時点の第２ブロックデータを前記複数の演算装置に提供する管理装置を備え、前記制御部は、前記ユーザリスト情報に基づいてユーザからの前記機能へのアクセスの許否を判定し、前記データ生成部は、前時点の第２ブロックデータに基づく検証値と、前記機能へのアクセス結果を示すアクセス状態情報が現時点まで累積された履歴情報であるアクセス履歴情報と、を含む現時点の第２ブロックデータを生成し、前記通信部は、前記第２ブロックデータを前記複数の演算装置間で同報する。
【０００９】
本実施形態の他の態様は、上述の情報処理システムであって、前記複数の演算装置のそれぞれは、サイバーセキュリティが損なわれる事象を検出する検出部を備え、前記データ生成部は、前時点の第３ブロックデータに基づく検証値と、検出された前記事象を示す事象情報が現時点まで累積された履歴情報である事象履歴情報と、を含む現時点の第３ブロックデータを生成し、前記通信部は、前記第３ブロックデータを前記複数の演算装置間で同報する。
【００１０】
本発明の他の態様は、上述の情報処理システムであって、プログラムのパッチを示すパッチリスト情報を含む開始時点の第４ブロックデータを前記複数の演算装置に提供する管理装置を備え、前記制御部は、前記パッチリスト情報が示すパッチの適用の要否を判定し、前記データ生成部は、前時点の第４ブロックデータに基づく検証値と、前記パッチの適用状態を示すパッチ適用情報が現時点まで累積された履歴情報であるパッチ適用履歴情報と、を含む現時点の第４ブロックデータを生成し、前記通信部は、前記第４ブロックデータを前記複数の演算装置間で同報する。
【００１１】
本発明の他の態様は、複数の演算装置を備える情報処理システムにおける情報処理方法であって、前記複数の演算装置のそれぞれが、前記演算装置で許可又は許可しない事項を示すリスト情報に基づいて、前記事項についての処理の実行の許否を判定する制御過程と、前時点のブロックデータに基づく検証値と、前記事項の発生に関する現時点まで累積された履歴情報と、を含む現時点のブロックデータを生成するデータ生成過程と、前記ブロックデータを前記複数の演算装置間で同報する通信過程と、を有する情報処理方法である。
【発明の効果】
【００１２】
本発明によれば、複数の演算装置間で同報されるブロックデータが共有される。そのため、送信対象の演算装置の数の増加による伝送量の増加が、個々の演算装置を特定してブロックデータが伝送される場合よりも抑制されるため、ブロックデータが効率的に共有される。また、ブロックデータに含まれるプログラムリスト情報の正当性を認証するための認証サーバを設置しなくても、冗長化された個々の演算装置の分散処理を維持しながら、ブロックデータに含まれるプログラムリスト情報に基づいて、そのプログラムに基づく処理の起動を制御することができる。実行が許可されない不正なプログラムの起動が抑制されことで、情報処理システムの信頼性とサイバーセキュリティが向上する。
【図面の簡単な説明】
【００１３】
【図１】第一実施形態に係る冗長化システムの一構成例を示すブロック図である。
【図２】第一実施形態に係る演算装置の一例を示すブロック図である。
【図３】第一実施形態に係るホワイトリスト情報の例を示す図である。
【図４】第一実施形態に係る起動アプリケーション情報の一例を示す図である。
【図５】第一実施形態に係るホワイトリスト情報の作成画面の一例を示す図である。
【図６】第一実施形態に係るハードウェア構成情報の作成画面の一例を示す図である。
【図７】第一実施形態に係るブロックデータの例を示す図である。
【図８】第一実施形態に係るホワイトリスト管理・配信処理の一例を示すフローチャートである。
【図９】第一実施形態に係る冗長化システムの他の構成例を示すブロック図である。
【図１０】第二実施形態に係るブロックデータの例を示す図である。
【図１１】第三実施形態に係る演算装置の一構成例を示すブロック図である。
【図１２】第三実施形態に係る脅威対処テーブルの一例を示す図である。
【図１３】第三実施形態に係るブロックデータの例を示す図である。
【図１４】第三実施形態の一変形例に係るブロックデータの例を示す図である。
【図１５】第四実施形態に係るパッチリスト情報の例を示す図である。
【図１６】第四実施形態に係るパッチ適用情報の例を示す図である。
【図１７】第四実施形態に係るブロックデータの例を示す図である。
【発明を実施するための形態】
【００１４】
＜第一実施形態＞
以下、本発明の第一実施形態に係る冗長化システムについて、図１〜図９を参照して説明する。
図１は、本実施形態に係る冗長化システム１の一構成例を示すブロック図である。
冗長化システム１は、複数の演算装置１０とＥＭＳ（Ｅｎｇｉｎｅｅｒｉｎｇ  ａｎｄ  Ｍａｉｎｔｅｎａｎｃｅ  Ｓｔａｔｉｏｎ；管理装置）２２を含んで構成される。複数の演算装置１０は、互いに共通の構成を備える。演算装置１０ａ等のａ等の符号は、個々の演算装置を区別するための符号である。演算装置１０ａ−１０ｄは、それぞれネットワークＮＷで通信可能に接続され、相互に各種のデータを送受信できる。図１に示す例では、演算装置１０の台数は、４個であるが、３個以上であればよい。また、台数の上限は特に設けられない。以下の説明では、演算装置１０が、主にサーバ装置として実現される場合を例にする。
【００１５】
ＥＭＳ２２は、ユーザであるエンジニアの操作を受け付け、受け付けた操作に応じてネットワークＮＷを介して接続されている機器を管理するための装置である。演算装置１０の管理には、例えば、各演算装置１０の起動、停止などの動作状態の指示、パラメータの設定、アプリケーションプログラムの作成と配信、などである。ＥＭＳ２２は、ユーザの操作を受け付ける操作入力部と、操作対象の演算装置や各種の情報を表示するための表示部と、操作により指示される操作情報、設定情報などを適用対象の演算装置１０に送信するための通信部を備える。ＥＭＳ２２は、演算装置１０に起動を許可するアプリケーションプログラムのリストを示す開始時点のブロックデータを生成する。起動とは、実行を開始することを示す。以下の説明では、アプリケーションプログラムを単にアプリケーション又はアプリと呼ぶ。プログラムの実行とは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Iｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の演算処理を実行する演算デバイスがプログラムに記述された命令に係る処理を行うことを意味する。プログラムの起動とは、プログラムの実行を開始することを意味する。また、機能部毎にその処理を実行する演算デバイス、プログラムが異なっていてもよい。
【００１６】
現時点のブロックデータは、前時点のブロックデータに基づく検証値と、開始時点から現時点までの各時点の要素情報を累積して構成される履歴情報を含むデータである。検証値として、例えば、前時点のブロックデータに含まれるブロックヘッダ、現時点の履歴情報のそれぞれについて得られたハッシュ値が用いられる。ＥＭＳ２２は、開始時点のブロックデータとして、アプリケーションのリストを示す開始時点（初期）の履歴情報、所定の検証値の初期値、及び開始時点の履歴情報の検証値と、を含むブロックデータを生成する。アプリケーションのリストは、演算装置１０に起動を許可するアプリケーションを示すアプリケーション情報を１個又は複数個を含んで構成されるホワイトリスト情報である。ブロックデータの具体例については、後述する。各アプリケーション情報には、そのアプリケーションの起動の許否を示す演算装置１０の情報が含まれてもよい。ＥＭＳ２２は、生成した開始時点のブロックデータを演算装置１０にネットワークＮＷを介して送信する。
【００１７】
次に、本実施形態に係る演算装置１０の機能構成について説明する。図２は、本実施形態に係る演算装置１０の一例を示すブロック図である。
演算装置１０は、制御演算部１１、機能制御部１３、ブロックデータ処理部１４、通信部１６及び記憶部１８を備える。演算装置１０は、例えば、演算デバイスから構成される。演算デバイスは、記憶部１８に記憶された所定の制御プログラムを読み出し、読み出した制御プログラムを実行する。また、機能部間でプログラムを実行する演算デバイスが共通であってもよいし、異なっていてもよい。
【００１８】
制御演算部１１は、記憶部に記憶された各種のプログラムから、機能制御部１３から入力されたアプリケーション起動指示情報が示すアプリケーションを読み出し、読み出したアプリケーションに記述された命令が示す処理を実行する。なお、制御演算部１１は、処理を実行するアプリケーションは、アプリケーション起動指示情報が示すアプリケーションであって、ユーザの操作により指示されたアプリケーションでもよい。また、制御演算部１１が処理を実行するプログラムには、そのアプリケーションから参照されるダイナミックリンクライブラリ（ＤＬＬ：Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）が含まれることがある。制御演算部１１は、起動したアプリケーションについて、自機における起動状態として起動中を示す起動アプリケーション情報を記憶部１８に記憶する。また、制御演算部１１は、起動したアプリケーションについて起動が完了したとき、記憶部１８に記憶した起動アプリケーション情報を、自機における起動状態として起動完了を示す起動アプリケーション情報に更新する。また、実行対象のアプリケーションは、ＥＭＳ２２を介して提供されるアプリケーションであってもよい。
また、制御演算部１１は、機能制御部１３からアプリケーション実行停止情報が入力されるとき、アプリケーション実行停止情報が示すアプリケーションの実行を停止する。制御演算部１１は、実行を停止したアプリケーションについて、自機における起動状態として起動停止を示す起動アプリケーション情報を記憶部１８に記憶する。
【００１９】
機能制御部１３は、記憶部１８に新たに記憶されたアプリケーション情報、つまりホワイトリスト情報に基づいて、そのアプリケーション情報が示すアプリケーションの実行の許否を判定する。機能制御部１３は、アプリケーション情報が自装置での実行を許可するアプリケーションを実行すると判定する。機能制御部１３は、そのアプリケーション情報が自装置に実行が許可されていないアプリケーションを実行しないと判定する。機能制御部１３は、実行すると判定したアプリケーションの起動を指示するアプリケーション起動指示情報を生成し、生成したアプリケーション起動指示情報を制御演算部１１に出力する。
【００２０】
機能制御部１３は、記憶部１８に記憶された最新の起動アプリケーション情報が示すアプリケーションのうち、その起動状態が起動停止（起動を中断し停止すること）であるアプリケーションが存在する場合がある。その場合には、自装置とは異なる他の演算装置１０の制御演算部１１においてそのアプリケーションの実行が停止している場合と、自装置の制御演算部１１がそのアプリケーションの実行が停止している場合とがある。機能制御部１３は、そのアプリケーションの起動を指示するアプリケーション起動指示情報を生成し、生成したアプリケーション起動指示情報を制御演算部１１に出力してもよい。これにより、冗長化システム１において、実行が停止されたアプリケーションが最初に検知した演算装置１０が、そのアプリケーションの実行が維持される。また、アプリケーションの実行の停止を最初に検知した演算装置において、そのアプリケーションが再起動される。そのため、アプリケーションの実行を停止した演算装置１０と、アプリケーションを再起動する演算装置１０とは同一であることもあるし、異なることもある。
【００２１】
また、機能制御部１３は、制御演算部１１において新たに起動したアプリケーションを検知したとき、ホワイトリスト情報を参照して、そのアプリケーションが自装置に実行が許可されたアプリケーションであるか否かを判定する。さらに、機能制御部１３は、記憶部１８に記憶されたホワイトリスト情報が、更新されたか否かを所定時間毎に判定してもよい。更新されたと判定するとき、制御演算部１１において実行中のアプリケーションのうち、更新されたホワイトリスト情報を参照して自装置に実行が許可されていないアプリケーションが存在しているか否かを判定してもよい。自装置に実行が許可されていないアプリケーションが存在する場合には、機能制御部１３は、そのアプリケーションの実行の停止を示すアプリケーション実行停止情報を生成し、生成したアプリケーション実行停止情報を制御演算部１１に出力する。これにより、そのアプリケーションの実行が停止される。その場合、機能制御部１３は、そのアプリケーションの実行の停止を示すアラーム情報を生成し、生成したアラーム情報をＯＰＳ（Ｏｐｅｒａｔｏｒ  Ｓｔａｔｉｏｎ；監視装置）２１（図９）に通信部１６を介して送信してもよい。ＯＰＳ２１は、後述するように各種の機器の制御状態をユーザであるエンジニアが監視するための装置である。ＯＰＳ２１は、ＥＭＳ２２と一体に構成されてもよい。これにより、ユーザは、起動したアプリケーションの実行の停止を知得することができる。
なお、機能制御部１３は、制御演算部１１におけるアプリケーションの実行の停止を検知したとき、記憶部１８に記憶した起動アプリケーション情報を、自装置におけるそのアプリケーションの起動状態として起動停止を示す起動アプリケーション情報に更新する。
【００２２】
ブロックデータ処理部１４は、ブロックデータに係る処理を実行する。ブロックデータ処理部１４は、ブロックデータ保存部１４１、受信データ解析部１４２、及び送信データ生成部１４３を含んで構成される。
【００２３】
ブロックデータ保存部１４１は、ＥＭＳ２２又は自装置とは異なる他の演算装置１０から通信部１６を介して受信したブロックデータと自装置の送信データ生成部１４３が生成したブロックデータを一時的に保存する。
【００２４】
受信データ解析部１４２は、保存されているブロックデータのうち、前時点のブロックデータとして最新のブロックデータをブロックデータ保存部１４１から読み出す。読み出されたブロックデータが開始時点のブロックデータである場合には、受信データ解析部１４２は、読み出したブロックデータから開始時点の履歴情報に相当するホワイトリスト情報を抽出し、抽出したホワイトリスト情報を記憶部１８に記憶する。なお、読み出したブロックデータに含まれるホワイトリスト情報が、記憶部１８に過去に記憶したホワイトリスト情報から変更されていない場合には、受信データ解析部１４２は、読み出したブロックデータに含まれるホワイトリスト情報を記憶部１８に記憶しなくてもよい。つまり、新たなホワイトリスト情報が取得されるとき、記憶部１８に記憶されるホワイトリスト情報が新たなホワイトリスト情報に更新されればよい。
また、読み出されたブロックデータが開始時点よりも後の時点のブロックデータである場合には、受信データ解析部１４２は、最新のブロックデータの履歴情報から最新の起動アプリケーション情報を抽出し、抽出した起動アプリケーション情報を記憶部１８に記憶する。
【００２５】
送信データ生成部１４３は、自装置におけるアプリケーションの起動状態を示す最新の起動アプリケーション情報を記憶部１８から読み出す。また、送信データ生成部１４３は、ブロックデータ保存部１４１に保存されたブロックデータのうち最新のブロックデータを前時点のブロックデータとして読み出し、読み出したブロックデータと起動アプリケーション情報とに基づいて現時点のブロックデータを生成する。現時点のブロックデータは、前時点のブロックデータに基づく検証値と、その履歴情報に新たな起動アプリケーション情報を要素情報として追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部１４３は、検証値として、例えば、前時点のブロックデータに含まれるブロックヘッダ、現時点の履歴情報のそれぞれについて所定の一方向関数を用いてハッシュ値を算出する。送信データ生成部１４３は、生成したブロックデータを自装置とは異なる他の演算装置１０に送信し、自装置のブロックデータ保存部１４１に保存する。これにより、自装置を含む複数の演算装置１０の間で送信データ生成部１４３が生成したブロックデータが同報（ブロードキャスト）され、互いに共有される。
【００２６】
通信部１６は、ネットワークＮＷと通信可能に接続され、ネットワークＮＷに接続された他の機器との間で各種のデータを送受信する。通信部１６は、例えば、自装置とは異なる他の演算装置１０からブロックデータを受信し、自装置の送信データ生成部１４３が生成したブロックデータを自装置とは異なる他の演算装置１０に同報する。
記憶部１８は、自装置の各部が取得した各種のデータ、自装置の各部の処理に用いるデータを記憶する。記憶部１８、ブロックデータ保存部１４１は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶媒体を含んで構成される。
【００２７】
（ホワイトリスト情報）
次に、本実施形態に係るホワイトリスト情報の例について説明する。
図３は、本実施形態に係るホワイトリスト情報の例を示す図である。
図３に示す例では、ホワイトリスト情報は、実行を許可するアプリケーション毎に、アプリケーション名、バージョン、ハッシュ値及び許可する演算装置の情報の組み合わせを、１個又は複数個含んで構成される。各行に示すこの情報の組み合わせが、アプリケーション情報に相当する。アプリケーション名は、個々のアプリケーションの名称である。図３に示す例では、アプリケーション名としてプロセス名が用いられているが、そのアプリケーションを特定することができる名称であれば、略称、通称などが用いられてもよい。バージョンは、そのアプリケーション名に係るアプリケーションのバージョンである。本実施形態では、アプリケーション名が共通であってもバージョンが異なるアプリケーションは、異なるアプリケーションであるものとして扱われる。ハッシュ値は、そのアプリケーションを示すビット列全体のハッシュ値であり、ＥＭＳ２２において設定される。制御演算部１１は、このハッシュ値を、実行対象として選択したアプリケーションに基づくハッシュ値とが一致するか否かを照合し、両者が一致するとき、そのアプリケーションが改変されていない正当なアプリケーションであると判定して、両者が一致しないとき、そのアプリケーションが不正なアプリケーションであると判定してもよい。そして、制御演算部１１は、正当であると判定したアプリケーションを実行させ、不当であると判定したアプリケーションを実行させない。許可する演算装置の項目には、実行を許可する演算装置の番号が指定される。ＡＬＬとは、ブロックデータの共有先の全ての演算装置を示す。
【００２８】
（起動アプリケーション情報）
次に、本実施形態に係る起動アプリケーション情報の例について説明する。
図４は、本実施形態に係る起動アプリケーション情報の一例を示す図である。図４に示す例では、起動アプリケーション情報は、１つの演算装置１０におけるアプリケーション毎の起動状態を示す。起動アプリケーション情報は、アプリケーション毎のアプリケーション名、バージョン、プロセスＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）及び状態の組み合わせを１個又は複数個含んで構成される。このアプリケーションは、ホワイトリスト情報が示すアプリケーションのいずれかに該当する。プロセスＩＤは、そのプロセスを示す識別情報である。状態の項目は、そのアプリケーションの起動状態を示し、起動中、起動完了又は停止のいずれかの情報を示す。制御演算部１１は、アプリケーションの起動状態が変化する度に、該当するアプリケーションについて、変化前の起動状態の情報を変化後の起動状態を示す情報に更新し、記憶部１８に記録する。なお、起動アプリケーション情報とは、後述するブロックデータの履歴情報に記録される情報である。
【００２９】
（ホワイトリスト情報の作成画面）
ＥＭＳ２２は、ホワイトリスト情報を作成する際、その作成画面を表示部に表示させ、作成画面に表されるアプリケーションのうち、受け付けた操作で指定されたアプリケーションを選択する。ＥＭＳ２２は、選択されたアプリケーションを示すアプリケーション情報からなるホワイトリスト情報を構成する。
図５は、本実施形態に係るホワイトリスト情報の作成画面の一例を示す図である。
図５に示すホワイトリスト情報の作成画面は、例えば、ＥＭＳ２２が受け付けた操作によりホワイトリスト作成開始が指示されるときに表示される。ホワイトリスト情報の作成画面には、演算装置１０において実行可能とするアプリケーションが縦長の枠内の各行に表される。ＥＭＳ２２は、各アプリケーションの名称の冒頭に表れているチェックボックスが選択操作により指定されるとき、そのアプリケーションを、実行を許可するアプリケーションとして選択する。ＥＭＳ２２は、指定されたアプリケーションに係る四角形内にチェック記号を表示させる。なお、ＥＭＳ２２は、選択されたアプリケーション毎に操作により指定された装置を、実行を許可する演算装置１０として定める（図示せず）。そして、クリック操作により「ロード」ボタンが指定されるとき、ＥＭＳ２２は、選択されたアプリケーションを示すホワイトリスト情報を生成する。
【００３０】
（ハードウェア構成情報の作成画面）
ＥＭＳ２２は、ホワイトリスト情報の送信先として複数の演算装置１０を指定する際、ハードウェア構成情報の作成画面を表示部に表示させる。
図６は、本実施形態に係るハードウェア構成情報の作成画面の一例を示す図である。
図６に示すハードウェア構成情報の作成画面は、例えば、ＥＭＳ２２が受け付けた操作によりハードウェア構成の設定が指示されるときに表示される。ハードウェア構成情報の作成画面には、ＥＭＳ２２がネットワークＮＷを介して接続されている機器が表される。ＥＭＳ２２は、右クリック操作により指定された位置に表された機器を送信先として選択し、メニューバーを表示部に表示させる。そして、ＥＭＳ２２は、メニューバーに表示されている機能のうち、ハードウェア構成及びホワイトリスト生成が操作により選択するとき、その機器が送信先として選択される。
【００３１】
（ブロックデータ）
次に、本実施形態に係るブロックデータ（第１ブロックデータ）の例について説明する。
図７は、本実施形態に係るブロックデータの例を示す図である。
ＢＤ０１、ＢＤ０２、ＢＤ０３は、開始時点におけるブロックデータ、開始時点よりも後のある時点におけるブロックデータ、その次の時点におけるブロックデータをそれぞれ示す。
ブロックデータは、ブロックヘッダとその時点における履歴情報とを含んで構成される。ブロックヘッダには、前時点のブロックデータに基づく検証値、装置ＩＤ、演算回数、検証用データ及び履歴情報の検証値が含まれる。
【００３２】
前ブロックデータの検証値は、前時点におけるブロックデータのブロックヘッダから所定の一方向関数を用いて導出された検証値である。図７に示す例では、検証値として所定のハッシュ関数を用いて算出されるハッシュ値が採用されている。検証値は、現時点における履歴情報に含まれる前時点における履歴情報から得られる検証値に基づいても算出される。従って、双方の検証値が一致するか否かにより、現時点において生成されるブロックデータが正当であるか否かが検証される。
但し、開始時点のブロックデータでは、前時点におけるブロックデータが存在しないため、所定の初期値、例えば、０が検証値として用いられる。
【００３３】
装置ＩＤは、そのブロックデータを生成する機器を示す識別情報である。
演算回数は、その機器が実行する演算処理を示す番号である。つまり、演算回数は、演算処理がどの段階まで進行したかを示す稼働タイミングを示す情報である。
検証用データは、演算装置１０間で稼働タイミングを調整するために任意に設定されるデータである。自装置とは異なる他の演算装置１０よりも稼働タイミングが先行している演算装置１０は、その検証用データを用いて他の機能に影響を及ぼさない所定の処理を行う。その処理が行われる時間は、自装置とは異なる他の演算装置１０よりも稼働タイミングが先行している時間差に相当する。所定の処理は、継続的な演算を含むことで一定の時間を要するアルゴリズムに基づく処理、例えば、円周率の計算、マイニング用ハッシュ値の計算である。検証用データには、例えば、処理開始時刻、カウンタタイマー値などが含まれる。検証用データには、その他、実行する処理の初期値、処理により得られる中間値などが含まれてもよい。
【００３４】
履歴情報の検証値は、現時点までの履歴情報の一方向関数として算出される検証値である。つまり、開始時点の履歴情報の検証値として、ホワイトリスト情報に基づく検証値が用いられる。また、開始時点よりも後の各時点の履歴情報の検証値として、ホワイトリスト情報と現時点までの全起動アプリケーション情報を累積して構成される履歴情報の検証値が用いられる。この検証値はブロックヘッダに含まれ、次の時点における前ブロックデータの検証値の導出に用いられる。従って、前ブロックデータが正当ではないと判定されるとき、現ブロックデータも正当ではないと判定される。
【００３５】
開始時点のブロックデータの履歴情報には、ホワイトリスト情報が含まれる。ホワイトリスト情報の各行には、各アプリケーションのアプリケーション情報が含まれる。
開始時点よりも後の時点のブロックデータの履歴情報には、要素情報としてホワイトリスト情報と現時点までの起動アプリケーション情報が含まれる。個々の起動アプリケーション情報には、その起動状態に係る演算装置である稼働サーバの情報が対応付けられる。
【００３６】
（ホワイトリスト管理・配信処理）
次に、本実施形態に係るホワイトリスト管理・配信処理について説明する。
図８は、本実施形態に係るホワイトリスト管理・配信処理の一例を示すフローチャートである。次の説明では、冗長化システム１は、複数の演算装置１０とＥＭＳ２２の他、ＯＰＳ２１を備えていることを前提とする。
また、以下の処理は、演算装置１０の起動中、定期的（例えば、周期制御毎）に実行される。
（ステップＳ１０２）演算装置１０の演算デバイスは、記憶部１８に予め記憶されたブロックデータ処理プログラムを読み出し、読み出したブロックデータ処理プログラムを起動する。これにより、機能制御部１３及びブロックデータ処理部１４の機能が開始される。これにより、ブロックデータを処理する準備が整う。この段階では、ホワイトリストに記載されたアプリケーションは、実行されない。その後、ステップＳ１０４の処理に進む。
（ステップＳ１０４）ブロックデータ保存部１４１は、ＥＭＳ２２から通信部１６を介して開始時点のブロックリスト１を受信し、受信したブロックリスト１を保存する。受信データ解析部１４２は、ブロックデータ保存部１４１に保存されている最新のブロックリスト１からホワイトリストを抽出し、抽出したホワイトリストを記憶部１８に記憶する。その後、ステップＳ１０６の処理に進む
【００３７】
（ステップＳ１０６）機能制御部１１３は、記憶部１８に記憶されたホワイトリストを構成するアプリケーション情報が示すアプリケーションのうち、自装置に起動が許可されたアプリケーションを示すアプリケーション起動指示情報を制御演算部１１に出力する。これにより、制御演算部１１は、ホワイトリスト情報が示すアプリケーションのうち、自装置に起動が許可されたアプリケーションを起動する。その後、ステップＳ１０８の処理に進む。
（ステップＳ１０８）制御演算部１１は、自装置における、そのアプリケーションの起動が完了したとき、起動状態として起動完了を示す起動アプリケーション情報を記憶部１８に記憶する。送信データ生成部１４３は、ブロックデータ保存部１４１から最新のブロックデータ１を前時点のブロックデータとして読み出し、記憶部１８から最新の起動アプリケーション情報を読み出す。送信データ生成部１４３は、前時点のブロックデータに含まれている履歴情報に、最新の起動アプリケーション情報を追加して現時点の履歴情報を生成する。その後、ステップＳ１１０の処理に進む。
（ステップＳ１１０）送信データ生成部１４３は、現時点の履歴情報、現時点の履歴情報の検証値、及び前時点のブロックデータに含まれるブロックヘッダの検証値を含む現時点のブロックデータを送信ブロックデータとして生成する。送信データ生成部１４３は、生成した送信ブロックデータを、自装置とは異なる他の演算装置１０に通信部１６を介して送信し、ブロックデータ保存部１４１に保存する。これにより、送信ブロックデータが演算装置１０の間で共有される。その後、ステップＳ１１２の処理に進む。
【００３８】
（ステップＳ１１２）機能制御部１１３は、自装置の制御演算部１１において新たにアプリケーションが起動したか否かを検知する。ここで、起動した状態には、起動中と起動済のいずれも含まれる。起動が検知されるとき（ステップＳ１１２  ＹＥＳ）、ステップＳ１１４の処理に進む。起動が検知されないとき（ステップＳ１１２  ＮＯ）、ステップＳ１０８に戻り、例えば、次の制御周期をむかえると、ステップＳ１０８以降の処理が繰り返される。
（ステップＳ１１４）機能制御部１３は、起動が検知されたアプリケーションが、記憶部１８に記憶されたホワイトリスト情報を参照して、そのアプリケーションが自装置に実行が許可されたアプリケーションであるか否かを判定する。実行が許可されたアプリケーションであると判定されるとき（ステップＳ１１４  ＹＥＳ）、ステップＳ１２０の処理に進む。実行が許可されていないアプリケーションであると判定されるとき（ステップＳ１１４  ＮＯ）、ステップＳ１１６の処理に進む。
（ステップＳ１１６）機能制御部１３は、起動が検知されたアプリケーションの実行の停止を示すアプリケーション実行停止情報を制御演算部１１に出力する。制御演算部１１は、そのアプリケーションが起動中であるときには、その起動を停止し、そのアプリケーションが起動済である場合には、その実行を停止する（ブロック）。その後、ステップＳ１１８の処理に進む。
（ステップＳ１１８）機能制御部１３は、そのアプリケーションの実行の停止を示すアラーム情報を生成し、生成したアラーム情報をＯＰＳ２１に通信部を介して送信する。その後、ステップＳ１１２の処理に進む。
【００３９】
（ステップＳ１２０）機能制御部１３は、制御演算部１１にそのアプリケーションの実行を停止させず、実行を継続させる。その後、ステップＳ１２２の処理に進む。
（ステップＳ１２２）機能制御部１３は、記憶部１８に記憶されたホワイトリスト情報が更新されたか否かを判定する。なお、この判定は、前回の処理後に受信した新たなブロックデータに新しいホワイトリスト情報が追加されているかどうかによって判定する。更新後の新しいホワイトリスト情報は、新たに受信したブロックデータの履歴情報において、前回のホワイトリストに対して行われたアプリケーションの起動や停止の履歴を示す複数の起動アプリケーション情報の次に追加されている。ホワイトリスト情報が更新されたとき、機能制御部１３は、自装置の制御演算部１１において実行中のアプリケーションと、更新されたホワイトリスト情報が示すアプリケーションであって自装置に実行が許可されたアプリケーションとを比較する。
【００４０】
（ステップＳ１２４）ステップＳ１２２の処理において、ホワイトリスト情報に変更がないと判定された場合には、そのアプリケーションの実行を停止させず、制御演算部１１に実行を継続させる。その後、ステップＳ１０８に戻り、例えば次の制御周期をむかえると、ステップＳ１０８以降の処理を繰り返す。
（ステップＳ１２６）ステップＳ１２２の処理において、実行中のアプリケーションに、更新されたホワイトリスト情報が示す実行が許可されたアプリケーション以外のアプリケーションが存在する場合、ステップＳ１２８の処理に進む。そのような場合は、自装置に実行が許可されたアプリケーションの一部又は全部の情報が、ホワイトリスト情報から削除される場合に起こりうる。
（ステップＳ１２８）機能制御部１３は、実行が許可されたアプリケーション以外のアプリケーションの実行の停止を示すアプリケーション実行停止情報を制御演算部１１に出力する。これにより、そのアプリケーションの実行を停止させる。その後、ステップＳ１０８に戻り、例えば次の制御周期をむかえると、ステップＳ１０８以降の処理を繰り返す。
（ステップＳ１３０）ステップＳ１２０の処理において、更新されたホワイトリスト情報が示す自装置に実行が許可されたアプリケーションに新たに追加されたアプリケーションが存在する場合、制御演算部１１にそのアプリケーションの実行を停止させず、実行を継続させる。その後、ステップＳ１０８に戻り、例えば次の制御周期をむかえると、ステップＳ１０８以降の処理を繰り返す。
【００４１】
このように、ホワイトリスト情報をブロックデータに格納し、開始時点の履歴情報の検証値と共に次のブロックデータ内に反映させることにより、サイバー攻撃によるホワイトリスト情報の改ざん防止が可能になる。つまり、攻撃者は、ホワイトリスト情報を改ざんし自身の悪意あるプログラムに起動許可を与える企図を企てても、開始時点からのすべてのブロックデータを変更し、かつ履歴情報の検証値も再計算し反映する必要がある。さらに各演算装置がブロックデータ保存部に保存するブロックデータも全装置に亘り改ざんすることも必要になる。そして、すべてに成功しないとき、ユーザは履歴情報の検証値から改ざんをきわめて容易に検出できる。この改ざんの検出により、攻撃者の企図が発覚する。従って、本手法により、ホワイトリスト情報の改ざんをけん制する効果が生じる。  
【００４２】
（変形例）
なお、上述では、ホワイトリスト情報が、ブログラムプロセス毎の実行が許可されたアプリケーションプログラムを示す場合を例にしたが、これには限られない。ホワイトリスト情報は、制御コマンド毎の実行が許可されたプログラムを示す情報であってもよい。その場合には、上述の例のようにプログラムプロセス単位ではなく、制御コマンド単位で実行が制御される。また、ホワイトリスト情報が示す各制御コマンドには、その実行に用いるためのパラメータの情報が付随していてもよい。制御演算部１１は、その制御コマンドを実行するとき、付随した情報が示すパラメータを用いて、その制御コマンドの処理を実行する。
【００４３】
なお、正規のアプリケーションプログラムに、不正な処理を実行するコードが含まれている場合には、上述の例のようにプログラムプロセス毎の制御では、その不正な処理の実行を防御することができないことがある。例えば、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）インジェクション、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）コマンドインジェクションなどのインジェクション攻撃が制御コマンドのレベルで行われる場合には、その攻撃に対する防御がなされない。しかしながら、制御コマンド単位でその実行の制御を行うことで、不正な処理の実行を阻止することができる。そのため、冗長化システム１のサイバーセキュリティを確保することができる。
【００４４】
なお、上述では、演算装置１０が主にサーバ装置である場合を例にしたが、これには限られない。例えば、図９に示す冗長化システム２の制御装置（ＬＳ：Ｌｏｇｉｃ  Ｓｏｌｖｅｒ）２４、入出力装置（ＩＯ：Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）２８は、演算装置１０と同様の構成を備えてもよい。制御装置２４は、冗長化システム２が制御対象とするプラントの動作を制御するための装置である。入出力装置２８は、プラントに各種の出力データを出力し、プラントから各種の入力データを入力するための装置である。ここで、制御装置２４、入出力装置２８は、それぞれ演算デバイスを備え、演算デバイスが所定のプログラムに記述された命令が示す処理を実行する。
【００４５】
冗長化システム２は、ＯＰＳ２１、ＥＭＳ２２、ＮＡ（Ｎｅｔｗｏｒｋ  Ａｄａｐｔｏｒ；ネットワークアダプタ）２３、複数の制御装置２４ａ〜２４ｄ、ＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ；入出力）スキャナ２５、ＩＯネットワーク２６、ＩＯアダプタ２７ａ、２７ｂ、及び入出力装置２８ａａ〜２８ａＩ、２８ｂａ〜２８ｂＪを含んで構成される制御システムである。制御装置２４ａ〜２４ｄ、入出力装置２８ａａ〜２８ａＩ、２８ｂａ〜２８ｂＪは、それぞれ互いに共通の構成を備える。制御装置２４ａ等のａ等の符号、入出力装置２８ａａ等のａａ等の符号は、個々の装置を識別するための符号である。
【００４６】
以上に説明したように、本実施形態に係る冗長化システム１、２は、複数の演算装置（例えば、演算装置１０、制御装置２４、入出力装置２８等）と、実行が許可されたプログラムを示すプログラムリスト情報（例えば、ホワイトリスト情報）を含む開始時点のブロックデータを前記複数の演算装置に提供する管理装置（例えば、ＥＭＳ２２）と、を備える情報処理システムである。複数の演算装置のそれぞれは、制御部（例えば、機能制御部１３）、データ生成部（例えば、送信データ生成部１４３）及び通信部（例えば、通信部１６）を備える。制御部は、プログラムリスト情報が示すプログラムに基づく処理の実行の許否を判定する。データ生成部は、前時点のブロックデータに基づく検証値と、処理の起動状態を示す起動プログラム情報（例えば、起動アプリケーション情報）が現時点まで累積された履歴情報と、を含む現時点のブロックデータを生成する。通信部は、ブロックデータを複数の演算装置間で同報する。
【００４７】
この構成によれば、複数の演算装置間で同報されるブロックデータが共有される。そのため、送信対象の演算装置の数の増加による伝送量の増加が、個々の演算装置を特定してブロックデータが伝送される場合よりも抑制されるため、ブロックデータが効率的に共有される。また、ブロックデータに含まれるプログラムリスト情報の正当性を認証するための認証サーバを設置しなくても、冗長化された個々の演算装置の分散処理を維持しながら、ブロックデータに含まれるプログラムリスト情報に基づいて、そのプログラムに基づく処理の起動を制御することができる。実行が許可されない不正なプログラムの起動が抑制されことで、冗長化システムの信頼性が向上する。
また、ブロックデータに含まれる起動プログラム情報がネットワークを介して複数の演算装置間で共有される。そのため、ブロックデータを参照して、実行が許可されていないプログラムに基づく処理の実行の検知及びその実行の停止が効率よく行われるので、サイバーセキュリティが確保される。
【００４８】
＜第二実施形態＞
次に、本発明の第二実施形態について説明する。第一実施形態と同一の構成については、同一の符号を付してその説明を援用する。以下の説明では、主に第一実施形態の冗長化システム１との差異点について述べる。
【００４９】
本実施形態に係るＥＭＳ２２（図１）は、受け付けた操作に基づいて個々の演算装置１０へのアクセスが許可されたユーザを示すユーザ情報を１個又は複数個含むホワイトリスト情報をさらに生成する。以下の説明では、このホワイトリスト情報を、ユーザリスト情報と呼んで第１の実施形態に係るホワイトリスト情報と区別する。ユーザ情報には、各ユーザの識別情報のハッシュ値、そのユーザの認証情報のハッシュ値、及びアクセス許可機能の情報が含まれる。ユーザの識別情報、認証情報として、例えば、ユーザＩＤ、パスワード、がそれぞれ用いられる。アクセス許可機能は、そのユーザにアクセスを許可する機能である。ＥＭＳ２２は、生成したユーザリスト情報を含むように開始時点のブロックデータを生成する。以下の説明では、ユーザリスト情報を含むブロックデータを、第２ブロックデータと呼んで第１の実施形態に係るブロックデータと区別する。開始時点の第２ブロックデータは、ユーザリスト情報を開始時点の履歴情報とし、所定の検証値の初期値、及び開始時点の履歴情報を含んで構成される。第２ブロックデータの具体例については後述する。ＥＭＳ２２は、生成した開始時点の第２ブロックデータを演算装置１０にネットワークＮＷを介して送信する。
【００５０】
次に、本実施形態に演算装置１０（図２）の構成について説明する。本実施形態に係る機能制御部１３は、自装置の外部からの入力情報に基づいてユーザアクセス情報を取得する。ユーザアクセス情報は、ユーザによる演算装置１０が有する機能へのアクセスを示す情報である。ユーザアクセス情報には、例えば、アクセスユーザの識別情報のハッシュ値、アクセスユーザの認証情報のハッシュ値及びアクセス機能の情報が含まれる。アクセスユーザとは、アクセスを行うユーザである。アクセス機能とは、アクセスユーザが利用しようとする機能である。機能制御部１３は、入力情報を取得する際、例えば、自装置が備える操作入力部（図示せず）が受け付けた操作によりアクセスユーザの識別情報、アクセスユーザの認証情報及びアクセス機能の情報を特定する。そして、機能制御部１３は、特定したアクセスユーザの識別情報とアクセスユーザの認証情報のそれぞれの検証値を算出する。また、機能制御部１３は、ＥＭＳ２２もしくはネットワークＮＷに接続された他の機器から通信部１６を介して受信した操作又は設定情報が示すアクセスユーザの識別情報の検証値、アクセスユーザの認証情報の検証値及びアクセス機能の情報を取得してもよい。
【００５１】
機能制御部１３は、記憶部１８に記憶されたユーザリスト情報を参照して、取得したユーザアクセス情報についてユーザ認証処理を行う。ここで、機能制御部１３は、ユーザリスト情報に含まれるユーザの識別情報のハッシュ値とユーザの認証情報のハッシュ値のセット毎に、ユーザアクセス情報に含まれるアクセスユーザの識別情報のハッシュ値とアクセスユーザの認証情報のハッシュ値とをそれぞれ照合する。機能制御部１３は、ユーザアクセス情報に含まれるアクセスユーザの識別情報のハッシュ値とアクセスユーザの認証情報のハッシュ値とそれぞれ一致する、ユーザの識別情報のハッシュ値とユーザの認証情報のセットがユーザリスト情報に存在するか否かを判定する。存在すると判定するとき、機能制御部１３は、さらにユーザアクセス情報に含まれるアクセス機能が、一致すると判定したセットに対応付けられたアクセス許可機能に該当するか否かを判定する。存在しないと判定するとき、機能制御部１３は、そのユーザアクセス情報についてユーザ認証失敗と判定し、アクセスを許可しない。
【００５２】
また、機能制御部１３は、ユーザアクセス情報に含まれるアクセス機能が、そのセットに対応付けられたアクセス許可機能に該当すると判定するとき、そのユーザアクセス情報についてユーザ認証成功と判定し、アクセスを許可する。機能制御部１３は、アクセス機能が、そのセットに対応付けられたアクセス許可機能に該当しないと判定するとき、そのユーザアクセス情報についてユーザ認証失敗と判定し、アクセスを許可しない。機能制御部１３は、その時点の日時を示すアクセス日時、アクセスユーザ、アクセス機能及びアクセス成否を示すアクセス状態情報を生成し、生成したアクセス状態情報を記憶部１８に記憶する。機能制御部１３は、アクセスを許可した機能を示す機能情報を制御演算部１１に出力する。制御演算部１１は、機能制御部１３から入力される機能情報が示す機能を実現するためのプログラムを記憶部１８から読み出し、読み出したプログラムを起動する。これにより、アクセスが許可された機能が実行される。
【００５３】
ブロックデータ保存部１４１は、ＥＭＳ２２又は自装置とは異なる他の演算装置１０から通信部１６を介して受信した第２ブロックデータと自装置の送信データ生成部１４３が生成した第２ブロックデータを一時的に保存する。
受信データ解析部１４２は、ブロックデータ保存部１４１に記憶されている第２ブロックデータのうち最新の第２ブロックデータを読み出す。読み出した最新の第２ブロックデータが、開始時点の第２ブロックデータである場合には、受信データ解析部１４２は、その第２ブロックデータから開始時点の履歴情報に相当するユーザリスト情報を抽出し、抽出したユーザリスト情報を記憶部１８に記憶する。ユーザリスト情報の記憶は、必ずしも新たな第２ブロックデータの読出しの度に行われなくてもよい。新たなユーザリスト情報が取得されるとき、記憶部１８に記憶されるユーザリスト情報が新たなユーザリスト情報に更新されればよい。
ブロックデータ保存部１４１から読み出した最新の第２ブロックデータが、開始時点よりも後の時点の第２ブロックデータである場合には、受信データ解析部１４２は、最新の第２ブロックデータの履歴情報から、最新のアクセス状態情報を抽出し、抽出したアクセス状態情報を記憶部１８に記憶する。
【００５４】
送信データ生成部１４３は、自装置におけるユーザからのアクセス状態を示す最新のアクセス状態情報を記憶部１８から読み出す。また、送信データ生成部１４３は、ブロックデータ保存部１４１に保存された第２ブロックデータのうち最新の第２ブロックデータを前時点の第２ブロックデータとして読み出し、読み出した第２ブロックデータとアクセス状態情報とに基づいて現時点の第２ブロックデータを生成する。現時点の第２ブロックデータは、前時点の第２ブロックデータに基づく検証値と、その履歴情報に新たなアクセス状態情報を要素情報として追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部１４３は、検証値として、例えば、前時点の第２ブロックデータに含まれるブロックヘッダ、現時点の履歴情報のそれぞれについて所定の一方向関数を用いてハッシュ値を算出する。送信データ生成部１４３は、生成した第２ブロックデータを自装置とは異なる他の演算装置１０に送信し、自装置のブロックデータ保存部１４１に保存する。これにより、自装置を含む複数の演算装置１０の間で送信データ生成部１４３が生成した第２ブロックデータが同報され、互いに共有される。
【００５５】
（ブロックデータ）
次に、本実施形態に係るブロックデータの例について説明する。
図１０は、本実施形態に係るブロックデータの例を示す図である。
ＢＤ２１、ＢＤ２２、ＢＤ２３は、開始時点における第２ブロックデータ、開始時点よりも後の時点における第２ブロックデータ、その次の時点における第２ブロックデータをそれぞれ示す。
第２ブロックデータは、ブロックヘッダとその時点における履歴情報とを含んで構成される。第２ブロックヘッダには、前時点のブロックデータに基づく検証値、装置ＩＤ、演算回数、検証用データ及び履歴情報の検証値が含まれる。
【００５６】
本実施形態では、履歴情報の検証値として、開始時点の第２ブロックデータについてはユーザリスト情報のハッシュ値が用いられ、それよりも後の各時点の履歴情報として、ユーザリスト情報と現時点までの全ユーザアクセス状態情報を累積して構成される履歴情報のハッシュ値が用いられる。
【００５７】
開始時点の第２ブロックデータの履歴情報には、ユーザリスト情報が含まれる。ユーザリスト情報の各行には、各ユーザのユーザ情報が含まれる。ユーザ情報には、各ユーザのユーザＩＤのハッシュ値、そのユーザのパスワードのハッシュ値、及びアクセスできる機能（アクセス許可機能）の情報が含まれる。
開始時点よりも後の時点の第２ブロックデータの履歴情報には、要素情報としてユーザリスト情報と現時点までのアクセス状態情報が含まれる。個々のアクセス状態情報には、アクセス日時、アクセスユーザ、アクセス機能、及びアクセス成否の情報が含まれる。アクセス機能には、その機能を有する演算装置１０の情報が含まれてもよい。
なお、本実施形態及び変形例に係る冗長化システム１の構成は、冗長化システム２に適用されてもよい。ここで、制御装置２４、入出力装置２８は、それぞれ本実施形態に係る演算装置１０と同様の構成を備えてもよい。
【００５８】
以上に説明したように、本実施形態に係る冗長化システム（例えば、冗長化システム１、２）において、管理装置（例えば、ＥＭＳ２２）は、所定の機能へのアクセスが許可されたユーザを示すユーザリスト情報を含む開始時点の第２ブロックデータを複数の演算装置に提供する。各演算装置の制御部（例えば、機能制御部１３）は、ユーザリスト情報に基づいてユーザからのその機能へのアクセスの許否を判定する。データ生成部（例えば、送信データ生成部１４３）は、  前時点の第２ブロックデータに基づく検証値と、その機能へのアクセス結果を示すアクセス状態情報が現時点まで累積された履歴情報であるアクセス履歴情報と、を含む現時点の第２ブロックデータを生成する。通信部（例えば、通信部１６）は、第２ブロックデータを複数の演算装置間で同報する。
【００５９】
この構成により、ユーザリスト情報を含む第２ブロックデータが複数の演算装置間で分散処理を維持しながら同報される。そのため、冗長化システムにおいて認証局を設置しなくても、演算装置は、そのユーザリスト情報を用いてユーザ認証処理を行うことができる。そのため、サイバー攻撃等による単一障害点となりうる認証局が設置される場合よりも、冗長化システムの信頼性が向上する。
また、各演算装置１０におけるアクセス状態情報を複数の演算装置間を接続するネットワーク上で取得することができるので、アクセス状態情報が示すアクセス日時、アクセスユーザ、アクセス機能などの情報をネットワークを介して入手することができる。そのため、ユーザのアクセス否認に対する検証の手がかりが得られる。その検証によりユーザの行動を牽制することで、サイバーセキュリティが確保される。
【００６０】
＜第三実施形態＞
次に、本発明の第三実施形態について説明する。上述の実施形態と同一の構成については、同一の符号を付してその説明を援用する。以下の説明では、主に第一実施形態の冗長化システム１（図１）との差異点について述べる。本実施形態に係る冗長化システム１は、複数の演算装置１０とＥＭＳ２２の他、ＯＰＳ２１を備える。
まず、本実施形態に係る演算装置１０の機能構成について説明する。図１１は、本実施形態に係る演算装置１０の一構成例を示すブロック図である。
本実施形態に係る演算装置１０は、制御演算部１１、検出部１２、機能制御部１３、ブロックデータ処理部１４、通信部１６、及び記憶部１８を含んで構成される。
【００６１】
検出部１２は、自装置における脅威を検出する。脅威とは、サイバーセキュリティが損なわれうる事象を意味する。検出部１２は、脅威として、例えば、ログイン連続失敗、未定義ユーザの連続アクセス、未定義アドレスからのデータ受信、受信データ量の異常、未定義コマンドの受信、定義外サイズのパケットデータ受信などの事象を検出する。ログイン連続失敗とは、所定期間（例えば、１〜５秒）内に同一のアドレスで指定される機器からのログイン要求に応じたユーザ認証の失敗が複数回発生することである。未定義ユーザの連続アクセスとは、アクセスが許可されたユーザ以外のユーザからのアクセス要求が所定期間内に複数回発生することである。未定義アドレスからのデータ受信とは、予め設定アドレス以外の他のアドレスで指定された機器からデータを受信することである。受信データ量の異常とは、他の機器から受信するデータの情報量が、他の機能の実行に影響を及ぼさずに受信できる情報量の上限よりも大きいことである。受信データ量の異常は、例えば、ＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃を受けているときに生じうる。未定義コマンドの受信とは、演算装置１０の機能を指示するためのコマンドとして予め設定されていないコマンドを受信することである。定義外サイズのパケットデータ受信とは、予め設定されていない情報量を有するパケットデータを受信することである。検出部１２は、脅威を検出した日時と、その脅威を示す脅威ＩＤを示す脅威情報を生成し、生成した脅威情報を記憶部１８に記憶する。ここで、検出部１２は、記憶部１８に予め記憶された脅威対処テーブル（図１２）を参照して、検出した脅威を示す脅威ＩＤを特定する。
【００６２】
検出部１２は、特定した脅威ＩＤをＯＰＳ２１に通信部１６を介して送信してもよい。もしくは、後述するように、送信データ生成部１４３は、その脅威ＩＤが含まれる第３ブロックデータをＯＰＳ２１に通信部１６を介して送信してもよい。脅威対処テーブルは、各項目の脅威に脅威ＩＤ、脅威レベル及び推奨対策情報が対応付けて構成される脅威リスト情報である。脅威レベルは、その影響の度合いを定量化した数値であり、その数値が大きいほど影響が大きいことを示す。推奨対策情報は、脅威に対する望ましい対策、つまり、その脅威の抑止、その脅威による有害な事象の抑止、被害拡大の防止、再発防止、のいずれか又はその組み合わせを示す情報である。脅威対処テーブルの具体例については、後述する。
【００６３】
ＯＰＳ２１は、予め記憶させておいた脅威対処テーブルを参照し、演算装置１０から受信した脅威ＩＤに対応する脅威レベルと推奨対策情報を特定し、特定した脅威レベルと推奨対策情報を表示部に表示させてもよい。脅威レベルと推奨対策情報は、ダイアログ画面として表示されてもよい。ダイアログ画面には、推奨対策の実行を指示するための実行ボタンが含まれてもよい。ＯＰＳ２１は、操作によりその推奨対策の実行が指示されるとき、その実行の要求を示す推奨対策実行要求情報を、推奨対策情報の応答として演算装置１０に送信してもよい。演算装置１０の機能制御部１３は、ＯＰＳ２１から通信部１６を介して推奨対策実行要求情報を受信するとき、その推奨対策実行要求情報が示す推奨対策を実行する。
【００６４】
なお、記憶部１８には、自装置とは他の演算装置１０から受信した最新の第３ブロックデータに含まれる新たな脅威情報が記憶される場合がある。その場合には、機能制御部１３は、脅威対処テーブルを参照し、その脅威情報に含まれる脅威ＩＤに対応する推奨対策情報を特定し、特定した推奨対策情報が示す推奨対策を実行してもよい。
機能制御部１３は、推奨対策を実行した場合には、その実行を示す推奨対策実行情報を記憶部１８に記憶してもよい。なお、特定した脅威レベルが所定の脅威レベルの閾値よりも高い場合には、検出部１２は、その推奨対策情報が示す推奨対策の実行を示す推奨対策実行対策要求を、機能制御部１３に出力することで、その推奨対策を実行させてもよい。
【００６５】
ブロックデータ保存部１４１は、自装置とは異なる他の演算装置１０から通信部１６を介して受信した第３ブロックデータと自装置の送信データ生成部１４３が生成した第３ブロックデータを一時的に保存する。
受信データ解析部１４２は、ブロックデータ保存部１４１に保存されている第３ブロックデータのうち最新の第３ブロックデータを読み出す。受信データ解析部１４２は、読み出した第３ブロックデータからその時点の履歴情報のうち最新の脅威情報を抽出し、抽出した脅威情報を記憶部１８に記憶する。抽出した脅威情報に含まれる脅威ＩＤは、自装置とは異なる他の演算装置１０において検出された新たな脅威を示す。
【００６６】
送信データ生成部１４３は、自装置において検出された脅威を示す最新の脅威情報を記憶部１８から読み出す。なお、その脅威に対する最新の推奨対策実行情報が記憶部１８に記憶されている場合には、送信データ生成部１４３は、その推奨対策実行情報を脅威情報に追加してもよい。従って、脅威情報に、その脅威に対する推奨対策の実行の旨の情報が反映される。また、送信データ生成部１４３は、ブロックデータ保存部１４１に保存された第３ブロックデータのうち最新の第３ブロックデータを前時点の第３ブロックデータとして読み出し、読み出した第３ブロックデータと脅威情報とに基づいて現時点の第３ブロックデータを生成する。現時点の第３ブロックデータは、前時点の第３ブロックデータに基づく検証値と、その履歴情報に新たな脅威情報を要素情報として追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部１４３は、検証値として、例えば、前時点の第３ブロックデータに含まれるブロックヘッダ、現時点の履歴情報のそれぞれについて所定の一方向関数を用いてハッシュ値を算出する。送信データ生成部１４３は、生成した第３ブロックデータを自装置とは異なる他の演算装置１０に送信し、自装置のブロックデータ保存部１４１に保存する。これにより、自装置を含む複数の演算装置１０間で送信データ生成部１４３が生成した第３ブロックデータが同報され、互いに共有される。また、送信データ生成部１４３は、生成した第３ブロックデータをＯＰＳ２１に送信してもよい。
【００６７】
（脅威対処テーブル）
次に、本実施形態に係る脅威対処テーブルについて説明する。
図１２は、本実施形態に係る脅威対処テーブルの一例を示す図である。
脅威対処テーブルは、各項目の脅威、脅威ＩＤ、脅威レベル及び推奨対策の情報の組み合わせである脅威項目情報を１個又は複数個含んで構成される脅威リスト情報である。
図１２の第２行に示す例では、脅威「ログイン連続失敗」に、脅威ＩＤ「Ｔｈｒｅａｔ１」、脅威レベル「３」及び推奨対策「ユーザのアクセス許可を失効させる」を対応付けられ、脅威項目情報が形成されている。
【００６８】
（ブロックデータ）
次に、本実施形態に係るブロックデータについて説明する。
図１３は、本実施形態に係るブロックデータの例を示す図である。
ＢＤ４１、ＢＤ４２、ＢＤ４３は、ある時点における第３ブロックデータ、次の時点における第３ブロックデータ、その次の時点における第３ブロックデータをそれぞれ示す。
第３ブロックデータは、ブロックヘッダとその時点における履歴情報とを含んで構成される。第３ブロックヘッダには、前時点のブロックデータに基づく検証値、装置ＩＤ、演算回数、検証用データ及び履歴情報の検証値が含まれる。
本実施形態では、履歴情報の検証値として、開始時点から現時点までの全脅威情報を累積して構成される履歴情報のハッシュ値が用いられる。第３ブロックデータの履歴情報には、要素情報として現時点までの脅威情報が含まれる。個々の脅威情報には、日時と脅威ＩＤが含まれる。
【００６９】
（変形例）
上述した例では、各演算装置１０の記憶部１８に脅威対処テーブルを予め記憶しておき、検出部１２が、その脅威対処テーブルを参照して、検出した脅威を特定する場合を例にしたが、これには限られない。次に説明する変形例において、ＥＭＳ２２は、受け付けた操作に基づいて脅威対処テーブルを生成してもよい。ＥＭＳ２２は、生成した脅威対処テーブルを含むように開始時点の第３ブロックデータを生成する。開始時点の第３ブロックデータは、脅威対処テーブルを開始時点の履歴情報とし、所定の検証値の初期値、及び開始時点の履歴情報を含んで構成される。ＥＭＳ２２は、生成した開始時点の第３ブロックデータを演算装置１０にネットワークＮＷを介して送信する。
【００７０】
ブロックデータ保存部１４１は、ＥＭＳ２２から通信部１６を介して受信した第３ブロックデータを一時的に保存する。
受信データ解析部１４２は、ブロックデータ保存部１４１に記憶されている第３ブロックデータのうち最新の第３ブロックデータを読み出す。読み出した最新の第３ブロックデータが、開始時点の第３ブロックデータである場合には、受信データ解析部１４２は、その第３ブロックデータから開始時点の履歴情報に相当する脅威対処テーブルを抽出し、抽出した脅威対処テーブルを記憶部１８に記憶する。脅威リスト情報の記憶は、必ずしも新たな第３ブロックデータの読出しの度に行われなくてもよい。新たな脅威対処テーブルが取得されるとき、記憶部１８に記憶される脅威対処テーブルが新たな脅威対処テーブルに更新されればよい。上述したように、記憶部１８に記憶される脅威対処テーブルが脅威リスト情報として、検出された脅威の特定に用いられる。
【００７１】
（ブロックデータ）
次に、本変形例に係るブロックデータについて説明する。
図１４は、本変形例に係るブロックデータの例を示す図である。
ＢＤ６１、ＢＤ６２、ＢＤ６３は、開始時点における第３ブロックデータ、開始時点よりも後の時点における第３ブロックデータ、次の時点における第３ブロックデータをそれぞれ示す。
本変形例では、開始時点における第３ブロックデータでは、前時点のブロックデータに基づく検証値に代えて、所定の初期値が用いられている。また、履歴情報の検証値として、脅威リスト情報、つまり脅威対処テーブルのハッシュ値が用いられる。開始時点の第３ブロックデータの履歴情報には、脅威対象テーブルが含まれる。脅威リスト情報の各行に、各項目の脅威項目情報が含まれる。脅威項目情報は、それぞれ脅威、脅威ＩＤ、脅威レベル及び推奨対策の情報が含まれる。開始時点よりも後の時点における第３ブロックデータの履歴情報には、要素情報として障害リスト情報と、現時点までの脅威情報が含まれる。
なお、本実施形態及び変形例に係る冗長化システム１の構成は、冗長化システム２に適用されてもよい。ここで、制御装置２４、入出力装置２８は、それぞれ本実施形態に係る演算装置１０と同様の構成を備えてもよい。
【００７２】
以上に説明したように、本実施形態に係る冗長化システム（例えば、冗長化システム１、２）において、複数の演算装置（例えば、演算装置１０、制御装置２４、入出力装置２８）のそれぞれは、検出部（例えば、検出部１２）、データ生成部（例えば、送信データ生成部１４３）及び通信部（例えば、通信部１６）を備える。検出部は、サイバーセキュリティが損われうる事象（例えば、脅威）を検出する。データ生成部は、前時点の第３ブロックデータに基づく検証値と、検出された事象を示す事象情報（例えば、脅威情報）が現時点まで累積された履歴情報である事象履歴情報と、を含む現時点の第３ブロックデータを生成する。通信部は、第３ブロックデータを複数の演算装置間で同報する。
【００７３】
この構成によれば、複数の演算装置１０間でサイバーセキュリティが損なわれうる事象を示す事象情報を含む第３ブロックデータが分散処理を維持しながら共有される。例えば、脅威としてサイバー攻撃の兆候となりうる事象の発生が、複数の演算装置１０間で相互に、それらの発生が通知される。そのため、検出された脅威に対する対策の実行により、さらなる脅威、有害事象もしくは被害の拡大などを防止することができる。そのため、冗長化システムにおけるサイバーセキュリティが確保される。
【００７４】
＜第四実施形態＞
次に、本発明の第四実施形態について説明する。上述の実施形態と同一の構成については、同一の符号を付してその説明を援用する。以下の説明では、主に第一実施形態の冗長化システム１（図１）との差異点について述べる。
【００７５】
本実施形態に係るＥＭＳ２２は、受け付けた操作に基づいて、パッチとその所在を示すパッチ情報を生成する。パッチとは、プログラムの一部又は全部を更新してバグ修正や機能変更を行うための修正データである。本実施形態では、パッチは、少なくともいずれか１台の演算装置１０において実行されるプログラムの修正データである。かかる修正データは、主にサイバーセキュリティ上の脆弱性を解消又は低減するためのセキュリティパッチである。ＥＭＳ２２は、各パッチの所在と適用が許可される演算装置１０の情報を示すパッチ情報を１個又は複数個含むホワイトリスト情報をさらに生成する。以下の説明では、このホワイトリスト情報を、パッチリスト情報と呼んで、他の実施形態に係るホワイトリスト情報を区別する。パッチ情報には、例えば、各パッチのパッチ名、バージョン、そのパッチを構成するデータのハッシュ値、適用許可装置情報、保存場所情報及び再起動要否情報を含んで構成される。適用許可装置情報は、そのパッチの適用が許可される演算装置１０を示す情報である。保存場所情報は、そのパッチの保存場所を示す情報である。再起動要否情報は、そのパッチの適用後に再起動を必要とするか否かを示す情報である。
【００７６】
ＥＭＳ２２は、生成したパッチリスト情報を含むように開始時点のブロックデータを生成する。以下の説明では、パッチリスト情報を含むブロックデータを、第４ブロックデータと呼んで他の実施形態に係るブロックデータと区別する。開始時点の第４ブロックデータは、ユーザリスト情報を開始時点の履歴情報とし、所定の検証値の初期値、及び開始時点の履歴情報を含んで構成される。第４ブロックデータの具体例については後述する。ＥＭＳ２２は、生成した開始時点の第４ブロックデータを演算装置１０にネットワークＮＷを介して送信する。
【００７７】
次に、本実施形態に演算装置１０（図２）の構成について説明する。本実施形態に係る機能制御部１３は、記憶部１８に記憶されているパッチリスト情報に含まれる各パッチのパッチ情報を参照して、そのパッチの適用の要否を判定する。機能制御部１３は、そのパッチの適用許可装置情報に自装置の情報が含まれ、かつそのパッチが自装置において未適用であるとき、そのパッチを適用すると判定し、機能制御部１３は、適用許可装置情報に自装置の情報が含まれない、又はそのパッチが自装置において適用中もしくは適用済であるとき、そのパッチを適用しないと判定する。
【００７８】
適用すると判定するとき、機能制御部１３は、そのパッチの保存場所情報が示す保存場所となる機器に、そのパッチの要求を示すパッチ要求信号を、通信部１６を介して送信する。保存場所となる機器は、ＥＭＳ２２であってもよいし、ＥＭＳ２２以外のネットワークＮＷに接続された機器であってもよい。機能制御部１３は、その機器から通信部１６を介してパッチ要求信号に対する応答としてパッチを受信（ダウンロード）する。機能制御部１３は、受信したパッチのハッシュ値を算出し、そのパッチのパッチ情報に含まれるハッシュ値と一致するか否かを判定する。一致すると判定するとき、機能制御部１３は、そのパッチとそのパッチの再起動要否情報を制御演算部１１に出力する。制御演算部１１は、機能制御部１３から入力されたパッチを、そのプログラムの対応する部分に置き換えることにより適用（インストール）する。制御演算部１１は、機能制御部１３から入力される再起動要否情報が再起動要を示すとき、そのプログラムの実行を停止し、パッチが適用されたプログラムの実行を開始する。
【００７９】
機能制御部１３は、そのパッチが適用中であるとき、そのパッチが自装置において適用中であることを示すパッチ適用情報を生成し、生成したパッチ適用情報を記憶部１８に記憶する。機能制御部１３は、そのパッチの適用が完了したとき、そのパッチが自装置において適用済であることを示すパッチ適用情報を生成し、生成したパッチ適用情報を記憶部１８に記憶する。
【００８０】
ブロックデータ保存部１４１は、ＥＭＳ２２又は自装置とは異なる他の演算装置１０から通信部１６を介して受信した第４ブロックデータと自装置の送信データ生成部１４３が生成した第４ブロックデータを一時的に保存する。
受信データ解析部１４２は、ブロックデータ保存部１４１に記憶されている第４ブロックデータのうち最新の第４ブロックデータを読み出す。読み出した最新の第４ブロックデータが、開始時点の第４ブロックデータである場合には、受信データ解析部１４２は、その第４ブロックデータから開始時点の履歴情報に相当するパッチリスト情報を抽出し、抽出したパッチリスト情報を記憶部１８に記憶する。パッチリスト情報の記憶は、必ずしも新たな第４ブロックデータの読出しの度に行われなくてもよい。新たなパッチリスト情報が取得されるとき、記憶部１８に記憶されるパッチリスト情報が新たなパッチリスト情報に更新されればよい。
【００８１】
なお、受信データ解析部１４２は、開始時点よりも後の各時点の第４ブロックデータにから履歴情報の要素情報であるパッチ適用情報を抽出し、抽出したパッチ適用情報からパッチ毎にそのパッチを適用した演算装置１０を特定してもよい。受信データ解析部１４２は、あるパッチのパッチ情報が示す適用許可装置情報が示す演算装置１０の全てが、そのパッチを適用したと判定することがある。その場合には、受信データ解析部１４２は、ブロックデータ保存部１４１に記憶された最新の第４ブロックデータから、そのパッチに係るパッチ情報と、パッチ適用情報を削除してもよい。これにより、無用なデータの流通が防止されるので、通信量が低減する。
【００８２】
送信データ生成部１４３は、自装置におけるパッチの適用状態を示す最新のパッチ適用情報を記憶部１８から読み出す。また、送信データ生成部１４３は、ブロックデータ保存部１４１に保存された第４ブロックデータのうち最新の第４ブロックデータを前時点の第４ブロックデータとして読み出し、読み出した第４ブロックデータとパッチ適用情報とに基づいて現時点の第４ブロックデータを生成する。現時点の第４ブロックデータは、前時点の第４ブロックデータに基づく検証値と、その履歴情報に新たなパッチ適用情報を要素情報として追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部１４３は、検証値として、例えば、前時点の第４ブロックデータに含まれるブロックヘッダ、現時点の履歴情報のそれぞれについて所定の一方向関数を用いてハッシュ値を算出する。送信データ生成部１４３は、生成した第４ブロックデータを自装置とは異なる他の演算装置１０に送信し、自装置のブロックデータ保存部１４１に保存する。これにより、自装置を含む複数の演算装置１０の間で送信データ生成部１４３が生成した第４ブロックデータが同報され、互いに共有される。また、受信データ解析部１４２は、生成した第４ブロックデータをＥＭＳ２２に通信部１６を介して送信してもよい。
【００８３】
（パッチリスト情報）
次に、本実施形態に係るパッチリスト情報について説明する。
図１５は、本実施形態に係るパッチリスト情報の例を示す図である。
パッチリスト情報は、１個又は複数個のパッチ情報から構成される。各パッチのパッチ情報は、パッチ名、バージョン、そのパッチを構成するデータのハッシュ値、適用許可装置情報、保存場所情報及び再起動要否情報の組み合わせとして構成される。図１５の第２行のパッチ情報は、パッチ名「パッチ１」、バージョン「１．００」、ハッシュ値「６６１９５７ｆｄ９９５７３ｆｂｂｅ３９１ｂ９ｂ４ａ９５０ａ１９ｂ」、適用許可装置情報「ＡＬＬ」、保存場所情報「ＡＢＣ／ＤＥＦ／ＧＨＩＪＫ」、再起動「要」を含んで構成される。１種類のパッチは、パッチ名とバーションの組で表される。つまり、パッチ名が同一であっても、バージョンが異なっているパッチ同士は、互いに異なるパッチであるものとして扱われる。適用許可装置のＡＬＬとは、ＥＭＳ２２により第４ブロックデータの同報先として指示された演算装置１０の全てを示す。図１５に示す例では、保存場所情報は、パス名で表されているが、その所在を特定することができれば、他の情報、例えば、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などを用いて指定されてもよい。
【００８４】
（パッチ適用情報）
次に、本実施形態に係るパッチ適用情報について説明する。
図１６は、本実施形態に係るパッチ適用情報の例を示す図である。
パッチ適用情報は、個々の演算装置１０におけるパッチ毎の適用状態を示す情報である。図１６に示す例では、パッチ毎にパッチ名、適用日時、及び適用状態を含んで構成される。図１６の第２行は、パッチ名「パッチ１」、適用日時「２０１７／１／１」及び適用状態「適用済」を示す。なお、パッチ適用情報には、そのパッチのバージョンの情報がさらに含まれてもよい。
【００８５】
（ブロックデータ）
次に、本実施形態に係るブロックデータについて説明する。
図１７は、本実施形態に係るブロックデータの例を示す図である。
ＢＤ８１、ＢＤ８２、ＢＤ８３は、開始時点における第４ブロックデータ、開始時点より後の時点における第４ブロックデータ、その次の時点における第４ブロックデータをそれぞれ示す。
第４ブロックデータは、ブロックヘッダとその時点における履歴情報とを含んで構成される。第４ブロックヘッダには、前時点のブロックデータに基づく検証値、装置ＩＤ、演算回数、検証用データ及び履歴情報の検証値が含まれる。
【００８６】
但し、履歴情報の検証値として、開始時点の第４ブロックデータについてはパッチリスト情報のハッシュ値が用いられ、それよりも後の各時点の履歴情報として、パッチリスト情報と現時点までの全パッチ適用情報を累積して構成される履歴情報のハッシュ値が用いられる。
【００８７】
開始時点の第４ブロックデータの履歴情報には、パッチリスト情報が含まれる。パッチリスト情報の各行には、各パッチのパッチ情報が含まれる。パッチ情報には、各パッチのパッチ名、バージョン、ハッシュ値、適用許可装置情報、保存場所情報及び再起動要否情報が含まれる。
開始時点よりも後の時点の第４ブロックデータの履歴情報には、要素情報として現時点までのパッチ適用情報が含まれる。個々のパッチ適用情報には、パッチ毎のパッチ名、適用日時、及び適用状態の各情報が含まれる。アクセスユーザ、アクセス機能、及びアクセス成否の情報が含まれる。アクセス機能には、その機能を有する演算装置１０の情報が含まれてもよい。
【００８８】
なお、上述では、機能制御部１３が、適用許可装置情報に基づいてパッチを適用すると判定するとき、パッチの要求及びその適用の制御を行う場合を例にしたが、これには限られない。機能制御部１３は、パッチを適用すると判定するとき、パッチの適用をユーザに照会するためのパッチ適用照会情報をＥＭＳ２２に通信部１６を介して送信してもよい。ＥＭＳ２２は、演算装置１０からパッチ適用照会情報を受信するとき、その表示部にパッチ適用照会画面を表示させてもよい。パッチ適用照会画面には、パッチ適用の要否の問合せを示すメッセージが含まれる。ＥＭＳ２２は、受け付けた操作がパッチ適用を示すとき、パッチ適用指示情報をパッチ適用照会情報に対する応答として送信する。機能制御部１３は、通信部１６を介してＥＭＳ２２からパッチ適用指示情報を受信するとき、前述のパッチの要求及びその適用の制御を行う。これにより、ユーザの意思に応じてパッチが適用される。
【００８９】
また、ＥＭＳ２２は、そのパッチをユーザの操作に基づいて生成する編集部を備えていてもよい。また、ネットワークＮＷには、さらに承認受付装置が接続されてもよい。その場合、演算装置１０の機能制御部１３が、適用許可装置情報に基づいてパッチを適用すると判定するとき、パッチ適用照会情報を承認受付装置に通信部１６を介して送信してもよい。承認受付装置は、演算装置１０からパッチ適用照会情報を受信するとき、その表示部にパッチ適用照会画面を表示させてもよい。承認受付装置は、そのパッチの生成に係るユーザとは別個のユーザ(Ｓａｆｅｔｙ  Ｓｕｐｅｒｖｉｓｏｒ)から受け付けた操作がパッチ適用を示すとき、パッチ適用指示情報をパッチ適用照会情報に対する応答として送信する。機能制御部１３は、通信部１６を介して承認受付装置からパッチ適用指示情報を受信するとき、前述のパッチの要求及びその適用の制御を行う。これにより、パッチの適用において、パッチの生成に係るユーザとは異なるユーザによる承認を必要とするため、無秩序なパッチの適用が回避される。承認受付装置として、ＯＰＳ２１が用いられてもよいし、ＯＰＳ２１とは別個の機器が用いられてもよい。
【００９０】
なお、図１７は、パッチリスト情報に、各パッチの保存場所情報を含む場合を例にするが、これには限られない。保存場所情報に代えて、そのパッチ自体が実行形式で含まれてもよい。その場合、機能制御部１３は、保存場所情報が示す保存場所からパッチを受信することに代え、記憶部１８に記憶されたパッチリスト情報から、そのパッチを抽出すればよい。この場合、パッチを含む第４ブロックデータが演算装置１０間で同報される。そのため、パッチを保存する機器の障害を考慮する必要がなくなるので、分散システムとしての信頼性が高くなる。また、受信データ解析部１４２は、あるパッチのパッチ情報が示す適用許可装置情報が示す演算装置１０の全てが、そのパッチを適用したと判定することがある。その場合、受信データ解析部１４２は、ブロックデータ保存部１４１に記憶された最新の第４ブロックデータから、そのパッチを削除してもよい。これにより、無用なデータの流通が防止されるので、通信量が低減する。
なお、本実施形態及び変形例に係る冗長化システム１の構成は、冗長化システム２に適用されてもよい。ここで、制御装置２４、入出力装置２８は、それぞれ本実施形態に係る演算装置１０と同様の構成を備えてもよい。
【００９１】
以上に説明したように、本実施形態に係る冗長化システム（例えば、冗長化システム１、２）において、管理装置（例えば、ＥＭＳ２２）は、プログラムのパッチを示すパッチリスト情報を含む開始時点の第４ブロックデータを複数の演算装置（例えば、演算装置１０、制御装置２４、入出力装置２８）に提供する。また、複数の演算装置は、それぞれ制御部（例えば、機能制御部１３）、データ生成部（例えば、送信データ生成部１４３）及び通信部（例えば、通信部１６）を備える。制御部は、パッチリスト情報が示すパッチの適用の要否を判定する。データ生成部は、前時点の第４ブロックデータに基づく検証値と、パッチの適用状態を示すパッチ適用情報が現時点まで累積された履歴情報であるパッチ適用履歴情報と、を含む現時点の第４ブロックデータを生成する。通信部は、第４ブロックデータを前記複数の演算装置間で同報する。
【００９２】
この構成によれば、その時点で最新のパッチリスト情報を有する第４ブロックデータが演算装置１０間で分散処理を維持しながら共有される。そのため、各演算装置１０において、自装置において適用が許可されたパッチが適用可能となる。例えば、パッチリストが示すパッチがセキュリティパッチである場合には、セキュリティパッチの適用によりサイバーセキュリティが確保される。
また、本実施形態によればＥＭＳ２２は、個々の演算装置を指定して第４ブロックデータを送信する必要がなくなるので、個々の演算装置１０を指定して第４ブロックデータを送信する場合よりも、送信先の演算装置の数の増加に伴う情報量の増加を抑制することができる。
また、各演算装置で適用されるパッチの適用状態を示すパッチ適用情報を含む第４ブロックデータが同報されるので、パッチが未適用である演算装置の発見が容易となる。例えば、パッチが未適用であることによる脆弱性を報知したままの演算装置１０に対する対策（通信の遮断など）を実行することでサイバーセキュリティが向上する。
また、第４ブロックデータによりパッチリスト情報とパッチ適用情報とが演算装置１０間で一元的に共有されるので、製造者、機種、機能など互いに種別が異なる制御装置が混在する冗長化システムであっても、パッチの適用を可能とし、その管理を可能とする環境が構築される。
【００９３】
以上、本発明の実施形態及び変形例について、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【００９４】
例えば、第二実施形態に係る演算装置１０や第四実施形態に係る演算装置１０は、それぞれ第三実施形態の検出部１２を備え、機能制御部１３、ブロックデータ処理部１４は、それぞれ第三実施形態の機能制御部１３、ブロックデータ処理部１４と同様の処理を行ってもよい。
第三実施形態に係る演算装置において、機能制御部１３、ブロックデータ処理部１４は、それぞれ第四実施形態の機能制御部１３、ブロックデータ処理部１４と同様の処理を行ってもよい。
また、ブロックデータ処理部１４は、自部で扱われる最新のブロックデータに含まれる履歴情報の情報量が、所定の情報量を超えたか否かを判定してもよい。所定の情報量を超えたと判定するとき、ブロックデータ処理部１４は、その履歴情報を記憶部１８に記憶し、新たに開始時点におけるブロックデータを生成してもよい。
また、各演算装置１０の送信データ生成部１４３は、生成した各種のブロックデータをＯＰＳ２１、ＥＭＳ２２の一方又は両方に通信部１６を介して送信してもよい。
その他、上述した演算装置１０と同様の構成を、ネットワークを介して接続される複数の電子機器のそれぞれが備えてもよい。かかる電子機器には、例えば、Ｗｅｂカメラ、センサユニットなどのＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ；モノのインターネット）機器が該当する。
【００９５】
第二実施形態〜第四実施形態に係る演算装置１０の各々は、第一実施形態をはじめとする他の実施形態の機能に依存せず、その実施形態に固有のブロックデータ（第２ブロックデータ〜第４ブロックデータ）を処理する機能のみを備えていてもよい。
なお、「実行が許可されたプログラムに基づく処理の実行」、「所定の機能へのアクセス」、「サイバーセキュリティが損なわれうる事象」、「パッチの適用」は演算装置１０で許可又は許可しない事項の一例である。
また、冗長化システム１および冗長化システム２は情報処理システムの一例である。
【００９６】
なお上述の演算装置１０、制御装置２４、入出力装置２８は、内部にコンピュータシステムを有してもよい。そして、上述した演算装置１０等における各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【００９７】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００９８】
１、２…冗長化システム、１０…演算装置、１１…制御演算部、１２…検出部、１３…機能制御部、１４…ブロックデータ処理部、１６…通信部、１８…記憶部、
２１…ＯＰＳ、２２…ＥＭＳ、２３…ＮＡ、２４…制御装置、２５…ＩＯスキャナ、２６…ＩＯネットワーク、２７…ＩＯアダプタ、２８…入出力装置、１４１…ブロックデータ保存部、１４２…受信データ解析部、１４３…送信データ生成部
【図１】
2018142078.tif 000003
【図２】
2018142078.tif 000004
【図３】
2018142078.tif 000005
【図４】
2018142078.tif 000006
【図５】
2018142078.tif 000007
【図６】
2018142078.tif 000008
【図７】
2018142078.tif 000009
【図８】
2018142078.tif 000010
【図９】
2018142078.tif 000011
【図１０】
2018142078.tif 000012
【図１１】
2018142078.tif 000013
【図１２】
2018142078.tif 000014
【図１３】
2018142078.tif 000015
【図１４】
2018142078.tif 000016
【図１５】
2018142078.tif 000017
【図１６】
2018142078.tif 000018
【図１７】
2018142078.tif 000019