(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-04
(45)【発行日】2022-07-12
(54)【発明の名称】制御システム
(51)【国際特許分類】
G05B 19/05 20060101AFI20220705BHJP
【FI】
G05B19/05 D
(21)【出願番号】P 2019024381
(22)【出願日】2019-02-14
【審査請求日】2020-12-15
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】片岡 仁之
(72)【発明者】
【氏名】永田 雄大
【審査官】黒田 暁子
(56)【参考文献】
【文献】特開2018-185712(JP,A)
【文献】国際公開第2015/001594(WO,A1)
【文献】特開2017-173940(JP,A)
【文献】特開2015-176369(JP,A)
【文献】特開2014-032598(JP,A)
【文献】特開2017-063336(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
制御システムであって、
制御対象を制御するための制御演算を実行する制御ユニットと、
前記制御ユニットに接続され、前記制御システムに対するセキュリティ機能を担当するセキュリティユニットと、を備え、
前記制御ユニットは、前記制御対象を接続する通信ポートと、前記セキュリティユニットを接続する通信コントローラと、を有し、
前記セキュリティユニットは、
前記制御システムの外部のネットワークに接続するネットワークコントローラを含み、
前記制御ユニットは、前記通信コントローラと、前記セキュリティユニットと、前記ネットワークコントローラとを介して、前記外部のネットワークに接続し、
前記セキュリティユニットは、さらに、
前記ネットワークコントローラまたは前記通信コントローラを介した通信の内容を含む前記制御システムの稼働状態を示す状態情報を収集する収集手段と、
収集される前記状態情報に基き、前記制御システムにおけるインシデントを検知する検知手段と、
検知された前記インシデントへの対処の情報を通知する通知手段と、を含む、制御システム。
【請求項2】
前記検知手段は、さらに、
収集される前記状態情報が、複数種類のインシデントのそれぞれに対応の条件のうちいずれかの条件を満たすことに基づき、当該インシデントの種類を検知する、請求項1に記載の制御システム。
【請求項3】
前記検知手段は、さらに、
収集される前記状態情報が、前記インシデントが前記
制御システムのセキュリティにおよぼす影響の深刻度のそれぞれに対応の条件のうちいずれかの条件を満たすことに基づき、当該インシデントの深刻度を検知する、請求項1または2に記載の制御システム。
【請求項4】
前記対処の情報は、前記深刻度に応じた対処の情報を含む、請求項3に記載の制御システム。
【請求項5】
前記通知手段は、さらに、検知された前記深刻度を通知する、請求項3または4に記載の制御システム。
【請求項6】
前記通知手段は、さらに、
収集される前記状態情報および前記深刻度に基く算出値であるセキュリティリスクを通知する、請求項3から5のいずれか1項に記載の制御システム。
【請求項7】
前記対処の情報は、前記セキュリティリスクに応じた対処の情報を含む、請求項6に記載の制御システム。
【請求項8】
前記対処の情報は、前記制御システムの稼働状態を変化させる対処の情報を含む、請求項1から7のいずれか1項に記載の制御システム。
【請求項9】
前記対処の情報は、前記制御ユニットの構成により異なる、請求項1から8のいずれか1項に記載の制御システム。
【請求項10】
前記対処の情報は、前記制御ユニットを備えるネットワークの構成により異なる、請求項1から9のいずれか1項に記載の制御システム。
【請求項11】
前記通知手段は、
前記制御ユニットを含む複数の装置を接続するネットワーク構成の情報に基づき決定した装置に、前記対処の情報を通知する、請求項1から10のいずれか1項に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御対象を制御する制御システムに対するセキュリティ機能に関する。
【背景技術】
【0002】
FA(Factory Automation)の各種設備および各設備に配置される各種装置の制御には、PLC(プログラマブルロジックコントローラ)などの制御装置が用いられる。制御装置は、制御対象の設備や機械に生じる異常を監視するとともに、制御装置自体の異常を監視することも可能である。何らかの異常が検知されると、制御装置から外部に対して何らかの方法で通知がなされる。
【0003】
例えば、特開2002-163015号公報(特許文献1)は、故障監視画面に、各PLC別のボード、シーケンサにおける故障箇所、故障内容、対処方法を表示する故障診断システムを開示する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年のICT(Information and Communication Technology)またはIoTの進歩に伴って、FAの制御装置も様々な外部装置とネットワーク接続されるとともに、制御装置において実行される処理も高度化している。このようなネットワーク化あるいはインテリジェント化に伴って、FAの制御システムにおいて想定され得るセキュリティ上のインシデント(脅威)の種類も増加している。このようなインシデントに対して運転員などの管理者が何ら対処を講じなければ、FAシステムが停止する可能性がある。したがって、管理者からは、各種のインシデントに適切に対処したいとの要望がある。
【0006】
その一方で、従来の制御装置においては、例えば特許文献1などのように、故障箇所、または、制御装置自体に生じた異常を検知するのみであり、FAの制御システムにおけるネットワーク化あるいはインテリジェント化に伴って生じ得るセキュリティ上のインシデントに対処する方法を管理者に通知する仕組みは、何ら提供されていない。
【0007】
本発明は、制御装置および制御システムのネットワーク化あるいはインテリジェント化に伴って生じ得るインシデント(脅威)に応じて対処の情報を通知するという、新たな課題を解決することを一つの目的としている。
【課題を解決するための手段】
【0008】
本開示の一例は、制御システムであって、制御対象を制御するための制御演算を実行する制御ユニットと、制御ユニットに接続され、制御システムに対するセキュリティ機能を担当するセキュリティユニットと、を備え、セキュリティユニットは、制御システムの稼働状態を示す状態情報を収集する収集手段と、収集される状態情報に基き、制御システムにおけるインシデントを検知する検知手段と、検知されたインシデントへの対処の情報を通知する通知手段と、を含む。
【0009】
上述の開示によれば、インシデントを検知して、検知したインシデントに応じて対処の情報を通知することができる。
【0010】
上述の開示において、検知手段は、さらに、収集される状態情報が、複数種類のインシデントのそれぞれに対応の条件のうちいずれかの条件を満たすことに基づき、当該インシデントの種類を検知する。
【0011】
上述の開示によれば、インシデントの種類を検知することができる。
上述の開示において、検知手段は、さらに、収集される状態情報が、インシデントがセキュリティにおよぼす影響の深刻度のそれぞれに対応の条件のうちいずれかの条件を満たすことに基づき、当該インシデントの深刻度を検知する。
【0012】
上述の開示によれば、インシデントが検知された場合に、当該インシデントがセキュリティにおよぼす影響の深刻度も検知することができる。
【0013】
上述の開示において、対処の情報は、深刻度に応じた対処の情報を含む。
上述の開示によれば、インシデントの深刻度に応じて対処するための情報を通知することができる。
【0014】
上述の開示において、通知手段は、さらに、検知された深刻度を通知する。
上述の開示によれば、インシデントが検知された場合に、インシデントがセキュリティにおよぼす影響を定量的な深刻度として通知することができる。
【0015】
上述の開示において、通知手段は、さらに、収集される状態情報および深刻度に基く算出値であるセキュリティリスクを通知する。
【0016】
上述の開示によれば、インシデントが検知された場合に、インシデントがセキュリティにおよぼす影響を深刻度に基づくリスクとして、定量的な値を通知することができる。
【0017】
上述の開示において、対処の情報は、セキュリティリスクに応じた対処の情報を含む。
上述の開示によれば、インシデントについて算出されたセキュリティリスク値に応じて、当該インシデントに対処するための情報を通知することができる。
【0018】
上述の開示において、対処の情報は、制御システムの稼働状態を変化させる対処の情報を含む。
【0019】
上述の開示によれば、対処の情報に、制御システムの稼働状態を変化させる対処の情報を含めることができる。したがって、通知された対処の情報に従い、ユーザーが対処を実施する結果、制御システムの稼働状態は、例えばインシデントの影響が小さくなるように変化する。
【0020】
上述の開示において、対処の情報は、制御ユニットの構成により異なる。
上述の開示によれば、同じインシデントが検知されるとしても、制御ユニットの構成情報により、実施されるべき対処を異ならせることができる。
【0021】
上述の開示において、対処の情報は、制御ユニットを備えるネットワークの構成により異なる。
【0022】
上述の開示によれば、同じインシデントが検知されるとしても、制御ユニットを備えるネットワークの構成により、実施されるべき対処を異ならせることができる。
【0023】
上述の開示において、通知手段は、制御ユニットを含む複数の装置を接続するネットワーク構成の情報に基づき決定した装置に、対処の情報を通知する。
【0024】
上述の開示によれば、インシデントへの対処の情報の通知先となるべき装置を、制御ユニットが接続されるネットワーク構成に基づき決定することができる。
【発明の効果】
【0025】
本発明によれば、制御装置および制御システムのネットワーク化あるいはインテリジェント化に伴って生じ得るインシデント(脅威)に応じて対処の情報を通知するという、新たな課題を解決できる。
【図面の簡単な説明】
【0026】
【
図1】本実施の形態に係る制御システム1の構成例を示す外観図である。
【
図2】本実施の形態に従う制御システム1が備える制御ユニット100のハードウェア構成例を示す模式図である。
【
図3】本実施の形態に従う制御システム1が備えるセキュリティユニット200のハードウェア構成例を示す模式図である。
【
図4】本実施の形態に従う制御システム1が備えるセーフティユニット300のハードウェア構成例を示す模式図である。
【
図5】本実施の形態に従う制御システム1を備える制御システム10の典型例を示す模式図である。
【
図6】本実施の形態に従う制御システム1に接続されるサポート装置600のハードウェア構成例を示す模式図である。
【
図7】本実施の形態に従うセキュリティユニット200が備える機能構成例を示す模式図である。
【
図8】本実施の形態に従うサポート装置600が備える機能構成例を示す模式図である。
【
図9】本発明の実施の形態に係るユーザー情報62の一例を模式的に示す図である。
【
図10】本発明の実施の形態に係る対処DB66の一例を模式的に示す図である。
【
図11】本実施の形態に係る対処DB66の他の例を模式的に示す図である。
【
図12】本実施の形態に係るアタックツリー67の構成の一例を模式的に示す図である。
【
図13】本発明の実施の形態に係るインシデントに対する対処の静的決定の方法を模式的に説明する図である。
【
図14】本発明の実施の形態に係るインシデントに対する対処の動的決定の方法を模式的に説明する図である。
【
図15】
図14(A)のステップR3におけるリスク計算の一例を示すフローチャートである。
【
図16】本発明の実施の形態に係る全体処理の一例を示すフローチャートである。
【
図17】本発明の実施の形態に係るセキュリティエンジン250が実施する所定処理の一例を模式的に示す図である。
【
図18】本発明の実施の形態に係る静的決定による通知処理の一例を示すフローチャートである。
【
図19】本発明の実施の形態に係る動的決定による通知処理の一例を示すフローチャートである。
【
図20】本発明の実施の形態に係る対処の情報の提示方法を説明するための図である。
【
図21】本発明の実施の形態に係る制御ユニット100の構成情報に基づく対処のメッセージ682に切替を例示する図である。
【
図22】本発明の実施の形態に係る対処メッセージの他の例を模式的に示す図である。
【
図23】本発明の実施の形態に係るセキュリティレベルの変化に応じた対処方法の説明する図である。
【
図24】本発明の実施の形態に係る通知68の出力部の一例を模式的に示す図である。
【
図25】本発明の実施の形態に係る通知68の出力部の他の例を模式的に示す図である。
【
図26】本発明の実施の形態に係る通知68の出力態様の一例を模式的に示す図である。
【発明を実施するための形態】
【0027】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0028】
<適用例>
図5を参照して、本発明が適用される場面の一例について説明する。
図5は、本実施の形態に従う制御システム1を備える制御システム10の典型例を示す模式図である。本実施の形態では、制御システム1を、FAに適用する例を示すが、適用対象はFAに限定されず、例えばプラントまたは車両等に適用してもよい。
【0029】
一例として、
図5に示す制御システム10は、FAにおける2つの生産ライン(ラインAおよびラインB)を制御対象とする。典型的には、各ラインは、ワークを搬送するコンベアに加えて、コンベア上のワークに対して任意の物理的作用を与えることが可能なロボットが配置されているとする。
【0030】
ラインAおよびラインBのそれぞれに制御ユニット100が配置されている。ラインAを担当する制御ユニット100に加えて、セキュリティユニット200およびセーフティユニット300が制御システム1を構成する。なお、説明の便宜上、
図5には、機能ユニットおよび電源ユニットの記載を省略している。
【0031】
制御システム1のセキュリティユニット200は、制御対象を制御するための制御演算を実行する制御ユニット100に接続されて、制御システム1に対するセキュリティ機能を担当する。セキュリティユニット200は、制御システム1の稼働状態を示す状態情報を収集し、収集される状態情報に基き、制御システム1におけるインシデントを検知し、検知されたインシデントへの対処の情報をユーザー(保守者,管理者)に対して通知する。
【0032】
ここで、本明細書において、「インシデント」は、何らかのFAの制御システム1に対してセキュリティ上の脅威となり得る兆候,現象または異常を意味する。また、稼働状態を示す状態情報は、外部ネットワーク50との通信を監視する通信監視情報511およびデータベース900のSQL情報161を含む。
【0033】
セキュリティユニット200は、制御システム1の稼働状態について収集される状態情報に基づき、セキュリティ上のインシデントを検知して、ユーザーに対して、検知したインシデントへの対処の情報を通知することができる。これにより、ユーザーは、専門知識がなくとも、インシデントの発生を検知して、その対処を実施することができる。
【0034】
セキュリティユニット200は、インシデントを検知する場合に、インシデントの種類と、インシデントがセキュリティにおよぼす影響の深刻度、および(収集される状態情報および深刻度に基く算出値である)セキュリティリスクを取得し、取得したこれら情報を、対処の情報に追加して通知する。
【0035】
これにより、ユーザーは専門知識がなくとも、発生したインシデントの種類ととともに、セキュリティ上の深刻度およびリスク値を定量的に把握することが可能となる。以下、本実施の形態のより具体的な応用例について説明する。
【0036】
<A.制御システム1>
本実施の形態に従うFAに適用される制御システム1の構成について説明する。
【0037】
図1は、本実施の形態に係る制御システム1の構成例を示す外観図である。
図1を参照して、制御システム1は、制御ユニット100と、セキュリティユニット200と、セーフティユニット300と、1または複数の機能ユニット400と、電源ユニット450とを含む。セキュリティユニット200は、セキュリティガードユニット(SGU:security guard unit)とも呼ばれる。
【0038】
制御ユニット100とセキュリティユニット200との間は、任意のデータ伝送路(例えば、PCI Expressあるいはイーサネット(登録商標)など)を介して接続されている。制御ユニット100とセーフティユニット300および1または複数の機能ユニット400との間は、図示しない内部バスを介して接続されている。
【0039】
制御ユニット100は、制御システム1において中心的な処理を実行する。制御ユニット100は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。後述のセーフティユニット300で実行される制御演算との対比で、制御ユニット100で実行される制御演算を「標準制御」とも称す。
図1に示す構成例において、制御ユニット100は、1または複数の通信ポートを有している。
【0040】
セキュリティユニット200は、制御ユニット100に接続され、制御システム1に対するセキュリティ機能を担当する。
図1に示す構成例において、セキュリティユニット200は、1または複数の通信ポートを有している。セキュリティユニット200が提供するセキュリティ機能の詳細については、後述する。
【0041】
セーフティユニット300は、制御ユニット100とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。セーフティユニット300で実行される制御演算を「セーフティ制御」とも称す。通常、「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。
【0042】
機能ユニット400は、制御システム1による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット400は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。I/Oユニットとしては、例えば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。
【0043】
電源ユニット450は、制御システム1が備える各ユニットに対して、所定電圧の電源を供給する。
【0044】
<B.各ユニットのハードウェア構成例>
次に、本実施の形態に従う制御システム1が備える各ユニットのハードウェア構成例について説明する。
【0045】
(b1:制御ユニット100)
図2は、本実施の形態に従う制御システム1が備える制御ユニット100のハードウェア構成例を示す模式図である。
図2を参照して、制御ユニット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と、を含む。
【0046】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、標準制御に係る制御演算、および各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
【0047】
二次記憶装置108には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
【0048】
通信コントローラ110は、セキュリティユニット200との間のデータの遣り取りを担当する。通信コントローラ110としては、例えば、PCI Expressあるいはイーサネットなどに対応する通信チップを採用できる。
【0049】
USBコントローラ112は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【0050】
メモリカードインターフェイス114は、記憶媒体である例えばメモリカード115を脱着可能(Detachable)に構成される。メモリカードインターフェイス114は、メモリカード115に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【0051】
ネットワークコントローラ116,118,120の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ116,118,120は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
【0052】
内部バスコントローラ122は、制御システム1を構成するセーフティユニット300、または、1または複数の機能ユニット400との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【0053】
インジケータ124は、制御ユニット100の動作状態などを通知するデバイスであり、ユニット表面に配置された1または複数のLED(Light Emitting Diode)などで構成される。
【0054】
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これら提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装されてもよい。あるいは、制御ユニット100の主要部は、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現されてもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0055】
(b2:セキュリティユニット200)
図3は、本実施の形態に従う制御システム1が備えるセキュリティユニット200のハードウェア構成例を示す模式図である。
図3を参照して、セキュリティユニット200は、主たるコンポーネントとして、CPUまたはGPUなどのプロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、通信コントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、ネットワークコントローラ216,218と、インジケータ224と、ディスプレイ225および音声出力のためのスピーカ226と、を含む。
【0056】
プロセッサ202は、二次記憶装置208またはメモリカードなどのメモリカード215に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種セキュリティ機能を実現する。主記憶装置206は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。二次記憶装置208は、例えば、HDD(Hard Disc Drive)またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット200全体としての処理を実現する。
【0057】
二次記憶装置208には、後述するOS2601を含むシステムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセキュリティシステムプログラム2610が格納される。
【0058】
通信コントローラ210は、制御ユニット100との間のデータの遣り取りを担当する。通信コントローラ210としては、制御ユニット100に通信コントローラ210と同様に、例えば、PCI Expressあるいはイーサネットなどに対応する通信チップを採用できる。
【0059】
USBコントローラ212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【0060】
メモリカードインターフェイス214は、メモリカード215が脱着可能に構成される。メモリカードインターフェイス214は、メモリカードなどのメモリカード215に対して制御プログラムまたは各種設定などのデータを書込み、あるいは、メモリカード215から制御プログラムまたは各種設定などのデータを読出すことが可能になっている。
【0061】
ネットワークコントローラ216,218の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ216,218は、イーサネット(登録商標)などの汎用的なネットワークプロトコルを採用してもよい。
【0062】
インジケータ224、ディスプレイ225およびスピーカ226は、セキュリティユニット200からの情報を外部に通知するためにデバイスである。通知される情報は、セキュリティユニット200の動作状態、または制御システム1において検知されたセキュリティ上のインシデントに応じた対処の情報を含む。インジケータ224は、ユニット表面に配置された1または複数のLEDなどで構成される。ディスプレイ225は、ユニット表面に配置されたLCD(Liquid Crystal Display)を含む。スピーカ226は、ユニット表面に配置されて、通知される情報を音声で出力する、またはアラーム音などの管理者の注意喚起のための音声を出力する。
【0063】
メモリカードインターフェイス214は、コンピュータ読取可能なプログラムを非一過的に格納するメモリカード215(例えば、DVD(Digital Versatile Disc)などの光学記憶媒体)から、その中に格納されたプログラムを読取り、主記憶装置206などにインストールする。主記憶装置206に格納されるプログラムは、後述するOS2601に加えてセキュリティシステムプログラム2610を含む。
【0064】
セキュリティユニット200で実行されるセキュリティシステムプログラム2610などは、コンピュータ読取可能なメモリカード215を介してインストールされてもよいが、ネットワーク上のサーバ装置、またはサポート装置600などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るセキュリティユニット200が提供する機能は、OS2601が提供するモジュールの一部を利用する形で実現される場合もある。
【0065】
図3には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セキュリティユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0066】
(b3:セーフティユニット300)
図4は、本実施の形態に従う制御システム1が備えるセーフティユニット300のハードウェア構成例を示す模式図である。
図4を参照して、セーフティユニット300は、主たるコンポーネントとして、CPUまたはGPUなどのプロセッサ302と、チップセット304と、主記憶装置306と、二次記憶装置308と、メモリカードインターフェイス314と、内部バスコントローラ322と、インジケータ324とを含む。
【0067】
プロセッサ302は、二次記憶装置308に格納された各種プログラムを読み出して、主記憶装置306に展開して実行することで、セーフティ制御に係る制御演算、および、各種処理を実現する。チップセット304は、プロセッサ302と各コンポーネントとの間のデータの遣り取りを仲介することで、セーフティユニット300全体としての処理を実現する。
【0068】
二次記憶装置308には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセーフティプログラムが格納される。
【0069】
メモリカードインターフェイス314は、メモリカード315を脱着可能に構成される。メモリカードインターフェイス314は、メモリカード315に対してセーフティプログラムや各種設定などのデータを書込み、あるいは、メモリカード315からセーフティプログラムや各種設定などのデータを読出すことが可能になっている。
【0070】
内部バスコントローラ322は、内部バスを介した制御ユニット100との間のデータの遣り取りを担当する。
【0071】
インジケータ324は、セーフティユニット300の動作状態を含む各種の情報を通知するデバイスであり、ユニット表面に配置された1または複数のLEDなどで構成される。
【0072】
図4には、プロセッサ302がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セーフティユニット300の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0073】
<C.制御システム10>
再び
図5を参照して、本実施の形態に従う制御システム1を備える制御システム10の典型例について説明する。なお、説明の便宜上、
図5には、機能ユニット400および電源ユニット450の記載を省略している。
【0074】
制御システム1のセキュリティユニット200は、通信ポート242,243(
図3のネットワークコントローラ216)を介して第1ネットワーク2に接続されている。第1ネットワーク2には、通信ポート242を介してSCADA(Supervisory Control And Data Acquisition)装置700が接続され、また、通信ポート243を介してサポート装置600が接続されている。さらに、セキュリティユニット200は、通信ポート242を介して、CPUなどのプロセッサ(図示せず)を備えるルーター51が接続される。ルーター51は、セキュリティユニット200と外部ネットワーク50との間の通信を中継する機能およびFW(Fire Wall)52の機能などを備える。FW52は、ユーザー名、パスワード、電子的な証明書などを用いた認証処理、中継するデータ(コンテンツ)のウイルスチェック、ホワイトリストまたはブラックリストを用いたマッチングによる不正通信を検知する処理などを実施する。これにより、ルーター51は、制御システム1から外部ネットワーク50へ送信されるデータのうち、認証またはマッチングに成功した正当なデータのみを外部ネットワーク50へ中継し、また、外部ネットワーク50から制御システム1へ送信されるデータのうち、認証またはマッチングに成功した正当なデータのみを制御システム1へ中継する。
【0075】
ルーター51は、EIP(EtherNet/IP)のアクセスを監視する通信監視情報511を出力する。ルーター51は、情報認証またはマッチングに成功しなかった、いわゆる不正アクセスの可能性があるデータから通信監視情報511を生成し、生成した通信監視情報511を、ポート242を介してセキュリティエンジン250に送信する。また、ポート243もEIPのアクセスを監視する通信監視情報511を出力する。ポート243は、例えばNIC(Network Interface Car)を含み、ポート243を介して内部の第1ネットワーク2から受信するデータのうち、認証またはマッチングに成功しなかった、いわゆる不正アクセスの可能性があるデータから通信監視情報511を生成し、生成した通信監視情報511をセキュリティエンジン250に送信する。
【0076】
通信監視情報511は、ルーター51から出力される外部ネットワーク50からの不正アクセスの可能性がある各データに関する情報、またはポート243から出力される内部の第1ネットワーク2からの不正アクセスの可能性がある各データに関する情報を含む。このような情報は、例えば、データの送信元および宛先(アドレスなど)、データ内容(ペイロードなど)および通信時間などを含む。
【0077】
サポート装置600は、少なくとも制御ユニット100にアクセス可能になっており、制御システム1に含まれる各ユニットで実行されるプログラムの作成、デバッグ、各種パラメータの設定などの機能をユーザーへ提供する。
【0078】
SCADA装置700は、制御システム1での制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従って、制御システム1に対して内部コマンドなどを生成する。SCADA装置700は、制御システム1が扱うデータを収集する機能も有している。
【0079】
制御システム1の制御ユニット100は、通信ポート142(
図2のネットワークコントローラ116)を介して第2ネットワーク4に接続されている。第2ネットワーク4には、HMI(Human Machine Interface)800およびデータベース900が接続され得る。
【0080】
HMI800は、パーソナルコンピュータに相当する。HMI800は、制御システム1での制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従って、制御システム1に対して内部コマンドなどを生成する。HMI800は、FAの保守者が携帯可能に構成され得る。データベース900は、制御システム1から送信される各種データ(例えば、各ワークから計測されたトレーサビリティに関する情報など)を収集する。
【0081】
制御システム1の制御ユニット100は、通信ポート144(
図2のネットワークコントローラ118)を介して、1または複数のフィールドデバイス500と接続されている。フィールドデバイス500は、制御対象から制御演算に必要な各種情報を収集するセンサや検出器、および、制御対象に対して何らかの作用を与えるアクチュエータなどを含む。
図5に示す例では、フィールドデバイス500は、ワークに対して何らかの外的な作用を与えるロボット、ワークを搬送するコンベヤ、フィールドに配置されたセンサやアクチュエータとの間で信号を遣り取りするI/Oユニットなどを含む。
【0082】
同様に、ラインBを担当する制御ユニット100についても同様に、通信ポート144(
図2のネットワークコントローラ118)を介して、1または複数のフィールドデバイス500と接続されている。
【0083】
ここで、制御システム1の機能面に着目すると、制御ユニット100は、標準制御に係る制御演算を実行する処理実行部である制御エンジン150と、外部装置との間でデータを遣り取りする情報エンジン160とを含む。セキュリティユニット200は、後述するようなセキュリティ機能を実現するためのセキュリティエンジン250を含む。セーフティユニット300は、セーフティ制御に係る制御演算を実行する処理実行部であるセーフティエンジン350を含む。
【0084】
各エンジンは、各ユニットのプロセッサなどの任意のハードウェア要素または各種プログラムなどの任意のソフトウェア要素、あるいは、それら要素の組合せによって実現される。各エンジンは任意の形態で実装できる。
【0085】
さらに、制御システム1は、エンジン同士の遣り取りを仲介するブローカー170を含む。ブローカー170の実体は、制御ユニット100およびセキュリティユニット200の一方または両方に配置してもよい。
【0086】
制御エンジン150は、制御対象を制御するための制御演算の実行に必要な変数テーブルおよびファンクションブロック(FB)などを保持している。変数テーブルに格納される各変数は、I/Oリフレッシュ処理により、フィールドデバイス500から取得された値で周期的に収集されるとともに、フィールドデバイス500へ各変数の値が周期的に反映される。制御エンジン150での制御演算のログは二次記憶装置108のログデータベース180に格納されてもよい。
【0087】
情報エンジン160は、制御ユニット100が保持するデータ(変数テーブルで保持される変数値)に対して任意の情報処理を実行する。典型的には、情報エンジン160は、制御ユニット100が保持するデータを周期的にデータベース900などへ送信する処理を含む。このようなデータの送信には、SQLなどが用いられる。
【0088】
また、情報エンジン160は、データベース900のアクセス(読出,書込)のために発行されるSQLを監視する。具体的には、発行SQLを予め登録された正当パターンとマッチングし、照合不一致の結果を含むSQL情報161を生成し、ブローカー170を経由してセキュリティエンジン250に出力する。したがって、SQL情報161は、不正SQLが発行されたことを示す情報、すなわちデータベース900の改ざんを可能にするSQLインジェクションの情報を示す。本実施の形態では、SQL情報161は、例えば照合不一致のSQL、当該SQLの発行時間および発行元の情報を含む。
【0089】
セキュリティエンジン250は、制御システム1においてセキュリティ上のインシデントが発生したか否かを検知する処理を実施する検知手段と、検知された当該インシデントに対してユーザ(管理者)がとるべき当該インシデントの種類に応じた対処の情報の通知を出力する処理を実施する通知手段とを実現する。また、セキュリティエンジン250は、検知されたインシデントの種類に応じた処理などを実行する。セキュリティエンジン250の挙動は、例えば二次記憶装置208にセキュリティ情報260として保存される。
【0090】
セキュリティエンジン250は、セキュリティ上のインシデントまたはインシデントに関する何らかのイベントが発生したこと、あるいは発生しているセキュリティ上のインシデントまたはイベントのレベルなどを、インジケータ224で通知する。
図5では、例えば通知を出力するデバイスとして、インジケータ224のみを例示したが、インジケータ224のみに限定されず、ディスプレイ225またはスピーカ226であってもよい。
【0091】
セーフティエンジン350は、制御システム1において何らかの不正侵入が発生したか否かを検知する。セーフティエンジン350は、制御ユニット100を介して、セーフティ制御に係る制御演算の実行に必要なセーフティI/O変数を取得および反映する。セーフティエンジン350でのセーフティ制御のログは二次記憶装置308のログデータベース360に格納されてもよい。
【0092】
ブローカー170は、例えば、セキュリティエンジン250が何らかのインシデントまたはイベントを検知すると、制御エンジン150、情報エンジン160およびセーフティエンジン350の動作などを変化させるよう構成されてもよい。
【0093】
<D:サポート装置600の構成>
本実施の形態では、サポート装置600が制御システム1に対する各種の設定を行う。各種の設定には、インシデントの検知およびインシデントの対処に関する情報の設定が含まれる。
【0094】
図6は、本実施の形態に従う制御システム1に接続されるサポート装置600のハードウェア構成例を示す模式図である。サポート装置600は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
【0095】
図13を参照して、サポート装置600は、プロセッサ602と、メインメモリ604と、入力部606と、出力部608と、ストレージ610と、光学ドライブ615と、USBコントローラ620とを含む。これらのコンポーネントは、プロセッサバス618を介して接続されている。
【0096】
プロセッサ602は、CPUやGPUなどで構成され、ストレージ610に格納されたプログラム(一例として、OS6102およびサポートプログラム6104)を読出して、メインメモリ604に展開して実行することで、制御システム1に対する設定処理などを実現する。
【0097】
メインメモリ604は、DRAMまたはSRAMなどの揮発性記憶装置などで構成される。ストレージ610は、例えば、HDDまたはSSDなどの不揮発性記憶装置などで構成される。
【0098】
ストレージ610には、基本的な機能を実現するためのOS6102に加えて、サポート装置600としての機能を提供するためのサポートプログラム6104が格納される。すなわち、サポートプログラム6104は、制御システム1に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置600を実現する。
【0099】
入力部606は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部608は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ602からの処理結果を含む各種情報を出力する。
【0100】
USBコントローラ620は、USB接続を介して、制御システム1などとの間でデータを遣り取りする。
【0101】
図6には、プロセッサ602がプログラムを実行することで、サポート装置600として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0102】
<E:インシデント検知と対処のための機能構成>
本実施の形態に係るインシデント検知と対処のための機能を、
図7を参照して説明する。
図7は、本実施の形態に従うセキュリティユニット200が備える機能構成例を示す模式図である。
図7を参照して、セキュリティユニット200は、記憶部209(二次記憶装置208または主記憶装置206を含んで構成される記憶部209)は、インシデントを検知するためにインシデントの種類毎のアタックツリー67、インシデントの種類毎の対処の情報を登録する対処DB66、OS2601、セキュリティシステムプログラム2610、および制御システム1にネットワーク接続される装置を識別する情報を含むネットワーク構成情報2620を格納する。また、記憶部209は、出力される(または出力済)通知68を保持(格納)するための領域207、およびセキュリティユニット200が収集する情報を格納する領域208を含む。また、記憶部209は、後述するテーブル221を格納する。
【0103】
領域208には、外部情報71、SGU内部情報72およびPLC状態情報73が格納される。外部情報71は、制御システム1の外部において取得される情報であって、本実施の形態では、例えばルーター51からの通信監視情報511、情報エンジン160からのSQL情報161、外部ネットワーク50を制御システム1に接続/切断しているかの情報などを含む。
【0104】
SGU内部情報72は、セキュリティユニット200の状態情報(正常、異常)およびメモリカード215の脱着の状態などの情報を含む。セキュリティユニット200の状態情報は、例えばプロセッサの処理負荷の大きさが閾値を超えていれば異常を示し、閾値以下であれば正常を示す。
【0105】
PLC状態情報73は、制御ユニット100の状態情報(正常、異常など)およびメモリカード115の脱着の状態などの情報を含む。制御ユニット100の状態情報は、例えばプロセッサの処理負荷の大きさが閾値を超えていれば異常を示す、閾値以下であれば正常を示す。
【0106】
セキュリティシステムプログラム2610は、セキュリティエンジン250を実現するための情報収集プログラム2611、インシデント検知プログラム2612、通知処理プログラム2613、および通知出力プログラム2614を含む。
【0107】
プロセッサ202は、OS2601の元でセキュリティシステムプログラム2610を周期的に実行することによりセキュリティエンジン250を実現する。この実行周期は、例えば制御ユニット100の制御プログラムの実行周期に同期する。
【0108】
セキュリティエンジン250は、情報収集プログラム2611を実行することで実現される情報収集部20、インシデント検知プログラム2612を実行することで実現されるインシデント検知部21、通知処理プログラム2613が実行されることで実現される通知処理部22、および通知出力プログラム2614を実行することで実現される通知出力部23を含む。通知処理部22および通知出力部23は、通知手段を構成する。
【0109】
情報収集部20は、外部情報71(通信監視情報511またはSQL情報161を含む)、セキュリティユニット200のSGU内部情報72、およびブローカー170を介して制御ユニット100からPLC状態情報73を収集(受信)し、収集した情報を領域208に格納する。情報収集部20は周期的に、これら情報を収集するので、領域208には常に最新の情報が格納される。
【0110】
インシデント検知部21は、領域208の情報をセキュリティインシ上のインシデントの種類毎のアタックツリー67と比較し、比較の結果に基き、制御システム1においてインシデントが発生したかの検知、およびインシデントの種類を検知(判断)する。このインシデント検知の詳細は後述する。
【0111】
通知処理部22は、インシデント検知部21の検知結果に基き対処DB66を検索し、検索の結果に従い、対処DB66から、検知されたインシデントに応じた対処の情報を読出し、対処情報の通知68を生成する。また、通知処理部22は、通知68を記憶部209の領域207に格納する。通知68は、識別子(インシデントの種類、発生した時間、後述する深刻度Phiおよびリスク値など)681と、メッセージ682を含む。通知出力部23は、通知68を出力するようにインジケータ224、ディスプレイ225およびスピーカ226などを含む出力部を制御する。また、通知出力部23は、メッセージ682を含む通知68を、インシデント検知部21により対応のインシデントの検知がなされた時系列に出力するよう出力部を制御する。
【0112】
本実施の形態では、メッセージ682は、インシデントに適切に対処するためのガイダンスまたはインシデントへの何らかの対策をガイドする情報を示す。対処または対策は、制御システム1に対する操作を含み得る。したがって、メッセージ682は、制御システム1の稼働状態を変化させる対処または対策の情報を含み得る。
【0113】
これにより、インシデントが検知された場合は、ユーザーは、出力部を介して出力される対処の情報(ガイダンスなどのメッセージ682)から、最新のガイダンスを確認することができ、またガイドされる対処の行動をすることで、インシデントに対処するよう制御システム1を、稼働状態を変化させながら稼働させることができる。また、対処の情報は、インシデントの検知時間に従い時系列に出力され得て、ユーザーは時系列に変化するインシデントに対処することが可能となる。
【0114】
<F:対処DBとアタックツリーおよび生成のための機能構成>
本実施の形態に係る対処DB66とアタックツリー67は、サポート装置600により作成されて、セキュリティユニット200に転送される。
図8は、本実施の形態に従うサポート装置600が備える機能構成例を示す模式図である。
【0115】
図8を参照して、サポート装置600のストレージ610は、サポート装置600において生成された対処DB66およびインシデントの種類毎のアタックツリー67を格納するとともに、関連する情報を格納する。関連する情報は、制御システム1を管理するユーザ(またはインシデントに対処可能なユーザ)に関して設定されたユーザー情報62、制御システム1についてのネットワーク構成情報63および制御ユニット100の構成を示すPLC構成情報65を含む。
【0116】
さらに、ストレージ610に、OS6102のもとで実行されるサポートプログラム6104は、対処DB生成プログラム611、アタックツリー生成プログラム612および転送プログラム613を含む。
【0117】
プロセッサ602は、対処DB生成プログラム611を実行することで実現される対処DB生成部621、アタックツリー生成プログラム612を実行することで実現されるアタックツリー生成部623、および転送プログラム613を実行することで実現される転送部624を備える。
【0118】
対処DB生成部621は、入力部606を介して受付けるユーザー操作に従い、対処DB66を生成する。対処DB生成部621は、ユーザー情報62を出力部608のディスプレイに表示する。したがって、ユーザーは、ユーザー情報62を参照しつつ、対処DB66を生成するための情報の入力操作を実施することができる。また、対処DB生成部621は、ネットワーク構成情報63に従い、対処DB66の内容(メッセージ682など)を異ならせる。また、対処DB生成部621は、PLC構成情報65に従い、対処DB66の内容(メッセージ682など)を異ならせる。
【0119】
図9は、本発明の実施の形態に係るユーザー情報62の一例を模式的に示す図である。
図10は、本発明の実施の形態に係る対処DB66の一例を模式的に示す図である。
図9を参照して、ユーザー情報62は、インシデントの深刻度Phのそれぞれに関連付けて、当該深刻度Phi(i=1,2,3、・・・)であるインシデントを通知またはインシデントに対処するべきユーザーの識別子62a、当該ユーザーが属する組織名62b、ユーザーと通信するための電話番号62cおよび電子メールのアドレス62dを含む。
【0120】
本実施の形態では、深刻度Phiは、インシデントにより、制御システム1のセキュリティに及ぼされる危険度(損失が及ぶ可能性の程度)、緊急度(対処を急がなければならない程度)などの影響の程度を表す。
図9の下段に示されるように深刻度Phiは例えば「高」(Ph3)、「中」(Ph2)および「低」(Ph1)のいずれかをとり得る。また、
図9の下段では、深刻度Phiの各レベルに関連付けて、当該レベルの深刻度Phiが検出された場合に対処の通知がなされるタイミングおよび当該対処が実施されることで制御システム1が移し得る状態などが示される。なお、本実施の形態では、深刻度をPh1~Ph3の3段階としているが、段階は3段階に限定されない。
【0121】
(f1.対処DBの構成)
図10を参照して、対処DB生成部621がユーザー操作に基づき生成する対処DB66は、想定されるインシデントの種類680毎に、当該種類に関連付けて、インシデントの深刻度Phiと、各深刻度Phiを細分化した値で示すリスク値681および対処のメッセージ682とを含む。
図10では、例えば、“なりすまし”のインシデントについての対処DBが示されている。
図10に示すように、各深刻度Phi(リスク値681)が高くなるほど、メッセージ682は、通知の宛先としてより上位組織の責任者(ユーザー)を指定するデータが含まれ、また、より高い危険度または緊急度を示すメッセージが含まれるように対処DB66が生成される。なお、後述するように、リスク値681は、セキュリティユニット200による動的決定が実施される場合に参照される。
【0122】
図11は、本実施の形態に係る対処DB66の他の例を模式的に示す図である。本実施の形態に係る制御システム1における想定されるインシデントは、
図10の“なりすまし”に限定されず、
図11に示すように、”なりすまし”に追加して、“DoS攻撃”および“改ざん”などのインシデントに対応した対処DBも生成することができる。
図11の対処DB66も、インシデント毎に、当該インシデントの各深刻度Phi(リスク値681)が高くなるほど、メッセージ682は、通知の宛先としてより上位組織の責任者(ユーザー)を指定するデータが含まれ、また、より高い危険度または緊急度を示すメッセージが含まれるように生成される。
【0123】
(f2.アタックツリーの構成)
アタックツリー生成部623は、入力部606を介したユーザー操作に基づきアタックツリー67を生成する。
図12は、本実施の形態に係るアタックツリー67の構成の一例を模式的に示す図である。アタックツリー生成部623は、インシデントの種類毎にアタックツリー67を生成する。
図12には、例えば、“DoS攻撃”に対応のアタックツリー67が示される。
図12のアタックツリー67は、3階層(深刻度Ph1~Ph3)の深さを有した木構造で示される。この木構造は、階層毎に配置される葉要素671、672および673、ならびに木構造の最上位の要素である根要素670を含む。階層間の葉要素どうし、および最上位階層の葉要素と根要素670どうしは、枝675で繋がれる。
図12のアタックツリー67では、各葉要素には、制御システム1で発生し得るイベントであって、当該インシデント(“DoS攻撃”)の要因となり得るイベントが発生したことを判定するための条件が割当てられる。
【0124】
図12のアタックツリー67によれば、各葉要素に割当てられる条件は、通信ポートに対する同一送信元からのデータ受信であって、制御システム1に対する不正アクセスの可能性があるデータの単位時間当たりの受信回数に基づく条件を示す。この不正アクセスの有無と単位時間当たりの回数は、ルーター51からの通信監視情報511に基づくことで取得することができる。例えば、深刻度Ph1の葉要素673の条件(K回≦単位時間あたりの不正アクセス回数<M回)が満たされると、インシデントは深刻度Ph1の状態となる。さらに、不正アクセス回数が増加すると、枝675を辿り上位階層(深刻度Ph2)の葉要素672の条件が判断される。例えば、深刻度Ph2の葉要素672の条件(M回≦単位時間あたりの不正アクセス回数<N回)が満たされると、インシデントは深刻度Ph2の状態となる。さらに、不正アクセス回数が増加すると、枝675を辿り深刻度Ph3の葉要素671の条件(N回≦単位時間あたりの不正アクセス回数)が満たされると、インシデントは深刻度Ph3の状態となる。このように、アタックツリー67の下位階層から上位階層へ枝675を辿りながら各階層の葉要素の条件、すなわち各深刻度Phiに対応の条件が満たされるか否かを判定することにより、当該アタックツリー67のインシデント(“DoS攻撃”)の深刻度Phiを決定することができる。
【0125】
同様にして、“改ざん”に対応のアタックツリー67も生成することができる。“改ざん”のアタックツリー67では、各葉要素に割当てられる深刻度Phiに対応する条件は、例えば、データベース900を不正操作する可能性があるSQLインジェクションの単位時間当たりに発行された回数に基づく条件を示す。インシデント検知部21は、SQLインジェクションの発行の有無と単位時間当たりの発行回数は、情報エンジン160からのSQL情報161に基づくことで取得する。このように、“改ざん”のアタックツリー67においても、下位階層から上位階層へ枝675を辿りながら、SQL情報161が各階層の葉要素における深刻度Phiに対応の条件を満たすか否かを判定することにより、当該アタックツリー67のインシデント(“改ざん”)の深刻度Phiを決定することができる。
【0126】
なお、
図12に示すアタックツリー67の木構造は例示にすぎず、階層の数、葉要素の数などは変更可能である。また、他の種類のインシデント(例えば、“なりすまし”)であっても、アタックツリー生成部623は、
図12と同様のアタックツリー67を生成することができる。
【0127】
対処DB生成部621が生成した対処DB66およびアタックツリー生成部623が生成したアタックツリー67は、ストレージ610に格納される。また、転送部624は、対処DB66およびアタックツリー67を、セキュリティユニット200に転送する。セキュリティユニット200は、転送部624から、各種のインシデントについての対処DB66およびアタックツリー67を受信し、
図7の記憶部209に格納する。
【0128】
<G.インシデント検知部21の検知方法>
本実施の形態に係るセキュリティユニット200によるインシデントの検知の方法を説明する。本実施の形態に係るインシデントに対する対処の情報(メッセージ682)を、静的に決定する静的決定と、動的に決定する動的決定を含む。ユーザーがセキュリティユニット200に対し操作することで、セキュリティユニット200に静的決定または動的決定のいずれかを設定する(切り替える)ことができる。静的決定は、制御システム1の稼働状態を示す状態情報のうちのインシデントを検知するための所定情報を用いて判定した深刻度Phiに基づき対処を決定する方法である。これに対して、動的決定は所定情報に基づく深刻度Phiと稼働状態を示す状態情報とを用いてインシデントの深刻度(後述するリスク値681)を検知する方法である。
【0129】
図13は、本発明の実施の形態に係るインシデントに対する対処の静的決定の方法を模式的に説明する図である。
図14は、本発明の実施の形態に係るインシデントに対する対処の動的決定の方法を模式的に説明する図である。
図13と
図14では、インシデントとして例えば“DoS攻撃”のケースが例示される。
【0130】
(g1.静的決定)
図13(A)は、
図12のアタックツリー67を簡略化されたものであり、各階層(深刻度Ph1~Ph3の各階層)の葉要素のみを示す。
図13(B)は、“DoS攻撃”の対処DB66のうち、リスク値681が省略されて、インシデントの種類680、深刻度Phおよびメッセージ682の項目を含んでいる。静的決定が実施される場合、インシデント検知部21は、情報収集部20により収集された通信監視情報511に基き
図13(A)のアタックツリー67の各階層の条件が満たされるかを判断し、判断結果に基づき枝675を辿ることで深刻度Phiを判断する。通知処理部22は、インシデント検知部21からの出力(すなわち、インシデントの種類(“DoS攻撃”)と深刻度Phi)に基き
図13(B)のインシデントの種類(“DoS攻撃”)に対応した対処DB66を検索する。通知処理部22は、検索により、対処DB66から深刻度Phiに対応したメッセージ682を読出す。通知出力部23は、通知処理部22の出力(メッセージ682)を出力する。
【0131】
このように静的決定によれば、稼働状態を示す状態情報のうちインシデントの検知のための所定情報(例えば、通信監視情報511)のみを用いてインシデント(種類と深刻度Phi)が検知されて、ユーザーに対して深刻度Phiに一意に対応付けられた対処の情報(メッセージ682)を通知することができる。
【0132】
(g2.動的決定)
これに対して、動的決定が実施される場合は、静的決定と同様にして深刻度Phiが判定されるが、判定された深刻度Phiに応じた対処の情報を、情報収集部20が収集する状態情報により異ならせることができる。このような動的決定を、
図14を参照して説明する。
【0133】
図14(A)は、動的決定によるリスク値681の算出と、対処の情報(メッセージ682)の決定の手順を持模式的に示すフローチャートである。
図14(B)は、“DoS攻撃”の対処DB66であって、インシデントの種類680、深刻度Phi、リスク値681およびメッセージ682の項目を含んでいる。各深刻度Phiのリスク値681は、深刻度Phiを複数のレベルに細分化した値であって、リスク値681の各レベルに、メッセージ682が対応付けられている。
【0134】
図14(A)を参照して、まず、インシデント検知部21は
図13(A)のアタックツリー67と所定情報(通信監視情報511)とを用いてインシデントの種類と深刻度Phiを検知する(ステップR1)。この検知は、上記に述べた静的決定と同様である。
【0135】
次に、通知処理部22は、稼働状態の情報に基づきリスク値681を計算する(ステップR3)。本実施の形態では、この稼働状態の情報は、例えば外部情報71、SGU内部情報72およびPLC状態情報73を含む。ステップR3のリスク計算の詳細は後述する。
【0136】
通知処理部22は、ステップR3による算出されたリスク値681に基き
図14(B)の対処DB66を検索し、対処DB66から当該リスク値681に対応した対処の情報(メッセージ682)を読出す(ステップR5)。通知出力部23は、対処DB66から読出された対処の情報を、出力部を介して通知する(ステップR7)。
【0137】
(g2-1.リスク値の計算)
図15は、
図14(A)のステップR3におけるリスク計算の一例を示すフローチャートである。
図15を参照して、リスク値681の算出を説明する。まず、通知処理部22は、リスク計算のための変数kに値0をセットする(ステップR31)。通知処理部22は、インシデント検知部21により検出されたインシデントの種類を判定する(ステップR33)。種類は“DoS攻撃”と判断されるとステップR35に移行し、“改ざん”と判断されるとステップR49に移行し、“なりすまし”と判断されるとステップR63に移行する。ここでは、“DoS攻撃”と“改ざん”のリスク値の算出を説明するが、“なりすまし”であっても、同様の手順でリスク値681を算出することができる。
【0138】
まず、“DoS攻撃”の場合、通知処理部22は、外部情報71に基き制御システム1に外部ネットワーク50が接続されているか否かを判断する(ステップR35)。接続されていると判断すると(ステップR35でYES)、通知処理部22は変数kの値に10を加算(k=k+10)し(ステップR39)、接続されていないと判断すると(ステップR35でNO)、通知処理部22は変数kの値に5を加算(k=k+5)する(ステップR37)。
【0139】
また、通知処理部22は、SGU内部情報72またはPLC状態情報73に基きプロセッサの負荷が高いか否かを判断する(ステップR41)。負荷が高いと判断すると(ステップR41でYES)、通知処理部22は変数kの値に5を加算(k=k+5)し(ステップR45)、負荷は高くないと判断すると(ステップR41でNO)、通知処理部22は変数kの値に0を加算(k=k+0)する(ステップR43)。その後、通知処理部22は、深刻度Phiの値(i=1、2、3のいずれか)を用いて(リスク値=i×k)を算出する(ステップR47)。その後、元の処理に戻る。
【0140】
同様に、“改ざん”の場合、通知処理部22は、外部情報71に基き制御システム1に外部ネットワーク50が接続されているか否かを判断し(ステップR49)、接続されていると判断すると(ステップR49でYES)、変数kの値に10を加算(k=k+10)し(ステップR53)、接続されていないと判断すると(ステップR49でNO)、変数kの値に5を加算(k=k+5)する(ステップR51)。
【0141】
また、通知処理部22は、SGU内部情報72またはPLC状態情報73に基き、制御システム1に外部から装置(PCまたは外部記憶媒体)などが装着されているかを判断する(ステップR55)。装着されていると判断すると(ステップR55でYES)、通知処理部22は変数kの値に5を加算(k=k+5)し(ステップR59)、装着されていないと判断すると(ステップR55でNO)、通知処理部22は変数kの値に0を加算(k=k+0)する(ステップR57)。その後、通知処理部22は、深刻度Phiの値(i=1、2、3のいずれか)を用いて(リスク値=i×k)を算出する(ステップR61)。その後、元の処理に戻る。
【0142】
このように、リアルタイムに収集される稼働状態の情報を用いることで、インシデントの種類およびその深刻度Phiに応じたリスク値681を算出することができる。また、インシデントの種類に応じて、算出に用いる稼働状態を示す情報の種類を異ならせることで、インシデントの種類に応じたリスク値の算出が可能となる。
【0143】
例えば、“DoS攻撃”では、インターネットを含む外部ネットワーク50が攻撃のルートとなっている場合は、そうでない場合に比較して一般的にセキュリティに及ぼされるリスクが大きい。したがって、
図15では、外部情報71から外部ネットワーク50が接続されていると判断される場合は(ステップR35でYES)、外部ネットワーク50が接続されていない場合に比較して、リスク値を算出するための係数(変数k)に大きい値を設定する(ステップR39)。また、“DoS攻撃”では、攻撃を受けている装置のリソースが過剰に消費されてプロセッサの負荷が高くなり、本来の制御プログラムの実行に悪影響が及ぶリスクがある。したがって、
図15では、プロセッサの負荷が高い場合は(ステップR41でYES)、そうでない場合に比較して、リスク値を算出するための係数(変数k)に大きい値を設定する(ステップR45)。同様に、“改ざん”においても、外部ネットワーク50が接続されている場合(ステップR49でYES)および外部装置または記憶媒体が装着されている場合(ステップR55でYES)は、そうでない場合に比較して、リスク値を算出する係数(変数k)に大きい値を設定する(ステップR53、ステップR59)。
【0144】
このように、情報収集部20が制御システム1の稼働中に周期的に稼働状態の情報を収集することで、セキュリティエンジン250は、セキュリティエンジン250の処理と同時に(リアルタイムに)収集される稼働状態の情報を用いてリスク値681を算出することができる。したがって、インシデントの深刻度Phiに応じたリスク値681を制御システム1の稼働状態に応じた値に動的に決定することができ、また、インシデントの種類のリスク値681に応じた通知68も動的に切替えて提供することができる。
【0145】
<H.全対処理>
図16は、本発明の実施の形態に係る全体処理の一例を示すフローチャートである。セキュリティユニット200のCPU201は、
図16の処理を、周期的に繰り返し実行する。まず、インシデント検知部21は、情報収集部20が収集する情報のうち、所定情報に基づきアタックツリー67に従い、インシデントの有無を検知する(ステップT1)。インシデントが検知されない場合(ステップT1でNO)、処理は終了するが、検知された場合(ステップT1でYES)、インシデント検知部21は、アタックツリー67を辿ることによりインシデントの種類および深刻度Phiを決定する(ステップT3)。通知処理部22は、インシデント検知部21からの出力に基づき、対処DB66を検索することにより、対応する対処の情報(メッセージ682)を読出す(ステップT5)。通知出力部23は、読出された対処の情報を、出力部を介して通知する(ステップT7)。ユーザーは出力部を介して通知された対処の情報に従い、インシデントに対して対処を実施する(ステップT13)。これにより、制御システム1のセキュリティのレベルが変更される。
【0146】
セキュリティエンジン250は、所定処理を実施するか否かを判断する(ステップT9)。例えば、この判断はユーザー操作に基づき実施される。所定処理を実施しないと判断したとき(ステップT9でYES)処理は終了するが、実施すると判断した場合(ステップT9でNO)、所定処理を実施する(ステップT11)。
【0147】
図17は、本発明の実施の形態に係るセキュリティエンジン250が実施する所定処理の一例を模式的に示す図である。所定処理は、制御システム1を備えるネットワーク構成により異ならせることができる。例えば、
図17(A)のように、外部ネットワーク50には、1台の制御システム1が接続されるネットワーク構成の場合は、通常時は、制御システム1はログ(インシデント検知のための情報(外部情報71、SGU内部情報72およびPLC状態情報73など)を外部ネットワーク50上のクラウドサーバ(図示せず)に転送して格納する(ステップSS1)。インシデントが検知される場合に、ステップT11の所定処理では、セキュリティエンジン250は外部ネットワーク50との接続を完全に遮断し(ステップSS3)、当該ログをトレーサビリティのために記憶部209の所定領域に格納する(ステップSS2)。また、
図17(B)のように、複数台(例えば2台)の制御システム1が外部ネットワーク50に接続されるネットワーク構成の場合は、通常時は、各制御システム1はログ(インシデント検知のための情報(外部情報71、SGU内部情報72およびPLC状態情報73など)を外部ネットワーク50上のクラウドサーバ(図示せず)に転送して格納する。インシデントが検知される場合に、ステップT11の所定処理では、セキュリティエンジン250は外部ネットワーク50と断続的に接続する(ステップSS4)ことで、インシデントが検知されていない他の制御システム1(制御ユニット100)には、外部ネットワーク50に接続できる環境を提供することができて、他の制御システム1の運転に対する影響を少なくできる。
【0148】
上記のステップT5では、上記に述べた静的決定または動的決定に従い対処の情報(メッセージ682)が決定(読出)される。この具体的な処理を、
図18と
図19を参照し説明する。
【0149】
(h1.静的決定による通知処理)
まず、静的決定を含む通知処理を説明する。
図18は、本発明の実施の形態に係る静的決定による通知処理の一例を示すフローチャートである。
図18を参照して、通知処理部22による静的決定を含む処理を説明する。まず、インシデント検知部21は、所定情報(通信監視情報511、またはSQL情報161など)に基き、アタックツリー67に従いインシデントの発生の有無を検知するとともに、インシデントの種類および深刻度Phiを決定する(ステップS3)。
【0150】
通知処理部22は、インシデント検知部21からの出力に基き、インシデントの種類に対応の対処DB66を特定し、深刻度Phiに基き特定した対処DB66を検索することにより、対処DB66から深刻度Phiに対応のメッセージ682を読出す(ステップS5)。
【0151】
通知処理部22は、読出されたメッセージ682が以前に通知されているかを判断する(ステップS7)。具体的には、通知処理部22は、インシデント検知部21によるインシデントの種類と検知時間を、記憶部209の領域207の各通知68のID683(インシデントの種類と時間)と照合し、照合一致したID683の通知68がないとき、読出されたメッセージ682は以前に通知されていないと判断する(ステップS7でYES)。通知処理部22は、読出されたメッセージ682から通知68を生成し、出力部を介して通知するように、通知出力部23を制御する(ステップS9)。
【0152】
一方、上記の照合一致した通知68があるとき、通知処理部22は読出されたメッセージ682は以前に通知されていると判断し(ステップS7でNO)、通知処理部22は、領域207の通知68の検索の結果に基き、ステップS3で検知された種類と同一種類のインシデントに対応する2つ以上のメッセージ682が通知されているかを判断する(ステップS11)。
【0153】
通知処理部22は、2つ以上のメッセージ682が既に通知されていると判断すると(ステップS11でYES)、ステップS5で読出されたメッセージ682が新規であるか否かを判断する(ステップS13)。具体的には、通知処理部22は、当該読出されたメッセージ682を上記の照合一致した通知68のメッセージ682と照合し、照合結果に基き判断する。通知処理部22は、当該照合結果に基き、当該読出されたメッセージ682は新規ではなく既に通知されていると判断すると(ステップS13でNO)、読出されたメッセージ682から通知68を生成し、生成された通知68を出力部において既存のメッセージ682と並列に通知されるように、通知出力部23を制御する(ステップS17)。
【0154】
一方、通知処理部22は、ステップS5で読出されたメッセージ682は新規であり未だ通知されていないと判断すると(ステップS13でYES)、読出されたメッセージ682から通知68を生成し、生成された通知68を出力部において既存のメッセージ682と並列に通知されるように、通知出力部23を制御する(ステップS15)。
【0155】
また、上記のステップS5で読出されたメッセージ682は新規ではないと判断されたとき(ステップS13でNO)、メッセージ682の上書きが実施されてもよい(ステップS17)。例えば、通知処理部22は、生成された通知68が、既存のメッセージ682のうちの1つ(例えば、識別子683が最も最近の時間を示す(最新の)メッセージ682)に上書きされて出力されるよう、通知出力部23を制御してもよい。
【0156】
また、通知処理部22は、2つ以上のメッセージ682は通知されていない(ステップS11でNO)、すなわち以前に通知されているメッセージ682は1つであると判断すると、深刻度Phiを照合(比較)する。具体的には、通知処理部22は、ステップS5で読出されたメッセージ682と以前に通知されているメッセージ682との両者の深刻度Phiを照合し、照合結果に基き両者は一致するかを判断する(ステップS19)。両方の深刻度Phiは同じと判断される場合(ステップS19でYES)、通知処理部22は、ステップS5で読出されたメッセージ682から通知68を生成し、生成された通知68を出力部において既存のメッセージ682に上書きして通知するよう、通知出力部23を制御する(ステップS21)。
【0157】
一方、通知処理部22は、両方の深刻度Phiは異なると判断すると(ステップS19でNO)、すなわち、ステップS5で読出されたメッセージ682は新規であり未だ通知されていないと判断すると、読出されたメッセージ682から通知68を生成し、生成された通知68を出力部において既存のメッセージ682と並列に(すなわち、時系列で)出力されるよう、通知出力部23を制御する(ステップS23)。
【0158】
(h2.動的決定による通知処理)
次に、動的決定を含む通知処理を説明する。
図19は、本発明の実施の形態に係る動的決定による通知処理の一例を示すフローチャートである。
図19を参照して、通知処理部22による動的決定を含む処理を説明する。
図19の処理は、
図18の処理に比較して、
図14(A)のリスク値681を算出するステップR3を追加し、また
図18のステップS5を
図14(A)のリスク値681に基き対処DB66を検索するためのステップR5に変更し、また
図18のステップS19を、リスク値681を用いた処理のステップS19aに変更した点が異なる。
図19の他の処理は
図18の処理と同様である。したがって、他の処理の説明は繰返さない。
【0159】
図19では、通知処理部22は、インシデント検知部21の出力(インシデントの種類と深刻度Phi)に基き、リスク値を計算する(ステップR3)。通知処理部22は、算出されたリスク値681に基き対処DB66を検索して、リスク値681に対応するメッセージ682を読出す(ステップR5)。また、ステップS19aでは、ステップR5で読出されたメッセージ682の深刻度Phi,リスク値681は、既に通知されているメッセージ682の深刻度Phi,リスク値681と一致するかの判断がなされる。
【0160】
図18または
図19の通知処理部22および通知出力部23の処理によれば、通知されるメッセージ682が示す対処は、制御システム1の稼働状態を変化させる対処の情報(例えば、制御システム1に対する操作)を含む。したがって、通知されるメッセージ682に従いユーザーが対処を実施した場合は、インシデントの深刻度Phiまたはリスク値681は小さくなることが予想される。したがって、ステップS17またはステップS23などで通知されるメッセージ682の深刻度Phiまたはリスク値681は時間を追って小さくなる。この場合、ユーザーは、通知されるメッセージ682(または、通知される深刻度Phi、リスク値681)から、インシデントへの対処に成功していることを、リアルタイムに確認することができる。また、逆に、通知されるメッセージ682の深刻度Phiまたはリスク値681が時間を追って大きくなっている、または変化しない場合、ユーザーはインシデントへの対処が十分になされていないことを、リアルタイムに確認することができる。
【0161】
<I.通知の方法>
本発明の実施の形態に係る通知出力部23は、通知処理部22は出力するメッセージ682および識別子683を含む通知68を出力するように、出力部を制御する。これにより、インシデントへの対処の情報であるメッセージ682を、出力部を介してユーザーに提示することができる。
図20は、本発明の実施の形態に係る対処の情報の提示方法を説明するための図である。
【0162】
図20を参照して、本実施の形態では、対処の情報を通知する出力部の装置(媒体)として、LED、7セグメントディスプレイ、パトランプ231、音、振動、HMI、PCツールなどを含む。LEDは通知(インシデントの種類、深刻度Phi、リスク値)を点灯色または点滅態様で出力する。また、7セグメントディスプレイは通知(インシデントの種類、深刻度Phi、リスク値)を十進法のアラビア数字を、七つの画(例えば、画はLEDで構成される)で表示し、また、LEDを点滅態様で出力する。
【0163】
パトランプ231は、通知をライトの点灯色、または点滅(点灯)パターンなどの組合せで出力する。音としては、ビープ音を用いることができて、ビープ音の周期、大きさ、高さなどの組合せで通知を出力する。振動としては、超音波振動または物理的な振動を用いることができて、振動の異なる周期を組合わせることで、通知を出力することができる。また、出力部の装置(媒体)として、HMI800またはPC600を用いる場合は、HMI800またはPC600の画面に通知をポップアップ表示する、またはHMI800またはPC600に許可される操作を通知の内容に応じて異ならせることで、ユーザーに対して通知を提示する。
【0164】
<J.構成に基づく通知の方法>
本実施の形態では、対処DB66が有する対処のメッセージ682は、制御ユニット100の構成、または制御ユニット100を備えるネットワークの構成により切替えることができる。
図21は、本発明の実施の形態に係る制御ユニット100の構成情報に基づく対処のメッセージ682に切替を例示する図である。
図21を参照して、制御ユニット100の構成に基き対処DB66の切替えを説明する。本実施の形態では、制御ユニット100の主記憶装置106のSRAMなどには、制御ユニット100の構成を示す構成情報であるコンフィグデータ(コンフィグレーションデータの略)1061が格納される。例えば、コンフィグデータ1061は、制御ユニット100は、無人の工場のFAに適用される、または有人の工場のFAに適用されるなどの区別を示す情報を有する。セキュリティユニット200は、ブローカー170を介して制御ユニット100からコンフィグデータ1061を受信することができる。なお、制御ユニット100の構成情報は、無人/有人の情報に限定されない。
【0165】
記憶部209に格納される対処DB66は、
図21(A)の無人のFA向けの対処DB66と、
図21(B)のと有人のFA向けの対処DB66を含む。通知処理部22は、制御ユニット100のコンフィグデータ1061に基き、記憶部209に格納される対処DB66のうちから、無人FA向けの対処DB66および有人FA向けの対処DB66のうちの一方を、検索対象に設定する。これにより、制御ユニット100の構成により対処DB66を切替えることができる。
【0166】
図21(B)の有人のFA向けの対処DB66のメッセージ682は、“セーフティエリアへの侵入に注意”のメッセージ6821および“装置から距離をとってください”のメッセージ6822など、制御ユニット100の周囲に存在する可能性があるユーザーに向けた注意喚起のメッセージが含まれる。これとは異なり、
図21(A)の無人のFA向けの対処DB66のメッセージ682は制御ユニット100の周囲のユーザーに向けた注意喚起のメッセージは含まれていない。
【0167】
また、コンフィグデータ1061が、制御ユニット100を備えるネットワークの構成の情報を含んでいる場合は、通知処理部22は、制御ユニット100からのコンフィグデータ1061に基づき、検索対象となる対処DB66を切替える。例えば、コンフィグデータ1061が制御ユニット100を備えるネットワークの構成は、1台の制御ユニット100のみを備えることを示す場合は、
図17(A)で示したように“外部ネットワークを遮断する”とのメッセージ682を含む対処DB66に切替える、これに対して、例えば、コンフィグデータ1061が制御ユニット100に他の制御ユニット100が接続されたネットワーク構成を示す場合は、
図17(B)で示したように他の制御ユニット100は外部ネットワーク50と通信できるように“外部ネットワークを完全遮断せずに断続的に遮断する”とのメッセージ682を含む対処DB66に切替えることができる。
【0168】
<K.PLC状態情報を用いたインシデントの検知>
本実施の形態では、通知処理部22は、事前にインシデントが検知されているか否かと制御システム1の稼働状態に基づき、メッセージ682を変更するようにしてもよい。ここでは、制御システム1の稼働状態として、制御ユニット100の稼働状態を例示する。
【0169】
図22は、本発明の実施の形態に係る対処メッセージの他の例を模式的に示す図である。他の例に係る対処メッセージ682aは、記憶部209にテーブル221として格納される。
図22を参照して、テーブル221の他の例に係る対処メッセージ682aは、制御ユニット100の稼働状態を示すPLC状態情報73とデータ731とに関連づけ決定される。データ731は、事前にインシデントが検知されているか否かを示す。
図22では、PLC状態情報73は、例えば制御ユニット100の状態として、例えば“全停止フォールト”、“部分停止フォールト”および“軽度フォールト”、ならびにメモリカード115の装着を示す“SDカード挿入”および外部デバイスのポート142への“USB接続”などを示す。
【0170】
インシデント検知部21はPLC状態情報73が“全停止フォールト”を示す場合に、当該“全停止フォールト”は、対応のデータ731の条件すなわち「事前にインシデント検知有り」のもとで発生したとの条件が満たされたときインシデントを検知する(
図22のケース1)。一方、インシデント検知部21は、当該条件が満たされないとき(すなわち、「事前にインシデント検知無し」のもとで発生したとの条件が満たされたとき)、インシデントを検知しない(
図22のケース2)。したがって、ケース1の場合のみ、通知処理部22は、インシデント検知部21の出力に基づき、ケース1に対応のメッセージ682の“インシデントによる全停止フォールトの可能性があります”を通知する。同様の処理が、PLC状態情報73が“部分停止フォールト”と“軽度停止フォールト”のそれぞれについても同様に実施される。
【0171】
また、インシデント検知部21はPLC状態情報73が“SDカード挿入”または“USB接続”を示す場合は、対応のデータ731の条件すなわち「事前にインシデント検知されたか否かにかかわらない」との条件が満たされて、インシデントが検知される。通知処理部22は、インシデント検知部21の出力に基づき、対応のメッセージ682を出力する。
【0172】
<L.セキュリティレベルに応じた対処の変更>
図23は、本発明の実施の形態に係るセキュリティレベルの変化に応じた対処方法の説明する図である。本実施の形態の背景として、制御システム1が適用されるFA環境におけるセキュリティレベルは、工場のFA毎に異なる場合がある。したがって、本実施の形態では、セキュリティ上のインシデントへの対処を制御システム1が適用される環境のセキュリティレベル毎に異ならせることができる。
【0173】
図23(A)は、制御システム1が適用されるFA環境のセキュリティレベルが低いケースを示し、
図23(B)は、当該セキュリティレベルが高いケースを示す。
図23(A)ではセキュリティユニット200のみがセキュリティ上のインシデントに対処する機能を備え、制御システム1にネットワーク接続する他の機器は、セキュリティ上のインシデントの検知などの機能を備えない。この場合は、通知処理部22が出力するメッセージ682は、PC600,700などの装置またはネットワーク構成に対する対処を含んでもよい。これに対して、
図23(B)では、セキュリティユニット200に加えて、制御システム1にネットワーク接続する他の機器は、セキュリティ上のインシデントの検知などの機能を備えない。この場合は、PC600,700およびルーター51などもインシデントに対処する機能を備え、また工場への入出管理がなされている場合は、通知処理部22が出力するメッセージ682はログの確認を促す対処を含むことでよい。
【0174】
制御システム1が適用されるFA環境のセキュリティレベルは、例えば二次記憶装置208に格納される。また、記憶部209にはセキュリティレベル毎の対処DB66が格納されて、各対処DB66は、対応のセキュリティレベルに応じたメッセージ682を有する。通知処理部22は、セキュリティレベルに基づき検索するべき対処DB66を切替える。これにより、通知処理部22は、インシデントが検知されたとき、セキュリティレベルに応じた対処を示すメッセージ682を出力することができる。
【0175】
<M.出力部のバリエーション>
図24は、本発明の実施の形態に係る通知68の出力部の一例を模式的に示す図である。本実施の形態では、通知68の出力部を多様化することができる。通知68の出力部はセキュリティユニット200に追加して、その他の装置(例えば、制御ユニット100、カプラ、各種の通信ユニット、HMI800など)を含み得る。
【0176】
(m1.セキュリティユニット200において通知68を出力するケース)
まず、通知68を出力する出力部として、例えば、セキュリティユニット200が備えるインジケータ224、ディスプレイ225またはスピーカ226など含まれる。さらに、図示しない振動部(バイブレータ)またはLEDが含まれてもよい。通知出力部23は、振動部を通知68に応じて振動の周期が可変となるように制御し、またはLEDを通知68に応じて点滅または点灯の周期、または点灯色が可変となるように制御する。これにより、FAを保守する保守者は、セキュリティユニット200が備える出力部による通知68を確認することで、通知されたメッセージ682に従いインシデントに対処することができる。例えば、制御ユニット100の停止を防止するように対処を実施することができる。
【0177】
(m2.HMI800において通知68を出力するケース)
通知出力部23は、HMI800に通知68を出力することができる。したがって、保守者は、セキュリティユニット200から離れた場所に居る場合でも、通知68をHMI800で確認して、インシデントに対処することができる。
【0178】
なお、本実施の形態では、HMI800は、セキュリティユニット200および制御ユニット100の両方に接続される場合と一方に接続される場合とがあり得る。HMI800が、セキュリティユニット200および制御ユニット100の両方に接続される場合は、通知出力部23は、両方のHMI800または一方のHMI800に、通知68を出力する。
【0179】
(m3.パトランプ231により通知68を出力するケース)
通知68の出力部は、制御システム1が備えられる工場に設けられたパトランプ231を含み得る。通知出力部23は、通知68に従いパトランプ231を点灯色、点灯周期などが可変となるよう制御する。したがって、保守者は、セキュリティユニット200から離れた場所に居る場合でも、工場内に設けられたパトランプ231の点灯から対処の情報を得ることができる。
【0180】
(m4.サポート装置600により通知68を出力するケース)
通知68の出力部は、保守者が操作するサポート装置600などのPC(Personal Computer)ツールを含み得る。通知出力部23は、通知68を出力するようにサポート装置600を制御する。したがって、保守者は、セキュリティユニット200から離れた場所に居る場合でも、サポート装置600の出力から対処の情報を得ることができる。また、PCツールでは、通知68に応じてサポート装置600の操作を制限するように動作してもよい。これにより、保守者の不用意な操作を防ぐことも可能となる。
【0181】
なお、本実施の形態では、サポート装置600は、セキュリティユニット200および制御ユニット100の両方に接続される場合と一方に接続される場合とがあり得る。サポート装置600が、セキュリティユニット200および制御ユニット100の両方に接続される場合は、通知出力部23は、両方のサポート装置600または一方のサポート装置600に、通知68を出力する。
【0182】
(m5.監視用PC232により通知68を出力するケース)
通知68の出力部は、工場に備えられるFAの管理者が操作する監視用PC232を含み得る。通知出力部23は、通知68を出力するように監視用PC232を制御する。したがって、監視者は、セキュリティユニット200から離れた場所に居る場合でも、監視用PC232の出力から対処の情報を得ることができる。なお、監視用PC232は、携帯可能に構成されてもよい。
【0183】
図24では、セキュリティユニット200にケースm1~m5の出力部となる装置が全て接続される状態を示したが、これに限定されない。つまり、制御システム1には、ケースm1~m5の出力部となる装置の1つ以上が接続される状態であってもよい。なお、通知出力部23は、上記に述べたケースm1~m5のいずれか1つに従い通知68に出力する、またはケースm1~m5の2つ以上のケースを組み合わせて通知68を出力することができる。また、いずれのケースを適用するかを指定する情報は、ユーザー(保守者または管理者)がセキュリティユニット200に設定してもよい。
【0184】
また、本実施の形態では、通知出力部23は、記憶部209のネットワーク構成情報2620から制御システム1にネットワーク接続される装置を特定し、特定した装置の情報に基づき、出力部(ケースm1~m5のいずれを実施するか)を決定してもよい。
【0185】
(m6.他のSGUに通知68を出力するケース)
図25は、本発明の実施の形態に係る通知68の出力部の他の例を模式的に示す図である。本実施の形態では、FAは、複数の制御システム1を備えて構成され得る。この場合には、ある制御システム1の通知68は、上記のケースm1~m5の出力部に加えて、他の制御システム1により出力されてもよい。
【0186】
これにより、例えば他の制御システム1の保守者に対して、他のシステムにおいてインシデントが発生し自己が保守するシステムにおいても、セキュリティ上のインシデントが発生する可能性があることを通知できる。
【0187】
<N.出力態様>
図26は、本発明の実施の形態に係る通知68の出力態様の一例を模式的に示す図である。
図26は、通知68が、セキュリティユニット200のディスプレイ225またはインジケータ224に出力される場合を例示する。
図26(A)および
図26(B)には、定量化された深刻度Phiまたはリスク値681をインジケータ224で表示する場合の構成例が示される。
【0188】
図26(A)に示すように、通知出力部23は、セキュリティ上のインシデントへの対処情報(メッセージ682)をディスプレイ225に表示する。ディスプレイ225には、深刻度Phiまたは算出されたリスク値681または検出したインシデントの種類680を対処情報とともに表示してもよい。これによりユーザー(保守者,管理者)に対して、セキュリティ上のインシデントに対してとるべき対処を文章、絵、図などを用いて通知することができる。
【0189】
また、
図26(A)と(B)に示すように、インジケータ224においては、3つのLEDが配置されており、深刻度Phiまたは算出されたリスク値681に応じて点灯数あるいは点灯位置を変化させる。
図26(B)に示すインジケータ224においては、1つのLEDが配置されており、深刻度Phiまたは算出されたリスク値に応じて点灯色あるいは点灯強度、または点滅周期などを変化させる。
【0190】
このように、セキュリティユニット200は、インジケータ224によりインシデント検知部21がインシデントを検知したこと、およびその深刻度Phiおよびリスク値681をユーザーに出力する出力手段を有している。
【0191】
上述したようなインジケータ224を配置することで、専門知識のないユーザーであっても、現在のセキュリティ上のリスクのステータスを容易に把握できる。
【0192】
また、本実施の形態では、
図26(A)に示す提示できる形態であれば、どのようなインジケータを採用してもよい。
【0193】
<O.変形例>
上記の実施の形態では、セキュリティユニット200を制御ユニット100に適用した制御システム1を説明したが、セキュリティユニット200の適用先は制御ユニット100に限定されない。例えば、セキュリティユニット200は、制御ユニット100に代えて、FAのためのAGV(Automated guided vehicle)に搭載される制御システムに適用することもできる。この場合は、インシデント検知部21は、AGVの無線通信を監視して得られる通信監視情報511から、インシデントを検知することができる。
【0194】
<P.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0195】
[構成1]
制御システム(1)であって、
制御対象(500)を制御するための制御演算を実行する制御ユニット(100)と、
前記制御ユニットに接続され、前記制御システムに対するセキュリティ機能を担当するセキュリティユニット(200)と、を備え、
前記セキュリティユニットは、
前記制御システムの稼働状態を示す状態情報(71,72,73)を収集する収集手段(20)と、
収集される前記状態情報に基き、前記制御システムにおけるインシデント(680)を検知する検知手段(21)と、
検知された前記インシデントへの対処の情報を通知する通知手段(22,23)と、を含む、制御システム。
【0196】
[構成2]
前記検知手段は、さらに、
収集される前記状態情報が、複数種類のインシデントのそれぞれに対応の条件(67)のうちいずれかの条件を満たすことに基づき、当該インシデントの種類を検知する、構成1に記載の制御システム。
【0197】
[構成3]
前記検知手段は、さらに、
収集される前記状態情報が、前記インシデントが前記セキュリティにおよぼす影響の深刻度(Phi)のそれぞれに対応の条件のうちいずれかの条件を満たすことに基づき、当該インシデントの深刻度を検知する(
図12)、構成1または2に記載の制御システム。
【0198】
[構成4]
前記対処の情報は、前記深刻度に応じた対処の情報(
図13(B))を含む、構成3に記載の制御システム。
[構成5]
前記通知手段は、さらに、検知された前記深刻度を通知する、構成3または4に記載の制御システム。
[構成6]
前記通知手段は、さらに、
収集される前記状態情報および前記深刻度に基く算出値であるセキュリティリスク(681)を通知する、構成3から5のいずれか1に記載の制御システム。
【0199】
[構成7]
前記対処の情報は、前記セキュリティリスクに応じた対処の情報(
図14(B))を含む、構成6に記載の制御システム。
【0200】
[構成8]
前記対処の情報は、前記制御システムの稼働状態を変化させる対処の情報を含む、構成1から7のいずれか1に記載の制御システム。
【0201】
[構成9]
前記対処の情報は、前記制御ユニットの構成により異なる(
図22)、構成1から8のいずれか1に記載の制御システム。
【0202】
[構成10]
前記対処の情報は、前記制御ユニットを備えるネットワークの構成(コンフィグデータ1061)により異なる、構成1から9のいずれか1に記載の制御システム。
【0203】
[構成11]
前記通知手段は、
前記制御ユニットを含む複数の装置を接続するネットワーク構成の情報(2620)に基づき決定した装置に、前記対処の情報を通知する、構成1から10のいずれか1に記載の制御システム。
【0204】
<Q.利点>
本実施の形態によれば、FAにおける制御システムのセキュリティの状態(異常/インシデント検知など)を、セキュリティ知識がないユーザー(保守者など)でも通知出力部23からの通知68によりすぐに確認することができる。また、セキュリティ異常によりインシデントが検知されたが場合に、通知68のメッセージ628から、保守者が取るべき対処方法を確認し、実施することができる。
【0205】
また、この通知68はLED、7セグメントディスプレイ、音声、振動、HMI800などの表示装置、ネットワークを経由したサポート装置600などのツールにより提供することができる。したがって、ユーザーは、セキュリティユニット200から離れている場合でも、最寄りの装置から通知68の受けることができる。
【0206】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0207】
1 制御システム、2 第1ネットワーク、4 第2ネットワーク、10 制御システム、20 情報収集部、21 インシデント検知部、22 通知処理部、23 通知出力部、50 外部ネットワーク、51 ルーター、62 ユーザー情報、68 通知、63,2620 ネットワーク構成情報、66 対処DB、67 アタックツリー、71 外部情報、72 SGU内部情報、73 PLC状態情報、100 制御ユニット、124,224,324 インジケータ、150 制御エンジン、160 情報エンジン、170 ブローカー、200 セキュリティユニット、231 パトランプ、250 セキュリティエンジン、260 セキュリティ情報、300 セーフティユニット、350 セーフティエンジン、400 機能ユニット、450 電源ユニット、500 フィールドデバイス、511 通信監視情報、600 サポート装置、680 種類、681 リスク値、682,682a,6821,6822 メッセージ、2610 セキュリティシステムプログラム、2611 情報収集プログラム、2612 インシデント検知プログラム、2613 通知処理プログラム、2614 通知出力プログラム、Phi 深刻度。