IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許7586306推定装置、推定方法および推定プログラム
<>
  • 特許-推定装置、推定方法および推定プログラム 図1
  • 特許-推定装置、推定方法および推定プログラム 図2
  • 特許-推定装置、推定方法および推定プログラム 図3
  • 特許-推定装置、推定方法および推定プログラム 図4
  • 特許-推定装置、推定方法および推定プログラム 図5
  • 特許-推定装置、推定方法および推定プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】推定装置、推定方法および推定プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241112BHJP
   G06F 18/22 20230101ALI20241112BHJP
   G06F 21/56 20130101ALI20241112BHJP
【FI】
G06N20/00
G06F18/22
G06F21/56
【請求項の数】 7
(21)【出願番号】P 2023522024
(86)(22)【出願日】2021-05-17
(86)【国際出願番号】 JP2021018654
(87)【国際公開番号】W WO2022244077
(87)【国際公開日】2022-11-24
【審査請求日】2023-09-14
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】永井 智大
(72)【発明者】
【氏名】南 拓也
【審査官】山本 俊介
(56)【参考文献】
【文献】特表2007-515867(JP,A)
【文献】深井 賢 ほか,実行パスの解析による性能障害の原因関数の推定,情報処理学会 研究報告 システムソフトウェアとオペレーティング・システム(OS),日本,情報処理学会,2015年11月17日,Vol.2015-OS-135, No.12,pp.1-7,ISSN 2188-8795
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/22
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する推定部と、
前記異常データと類似度が最大と推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する抽出部と、
を有し、
前記推定部は、異常データおよび正常データに出現する文字が連続してループするものとして、動的計画法を適用して前記類似度を算出することを特徴とする推定装置。
【請求項2】
異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する推定部と、
前記異常データと類似度が最大と推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する抽出部と、
を有し、
前記推定部は、アノマリスコアを用いた補正を行うことにより、動的計画法を適用して前記類似度を算出することを特徴とする推定装置。
【請求項3】
前記推定部は、異常データのおよび正常データの文字の類似度を所定の範囲の値として、前記類似度を算出することを特徴とする請求項1またはのいずれかに記載の推定装置。
【請求項4】
推定装置が実行する推定方法であって、
異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する推定工程と、
前記異常データと類似度が最大と推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する抽出工程と、
を含み、
前記推定工程は、異常データおよび正常データに出現する文字が連続してループするものとして、動的計画法を適用して前記類似度を算出することを特徴とする推定方法。
【請求項5】
推定装置が実行する推定方法であって、
異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する推定工程と、
前記異常データと類似度が最大と推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する抽出工程と、
を含み、
前記推定工程は、アノマリスコアを用いた補正を行うことにより、動的計画法を適用して前記類似度を算出することを特徴とする推定方法。
【請求項6】
コンピュータに、
異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する推定ステップと、
前記異常データと類似度が最大と推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する抽出ステップと、
を実行させ
前記推定ステップは、異常データおよび正常データに出現する文字が連続してループするものとして、動的計画法を適用して前記類似度を算出することを特徴とする推定プログラム。
【請求項7】
コンピュータに、
異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する推定ステップと、
前記異常データと類似度が最大と推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する抽出ステップと、
を実行させ、
前記推定ステップは、アノマリスコアを用いた補正を行うことにより、動的計画法を適用して前記類似度を算出することを特徴とする推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推定装置、推定方法および推定プログラムに関する。
【背景技術】
【0002】
近年、工場にある制御装置の通信データを活用することで工場の最適化を目指すスマートファクトリーといわれる取り組みが推進されている。一方、スマートファクトリーを対象とした新種のサイバー攻撃の登場が懸念され、セキュリティ対策が急がれる。新種のサイバー攻撃の防御は難しく、検知の技術が希求されている。特に、自動で入力データから正常な特徴を学習する深層学習の用いたアノマリ型異常検知は、新種のサイバー攻撃を高精度に検知できるため、期待されている。
【0003】
しかし、深層学習の判断プロセスはブラックボックスであり、実運用を想定すると、異常と検知した原因を説明できないため、セキュリティ担当者が異常の原因を特定することが不可能である。そこで、近年、深層学習から異常の原因を説明するいわゆる説明可能なAIと呼ばれる技術が開示されている(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【文献】William Briguglio and Sherif Saad, “Interpreting Machine Learning Malware Detectors Which Leverage N-gram Analysis”, [online], [2021年4月14日検索]、インターネット<URL: https://arxiv.org/abs/2001.10916.pdf>
【文献】Xiao Zhang, Manish Marwah, I-ta Lee, Martin Arlitt, Dan Goldwasser, “ACE-An Anomaly Contribution Explainer for Cyber-Security Applications”, [online], [2021年4月14日検索]、インターネット<URL: https://arxiv.org/pdf/1912.00314.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の技術では、固定長の通信データを異常検知の対象として、異常の原因を特定するものであって、可変長の通信データを異常検知の対象として、異常の原因を特定することができなかった。
【0006】
本発明は、上記に鑑みてなされたものであって、可変長の通信データを異常検知の対象として、異常の原因を特定可能とすることを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明に係る推定装置は、異常と判定された異常データと正常と判定された複数の正常データとを用いて、該異常データとの類似度が最大の正常データを推定する推定部と、前記異常データと推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する抽出部と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、可変長の通信データを異常検知の対象として、異常の原因を特定することが可能となる。
【図面の簡単な説明】
【0009】
図1図1は、推定装置の概要を説明するための図である。
図2図2は、推定装置の概略構成を例示する模式図である。
図3図3は、抽出処理結果を例示する図である。
図4図4は、推定処理手順を示すフローチャートである。
図5図5は、実施例を説明するための図である。
図6図6は、推定プログラムを実行するコンピュータを例示する図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0011】
[推定装置の概要]
図1は、推定装置の概要を説明するための図である。図1に示すように、本実施形態の推定装置は、可変長の通信データを異常検知の対象として、通信データの異常の原因と推定されるバイト箇所を特定する。具体的には、図1(a)に示すように、異常と判定された通信データ(異常判定データ)と複数の正常と判定された通信データ(正常判定データ)とのペアについて、図1(b)に示すように、異常判定データと最も似ている正常判定データを特定する。その際に、推定装置は、複数に分割された部分の計算結果を記録しながら全体の計算結果を求める動的計画法を適用して、異常判定データと各正常判定データとの類似度を算出する。そのうち、図1(c)に示すように、ギャップがある箇所を特定し、これを異常判定の原因となった異常バイトと推定する。
【0012】
[推定装置の構成]
図2は、推定装置の概略構成を例示する模式図である。図2に例示するように、推定装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、および制御部15を備える。
【0013】
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
【0014】
通信制御部13は、NIC(Network Interface Card)等で実現され、ネットワークを介したサーバ等の外部の装置と制御部15との通信を制御する。例えば、通信制御部13は、後述する推定処理の対象のデータセットやパラメータを管理する管理装置等と制御部15との通信を制御する。
【0015】
制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、図2に例示するように、取得部15a、推定部15b、抽出部15cとして機能する。なお、これらの機能部は、それぞれあるいは一部が異なるハードウェアに実装されてもよい。例えば、推定部15bと抽出部15cとは異なるハードウェアに実装されてもよい。また、制御部15は、その他の機能部を備えてもよい。
【0016】
取得部15aは、異常と判定されたデータと、正常と判定された複数のデータとを取得する。例えば、取得部15aは、入力部11を介して、あるいは深層学習の結果を管理する管理装置等から通信制御部13を介して、後述する推定処理の対象の異常データや推定処理に用いる正常データのデータセット、推定処理に用いるパラメータ等を取得する。
【0017】
なお、取得部15aは、取得したデータを、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される不図示の記憶部に記憶させてもよい。あるいは、取得部15aは、これらの情報を記憶部に記憶させずに、以下に説明する推定部15bに転送してもよい。
【0018】
推定部15bは、異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する。具体的には、推定部15bは、取得されたデータを用いて、異常と判定されたパケットのペイロードと、正常と判定されたパケットのペイロードの集合との類似度を評価して、異常と判定されたパケットのペイロードに最も類似しているペイロードを推定する。
【0019】
例えば、推定部15bは、動的計画法を適用して異常データと正常データとの類似度を算出する。ここで、推定装置10は、深層学習による異常検知で異常/正常を判定されたデータのうち、1つの異常データと、例えば100以上の複数の正常データとのパケットのペイロードを処理対象とする。ペイロードは、例えば、[00 00 10 FF 10]等のように表される16進数の文字列であり、長さ1以上の可変長のデータ列である。
【0020】
推定部15bは、異常データおよび正常データに出現する文字が連続してループするものとして異常データと正常データとの類似度を算出する。つまり、推定部15bは、データに出現するバイト文字(00~FF)はループしているものとして、例えば、バイト文字「00」と「FF」の類似度と、「00」と「01」の類似度とは同一の値とする。
【0021】
また、推定部15bは、1つの異常データ列X=[x,x,…,x]と複数の正常データ列Y,Y,…,Y,…,Yのうちの1つの正常データ列Y=[y,y,…,y])との類似度Sを算出する。その際に、推定部15bは、動的計画法を用いて、Xとの類似度が最も高いYtargetを算出する。
【0022】
動的計画法は、次式(1)、(2)のように表すことができる。
【0023】
【数1】
【数2】
【0024】
上記式(1)は、異常データ列X中の1文字xと正常データ列Y中の1文字yとの類似度s(x,y)を用いて、XとYとの類似度S(i,j)を数値化するものである。
【0025】
また、上記式(1)の1行目において、上記式(2)に示すように、xとyが一致した場合にはs(x,y)として+10、一致しない場合には、xとyの距離が差し引かれる。
【0026】
あるいは、推定部15bは、例えば、異常データのバイト文字「00」と比較する場合に、比較先の正常データのバイト文字「00」との文字の類似度sは+10、「01」「02」「03」「FF」「FE」「FD」との文字の類似度sは+5、その他のバイト文字との類似度sは-5というように、予め設定してもよい。
【0027】
このように、推定部15bは、異常データのおよび正常データの文字の類似度sを所定の範囲の値として、異常データと正常データとの類似度を算出する。
【0028】
また、推定部15bは、異常データ列Xとk番目の正常データ列Ykとの類似度を評価した後に、異常データ列Xとk+1番目の正常データ列Yk+1との類似度を評価する処理を、l番目の正常データ列Yまで繰り返す。
【0029】
このようにして、推定部15bは、動的計画法を用いて、可変長のデータ同士を比較することが可能となる。
【0030】
その後、推定部15bは、アノマリスコアを用いた補正を行うことにより、異常データ列Xと各正常データ列Yとの類似度を算出する。つまり、推定部15bは、上記のS(i,j)に各正常データ列Yの深層学習による異常検知の結果のAI異常度スコア(アノマリスコア)をバイアスとしてかけた値を、異常データ列Xと各正常データ列Yとの類似度として算出する。例えば、推定部15bは、正常データのうち、アノマリスコアが低い方の正常データの異常データとの類似度スコアが高くなるように、バイアスをかける。そして、推定部15bは、算出した類似度が最高値となる正常データ列YをYtargetとして特定する。
【0031】
抽出部15cは、異常データと類似度が最大と推定された正常データとを比較して、正常データに対応する部分がない異常データの部分を、異常の原因箇所として抽出する。具体的には、抽出部15cは、異常と判定されたパケットのペイロードのうち、推定されたペイロードとギャップがある箇所を異常箇所として抽出する。
【0032】
例えば、比較元の異常データのペイロードが「00 11 FF FD」であり、比較先の正常データのペイロードが「00 FF FD」であった場合に、抽出部15cは、比較元の2バイト目「11」に対応する部分が正常データにはないため、異常箇所と判定して抽出する。この場合に、抽出部15cは、正常データの2バイト目は空白文字で代替する。
【0033】
なお、正常データの2バイト目が「11」ではない場合も、異常データと正常データの2バイト目をギャップのある箇所として抽出してもよい。
【0034】
また、抽出部15cは、出力部12を介して、抽出した異常箇所を出力する。例えば、抽出部15cは、ディスプレイ等の出力部12に異常データと正常データとのペアのペイロードを出力し、異常箇所と判定したギャップのある箇所をハイライトで強調して表示する。なお、抽出部15cは、抽出した異常箇所の情報を、通信制御部13を介して他の情報処理装置に出力してもよい。
【0035】
ここで、図3は、抽出処理結果を例示する図である。図3には、異常データとの類似度が最大であった正常データと、異常データのうち、その正常データとのギャップがある箇所とが例示されている。図3には、太字で示すように、「0X86 0X8C 0X5F」が、ギャップがある異常箇所として表示されている。
【0036】
[推定処理]
次に、図4を参照して、本実施形態に係る推定装置10による推定処理について説明する。図4は、推定処理手順を示すフローチャートである。図4のフローチャートは、例えば、推定処理の開始を指示する操作入力があったタイミングで開始される。
【0037】
まず、取得部15aが、異常と判定された異常データと、正常と判定された複数の正常データとを取得する(ステップS1)。
【0038】
次に、推定部15bが、異常データと正常データのペアを作成する(ステップS2)。また、推定部15bが、作成したペアのうち、異常データと正常データとの類似度が最大となるペアを推定する(ステップS3)。
【0039】
例えば、推定部15bは、動的計画法を用いて、各ペアの類似度を算出する。その際に、推定部15bは、異常データおよび正常データに出現する文字が連続してループするものとして各ペアの類似度を算出する。また、推定部15bは、異常データのおよび正常データの文字の類似度を所定の範囲の値として、各ペアの類似度を算出する。また、推定部15bは、アノマリスコアを用いた補正を行うことにより、各ペアの類似度を算出する。
【0040】
また、抽出部15cは、異常データと類似度が最大と推定された正常データとを比較して、正常データに対応する部分がなくギャップのある異常データの部分を、異常の原因箇所として抽出する(ステップS4)。
【0041】
そして、抽出部15cは、異常箇所と判定したギャップのある箇所をハイライトで強調して表示する等して出力部12に出力する(ステップS5)。これにより、一連の推定処理が終了する。
【0042】
以上、説明したように、推定装置10において、推定部15bが、異常と判定された異常データと正常と判定された複数の正常データのそれぞれとの類似度が最大となる正常データを推定する。抽出部15cが、異常データと類似度が最大と推定された正常データとを比較して、該正常データに対応する部分がない該異常データの部分を、異常の原因箇所として抽出する。
【0043】
このように、推定装置10は、正常データと異常データの長さに依らずに、正常データと最も類似する異常データの正常データと異なる部分を異常の原因箇所として特定することができる。これにより、推定装置10は、可変長の通信データを異常検知の対象として、異常の原因を特定することが可能となる。
【0044】
また、推定部15bは、動的計画法を適用して異常データと正常データとの類似度を算出する。このように、推定装置10は、具体的に可変長の通信データを異常検知の対象として異常データと正常データとの類似度を算出することにより、精度高く異常の原因を特定することが可能となる。
【0045】
また、推定部15bは、異常データおよび正常データに出現する文字が連続してループするものとして異常データと正常データとの類似度を算出する。このように、推定装置10は、具体的に効率よく類似度を算出することにより、異常の原因を特定することが可能となる。
【0046】
また、推定部15bは、異常データのおよび正常データの文字の類似度を所定の範囲の値として、異常データと正常データとの類似度を算出する。このように、推定装置10は、具体的に効率よく類似度を算出することにより、精度高く異常の原因を特定することが可能となる。
【0047】
また、推定部15bは、アノマリスコアを用いた補正を行うことにより、異常データと正常データとの類似度を算出する。このように、推定装置10は、具体的に高精度に類似度を算出することにより、異常の原因を特定することが可能となる。
【0048】
[実施例]
図5は、実施例を説明するための図である。本実施例では、以下に示すように想定されたサイバー攻撃シナリオで発生する異常な通信データのバイト箇所の推定精度を計測した。
【0049】
サイバー攻撃シナリオとして、正常に稼働している通信の一部に、悪意のある者が悪性のプログラムを実行するためのコードを挿入し、不正操作を可能とする、悪性コード挿入攻撃を想定する。そして、悪性コードが挿入されているバイト箇所を異常箇所として推定した。
【0050】
例えば、正常な通信「00 01 00 00 00 41 6b」、異常な通信「00 01 00 00 54 1b FF FF 31 00 41 6b」の場合に、挿入された悪性コード「54 1b FF FF 31」を異常箇所として特定する。
【0051】
深層学習により正常ラベルまたは異常ラベルが付与されたパケットのうち、2133件の正常データと、挿入する悪性コードの長さ(1~3の3種類)ごとに100件の異常データを用いて、正常データのランダムな1箇所に悪性コードのバイト列を挿入した。
【0052】
1パケットごとに、異常箇所を判定した。その際に、動的計画法で使用可能なデータ形式とするために、各バイトを16進数(0x00~0xff)から数値(0~255)に変換した。
【0053】
図5には、実施例の評価結果が例示されている。評価では、1パケットごとに、異常箇所のバイト列の推定が完全に一致しているかを確認し、完全一致している場合に正解、完全一致していない場合には誤りとした。
【0054】
図5に示すように、異常バイト列の挿入が1箇所の場合には、全てのパケットで異常箇所を推定できた。異常バイト列の挿入が2箇所の場合には、2件のパケットで正しく推定することができず、異常バイト列の挿入が3箇所の場合には、6件のパケットで正しく推定することができなかったものの、全体として、90%以上の精度で推定できることを確認した。
【0055】
[プログラム]
上記実施形態に係る推定装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、推定装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の推定処理を実行する推定プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の推定プログラムを情報処理装置に実行させることにより、情報処理装置を推定装置10として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、推定装置10の機能を、クラウドサーバに実装してもよい。
【0056】
図6は、推定プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0057】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
【0058】
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
【0059】
また、推定プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した推定装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0060】
また、推定プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0061】
なお、推定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、推定プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0062】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0063】
10 推定装置
11 入力部
12 出力部
13 通信制御部
15 制御部
15a 取得部
15b 推定部
15c 抽出部
図1
図2
図3
図4
図5
図6