(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-05
(45)【発行日】2022-09-13
(54)【発明の名称】コントローラシステム、サポート装置および評価方法
(51)【国際特許分類】
G05B 19/05 20060101AFI20220906BHJP
G06F 21/57 20130101ALI20220906BHJP
G06F 13/00 20060101ALI20220906BHJP
【FI】
G05B19/05 Z
G06F21/57 370
G06F13/00
(21)【出願番号】P 2019066008
(22)【出願日】2019-03-29
【審査請求日】2020-12-15
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】廣部 直樹
(72)【発明者】
【氏名】小河原 徹
(72)【発明者】
【氏名】山本 泰生
(72)【発明者】
【氏名】永田 雄大
【審査官】牧 初
(56)【参考文献】
【文献】特開2003-108521(JP,A)
【文献】中国特許出願公開第107612927(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04-19/05
G05B 9/00- 9/05
G06F 21/12-21/16
G06F 21/50-21/57
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
コントローラシステムであって、
ユーザプログラムに従って、制御対象を制御するための制御演算を実行する制御ユニットと、
前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を
担当するセキュリティユニットと、
前記コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて、前記コントローラシステムに対して想定される1または複数の脅威からなる脅威シナリオを作成する脅威シナリオ作成手段と、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段と
を備え
、
前記脅威シナリオ作成手段は、前記コントローラシステムで実行される前記ユーザプログラムにおいて参照される変数の情報に基づいて、前記脅威シナリオを決定する、コントローラシステム。
【請求項2】
前記設定情報は、前記コントローラシステムと外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含む、請求項
1に記載のコントローラシステム。
【請求項3】
前記脅威シナリオ作成手段は、前記コントローラシステムが外部デバイスとの間で確立されるコネクションの設定情報に基づいて、前記脅威シナリオを決定する、請求項
1または
2に記載のコントローラシステム。
【請求項4】
前記脅威シナリオ作成手段は、前記コントローラシステムにおいて共有される変数の情報に基づいて、前記脅威シナリオを決定する、請求項
1~
3のいずれか1項に記載のコントローラシステム。
【請求項5】
前記攻撃パターン作成手段は、作成した1または複数の前記攻撃パターンを候補としてユーザに提示するとともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定する、請求項1~
4のいずれか1項に記載のコントローラシステム。
【請求項6】
前記ユーザ操作は、前記1または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示、および、攻撃パターンに含まれる攻撃の度合いを調整する指示の少なくとも一方を含む、請求項
5に記載のコントローラシステム。
【請求項7】
ユーザプログラムに従って、制御対象を制御するための制御演算を実行する制御ユニットと、前記制御ユニットに接続されてセキュリティ機能を担当するセキュリティユニットとを備えるコントローラシステムに接続されるサポート装置であって、
前記コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて、前記コントローラシステムに対して想定される1または複数の脅威からなる脅威シナリオを作成する脅威シナリオ作成手段と、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段とを備え
、
前記脅威シナリオ作成手段は、前記コントローラシステムで実行される前記ユーザプログラムにおいて参照される変数の情報に基づいて、前記脅威シナリオを決定する、サポート装置。
【請求項8】
コントローラシステムで実行される評価方法であって、
前記コントローラシステムは、
ユーザプログラムに従って、制御対象を制御するための制御演算を実行する制御ユニットと、前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットとを備え、
前記評価方法は、
前記コントローラシステムから装置構成の情報および保護資産の情報を取得するステップと、
取得された装置構成の情報および保護資産の情報に基づいて、前記コントローラシステムに対して想定される1または複数の脅威からなる脅威シナリオを作成するステップと、
前記コントローラシステムにおける設定情報を取得するステップと、
取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成するステップと、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施するステップと、
当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価するステップとを備え
、
前記脅威シナリオを作成ステップは、前記コントローラシステムで実行される前記ユーザプログラムにおいて参照される変数の情報に基づいて、前記脅威シナリオを決定するステップを含む、評価方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御対象を制御するコントローラシステムに対するセキュリティ機能に対する評価方法に関する。
【背景技術】
【0002】
近年、工場などの製造現場では、マルウェアなどの被害が発生しており、PLC(プログラマブルロジックコントローラ)などの制御装置に対してもセキュリティ対策が必須となってきた。そのため、工場などの装置、生産ラインを開発する場合には、セキュリティ対策を生産技術者、装置メーカ開発者などが行う必要がある。
【0003】
PLCでは、例えば、特開2000-137506号公報(特許文献1)に開示されているように、異常履歴が登録されたとき、または、予め定められた時間が到来したときに、予め指定された宛先に電子メールを送信する程度で、セキュリティ対策については何ら考慮されていない。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特に、近年のICT(Information and Communication Technology)の進歩に伴って、制御装置も様々な外部装置とネットワーク接続されるとともに、制御装置において実行される処理も高度化している。このようなネットワーク化あるいはインテリジェント化に伴って、想定されるセキュリティの脅威の種類も増加している。
【0006】
このようなセキュリティの脅威に対してセキュリティ機能を設定することになるが、適切なセキュリティ機能が設定されているのかを評価するためには、専門知識が必要で、生産技術者、装置メーカ開発者が脅威分析を行うには知識を取得するために長い教育時間が必要であった。また、セキュリティの脅威分析のために専門家の雇用した場合、専門家の人件費が、工場、装置メーカのコスト負担となる。
【0007】
本発明は、コントローラシステムのネットワーク化あるいはインテリジェント化に伴って生じ得るセキュリティの脅威に対して設定されるセキュリティ機能の妥当性を事前に評価できるようなメカニズムの提供を一つの目的としている。
【課題を解決するための手段】
【0008】
本発明のある局面に従うコントローラシステムは、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続され、コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットと、コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいてコントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対するコントローラシステムの挙動に基づいて、コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段とを含む。
【0009】
この局面によれば、専門知識の乏しいユーザであってもコントローラシステムに対して設定されるセキュリティ機能の妥当性を事前に容易に評価できる。
【0010】
コントローラシステムは、コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて、コントローラシステムに対して想定される1または複数の脅威からなる脅威シナリオを作成する脅威シナリオ作成手段をさらに含んでいてもよい。この構成によれば、コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて作成された脅威シナリオに従う評価を行うことができる。
【0011】
設定情報は、コントローラシステムと外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含んでいてもよい。この構成によれば、脅威が発生し易いネットワーク関連についてセキュリティ機能の妥当性を評価できる。
【0012】
脅威シナリオ作成手段は、コントローラシステムが外部デバイスとの間で確立されるコネクションの設定情報に基づいて、脅威シナリオを決定するようにしてもよい。この構成によれば、コントローラシステムがコネクションを確立する外部デバイスのなりすましなどの脅威を考慮した事前評価が可能となる。
【0013】
脅威シナリオ作成手段は、コントローラシステムにおいて共有される変数の情報に基づいて、脅威シナリオを決定するようにしてもよい。この構成によれば、この構成によれば、コントローラシステムにおいて共有される変数を悪用した攻撃を考慮した事前評価が可能となる。
【0014】
脅威シナリオ作成手段は、コントローラシステムで実行されるユーザプログラムにおいて参照される変数の情報に基づいて、脅威シナリオを決定するようにしてもよい。この構成によれば、ユーザプログラムが参照する変数の不備をついた攻撃を考慮した事前評価が可能となる。
【0015】
攻撃パターン作成手段は、作成した1または複数の攻撃パターンを候補としてユーザに提示するとともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定するようにしてもよい。この構成によれば、ユーザのニーズに応じた攻撃パターンでセキュリティ機能を評価できる。
【0016】
ユーザ操作は、1または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示、および、攻撃パターンに含まれる攻撃の度合いを調整する指示の少なくとも一方を含むようにしてもよい。この構成によれば、必要な攻撃パターンあるいは要求される攻撃の度合いに応じてセキュリティ機能を評価できる。
【0017】
本発明の別の局面に従えば、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続されてセキュリティ機能を担当するセキュリティユニットとを備えるコントローラシステムに接続されるサポート装置が提供される。サポート装置は、コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいてコントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段と、作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対するコントローラシステムの挙動に基づいて、コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段とを含む。
【0018】
本発明のさらに別の局面に従えば、コントローラシステムで実行される評価方法が提供される。コントローラシステムは、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続され、コントローラシステムに対するセキュリティ機能を担当するセキュリティユニットとを含む。評価方法は、コントローラシステムにおける設定情報を取得するステップと、取得された設定情報に基づいてコントローラシステムに対する攻撃パターンを作成するステップと、作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施するステップと、当該攻撃に対するコントローラシステムの挙動に基づいて、コントローラシステムに設定されているセキュリティ機能の適否を評価するステップとを含む。
【発明の効果】
【0019】
本発明によれば、コントローラシステムのネットワーク化あるいはインテリジェント化に伴って生じ得るセキュリティの脅威を分析し、当該脅威に対する対策を行うという新たな課題を解決できる。
【図面の簡単な説明】
【0020】
【
図1】本実施の形態に係るコントローラシステムの構成例を示す外観図である。
【
図2】本実施の形態に係るコントローラシステムが提供するセキュリティ機能の事前評価を説明するための模式図である。
【
図3】本実施の形態に係るコントローラシステムを構成する制御ユニットのハードウェア構成例を示す模式図である。
【
図4】本実施の形態に係るコントローラシステムを構成するセキュリティユニットのハードウェア構成例を示す模式図である。
【
図5】本実施の形態に係るコントローラシステムを構成するセーフティユニットのハードウェア構成例を示す模式図である。
【
図6】本実施の形態に係るコントローラシステムに接続されるサポート装置でセキュリティ機能の事前評価を行うシステム構成を説明するためのブロック図である。
【
図7】本実施の形態に係るコントローラシステムに接続されるサポート装置のハードウェア構成例を示す模式図である。
【
図8】本実施の形態に係るコントローラシステムおよびサポート装置でのセキュリティ機能の事前評価を説明するためのシーケンスである。
【
図9】本実施の形態に係るセキュリティ機能の事前評価に係る処理手順を示すフローチャートである。
【
図10】本実施の形態に係るセキュリティ機能の事前評価に係る処理手順を示すフローチャートである。
【
図11】本実施の形態に係るコントローラシステムにおいて利用される攻撃パターンデータベースの一例を示す模式図である。
【
図12】本実施の形態に係るコントローラシステムが提供する攻撃パターンに係るユーザインターフェイス画面の一例を示す図である。
【
図13】
図12に示す設定に従って実行された攻撃による評価結果を示すユーザインターフェイス画面の一例を示す図である。
【
図14】本実施の形態に係るコントローラシステムが提供する評価結果の出力に係るユーザインターフェイス画面の一例を示す図である。
【発明を実施するための形態】
【0021】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0022】
<A.適用例>
本発明が適用される場面の一例について説明する。まず、本実施の形態に係るコントローラシステム1の構成について説明する。
【0023】
図1は、本実施の形態に係るコントローラシステム1の構成例を示す外観図である。
図1を参照して、コントローラシステム1は、制御ユニット100と、セキュリティユニット200と、セーフティユニット300と、1または複数の機能ユニット400と、電源ユニット450とを含む。
【0024】
制御ユニット100とセキュリティユニット200との間は、任意のデータ伝送路(例えば、PCI Expressあるいはイーサネット(登録商標)など)を介して接続されている。制御ユニット100とセーフティユニット300および1または複数の機能ユニット400との間は、図示しない内部バスを介して接続されている。
【0025】
制御ユニット100は、コントローラシステム1において中心的な処理を実行する。制御ユニット100は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。後述のセーフティユニット300で実行される制御演算との対比で、制御ユニット100で実行される制御演算を「標準制御」とも称す。
図1に示す構成例において、制御ユニット100は、1または複数の通信ポートを有している。
【0026】
セキュリティユニット200は、制御ユニット100に接続され、コントローラシステム1に対するセキュリティ機能を担当する。
図1に示す構成例において、セキュリティユニット200は、1または複数の通信ポートを有している。セキュリティユニット200が提供するセキュリティ機能の詳細については、後述する。
【0027】
セーフティユニット300は、制御ユニット100とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。セーフティユニット300で実行される制御演算を「セーフティ制御」とも称す。通常、「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。
【0028】
機能ユニット400は、コントローラシステム1による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット400は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。I/Oユニットとしては、例えば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。
【0029】
電源ユニット450は、コントローラシステム1を構成する各ユニットに対して、所定電圧の電源を供給する。
【0030】
図2は、本実施の形態に係るコントローラシステム1が提供するセキュリティ機能の事前評価を説明するための模式図である。
図2を参照して、コントローラシステム1には、1または複数のフィールドデバイス500が接続されている。フィールドデバイス500は、リモートIOデバイス、サーボ、センサ、HMI(human machine interface)などを含み得る。
【0031】
コントローラシステム1は、セキュリティ機能を有しており、サポート装置600などを介して必要な設定(セキュリティ機能設定)がなされる(セキュリティ機能設定)。このようなコントローラシステム1に接続されたサポート装置600は、コントローラシステム1から必要な情報を取得して脅威シナリオを作成し、サポート装置600は、作成した脅威シナリオに基づいて攻撃パターンを決定する。そして、サポート装置600は、決定した攻撃パターンに従ってコントローラシステム1に対する攻撃を実施し、その攻撃に対するコントローラシステム1の挙動などに基づいて、設定されているセキュリティ機能の適否を評価する。必要に応じて、評価結果はユーザへ提供される。
【0032】
<B.各ユニットのハードウェア構成例>
次に、本実施の形態に係るコントローラシステム1を構成する各ユニットのハードウェア構成例について説明する。
【0033】
(b1:制御ユニット100)
図3は、本実施の形態に係るコントローラシステム1を構成する制御ユニット100のハードウェア構成例を示す模式図である。
図3を参照して、制御ユニット100は、主たるコンポーネントとして、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、通信コントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、ネットワークコントローラ116,118,120と、内部バスコントローラ122と、インジケータ124とを含む。
【0034】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
【0035】
二次記憶装置108には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
【0036】
通信コントローラ110は、セキュリティユニット200との間のデータの遣り取りを担当する。通信コントローラ110としては、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。
【0037】
USBコントローラ112は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【0038】
メモリカードインターフェイス114は、メモリカード115を着脱可能に構成されており、メモリカード115に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【0039】
ネットワークコントローラ116,118,120の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ116,118,120は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
【0040】
内部バスコントローラ122は、コントローラシステム1を構成するセーフティユニット300や1または複数の機能ユニット400との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【0041】
インジケータ124は、制御ユニット100の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
【0042】
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0043】
(b2:セキュリティユニット200)
図4は、本実施の形態に係るコントローラシステム1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。
図4を参照して、セキュリティユニット200は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、通信コントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、ネットワークコントローラ216,218と、インジケータ224とを含む。
【0044】
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種セキュリティ機能を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット200全体としての処理を実現する。
【0045】
二次記憶装置208には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセキュリティシステムプログラムが格納される。
【0046】
通信コントローラ210は、制御ユニット100との間のデータの遣り取りを担当する。通信コントローラ210としては、制御ユニット100に通信コントローラ210と同様に、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。
【0047】
USBコントローラ212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【0048】
メモリカードインターフェイス214は、メモリカード215を着脱可能に構成されており、メモリカード215に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード215から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【0049】
ネットワークコントローラ216,218の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ216,218は、イーサネット(登録商標)などの汎用的なネットワークプロトコルを採用してもよい。
【0050】
インジケータ224は、セキュリティユニット200の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
【0051】
図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セキュリティユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0052】
(b3:セーフティユニット300)
図5は、本実施の形態に係るコントローラシステム1を構成するセーフティユニット300のハードウェア構成例を示す模式図である。
図5を参照して、セーフティユニット300は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ302と、チップセット304と、主記憶装置306と、二次記憶装置308と、メモリカードインターフェイス314と、内部バスコントローラ322と、インジケータ324とを含む。
【0053】
プロセッサ302は、二次記憶装置308に格納された各種プログラムを読み出して、主記憶装置306に展開して実行することで、セーフティ制御に係る制御演算、および、後述するような各種処理を実現する。チップセット304は、プロセッサ302と各コンポーネントとの間のデータの遣り取りを仲介することで、セーフティユニット300全体としての処理を実現する。
【0054】
二次記憶装置308には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセーフティプログラムが格納される。
【0055】
メモリカードインターフェイス314は、メモリカード315を着脱可能に構成されており、メモリカード315に対してセーフティプログラムや各種設定などのデータを書込み、あるいは、メモリカード315からセーフティプログラムや各種設定などのデータを読出すことが可能になっている。
【0056】
内部バスコントローラ322は、内部バスを介した制御ユニット100との間のデータの遣り取りを担当する。
【0057】
インジケータ324は、セーフティユニット300の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
【0058】
図5には、プロセッサ302がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セーフティユニット300の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0059】
<C.セキュリティ機能の事前評価>
次に、上述したセキュリティユニット200において設定されたセキュリティ機能の事前評価を行う場合の処理の一例について説明する。
図6は、本実施の形態に係るコントローラシステムに接続されるサポート装置でセキュリティ機能の事前評価を行うシステム構成を説明するためのブロック図である。
図6に示すように、サポート装置600には、システム構成入力部630、脅威シナリオ作成部632、攻撃パターン作成部634と、攻撃実施部636とを備えている。なお、サポート装置600は、脅威分析データベース6106および攻撃パターンデータベース6108をさらに備えている。しかし、脅威分析データベース6106および攻撃パターンデータベース6108は、サポート装置600内に設けず、外部サーバに設けてもよい。
【0060】
まず、サポート装置600は、コントローラシステム1から装置構成(装置システム構成)の情報、および保護資産の情報をシステム構成入力部630で取得する。脅威シナリオ作成部632は、システム構成入力部630で取得した装置構成および保護資産に応じて、脅威分析データベース6106の重要レベルおよび脅威レベルから脅威シナリオを作成する。
【0061】
本明細書において、「保護資産」は、コントローラシステム1を構成するエレメントの集合を意味する。「保護資産」の対象となる単位は制御対象などに応じて任意に設定できる。例えば、「保護資産」は、コントローラシステム1を構成する装置などで、制御ユニット100、セキュリティユニット200、フィールドデバイス500などを単位としてもよい。
【0062】
本明細書において、「重要レベル」は、コントローラシステム1を構成する保護資産の重要度を示す指標であり、ユーザにおいて設定することも可能である。
【0063】
本明細書において、「脅威レベル」は、コントローラシステム1に対するセキュリティの脅威を示す指標であり、ユーザにおいて設定することも可能である。
【0064】
本明細書において、「対策必要リスクレベル」は、コントローラシステム1において確保されるべき保護を示す指標であり、ユーザにおいて設定することも可能である。
【0065】
脅威分析データベース6106には、コントローラシステム1の保護資産に対する重要レベル、セキュリティの脅威に対する脅威レベルを予め格納されている。
【0066】
ユーザは、対策必要リスクレベルを脅威シナリオ作成部632に入力する。脅威シナリオ作成部632は、ユーザにより入力された対策必要リスクレベルおよび装置種別に応じて、脅威分析データベース6106の重要レベルおよび脅威レベルから脅威シナリオリストを作成する。
【0067】
攻撃パターン作成部634は、コントローラシステム1における設定情報を取得するとともに、取得された設定情報に基づいてコントローラシステム1に対する攻撃パターンを決定する。より具体的には、攻撃パターン作成部634は、脅威シナリオ作成部632で作成する脅威シナリオと、攻撃パターンデータベース6108の攻撃パターンリストとに応じて、コントローラシステム1に対して設定されているセキュリティ機能を事前評価するための1または複数の攻撃パターンを作成する。
【0068】
攻撃パターン作成部634は、作成した1または複数の攻撃パターンを候補としてユーザに提示するとともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定する。すなわち、作成された攻撃パターンのうちユーザが所望するものの選択を攻撃パターン作成部634に入力すると、攻撃パターン作成部634は、選択された攻撃パターンに従って、コントローラシステム1に対して攻撃を実施する。そして、攻撃パターン作成部634は、コントローラシステム1から取得したイベントログなどに基づいて、攻撃パターンに従う攻撃によるセキュリティ機能の評価結果を評価結果レポートとしてユーザに出力する。
【0069】
図6で説明した構成は、以下に説明するサポート装置600のハードウェア構成により実現される。
図7は、本実施の形態に係るコントローラシステム1に接続されるサポート装置600のハードウェア構成例を示す模式図である。サポート装置600は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
【0070】
図7を参照して、サポート装置600は、プロセッサ602と、メインメモリ604と、入力部606と、出力部608と、ストレージ610と、光学ドライブ612と、USBコントローラ620とを含む。これらのコンポーネントは、プロセッサバス618を介して接続されている。
【0071】
プロセッサ602は、CPUやGPUなどで構成され、ストレージ610に格納されたプログラム(一例として、OS6102およびサポートプログラム6104)を読出して、メインメモリ604に展開して実行することで、コントローラシステム1に対する設定処理などを実現する。
【0072】
メインメモリ604は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ610は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
【0073】
ストレージ610には、基本的な機能を実現するためのOS6102に加えて、サポート装置600としての機能を提供するためのサポートプログラム6104が格納される。すなわち、サポートプログラム6104は、コントローラシステム1に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置600を実現する。さらに、ストレージ610には、脅威分析データベース6106および攻撃パターンデータベース6108が格納されている。
【0074】
入力部606は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部608は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ602からの処理結果などを出力する。
【0075】
USBコントローラ620は、USB接続を介して、コントローラシステム1などとの間のデータを遣り取りする。
【0076】
サポート装置600は、光学ドライブ612を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体614(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ610などにインストールされる。
【0077】
サポート装置600で実行されるサポートプログラム6104などは、コンピュータ読取可能な記録媒体614を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置600が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0078】
図7には、プロセッサ602がプログラムを実行することで、サポート装置600として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0079】
次に、上述したサポート装置600でセキュリティ機能の事前評価を行うシステム構成において、装置の開発時、装置の立ち上げ時に行う脅威分析およびセキュリティ機能の事前評価について詳しく説明する。
図8は、本実施の形態に係るコントローラシステムおよびサポート装置でのセキュリティ機能の事前評価を説明するためのシーケンスである。
図8に示すシーケンスでは、コントローラシステム1およびサポート装置600を含む制御システムの典型例について説明する。
【0080】
まず、ユーザが、サポート装置600でセキュリティユニット200の事前評価ツールを立ち上げる。当該事前評価ツールが立ち上がるとシステム構成入力部630がコントローラシステム1に対して問合せを行う。コントローラシステム1は、システム構成入力部630からの問合せに対してコントローラシステム1の装置構成の情報、保護資産の情報をシステム構成入力部630に返信する。システム構成入力部630は、コントローラシステム1から装置構成の情報、および保護資産の情報を取得する。さらに、システム構成入力部630は、セキュリティユニット200からソフトウェアおよびハードウェアのバージョン情報、リソース容量などのセキュリティユニット200のリソース情報を取得する。
【0081】
ユーザが、サポート装置600でセキュリティユニット200の設定の開始を選択し、装置種別を選択した場合、脅威シナリオ作成部632は、装置種別に応じて脅威分析データベース6106の重要レベルおよび脅威レベルから脅威シナリオリストを作成する。このとき、ユーザは、セキュリティ機能が維持すべき対策必要リスクレベルについても入力する。
【0082】
このように、脅威シナリオ作成部632は、コントローラシステム1から取得された装置構成の情報および保護資産の情報に基づいて、コントローラシステム1に対して想定される1または複数の脅威からなる脅威シナリオを作成する。より具体的に、脅威シナリオ作成部632は、脅威分析データベース6106の情報を参照して保護資産評価リストおよび脅威リストを作成し、保護資産評価リストおよび脅威リストに基づいて、対策必要リスクレベルに応じた脅威シナリオリストをユーザに提示する。なお、脅威シナリオ作成部632は、装置種別に関わらず脅威分析データベース6106の重要レベルおよび脅威レベルから脅威シナリオリストを作成してもよい。
【0083】
攻撃パターン作成部634は、対象のコントローラシステム1からネットワーク接続設定情報を取得する。すなわち、コントローラシステム1から取得される設定情報は、コントローラシステム1と外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含む。そして、攻撃パターン作成部634は、取得したネットワーク接続設定情報に基づいて、脅威シナリオ作成部632で作成する脅威シナリオリストと、攻撃パターンデータベース6108の攻撃パターンとを参照して、コントローラシステム1のセキュリティ機能を事前評価するための項目を格納した1または複数の攻撃パターン案を作成し、当該攻撃パターン案をユーザに提示する。
【0084】
ユーザは提示された攻撃パターン案のうち所望の攻撃パターンを選択する。攻撃パターン作成部634は、攻撃パターン案のうち選択された攻撃パターンのみを有効なものと決定する。
【0085】
攻撃実施部636は、攻撃パターン作成部634により作成された攻撃パターンに従ってコントローラシステム1に対する攻撃を実施する。そして、攻撃実施部636は、攻撃に対するコントローラシステム1の挙動に基づいて、コントローラシステム1に設定されているセキュリティ機能の適否を評価する。より具体的には、攻撃実施部636は、実施した攻撃の内容、および、コントローラシステム1から取得したイベントログ(コントローラシステム1の動作履歴など)に基づいて、攻撃に対するコントローラシステム1の防御動作などを評価する。攻撃実施部636は、評価結果を評価結果レポートとして出力する。このように、コントローラシステム1は、サポート装置600で設定されているセキュリティ機能に対する事前評価を容易に行うことができる。
【0086】
<D.処理手順>
次に、本実施の形態に係る上述したセキュリティユニット200において設定されたセキュリティ機能の事前評価を行う場合の処理の一例について説明する。
【0087】
図9および
図10は、本実施の形態に係るセキュリティ機能の事前評価に係る処理手順を示すフローチャートである。
【0088】
サポート装置600は、
図9に示す処理を開始するとシステム構成入力部630で装置構成の情報を取得する(ステップS101)。コントローラシステム1で制御する装置種別により制御の目的、重要とする事項などが異なるため設定するセキュリティ機能も異なる。
【0089】
例えば、コントローラシステム1で制御する装置が半導体製造装置であれば、製造工程において基本的に装置の近くに人が立ち入ることがないため、装置の制御を維持し続けることが重要である。一方、コントローラシステム1で制御する装置がプレス装置であれば、製造工程において装置の近くで人が作業を行うことが基本であるため、非常時に装置を確実に停止させて人の安全を守ることが重要である。そのため、半導体製造装置であれば、装置の制御を維持し続けることに必要な構成のセキュリティ機能を優先して設定し、プレス装置であれば、装置を確実に停止させるために必要な構成のセキュリティ機能を優先して設定する。
【0090】
ステップS101では、システム構成入力部630がコントローラシステム1に対して装置構成の情報、保護資産の情報を問合せ、コントローラシステム1から装置構成の情報、および保護資産の情報を取得する。さらに、システム構成入力部630は、ユーザが選択した装置種別(例えば、半導体製造装置、プレス装置など)の情報に基づき、装置構成の情報、保護資産の情報から
図10に示したような装置構成を作成する。
【0091】
次に、サポート装置600は、脅威シナリオ作成部632で、システム構成入力部630で取得した装置構成および保護資産に応じて、保護資産評価リストを作成する(ステップS102)。保護資産評価リストは、セキュリティ機能により保護すべきエレメントの一覧ならびに対応する属性および重要レベルを含む。
【0092】
脅威シナリオ作成部632は、保護資産評価リストを作成した後、脅威シナリオを作成する(ステップS103)。より具体的には、脅威シナリオ作成部632は、脅威リストおよび保護資産評価リストに基づいて脅威シナリオを作成する。脅威リストは、想定攻撃箇所のごとの攻撃内容およびリスクの一覧を含む。
【0093】
本明細書において、「脅威」は、設備や機械を正常運転することを妨げる任意の事象を意味する。PLCを中心とする制御装置においては、典型的な脅威には、(1)データベースなどの上位装置からの攻撃、(2)フィールドデバイスからの攻撃、(3)サポート装置を介した攻撃、(4)メモリカードなどの制御装置に装着される記憶媒体を介した攻撃、といった4つの局面からの脅威が考えられる。さらに、制御装置に搭載されているすべての物理ポートは攻撃を受けるセキュリティリスクが存在している。
【0094】
脅威シナリオ作成部632は、保護資産と脅威とを組み合わせた項目ごとにリストとしてさせる。リスト化された脅威シナリオは、以下、脅威シナリオリストともいう。
【0095】
脅威シナリオ作成部632は、ステップS103で脅威リストと保護資産評価リストとから脅威シナリオを作成する。脅威シナリオ作成部632は、脅威リストと保護資産評価リストと属性でリンクして組み合わせ脅威シナリオを作成している。そして、脅威シナリオ作成部632は、作成する脅威シナリオリストの各項目に対するリスク値(各脅威シナリオリスク値)を算出する(ステップS104)。リスク値は、セキュリティの脅威に対するリスクを示す指標で、例えば、予め定められた試算方法で、脅威リストの脅威レベルと保護資産評価リストの重要レベルとの積算で求められる。
【0096】
脅威シナリオ作成部632は、作成した脅威シナリオリストのリスク値がユーザの設定した対策必要リスクレベル以上か否かを判定する(ステップS105)。リスク値が対策必要リスクレベル以上の場合(ステップS105でYES)、脅威シナリオ作成部632は、脅威シナリオリストの項目に対策が必要であるとの設定を行う(ステップS106)。一方、リスク値が対策必要リスクレベルより低い場合(ステップS105でNO)、脅威シナリオ作成部632は、脅威シナリオリストの項目に対策が必要でないとの設定を行う(ステップS107)。
【0097】
脅威シナリオ作成部632は、作成した脅威シナリオリストのすべてのリスク値について対策の要否の試算が終了したか否かを判定する(ステップS108)。すべてのリスク値について対策の要否の試算が終了していない場合(ステップS108でNO)、脅威シナリオ作成部632は、処理をステップS104に戻す。すべてのリスク値について対策の要否の試算が終了している場合(ステップS108でYES)、脅威シナリオ作成部632は、脅威シナリオリストをリスク値の高い順で、対策の要否順で項目の並べ替えを行う(ステップS109)。
【0098】
以上の手順により決定された脅威シナリオリスト(1または複数の脅威シナリオからなる)に基づいて攻撃シナリオが作成される。
【0099】
ステップS110では、攻撃パターン作成部634がコントローラシステム1に接続し、コントローラシステム1からネットワーク接続設定情報を取得する。ステップS111では、ネットワーク接続設定情報は、コントローラシステム1が遣り取りするデータの設定(例えば、タグデータリンクの設定)、IPアドレス、変数マップなどの情報を含む。攻撃パターン作成部634は、脅威シナリオリストに含まれる各脅威シナリオに対応する攻撃パターンを攻撃パターンデータベース6108から抽出する。
【0100】
攻撃パターン作成部634は、脅威シナリオリストに含まれるすべての脅威シナリオに対応する攻撃パターンの作成が終了したか否かを判定する(ステップS112)。すべての脅威シナリオに対応する攻撃パターンの作成が終了していない場合(ステップS112でNO)、攻撃パターン作成部634は、処理をステップS111に戻す。すべての脅威シナリオに対応する攻撃パターンの作成が終了している場合(ステップS112でYES)、攻撃パターン作成部634は、処理を終了する。
【0101】
以上の手順により1または複数の攻撃パターンが決定される。
ステップS120では、攻撃実施部636は、先に決定された1または複数の攻撃パターンのうち1つを選択してコントローラシステム1に対して攻撃を実施する。ステップS121において、攻撃実施部636は、コントローラシステム1をリセットする。これは、先の攻撃による影響を排除するための処理である。ステップS122において、攻撃実施部636は、コントローラシステム1からイベントログを取得する。この取得するイベントログには、先の攻撃により生じた内部状態を示す情報が含まれることになるので、イベントログの内容を評価することで、実施された攻撃に対するコントローラシステム1の性能を評価できる。
【0102】
より具体的には、ステップS123において、攻撃実施部636は、取得したイベントログを参照して、異常ログが発生しているか否かを判定する(ステップS123)。異常ログが発生していない場合(ステップS123でNO)、攻撃実施部636は、実施した攻撃に対する評価結果として「OK」を保存する(ステップS124)。異常ログが発生している場合(ステップS123でYES)、攻撃実施部636は、実施した攻撃に対する評価結果として「NG」を保存する(ステップS125)。
【0103】
ステップS126において、攻撃実施部636は、作成したすべての攻撃パターンの実施が完了したか否かを判定する。作成したすべての攻撃パターンの実施が完了していない場合(ステップS126でNO)、攻撃実施部636は、処理をステップS120に戻す。作成したすべての攻撃パターンの実施が完了している場合(ステップS120でYES)、攻撃実施部636は、実施した攻撃についての攻撃パターンリストおよび各攻撃パターンについてのテスト結果(評価結果レポート)を出力する(ステップS127)。そして、攻撃実施部636は処理を終了する。
【0104】
<E.攻撃パターンの作成>
次に、攻撃パターンの作成に係る処理について説明する。
【0105】
(e1:攻撃パターンデータベース)
図11は、本実施の形態に係るコントローラシステム1において利用される攻撃パターンデータベース6108の一例を示す模式図である。
図11を参照して、攻撃パターンデータベース6108は、脅威シナリオの別に脅威を評価するための攻撃の内容が規定されている。
【0106】
より具体的には、攻撃パターンデータベース6108は、攻撃元640と、脅威641と、攻撃方法642と、実施方法643とを含む。攻撃元640、脅威641および攻撃方法642の各々が脅威シナリオに相当する。
【0107】
攻撃元640は、脅威となるアクションが実施されるソースを示し、脅威641は、攻撃の内容を示し、攻撃方法642は、具体的な攻撃手法を示す。これらの各脅威に対して、実施方法643には、実施すべきテストの内容が規定されている。
【0108】
攻撃パターン作成部634は、目的とする脅威シナリオに応じて、攻撃パターンデータベース6108を参照して、対象となる実施方法643を集約して攻撃パターンを作成する。
【0109】
(e2:脅威シナリオ)
サポート装置600は、コントローラシステム1から必要な情報を取得して脅威シナリオを作成する。以下、脅威シナリオの作成に利用できるコントローラシステム1の情報の一例について説明する。
【0110】
(1)タグデータリンク
コントローラシステム1は、他の制御システムあるいは制御装置などとの間で、EtherNet/IPの通信プロトコルを利用してデータを遣り取りする場合には、タグデータリンクと称されるコネクションを確立する。確立されるコネクションの設定を取得することで、コントローラシステム1の接続先および遣り取りされるデータの内容などを特定できる。このような特定された情報に基づいて、脅威シナリオを決定できる。例えば、コントローラシステム1が接続している先のデバイスをなりすましや偽装したような攻撃などが想定される。
【0111】
タグデータリンクの設定としては、接続先のデバイスのアドレス、通信方法、コネクションタイプ、送信インターバルなどを含む。また、タグデータリンクの設定としては、送信されるデータが規定されたタグあるいはタグセットの定義を含む。
【0112】
このように、脅威シナリオ作成部632は、コントローラシステム1が外部デバイスとの間で確立されるコネクションの設定情報に基づいて脅威シナリオを決定してもよい。このようなタグデータリンクの設定情報を参照することで、コントローラシステム1についての脅威シナリオを決定できる。
【0113】
(2)共有変数情報
コントローラシステム1と他の制御システムあるいは制御装置との間では、任意のデータを共有することもできる。なお、共有されるデータ型としては、通常の変数、列挙型、配列型、構造体型、共用体型などの任意の変数を共有設定できる。このような共有される変数を偽装したような攻撃が想定される。
【0114】
このように、脅威シナリオ作成部632は、コントローラシステム1において共有される変数の情報に基づいて脅威シナリオを決定してもよい。
【0115】
(3)ユーザプログラム内のファンクションブロック
ユーザプログラムに規定されているファンクションブロックが参照する変数テーブルなどを利用した攻撃が想定される。ファンクションブロックには、入力変数および出力変数に加えて、内部的に参照されるローカル変数テーブルを有している。
【0116】
脅威シナリオ作成部632は、コントローラシステム1で実行されるユーザプログラムにおいて参照される変数の情報に基づいて脅威シナリオを決定してもよい。このような入力変数、出力変数およびローカル変数テーブルを偽装したような攻撃が想定される。
【0117】
上述したようなコントローラシステム1から取得可能な任意の情報を用いて、脅威シナリオを決定し、決定した脅威シナリオに応じた攻撃パターンを決定できる。
【0118】
<F.ユーザインターフェイス>
次に、コントローラシステム1が提供するユーザインターフェイスの一例について説明する。
【0119】
(f1:攻撃パターンの設定)
図12は、本実施の形態に係るコントローラシステム1が提供する攻撃パターンに係るユーザインターフェイス画面の一例を示す図である。
図13は、
図12に示す設定に従って実行された攻撃による評価結果を示すユーザインターフェイス画面の一例を示す図である。
【0120】
図12を参照して、ユーザインターフェイス画面650は、攻撃パターン作成部634により作成された攻撃パターン案を示す。より具体的には、ユーザインターフェイス画面650は、攻撃パターンごとに、攻撃対象651と、攻撃元652と、脅威653と、攻撃方法654とを含む。これらの項目が攻撃シナリオを意味する。さらに、攻撃パターンごとに実施方法655を含む。攻撃シナリオおよび実施方法655は、攻撃パターンデータベース6108(
図11)の内容のうち、脅威シナリオに対応する要素を抽出したモノに相当する。
【0121】
ユーザインターフェイス画面650は、攻撃パターンごとに、実施有無656および評価結果657を含む。実施有無656は、対応する攻撃パターンに従う攻撃を実施するか否かを決定するフラグを受付可能になっている。また、評価結果657は、後述するように、対応する攻撃パターンに従う攻撃を実施した結果を示す。
【0122】
ユーザは、ユーザインターフェイス画面650を参照しながら、実際に実施する攻撃パターンの内容を決定する。例えば、実施方法655は、実施する項目の候補が複数存在する場合には、各候補の実行要否の指定を受け付けるためのチェックボックス660,661と、実施する度合いを調整できる候補についてどの度合いの設定を受け付けるための数値ボックス662,663,664とを含む。すなわち、チェックボックス660,661は、1または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示に相当する。また、数値ボックス662,663,664は、攻撃パターンに含まれる攻撃の度合いを調整する指示に相当する。
【0123】
ユーザは、チェックボックス660,661および/または数値ボックス662,663,664を操作することで、実施を希望する任意の攻撃の内容を設定できる。
【0124】
ユーザが一連の設定を完了すると、ページ変更ボタン658を操作することで、攻撃パターンの候補が複数ページに亘る場合であっても、必要な設定を行うことができる。
【0125】
このような操作によって決定された攻撃パターンに従って、コントローラシステム1に対する攻撃が実施される。その結果は、
図13に示すように、ユーザインターフェイス画面650の評価結果657に表示される。
【0126】
(f2:セキュリティ機能の評価結果の出力)
本実施の形態に従うコントローラシステム1は、攻撃パターンに従って実施された攻撃によって得られるセキュリティ機能に対する評価結果を出力できる。このような評価結果レポートを出力する際のユーザインターフェイス画面の一例を示す。
【0127】
図14は、本実施の形態に係るコントローラシステム1が提供する評価結果の出力に係るユーザインターフェイス画面の一例を示す図である。
図14を参照して、ユーザインターフェイス画面680は、評価結果を出力する先のファイル名の設定を受け付ける入力ボックス682と、出力実行ボタン684とを含む。
【0128】
ユーザは、設定した攻撃パターンに従う攻撃を実施して得られた評価結果を出力するファイル名を入力ボックス682に入力した後、出力実行ボタン684を押下することで、指定されたファイル名に評価結果が出力される。この出力される評価結果は、
図13に示すユーザインターフェイス画面650の評価結果657の内容に加えて、対応する攻撃シナリオおよび実施方法の内容などを含んでいてもよい。
【0129】
<G.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
コントローラシステム(1)であって、
制御対象を制御するための制御演算を実行する制御ユニット(100)と、
前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を担当するセキュリティユニット(200)と、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段(634)と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段(636)とを備える、コントローラシステム。
[構成2]
前記コントローラシステムから取得された装置構成の情報および保護資産の情報に基づいて、前記コントローラシステムに対して想定される1または複数の脅威からなる脅威シナリオを作成する脅威シナリオ作成手段(632)をさらに備える、構成1に記載のコントローラシステム。
[構成3]
前記設定情報は、前記コントローラシステムと外部デバイスとの間でデータ通信を規定するネットワーク接続設定情報を含む、構成2に記載のコントローラシステム。
[構成4]
前記脅威シナリオ作成手段は、前記コントローラシステムが外部デバイスとの間で確立されるコネクションの設定情報に基づいて、前記脅威シナリオを決定する、構成2または3に記載のコントローラシステム。
[構成5]
前記脅威シナリオ作成手段は、前記コントローラシステムにおいて共有される変数の情報に基づいて、前記脅威シナリオを決定する、構成2~4のいずれか1項に記載のコントローラシステム。
[構成6]
前記脅威シナリオ作成手段は、前記コントローラシステムで実行されるユーザプログラムにおいて参照される変数の情報に基づいて、前記脅威シナリオを決定する、構成2~5のいずれか1項に記載のコントローラシステム。
[構成7]
前記攻撃パターン作成手段は、作成した1または複数の前記攻撃パターンを候補としてユーザに提示する(650)とともに、ユーザ操作によって攻撃に用いられる攻撃パターンを決定する、構成1~6のいずれか1項に記載のコントローラシステム。
[構成8]
前記ユーザ操作は、前記1または複数の攻撃パターンの候補のうちいずれの攻撃パターンを選択するのかという指示(660,661)、および、攻撃パターンに含まれる攻撃の度合いを調整する指示(662,663,664)の少なくとも一方を含む、構成7に記載のコントローラシステム。
[構成9]
制御対象を制御するための制御演算を実行する制御ユニット(100)と、前記制御ユニットに接続されてセキュリティ機能を担当するセキュリティユニット(200)とを備えるコントローラシステムに接続されるサポート装置(600)であって、
前記コントローラシステムにおける設定情報を取得するとともに、取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成する攻撃パターン作成手段(634)と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施し、当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価する攻撃実施手段(636)とを備える、サポート装置。
[構成10]
コントローラシステム(1)で実行される評価方法であって、
前記コントローラシステムは、制御対象を制御するための制御演算を実行する制御ユニット(100)と、前記制御ユニットに接続され、前記コントローラシステムに対するセキュリティ機能を担当するセキュリティユニット(200)とを備え、
前記評価方法は、
前記コントローラシステムにおける設定情報を取得するステップ(S101,S110)と、
取得された設定情報に基づいて前記コントローラシステムに対する攻撃パターンを作成するステップ(S111,S112)と、
作成された攻撃パターンに従ってコントローラシステムに対する攻撃を実施するステップ(S120,S121)と、
当該攻撃に対する前記コントローラシステムの挙動に基づいて、前記コントローラシステムに設定されているセキュリティ機能の適否を評価するステップ(S122)とを備える、評価方法。
【0130】
<H.利点>
本実施の形態に係る制御システムによれば、コントローラシステム1に対して設定されるセキュリティ機能の妥当性を、専門知識の乏しいユーザであっても事前に容易に評価できる。
【0131】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0132】
1 コントローラシステム、100 制御ユニット、102,202,302,602 プロセッサ、104,204,304 チップセット、106,206,306 主記憶装置、108,208,308 二次記憶装置、110,210 通信コントローラ、112,212,620 USBコントローラ、114,214,314 メモリカードインターフェイス、115,215,315 メモリカード、116,118,120,216,218 ネットワークコントローラ、122,322 内部バスコントローラ、124,224,324 インジケータ、200 セキュリティユニット、300 セーフティユニット、400 機能ユニット、450 電源ユニット、500 フィールドデバイス、600 サポート装置、604 メインメモリ、606 入力部、608 出力部、610 ストレージ、612 光学ドライブ、614 記録媒体、618 プロセッサバス、630 システム構成入力部、632 脅威シナリオ作成部、634 攻撃パターン作成部、636 攻撃実施部、640,652 攻撃元、641,653 脅威、642,654 攻撃方法、643,655 実施方法、650,680 ユーザインターフェイス画面、651 攻撃対象、656 実施有無、657 評価結果、658 ページ変更ボタン、660,661 チェックボックス、662,663,664 数値ボックス、682 入力ボックス、684 出力実行ボタン、6102 OS、6104 サポートプログラム、6106 脅威分析データベース、6108 攻撃パターンデータベース。