(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】制御システムおよび制御方法
(51)【国際特許分類】
G06F 21/55 20130101AFI20241016BHJP
【FI】
G06F21/55
(21)【出願番号】P 2020125540
(22)【出願日】2020-07-22
【審査請求日】2023-05-12
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】小河原 徹
(72)【発明者】
【氏名】山本 泰生
(72)【発明者】
【氏名】渡辺 泰久
(72)【発明者】
【氏名】廣部 直樹
【審査官】平井 誠
(56)【参考文献】
【文献】特開2010-152773(JP,A)
【文献】特開2020-095672(JP,A)
【文献】特開2019-179476(JP,A)
【文献】小河原 徹 ほか,攻撃の遷移に着目した組込機器向け攻撃検知・分類技術の提案,2020年 暗号と情報セキュリティシンポジウム予稿集,2020年01月21日,p.1-6
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
制御システムであって、
制御装置と、
前記制御装置と接続可能なサポート装置とを備え、
前記サポート装置は、ユーザ操作に応じて、タスク設定と、ネットワーク構成と、ユーザプログラムと、攻撃監視部設定とを生成し
、前記攻撃監視部設定は、異常を検出するためのルールである異常検出設定と、攻撃パターンデータベースとを含み、
前記制御装置は、
外部から入力される情報を取得する入力処理と、前記入力処理により取得された情報を参照して実行される制御演算と、前記制御演算によって算出された情報を外部へ出力する出力処理とを実行する処理実行部と、
複数の検出対象の異常のうち発生した異常を検出する異常検出部とを備え、前記検出対象の異常の各々は、前記入力処理、前記制御演算および前記出力処理のいずれかに関連付けられており、
特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベースと、
前記データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、前記異常検出部により検出された1または複数の異常とが一致すると、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定する攻撃特定部とを備え、
前記サポート装置がデータを前記制御装置に転送することで、前記タスク設定および前記ユーザプログラムによって、前記制御演算の内容が規定され、前記ネットワーク構成によって、前記入力処理および前記出力処理の内容が規定され、
前記異常検出部は、前記サポート装置からの前記攻撃監視部設定
に含まれる前記異常検出設定を参照して、前記検出対象の異常を決定し、
前記データベースの内容は、前記サポート装置からの前記攻撃監視部設定に含まれる前記攻撃パターンデータベースによって設定または変更される、制御システム。
【請求項2】
前記処理実行部は、前記攻撃特定部により特定されたセキュリティ攻撃の種類に応じて、対応するセキュリティ対策に応じた動作をする、請求項1に記載の制御システム。
【請求項3】
前記対応するセキュリティ対策に応じた動作は、前記制御演算の実行内容を異ならせることを含む、請求項2に記載の制御システム。
【請求項4】
前記対応するセキュリティ対策に応じた動作は、前記出力処理による出力を制限することを含む、請求項2に記載の制御システム。
【請求項5】
前記攻撃特定部は、予め定められた時間内に検出された1または複数の異常を、攻撃パターンが規定する1または複数の異常と比較する、請求項1~4のいずれか1項に記載の制御システム。
【請求項6】
前記攻撃特定部により特定されたセキュリティ攻撃の種類の情報を、前記制御装置以外の装置へ通知する通知部をさらに備える、請求項1~5のいずれか1項に記載の制御システム。
【請求項7】
前記データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、前記異常検出部により検出された1または複数の異常との一致度合いに基づいて、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けているか否かを推定する攻撃推定部をさらに備える、請求項1~4のいずれか1項に記載の制御システム。
【請求項8】
前記攻撃推定部は、予め定められた時間内に検出された1または複数の異常を、攻撃パターンが規定する1または複数の異常と比較する、請求項7に記載の制御システム。
【請求項9】
前記攻撃推定部により推定されたセキュリティ攻撃の種類の情報を、前記制御装置以外の装置へ通知する通知部をさらに備える、請求項7または8に記載の制御システム。
【請求項10】
前記攻撃監視部設定は、
前記検出対象を規定するための設定と、
異常の発生を検出する範囲を規定するための設定と、
異常の発生と判断するための条件を規定するための設定とを含む、請求項1~9のいずれか1項に記載の制御システム。
【請求項11】
制御装置および前記制御装置と接続可能なサポート装置とを備える制御システムで実行される制御方法であって、
前記サポート装置が、ユーザ操作に応じて、タスク設定と、ネットワーク構成と、ユーザプログラムと、攻撃監視部設定とを生成するステップ
を備え、前記攻撃監視部設定は、異常を検出するためのルールである異常検出設定と、攻撃パターンデータベースとを含み、
前記サポート装置がデータを前記制御装置に転送するステップ
と、
前記制御装置が、外部から入力される情報を取得する入力処理と、前記入力処理により取得された情報を参照して実行される制御演算と、前記制御演算によって算出された情報を外部へ出力する出力処理とを実行するステップと
を備え、前記タスク設定および前記ユーザプログラムによって、前記制御演算の内容が規定され、前記ネットワーク構成によって、前記入力処理および前記出力処理の内容が規定され、
前記制御装置が、
前記サポート装置からの前記攻撃監視部設定に含まれる前記異常検出設定を参照して、検出対象の異常を決定し、複数の検出対象の異常のうち発生した異常を検出するステップとを備え、前記検出対象の異常の各々は、前記入力処理、前記制御演算および前記出力処理のいずれかに関連付けられており、
前記制御装置が、特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベースを参照して、前記データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、前記検出された1または複数の異常とが一致するか否かを判断するステップと、
前記制御装置が、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定するステップとを備え
、
前記データベースの内容は、前記サポート装置からの前記攻撃監視部設定に含まれる前記攻撃パターンデータベースによって設定または変更される、制御方法。
【請求項12】
前記攻撃監視部設定は、
前記検出対象を規定するための設定と、
異常の発生を検出する範囲を規定するための設定と、
異常の発生と判断するための条件を規定するための設定とを含む、請求項11に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置を含む制御システムにおけるセキュリティ機能に関する。
【背景技術】
【0002】
近年、工場などの製造現場では、マルウェアなどの被害が発生しており、PLC(プログラマブルロジックコントローラ)などの制御装置についてもセキュリティ対策が必要となっている。多層防御の考え方に従えば、工場内外を繋ぐインターフェイスおよび工場内のネットワークだけでなく、生産設備を構成する制御装置自体にもセキュリティ対策を実施する必要がある。
【0003】
国際公開第2018/181253号(特許文献1)は、既存の製造システムに大幅な改変を加えることなく、製造システムにおける異常を検出する構成を開示する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示される構成は、既存の製造システムにデータ分析装置などを追加するものであり、制御装置自体にセキュリティ対策を実施するものではない。また、特許文献1に開示される構成は、製造システムに異常があるか否かを判定するものであり、セキュリティ攻撃を受けた場合に、当該攻撃の種類を特定するような方法については開示されていない。
【0006】
本発明は、制御装置自体にセキュリティ対策を実施するとともに、何らかのセキュリティ攻撃を受けた場合に、当該セキュリティ攻撃の種類を特定することも可能な構成を提供することを一つの目的としている。
【課題を解決するための手段】
【0007】
本発明のある局面に従う制御装置は、外部から入力される情報を取得する入力処理と、入力処理により取得された情報を参照して実行される制御演算と、制御演算によって算出された情報を外部へ出力する出力処理とを実行する処理実行部と、複数の検出対象の異常のうち発生した異常を検出する異常検出部とを含む。検出対象の異常の各々は、入力処理、制御演算および出力処理のいずれかに関連付けられている。制御装置は、特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベースと、データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、異常検出部により検出された1または複数の異常とが一致すると、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定する攻撃特定部とを含む。
【0008】
この構成によれば、入力処理、制御演算および出力処理のいずれかで発生した異常を検出するとともに、検出された1または複数の異常と予め用意された攻撃パターンが規定する1または複数の異常とが一致するか否かを判断することで、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていることを特定できる。これによって、セキュリティ攻撃を受けていることを検出できるとともに、当該受けているセキュリティ攻撃の種類も特定できる。
【0009】
処理実行部は、攻撃特定部により特定されたセキュリティ攻撃の種類に応じて、対応するセキュリティ対策に応じた動作してもよい。この構成によれば、特定されたセキュリティ攻撃の種類に応じて、適切なセキュリティ対策を実施できる。
【0010】
対応するセキュリティ対策に応じた動作は、制御演算の実行内容を異ならせることを含んでいてもよい。この構成によれば、制御演算の実行内容を異ならせることで、適切なセキュリティ対策を実現できる。
【0011】
対応するセキュリティ対策に応じた動作は、出力処理による出力を制限することを含んでいてもよい。この構成によれば、出力処理による出力を制限することで、適切なセキュリティ対策を実現できる。
【0012】
攻撃特定部は、予め定められた時間内に検出された1または複数の異常を、攻撃パターンが規定する1または複数の異常と比較してもよい。この構成によれば、セキュリティ攻撃を受けているか否かをより高い精度で検出できる。
【0013】
制御装置は、攻撃特定部により特定されたセキュリティ攻撃の種類の情報を、制御装置以外の装置へ通知する通知部をさらに含んでいてもよい。この構成によれば、システム全体におけるセキュリティ攻撃の発生状況を把握でき、より適切なセキュリティ対策を実施できる。
【0014】
制御装置は、データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、異常検出部により検出された1または複数の異常との一致度合いに基づいて、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けているか否かを推定する攻撃推定部をさらに含んでいてもよい。この構成によれば、攻撃パターンが規定する1または複数の異常と全く一致しなくても、ある程度の類似性が認められるような場合には、セキュリティ攻撃を受けていると決定できるとともに、当該受けているセキュリティ攻撃の種類も推定できる。
【0015】
攻撃推定部は、予め定められた時間内に検出された1または複数の異常を、攻撃パターンが規定する1または複数の異常と比較してもよい。この構成によれば、セキュリティ攻撃を受けているか否かをより高い精度で検出できる。
【0016】
制御装置は、攻撃推定部により推定されたセキュリティ攻撃の種類の情報を、制御装置以外の装置へ通知する通知部をさらに含んでいてもよい。この構成によれば、システム全体におけるセキュリティ攻撃の発生状況を把握でき、より適切なセキュリティ対策を実施できる。
【0017】
サポート装置からの設定に従って、攻撃パターンおよび検出対象の異常の少なくとも一方が決定されてもよい。この構成によれば、ユーザは、サポート装置上で攻撃パターンおよび検出対象の異常の設定を含む各種設定を自由に行うことができる。
【0018】
本発明の別の局面に従う制御方法は、外部から入力される情報を取得する入力処理と、入力処理により取得された情報を参照して実行される制御演算と、制御演算によって算出された情報を外部へ出力する出力処理とを実行するステップと、複数の検出対象の異常のうち発生した異常を検出するステップとを含む。検出対象の異常の各々は、入力処理、制御演算および出力処理のいずれかに関連付けられている。制御方法は、特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベースを参照して、データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、検出された1または複数の異常とが一致するか否かを判断するステップと、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定するステップとを含む。
【0019】
本発明のさらに別の局面に従う制御プログラムは、コンピュータに、外部から入力される情報を取得する入力処理と、入力処理により取得された情報を参照して実行される制御演算と、制御演算によって算出された情報を外部へ出力する出力処理とを実行するステップと、複数の検出対象の異常のうち発生した異常を検出するステップとを実行させる。検出対象の異常の各々は、入力処理、制御演算および出力処理のいずれかに関連付けられている。制御プログラムは、コンピュータに、特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベースを参照して、データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、検出された1または複数の異常とが一致するか否かを判断するステップと、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定するステップとを実行させる。
【発明の効果】
【0020】
本発明によれば、制御装置自体にセキュリティ対策を実施するとともに、何らかのセキュリティ攻撃を受けた場合に、当該セキュリティ攻撃の種類を特定することが可能になる。
【図面の簡単な説明】
【0021】
【
図1】本実施の形態に係る制御システムの適用例を示す模式図である。
【
図2】本実施の形態に係る制御システムの構成例を示す模式図である。
【
図3】本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。
【
図4】本実施の形態に係る制御装置の異常検出部により検出される異常の内容例を示す図である。
【
図5】本実施の形態に係る制御装置の異常検出部のより詳細な機能構成例を示す模式図である。
【
図6】本実施の形態に係る制御装置の攻撃特定部のより詳細な機能構成例を示す模式図である。
【
図7】本実施の形態に係る制御装置の攻撃パターンデータベースの一例を説明するための図である。
【
図8】本実施の形態に係る制御システムにおける処理手順を示すフローチャートである。
【
図9】本実施の形態に係る制御システムにおける攻撃特定結果の利用例を示す模式図である。
【
図10】本実施の形態に係る制御システムにおけるセキュリティ対策テーブルの一例を示す図である。
【
図11】本実施の形態に係る攻撃監視部を含むネットワーク中継装置の一例を示す模式図である。
【
図12】本実施の形態に係る制御システムにおけるセキュリティ対策テーブルの一例を示す図である。
【
図13】本実施の形態に係る制御装置の攻撃推定部のより詳細な機能構成例を示す模式図である。
【
図14】本実施の形態に係る制御装置における特定精度/推定精度を向上させるための機能構成例を示す模式図である。
【
図15】本実施の形態に係る制御システムにおける攻撃特定結果の通知に着目した構成例を示す模式図である。
【
図16】本実施の形態に係る制御システムにおけるサポート装置に着目した構成例を示す模式図である。
【
図17】本実施の形態に係る制御システムにおけるサポート装置により設定される異常検出設定173の一例を示す図である。
【発明を実施するための形態】
【0022】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0023】
<A.適用例>
本発明が適用される場面の一例について説明する。
【0024】
図1は、本実施の形態に係る制御システム1の適用例を示す模式図である。
図1には、本実施の形態に係る制御システム1を構成する制御装置100の機能構成例を示す。
【0025】
図1を参照して、制御装置100は、制御対象を制御するための機能構成として、処理実行部130を含む。処理実行部130は、入力部140と、制御部150と、出力部160とを含み、各部が提供する処理を繰り返し実行する。
【0026】
入力部140は、外部から入力される情報を取得する入力処理を実行する。より具体的には、入力部140は、フィールドデバイス300、表示操作端末400、管理サーバ500、および、ゲートウェイ600などの外部から入力される情報を取得して処理する。
【0027】
制御部150は、入力部140により取得された情報を参照して、ユーザプログラムなどによって規定される制御演算を実行する。制御部150は、制御演算によって、外部へ出力すべき情報を算出あるいは生成する。
【0028】
出力部160は、制御演算によって算出された情報を外部へ出力する出力処理を実行する。より具体的には、出力部160は、制御部150が算出あるいは生成した情報を、フィールドデバイス300、表示操作端末400、管理サーバ500、および、ゲートウェイ600などの外部へ出力する。
【0029】
このように、処理実行部130は、外部から入力される情報を取得する入力処理と、入力処理により取得された情報を参照して実行される制御演算と、制御演算によって算出された情報を外部へ出力する出力処理とを実行する。
【0030】
制御装置100は、制御対象を制御するための機能構成(入力部140、制御部150、出力部160)に加えて、セキュリティ機能を提供するための攻撃監視部170を含む。攻撃監視部170は、制御装置100に対するセキュリティ攻撃による異常を検出するとともに、当該検出された異常を生じさせたセキュリティ攻撃の種類などを特定する。なお、以下の説明においては、セキュリティ攻撃を単に「攻撃」と称することもある。
【0031】
より具体的には、攻撃監視部170は、異常検出部172と、攻撃特定部176とを含む。
【0032】
異常検出部172は、複数の検出対象の異常のうち発生した異常を検出する。より具体的には、異常検出部172は、入力部140、制御部150および出力部160の少なくとも1つから得られる情報に基づいて、制御装置100に異常が発生しているか否かを判断する。ここで、検出対象の異常の各々は、入力部140で実行される入力処理、制御部150で実行される制御演算、および出力部160で実行される出力処理のいずれかに関連付けられている。
【0033】
異常検出部172は、異常を検出すると、検出した異常の内容を示す情報として、発生異常データ174を記録する。
【0034】
攻撃特定部176は、攻撃パターンデータベース178を参照して、異常検出部172が記録した発生異常データ174に基づいて、攻撃を受けているか否かを判断するとともに、受けている攻撃の種類を特定する。
【0035】
攻撃パターンデータベース178は、特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターンを少なくとも1つ含む。
【0036】
攻撃特定部176は、攻撃を受けていると判断すると、特定した攻撃の種類の情報を含む攻撃特定結果180を出力する。より具体的には、攻撃特定部176は、攻撃パターンデータベース178に含まれるいずれかの攻撃パターンが規定する1または複数の異常と、異常検出部172により検出された1または複数の異常とが一致すると、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定する。
【0037】
攻撃特定結果180は、制御装置100が特定された攻撃に応じて挙動を異ならせるために用いてもよいし、必要なセキュリティ対策を決定するために事後的に解析されてもよい。
【0038】
図1に示すように、本実施の形態に係る制御装置100は、入力部140、制御部150および出力部160のそれぞれにおける情報を組合せて参照することで、制御装置100への攻撃を検出するとともに、検出された攻撃の種類を特定できる。
【0039】
<B.ハードウェア構成例>
まず、本実施の形態に係る制御システム1のハードウェア構成例について説明する。
【0040】
(b1:システム構成例)
図2は、本実施の形態に係る制御システム1の構成例を示す模式図である。
図2を参照して、制御システム1は、制御装置100と、サポート装置200と、表示操作端末400と、管理サーバ500と、ゲートウェイ600とを含む。
【0041】
図2に示す構成例において、制御装置100は、ネットワークに接続されている。より具体的には、制御装置100は、上位ネットワーク10を介して、表示操作端末400および管理サーバ500が接続されている。上位ネットワーク10は、ゲートウェイ600を介して、インターネットに接続されている。また、制御装置100は、1または複数のフィールドネットワーク20を介して、1または複数のフィールドデバイス300が接続されている。
【0042】
(b2:制御装置100)
図3は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。
図3を参照して、制御装置100は、コンピュータの一例であり、主たるコンポーネントとして、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、ネットワークコントローラ116,118と、内部バスコントローラ122とを含む。
【0043】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御装置100が本来的に提供する制御機能に加えて、後述するような各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介する。
【0044】
二次記憶装置108には、制御プログラムに相当するシステムプログラム110に加えて、ユーザプログラムなどの各種プログラムが格納される。
【0045】
USBコントローラ112は、USB接続を介して、サポート装置200との間のデータの遣り取りを担当する。
【0046】
メモリカードインターフェイス114は、メモリカード115が着脱可能になっており、メモリカード115に対してシステムプログラム110や各種設定などのデータを書込み、あるいは、メモリカード115からシステムプログラム110や各種設定などのデータを読出すことが可能になっている。
【0047】
ネットワークコントローラ116,118の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。例えば、ネットワークコントローラ116は、上位ネットワーク10を介した通信を担当し、ネットワークコントローラ118は、フィールドネットワーク20を介した通信を担当する。ネットワークコントローラ116,118は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
【0048】
内部バスコントローラ122は、図示しない1または複数の機能ユニット(ローカルデバイス)との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【0049】
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0050】
(b3:サポート装置200)
サポート装置200は、制御装置100で実行されるユーザプログラムの開発やメンテナンスなどに必要な機能を提供する。サポート装置200は、さらに、後述するような、制御装置100に実装されるセキュリティ機能の設定などを支援するための機能を提供する。
【0051】
サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
【0052】
(b4:フィールドデバイス300)
フィールドデバイス300は、制御対象(フィールド)から情報を取得して制御装置100へ提供する機能、および/または、制御装置100で実行される制御演算によって算出される指令値(出力値)を制御対象へ提供する機能を有している。
【0053】
フィールドデバイス300は、例えば、リモートI/Oターミナル、サーボドライバ・モータ、ロボットなどを含み得る。さらに、フィールドデバイス300は、センサ、温度調整ユニット、パルスカウンタユニット、モーションコントローラユニットなどの任意のデバイスを含み得る。
【0054】
リモートI/Oターミナルは、例えば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどを含み得る。
【0055】
(b5:表示操作端末400)
表示操作端末400は、制御装置100で実行される制御演算によって算出される各種情報をユーザへ提示するとともに、ユーザ操作に応じて、対応する指令を制御装置100へ出力する。
【0056】
(b6:管理サーバ500)
管理サーバ500は、生産管理などに必要な情報を保持しており、予め定められた周期毎あるいはイベント毎に、必要な情報を制御装置100へ提供する。また、管理サーバ500は、制御装置100から送信される任意の情報を格納するとともに、検索クエリなどに応じて、要求された情報を応答する。
【0057】
(b7:ゲートウェイ600)
ゲートウェイ600は、上位ネットワーク10とインターネットとの間の通信に対して、セキュリティ対策を実施する。ゲートウェイ600としては、公知の構成を採用できる。
【0058】
<C.機能構成例>
次に、本実施の形態に係る制御システム1の機能構成例について説明する。
【0059】
(c1:異常検出部)
図4は、本実施の形態に係る制御装置100の異常検出部172により検出される異常の内容例を示す図である。
図4を参照して、異常検出部172は、入力部140において生じ得る入力異常、制御部150において生じ得る制御異常、出力部160において生じ得る出力異常を検出できる。
【0060】
入力異常は、例えば、プロトコルに関する異常などからなる通信異常と、ファイルに関する異常などからなるファイル異常と、入出力信号に関する異常などからなるI/O異常とを含んでいてもよい。
【0061】
制御異常は、例えば、制御部150で実行される制御演算に関する異常などからなるシステム制御異常と、制御部150で実行される制御演算に利用されるハードウェアリソースに関する異常などからなるハードウェアリソース異常とを含んでいてもよい。
【0062】
出力異常は、データ送信に関する異常などからなる通信異常と、入出力信号に関する異常などからなるI/O異常とを含んでいてもよい。
【0063】
制御装置100が制御対象を適切に制御できない場合には、入力部140、制御部150および出力部160のいずれかにおいて、
図4に示すいずれかの異常が発生していると考えられる。
【0064】
なお、
図4に示される異常は、一例であり、入力部140、制御部150および出力部160に生じ得る異常の分類や種類については、どのようなものであってもよい。
【0065】
図5は、本実施の形態に係る制御装置100の異常検出部172のより詳細な機能構成例を示す模式図である。
図5を参照して、異常検出部172は、発生異常データ174を記録するための異常記録部1730を含む。
【0066】
異常記録部1730は、入力異常を検出する機能構成として、入力異常検出部1720と、制御異常を検出する機能構成として、制御異常検出部1724と、出力異常を検出する機能構成として、出力異常検出部1727とを含む。異常記録部1730は、入力異常検出部1720と、制御異常検出部1724と、出力異常検出部1727とから検出信号を受け付ける。
【0067】
入力異常検出部1720は、通信異常を検出する通信異常検出部1721と、ファイル異常を検出するファイル異常検出部1722と、I/O異常を検出するI/O異常検出部1723とから検出信号を受け付ける。
【0068】
制御異常検出部1724は、システム制御異常を検出するシステム制御異常検出部1725と、ハードウェアリソース異常を検出するハードウェアリソース異常検出部1726とから検出信号を受け付ける。
【0069】
出力異常検出部1727は、通信異常を検出する通信異常検出部1728と、I/O異常を検出するI/O異常検出部1729とから検出信号を受け付ける。
【0070】
制御装置100の異常検出部172においては、通信異常検出部1721、ファイル異常検出部1722、I/O異常検出部1723、システム制御異常検出部1725、ハードウェアリソース異常検出部1726、通信異常検出部1728、および、I/O異常検出部1729の各々が担当する異常の発生を検出すると、その検出した異常を特定するための検出信号を出力する。それぞれの検出部から出力された検出信号は、集約されて、最終的に発生異常データ174として記録される。
【0071】
図5に示す例では、通信異常検出部1721、システム制御異常検出部1725およびI/O異常検出部1729がそれぞれ異常を検出している。説明の便宜上、それぞれが検出した異常を「異常A」、「異常D」および「異常Z」と記載している。
【0072】
発生異常データ174は、例えば、それぞれの検出部が検出する異常の内容(異常項目)毎に発生の有無を対応付けたテーブル形式で構成してもよい。
図5に示す例では、発生異常データ174においては、「異常A」、「異常D」および「異常Z」に対応する発生の項目に「○」が記録されており、それ以外の項目には「-」が記録されている。
【0073】
発生異常データ174は、検出された異常の内容(異常項目)のみを格納するリスト形式で構成してもよい。
図5に示す例では、「異常A」、「異常D」および「異常Z」の3つのエントリを含むリストを発生異常データ174として出力するようにしてもよい。
【0074】
発生異常データ174は、予め定められた周期毎(例えば、制御周期毎)に生成あるいは更新されてもよいし、いずれかの検出部が異常の発生を検出したときに限って、生成あるいは更新されてもよい。
【0075】
(c2:攻撃特定部)
図6は、本実施の形態に係る制御装置100の攻撃特定部176のより詳細な機能構成例を示す模式図である。
図6を参照して、攻撃特定部176は、攻撃パターンデータベース178を参照して、異常検出部172が記録した発生異常データ174に基づいて、攻撃を受けているか否かを判断するとともに、受けている攻撃の種類を特定する。
【0076】
より具体的には、攻撃特定部176は、攻撃パターン取得部1760および比較部1762を含む。
【0077】
攻撃パターン取得部1760は、攻撃パターンデータベース178に登録されている攻撃パターンを一件ずつ取り出して、比較部1762へ供給する。攻撃パターンデータベース178は、1または複数の異常の内容(異常項目)の組合せによって、受けている攻撃の種類(攻撃パターン)を定義する。すなわち、検出される攻撃(攻撃パターン)は、入力部140、制御部150および出力部160のいずれかで検出された異常の1または複数の組合せに関連付けて規定されている。
【0078】
比較部1762は、攻撃パターン取得部1760が提供する攻撃パターンと、発生異常データ174とを比較して、発生異常データ174がいずれかの攻撃パターンと一致するか否かを判断する。比較部1762は、発生異常データ174がいずれかの攻撃パターンと一致すれば、当該一致した攻撃パターンが示す種類の攻撃を受けていると特定する。
【0079】
例えば、
図6に示す例では、発生異常データ174は「攻撃パターン3」と一致することになるので、「攻撃パターン3」が示す種類の攻撃を受けていると特定できる。
【0080】
図7は、本実施の形態に係る制御装置100の攻撃パターンデータベース178の一例を説明するための図である。
図7を参照して、攻撃パターンデータベース178は、例えば、なりすまし攻撃、DoS攻撃およびDDoS攻撃などの攻撃について、対応する異常の組合せを規定する。
【0081】
より具体的には、なりすまし攻撃は、不正コマンド受信(入力異常の通信異常)と、特定処理の時間異常(制御異常のシステム制御異常)とが同時に検出された場合に対応する。
【0082】
DoS攻撃は、トラフィック過剰(入力異常の通信異常)と、CPU負荷率過剰(制御異常のハードウェアリソース異常)とが同時に検出された場合に対応する。
【0083】
DDoS攻撃は、送信元異常(入力異常の通信異常)と、トラフィック過剰(入力異常の通信異常)と、CPU負荷率過剰(制御異常のハードウェアリソース異常)とが同時に検出された場合に対応する。
【0084】
なお、
図7に示す各攻撃パターンに対する異常の組合せは一例であり、図示しないどのような攻撃パターンについて定義してもよいし、各攻撃パターンに対応付けられる異常の組合せはどのようなものであってもよい。また、
図7に示す攻撃パターンについても、別の異常の組合せを採用してもよい。
【0085】
<D.処理手順>
次に、本実施の形態に係る制御システム1における処理手順について説明する。
【0086】
図8は、本実施の形態に係る制御システム1における処理手順を示すフローチャートである。
図8に示す各ステップは、典型的には、制御装置100のプロセッサ102が二次記憶装置108に格納されたてシステムプログラム110を読み出して、主記憶装置106に展開して実行することで実現されてもよい。
【0087】
図8を参照して、制御装置100は、制御周期が到来したか否かを判断する(ステップS2)。制御周期が到来していれば(ステップS2においてYES)、制御装置100は、ローカルデバイスおよび/またはフィールドデバイスを介して制御対象に関する情報の取得などを含む入力処理を実行する(ステップS4)。続いて、制御装置100は、取得した制御装置に関する情報を用いて、制御演算を実行する(ステップS6)。さらに、制御装置100は、制御演算の実行により出力される演算結果をローカルデバイスおよび/またはフィールドデバイスを介した制御対象へ出力することなどを含む出力処理を実行する(ステップS8)。
【0088】
ステップS2~S8に示すように、制御装置100は、外部から入力される情報を取得する入力処理と、入力処理により取得された情報を参照して実行される制御演算と、制御演算によって算出された情報を外部へ出力する出力処理とを実行する。
【0089】
続いて、制御装置100は、異常検出周期が到来したか否かを判断する(ステップS10)。異常検出周期が到来していなければ(ステップS10においてNO)、ステップS2以下の処理が繰り返される。
【0090】
異常検出周期が到来していれば(ステップS10においてYES)、制御装置100は、入力処理(入力部140)、制御演算(制御部150)および出力処理(出力部160)のいずれかに異常が発生しているか否かを判断する(ステップS12)。
【0091】
入力処理(入力部140)、制御演算(制御部150)および出力処理(出力部160)のいずれかに異常が発生していれば(ステップS12においてYES)、制御装置100は、発生している異常を検出し(ステップS14)、発生異常データ174として記録する(ステップS16)。すなわち、制御装置100は、複数の検出対象の異常のうち発生した異常を検出する処理を実行する。
【0092】
なお、入力処理(入力部140)、制御演算(制御部150)および出力処理(出力部160)のいずれにも異常が発生していなければ(ステップS12においてNO)、ステップS2以下の処理が繰り返される。
【0093】
制御装置100は、攻撃パターンデータベース178を参照して1つの攻撃パターンを取得し(ステップS18)、取得した攻撃パターンと記録した発生異常データ174とが一致するか否かを判断する(ステップS20)。すなわち、制御装置100は、特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含む攻撃パターンデータベース178を参照して、攻撃パターンデータベース178に含まれるいずれかの攻撃パターンが規定する1または複数の異常と、検出された1または複数の異常とが一致するか否かを判断する。
【0094】
取得した攻撃パターンと記録した発生異常データ174とが一致すれば(ステップS20においてYES)、制御装置100は、取得した攻撃パターンが示す攻撃の種類の情報を含む攻撃特定結果180を出力する(ステップS22)。すなわち、制御装置100は、一致する攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定する。そして、ステップS2以下の処理が繰り返される。
【0095】
取得した攻撃パターンと記録した発生異常データ174とが一致しなければ(ステップS20においてNO)、制御装置100は、攻撃パターンデータベース178に含まれるすべての攻撃パターンの取得が完了したか否かを判断する(ステップS24)。攻撃パターンデータベース178に含まれるすべての攻撃パターンの取得が完了していなければ(ステップS24においてNO)、ステップS18以下の処理が繰り返される。
【0096】
攻撃パターンデータベース178に含まれるすべての攻撃パターンの取得が完了していていれば(ステップS24においてYES)、制御装置100は、攻撃を受けていないと判断し(ステップS26)、ステップS2以下の処理を繰り返す。
【0097】
なお、
図8には、制御周期および異常検出周期をそれぞれ独立に設定した処理例を示すが、これらは共通の周期としてもよい。例えば、制御周期としては1msec~数100msec程度の範囲に設定され、異常検出周期としては、数msec~数sec程度の範囲に設定されてもよい。
【0098】
<E.攻撃特定結果の利用例>
次に、出力される攻撃特定結果180の利用例について説明する。
【0099】
図9は、本実施の形態に係る制御システム1における攻撃特定結果180の利用例を示す模式図である。
図9を参照して、制御装置100の攻撃監視部170は、攻撃を受けたことを検出すると、攻撃を受けているあるいは攻撃を受けたことを制御部150へ通知する。また、制御装置100の攻撃監視部170は、特定した攻撃の種類を制御部150へ通知してもよい。
【0100】
制御部150は、攻撃監視部170からの通知に応じて、制御演算の挙動を異ならせてもよい。より具体的には、制御部150は、攻撃特定結果180の内容に応じて、セキュリティ対策を実施するようにしてもよい。制御部150がセキュリティ対策を実施するにあたって、制御部150はセキュリティ対策テーブル152を参照可能に構成されていてもよい。
【0101】
図10は、本実施の形態に係る制御システム1におけるセキュリティ対策テーブル152の一例を示す図である。
図10を参照して、セキュリティ対策テーブル152は、攻撃監視部170において検出される攻撃パターンと、各攻撃パターンに対して実施されるセキュリティ対策との対応関係を規定する。
【0102】
処理実行部130は、攻撃特定部176により特定されたセキュリティ攻撃の種類に応じて、対応するセキュリティ対策に応じた動作をする。より具体的には、処理実行部130の制御部150は、攻撃監視部170から攻撃特定結果180の通知を受けると、セキュリティ対策テーブル152を参照して、通知に含まれる攻撃パターンに対応するセキュリティ対策を決定する。そして、制御部150は、決定したセキュリティ対策に応じた動作をする。このとき、セキュリティ対策に応じた動作は、制御演算の実行内容を異ならせることを含む。
【0103】
説明の便宜上、
図10には、セキュリティ対策を自然言語で記述するが、制御装置100の実装を考慮すると、予め用意されたファンクションブロックのうち対応するセキュリティ対策に使用されるファンクションブロックを特定する情報を含めてもよい。あるいは、実施すべきセキュリティ対策を実現するための部分プログラムや命令コードを含めてもよい。
【0104】
なお、
図10に示す各攻撃パターンに対するセキュリティ対策は一例であり、図示しないどのような攻撃パターンについて定義してもよいし、各攻撃パターンに対応付けられるセキュリティ対策はどのようなものであってもよい。
【0105】
<F.ネットワーク中継装置>
上述の説明においては、制御対象を制御するための制御装置100に攻撃監視部170を実装した構成を例示したが、制御装置100以外の装置に攻撃監視部170を実装してもよい。
【0106】
図11は、本実施の形態に係る攻撃監視部170を含むネットワーク中継装置100Aの一例を示す模式図である。
図11を参照して、例えば、管理サーバ500と制御装置100との間にネットワーク中継装置100Aが配置されている。上位ネットワーク10を介して制御装置100との間で送受信されるすべてのデータは、ネットワーク中継装置100Aを通過することになる。
【0107】
ネットワーク中継装置100Aには攻撃監視部170が実装されている。このような構成を採用することで、ネットワーク中継装置100Aは、制御装置100が受信するデータおよび制御装置100が送信するデータに基づいて、制御装置100に対するセキュリティ攻撃による異常を検出するとともに、当該検出された異常を生じさせたセキュリティ攻撃の種類などを特定できる。そして、ネットワーク中継装置100Aは、制御装置100に対する攻撃を遮断するなどして、脅威を低減あるいは削除する。
【0108】
ネットワーク中継装置100Aにおいても、処理実行部130は、攻撃特定部176により特定されたセキュリティ攻撃の種類に応じて、対応するセキュリティ対策に応じた動作をする。
【0109】
図11に示す構成例において、特定した攻撃の種類の情報を含む攻撃特定結果180は、ネットワーク中継装置100Aの出力部160へ通知される。出力部160は、攻撃監視部170からの通知に応じて、ネットワーク中継装置100Aの出力処理の挙動を異ならせてもよい。より具体的には、出力部160は、攻撃特定結果180の内容に応じて、セキュリティ対策を実施するようにしてもよい。出力部160がセキュリティ対策を実施するにあたって、出力部160はセキュリティ対策テーブル162を参照可能に構成されていてもよい。
【0110】
図12は、本実施の形態に係る制御システム1におけるセキュリティ対策テーブル162の一例を示す図である。
図12を参照して、セキュリティ対策テーブル162は、攻撃監視部170において検出される攻撃パターンと、各攻撃パターンに対して実施されるセキュリティ対策との対応関係を規定する。
【0111】
セキュリティ対策テーブル162は、ネットワーク中継装置100Aの出力部160が攻撃を遮断するための挙動を規定する。セキュリティ対策テーブル162の規定に応じて、ネットワーク中継装置100Aの出力部160は、遮断の有無や遮断の範囲を調整する。このように、セキュリティ対策に応じた動作は、出力処理による出力を制限することを含む。
【0112】
説明の便宜上、
図12には、セキュリティ対策を自然言語で記述するが、ネットワーク中継装置100Aの実装を考慮すると、予め用意されたファンクションブロックのうち対応するセキュリティ対策に使用されるファンクションブロックを特定する情報を含めてもよい。あるいは、実施すべきセキュリティ対策を実現するための部分プログラムや命令コードを含めてもよい。
【0113】
なお、
図12に示す各攻撃パターンに対するセキュリティ対策は一例であり、図示しないどのような攻撃パターンについて定義してもよいし、各攻撃パターンに対応付けられるセキュリティ対策はどのようなものであってもよい。
【0114】
<G.攻撃推定機能>
上述の説明においては、発生異常データ174といずれかの攻撃パターンとの一致を攻撃されていると決定するための条件とする構成を例示したが、完全に一致しなくても、攻撃の有無を推定できる機能(攻撃推定部190)を実装してもよい。すなわち、発生異常データ174がいずれの攻撃パターンとも一致しなくても、ある程度の類似性が認められる場合には、攻撃を受けている可能性が高いと推定してもよい。
【0115】
図13は、本実施の形態に係る制御装置100の攻撃推定部190のより詳細な機能構成例を示す模式図である。
図13を参照して、攻撃推定部190は、上述の攻撃特定部176と同様に、攻撃パターンデータベース178を参照して、異常検出部172が記録した発生異常データ174に基づいて、攻撃を受けているか否かを判断する。なお、攻撃推定部190は、攻撃を受けていると判断すると、当該受けている攻撃の種類を特定するようにしてもよい。
【0116】
すなわち、攻撃推定部190は、攻撃パターンデータベース178に含まれるいずれかの攻撃パターンが規定する1または複数の異常と、異常検出部172により検出された1または複数の異常との一致度合いに基づいて、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けているか否かを推定する。
【0117】
より具体的には、攻撃推定部190は、一致度算出部192と、一致度評価部194とを含む。一致度算出部192は、攻撃パターンデータベース178に登録されている攻撃パターン毎に、発生異常データ174とどの程度一致しているかを示す一致度を算出する。一致度算出部192は、攻撃パターン毎に算出された一致度を示す攻撃パターン毎一致度196を出力する。
【0118】
一致度算出部192は、例えば、発生異常データ174と攻撃パターンとの一致の度合いを0~1の値に規格化した上で、一致度として算出するようにしてもよい。
【0119】
一致度評価部194は、一致度算出部192により算出された攻撃パターン毎一致度196を評価して、攻撃を受けているか否かを判断する。
【0120】
評価方法の一例としては、攻撃パターン毎一致度196に含まれる一致度のうち、予め定められた類似判定しきい値198以上のものがあれば、類似判定しきい値198以上である一致度に対応する攻撃パターンが示す種類の攻撃を受けていると特定してもよい。
図13に示す例では、類似判定しきい値198として「0.5」が定められており、類似判定しきい値198以上の「0.7」を示す「攻撃パターン1」が有効なものとして選択される。すなわち、「攻撃パターン1」が示す種類の攻撃を受けていると推定できる。
【0121】
評価方法の別の一例としては、攻撃パターン毎一致度196に含まれる一致度のうち、最も高い類似度を示す攻撃パターンを選択し、当該選択した攻撃パターンが示す種類の攻撃を受けていると特定してもよい。
図13に示す例では、最も高い一致度である「0.7」を示す「攻撃パターン1」が選択される。すなわち、「攻撃パターン1」が示す種類の攻撃を受けていると推定できる。
【0122】
なお、判定条件としては、上述したような類似判定しきい値198あるいは最大の類似度に限らず、任意の条件を採用できる。類似度の1番目の値と2番目の値とが予め定められたしきい値以上離れているとか、類似度の1番目以外の値はいずれも予め定められたしきい値未満であるといった判定条件を採用してもよい。
【0123】
上述したような攻撃推定機能を採用することで、発生異常データ174と攻撃パターンとが完全に一致しなくても、攻撃を受けている蓋然性が高い場合には、攻撃を受けていると判断できる。
【0124】
このような攻撃推定機能は、例えば、既知のセキュリティ攻撃の亜種や変形体などを検出する場合などにも有効である。
【0125】
<H.特定精度/推定精度向上>
上述した攻撃特定部176および/または攻撃推定部190による特定処理および/または推定処理において参照される1または複数の異常(発生異常データ174)を予め定められた時間内に検出されたものに制限することで、特定精度および/または推定精度を向上できる。
【0126】
図14は、本実施の形態に係る制御装置100における特定精度/推定精度を向上させるための機能構成例を示す模式図である。
図14を参照して、攻撃監視部170は、異常検出部172、攻撃特定部176および攻撃推定部190に加えて、タイマー182を含む。なお、攻撃推定部190は、必ずしも実装しなくてもよい。
【0127】
タイマー182は、異常検出部172が何らかの異常を検出するとカウントを開始する。タイマー182は、カウントの開始から予め定められた時間が経過すると、その時間の経過を攻撃特定部176および攻撃推定部190へ通知する。
【0128】
攻撃特定部176は、タイマー182から通知を受けると、当該タイミングで記録されている発生異常データ174を参照して、攻撃を受けているか否かを判断するとともに、受けている攻撃の種類を特定する。
【0129】
同様に、攻撃推定部190は、タイマー182から通知を受けると、当該タイミングで記録されている発生異常データ174を参照して、攻撃を受けているか否かを推定するとともに、受けている攻撃の種類を推定する。
【0130】
なお、タイマー182のカウント開始から予め定められた時間が経過するまでの間に検出される異常の論理和を発生異常データ174として記録してもよい。すなわち、タイマー182からの通知が発行されるまでの時間内のいずれかのタイミングで発生した異常を、1つの発生異常データ174として集約してもよい。この場合、攻撃特定部176および/または攻撃推定部190は、予め定められた時間内に検出された1または複数の異常を、攻撃パターンが規定する1または複数の異常と比較することになる。
【0131】
タイマー182が検出する予め定められた時間は、制御装置100の制御周期、制御装置100のハードウェアスペック、ネットワークの伝送速度、検出対象の攻撃の特性などに応じて決定されてもよい。
【0132】
上述したように、攻撃の特定および/または推定に用いる異常を検出する時間を制限することで、ノイズとなる異常の情報を除外することができ、これによって、攻撃の特定精度および/または推定精度を向上できる。
【0133】
また、上述したように、何らかの異常が検出されてから予め定められた時間に亘って検出された異常をまとめて攻撃の特定および/または推定に用いることで、あるタイミング(ワンショット)で検出された1または複数の異常の組合せでは検出できない攻撃であっても特定および/または推定できる。
【0134】
<I.制御装置外への攻撃特定結果の通知>
上述の説明においては、攻撃特定部176から出力される攻撃特定結果180が制御装置100の内部で利用される構成を例示したが、攻撃特定結果180を制御装置100の外部へ通知するようにしてもよい。
【0135】
図15は、本実施の形態に係る制御システム1における攻撃特定結果180の通知に着目した構成例を示す模式図である。
図15を参照して、制御システム1は、例えば、制御装置100およびネットワーク中継装置100Aを含む。
【0136】
制御装置100およびネットワーク中継装置100Aの各々は、攻撃特定部176および通知部184を含む。
【0137】
攻撃特定部176は、攻撃を受けていると判断すると、特定した攻撃の種類の情報を含む攻撃特定結果180を出力する。通知部184は、攻撃特定部176から攻撃特定結果180が出力されると、管理サーバ500および/または管理サーバ500Aへ攻撃特定結果180を通知する。
【0138】
同様に、通知部184は、攻撃推定部190から攻撃特定結果180が出力されると、管理サーバ500および/または管理サーバ500Aへ攻撃特定結果180を通知するようにしてもよい。
【0139】
このように、制御装置100は、攻撃特定部176により特定されたセキュリティ攻撃の種類の情報、および/または、攻撃推定部190により推定されたセキュリティ攻撃の種類の情報を、制御装置100以外の装置へ通知する通知部184を実装してもよい。
【0140】
管理サーバ500は、例えば、制御システム1が制御する制御対象を含む工場内に配置されてもよい。管理サーバ500は、攻撃特定結果180を集約することで、制御対象を含む工場内で発生した攻撃の状況を把握するとともに、対象の工場内でのセキュリティ対策を決定してもよい。
【0141】
管理サーバ500Aは、例えば、制御システム1が制御する制御対象を含む工場外に配置されてもよい。管理サーバ500Aは、例えば、工場の運営者とは異なる主体(例えば、委託先のより高い専門性を有する管理会社)によって運営されていてもよい。管理サーバ500Aに攻撃特定結果180を集約することで、セキュリティ対策についてより深い分析などを行うこともできる。
【0142】
なお、管理サーバ500および/または管理サーバ500Aに攻撃特定結果180を通知する方法としては、通常のネットワークを利用してもよいし、専用の回線(例えば、5Gや4Gなどの公衆無線回線)を利用してもよい。通常のネットワークを利用することで、簡便かつ低コストで攻撃特定結果180を通知できる。また、専用の回線を利用することで、DoS攻撃やおよびDDoS攻撃などを受けて通信できない状況であっても、攻撃特定結果180を通知できる。
【0143】
あるいは、通知部184が攻撃特定結果180をファイルとして格納し、事後的にファイルを回収することで、通信できない状況であっても、攻撃特定結果180の回収および分析などを実現できる。
【0144】
上述したように、制御装置100およびネットワーク中継装置100Aの各々から攻撃特定結果180を装置外部へ通知することで、より広範囲で攻撃を受けていることを検出できるとともに、攻撃の種類の特定やセキュリティ対策の決定などをより効率的に行うことができる。
【0145】
<J.サポート装置200>
本実施の形態に係る制御システム1を構成する制御装置100で実行される制御演算の内容は、ユーザがサポート装置200を用いてプログラムや設定等することで決定される。
【0146】
図16は、本実施の形態に係る制御システム1におけるサポート装置200に着目した構成例を示す模式図である。
図16を参照して、ユーザは、サポート装置200を操作して、タスク設定202、ネットワーク構成204およびユーザプログラム206といった、制御装置100における制御演算を規定するためのデータを生成する。これらのデータは、サポート装置200から制御装置100へ転送される。
【0147】
タスク設定202およびユーザプログラム206は、例えば、制御装置100の制御部150で実行される制御演算の内容を規定する。ネットワーク構成204は、例えば、入力部140で実行される入力処理と出力部160で実行される出力処理の内容を規定する。
【0148】
サポート装置200は、ユーザ操作に応じて、制御装置100に実装される攻撃監視部170および/または攻撃推定部190の挙動を任意に設定することもできる。例えば、ユーザは、サポート装置200を操作して、攻撃監視部設定208を生成する。攻撃監視部設定208は、制御装置100の異常検出部172および/または攻撃推定部190が異常を検出するためのルールである異常検出設定173と、制御装置100の攻撃特定部176および/または攻撃推定部190が参照する攻撃パターンデータベース178の内容の少なくとも一部とを含む。
【0149】
図17は、本実施の形態に係る制御システム1におけるサポート装置200により設定される異常検出設定173の一例を示す図である。
図17を参照して、異常検出設定173の設定項目としては、異常検出対象、異常検出範囲および異常検出条件などを含んでいてもよい。
【0150】
異常検出対象は、異常の発生を検出する対象を規定するものであり、例えば、通信ポートなどのハードウェアや、パケット伝送のプロトコルなどのソフトウェア設定を規定できる。例えば、異常の検出対象として、「通信ポート1」を「有効」または「無効」に設定することができる。「通信ポート1」が「有効」に設定された場合には、異常の検出対象となり、「通信ポート1」が「無効」に設定された場合には、異常の検出対象から除外される。
【0151】
異常検出範囲は、異常の発生を検出する範囲を規定するものであり、例えば、複数種類の不正コマンドが想定されている状態で、特定の不正コマンドのみを異常の検出対象として規定してもよい。例えば、すべての不正コマンドを異常の検出対象とする「全コマンド」を設定してもよいし、特定の不正コマンドAのみを異常の検出対象とする「コマンドAのみ」を設定してもよい。
【0152】
異常検出条件は、異常の発生と判断するための条件を規定するものであり、例えば、「トラフィック過剰」を検出するためのしきい値を含む。例えば、「トラフィック過剰」を検出するためのしきい値として、「80%」や「50%」を設定してもよい。あるいは、しきい値を任意に設定してもよい。
【0153】
ユーザは、サポート装置200を操作して、
図17に示すような内容について設定することで、異常検出設定173が生成される。異常検出設定173は、制御装置100へ転送されて異常検出部172に反映される。このように、異常検出部172は、サポート装置200から提供される異常検出設定173に従って、検出対象の異常を決定する。
【0154】
なお、異常検出設定173の内容は、制御装置100に実装される攻撃パターンデータベース178で参照される異常の内容と対応付けて予め初期値を設定していてもよい。
【0155】
また、異常検出設定173において、特定の異常を検出対象から除外してしまうと、攻撃パターンデータベース178の内容との整合性を維持できなくなる。そのため、サポート装置200は、異常検出設定173の内容に応じて、制御装置100の攻撃パターンデータベース178の内容についても更新する。
【0156】
例えば、攻撃パターンデータベース178に含まれる攻撃パターンに関連付けられているいずれかの異常を検出対象外とした場合には、以下のいずれかのように処理してもよい。
【0157】
(1)検出対象外に設定された異常については「一致していない」と判断する
(2)検出対象外に設定された異常については「常に一致している」あるいは「don’t care」と判断する
(1)の処理を採用した場合には、検出対象外に設定された異常を条件とする攻撃パターンについては特定されないことになる。また、(2)の処理を採用した場合には、攻撃パターンに関連付けられる異常のうち、検出対象外に設定された異常を除く異常が一致すれば、攻撃パターンとして特定されることになる。
【0158】
上述したような処理のうちいずれを選択するのかについては、ユーザがサポート装置200を操作して設定するようにしてもよい。
【0159】
このように、ユーザは、サポート装置200を操作することで、サポート装置200からの設定に従って、攻撃パターンデータベース178に含まれる、攻撃パターンおよび検出対象の異常の変更や有効/無効を自由に設定できる。すなわち、サポート装置200から提供される異常検出設定173に従って、検出対象の異常が決定されてもよい。また、サポート装置200から攻撃パターンデータベース178を設定または変更できるようにしてもよい。
【0160】
<K.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
外部から入力される情報を取得する入力処理(140)と、前記入力処理により取得された情報を参照して実行される制御演算(150)と、前記制御演算によって算出された情報を外部へ出力する出力処理(160)とを実行する処理実行部(130)と、
複数の検出対象の異常のうち発生した異常を検出する異常検出部(172)とを備え、前記検出対象の異常の各々は、前記入力処理、前記制御演算および前記出力処理のいずれかに関連付けられており、
特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベース(178)と、
前記データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、前記異常検出部により検出された1または複数の異常とが一致すると、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定する攻撃特定部(176)とを備える、制御装置。
[構成2]
前記処理実行部は、前記攻撃特定部により特定されたセキュリティ攻撃の種類に応じて、対応するセキュリティ対策に応じた動作をする、構成1に記載の制御装置。
[構成3]
前記対応するセキュリティ対策に応じた動作は、前記制御演算の実行内容を異ならせることを含む、構成2に記載の制御装置。
[構成4]
前記対応するセキュリティ対策に応じた動作は、前記出力処理による出力を制限することを含む、構成2に記載の制御装置。
[構成5]
前記攻撃特定部は、予め定められた時間内に検出された1または複数の異常を、攻撃パターンが規定する1または複数の異常と比較する、構成1~4のいずれか1項に記載の制御装置。
[構成6]
前記攻撃特定部により特定されたセキュリティ攻撃の種類の情報を、前記制御装置以外の装置へ通知する通知部(184)をさらに備える、構成1~5のいずれか1項に記載の制御装置。
[構成7]
前記データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、前記異常検出部により検出された1または複数の異常との一致度合いに基づいて、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けているか否かを推定する攻撃推定部(190)をさらに備える、構成1~4のいずれか1項に記載の制御装置。
[構成8]
前記攻撃推定部は、予め定められた時間内に検出された1または複数の異常を、攻撃パターンが規定する1または複数の異常と比較する、構成7に記載の制御装置。
[構成9]
前記攻撃推定部により推定されたセキュリティ攻撃の種類の情報を、前記制御装置以外の装置へ通知する通知部(184)をさらに備える、構成7または8に記載の制御装置。
[構成10]
サポート装置(200)からの設定に従って、前記攻撃パターンおよび前記検出対象の異常の少なくとも一方が決定される、構成1~9のいずれか1項に記載の制御装置。
[構成11]
外部から入力される情報を取得する入力処理と、前記入力処理により取得された情報を参照して実行される制御演算と、前記制御演算によって算出された情報を外部へ出力する出力処理とを実行するステップ(S2~S8)と、
複数の検出対象の異常のうち発生した異常を検出するステップ(S14,S16)とを備え、前記検出対象の異常の各々は、前記入力処理、前記制御演算および前記出力処理のいずれかに関連付けられており、
特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベースを参照して、前記データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、前記検出された1または複数の異常とが一致するか否かを判断するステップ(S18,S20)と、
当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定するステップ(S22)とを備える、制御方法。
[構成12]
制御プログラム(110)であって、コンピュータ(100)に、
外部から入力される情報を取得する入力処理と、前記入力処理により取得された情報を参照して実行される制御演算と、前記制御演算によって算出された情報を外部へ出力する出力処理とを実行するステップ(S2~S8)と、
複数の検出対象の異常のうち発生した異常を検出するステップ(S14,S16)とを実行させ、前記検出対象の異常の各々は、前記入力処理、前記制御演算および前記出力処理のいずれかに関連付けられており、
特定の種類のセキュリティ攻撃に対応付けられた1または複数の異常を規定する攻撃パターン、を少なくとも1つ含むデータベースを参照して、前記データベースに含まれるいずれかの攻撃パターンが規定する1または複数の異常と、前記検出された1または複数の異常とが一致するか否かを判断するステップ(S18,S20)と、
当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていると特定するステップ(S22)とを実行させる、制御プログラム。
【0161】
<L.利点>
本実施の形態に係る制御装置は、入力処理、制御演算および出力処理のいずれかで発生した異常を検出するとともに、検出された1または複数の異常と予め用意された攻撃パターンが規定する1または複数の異常とが一致するか否かを判断することで、当該攻撃パターンに対応付けられた種類のセキュリティ攻撃を受けていることを特定する。これによって、セキュリティ攻撃を受けていることを検出できるとともに、当該受けているセキュリティ攻撃の種類も特定できる。その結果、受けているセキュリティ攻撃の種類に応じて適切なセキュリティ対策を実施できる。
【0162】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0163】
1 制御システム、10 上位ネットワーク、20 フィールドネットワーク、100 制御装置、100A ネットワーク中継装置、102 プロセッサ、104 チップセット、106 主記憶装置、108 二次記憶装置、110 システムプログラム、112 USBコントローラ、114 メモリカードインターフェイス、115 メモリカード、116,118 ネットワークコントローラ、122 内部バスコントローラ、130 処理実行部、140 入力部、150 制御部、152,162 セキュリティ対策テーブル、160 出力部、170 攻撃監視部、172 異常検出部、173 異常検出設定、174 発生異常データ、176 攻撃特定部、178 攻撃パターンデータベース、180 攻撃特定結果、182 タイマー、184 通知部、190 攻撃推定部、192 一致度算出部、194 一致度評価部、196 攻撃パターン毎一致度、198 しきい値、200 サポート装置、202 タスク設定、204 ネットワーク構成、206 ユーザプログラム、208 攻撃監視部設定、300 フィールドデバイス、400 表示操作端末、500,500A 管理サーバ、600 ゲートウェイ、1720 入力異常検出部、1721,1728 通信異常検出部、1722 ファイル異常検出部、1723,1729 I/O異常検出部、1724 制御異常検出部、1725 システム制御異常検出部、1726 ハードウェアリソース異常検出部、1727 出力異常検出部、1730 異常記録部、1760 攻撃パターン取得部、1762 比較部。