(57)【要約】１以上の時系列のコマンドを示す制御シーケンスと、制御シーケンスが発行されるときの制御対象の機器の状態を示すデータに基づいて、機器を含むシステムの正常状態を表す状態モデルを学習する学習部（８１）を備えている。
2018193571.tif 000002
【特許請求の範囲】
【請求項１】
１以上の時系列のコマンドを示す制御シーケンスと、前記制御シーケンスが発行されるときの制御対象の機器の状態を示すデータに基づいて、前記機器を含むシステムの正常状態を表す状態モデルを学習する学習部を備えた  ことを特徴とする機器管理システム。
【請求項２】
学習部は、制御シーケンスと当該制御シーケンスが発行されるときの機器の正常な状態との関係を示す特徴量を状態モデルとして生成する  請求項１記載の機器管理システム。
【請求項３】
学習部は、制御シーケンスが発行されてから所定期間経過したときの機器の状態を特徴量に用いて状態モデルを生成する  請求項２記載の機器管理システム。
【請求項４】
状態モデルを用いて、監視対象の機器に発行されるコマンドを含む制御シーケンスの異常を検知する異常検知部を備えた  請求項１から請求項３のうちのいずれか１項に記載の機器管理システム。
【請求項５】
異常検知部は、監視対象の機器に発行された制御シーケンスを検出し、状態モデルに基づいて、検出した制御シーケンスに対する前記監視対象の機器が正常な状態でない場合に、当該制御シーケンスを異常と判断する  請求項４記載の機器管理システム。
【請求項６】
異常検知部は、監視対象の機器の状態を検出し、状態モデルに基づいて、機器の状態で想定されない制御シーケンスが当該監視対象の機器に発行された場合に、当該制御シーケンスを異常と判断する  請求項４記載の機器管理システム。
【請求項７】
１以上の時系列のコマンドを示す制御シーケンスと、前記制御シーケンスが発行されるときの制御対象の機器の状態を示すデータに基づいて、前記機器を含むシステムの正常状態を表す状態モデルを学習する  ことを特徴とするモデル学習方法。
【請求項８】
制御シーケンスと当該制御シーケンスが発行されるときの機器の正常な状態との関係を示す特徴量を状態モデルとして生成する  請求項７記載のモデル学習方法。
【請求項９】
コンピュータに、  １以上の時系列のコマンドを示す制御シーケンスと、前記制御シーケンスが発行されるときの制御対象の機器の状態を示すデータに基づいて、前記機器を含むシステムの正常状態を表す状態モデルを学習する学習処理  を実行させるためのモデル学習プログラム。
【請求項１０】
コンピュータに、  学習処理で、制御シーケンスと当該制御シーケンスが発行されるときの機器の正常な状態との関係を示す特徴量を状態モデルとして生成させる  請求項９記載のモデル学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、制御機器を管理する機器管理システム、および、その制御機器の管理に用いられるモデルを学習するモデル学習方法およびモデル学習プログラムに関する。
【背景技術】
【０００２】  近年、産業制御システムのインシデント報告数が年々増加しており、より高度なセキュリティ対策が求められている。【０００３】  例えば、特許文献１には、不正アクセスや不正プログラム等を検知するセキュリティ監視システムが記載されている。特許文献１に記載されたシステムは、制御システムにおける通信パケットをモニタリングし、特徴値が通常とは異なる通信パケットからルールを生成する。そして、特許文献１に記載されたシステムは、このルールをもとに異常な通信パケットを検知して、制御システムへの影響度を予測する。【０００４】  また、特許文献２には、機械の制御方法を学習する装置が記載されている。特許文献２に記載された装置は、予め登録した制御命令と検出された動作機構部の状態変化の信号に基づいて、その動作機構部を所望の作動状態に作動させるための制御信号を作動状態順に出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１６８７６３号公報
【特許文献２】実開平０４−１３０９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】  システムへの攻撃方法は様々なため、多くのセキュリティ対策が行われている。その中でも、組み込み機器で構成されるシステム（以下、物理系システムと記すこともある。）は、一般的なセキュリティ対策を適用することが難しい。そのため、一般的なセキュリティ対策だけでは、物理系システムを含む産業制御システム全体の防御をすることも困難である。【０００７】  例えば、物理系システムを制御する制御プログラムを不正に書き換えるような攻撃が行われたとする。制御指示に用いられるコマンドやパケットそのものが異常なものでない場合、産業制御システムに一般的なセキュリティ対策を適用したとしても、不適切な制御を実行させるような制御プログラムによる処理を早期に検出することは困難である。【０００８】  不適切な制御を実行させるような攻撃の例として、システムの状態に対して不適切な制御を行うことにより、機器を異常動作させる（以下、操作状態不適合と記すこともある。）攻撃があげられる。例えば、室内が高温にもかかわらず、空調に温度上昇の命令を送ることにより、サーバをダウンさせるものである。【０００９】  特許文献１に記載されたシステムは、特徴値として宛先アドレス、データ長およびプロトコル種別を想定し、ルールとしてアドレス、データ長およびプロトコル種別の組み合わせを想定する。また、特許文献１に記載されたシステムは、影響度に対する処理として、システム全停止、セグメント／制御装置の停止および警報を想定する。【００１０】  しかし、特許文献１に記載されたシステムは、パケット単位で異常か否かを判断する。そのため、例えば、コマンドやパケットそのものが異常なものではない場合、通信状態を監視しているだけでは、上述するような高度な攻撃を検出できないという問題がある。そのため、制御機器へのこのような攻撃に備え、コマンドやパケット単体に異常がない場合であっても、不適切な制御を検知して対象の機器を適切に管理できることが好ましい。【００１１】  また、特許文献２に記載された装置は、現在の状態に基づいて次の制御命令を学習するものである。そのため、特許文献２に記載された装置で学習された制御命令そのものを不正に書き換えるような攻撃が行われた場合にも、上述するような高度な攻撃を検出できないという問題がある。【００１２】  そこで、本発明は、不適切な制御を検知して対象の機器を適切に管理できる機器管理システム、並びに、その管理に用いられるモデルを学習するモデル学習方法およびモデル学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】  本発明による機器管理システムは、１以上の時系列のコマンドを示す制御シーケンスと、制御シーケンスが発行されるときの制御対象の機器の状態を示すデータに基づいて、機器を含むシステムの正常状態を表す状態モデルを学習する学習部を備えたことを特徴とする。【００１４】  本発明によるモデル学習方法は、１以上の時系列のコマンドを示す制御シーケンスと、制御シーケンスが発行されるときの制御対象の機器の状態を示すデータに基づいて、機器を含むシステムの正常状態を表す状態モデルを学習することを特徴とする。【００１５】  本発明によるモデル学習プログラムは、コンピュータに、１以上の時系列のコマンドを示す制御シーケンスと、制御シーケンスが発行されるときの制御対象の機器の状態を示すデータに基づいて、機器を含むシステムの正常状態を表す状態モデルを学習する学習処理を実行させることを特徴とする。
【発明の効果】
【００１６】  本発明によれば、不適切な制御を検知して対象の機器を適切に管理できる。
【図面の簡単な説明】
【００１７】
【図１】本発明による機器管理システムの一実施形態を示すブロック図である。
【図２】状態モデルを作成してシステムの異常を検知する処理の例を示す説明図である。
【図３】操作状態不適合を検知する処理の例を示す説明図である。
【図４】操作状態不適合を検知する処理の他の例を示す説明図である。
【図５】機器管理システムの動作例を示すフローチャートである。
【図６】機器管理システムの他の動作例を示すフローチャートである。
【図７】本発明による機器管理システムの概要を示すブロック図である。
【発明を実施するための形態】
【００１８】  以下、本発明の実施形態を図面を参照して説明する。
【００１９】  図１は、本発明による機器管理システムの一実施形態を示すブロック図である。本実施形態の機器管理システムを含む産業制御システム１０は、制御系システム１００と、物理系システム２００と、学習システム３００とを備えている。図１に例示する学習システム３００は、本発明による機器管理システムの一部または全部に対応する。
【００２０】  制御系システム１００は、ログを収集するログサーバ１１０と、システムの監視や制御を行うためにオペレータとのやりとりで用いられるＨＭＩ（Human Machine Interface ）１２０と、後述するＤＣＳ／ＰＬＣ（Distributed Control System／Programable Logic Controller）２１０に制御プログラムを書き込むエンジニアリングステーション１３０とを含む。
【００２１】  物理系システム２００は、ＤＣＳ／ＰＬＣ２１０と、ＮＷ（Network ）スイッチ２２０と、物理機器２３０とを備えている。
【００２２】  ＤＣＳ／ＰＬＣ２１０は、制御プログラムに基づいて各物理機器２３０を制御する。ＤＣＳ／ＰＬＣ２１０は、広く知られたＤＣＳまたはＰＬＣにより実現される。
【００２３】  ＮＷスイッチ２２０は、ＤＣＳ／ＰＬＣ２１０から物理機器２３０に対して送信されるコマンドおよびその応答のパケットを監視する。ＮＷスイッチ２２０は、異常検知部２２１を有する。異常検知部２２１は、制御対象の物理機器２３０に発行されたコマンドを時系列に検出する。以下の説明では、１以上の時系列のコマンドを制御シーケンスと記す。
【００２４】  本実施形態では、異常検知部２２１がＮＷスイッチ２２０に含まれている場合について説明する。ただし、異常検知部２２１は、ＮＷスイッチ２２０とは独立したハードウェアで実現されていてもよい。例えば、ＮＷスイッチ２２０が受信した全てのパケットをコピーして異常検知部２２１を搭載した機器に転送し、その機器で検出を行う形態も考えられる。異常検知部２２１は、本発明による機器管理システムの一部に対応する。
【００２５】  また、異常検知部２２１は、制御対象の物理機器２３０の状態を検知する。物理機器２３０の情報とは、いわゆるセンシング情報であり、機器に関する温度や圧力、速度や位置などである。そして、異常検知部２２１は、後述する学習システム３００（より具体的には、学習部３１０）が生成する状態モデルを用いて、監視対象の機器に発行されるコマンドを含む制御シーケンスの異常を検知する。また、物理機器２３０がＨＭＩ１２０またはログサーバ１１０に定期的に物理機器２３０の状態を示すセンシング情報を送信する場合には、学習システム３００がＨＭＩ１２０またはログサーバ１１０からセンシング情報を取得することも考えられる。
【００２６】  ここで、制御シーケンスの異常とは、物理機器２３０に発行される制御シーケンスが崩れるだけでなく、物理機器２３０が想定していない状況で発行された制御シーケンスのことを意味する。そのため、例えば、制御シーケンスとして発行され得るコマンドであったとしても、物理機器２３０の状況から想定すれば、そのようなコマンドが発行される蓋然性が極めて低い場合、その制御シーケンスは異常と判断される。
【００２７】  具体的には、異常検知部２２１は、監視対象の物理機器２３０に発行された制御シーケンスを検出し、状態モデルに基づいて、検出した制御シーケンスに対する監視対象の物理機器２３０が正常な状態でなくなる場合に、その制御シーケンスを異常と判断する。
【００２８】  また、異常検知部２２１は、監視対象の物理機器２３０の状態を検出し、状態モデルに基づいて、物理機器２３０の状態で想定されない制御シーケンスが、その監視対象の物理機器２３０に発行された場合に、その制御シーケンスを異常と判断してもよい。
【００２９】  すなわち、異常検知部２２１は、制御対象の物理機器２３０の状態を取得し、状態モデルを用いてその状態が許容範囲を越える場合には、すでに発行された制御シーケンスを異常として検知してもよい。また、異常検知部２２１は、物理機器２３０の状態を取得しておいてから、状態モデルを用いて物理機器２３０に対して発行されると想定されない制御シーケンスを異常として検知してもよい。
【００３０】  物理機器２３０は、制御対象（監視対象）の機器である。物理機器２３０の例として、温度制御機器、流量制御機器、産業用ロボットなどが挙げられる。図１に示す例では、物理機器２３０が２つ示されているが、物理機器２３０の数は２つに限定されず、１つであってもよく、３つ以上であってもよい。また、物理機器２３０の種類も１種類に限定されず、２種類以上であってもよい。
【００３１】  以下の説明では、物理系システム２００を、産業ロボット等の物理機器を操作する系のシステムとし、制御系システム１００を、物理系システム２００系以外の構成を含むシステムとして説明する。なお、本実施形態では、産業制御システム１０の構成を、制御系システム１００と物理系システム２００に分けているが、システム系の構成方法は、図１の内容に限定されない。また、制御系システム１００の構成も例示であり、制御系システム１００に含まれる構成は、図１に例示する内容に限定されない。
【００３２】  学習システム３００は、学習部３１０と、送受信部３２０とを含む。
【００３３】  学習部３１０は、ＤＣＳ／ＰＬＣ２１０から発行される制御シーケンスと、その制御シーケンスが発行されたときに物理機器２３０から検出される状態を示すデータに基づいて、物理機器２３０を含むシステム（具体的には、物理系システム２００）の正常状態を表す状態モデルを学習する。
【００３４】  制御シーケンスと機器の状態を示すデータは、オペレータ等により、システムが正常と判断される状態で収集される。データの収集は、システム稼働前に行われてもよく、システム稼働中に行われてもよい。
【００３５】  具体的には、学習部３１０は、制御シーケンスと、その制御シーケンスが発行されるときの機器の状態との対応関係を示す特徴量を状態モデルとして生成する。機器の状態とは、制御シーケンスが発行されたときに、機器の状態を検出するセンサ等により取得される値または範囲を意味する。そのため、状態モデルは、例えば、制御シーケンスと、正常時にセンサ等により検出される機器の状態を示す値または範囲との組み合わせを表すモデルであってもよい。
【００３６】  なお、物理機器２３０から状態を検出するタイミングは、制御シーケンスが発行されたタイミングと同時であってもよく、所定期間（例えば、数秒から数分後）であってもよい。
【００３７】  例えば、物理機器２３０として、ロボットのように即時反応する機器が想定されている場合、物理機器の状態を検出するタイミングは、制御シーケンスが発行されたタイミングとほぼ同時であることが好ましいと言える。一方、例えば、物理機器２３０として大規模なプラントが想定され、制御シーケンスが発行された後のプラント内の温度を検出することを想定している場合、機器の状態を検出するタイミングは、温度上昇に伴う所定期間後が好ましいと言える。
【００３８】  そのため、学習部３１０は、上述する物理機器２３０および制御シーケンスの内容を考慮し、制御シーケンスが発行されてから所定期間経過したときの機器の状態を特徴量に用いて状態モデルを生成してもよい。
【００３９】  送受信部３２０は、ＮＷスイッチ２２０を介して制御シーケンスおよび物理機器の状態を示すデータを受信し、状態モデルとして生成した特徴量をＮＷスイッチ２２０（より具体的には、異常検知部２２１）に送信する。以後、異常検知部２２１は、受信した状態モデル（特徴量）を用いて、制御シーケンスの異常を検知する。
【００４０】  図２は、状態モデルを作成してシステムの異常を検知する処理の例を示す説明図である。まず、学習部３１０は、制御シーケンスＳｎを入力する。入力される制御シーケンスＳｎは、例えば、学習用パケットから制御機器に対するコマンド列を抽出して自動で生成されるものでもよく、オペレータ等により個別に生成されるものでもよい。
【００４１】  さらに、学習部３１０は、入力された制御シーケンスＳｎに対して、物理機器２３０から検出される機器の状態を入力する。すなわち、学習部３１０は、制御シーケンスＳｎと、その制御シーケンスＳｎで物理機器２３０から検出される状態との組を入力する。入力された情報をもとに、学習部３１０は、制御シーケンスＳｎが発行される際の機器の状態を正常状態の特徴として抽出する。
【００４２】  学習部３１０は、制御シーケンスとその特徴との組で表される特徴量を状態モデルとして生成する。すなわち、特徴量は、制御シーケンスＳｎが発行される際の物理機器２３０の状態の値または範囲を示す情報であるといえる。送受信部３２０は、その特徴量を異常検知部２２１に送信する。
【００４３】  異常検知部２２１は、受信した特徴量（状態モデル）を保持する。そして、異常検知部２２１は、制御シーケンスを含む検知対象パケットおよび機器状態を受信し、制御シーケンスが異常であることを検知すると、その検知結果を出力する。
【００４４】  図３および図４は、異常検知部２２１が操作状態不適合を検知する処理の例を示す説明図である。例えば、図３（ａ）に示すような、制御シーケンスと機器状態との関係において、網掛け部分の正常状態を示しているとする。そして、異常検知部２２１が、図３（ｂ）に示す運用状態において、正常状態の範囲から外れる状態ＥＳを検知したとする。このとき、異常検知部２２１は、その制御シーケンスを異常状態（例えば、攻撃された状態）であると判断する。
【００４５】  また、例えば、図４（ａ）が、ある機器状態におけるそれぞれの制御シーケンスの発生確率を示しているとする。図４（ｂ）に示す運用状態において、異常検知部２２１が、ある機器状態で発生確率が低い制御シーケンスが発行された状態ＥＳを検知したとする。このとき、異常検知部２２１は、その制御シーケンスを異常状態であると判断する。
【００４６】  学習部３１０と、送受信部３２０とは、プログラム（モデル学習プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、学習システム３００が備える記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、学習部３１０および送受信部３２０として動作してもよい。また、学習部３１０と、送受信部３２０とは、ＮＷスイッチ２２０の内部で動作してもよい。
【００４７】  また、異常検知部２２１も、プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、ＮＷスイッチ２２０が備える記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、異常検知部２２１として動作してもよい。
【００４８】  次に、本実施形態の機器管理システムの動作を説明する。図５および図６は、本実施形態の機器管理システムの動作例を示すフローチャートである。図５に示す例は、学習部３１０が、制御シーケンスと、そのときの機器の状態を受信して特徴量を生成する図３に対応した学習フェーズの例である。
【００４９】  学習部３１０は、制御シーケンスを取得したか否か判断する（ステップＳ１１）。制御シーケンスを取得していない場合（ステップＳ１１におけるＮｏ）、ステップＳ１１の処理を繰り返す。
【００５０】  一方、制御シーケンスを取得した場合（ステップＳ１１におけるＹｅｓ）、学習部３１０は、該当する制御シーケンスが発行されたときの各制御機器のセンシング情報を取得する（ステップＳ１２）。すなわち、学習部３１０は、該当する制御シーケンスが発行されたときに制御対象の機器から検出される状態を取得する。
【００５１】  また、学習部３１０は、該当する制御シーケンスが発行される際の各制御機器の正常状態の範囲を抽出する（ステップＳ１３）。具体的には、学習部３１０は、各制御機器から取得したセンシング情報を用いて、正常状態の範囲を決定する。正常状態の決定方法は任意であり、学習部３１０は、例えば、上下の一定割合の極端なデータを除外して、正常状態の範囲を決定してもよい。
【００５２】  学習部３１０は、学習フェーズを終了させるか否か判断する（ステップＳ１４）。学習部３１０は、例えば、オペレータの指示に応じて学習フェーズを終了するか否か判断してもよく、予め定めた量または回数の処理を終えたか否かを判断して、学習フェーズを終了するか否か判断してもよい。学習フェーズを終了すると判断された場合（ステップＳ１４におけるＹｅｓ）、処理を終了する。一方、学習フェーズを終了すると判断されなかった場合（ステップＳ１４におけるＮｏ）、ステップＳ１１以降の処理が繰り返される。
【００５３】  図６に示す例は、学習部３１０が、制御シーケンスと、そのときの機器の状態を受信して特徴量を生成する図４に対応した学習フェーズの例である。なお、制御シーケンスおよびセンシング情報を取得する処理は、図５に例示するステップＳ１１からステップＳ１２の処理と同様である。
【００５４】  学習部３１０は、ある制御機器の状態における制御シーケンスの発生確率を算出する（ステップＳ２１）。具体的には、学習部３１０は、それぞれの制御シーケンスと各制御機器から取得したセンシング情報の関係をもとに、ある機器状態におけるそれぞれの制御シーケンスの発生確率を決定する。以降、学習フェーズを終了させるか否か判断する処理は、図５に例示するステップＳ１４の処理と同様である。
【００５５】  以上のように、本実施形態では、学習部３１０が、制御シーケンスと、その制御シーケンスが発行されたときに制御対象の機器から検出される機器の状態を示すデータに基づいて、制御対象の機器を含むシステムの正常状態を表す状態モデルを学習する。そのような構成により、不適切な制御を検知して対象の機器を適切に管理できる。
【００５６】  すなわち、本実施形態では、制御シーケンスに対応する機器の正常な状態を状態モデル（特徴値）として保持し、その状態モデルに基づいて監視が行われる。そのため、制御シーケンスを書き換える等の攻撃がなされた場合にも、不適切な制御を検知してその攻撃を早期に発見することにより、対象の機器を適切に管理できる。
【００５７】  次に、本発明の概要を説明する。図７は、本発明による機器管理システムの概要を示すブロック図である。本発明による機器管理システム８０は、１以上の時系列のコマンドを示す制御シーケンスと、制御シーケンスが発行されるときの制御対象の機器（例えば、物理機器２３０）の状態を示すデータに基づいて、機器を含むシステムの正常状態を表す状態モデルを学習する学習部８１（例えば、学習部３１０）を備えている。
【００５８】  そのような構成により、不適切な制御を検知して対象の機器を適切に管理できる。
【００５９】  具体的には、学習部８１は、制御シーケンスとその制御シーケンスが発行されるときの機器の正常な状態との関係を示す特徴量を状態モデルとして生成してもよい。
【００６０】  また、学習部８１は、制御シーケンスが発行されてから所定期間経過したときの機器の状態を特徴量に用いて状態モデルを生成してもよい。そのような構成により、制御コマンドの発行から状態が変化するまで所定のタイムラグが存在する機器に対しても、適切に制御することが可能になる。
【００６１】  また、機器管理システム８０は、状態モデルを用いて、監視対象の機器に発行されるコマンドを含む制御シーケンスの異常を検知する異常検知部（例えば、異常検知部２２１）を備えていてもよい。
【００６２】  具体的には、異常検知部は、監視対象の機器に発行された制御シーケンスを検出し、状態モデルに基づいて、検出した制御シーケンスに対する監視対象の機器が正常な状態でない場合に、その制御シーケンスを異常と判断してもよい。
【００６３】  一方、異常検知部は、監視対象の機器の状態を検知し、状態モデルに基づいて、機器の状態で想定されない制御シーケンスが当該監視対象の機器に発行された場合に、当該制御シーケンスを異常と判断してもよい。言い換えると、異常検知部は、機器の状態で想定される制御シーケンスが当該監視対象の機器に発行されずに別の制御シーケンスが発行された場合に、当該別の制御シーケンスを異常と判断してもよい。
【符号の説明】
【００６４】  １０  産業制御システム  １００  制御系システム  １１０  ログサーバ  １２０  ＨＭＩ  １３０  エンジニアリングステーション  ２００  物理系システム  ２１０  ＤＣＳ／ＰＬＣ  ２２０  ＮＷスイッチ  ２２１  異常検知部  ２３０  物理機器  ３００  学習システム  ３１０  学習部  ３２０  送受信部
【図１】
2018193571.tif 000003
【図２】
2018193571.tif 000004
【図３】
2018193571.tif 000005
【図４】
2018193571.tif 000006
【図５】
2018193571.tif 000007
【図６】
2018193571.tif 000008
【図７】
2018193571.tif 000009
【国際調査報告】
2018193571.tif 000010
2018193571.tif 000011
2018193571.tif 000012
2018193571.tif 000013