(57)【要約】      （修正有）【課題】セキュリティの脅威に対して設定されるセキュリティ機能の妥当性を事前に評価できるようなメカニズムを提供する。【解決手段】制御システムは、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続され、コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットと、コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいてコントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段６３４と、作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対するコントローラシステムの挙動に基づいて、コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段６３６とを含む。【選択図】図６
2020166522.tif 000002
【特許請求の範囲】
【請求項１】
コントローラシステムであって、
制御対象を制御するための制御演算を実行する制御ユニットと、
前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットと、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段とを備える、コントローラシステム。
【請求項２】
前記コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて、前記コントローラシステムに対して想定される１または複数の脅威からなる脅威シナリオを作成する脅威シナリオ作成手段をさらに備える、請求項１に記載のコントローラシステム。
【請求項３】
前記設定情報は、前記コントローラシステムと外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含む、請求項２に記載のコントローラシステム。
【請求項４】
前記脅威シナリオ作成手段は、前記コントローラシステムが外部デバイスとの間で確立されるコネクションの設定情報に基づいて、前記脅威シナリオを決定する、請求項２または３に記載のコントローラシステム。
【請求項５】
前記脅威シナリオ作成手段は、前記コントローラシステムにおいて共有される変数の情報に基づいて、前記脅威シナリオを決定する、請求項２〜４のいずれか１項に記載のコントローラシステム。
【請求項６】
前記脅威シナリオ作成手段は、前記コントローラシステムで実行されるユーザプログラムにおいて参照される変数の情報に基づいて、前記脅威シナリオを決定する、請求項２〜５のいずれか１項に記載のコントローラシステム。
【請求項７】
前記攻撃パターン作成手段は、作成した１または複数の前記攻撃パターンを候補としてユーザに提示するとともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定する、請求項１〜６のいずれか１項に記載のコントローラシステム。
【請求項８】
前記ユーザ操作は、前記１または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示、および、攻撃パターンに含まれる攻撃の度合いを調整する指示の少なくとも一方を含む、請求項７に記載のコントローラシステム。
【請求項９】
制御対象を制御するための制御演算を実行する制御ユニットと、前記制御ユニットに接続されてセキュリティ機能を担当するセキュリティユニットとを備えるコントローラシステムに接続されるサポート装置であって、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段とを備える、サポート装置。
【請求項１０】
コントローラシステムで実行される評価方法であって、
前記コントローラシステムは、制御対象を制御するための制御演算を実行する制御ユニットと、前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットとを備え、
前記評価方法は、
前記コントローラシステムにおける設定情報を取得するステップと、
取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成するステップと、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施するステップと、
当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価するステップとを備える、評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象を制御するコントローラシステムに対するセキュリティ機能に対する評価方法に関する。
【背景技術】
【０００２】
近年、工場などの製造現場では、マルウェアなどの被害が発生しており、ＰＬＣ（プログラマブルロジックコントローラ）などの制御装置に対してもセキュリティ対策が必須となってきた。そのため、工場などの装置、生産ラインを開発する場合には、セキュリティ対策を生産技術者、装置メーカ開発者などが行う必要がある。
【０００３】
ＰＬＣでは、例えば、特開２０００−１３７５０６号公報（特許文献１）に開示されているように、異常履歴が登録されたとき、または、予め定められた時間が到来したときに、予め指定された宛先に電子メールを送信する程度で、セキュリティ対策については何ら考慮されていない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１３７５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特に、近年のＩＣＴ（Information and Communication Technology）の進歩に伴って、制御装置も様々な外部装置とネットワーク接続されるとともに、制御装置において実行される処理も高度化している。このようなネットワーク化あるいはインテリジェント化に伴って、想定されるセキュリティの脅威の種類も増加している。
【０００６】
このようなセキュリティの脅威に対してセキュリティ機能を設定することになるが、適切なセキュリティ機能が設定されているのかを評価するためには、専門知識が必要で、生産技術者、装置メーカ開発者が脅威分析を行うには知識を取得するために長い教育時間が必要であった。また、セキュリティの脅威分析のために専門家の雇用した場合、専門家の人件費が、工場、装置メーカのコスト負担となる。
【０００７】
本発明は、コントローラシステムのネットワーク化あるいはインテリジェント化に伴って生じ得るセキュリティの脅威に対して設定されるセキュリティ機能の妥当性を事前に評価できるようなメカニズムの提供を一つの目的としている。
【課題を解決するための手段】
【０００８】
本発明のある局面に従うコントローラシステムは、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続され、コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットと、コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいてコントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対するコントローラシステムの挙動に基づいて、コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段とを含む。
【０００９】
この局面によれば、専門知識の乏しいユーザであってもコントローラシステムに対して設定されるセキュリティ機能の妥当性を事前に容易に評価できる。
【００１０】
コントローラシステムは、コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて、コントローラシステムに対して想定される１または複数の脅威からなる脅威シナリオを作成する脅威シナリオ作成手段をさらに含んでいてもよい。この構成によれば、コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて作成された脅威シナリオに従う評価を行うことができる。
【００１１】
設定情報は、コントローラシステムと外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含んでいてもよい。この構成によれば、脅威が発生し易いネットワーク関連についてセキュリティ機能の妥当性を評価できる。
【００１２】
脅威シナリオ作成手段は、コントローラシステムが外部デバイスとの間で確立されるコネクションの設定情報に基づいて、脅威シナリオを決定するようにしてもよい。この構成によれば、コントローラシステムがコネクションを確立する外部デバイスのなりすましなどの脅威を考慮した事前評価が可能となる。
【００１３】
脅威シナリオ作成手段は、コントローラシステムにおいて共有される変数の情報に基づいて、脅威シナリオを決定するようにしてもよい。この構成によれば、この構成によれば、コントローラシステムにおいて共有される変数を悪用した攻撃を考慮した事前評価が可能となる。
【００１４】
脅威シナリオ作成手段は、コントローラシステムで実行されるユーザプログラムにおいて参照される変数の情報に基づいて、脅威シナリオを決定するようにしてもよい。この構成によれば、ユーザプログラムが参照する変数の不備をついた攻撃を考慮した事前評価が可能となる。
【００１５】
攻撃パターン作成手段は、作成した１または複数の攻撃パターンを候補としてユーザに提示するとともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定するようにしてもよい。この構成によれば、ユーザのニーズに応じた攻撃パターンでセキュリティ機能を評価できる。
【００１６】
ユーザ操作は、１または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示、および、攻撃パターンに含まれる攻撃の度合いを調整する指示の少なくとも一方を含むようにしてもよい。この構成によれば、必要な攻撃パターンあるいは要求される攻撃の度合いに応じてセキュリティ機能を評価できる。
【００１７】
本発明の別の局面に従えば、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続されてセキュリティ機能を担当するセキュリティユニットとを備えるコントローラシステムに接続されるサポート装置が提供される。サポート装置は、コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいてコントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対するコントローラシステムの挙動に基づいて、コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段とを含む。
【００１８】
本発明のさらに別の局面に従えば、コントローラシステムで実行される評価方法が提供される。コントローラシステムは、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続され、コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットとを含む。評価方法は、コントローラシステムにおける設定情報を取得するステップと、取得された設定情報に基づいてコントローラシステムに対する攻撃パターンを作成するステップと、作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施するステップと、当該攻撃に対するコントローラシステムの挙動に基づいて、コントローラシステムに設定されているセキュリティ機能の適否を評価するステップとを含む。
【発明の効果】
【００１９】
本発明によれば、コントローラシステムのネットワーク化あるいはインテリジェント化に伴って生じ得るセキュリティの脅威を分析し、当該脅威に対する対策を行うという新たな課題を解決できる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に係るコントローラシステムの構成例を示す外観図である。
【図２】本実施の形態に係るコントローラシステムが提供するセキュリティ機能の事前評価を説明するための模式図である。
【図３】本実施の形態に係るコントローラシステムを構成する制御ユニットのハードウェア構成例を示す模式図である。
【図４】本実施の形態に係るコントローラシステムを構成するセキュリティユニットのハードウェア構成例を示す模式図である。
【図５】本実施の形態に係るコントローラシステムを構成するセーフティユニットのハードウェア構成例を示す模式図である。
【図６】本実施の形態に係るコントローラシステムに接続されるサポート装置でセキュリティ機能の事前評価を行うシステム構成を説明するためのブロック図である。
【図７】本実施の形態に係るコントローラシステムに接続されるサポート装置のハードウェア構成例を示す模式図である。
【図８】本実施の形態に係るコントローラシステムおよびサポート装置でのセキュリティ機能の事前評価を説明するためのシーケンスである。
【図９】本実施の形態に係るセキュリティ機能の事前評価に係る処理手順を示すフローチャートである。
【図１０】本実施の形態に係るセキュリティ機能の事前評価に係る処理手順を示すフローチャートである。
【図１１】本実施の形態に係るコントローラシステムにおいて利用される攻撃パターンデータベースの一例を示す模式図である。
【図１２】本実施の形態に係るコントローラシステムが提供する攻撃パターンに係るユーザインターフェイス画面の一例を示す図である。
【図１３】図１２に示す設定に従って実行された攻撃による評価結果を示すユーザインターフェイス画面の一例を示す図である。
【図１４】本実施の形態に係るコントローラシステムが提供する評価結果の出力に係るユーザインターフェイス画面の一例を示す図である。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２２】
＜Ａ．適用例＞
本発明が適用される場面の一例について説明する。まず、本実施の形態に係るコントローラシステム１の構成について説明する。
【００２３】
図１は、本実施の形態に係るコントローラシステム１の構成例を示す外観図である。図１を参照して、コントローラシステム１は、制御ユニット１００と、セキュリティユニット２００と、セーフティユニット３００と、１または複数の機能ユニット４００と、電源ユニット４５０とを含む。
【００２４】
制御ユニット１００とセキュリティユニット２００との間は、任意のデータ伝送路（例えば、ＰＣＩ  Ｅｘｐｒｅｓｓあるいはイーサネット（登録商標）など）を介して接続されている。制御ユニット１００とセーフティユニット３００および１または複数の機能ユニット４００との間は、図示しない内部バスを介して接続されている。
【００２５】
制御ユニット１００は、コントローラシステム１において中心的な処理を実行する。制御ユニット１００は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。後述のセーフティユニット３００で実行される制御演算との対比で、制御ユニット１００で実行される制御演算を「標準制御」とも称す。図１に示す構成例において、制御ユニット１００は、１または複数の通信ポートを有している。
【００２６】
セキュリティユニット２００は、制御ユニット１００に接続され、コントローラシステム１に対するセキュリティ機能を担当する。図１に示す構成例において、セキュリティユニット２００は、１または複数の通信ポートを有している。セキュリティユニット２００が提供するセキュリティ機能の詳細については、後述する。
【００２７】
セーフティユニット３００は、制御ユニット１００とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。セーフティユニット３００で実行される制御演算を「セーフティ制御」とも称す。通常、「セーフティ制御」は、ＩＥＣ  ６１５０８などに規定されたセーフティ機能を実現するための要件を満たすように設計される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。
【００２８】
機能ユニット４００は、コントローラシステム１による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット４００は、典型的には、Ｉ／Ｏユニット、セーフティＩ／Ｏユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。Ｉ／Ｏユニットとしては、例えば、デジタル入力（ＤＩ）ユニット、デジタル出力（ＤＯ）ユニット、アナログ出力（ＡＩ）ユニット、アナログ出力（ＡＯ）ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティＩ／Ｏユニットは、セーフティ制御に係るＩ／Ｏ処理を担当する。
【００２９】
電源ユニット４５０は、コントローラシステム１を構成する各ユニットに対して、所定電圧の電源を供給する。
【００３０】
図２は、本実施の形態に係るコントローラシステム１が提供するセキュリティ機能の事前評価を説明するための模式図である。図２を参照して、コントローラシステム１には、１または複数のフィールドデバイス５００が接続されている。フィールドデバイス５００は、リモートＩＯデバイス、サーボ、センサ、ＨＭＩ（human machine interface）などを含み得る。
【００３１】
コントローラシステム１は、セキュリティ機能を有しており、サポート装置６００などを介して必要な設定（セキュリティ機能設定）がなされる（セキュリティ機能設定）。このようなコントローラシステム１に接続されたサポート装置６００は、コントローラシステム１から必要な情報を取得して脅威シナリオを作成し、サポート装置６００は、作成した脅威シナリオに基づいて攻撃パターンを決定する。そして、サポート装置６００は、決定した攻撃パターンに従ってコントローラシステム１に対する攻撃を実施し、その攻撃に対するコントローラシステム１の挙動などに基づいて、設定されているセキュリティ機能の適否を評価する。必要に応じて、評価結果はユーザへ提供される。
【００３２】
＜Ｂ．各ユニットのハードウェア構成例＞
次に、本実施の形態に係るコントローラシステム１を構成する各ユニットのハードウェア構成例について説明する。
【００３３】
（ｂ１：制御ユニット１００）
図３は、本実施の形態に係るコントローラシステム１を構成する制御ユニット１００のハードウェア構成例を示す模式図である。図３を参照して、制御ユニット１００は、主たるコンポーネントとして、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphical Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、通信コントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、ネットワークコントローラ１１６，１１８，１２０と、内部バスコントローラ１２２と、インジケータ１２４とを含む。
【００３４】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット１００全体としての処理を実現する。
【００３５】
二次記憶装置１０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
【００３６】
通信コントローラ１１０は、セキュリティユニット２００との間のデータの遣り取りを担当する。通信コントローラ１１０としては、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓあるいはイーサネット（登録商標）などに対応する通信チップを採用できる。
【００３７】
ＵＳＢコントローラ１１２は、ＵＳＢ接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【００３８】
メモリカードインターフェイス１１４は、メモリカード１１５を着脱可能に構成されており、メモリカード１１５に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード１１５から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【００３９】
ネットワークコントローラ１１６，１１８，１２０の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ１１６，１１８，１２０は、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの産業用ネットワークプロトコルを採用してもよい。
【００４０】
内部バスコントローラ１２２は、コントローラシステム１を構成するセーフティユニット３００や１または複数の機能ユニット４００との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【００４１】
インジケータ１２４は、制御ユニット１００の動作状態などを通知するものであり、ユニット表面に配置された１または複数のＬＥＤなどで構成される。
【００４２】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御ユニット１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００４３】
（ｂ２：セキュリティユニット２００）
図４は、本実施の形態に係るコントローラシステム１を構成するセキュリティユニット２００のハードウェア構成例を示す模式図である。図４を参照して、セキュリティユニット２００は、主たるコンポーネントとして、ＣＰＵやＧＰＵなどのプロセッサ２０２と、チップセット２０４と、主記憶装置２０６と、二次記憶装置２０８と、通信コントローラ２１０と、ＵＳＢコントローラ２１２と、メモリカードインターフェイス２１４と、ネットワークコントローラ２１６，２１８と、インジケータ２２４とを含む。
【００４４】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種セキュリティ機能を実現する。チップセット２０４は、プロセッサ２０２と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット２００全体としての処理を実現する。
【００４５】
二次記憶装置２０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセキュリティシステムプログラムが格納される。
【００４６】
通信コントローラ２１０は、制御ユニット１００との間のデータの遣り取りを担当する。通信コントローラ２１０としては、制御ユニット１００に通信コントローラ２１０と同様に、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓあるいはイーサネット（登録商標）などに対応する通信チップを採用できる。
【００４７】
ＵＳＢコントローラ２１２は、ＵＳＢ接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【００４８】
メモリカードインターフェイス２１４は、メモリカード２１５を着脱可能に構成されており、メモリカード２１５に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード２１５から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【００４９】
ネットワークコントローラ２１６，２１８の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ２１６，２１８は、イーサネット（登録商標）などの汎用的なネットワークプロトコルを採用してもよい。
【００５０】
インジケータ２２４は、セキュリティユニット２００の動作状態などを通知するものであり、ユニット表面に配置された１または複数のＬＥＤなどで構成される。
【００５１】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、セキュリティユニット２００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５２】
（ｂ３：セーフティユニット３００）
図５は、本実施の形態に係るコントローラシステム１を構成するセーフティユニット３００のハードウェア構成例を示す模式図である。図５を参照して、セーフティユニット３００は、主たるコンポーネントとして、ＣＰＵやＧＰＵなどのプロセッサ３０２と、チップセット３０４と、主記憶装置３０６と、二次記憶装置３０８と、メモリカードインターフェイス３１４と、内部バスコントローラ３２２と、インジケータ３２４とを含む。
【００５３】
プロセッサ３０２は、二次記憶装置３０８に格納された各種プログラムを読み出して、主記憶装置３０６に展開して実行することで、セーフティ制御に係る制御演算、および、後述するような各種処理を実現する。チップセット３０４は、プロセッサ３０２と各コンポーネントとの間のデータの遣り取りを仲介することで、セーフティユニット３００全体としての処理を実現する。
【００５４】
二次記憶装置３０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセーフティプログラムが格納される。
【００５５】
メモリカードインターフェイス３１４は、メモリカード３１５を着脱可能に構成されており、メモリカード３１５に対してセーフティプログラムや各種設定などのデータを書込み、あるいは、メモリカード３１５からセーフティプログラムや各種設定などのデータを読出すことが可能になっている。
【００５６】
内部バスコントローラ３２２は、内部バスを介した制御ユニット１００との間のデータの遣り取りを担当する。
【００５７】
インジケータ３２４は、セーフティユニット３００の動作状態などを通知するものであり、ユニット表面に配置された１または複数のＬＥＤなどで構成される。
【００５８】
図５には、プロセッサ３０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、セーフティユニット３００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５９】
＜Ｃ．セキュリティ機能の事前評価＞
次に、上述したセキュリティユニット２００において設定されたセキュリティ機能の事前評価を行う場合の処理の一例について説明する。図６は、本実施の形態に係るコントローラシステムに接続されるサポート装置でセキュリティ機能の事前評価を行うシステム構成を説明するためのブロック図である。図６に示すように、サポート装置６００には、システム構成入力部６３０、脅威シナリオ作成部６３２、攻撃パターン作成部６３４と、攻撃実施部６３６とを備えている。なお、サポート装置６００は、脅威分析データベース６１０６および攻撃パターンデータベース６１０８をさらに備えている。しかし、脅威分析データベース６１０６および攻撃パターンデータベース６１０８は、サポート装置６００内に設けず、外部サーバに設けてもよい。
【００６０】
まず、サポート装置６００は、コントローラシステム１から装置構成（装置システム構成）の情報、および保護資産の情報をシステム構成入力部６３０で取得する。脅威シナリオ作成部６３２は、システム構成入力部６３０で取得した装置構成および保護資産に応じて、脅威分析データベース６１０６の重要レベルおよび脅威レベルから脅威シナリオを作成する。
【００６１】
本明細書において、「保護資産」は、コントローラシステム１を構成するエレメントの集合を意味する。「保護資産」の対象となる単位は制御対象などに応じて任意に設定できる。例えば、「保護資産」は、コントローラシステム１を構成する装置などで、制御ユニット１００、セキュリティユニット２００、フィールドデバイス５００などを単位としてもよい。
【００６２】
本明細書において、「重要レベル」は、コントローラシステム１を構成する保護資産の重要度を示す指標であり、ユーザにおいて設定することも可能である。
【００６３】
本明細書において、「脅威レベル」は、コントローラシステム１に対するセキュリティの脅威を示す指標であり、ユーザにおいて設定することも可能である。
【００６４】
本明細書において、「対策必要リスクレベル」は、コントローラシステム１において確保されるべき保護を示す指標であり、ユーザにおいて設定することも可能である。
【００６５】
脅威分析データベース６１０６には、コントローラシステム１の保護資産に対する重要レベル、セキュリティの脅威に対する脅威レベルを予め格納されている。
【００６６】
ユーザは、対策必要リスクレベルを脅威シナリオ作成部６３２に入力する。脅威シナリオ作成部６３２は、ユーザにより入力された対策必要リスクレベルおよび装置種別に応じて、脅威分析データベース６１０６の重要レベルおよび脅威レベルから脅威シナリオリストを作成する。
【００６７】
攻撃パターン作成部６３４は、コントローラシステム１における設定情報を取得するとともに、取得された設定情報に基づいてコントローラシステム１に対する攻撃パターンを決定する。より具体的には、攻撃パターン作成部６３４は、脅威シナリオ作成部６３２で作成する脅威シナリオと、攻撃パターンデータベース６１０８の攻撃パターンリストとに応じて、コントローラシステム１に対して設定されているセキュリティ機能を事前評価するための１または複数の攻撃パターンを作成する。
【００６８】
攻撃パターン作成部６３４は、作成した１または複数の攻撃パターンを候補としてユーザに提示するとともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定する。すなわち、作成された攻撃パターンのうちユーザが所望するものの選択を攻撃パターン作成部６３４に入力すると、攻撃パターン作成部６３４は、選択された攻撃パターンに従って、コントローラシステム１に対して攻撃を実施する。そして、攻撃パターン作成部６３４は、コントローラシステム１から取得したイベントログなどに基づいて、攻撃パターンに従う攻撃によるセキュリティ機能の評価結果を評価結果レポートとしてユーザに出力する。
【００６９】
図６で説明した構成は、以下に説明するサポート装置６００のハードウェア構成により実現される。図７は、本実施の形態に係るコントローラシステム１に接続されるサポート装置６００のハードウェア構成例を示す模式図である。サポート装置６００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いて実現される。
【００７０】
図７を参照して、サポート装置６００は、プロセッサ６０２と、メインメモリ６０４と、入力部６０６と、出力部６０８と、ストレージ６１０と、光学ドライブ６１２と、ＵＳＢコントローラ６２０とを含む。これらのコンポーネントは、プロセッサバス６１８を介して接続されている。
【００７１】
プロセッサ６０２は、ＣＰＵやＧＰＵなどで構成され、ストレージ６１０に格納されたプログラム（一例として、ＯＳ６１０２およびサポートプログラム６１０４）を読出して、メインメモリ６０４に展開して実行することで、コントローラシステム１に対する設定処理などを実現する。
【００７２】
メインメモリ６０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ６１０は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００７３】
ストレージ６１０には、基本的な機能を実現するためのＯＳ６１０２に加えて、サポート装置６００としての機能を提供するためのサポートプログラム６１０４が格納される。すなわち、サポートプログラム６１０４は、コントローラシステム１に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置６００を実現する。さらに、ストレージ６１０には、脅威分析データベース６１０６および攻撃パターンデータベース６１０８が格納されている。
【００７４】
入力部６０６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部６０８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ６０２からの処理結果などを出力する。
【００７５】
ＵＳＢコントローラ６２０は、ＵＳＢ接続を介して、コントローラシステム１などとの間のデータを遣り取りする。
【００７６】
サポート装置６００は、光学ドライブ６１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体６１４（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られてストレージ６１０などにインストールされる。
【００７７】
サポート装置６００で実行されるサポートプログラム６１０４などは、コンピュータ読取可能な記録媒体６１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置６００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００７８】
図７には、プロセッサ６０２がプログラムを実行することで、サポート装置６００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００７９】
次に、上述したサポート装置６００でセキュリティ機能の事前評価を行うシステム構成において、装置の開発時、装置の立ち上げ時に行う脅威分析およびセキュリティ機能の事前評価について詳しく説明する。図８は、本実施の形態に係るコントローラシステムおよびサポート装置でのセキュリティ機能の事前評価を説明するためのシーケンスである。図８に示すシーケンスでは、コントローラシステム１およびサポート装置６００を含む制御システムの典型例について説明する。
【００８０】
まず、ユーザが、サポート装置６００でセキュリティユニット２００の事前評価ツールを立ち上げる。当該事前評価ツールが立ち上がるとシステム構成入力部６３０がコントローラシステム１に対して問合せを行う。コントローラシステム１は、システム構成入力部６３０からの問合せに対してコントローラシステム１の装置構成の情報、保護資産の情報をシステム構成入力部６３０に返信する。システム構成入力部６３０は、コントローラシステム１から装置構成の情報、および保護資産の情報を取得する。さらに、システム構成入力部６３０は、セキュリティユニット２００からソフトウェアおよびハードウェアのバージョン情報、リソース容量などのセキュリティユニット２００のリソース情報を取得する。
【００８１】
ユーザが、サポート装置６００でセキュリティユニット２００の設定の開始を選択し、装置種別を選択した場合、脅威シナリオ作成部６３２は、装置種別に応じて脅威分析データベース６１０６の重要レベルおよび脅威レベルから脅威シナリオリストを作成する。このとき、ユーザは、セキュリティ機能が維持すべき対策必要リスクレベルについても入力する。
【００８２】
このように、脅威シナリオ作成部６３２は、コントローラシステム１から取得された装置構成の情報および保護資産の情報に基づいて、コントローラシステム１に対して想定される１または複数の脅威からなる脅威シナリオを作成する。より具体的に、脅威シナリオ作成部６３２は、脅威分析データベース６１０６の情報を参照して保護資産評価リストおよび脅威リストを作成し、保護資産評価リストおよび脅威リストに基づいて、対策必要リスクレベルに応じた脅威シナリオリストをユーザに提示する。なお、脅威シナリオ作成部６３２は、装置種別に関わらず脅威分析データベース６１０６の重要レベルおよび脅威レベルから脅威シナリオリストを作成してもよい。
【００８３】
攻撃パターン作成部６３４は、対象のコントローラシステム１からネットワーク接続設定情報を取得する。すなわち、コントローラシステム１から取得される設定情報は、コントローラシステム１と外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含む。そして、攻撃パターン作成部６３４は、取得したネットワーク接続設定情報に基づいて、脅威シナリオ作成部６３２で作成する脅威シナリオリストと、攻撃パターンデータベース６１０８の攻撃パターンとを参照して、コントローラシステム１のセキュリティ機能を事前評価するための項目を格納した１または複数の攻撃パターン案を作成し、当該攻撃パターン案をユーザに提示する。
【００８４】
ユーザは提示された攻撃パターン案のうち所望の攻撃パターンを選択する。攻撃パターン作成部６３４は、攻撃パターン案のうち選択された攻撃パターンのみを有効なものと決定する。
【００８５】
攻撃実施部６３６は、攻撃パターン作成部６３４により作成された攻撃パターンに従ってコントローラシステム１に対する攻撃を実施する。そして、攻撃実施部６３６は、攻撃に対するコントローラシステム１の挙動に基づいて、コントローラシステム１に設定されているセキュリティ機能の適否を評価する。より具体的には、攻撃実施部６３６は、実施した攻撃の内容、および、コントローラシステム１から取得したイベントログ（コントローラシステム１の動作履歴など）に基づいて、攻撃に対するコントローラシステム１の防御動作などを評価する。攻撃実施部６３６は、評価結果を評価結果レポートとして出力する。このように、コントローラシステム１は、サポート装置６００で設定されているセキュリティ機能に対する事前評価を容易に行うことができる。
【００８６】
＜Ｄ．処理手順＞
次に、本実施の形態に係る上述したセキュリティユニット２００において設定されたセキュリティ機能の事前評価を行う場合の処理の一例について説明する。
【００８７】
図９および図１０は、本実施の形態に係るセキュリティ機能の事前評価に係る処理手順を示すフローチャートである。
【００８８】
サポート装置６００は、図９に示す処理を開始するとシステム構成入力部６３０で装置構成の情報を取得する（ステップＳ１０１）。コントローラシステム１で制御する装置種別により制御の目的、重要とする事項などが異なるため設定するセキュリティ機能も異なる。
【００８９】
例えば、コントローラシステム１で制御する装置が半導体製造装置であれば、製造工程において基本的に装置の近くに人が立ち入ることがないため、装置の制御を維持し続けることが重要である。一方、コントローラシステム１で制御する装置がプレス装置であれば、製造工程において装置の近くで人が作業を行うことが基本であるため、非常時に装置を確実に停止させて人の安全を守ることが重要である。そのため、半導体製造装置であれば、装置の制御を維持し続けることに必要な構成のセキュリティ機能を優先して設定し、プレス装置であれば、装置を確実に停止させるために必要な構成のセキュリティ機能を優先して設定する。
【００９０】
ステップＳ１０１では、システム構成入力部６３０がコントローラシステム１に対して装置構成の情報、保護資産の情報を問合せ、コントローラシステム１から装置構成の情報、および保護資産の情報を取得する。さらに、システム構成入力部６３０は、ユーザが選択した装置種別（例えば、半導体製造装置、プレス装置など）の情報に基づき、装置構成の情報、保護資産の情報から図１０に示したような装置構成を作成する。
【００９１】
次に、サポート装置６００は、脅威シナリオ作成部６３２で、システム構成入力部６３０で取得した装置構成および保護資産に応じて、保護資産評価リストを作成する（ステップＳ１０２）。保護資産評価リストは、セキュリティ機能により保護すべきエレメントの一覧ならびに対応する属性および重要レベルを含む。
【００９２】
脅威シナリオ作成部６３２は、保護資産評価リストを作成した後、脅威シナリオを作成する（ステップＳ１０３）。より具体的には、脅威シナリオ作成部６３２は、脅威リストおよび保護資産評価リストに基づいて脅威シナリオを作成する。脅威リストは、想定攻撃箇所のごとの攻撃内容およびリスクの一覧を含む。
【００９３】
本明細書において、「脅威」は、設備や機械を正常運転することを妨げる任意の事象を意味する。ＰＬＣを中心とする制御装置においては、典型的な脅威には、（１）データベースなどの上位装置からの攻撃、（２）フィールドデバイスからの攻撃、（３）サポート装置を介した攻撃、（４）メモリカードなどの制御装置に装着される記憶媒体を介した攻撃、といった４つの局面からの脅威が考えられる。さらに、制御装置に搭載されているすべての物理ポートは攻撃を受けるセキュリティリスクが存在している。
【００９４】
脅威シナリオ作成部６３２は、保護資産と脅威とを組み合わせた項目ごとにリストとしてさせる。リスト化された脅威シナリオは、以下、脅威シナリオリストともいう。
【００９５】
脅威シナリオ作成部６３２は、ステップＳ１０３で脅威リストと保護資産評価リストとから脅威シナリオを作成する。脅威シナリオ作成部６３２は、脅威リストと保護資産評価リストと属性でリンクして組み合わせ脅威シナリオを作成している。そして、脅威シナリオ作成部６３２は、作成する脅威シナリオリストの各項目に対するリスク値（各脅威シナリオリスク値）を算出する（ステップＳ１０４）。リスク値は、セキュリティの脅威に対するリスクを示す指標で、例えば、予め定められた試算方法で、脅威リストの脅威レベルと保護資産評価リストの重要レベルとの積算で求められる。
【００９６】
脅威シナリオ作成部６３２は、作成した脅威シナリオリストのリスク値がユーザの設定した対策必要リスクレベル以上か否かを判定する（ステップＳ１０５）。リスク値が対策必要リスクレベル以上の場合（ステップＳ１０５でＹＥＳ）、脅威シナリオ作成部６３２は、脅威シナリオリストの項目に対策が必要であるとの設定を行う（ステップＳ１０６）。一方、リスク値が対策必要リスクレベルより低い場合（ステップＳ１０５でＮＯ）、脅威シナリオ作成部６３２は、脅威シナリオリストの項目に対策が必要でないとの設定を行う（ステップＳ１０７）。
【００９７】
脅威シナリオ作成部６３２は、作成した脅威シナリオリストのすべてのリスク値について対策の要否の試算が終了したか否かを判定する（ステップＳ１０８）。すべてのリスク値について対策の要否の試算が終了していない場合（ステップＳ１０８でＮＯ）、脅威シナリオ作成部６３２は、処理をステップＳ１０４に戻す。すべてのリスク値について対策の要否の試算が終了している場合（ステップＳ１０８でＹＥＳ）、脅威シナリオ作成部６３２は、脅威シナリオリストをリスク値の高い順で、対策の要否順で項目の並べ替えを行う（ステップＳ１０９）。
【００９８】
以上の手順により決定された脅威シナリオリスト（１または複数の脅威シナリオからなる）に基づいて攻撃シナリオが作成される。
【００９９】
ステップＳ１１０では、攻撃パターン作成部６３４がコントローラシステム１に接続し、コントローラシステム１からネットワーク接続設定情報を取得する。ステップＳ１１１では、ネットワーク接続設定情報は、コントローラシステム１が遣り取りするデータの設定（例えば、タグデータリンクの設定）、ＩＰアドレス、変数マップなどの情報を含む。攻撃パターン作成部６３４は、脅威シナリオリストに含まれる各脅威シナリオに対応する攻撃パターンを攻撃パターンデータベース６１０８から抽出する。
【０１００】
攻撃パターン作成部６３４は、脅威シナリオリストに含まれるすべての脅威シナリオに対応する攻撃パターンの作成が終了したか否かを判定する（ステップＳ１１２）。すべての脅威シナリオに対応する攻撃パターンの作成が終了していない場合（ステップＳ１１２でＮＯ）、攻撃パターン作成部６３４は、処理をステップＳ１１１に戻す。すべての脅威シナリオに対応する攻撃パターンの作成が終了している場合（ステップＳ１１２でＹＥＳ）、攻撃パターン作成部６３４は、処理を終了する。
【０１０１】
以上の手順により１または複数の攻撃パターンが決定される。
ステップＳ１２０では、攻撃実施部６３６は、先に決定された１または複数の攻撃パターンのうち１つを選択してコントローラシステム１に対して攻撃を実施する。ステップＳ１２１において、攻撃実施部６３６は、コントローラシステム１をリセットする。これは、先の攻撃による影響を排除するための処理である。ステップＳ１２２において、攻撃実施部６３６は、コントローラシステム１からイベントログを取得する。この取得するイベントログには、先の攻撃により生じた内部状態を示す情報が含まれることになるので、イベントログの内容を評価することで、実施された攻撃に対するコントローラシステム１の性能を評価できる。
【０１０２】
より具体的には、ステップＳ１２３において、攻撃実施部６３６は、取得したイベントログを参照して、異常ログが発生しているか否かを判定する（ステップＳ１２３）。異常ログが発生していない場合（ステップＳ１２３でＮＯ）、攻撃実施部６３６は、実施した攻撃に対する評価結果として「ＯＫ」を保存する（ステップＳ１２４）。異常ログが発生している場合（ステップＳ１２３でＹＥＳ）、攻撃実施部６３６は、実施した攻撃に対する評価結果として「ＮＧ」を保存する（ステップＳ１２５）。
【０１０３】
ステップＳ１２６において、攻撃実施部６３６は、作成したすべての攻撃パターンの実施が完了したか否かを判定する。作成したすべての攻撃パターンの実施が完了していない場合（ステップＳ１２６でＮＯ）、攻撃実施部６３６は、処理をステップＳ１２０に戻す。作成したすべての攻撃パターンの実施が完了している場合（ステップＳ１２０でＹＥＳ）、攻撃実施部６３６は、実施した攻撃についての攻撃パターンリストおよび各攻撃パターンについてのテスト結果（評価結果レポート）を出力する（ステップＳ１２７）。そして、攻撃実施部６３６は処理を終了する。
【０１０４】
＜Ｅ．攻撃パターンの作成＞
次に、攻撃パターンの作成に係る処理について説明する。
【０１０５】
（ｅ１：攻撃パターンデータベース）
図１１は、本実施の形態に係るコントローラシステム１において利用される攻撃パターンデータベース６１０８の一例を示す模式図である。図１１を参照して、攻撃パターンデータベース６１０８は、脅威シナリオの別に脅威を評価するための攻撃の内容が規定されている。
【０１０６】
より具体的には、攻撃パターンデータベース６１０８は、攻撃元６４０と、脅威６４１と、攻撃方法６４２と、実施方法６４３とを含む。攻撃元６４０、脅威６４１および攻撃方法６４２の各々が脅威シナリオに相当する。
【０１０７】
攻撃元６４０は、脅威となるアクションが実施されるソースを示し、脅威６４１は、攻撃の内容を示し、攻撃方法６４２は、具体的な攻撃手法を示す。これらの各脅威に対して、実施方法６４３には、実施すべきテストの内容が規定されている。
【０１０８】
攻撃パターン作成部６３４は、目的とする脅威シナリオに応じて、攻撃パターンデータベース６１０８を参照して、対象となる実施方法６４３を集約して攻撃パターンを作成する。
【０１０９】
（ｅ２：脅威シナリオ）
サポート装置６００は、コントローラシステム１から必要な情報を取得して脅威シナリオを作成する。以下、脅威シナリオの作成に利用できるコントローラシステム１の情報の一例について説明する。
【０１１０】
（１）タグデータリンク
コントローラシステム１は、他の制御システムあるいは制御装置などとの間で、ＥｔｈｅｒＮｅｔ／ＩＰの通信プロトコルを利用してデータを遣り取りする場合には、タグデータリンクと称されるコネクションを確立する。確立されるコネクションの設定を取得することで、コントローラシステム１の接続先および遣り取りされるデータの内容などを特定できる。このような特定された情報に基づいて、脅威シナリオを決定できる。例えば、コントローラシステム１が接続している先のデバイスをなりすましや偽装したような攻撃などが想定される。
【０１１１】
タグデータリンクの設定としては、接続先のデバイスのアドレス、通信方法、コネクションタイプ、送信インターバルなどを含む。また、タグデータリンクの設定としては、送信されるデータが規定されたタグあるいはタグセットの定義を含む。
【０１１２】
このように、脅威シナリオ作成部６３２は、コントローラシステム１が外部デバイスとの間で確立されるコネクションの設定情報に基づいて脅威シナリオを決定してもよい。このようなタグデータリンクの設定情報を参照することで、コントローラシステム１についての脅威シナリオを決定できる。
【０１１３】
（２）共有変数情報
コントローラシステム１と他の制御システムあるいは制御装置との間では、任意のデータを共有することもできる。なお、共有されるデータ型としては、通常の変数、列挙型、配列型、構造体型、共用体型などの任意の変数を共有設定できる。このような共有される変数を偽装したような攻撃が想定される。
【０１１４】
このように、脅威シナリオ作成部６３２は、コントローラシステム１において共有される変数の情報に基づいて脅威シナリオを決定してもよい。
【０１１５】
（３）ユーザプログラム内のファンクションブロック
ユーザプログラムに規定されているファンクションブロックが参照する変数テーブルなどを利用した攻撃が想定される。ファンクションブロックには、入力変数および出力変数に加えて、内部的に参照されるローカル変数テーブルを有している。
【０１１６】
脅威シナリオ作成部６３２は、コントローラシステム１で実行されるユーザプログラムにおいて参照される変数の情報に基づいて脅威シナリオを決定してもよい。このような入力変数、出力変数およびローカル変数テーブルを偽装したような攻撃が想定される。
【０１１７】
上述したようなコントローラシステム１から取得可能な任意の情報を用いて、脅威シナリオを決定し、決定した脅威シナリオに応じた攻撃パターンを決定できる。
【０１１８】
＜Ｆ．ユーザインターフェイス＞
次に、コントローラシステム１が提供するユーザインターフェイスの一例について説明する。
【０１１９】
（ｆ１：攻撃パターンの設定）
図１２は、本実施の形態に係るコントローラシステム１が提供する攻撃パターンに係るユーザインターフェイス画面の一例を示す図である。図１３は、図１２に示す設定に従って実行された攻撃による評価結果を示すユーザインターフェイス画面の一例を示す図である。
【０１２０】
図１２を参照して、ユーザインターフェイス画面６５０は、攻撃パターン作成部６３４により作成された攻撃パターン案を示す。より具体的には、ユーザインターフェイス画面６５０は、攻撃パターンごとに、攻撃対象６５１と、攻撃元６５２と、脅威６５３と、攻撃方法６５４とを含む。これらの項目が攻撃シナリオを意味する。さらに、攻撃パターンごとに実施方法６５５を含む。攻撃シナリオおよび実施方法６５５は、攻撃パターンデータベース６１０８（図１１）の内容のうち、脅威シナリオに対応する要素を抽出したモノに相当する。
【０１２１】
ユーザインターフェイス画面６５０は、攻撃パターンごとに、実施有無６５６および評価結果６５７を含む。実施有無６５６は、対応する攻撃パターンに従う攻撃を実施するか否かを決定するフラグを受付可能になっている。また、評価結果６５７は、後述するように、対応する攻撃パターンに従う攻撃を実施した結果を示す。
【０１２２】
ユーザは、ユーザインターフェイス画面６５０を参照しながら、実際に実施する攻撃パターンの内容を決定する。例えば、実施方法６５５は、実施する項目の候補が複数存在する場合には、各候補の実行要否の指定を受け付けるためのチェックボックス６６０，６６１と、実施する度合いを調整できる候補についてどの度合いの設定を受け付けるための数値ボックス６６２，６６３，６６４とを含む。すなわち、チェックボックス６６０，６６１は、１または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示に相当する。また、数値ボックス６６２，６６３，６６４は、攻撃パターンに含まれる攻撃の度合いを調整する指示に相当する。
【０１２３】
ユーザは、チェックボックス６６０，６６１および／または数値ボックス６６２，６６３，６６４を操作することで、実施を希望する任意の攻撃の内容を設定できる。
【０１２４】
ユーザが一連の設定を完了すると、ページ変更ボタン６５８を操作することで、攻撃パターンの候補が複数ページに亘る場合であっても、必要な設定を行うことができる。
【０１２５】
このような操作によって決定された攻撃パターンに従って、コントローラシステム１に対する攻撃が実施される。その結果は、図１３に示すように、ユーザインターフェイス画面６５０の評価結果６５７に表示される。
【０１２６】
（ｆ２：セキュリティ機能の評価結果の出力）
本実施の形態に従うコントローラシステム１は、攻撃パターンに従って実施された攻撃によって得られるセキュリティ機能に対する評価結果を出力できる。このような評価結果レポートを出力する際のユーザインターフェイス画面の一例を示す。
【０１２７】
図１４は、本実施の形態に係るコントローラシステム１が提供する評価結果の出力に係るユーザインターフェイス画面の一例を示す図である。図１４を参照して、ユーザインターフェイス画面６８０は、評価結果を出力する先のファイル名の設定を受け付ける入力ボックス６８２と、出力実行ボタン６８４とを含む。
【０１２８】
ユーザは、設定した攻撃パターンに従う攻撃を実施して得られた評価結果を出力するファイル名を入力ボックス６８２に入力した後、出力実行ボタン６８４を押下することで、指定されたファイル名に評価結果が出力される。この出力される評価結果は、図１３に示すユーザインターフェイス画面６５０の評価結果６５７の内容に加えて、対応する攻撃シナリオおよび実施方法の内容などを含んでいてもよい。
【０１２９】
＜Ｇ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
コントローラシステム（１）であって、
制御対象を制御するための制御演算を実行する制御ユニット（１００）と、
前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を担当するセキュリティユニット（２００）と、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段（６３４）と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段（６３６）とを備える、コントローラシステム。
［構成２］
前記コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて、前記コントローラシステムに対して想定される１または複数の脅威からなる脅威シナリオを作成する脅威シナリオ作成手段（６３２）をさらに備える、構成１に記載のコントローラシステム。
［構成３］
前記設定情報は、前記コントローラシステムと外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含む、構成２に記載のコントローラシステム。
［構成４］
前記脅威シナリオ作成手段は、前記コントローラシステムが外部デバイスとの間で確立されるコネクションの設定情報に基づいて、前記脅威シナリオを決定する、構成２または３に記載のコントローラシステム。
［構成５］
前記脅威シナリオ作成手段は、前記コントローラシステムにおいて共有される変数の情報に基づいて、前記脅威シナリオを決定する、構成２〜４のいずれか１項に記載のコントローラシステム。
［構成６］
前記脅威シナリオ作成手段は、前記コントローラシステムで実行されるユーザプログラムにおいて参照される変数の情報に基づいて、前記脅威シナリオを決定する、構成２〜５のいずれか１項に記載のコントローラシステム。
［構成７］
前記攻撃パターン作成手段は、作成した１または複数の前記攻撃パターンを候補としてユーザに提示する（６５０）とともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定する、構成１〜６のいずれか１項に記載のコントローラシステム。
［構成８］
前記ユーザ操作は、前記１または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示（６６０，６６１）、および、攻撃パターンに含まれる攻撃の度合いを調整する指示（６６２，６６３，６６４）の少なくとも一方を含む、構成７に記載のコントローラシステム。
［構成９］
制御対象を制御するための制御演算を実行する制御ユニット（１００）と、前記制御ユニットに接続されてセキュリティ機能を担当するセキュリティユニット（２００）とを備えるコントローラシステムに接続されるサポート装置（６００）であって、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段（６３４）と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段（６３６）とを備える、サポート装置。
［構成１０］
コントローラシステム（１）で実行される評価方法であって、
前記コントローラシステムは、制御対象を制御するための制御演算を実行する制御ユニット（１００）と、前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を担当するセキュリティユニット（２００）とを備え、
前記評価方法は、
前記コントローラシステムにおける設定情報を取得するステップ（Ｓ１０１，Ｓ１１０）と、
取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成するステップ（Ｓ１１１，Ｓ１１２）と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施するステップ（Ｓ１２０，Ｓ１２１）と、
当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価するステップ（Ｓ１２２）とを備える、評価方法。
【０１３０】
＜Ｈ．利点＞
本実施の形態に係る制御システムによれば、コントローラシステム１に対して設定されるセキュリティ機能の妥当性を、専門知識の乏しいユーザであっても事前に容易に評価できる。
【０１３１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３２】
１  コントローラシステム、１００  制御ユニット、１０２，２０２，３０２，６０２  プロセッサ、１０４，２０４，３０４  チップセット、１０６，２０６，３０６  主記憶装置、１０８，２０８，３０８  二次記憶装置、１１０，２１０  通信コントローラ、１１２，２１２，６２０  ＵＳＢコントローラ、１１４，２１４，３１４  メモリカードインターフェイス、１１５，２１５，３１５  メモリカード、１１６，１１８，１２０，２１６，２１８  ネットワークコントローラ、１２２，３２２  内部バスコントローラ、１２４，２２４，３２４  インジケータ、２００  セキュリティユニット、３００  セーフティユニット、４００  機能ユニット、４５０  電源ユニット、５００  フィールドデバイス、６００  サポート装置、６０４  メインメモリ、６０６  入力部、６０８  出力部、６１０  ストレージ、６１２  光学ドライブ、６１４  記録媒体、６１８  プロセッサバス、６３０  システム構成入力部、６３２  脅威シナリオ作成部、６３４  攻撃パターン作成部、６３６  攻撃実施部、６４０，６５２  攻撃元、６４１，６５３  脅威、６４２，６５４  攻撃方法、６４３，６５５  実施方法、６５０，６８０  ユーザインターフェイス画面、６５１  攻撃対象、６５６  実施有無、６５７  評価結果、６５８  ページ変更ボタン、６６０，６６１  チェックボックス、６６２，６６３，６６４  数値ボックス、６８２  入力ボックス、６８４  出力実行ボタン、６１０２  ＯＳ、６１０４  サポートプログラム、６１０６  脅威分析データベース、６１０８  攻撃パターンデータベース。
【図１】
2020166522.tif 000003
【図２】
2020166522.tif 000004
【図３】
2020166522.tif 000005
【図４】
2020166522.tif 000006
【図５】
2020166522.tif 000007
【図６】
2020166522.tif 000008
【図７】
2020166522.tif 000009
【図８】
2020166522.tif 000010
【図９】
2020166522.tif 000011
【図１０】
2020166522.tif 000012
【図１１】
2020166522.tif 000013
【図１２】
2020166522.tif 000014
【図１３】
2020166522.tif 000015
【図１４】
2020166522.tif 000016