JP7318711B2 - 異常検知装置、異常検知方法、及びプログラム - Google Patents

異常検知装置、異常検知方法、及びプログラム Download PDF

Info

Publication number
JP7318711B2
JP7318711B2 JP2021539730A JP2021539730A JP7318711B2 JP 7318711 B2 JP7318711 B2 JP 7318711B2 JP 2021539730 A JP2021539730 A JP 2021539730A JP 2021539730 A JP2021539730 A JP 2021539730A JP 7318711 B2 JP7318711 B2 JP 7318711B2
Authority
JP
Japan
Prior art keywords
packet
period
sequence
learning
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021539730A
Other languages
English (en)
Other versions
JPWO2021028997A5 (ja
JPWO2021028997A1 (ja
Inventor
悟 山野
貴史 小梨
昌平 三谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2021028997A1 publication Critical patent/JPWO2021028997A1/ja
Publication of JPWO2021028997A5 publication Critical patent/JPWO2021028997A5/ja
Application granted granted Critical
Publication of JP7318711B2 publication Critical patent/JP7318711B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、制御システムの異常を検知する異常検知装置、異常検知方法に関し、更には、これらを実現するためのプログラムに関する。
近年、制御システムに関するインシデント報告が年々増加しており、制御システム対する高度なセキュリティ対策が求められている。
制御システムのセキュリティ対策として、例えば、特許文献1には、制御指示間隔(例えば、コマンド間隔)の許容時間を用いて、制御システムへの攻撃によるシーケンス異常を迅速に検知する監視制御装置が開示されている。その監視制御装置は、まず、監視制御装置が有する学習部に、制御対象を制御する論理制御装置から制御対象へ順次発行される制御指示からなる制御指示パターンを、事前学習させる。続いて、監視制御装置は、論理制御装置から制御対象への制御指示と、事前学習したデータベースに記憶されている制御指示とを比較し、論理制御装置の異常を検知する。
特開2018-022296号公報
しかしながら、特許文献1に開示の監視制御装置は、上述したように制御指示パターンを事前学習しているが、それぞれの制御指示の順序とそれぞれの間隔の許容時間を事前にデータベースに記憶しているだけである。また、制御指示間隔の許容時間は、許容可能な閾値(最大値)を用いているだけである。そのため、制御システムへの高度な攻撃に対処することは困難である。すなわち、特許文献1に開示の監視制御装置は、単一のシーケンスで構成される制御システムにおける異常は検知できるが、複数のシーケンスで構成される制御システムでは異常を検知することが困難である。
また、特許文献1に開示の監視制御装置は、トラフィックの集中などによりパケットが遅延した場合に異常を誤検知したり、管理制御サーバのマルウェア感染又は悪意のあるオペレータによる不正操作によりパケット間隔が変更されたりした場合、異常を検知することが困難である。
本発明の目的の一例は、制御システムにおける異常検知の精度を向上させる異常検知装置、異常検知方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明の一側面における異常検知装置は、
学習において、学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、周期特定部と、
前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有する前記パケット間の時間分布情報とを有するシーケンス特徴量を抽出する、特徴抽出部と、
を有することを特徴とする。
また、上記目的を達成するため、本発明の一側面における異常検知方法は、
(a)学習において、学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、ステップと、
(b)前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有する前記パケット間の時間分布情報とを有するシーケンス特徴量を抽出する、ステップと、
を有することを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるプログラムは
コンピュータに、
(a)学習において、受信した学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、ステップと、
(b)前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有する前記パケット間の時間分布情報とを有するシーケンス特徴量を抽出する、ステップと、
を実行させることを特徴とする。
以上のように本発明によれば、制御システムにおける異常検知の精度を向上させることができる。
図1は、異常検知装置の一例を説明するための図である。 図2は、異常検知装置を有するシステムの一例を説明するための図である。 図3は、パケットの種別を説明するための図である。 図4は、パケットAにおける、パケット間隔と度数との関係を説明するための図である。 図5は、種別したパケット、パケット間隔、度数を関連付けた情報のデータ構造の一例を説明するための図である。 図6は、パケットの分類を説明するための図である。 図7は、シーケンス情報を説明するための図である。 図8は、シーケンス特徴量のデータ構造の一例を説明するための図である。 図9は、学習フェーズにおける異常検知装置の動作の一例を説明するための図である。 図10は、運用フェーズにおける異常検知装置の動作の一例を説明するための図である。 図11は、異常検知装置を実現するコンピュータの一例を示す図である。
(実施の形態)
以下、本発明の実施の形態について、図1から図11を参照しながら説明する。
[装置構成]
最初に、図1を用いて、本実施の形態における異常検知装置1の構成について説明する。図1は、異常検知装置の一例を説明するための図である。
図1に示す異常検知装置1は、制御システムにおける異常検知の精度を向上させる装置である。また、図1に示すように、異常検知装置1は、周期特定部2と、特徴抽出部3とを有する。
このうち、周期特定部2は、学習において、学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、パケット間隔の発生頻度を表す度数とを用いて、パケット種別の周期を特定する。特徴抽出部3は、周期に基づいて、パケット種別の順序を表すシーケンス情報と、当該シーケンスが有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する。
このように、本実施の形態においては、学習フェーズにおいて、抽出したシーケンス特徴量を用いることで、運用フェーズにおいて、制御システムに発生した異常を検知する精度を向上させることができる。具体的には、運用フェーズにおいて、制御システムから受信したパケットを用いて、学習において抽出したシーケンス特徴量を参照して、異常を検知することで、制御システムに発生した異常を検知する精度を向上させることができる。
また、複数の異なるシーケンスで構成される制御システムでも、それぞれのシーケンス特徴量を抽出できるため、異常を精度よく検知することができる。
[システム構成]
続いて、図2を用いて、本実施の形態における異常検知装置1の構成をより具体的に説明する。図2は、異常検知装置を有する制御システムの一例を説明するための図である。図2に示す異常検知装置1は、制御システム20とネットワークを介して接続されている。ただし、異常検知装置1は、ネットワークを介さずに制御システム20に接続してもよい。
制御システム20は、例えば、プラント、工場、車両、家電などに構築される、情報処理装置、コントローラ、機器、ネットワークなどを有するシステムである。そのうち、情報処理装置は、例えば、サーバ、電子制御基板、プロセッサなどである。機器は、例えば、センサ、アクチュエータなどである。
また、制御システム20における異常とは、制御システム20への攻撃などにより発生する異常である。攻撃とは、例えば、マルウェア又は悪意のあるオペレータが、制御システム20に、不正コマンドなどを挿入したり、シーケンスを改ざんしたりすることで、制御システム20を不適切な状態にする攻撃などである。例えば、ホワイトリスト方式などの手法を用いても、検知が難しい攻撃も存在する。
次に、図2に示すように、本実施の形態における異常検知装置1は、周期特定部2、特徴抽出部3に加えて、検知部21、出力情報生成部22を有する。また、異常検知装置1には、出力装置23が接続されている。
異常検知装置の学習フェーズについて説明をする。
異常検知装置1は、学習フェーズにおいて、周期特定部2と、特徴抽出部3とを用いて、シーケンス特徴量を抽出し、不図示の記憶部に記憶する。なお、記憶部は、異常検知装置1内に設けてもよいし、異常検知装置1の外部に設けてもよい。
周期特定部2は、学習フェーズにおいて、学習用パケットを種別したパケット種別ごとに算出したパケット間隔と、算出したパケット間隔の発生頻度を表す度数とを用いて、パケット種別の周期を決定する。その後、周期特定部2は、決定したパケット種別の周期を記憶部に記憶する。
具体的には、周期特定部2は、学習フェーズにおいて、制御システム20が正常に運用されている場合に、制御システム20から時系列にパケット(学習用パケット)を受信する。ただし、学習用パケットは、あらかじめ記憶部に記憶しておいてもよい。
続いて、周期特定部2は、例えば、学習用パケットの種類(例えば、リード、ライトなどの種類)に基づいて、学習用パケットを種別する。図3は、パケットの種別を説明するための図である。例えば、図3に示すように、周期特定部2は、所定時間において、正常に運用されている制御システム20から、時系列に取得した学習用パケットを種別する。図3の例では、学習用パケットをパケット種別A、B、C、D、Eに種別している。
続いて、周期特定部2は、パケット種別ごとにパケット間隔を算出する。例えば、図3に示すように、周期特定部2は、パケットAからDについて、パケット間隔を算出する。その後、周期特定部2は、所定時間において、パケット間隔が発生する頻度、すなわち度数を算出する。図4は、パケットAにおける、パケット間隔と度数との関係を説明するための図である。
続いて、周期特定部2は、パケット種別と、パケット種別ごとのパケット間隔と、そのパケット間隔に対応する度数とを関連付けて、記憶部に記憶する。図5は、種別したパケット、パケット間隔、度数を関連付けた情報のデータ構造の一例を説明するための図である。
続いて、周期特定部2は、パケット間隔と、そのパケット間隔に対応する度数とを用いて、パケット種別の周期を決定する。例えば、周期特定部2は、度数が最大となるパケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定する。図5の例では、周期特定部2は、最大の度数が200に対応するパケット間隔のうちから、最小のパケット間隔である40[ms]を選択して、周期を40[ms]に決定する。
続いて、周期特定部2は、パケットA以外に、パケット間隔40[ms]を有するパケットを検出して除外する。すなわち、図5の例では、パケットB、Cを除外する。そうすると、パケットD、Eが残るので、同様に、度数が最大となるパケット間隔のうち最小となるパケット間隔を選択する。その結果、図5の例では、周期特定部2は、最大の度数が50に対応するパケット間隔のうちから、最小のパケット間隔である100[ms]を選択して、周期を100[ms]に決定する。
なお、図5の例では、パケットA、B、Cはパケット間隔40[ms]のみで構成され、パケットD、Eは40[ms]を含まない状態となっているが、一つのパケット種別に複数の周期が含まれてもよい。例えば、パケットFにパケット間隔が40[ms]と90[ms]とが混在した場合、パケット間隔40[ms]についての処理では、パケットFの中でも40[ms]のものだけを除外(=使用済み)する。また、90[ms]のものは残されたままとする。
続いて、周期特定部2は、決定した周期に基づいて、種別したパケットを分類する。図6は、パケットの分類を説明するための図である。図6の例では、周期特定部2は、図5の例において、40[ms]、100[ms]を周期として決定したので、周期40[ms]を有するパケットA、B、Cと、周期100[ms]を有するパケットD、Eとに分類される。
なお、周期特定部2は、正常時において度数が所定値未満の場合、当該度数と、それに対応するパケット間隔とを用いて、周期を決定しなくてもよい。所定値は、実験、シミュレーションなどにより決定する。
特徴抽出部3は、学習フェーズにおいて、周期ごとに、種別したパケットの順序を表すシーケンス情報と、当該シーケンスが有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する。具体的には、特徴抽出部3は、周期ごとに分類したパケットを取得し、当該周期と同じ周期又は倍数の周期を用いて、シーケンス情報を生成する。
図7は、シーケンス情報を説明するための図である。図7の例では、特徴抽出部3は、図6の例に示した、周期40[ms]のパケットA、B、Cを用いて、時系列に記憶された学習用パケットを参照して、図7のAに示すような、周期40[ms]のパケットA、B、Cに対応するシーケンスを生成する。
図7のAに示すシーケンスは、パケットAを受信してから1[ms]後に新たにパケットAを受信し、新たにパケットAを受信してから1[ms]後にパケットBを受信し、パケットBを受信してから1[ms]後にパケットCを受信し、パケットCを受信してから37[ms]後に当初のパケットAに相当するパケットAを受信することを示すシーケンスである。
また、図7の例では、特徴抽出部3は、図6の例において分類した、周期100[ms]のパケットD、Eを用いて、時系列に記憶された学習用パケットを参照して、図7のBに示すような、周期100[ms]のパケットD、Eに対応するシーケンスを生成する。
図7のBに示すシーケンスは、パケットDを受信してから10[ms]後にパケットEを受信し、パケットEを受信してから90[ms]後に当初のパケットDに相当するパケットDを受信することを示すシーケンスである。
続いて、特徴抽出部3は、上述したシーケンスが有するパケット間の時間分布を算出する。パケット間の時間分布は、例えば、平均、分散、標準偏差などである。
続いて、特徴抽出部3は、シーケンスを識別する識別情報(シーケンスID)と、パケットの順序を表すシーケンス情報と、パケット間の時間分布を表す時間分布情報とを関連付けたシーケンス特徴量を、記憶部に記憶する。
図8は、シーケンス特徴量のデータ構造の一例を示す図である。図8の例では、シーケンス特徴量は、周期40[ms]に対応するシーケンスに対して「シーケンスID」として「1」を付し、周期100[ms]に対応するシーケンスに対して「シーケンスID」として「2」を付している。
また、「シーケンスID」の「1」には、周期40[ms]に対応する順序「A、A、B、C」が関連付けられている。「シーケンスID」の「2」には、周期100[ms]に対応する順序「D、E」が関連付けられている。
また、「シーケンスID」「1」に示されたパケット「A」「A」「B」「C」それぞれには、パケット「A」「A」「B」「C」それぞれに対応する「パケット間時間分布」(「平均[ms]」「分散[ms]」……)が関連付けられている。「シーケンスID」「2」に示されたパケット「D」「E」それぞれには、パケット「D」「E」それぞれに対応する「パケット間時間分布」(「平均[ms]」「分散[ms]」……)が関連付けられている。
異常検知装置の運用フェーズについて説明をする。
異常検知装置1は、運用フェーズにおいて、検知部21を用いて、制御システム20の異常を検知する。その後、異常検知装置1の出力情報生成部22は、制御システム20の異常を検知したことを出力装置23に出力するための出力情報を生成し、生成した出力情報を出力装置23へ送信する。
検知部21は、運用フェーズにおいて、制御システム20からパケットを受信する。続いて、検知部21は、受信したパケットを用いて、学習において抽出したシーケンス特徴量を参照して、異常を検知する。具体的には、検知部21は、所定時間パケットを受信すると、シーケンス特徴量のシーケンス情報とパケット間時間分布とを参照して、異常があるか否かを判定する。
検知部21は、時系列に受信したパケットのパケット種別の順序と、シーケンス特徴量のパケット種別の順序とを比較し、パケット種別の順序が同じ場合には、シーケンスに異常がないと判定し、パケット種別の順序が異ある場合には、シーケンスに異常があると判定する。
さらに、検知部21は、時系列に受信したパケットを用いて、パケット間時間分布を算出し、学習フェーズにおいて抽出したパケット間時間分布を参照し、パケット間時間分布が類似している場合には異常がないと判定し、パケット間時間分布が類似していない場合には異常があると判定する。
なお、検知部21は、同一種別のパケットが複数のシーケンスに存在する可能性があるので、パケット種別の順序の判定とパケット間時間分布の判定とを並行して実行する。その理由は、パケットAが一つのシーケンスにのみ含まれるとは限らず、異なるシーケンスに含まれる場合があるからである。
例えば、上述したシーケンスID「1」に対応する「AABC」以外に、シーケンスID「3」に対応する周期65[ms]の「AXXY」が同時に出現することも考えられる。このような場合、「AABC」に重なる形で「AXXY」が出現することがある。
「AABC」に着目して考えると、パケットA、B、Cの三種類の順番に着目して「AAABC」となるが、シーケンス異常と判断してはならないため、実際には「AAABC」の三つのAのうち一つはシーケンス「AXXYのA」であることを判定しなければならない。
そこで、すべてのシーケンスで期待しないタイミングでいずれかのシーケンスに所属するパケットがくるシーケンス異常の判定に加え、実際にはシーケンスで期待する時間分布の範囲に次のパケットがくることを判定(パケット間時間分布異常の判定)する。
このように、シーケンス側の観点では、期待しているタイミングでパケットがきているかを判定(きていないケースを検出する判定)し、受信したパケット側からの観点では、そのパケットが期待されたものかを判定(余計なものを検出する判定)する。
次に、検知部21が異常を検出した場合、検知部21は異常を検知したこと表す指示を、出力情報生成部22へ送信する。
出力情報生成部22は、異常指示を取得した場合、制御システム20の管理者などを含む利用者に通知するため、出力装置23に制御システム20に異常が発生したことを出力するための出力情報を生成する。
出力装置23は、出力情報生成部22から、出力可能な形式に変換された出力情報を取得し、その出力情報に基づいて生成した画像及び音声などを出力する。出力装置23は、例えば、液晶、有機EL(Electro Luminescence)、CRT(Cathode Ray Tube)を用いた画像表示装置である。更に、出力装置23は、スピーカなどの音声出力装置などを有していてもよい。なお、出力装置23は、プリンタなどの印刷装置でもよい。
[装置動作]
次に、本発明の実施の形態における異常検知装置1の動作について説明する。学習フェーズの動作については、図9を用いて説明する。また、運用フェーズの動作については、図10を用いて説明する。図9は、学習フェーズにおける異常検知装置の動作の一例を説明するため図である。図10は、運用フェーズにおける異常検知装置の動作の一例を説明するためのフロー図である。以下の説明においては、適宜図2から図8を参照する。また、本実施の形態では、異常検知装置1を動作させることによって、異常検知方法が実施される。よって、本実施の形態における異常検知方法の説明は、以下の異常検知装置1の動作説明に代える。
異常検知装置の学習フェーズにおける動作について説明をする。
図9に示すように、最初に、周期特定部2は、学習用パケットを取得する(ステップA1)。具体的には、ステップA1において、周期特定部2は、学習フェーズにおいて、制御システム20が正常に運用されている場合、制御システム20から時系列に学習用パケットを受信する。又は、周期特定部2は、あらかじめ記憶部に記憶した学習用パケットを取得してもよい。
続いて、周期特定部2は、学習用パケットを種別する(ステップA2)。具体的には、ステップA2において、周期特定部2は、学習用パケットを種類(例えば、リード、ライトなどの種類)に応じて種別する。例えば、図3に示すように、周期特定部2は、所定時間において、正常に運用されている制御システム20から、時系列に取得した学習用パケットを種別する。
続いて、周期特定部2は、種別した学習用パケットのパケット種別ごとにパケット間隔を算出する(ステップA3)。具体的には、ステップA3において、図3に示すように、周期特定部2は、パケットAからDについて、パケット間隔を算出する。続いて、周期特定部2は、所定時間において、パケット間隔が発生する頻度、すなわち度数を算出する(ステップA4)。
なお、ステップA4において、周期特定部2は、パケット種別と、パケット種別ごとのパケット間隔と、そのパケット間隔に対応する度数とを関連付けて、記憶部に記憶する。
続いて、周期特定部2は、パケット種別ごとのパケット間隔と、そのパケット間隔に対応する度数とを用いて、周期を決定する(ステップA5)。具体的には、ステップA5において、周期特定部2は、度数が最大となるパケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定する。図5の例では、周期特定部2は、最大の度数が200に対応するパケット間隔から、最小のパケット間隔である40[ms]を選択して、周期を40[ms]に決定する。
また、周期特定部2は、パケットA以外に、パケット間隔40[ms]を有するパケットを検出して除外する。すなわち、図5の例では、パケットB、Cを除外する。そうすると、パケットD、Eが残るので、同様に、度数が最大となるパケット間隔のうち最小となるパケット間隔を選択する。その結果、図5の例では、周期特定部2は、最大の度数が50に対応するパケット間隔から、最小のパケット間隔である100[ms]を選択して、周期を100[ms]に決定する。
なお、図5の例では、パケットA、B、Cはパケット間隔40[ms]のみで構成され、パケットD、Eは40[ms]を含まない状態となっているが、一つのパケット種別に複数の周期が含まれてもよい。例えば、パケットFにパケット間隔が40[ms]と90[ms]とが混在した場合、パケット間隔40[ms]についての処理では、パケットFの中でも40[ms]のものだけを除外(=使用済み)する。また、90[ms]のものは残されたままとする。
続いて、周期特定部2は、決定した周期に基づいて、パケット種別を分類する(ステップA6)。具体的には、ステップA6において、周期特定部2は、図5の例において、40[ms]、100[ms]を周期として決定したので、図6に示すように、周期40[ms]を有するパケットA、B、Cと、周期100[ms]を有するD、Eとに分類される。
なお、周期特定部2は、正常時において度数が所定値未満の場合、当該度数と、それに対応するパケット間隔とを用いて、周期を決定しなくてもよい。所定値は、実験、シミュレーションなどにより決定する。
続いて、特徴抽出部3は、周期ごとにパケット種別の順序を表すシーケンス情報と、当該シーケンスが有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する(ステップA7)。具体的には、ステップA7において、特徴抽出部3は、周期ごとに分類したパケット種別を取得し、当該周期と同じ周期又は倍数の周期を用いて、シーケンス情報を生成する。
図7の例では、特徴抽出部3は、図6の例に示した、周期40[ms]のパケットA、B、Cを用いて、時系列に記憶された学習用パケットを参照して、図7のAに示すような、周期40[ms]のパケットA、B、Cに対応するシーケンスを生成する。
また、図7の例では、特徴抽出部3は、図6の例において分類した、周期100[ms]のパケットD、Eを用いて、時系列に記憶された学習用パケットを参照して、図7のBに示すような、周期100[ms]のパケットD、Eに対応するシーケンスを生成する。
また、ステップA7において、特徴抽出部3は、上述したシーケンスが有するパケット間の時間分布を算出する。パケット間の時間分布は、例えば、平均、分散、標準偏差などである。
なお、ステップA7において、特徴抽出部3は、シーケンスを識別する識別情報(シーケンスID)と、パケットの順序を表すシーケンス情報と、パケット間の時間分布を表す時間分布情報とを関連付けたシーケンス特徴量を、記憶部に記憶する。
異常検知装置の運用フェーズにおける動作について説明をする。
検知部21は、まず、制御システム20からパケットを取得する(ステップB1)。続いて、検知部21は、シーケンス異常(パケット種別の順序)の判定及びパケット間時間分布の判定をし(ステップB2)、異常がない場合(ステップB3:No)、この処理を終了する。異常がある場合(ステップB3:Yes)、ステップB4に移行する。
具体的には、ステップB2において、検知部21は、時系列に受信したパケット種別の順序と、シーケンス特徴量のパケット種別の順序とを比較し、パケット種別の順序が同じ場合には、シーケンスに異常がないと判定する。順序が異ある場合には、異常があると判定する。
さらに、ステップB2において、検知部21は、時系列に受信したパケットを用いて、パケット間時間分布を算出し、学習フェーズにおいて抽出したパケット間時間分布を参照し、パケット間時間分布が類似している場合には異常がないと判定し、パケット間時間分布が類似していない場合には異常があると判定する。
続いて、出力情報生成部22は、出力情報を生成する(ステップB4)。具体的には、ステップB4において、出力情報生成部22は、シーケンス異常、又はパケット間時間分布異常を取得した場合、制御システム20の管理者などを含む利用者に通知するため、出力装置23に制御システム20に異常が発生したことを表す出力情報を生成する(ステップB4)。続いて、出力装置23は、出力情報生成部22から、出力可能な形式に変換された出力情報を取得し、その出力情報に基づいて生成した画像及び音声などを出力(ステップB5)して本処理を終了する。
[本実施の形態の効果]
以上のように本実施の形態によれば、学習フェーズにおいて、抽出したシーケンス特徴量を用いることで、運用フェーズにおいて、制御システムに発生した異常を検知する精度を向上させることができる。
具体的には、運用フェーズにおいて、制御システムから受信したパケットを用いて、学習において抽出したシーケンス特徴量を参照して、異常を検知する。そうすることで、制御システムに発生した異常を検知する精度を向上させることができる。
また、複数の異なるシーケンスで構成されるシステムでも異常を精度よく検知することができる。
[プログラム]
本発明の実施の形態におけるプログラムは、コンピュータに、図9に示すステップA1からA7、図10に示すステップB1からB5を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における異常検知装置と異常検知方法とを実現することができる。この場合、コンピュータのプロセッサは、周期特定部2、特徴抽出部3、検知部21、出力情報生成部22として機能し、処理を行なう。
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、周期特定部2、特徴抽出部3、検知部21、出力情報生成部22のいずれかとして機能してもよい。
[物理構成]
ここで、実施の形態におけるプログラムを実行することによって、異常検知装置を実現するコンピュータについて図11を用いて説明する。図11は、異常検知装置を実現するコンピュータの一例を示すブロック図である。
図11に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていてもよい。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
なお、本実施の形態における異常検知装置1は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、異常検知装置1は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
[付記]
以上の実施の形態に関し、更に以下の付記を開示する。上述した実施の形態の一部又は全部は、以下に記載する(付記1)から(付記12)により表現することができるが、以下の記載に限定されるものではない。
(付記1)
学習において、学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、周期特定部と、
前記周期をもとに、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する、特徴抽出部と、
を有することを特徴とする異常検知装置。
(付記2)
付記1に記載の異常検知装置であって、
運用において、制御システムから受信したパケットを用いて、学習において抽出した前記シーケンス特徴量を参照して、異常を検知する、検知部
を有することを特徴とする異常検知装置。
(付記3)
付記1又は2に記載の異常検知装置であって、
前記周期特定部は、前記度数が最大となる前記パケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定する
ことを特徴とする異常検知装置。
(付記4)
付記1から3のいずれか一つに記載の異常検知装置であって、
前記特徴抽出部は、前記周期と同じ周期又は倍数の周期を用いて、シーケンス特徴量を抽出する
ことを特徴とする異常検知装置。
(付記5)
(a)学習において、学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、ステップと、
(b)前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する、ステップと、
を有することを特徴とする異常検知方法。
(付記6)
付記5に記載の異常検知方法であって、
(c)運用において、制御システムから受信したパケットを用いて、学習において抽出した前記シーケンス特徴量を参照して、異常を検知する、ステップと
を有することを特徴とする異常検知方法。
(付記7)
付記5又は6に記載の異常検知方法であって、
前記(a)のステップにおいて、前記度数が最大となる前記パケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定する
ことを特徴とする異常検知方法。
(付記8)
付記5から7のいずれか一つに記載の異常検知方法であって、
前記(b)のステップにおいて、前記周期と同じ周期又は倍数の周期を用いて、シーケンス特徴量を抽出する
ことを特徴とする異常検知方法。
(付記9)
コンピュータに、
(a)学習において、受信した学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、ステップと、
(b)前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する、ステップと、
を実行させる命令を含むプログラム。
(付記10)
付記9に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
(c)運用において、制御システムから受信したパケットを用いて、学習において抽出した前記シーケンス特徴量を参照して、異常を検知する、ステップ
を実行させる命令を更に含むプログラム。
(付記11)
付記9又は10に記載のプログラムであって、
前記(a)のステップにおいて、前記度数が最大となる前記パケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定する
ことを特徴とするプログラム
(付記12)
付記9から11のいずれか一つに記載のプログラムであって、
前記(b)のステップにおいて、前記周期と同じ周期又は倍数の周期を用いて、シーケンス特徴量を抽出する
ことを特徴とするプログラム
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
以上のように本発明によれば、運用フェーズにおいて、制御システムから受信したパケットを用いて、学習において抽出したシーケンス特徴量を参照して、異常を検知することで、制御システムに発生した異常を検知する精度を向上させることができる。本発明は、制御システムに発生した異常を検知する分野において有用である。
1 異常検知装置
2 周期特定部
3 特徴抽出部
20 制御システム
21 検知部
22 出力情報生成部
23 出力装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス

Claims (9)

  1. 学習において、学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、周期特定手段と、
    前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する、特徴抽出手段と、を有し、
    前記周期特定手段は、前記度数が最大となる前記パケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定する、
    ことを特徴とする異常検知装置。
  2. 請求項1に記載の異常検知装置であって、
    運用において、制御システムから受信したパケットを用いて、学習において抽出した前記シーケンス特徴量を参照して、異常を検知する、検知手段
    を有することを特徴とする異常検知装置。
  3. 請求項1又は2に記載の異常検知装置であって、
    前記特徴抽出手段は、前記周期と同じ周期又は倍数の周期を用いて、前記シーケンス情報を抽出する
    ことを特徴とする異常検知装置。
  4. (a)学習において、学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、ステップと、
    (b)前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する、ステップと、を有し、
    前記(a)のステップにおいて、前記度数が最大となる前記パケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定する、
    ことを特徴とする異常検知方法。
  5. 請求項に記載の異常検知方法であって、
    (c)運用において、制御システムから受信したパケットを用いて、学習において抽出した前記シーケンス特徴量を参照して、異常を検知する、ステップと
    を有することを特徴とする異常検知方法。
  6. 請求項4又は5に記載の異常検知方法であって、
    前記(b)のステップにおいて、前記周期と同じ周期又は倍数の周期を用いて、前記シーケンス情報を抽出する
    ことを特徴とする異常検知方法。
  7. コンピュータに、
    (a)学習において、受信した学習用パケットを種別し、パケット種別ごとに算出したパケット間隔と、前記パケット間隔の発生頻度を表す度数とを用いて、前記パケット種別の周期を特定する、ステップと、
    (b)前記周期に基づいて、前記パケット種別の順序を表すシーケンス情報と、当該シーケンス情報が有するパケット間の時間分布情報とを有するシーケンス特徴量を抽出する、ステップと、を実行させる命令を含み、
    前記(a)のステップにおいて、前記度数が最大となる前記パケット間隔のうち最小となるパケット間隔を選択し、選択したパケット間隔に基づいて周期を決定させる、
    プログラム。
  8. 請求項に記載のプログラムであって、
    前記プログラムが、前記コンピュータに、
    (c)運用において、制御システムから受信したパケットを用いて、学習において抽出した前記シーケンス特徴量を参照して、異常を検知する、ステップ
    を実行させる命令を更に含むプログラム。
  9. 請求項7又は8に記載のプログラムであって、
    前記(b)のステップにおいて、前記周期と同じ周期又は倍数の周期を用いて、前記シーケンス情報を抽出する
    ことを特徴とするプログラム。
JP2021539730A 2019-08-09 2019-08-09 異常検知装置、異常検知方法、及びプログラム Active JP7318711B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/031765 WO2021028997A1 (ja) 2019-08-09 2019-08-09 異常検知装置、異常検知方法、及びコンピュータ読み取り可能な記録媒体

Publications (3)

Publication Number Publication Date
JPWO2021028997A1 JPWO2021028997A1 (ja) 2021-02-18
JPWO2021028997A5 JPWO2021028997A5 (ja) 2022-04-06
JP7318711B2 true JP7318711B2 (ja) 2023-08-01

Family

ID=74570979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021539730A Active JP7318711B2 (ja) 2019-08-09 2019-08-09 異常検知装置、異常検知方法、及びプログラム

Country Status (3)

Country Link
US (1) US20220279003A1 (ja)
JP (1) JP7318711B2 (ja)
WO (1) WO2021028997A1 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102028093B1 (ko) * 2017-10-25 2019-10-02 한국전자통신연구원 네트워크에 대한 이상행위 탐지 방법 및 이를 이용한 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
栗田 萌 MOYURU KURITA,ログの順序パターンに基づく異常検知手法の提案とCANのログへの適用,情報処理学会 研究報告 コンピュータセキュリティ(CSEC) 2017-CSEC-076 [online] ,日本,情報処理学会,2017年03月17日,pp.1-7

Also Published As

Publication number Publication date
US20220279003A1 (en) 2022-09-01
WO2021028997A1 (ja) 2021-02-18
JPWO2021028997A1 (ja) 2021-02-18

Similar Documents

Publication Publication Date Title
US8401982B1 (en) Using sequencing and timing information of behavior events in machine learning to detect malware
US8621624B2 (en) Apparatus and method for preventing anomaly of application program
EP3258409B1 (en) Device for detecting terminal infected by malware, system for detecting terminal infected by malware, method for detecting terminal infected by malware, and program for detecting terminal infected by malware
US11797668B2 (en) Sample data generation apparatus, sample data generation method, and computer readable medium
US20090245109A1 (en) Methods, systems and computer program products for detecting flow-level network traffic anomalies via abstraction levels
JP5692414B2 (ja) 検知装置、検知プログラムおよび検知方法
WO2016208159A1 (ja) 情報処理装置、情報処理システム、情報処理方法、及び、記憶媒体
JP2018526728A (ja) プロセストレースを用いたグラフベースの侵入検知
JP2007242002A (ja) ネットワーク管理装置及びネットワーク管理方法及びプログラム
US10931706B2 (en) System and method for detecting and identifying a cyber-attack on a network
US20150074808A1 (en) Rootkit Detection in a Computer Network
US11805142B2 (en) Communication system and communication method
US11163875B1 (en) Discovery of computer system incidents to be remediated based on correlation between support interaction data and computer system telemetry data
US20210367958A1 (en) Autonomic incident response system
WO2020246227A1 (ja) ルール生成装置、ルール生成方法、及びコンピュータ読み取り可能な記録媒体
JP7318711B2 (ja) 異常検知装置、異常検知方法、及びプログラム
US11436323B2 (en) Detecting anomalies in software service usage activity
CN111104670A (zh) 一种apt攻击的识别和防护方法
EP4341838A1 (en) Malware protection
EP3799367B1 (en) Generation device, generation method, and generation program
JP2018132787A (ja) ログ分析支援装置およびログ分析支援方法
JP2023523079A (ja) 行動予測モデルを用いたエンドポイントセキュリティ
JP7176630B2 (ja) 検知装置、検知方法および検知プログラム
US11954199B1 (en) Scanning and detecting threats in machine learning models
JP7509243B2 (ja) 改竄検知装置、改竄検知方法および改竄検知プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230523

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230703

R151 Written notification of patent or utility model registration

Ref document number: 7318711

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151