JP2022065878A - 情報処理プログラム、情報処理方法、および情報処理装置 - Google Patents

情報処理プログラム、情報処理方法、および情報処理装置 Download PDF

Info

Publication number
JP2022065878A
JP2022065878A JP2020174645A JP2020174645A JP2022065878A JP 2022065878 A JP2022065878 A JP 2022065878A JP 2020174645 A JP2020174645 A JP 2020174645A JP 2020174645 A JP2020174645 A JP 2020174645A JP 2022065878 A JP2022065878 A JP 2022065878A
Authority
JP
Japan
Prior art keywords
model
data
training data
feature amount
information processing
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.)
Withdrawn
Application number
JP2020174645A
Other languages
English (en)
Inventor
克成 宍戸
Katsunari Shishido
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020174645A priority Critical patent/JP2022065878A/ja
Priority to EP21186383.2A priority patent/EP3985534A1/en
Priority to US17/381,853 priority patent/US20220121989A1/en
Publication of JP2022065878A publication Critical patent/JP2022065878A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/253Fusion techniques of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】クエリデータが正常であるか否かを精度よく判定可能なモデルを作成すること。【解決手段】情報処理装置100は、訓練データ101が入力される第1のモデル110を取得する。情報処理装置100は、ある規則に従って訓練データ101が加工されてから入力される第2のモデル120を取得する。情報処理装置100は、訓練データ101が入力された際の第1のモデル110の出力と、規則に従って加工された加工後の訓練データ102が入力された際の第2のモデル120の出力と、所定の特徴量103とを入力に用いて、第3のモデル130を学習する。所定の特徴量103は、回避攻撃に関する特徴量である。所定の特徴量103は、例えば、第1のモデル110の入力と、第2のモデル120の入力との違いに関し、回避攻撃が行われた確度を評価する指標となり得る特徴量である。【選択図】図1

Description

本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
従来、機械学習により、訓練データを基に、入力されたクエリデータが正当であるか否かを判定するモデルを作成する技術がある。これに対し、正常なクエリデータを参考に、不正なクエリデータを加工してから、モデルに入力することにより、当該モデルに、不正なクエリデータを、正常であると誤判定させようとする回避攻撃がある。
先行技術としては、例えば、N個のモデルを訓練し、疑似乱数モデル選択器を利用して、N個のモデルのうち1個のモデルをランダムに選択するものがある。また、例えば、通常の訓練データと、ノイズの訓練データと、敵対的な訓練データとを利用することにより、勾配ベースの回避攻撃に有効な特徴量表現のノイズを生成する技術がある。
米国特許出願公開第2020/0104673号明細書 米国特許出願公開第2019/0130110号明細書
しかしながら、従来技術では、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することは難しい。例えば、回避攻撃で作成された不正なクエリデータを、異常であると判定する確率が向上するよう、モデルを作成した場合、正常なクエリデータを、異常であると誤判定する確率の向上を招いてしまうという問題がある。
1つの側面では、本発明は、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することを目的とする。
1つの実施態様によれば、訓練データが入力される第1のモデルを取得し、ある規則に従って訓練データが加工されてから入力される第2のモデルを取得し、訓練データが入力された際の第1のモデルの出力と、規則に従って加工された加工後の訓練データが入力された際の第2のモデルの出力と、加工前の訓練データに関する特徴量、加工後の訓練データに関する特徴量、加工前後の訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とを入力に用いて、異常データを検知する第3のモデルを学習する情報処理プログラム、情報処理方法、および情報処理装置が提案される。
一態様によれば、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することが可能になる。
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。 図2は、異常検知システム200の一例を示す説明図である。 図3は、情報処理装置100のハードウェア構成例を示すブロック図である。 図4は、情報処理装置100の機能的構成例を示すブロック図である。 図5は、構造化データの一例を示す説明図である。 図6は、情報処理装置100の動作の一例を示す説明図である。 図7は、セッション長を算出する一例を示す説明図である。 図8は、セッション長の差分を算出する一例を示す説明図である。 図9は、情報処理装置100により得られる効果の一例を示す説明図(その1)である。 図10は、情報処理装置100により得られる効果の一例を示す説明図(その2)である。 図11は、訓練処理手順の一例を示すフローチャートである。 図12は、推論処理手順の一例を示すフローチャートである。
以下に、図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態にかかる情報処理方法の一実施例)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置100は、機械学習により、所定のモデルを学習するためのコンピュータである。所定のモデルは、例えば、不正なクエリデータを検知するためのモデルである。不正なクエリデータは、例えば、回避攻撃によって作成される場合が考えられる。
回避攻撃は、正常なクエリデータを参考に、不正なクエリデータを加工し、加工後の不正なクエリデータを、モデルに入力することにより、当該モデルに、加工後の不正なクエリデータを、正常であると誤って判定させようとする攻撃である。回避攻撃は、例えば、正常なクエリデータの一部を、不正なクエリデータに挿入することにより、不正なクエリデータを加工する。例えば、回避攻撃により、モデルに、攻撃通信のログデータを、正常通信のログデータと誤って判定させようとする状況が考えられる。また、例えば、回避攻撃により、スパムのメールデータを、正常なメールデータと誤って判定させようとする状況が考えられる。
従って、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することが望まれている。具体的には、正常なクエリデータを、異常であると誤って判定することなく、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定することが可能なモデルを作成することが望まれている。しかしながら、従来では、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することは難しい。
ここで、例えば、ノイズが加えられた敵対的サンプルと呼ばれる訓練データを用いて、モデルを学習するAdversarial Trainingと呼ばれる手法1が考えられる。手法1では、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することは難しい。例えば、手法1では、回避攻撃により作成された不正なクエリデータを、正常であると誤って判定してしまう確率を低減することは難しい。
また、例えば、回避攻撃の性質を基に、訓練データを加工し、加工後の訓練データを用いて、モデルを学習することにより、回避攻撃により作成された不正なクエリデータを、異常であると判定する確率の向上を図ろうとする手法2が考えられる。手法2でも、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することは難しい。例えば、手法2では、手法1に比べて、不正なクエリデータを、異常であると正しく判定する確率が向上する傾向がある一方で、正常なクエリデータを、異常であると誤って判定してしまう確率を低減することは難しい。
また、例えば、手法1で得たモデルと、手法2で得たモデルとを組み合わせて、新たなモデルを学習するアンサンブル学習と呼ばれる手法3がある。手法3の一例は、Stackingである。手法3でも、クエリデータが正常であるか否かを精度よく判定可能なモデルを作成することは難しい。例えば、手法3では、回避攻撃により作成された不正なクエリデータを、正常であると誤って判定してしまう確率を低減することは難しい。
このように、従来では、正常なクエリデータを、正常であると正しく判定する確率と、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定する確率とが、同時に高くなるよう、モデルを作成することは難しい。
以下の説明では、正常なクエリデータを、正常であると正しく判定する確率を「分類精度」と表記する場合がある。例えば、正常なクエリデータを、正常であると正しく判定する確率の高さが、分類精度の高さと定義される。また、以下の説明では、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定する確率を「攻撃耐性」と表記する場合がある。例えば、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定する確率の高さが、攻撃耐性の高さと定義される。
そこで、本実施の形態では、正常なクエリデータを、正常であると正しく判定する確率と、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定する確率とが、同時に高くなるよう、モデルを作成する情報処理方法について説明する。
(1-1)情報処理装置100は、訓練データ101が入力される第1のモデル110を取得する。第1のモデル110は、例えば、訓練データ101を加工せずに入力として用いるモデルである。第1のモデル110は、具体的には、Adversarial Trainingで学習されたモデルである。第1のモデル110は、例えば、ニューラルネットワーク、ロジスティク回帰モデル、SVM(support vector machine)、または、木構造モデルなどによって実現される。第1のモデル110は、例えば、第2のモデル120に比べて、分類精度が比較的高く、正常なクエリデータを、正常であると正しく判定する確率が比較的高いことが好ましい。
情報処理装置100は、例えば、第1のモデル110を学習することにより、第1のモデル110を取得する。情報処理装置100は、例えば、第1のモデル110を学習する他のコンピュータから、第1のモデル110を受信することにより、第1のモデル110を取得してもよい。
(1-2)情報処理装置100は、ある規則に従って訓練データ101が加工されてから入力される第2のモデル120を取得する。規則は、回避攻撃に対応する。規則は、例えば、回避攻撃に対する攻撃耐性を高めるよう、訓練データ101を加工する方法を規定する。加工する方法は、例えば、訓練データ101に、回避攻撃が行われていることを仮定し、訓練データ101の一部を削除する方法が考えられる。加工する方法は、具体的には、訓練データ101のうち、内容が重複するD個のデータがあれば、内容が重複するD個のデータを、1≦N<D個のデータに削減する方法である。
第2のモデル120は、第1のモデル110とは異なるアルゴリズムで学習されたモデルである。第2のモデル120は、訓練データ101を加工してから入力として用いるモデルである。第2のモデル120は、例えば、ニューラルネットワーク、ロジスティク回帰モデル、SVM、または、木構造モデルなどによって実現される。第2のモデル120は、例えば、第1のモデル110に比べて、攻撃耐性が比較的高く、不正なクエリデータを、異常であると正しく判定する確率が比較的高いことが好ましい。
情報処理装置100は、例えば、第2のモデル120を学習することにより、第2のモデル120を取得する。情報処理装置100は、例えば、第2のモデル120を学習する他のコンピュータから、第2のモデル120を受信することにより、第2のモデル120を取得してもよい。
(1-3)情報処理装置100は、訓練データ101が入力された際の第1のモデル110の出力と、加工後の訓練データ102が入力された際の第2のモデル120の出力と、所定の特徴量103とを入力に用いて、第3のモデル130を学習する。加工後の訓練データ102は、例えば、規則に従って加工されている。第3のモデル130は、異常データを検知するためのモデルである。第3のモデル130は、例えば、クエリデータが正常であるか否かを判定するためのモデルである。第3のモデル130は、具体的には、クエリデータが異常である確率の高さを示す攻撃確信度を出力するモデルである。第3のモデル130は、例えば、ニューラルネットワーク、ロジスティク回帰モデル、SVM、または、木構造モデルなどで実現される。
所定の特徴量103は、回避攻撃に関する特徴量である。所定の特徴量103は、例えば、第1のモデル110の入力と、第2のモデル120の入力との違いに関し、回避攻撃が行われた確度を評価する指標となり得る特徴量である。所定の特徴量103は、例えば、回避攻撃が行われない場合に対応する訓練データ101の特徴を表し、回避攻撃が行われたか否かを評価する指標となり得る特徴量であってもよい。所定の特徴量103は、例えば、回避攻撃が行われた場合に対応する加工後の訓練データ102の特徴を表し、回避攻撃が行われたか否かを評価する指標となり得る特徴量103であってもよい。
所定の特徴量103は、具体的には、加工前後の訓練データ101,102の違いに関する特徴量である。ここで、回避攻撃では、例えば、正常なクエリデータの一部が、不正なクエリデータに挿入されるため、加工前後の訓練データ101,102の違いは、回避攻撃が行われた確度を評価する指標になり得る特徴量である。所定の特徴量103は、より具体的には、加工前後の訓練データ101,102のデータ長の差分である。
情報処理装置100は、例えば、訓練データ101を取得し、規則に従って訓練データ101を加工する。訓練データ101は、複数あってもよい。情報処理装置100は、例えば、訓練データ101が入力された際の第1のモデル110の出力と、規則に従って加工された加工後の訓練データ102が入力された際の第2のモデル120の出力とを取得する。また、情報処理装置100は、例えば、加工前後の訓練データ101,102のデータ長の差分を算出する。
そして、情報処理装置100は、例えば、第1のモデル110の出力と、第2のモデル120の出力と、加工前後の訓練データ101,102のデータ長の差分とを入力に用いて、第3のモデル130を学習する。その後、情報処理装置100は、例えば、学習した第3のモデル130を用いて、クエリデータが正常であるか否かを判定してもよい。また、情報処理装置100は、例えば、学習した第3のモデル130を、他のコンピュータに送信し、他のコンピュータで、クエリデータが正常であるか否かを判定可能なようにしてもよい。
これにより、情報処理装置100は、クエリデータが正常であるか否かを精度よく判定可能な第3のモデル130を学習することができる。情報処理装置100は、例えば、正常なクエリデータを、正常であると正しく判定する確率と、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定する確率とが、同時に高くなるよう、第3のモデル130を学習することができる。
具体的には、第3のモデル130は、回避攻撃に関する特徴量103を入力として用いるため、分類精度が比較的高い第1のモデル110の出力と、攻撃耐性が比較的高い第2のモデル120の出力とを適切に考慮し、出力する攻撃確信度に反映することができる。このため、第3のモデル130は、回避攻撃の性質を考慮し、分類精度を確保し、かつ、攻撃耐性を確保することができる。
ここでは、所定の特徴量103が、加工前後の訓練データ101,102の違いに関する特徴量である場合について説明したが、これに限らない。例えば、所定の特徴量103が、加工前の訓練データ101に関する特徴量、加工後の訓練データ102に関する特徴量、正常データに関する特徴量、または、攻撃データに関する特徴量の少なくともいずれかの特徴量である場合があってもよい。攻撃データは、例えば、回避攻撃により作成された不正なクエリデータに相当する。
所定の特徴量103は、加工前の訓練データ101に関する特徴量であれば、回避攻撃が行われない場合に対応する訓練データ101の特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデル130は、所定の特徴量103により、分類精度が比較的高い第1のモデル110の出力と、攻撃耐性が比較的高い第2のモデル120の出力とを適切に考慮することができ、クエリデータが正常であるか否かを精度よく判定可能になる。
所定の特徴量103は、加工後の訓練データ102に関する特徴量であれば、回避攻撃が行われた場合に対応する加工後の訓練データ102の特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデル130は、所定の特徴量103により、分類精度が比較的高い第1のモデル110の出力と、攻撃耐性が比較的高い第2のモデル120の出力とを適切に考慮することができ、クエリデータが正常であるか否かを精度よく判定可能になる。
所定の特徴量103は、正常データに関する特徴量であれば、回避攻撃が行われない場合に対応するクエリデータの特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデル130は、所定の特徴量103により、分類精度が比較的高い第1のモデル110の出力と、攻撃耐性が比較的高い第2のモデル120の出力とを適切に考慮することができ、クエリデータが正常であるか否かを精度よく判定可能になる。
所定の特徴量103は、攻撃データに関する特徴量であれば、回避攻撃が行われた場合に対応するクエリデータの特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデル130は、所定の特徴量103により、分類精度が比較的高い第1のモデル110の出力と、攻撃耐性が比較的高い第2のモデル120の出力とを適切に考慮することができ、クエリデータが正常であるか否かを精度よく判定可能になる。
ここでは、加工する方法が、訓練データ101の一部を削除する方法である場合について説明したが、これに限らない。例えば、加工する方法が、訓練データ101に、正常なデータの一部を挿入し、回避攻撃が行われた場合に対応する状態にする方法である場合があってもよい。
ここでは、情報処理装置100が、第1のモデル110の出力と、第2のモデル120の出力との他、1種類の特徴量103を入力に用いて、第3のモデル130を学習する場合について説明したが、これに限らない。例えば、情報処理装置100が、第1のモデル110の出力と、第2のモデル120の出力との他、複数種類の特徴量103を入力に用いて、第3のモデル130を学習する場合があってもよい。
ここでは、情報処理装置100が、分類精度が比較的高い第1のモデル110と、攻撃耐性が比較的高い第2のモデル120との、2種類のモデルを利用して、第3のモデル130を学習する場合について説明したが、これに限らない。例えば、情報処理装置100が、分類精度が比較的高い複数のモデルと、攻撃耐性が比較的高い複数のモデルとを利用して、第3のモデル130を学習する場合があってもよい。
また、例えば、情報処理装置100が、分類精度が比較的高い1つのモデルと、攻撃耐性が比較的高い複数のモデルとを利用して、第3のモデル130を学習する場合があってもよい。また、例えば、情報処理装置100が、分類精度が比較的高い複数のモデルと、攻撃耐性が比較的高い1つのモデルとを利用して、第3のモデル130を学習する場合があってもよい。
(異常検知システム200の一例)
次に、図2を用いて、図1に示した情報処理装置100を適用した、異常検知システム200の一例について説明する。
図2は、異常検知システム200の一例を示す説明図である。図2において、異常検知システム200は、情報処理装置100と、クライアント装置201とを含む。
異常検知システム200において、情報処理装置100とクライアント装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
情報処理装置100は、第1の訓練データ群を取得する。第1の訓練データ群は、第1のモデルと、第2のモデルとを学習する際に用いられる訓練データの集まりである。訓練データは、例えば、構造化データである。訓練データは、例えば、クライアント装置201が実施した通信のログデータ、または、クライアント装置201が受信したメールデータなどに対応する。情報処理装置100は、例えば、訓練データをクライアント装置201から収集することにより、第1の訓練データ群を取得する。
情報処理装置100は、第1の訓練データ群に基づいて、第1のモデルと、第2のモデルとを学習する。情報処理装置100は、例えば、第1の訓練データ群のそれぞれの訓練データを入力に用いて、第1のモデルを学習する。学習方法は、例えば、誤差逆伝搬などである。情報処理装置100は、例えば、第1の訓練データ群のそれぞれの訓練データを加工してから入力に用いて、第2のモデルを学習する。
情報処理装置100は、第2の訓練データ群を取得する。第2の訓練データ群は、第3のモデルを学習する際に用いられる訓練データの集まりである。第2の訓練データ群は、例えば、第1の訓練データ群とは異なる。第2の訓練データ群は、例えば、第1の訓練データ群と同一であってもよい。情報処理装置100は、例えば、訓練データをクライアント装置201から収集することにより、第2の訓練データ群を取得する。
情報処理装置100は、第2の訓練データ群のそれぞれの訓練データについて、第1のモデルの出力と、第2のモデルの出力とを取得する。情報処理装置100は、例えば、第2の訓練データ群のそれぞれの訓練データについて、当該訓練データを入力に用いた場合の第1のモデルの出力を取得する。情報処理装置100は、例えば、第2の訓練データ群のそれぞれの訓練データについて、当該訓練データを加工してから入力に用いた場合の第2のモデルの出力を取得する。
情報処理装置100は、第2の訓練データ群のそれぞれの訓練データについて、加工前後の当該訓練データの違いを表す特徴量を算出する。情報処理装置100は、取得した第1のモデルの出力と、取得した第2のモデルの出力と、算出した特徴量とを入力に用いて、第3のモデルを学習する。
情報処理装置100は、クエリデータを取得する。クエリデータは、正常であるか否かが問い合わせられた対象のデータである。クエリデータは、例えば、構造化データである。クエリデータは、例えば、クライアント装置201が実施した通信のログデータ、または、クライアント装置201が受信したメールデータなどに対応する。情報処理装置100は、例えば、クエリデータをクライアント装置201から受信することにより、クエリデータを取得する。
情報処理装置100は、クエリデータに基づいて、第1のモデルの出力と、第2のモデルの出力とを取得する。情報処理装置100は、例えば、クエリデータを入力に用いた場合の第1のモデルの出力を取得する。情報処理装置100は、例えば、クエリデータを加工してから入力に用いた場合の第2のモデルの出力を取得する。情報処理装置100は、加工前後のクエリデータの違いを表す特徴量を算出する。情報処理装置100は、取得した第1のモデルの出力と、取得した第2のモデルの出力と、算出した特徴量とを入力に用いた場合の第3のモデルの出力を取得する。
情報処理装置100は、第3のモデルの出力に基づいて、クエリデータが正常であるか否かを判定する。情報処理装置100は、例えば、第3のモデルの出力が閾値以上であれば、クエリデータが異常であると判定する。一方で、情報処理装置100は、第3のモデルの出力が閾値未満であれば、クエリデータが正常であると判定する。情報処理装置100は、判定した結果を、クエリデータの送信元であるクライアント装置201に送信する。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
クライアント装置201は、訓練データ、または、クエリデータを、情報処理装置100に送信するコンピュータである。クライアント装置201は、例えば、他のコンピュータと通信を行った際、当該通信のログデータを生成し、訓練データ、または、クエリデータとして、情報処理装置100に送信する。他のコンピュータは、例えば、他のクライアント装置201である。他のコンピュータは、例えば、他のクライアント装置201とは異なる装置であってもよい。クライアント装置201は、例えば、他のコンピュータから受信したメールデータを、訓練データ、または、クエリデータとして、情報処理装置100に送信してもよい。
クライアント装置201は、クエリデータが正常であるか否かを判定した結果を、情報処理装置100から受信する。クライアント装置201は、クエリデータが正常であるか否かを判定した結果を、クライアント装置201の利用者が参照可能に出力する。クライアント装置201は、例えば、PC、タブレット端末、スマートフォン、ウェアラブル端末、または、IoT(Internet of Things)機器などである。
上述した異常検知システム200は、例えば、クライアント装置201の利用者が、回避攻撃で作成された不正なデータを利用し、不利益を被ってしまうことを防止するために活用される。
異常検知システム200は、具体的には、例えば、クライアント装置201が実施した通信のログデータを、クエリデータとして扱い、通信のログデータが、正常であるか否かを判定することにより、攻撃通信のログデータを検知する。そして、異常検知システム200は、攻撃通信のログデータを、クライアント装置201の利用者が把握可能なように、クライアント装置201を制御することにより、クライアント装置201の利用者が被る不利益の低減化を図る。
異常検知システム200は、具体的には、例えば、クライアント装置201が受信したメールデータを、クエリデータとして扱い、クライアント装置201が受信したメールデータが、正常であるか否かを判定することにより、スパムのメールデータを検知する。そして、異常検知システム200は、スパムのメールデータを、クライアント装置201の利用者が把握可能なように、クライアント装置201を制御することにより、クライアント装置201の利用者が被る不利益の低減化を図る。
異常検知システム200は、具体的には、例えば、クライアント装置201が有するソフトウェアのPE(Portable Executable)ファイルの特徴を表す特徴データを、クエリデータとして扱う。異常検知システム200は、PEファイルが正常であるか否かを判定することにより、マルウェアとなるソフトウェアを検知する。そして、異常検知システム200は、マルウェアとなるソフトウェアを、クライアント装置201の利用者が把握可能なように、クライアント装置201を制御することにより、クライアント装置201の利用者が被る不利益の低減化を図る。
ここでは、情報処理装置100が、訓練データをクライアント装置201から収集する場合について説明したが、これに限らない。例えば、情報処理装置100が、情報処理装置100の利用者の操作入力に基づき、訓練データの入力を受け付ける場合があってもよい。また、例えば、情報処理装置100が、着脱可能な記録媒体から、訓練データを読み出す場合があってもよい。
ここでは、情報処理装置100が、第1の訓練データ群に基づいて、第1のモデルと、第2のモデルとを学習することにより、第1のモデルと、第2のモデルとを取得する場合について説明したが、これに限らない。例えば、情報処理装置100が、第1のモデルと、第2のモデルとを学習する他のコンピュータから、第1のモデルと、第2のモデルとを受信することにより、第1のモデルと、第2のモデルとを取得する場合があってもよい。
ここでは、情報処理装置100が、クエリデータを取得し、第3のモデルを利用して、クエリデータが正常であるか否かを判定する場合について説明したが、これに限らない。例えば、情報処理装置100が、第3のモデルを、他のコンピュータに送信する場合があってもよい。この場合、他のコンピュータが、クエリデータを取得し、受信した第3のモデルを利用して、クエリデータが正常であるか否かを判定することになる。
ここでは、情報処理装置100が、クライアント装置201とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアント装置201としての機能を有する場合があってもよい。この場合、異常検知システム200は、クライアント装置201を含まなくてもよい。
(情報処理装置100のハードウェア構成例)
次に、図3を用いて、情報処理装置100のハードウェア構成例について説明する。
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(クライアント装置201のハードウェア構成例)
クライアント装置201のハードウェア構成例は、図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
(情報処理装置100の機能的構成例)
次に、図4を用いて、情報処理装置100の機能的構成例について説明する。
図4は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部400と、取得部401と、加工部402と、第1学習部403と、第2学習部404と、第3学習部405と、第1利用部406と、第2利用部407と、第3利用部408と、出力部409とを含む。
記憶部400は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部400が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部400が、情報処理装置100とは異なる装置に含まれ、記憶部400の記憶内容が情報処理装置100から参照可能である場合があってもよい。
取得部401~出力部409は、制御部の一例として機能する。取得部401~出力部409は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部400は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部400は、例えば、訓練データを記憶する。訓練データは、モデルに対する入力xを示す。訓練データは、モデルからの回答yと対応付けられる。回答yは、入力xに応じたモデルの出力の正解である。訓練データは、例えば、構造化データである。訓練データは、例えば、通信のログデータ、または、メールデータなどに対応する。
記憶部400は、クエリデータを記憶する。クエリデータは、正常であるか否かが問い合わせられた対象のデータである。クエリデータは、例えば、構造化データである。クエリデータは、例えば、通信のログデータ、または、メールデータなどに対応する。クエリデータは、攻撃者が回避攻撃によって作成した不正なクエリデータである場合がある。
記憶部400は、例えば、規則を記憶する。規則は、回避攻撃に対応する。規則は、例えば、回避攻撃に対する攻撃耐性を高めるよう、訓練データを加工する方法を規定する。規則は、例えば、訓練データの他、クエリデータを加工する際に適用される。規則は、具体的には、訓練データ、または、クエリデータに、既に回避攻撃が行われていることを仮定し、訓練データ、または、クエリデータの一部を削除する方法を規定する。規則は、より具体的には、訓練データ、または、クエリデータのうち、内容が重複するD個のデータがあれば、内容が重複するD個のデータを、1≦N<D個のデータまで削減する方法である。また、規則は、具体的には、訓練データ、または、クエリデータに、正常なデータの一部を挿入することにより、訓練データ、または、クエリデータを加工し、回避攻撃が行われた場合に対応する状態にする方法を規定してもよい。
記憶部400は、例えば、訓練データ、または、クエリデータが入力される第1のモデルを記憶する。第1のモデルは、例えば、訓練データ、または、クエリデータを加工せずに入力として用いるモデルである。第1のモデルは、具体的には、Adversarial Trainingで学習されたモデルである。第1のモデルは、例えば、ニューラルネットワーク、ロジスティク回帰モデル、SVM、または、木構造モデルなどによって実現される。第1のモデルは、例えば、第2のモデルに比べて、分類精度が比較的高く、正常なクエリデータを、正常であると正しく判定する確率が比較的高いことが好ましい。記憶部400は、具体的には、第1のモデルのパラメータを記憶する。第1のモデルは、例えば、取得部401によって取得され、または、第1学習部403によって学習される。
記憶部400は、規則に従って訓練データ、または、クエリデータが加工されてから入力される第2のモデルを取得する。第2のモデルは、第1のモデルとは異なるアルゴリズムで学習されたモデルである。第2のモデルは、例えば、ニューラルネットワーク、ロジスティク回帰モデル、SVM、または、木構造モデルなどによって実現される。第2のモデルは、例えば、第1のモデルに比べて、攻撃耐性が比較的高く、不正なクエリデータを、異常であると正しく判定する確率が比較的高いことが好ましい。第2のモデルは、例えば、取得部401によって取得され、または、第2学習部404によって学習される。
記憶部400は、第1のモデルの出力と、第2のモデルの出力と、所定の特徴量とが入力に用いられる第3のモデルを記憶する。第3のモデルは、異常データを検知するためのモデルである。第3のモデルは、例えば、クエリデータが正常であるか否かを判定するためのモデルである。第3のモデルは、具体的には、クエリデータが異常である確率の高さを示す攻撃確信度を出力するモデルである。第3のモデルは、例えば、ニューラルネットワーク、ロジスティク回帰モデル、SVM、または、木構造モデルなどで実現される。第3のモデルは、例えば、第3学習部405によって学習される。
所定の特徴量は、回避攻撃に関する特徴量である。所定の特徴量は、例えば、第1のモデルの入力と、第2のモデルの入力との違いに関し、回避攻撃が行われた確度を評価する指標となり得る特徴量である。所定の特徴量は、例えば、回避攻撃が行われない場合に対応する訓練データ、または、クエリデータの特徴を表し、回避攻撃が行われたか否かを評価する指標となり得る特徴量であってもよい。所定の特徴量は、例えば、回避攻撃が行われた場合に対応する訓練データ、または、クエリデータの特徴を表し、回避攻撃が行われたか否かを評価する指標となり得る特徴量であってもよい。
所定の特徴量は、具体的には、加工前後の訓練データ、または、加工前後のクエリデータの違いに関する特徴量である。ここで、回避攻撃では、例えば、正常なクエリデータの一部が、不正なクエリデータに挿入されるため、加工前後の訓練データ、または、加工前後のクエリデータの違いは、回避攻撃が行われた確度を評価する指標になり得る特徴量である。所定の特徴量は、より具体的には、加工前後の訓練データ、または、加工前後のクエリデータのデータ長の差分である。データ長は、例えば、セッション長である。セッション長は、訓練データ、または、クエリデータに含まれるコマンドの数である。第3のモデルは、回避攻撃に関する特徴量を入力として用いるため、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮し、出力する攻撃確信度に反映可能となる。
所定の特徴量は、具体的には、加工前の訓練データ、または、加工前のクエリデータに関する特徴量であってもよい。所定の特徴量は、加工前の訓練データ、または、加工前のクエリデータに関する特徴量であれば、回避攻撃が行われない場合に対応する訓練データ、または、クエリデータの特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデルは、所定の特徴量により、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮し、出力する攻撃確信度に反映可能となる。
所定の特徴量は、具体的には、加工後の訓練データ、または、加工後のクエリデータに関する特徴量であってもよい。所定の特徴量は、加工後の訓練データ、または、加工後のクエリデータに関する特徴量であれば、回避攻撃が行われた場合に対応する訓練データ、または、クエリデータの特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデルは、所定の特徴量により、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮し、出力する攻撃確信度に反映可能となる。
所定の特徴量は、具体的には、正常データに関する特徴量であってもよい。正常データに関する特徴量は、例えば、正常データに含まれる特定のデータの数である。特定のデータは、例えば、特定のコマンドである。所定の特徴量は、正常データに関する特徴量であれば、回避攻撃が行われない場合に対応する訓練データ、または、クエリデータの特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデルは、所定の特徴量により、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮し、出力する攻撃確信度に反映可能となる。
所定の特徴量は、具体的には、攻撃データに関する特徴量であってもよい。攻撃データは、例えば、回避攻撃により作成された不正なクエリデータに相当する。攻撃データに関する特徴量は、例えば、攻撃データに含まれる特定のデータの数である。特定のデータは、例えば、特定のコマンドである。所定の特徴量は、攻撃データに関する特徴量であれば、回避攻撃が行われた場合に対応する訓練データ、または、クエリデータの特徴を表すことになり、回避攻撃が行われたか否かを評価する指標となり得る。このため、第3のモデルは、所定の特徴量により、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮し、出力する攻撃確信度に反映可能となる。
所定の特徴量は、具体的には、加工前の訓練データ、または、加工前のクエリデータのデータ長と、データ長の平均値との差分であってもよい。平均値は、例えば、過去に取得した、加工前の訓練データ群、または、加工前のクエリデータ群に基づいて算出される。所定の特徴量は、具体的には、加工後の訓練データ、または、加工後のクエリデータのデータ長と、データ長の平均値との差分であってもよい。平均値は、例えば、過去に取得した、加工後の訓練データ群、または、加工後のクエリデータ群に基づいて算出される。
所定の特徴量は、具体的には、加工前後の訓練データ、または、加工前後のクエリデータのデータ長の差分に関する統計値であってもよい。統計値は、例えば、最大値、最小値、平均値、最頻値、または、中央値などである。統計値は、分散、または、標準偏差などであってもよい。
取得部401は、各機能部の処理に用いられる各種情報を取得する。取得部401は、取得した各種情報を、記憶部400に記憶し、または、各機能部に出力する。また、取得部401は、記憶部400に記憶しておいた各種情報を、各機能部に出力してもよい。取得部401は、例えば、情報処理装置100の利用者の操作入力に基づき、各種情報を取得する。取得部401は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
取得部401は、訓練データを取得する。取得部401は、例えば、所定のタイミングで、訓練データをクライアント装置201から収集することにより取得する。所定のタイミングは、情報処理装置100の利用者によって設定される。所定のタイミングは、例えば、一定時間ごとである。所定のタイミングは、情報処理装置100の利用者による所定の操作入力があったタイミングであってもよい。
取得部401は、具体的には、第1の訓練データ群を取得する。第1の訓練データ群は、第1のモデルと、第2のモデルとを学習する際に用いられる、1以上の訓練データの集まりである。また、取得部401は、具体的には、第2の訓練データ群を取得する。第2の訓練データ群は、第3のモデルを学習する際に用いられる、1以上の訓練データの集まりである。第2の訓練データ群は、例えば、第1の訓練データ群とは異なる。第2の訓練データ群は、例えば、第1の訓練データ群と同一であってもよい。
取得部401が、第1の訓練データ群を取得せず、第1学習部403が、第1のモデルを学習せず、第2学習部404が、第2のモデルを学習しない場合があってもよい。この場合、取得部401は、例えば、第1のモデルと、第2のモデルとを取得する。取得部401は、具体的には、第1のモデルと、第2のモデルとを、他のコンピュータから受信することにより取得する。この場合、他のコンピュータが、第1学習部403と、第2学習部404とを有することになる。この場合、情報処理装置100は、第1学習部403と、第2学習部404とを含んでいなくてもよい。
取得部401は、クエリデータを取得する。取得部401は、例えば、クエリデータをクライアント装置201から受信することにより取得する。
取得部401は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、情報処理装置100の利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
取得部401は、例えば、訓練データを取得したことを、第1学習部403と、第2学習部404と、第3学習部405との処理を開始する開始トリガーとして受け付けてもよい。取得部401は、具体的には、第1の訓練データ群を取得したことを、第1学習部403と、第2学習部404との処理を開始する開始トリガーとして受け付けてもよい。取得部401は、具体的には、第2の訓練データ群を取得したことを、第3学習部405の処理を開始する開始トリガーとして受け付けてもよい。取得部401は、例えば、クエリデータを取得したことを、第1利用部406と、第2利用部407と、第3利用部408との処理を開始する開始トリガーとして受け付けてもよい。
加工部402は、規則に従って、取得した訓練データを加工する。加工部402は、例えば、回避攻撃に対応する規則に従って、取得した訓練データの一部を削除することにより、取得した訓練データを加工する。加工部402は、具体的には、取得した訓練データのうち、内容が重複するD個のデータがあれば、内容が重複するD個のデータを、1≦N<D個のデータまで削減する。これにより、加工部402は、攻撃耐性が比較的高い第2のモデルの入力に適合した形式に、取得した訓練データを加工することができる。
また、加工部402は、例えば、回避攻撃に対応する規則に従って、取得した訓練データに、正常データの一部を挿入することにより、取得した訓練データを加工してもよい。これにより、加工部402は、攻撃耐性が比較的高い第2のモデルの入力に適合した形式に、取得した訓練データを加工することができる。
加工部402は、訓練データに関する所定の特徴量を算出する。加工部402は、例えば、所定の特徴量として、加工前後の訓練データの違いに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、加工前後の訓練データのデータ長の差分を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工前の訓練データに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、加工前の訓練データのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工後の訓練データに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、加工後の訓練データのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、正常データに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、正常データのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、攻撃データに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、攻撃データのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工前の訓練データのデータ長と、データ長の平均値との差分を算出する。平均値は、例えば、過去に取得した、加工前の訓練データ群に基づいて算出される。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工後の訓練データのデータ長と、データ長の平均値との差分を算出する。平均値は、例えば、過去に取得した、加工後の訓練データ群に基づいて算出される。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、規則に従って、取得したクエリデータを加工する。加工部402は、例えば、回避攻撃に対応する規則に従って、取得したクエリデータの一部を削除することにより、取得したクエリデータを加工する。加工部402は、具体的には、取得したクエリデータのうち、内容が重複するD個のデータがあれば、内容が重複するD個のデータを、1≦N<D個のデータまで削減する。これにより、加工部402は、攻撃耐性が比較的高い第2のモデルの入力に適合した形式に、取得したクエリデータを加工することができる。
また、加工部402は、例えば、回避攻撃に対応する規則に従って、取得したクエリデータに、正常データの一部を挿入することにより、取得したクエリデータを加工してもよい。これにより、加工部402は、攻撃耐性が比較的高い第2のモデルの入力に適合した形式に、取得したクエリデータを加工することができる。
加工部402は、クエリデータに関する所定の特徴量を算出する。加工部402は、例えば、所定の特徴量として、加工前後のクエリデータの違いに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、加工前後のクエリデータのデータ長の差分を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工前のクエリデータに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、加工前のクエリデータのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工後のクエリデータに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、加工後のクエリデータのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、正常データに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、正常データのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、攻撃データに関する特徴量を算出する。加工部402は、具体的には、所定の特徴量として、攻撃データのデータ長を算出する。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工前のクエリデータのデータ長と、データ長の平均値との差分を算出する。平均値は、例えば、過去に取得した、加工前のクエリデータ群に基づいて算出される。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
加工部402は、例えば、所定の特徴量として、加工後のクエリデータのデータ長と、データ長の平均値との差分を算出する。平均値は、例えば、過去に取得した、加工後のクエリデータ群に基づいて算出される。これにより、加工部402は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮するための指標となり得る特徴量を得ることができる。
第1学習部403は、所定の訓練データを入力に用いて、第1のモデルを学習することにより、第1のモデルを取得する。所定の訓練データは、第1の訓練データ群に含まれる訓練データのそれぞれである。第1学習部403は、例えば、所定の訓練データに含まれる入力xに応じた第1のモデルの出力が、所定の訓練データに対応する回答yになるよう、第1のモデルのパラメータを決定することにより、第1のモデルを学習する。これにより、第1学習部403は、分類精度が比較的高い第1のモデルを得ることができる。
第2学習部404は、加工後の所定の訓練データを入力に用いて、第2のモデルを学習することにより、第2のモデルを取得する。第2学習部404は、例えば、加工後の所定の訓練データに含まれる入力xに応じた第2のモデルの出力が、加工後の所定の訓練データに対応する回答yになるよう、第2のモデルのパラメータを決定することにより、第2のモデルを学習する。加工後の所定の訓練データに対応する回答yは、加工前の所定の訓練データに対応する回答yと同一である。これにより、第1学習部403は、攻撃耐性が比較的高い第2のモデルを得ることができる。
第3学習部405は、訓練データが入力された際の第1のモデルの出力と、規則に従って加工された加工後の訓練データが入力された際の第2のモデルの出力と、所定の特徴量とを入力に用いて、第3のモデルを学習する。訓練データは、例えば、第2の訓練データ群に含まれる訓練データのそれぞれである。
第3学習部405は、例えば、第1のモデルの出力と、第2のモデルの出力と、加工前後の訓練データに関する特徴量の組み合わせと、加工前後の訓練データの違いに関する特徴量とを入力に用いて、第3のモデルを学習する。組み合わせは、例えば、加工前の訓練データに関する特徴量、および、加工後の訓練データに関する特徴量を含む。組み合わせは、具体的には、加工前の訓練データのデータ長、および、加工後の訓練データのデータ長を含む。これにより、第3学習部405は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを適切に考慮し、攻撃確信度を出力する第3のモデルを得ることができる。
第1利用部406は、加工前のクエリデータが入力された際の第1のモデルの第1の出力を取得する。第1利用部406は、例えば、加工前のクエリデータを第1のモデルに入力したことに応じて第1のモデルから出力された第1の確信度を、第1の出力として取得する。第1の確信度は、クエリデータが異常である確率の高さを示す指標値である。これにより、第1利用部406は、分類精度が比較的高い第1のモデルの第1の出力を得ることができ、分類精度が比較的高い第1のモデルの第1の出力を第3のモデルで考慮可能にすることができる。
第2利用部407は、加工後のクエリデータが入力された際の第2のモデルの第2の出力を取得する。第2利用部407は、例えば、加工後のクエリデータを第2のモデルに入力したことに応じて第2のモデルから出力された第2の確信度を、第2の出力として取得する。第2の確信度は、クエリデータが異常である確率の高さを示す指標値である。これにより、第2利用部407は攻撃耐性が比較的高い第2のモデルの第2の出力を得ることができ、攻撃耐性が比較的高い第2のモデルの第2の出力を第3のモデルで考慮可能にすることができる。
第3利用部408は、取得した第1の出力と、取得した第2の出力と、算出した所定の特徴量とが入力された際の、学習した第3のモデルの第3の出力を取得する。第3利用部408は、第1の出力と、第2の出力と、所定の特徴量とを、第3のモデルに入力したことに応じて第3のモデルから出力された第3の確信度を、第3の出力として取得する。第3の確信度は、クエリデータが異常である確率の高さを示す指標値であり、攻撃確信度である。これにより、第3利用部408は、分類精度が比較的高い第1のモデルの出力と、攻撃耐性が比較的高い第2のモデルの出力とを、所定の特徴量に基づき適切に考慮し、出力する攻撃確信度に反映することができる。このため、第3利用部408は、クエリデータが正常であるか否かを精度よく表す攻撃確信度を得ることができる。
第3利用部408は、第3の出力に基づいて、クエリデータが正常であるか否かを判定してもよい。第3利用部408は、例えば、攻撃確信度が閾値以上であれば、クエリデータが異常であると判定する。一方で、第3利用部408は、例えば、攻撃確信度が閾値未満であれば、クエリデータが正常であると判定する。これにより、第3利用部408は、クエリデータが正常であるか否かを精度よく判定することができる。第3利用部408は、例えば、正常なクエリデータを、正常であると正しく判定する確率と、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定する確率とを同時に高めることができる。
出力部409は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部409は、少なくともいずれかの機能部の処理結果を、情報処理装置100の利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
出力部409は、第3のモデルを出力する。出力部409は、例えば、第3のモデルを、他のコンピュータに送信する。他のコンピュータは、例えば、クライアント装置201であってもよい。これにより、出力部409は、他のコンピュータで、クエリデータが正常であるか否かを精度よく判定可能にすることができる。
出力部409は、第3のモデルの第3の出力を出力する。出力部409は、例えば、第3の出力を、他のコンピュータに送信する。他のコンピュータは、例えば、クエリデータの送信元であるクライアント装置201である。これにより、出力部409は、第3の出力を、クライアント装置201の利用者が参照可能にすることができる。出力部409は、クライアント装置201の利用者が、誤って不正なクエリデータを信用してしまい、不利益を被る事態を回避し易くすることができる。
ここでは、情報処理装置100が、第1利用部406と、第2利用部407と、第3利用部408とを含む場合について説明したが、これに限らない。例えば、情報処理装置100が、第1利用部406と、第2利用部407と、第3利用部408とを含まない場合があってもよい。この場合、例えば、他のコンピュータが、第1利用部406と、第2利用部407と、第3利用部408とを含み、第1のモデルと、第2のモデルと、第3のモデルとを情報処理装置100から取得することになる。
ここでは、第3学習部405が、第1のモデルの出力と、第2のモデルの出力との他、1種類の特徴量を入力に用いて、第3のモデルを学習する場合について説明したが、これに限らない。例えば、第3学習部405が、第1のモデルの出力と、第2のモデルの出力との他、複数種類の特徴量を入力に用いて、第3のモデルを学習する場合があってもよい。
ここでは、第3学習部405が、分類精度が比較的高い第1のモデルと、攻撃耐性が比較的高い第2のモデルとの、2種類のモデルを利用して、第3のモデルを学習する場合について説明したが、これに限らない。例えば、第3学習部405が、分類精度が比較的高い複数のモデルと、攻撃耐性が比較的高い複数のモデルとを利用して、第3のモデルを学習する場合があってもよい。
また、例えば、第3学習部405が、分類精度が比較的高い1つのモデルと、攻撃耐性が比較的高い複数のモデルとを利用して、第3のモデルを学習する場合があってもよい。また、例えば、第3学習部405が、分類精度が比較的高い複数のモデルと、攻撃耐性が比較的高い1つのモデルとを利用して、第3のモデルを学習する場合があってもよい。
ここで、例えば、取得部401が、訓練データの一種として、ノイズが加えられた敵対的サンプルと呼ばれる訓練データを取得する場合があってもよい。この場合、第1学習部403は、例えば、Adversarial Trainingにより、モデルを学習することになる。また、ノイズが加えられた敵対的サンプルは、情報処理装置100によって作成されてもよい。
また、例えば、取得部401が、訓練データの一種として、正常なデータの一部が挿入済みの訓練データを取得する場合があってもよい。この場合、加工部402は、例えば、訓練データの一部を削除する規則を利用することが好ましい。また、第1学習部403は、例えば、Adversarial Trainingにより、モデルを学習することになる。また、正常なデータの一部が挿入済みの訓練データは、情報処理装置100によって作成されてもよい。
(情報処理装置100の動作の一例)
次に、図5~図10を用いて、情報処理装置100の動作の一例について説明する。具体的には、まず、図5を用いて、情報処理装置100が取得する訓練データ、または、クエリデータとなり得る構造化データの一例について説明する。
図5は、構造化データの一例を示す説明図である。図5において、クライアント装置201は、他のコンピュータ500と通信した際、1セッション分の通信のログデータが正常であるか否かを判定するとする。通信のログデータは、構造化データで表現される。
このため、クライアント装置201は、過去の通信のログデータを、訓練データとして情報処理装置100に送信しているとする。また、クライアント装置201は、他のコンピュータ500と通信した際、今回の通信のログデータを、クエリデータとして情報処理装置100に送信するとする。
構造化データは、通信に関する1以上の属性の値の組み合わせを示すデータを、1以上含んでいる。構造化データは、例えば、行および列の概念を有するデータである。構造化データは、例えば、テーブル510に対応する。データは、通信における1処理を示す。データは、例えば、テーブル510のレコードに対応する。
属性は、処理名(Command)、オプション(Option)、アカウント(Account)、Shared Name、拡張子(Extension)、ディレクトリ(Directory)などである。属性の値は、属性の特徴量である。
回避攻撃では、不正な構造化データに、正常な構造化データに含まれる一部のデータを挿入することにより、不正な構造化データが、正常であると誤って判定される要因を増やすことが目的となる。このため、回避攻撃で作成された構造化データは、例えば、複数の属性の値の組み合わせが同一となるデータを複数含むという傾向を有する場合がある。また、回避攻撃で作成された構造化データは、属性の値が同一となるデータを複数含むという傾向を有する場合がある。
情報処理装置100は、上記傾向を考慮して、構造化データを加工する規則として、構造化データのうち、内容が重複するD個のデータを、1≦N<D個のデータまで削減するという規則を記憶しているとする。ここで、情報処理装置100は、訓練データ、または、クエリデータとなる構造化データを取得したとする。次に、図6の説明に移行し、取得した訓練データ、または、クエリデータとなる構造化データ601を用いた、情報処理装置100の動作の一例について説明する。
図6は、情報処理装置100の動作の一例を示す説明図である。図6において、情報処理装置100は、手法1により学習済みのモデルAと、手法2により学習済みのモデルBとを有する。モデルAは、分類精度が比較的高く、構造化データ601が入力される。モデルBは、攻撃耐性が比較的高く、構造化データ601が加工してから入力される。
(6-1)情報処理装置100は、規則に従って、構造化データ601を加工し、加工後の構造化データ602を得る。情報処理装置100は、例えば、構造化データ601のうち、内容が重複するD個のデータを、1≦N<D個のデータまで削減する。
(6-2)情報処理装置100は、モデルAに、構造化データ601を入力する。情報処理装置100は、構造化データ601を入力したことに応じてモデルAから出力された確信度aを取得する。確信度aは、構造化データ601が異常である確率の高さを示す指標値である。確信度aは、分類精度が比較的高いモデルAから出力されるため、構造化データ601が正常である場合、値が大きくなり辛い傾向がある。
(6-3)情報処理装置100は、モデルBに、加工後の構造化データ602を入力する。情報処理装置100は、加工後の構造化データ602を入力したことに応じてモデルBから出力された確信度bを取得する。確信度bは、構造化データ601が異常である確率の高さを示す指標値である。確信度bは、攻撃耐性が比較的高いモデルBから出力されるため、構造化データ601が異常である場合、値が小さくなり辛い傾向がある。
(6-4)情報処理装置100は、加工前の構造化データ601のセッション長と、加工後の構造化データ602のセッション長とを算出する。セッション長を算出する一例については、具体的には、図7を用いて後述する。セッション長は、通信におけるコマンドの数である。換言すれば、セッション長は、構造化データ601,602のうち、テーブル510のレコードの数に対応し、1処理を示すデータの数である。
そして、情報処理装置100は、加工前後の構造化データ601,602のセッション長の差分603を算出する。セッション長の差分を算出する一例については、具体的には、図8を用いて後述する。また、情報処理装置100は、加工前の構造化データ601のセッション長と、加工後の構造化データ602のセッション長との組み合わせ604を特定する。情報処理装置100は、差分603と、組み合わせ604とのいずれか一方を特定しなくてもよい。
(6-5)情報処理装置100は、確信度aと、確信度bと、差分603と、組み合わせ604とを、統合用モデルCに入力する。情報処理装置100は、確信度aと、確信度bと、差分603と、組み合わせ604とを入力したことに応じて統合用モデルCから出力された攻撃確信度cを取得する。
(6-6)情報処理装置100は、構造化データ601が訓練データであれば、攻撃確信度cに基づいて、統合用モデルCのパラメータを更新することにより、統合用モデルCを学習する。また、情報処理装置100は、構造化データ601がクエリデータであれば、攻撃確信度cに基づいて、構造化データ601が正常であるか否かを判定する。
これにより、情報処理装置100は、クエリデータが正常であるか否かを精度よく判定可能な統合用モデルCを学習することができる。情報処理装置100は、例えば、正常なクエリデータを、正常であると正しく判定する確率と、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定する確率とが、同時に高くなるよう、統合用モデルCを学習することができる。
具体的には、統合用モデルCは、差分603と、組み合わせ604とを入力として用いるため、分類精度が比較的高いモデルAの出力と、攻撃耐性が比較的高いモデルBの出力とを適切に考慮し、出力する攻撃確信度cに反映することができる。このため、統合用モデルCは、回避攻撃の性質を考慮し、分類精度を確保し、かつ、攻撃耐性を確保することができる。
また、情報処理装置100は、統合用モデルCを利用して、クエリデータが正常であるか否かを精度よく判定することができる。情報処理装置100は、例えば、正常なクエリデータを、正常であると正しく判定し、回避攻撃により作成された不正なクエリデータを、異常であると正しく判定することができる。次に、図7の説明に移行し、情報処理装置100が、セッション長を算出する一例について説明する。
図7は、セッション長を算出する一例を示す説明図である。図7において、加工前の構造化データ601は、コマンドA、コマンドA、コマンドA、コマンドB、コマンドB、コマンドC、コマンドC、コマンドB、コマンドDという9つのコマンドに対応するデータを順に含む。加工後の構造化データ602は、コマンドA、コマンドB、コマンドC、コマンドDという4つのコマンドに対応するデータを順に含む。
セッション長は、1セッション分の通信において発行されたコマンドの数に対応する。このため、情報処理装置100は、加工前の構造化データ601が含むデータの数9を、加工前の構造化データ601のセッション長として特定する。また、情報処理装置100は、加工後の構造化データ602が含むデータの数4を、加工後の構造化データ602のセッション長として特定する。次に、図8の説明に移行し、情報処理装置100が、セッション長の差分を算出する一例について説明する。
図8は、セッション長の差分を算出する一例を示す説明図である。図8において、情報処理装置100は、加工前の構造化データ601が含むデータの数9から、加工後の構造化データ602が含むデータの数4を減算した差分5を、セッション長の差分として特定する。次に、図9および図10の説明に移行し、情報処理装置100により得られる効果の一例について説明する。
図9および図10は、情報処理装置100により得られる効果の一例を示す説明図である。図9において、手法1は、分類精度が比較的高いモデルのみを作成および利用する。手法1は、例えば、モデルAのみを作成および利用する。手法2は、攻撃耐性が比較的高いモデルのみを作成および利用する。手法2は、例えば、モデルBのみを作成および利用する。
手法3は、アンサンブル学習で、分類精度が比較的高いモデルと、攻撃耐性が比較的高いモデルとを、単純に組み合わせる。手法3は、モデルAと、モデルBとを、単純に組み合わせる。手法3は、情報処理装置100とは異なり、所定の特徴量を利用していない。
図9の表900に示すように、手法1は、分類精度が比較的高いものの、攻撃耐性が比較的低いため、不正なクエリデータを誤って正常であると判定する確率が比較的高くなるという問題を有している。手法2は、攻撃耐性が比較的高いものの、分類精度が比較的低いため、正常なクエリデータを誤って異常であると判定する確率が比較的高くなるという問題を有している。
手法3は、分類精度が比較的高いものの、攻撃耐性が比較的低いため、不正なクエリデータを誤って正常であると判定する確率が比較的高いという問題を有している。これに対し、情報処理装置100は、分類精度を比較的高くすることができ、かつ、攻撃耐性を比較的高くすることができ、クエリデータが正常であるか否かを精度よく判定可能にすることができる。次に、図10の説明に移行する。
図10において、Precision(分類精度)は、異常であると判定されたクエリデータのうち、真に異常であるクエリデータの割合を表す評価指標である。Recallは、真に異常であるクエリデータのうち、異常であると判定されたクエリデータの割合を表す評価指標である。Detection rate(回避攻撃に対する攻撃耐性)は、回避攻撃で作成されたクエリデータのうち、異常であると判定されたクエリデータの割合を表す評価指標である。
図10の表1000に示すように、手法1は、Detection rateが比較的低く、攻撃耐性が比較的低い。手法2は、Precisionが比較的低く、分類精度が比較的低い。手法3は、Detection rateが比較的低く、攻撃耐性が比較的低い。これに対し、情報処理装置100は、PrecisionおよびDetection rateを、両立して高めることができる。
ここでは、構造化データが、通信に関する1以上の属性の値の組み合わせを示すデータを、1以上含んでいる場合について説明したが、これに限らない。例えば、構造化データが、メールに関する1以上の属性の値の組み合わせを示すデータを、1以上含んでいる場合があってもよい。この場合、属性は、例えば、メールの送信者、宛先、または、ヘッダなどである。また、例えば、構造化データが、ソフトウェアに関する1以上の属性の値の組み合わせを示すデータを、1以上含んでいる場合があってもよい。この場合、属性は、例えば、ソフトウェアのPEファイルの特徴に関する情報である。
(訓練処理手順)
次に、図11を用いて、情報処理装置100が実行する、訓練処理手順の一例について説明する。訓練処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図11は、訓練処理手順の一例を示すフローチャートである。図11において、情報処理装置100は、訓練データ群を読み込む(ステップS1101)。
次に、情報処理装置100は、訓練データ群のそれぞれの訓練データを入力に用いて、分類精度が比較的高いモデルAを学習する(ステップS1102)。
また、情報処理装置100は、規則に従って、訓練データ群のそれぞれの訓練データを加工する(ステップS1103)。そして、情報処理装置100は、加工済みのそれぞれの訓練データを入力に用いて、攻撃耐性が比較的高いモデルBを学習する(ステップS1104)。
次に、情報処理装置100は、加工前後のそれぞれの訓練データの違いを表す特徴量sを算出する(ステップS1105)。
そして、情報処理装置100は、訓練データ群のそれぞれの訓練データを入力に用いた場合に、学習したモデルAから出力される確信度aを取得する(ステップS1106)。また、情報処理装置100は、加工済みのそれぞれの訓練データを入力に用いた場合に、学習したモデルBから出力される確信度bを取得する(ステップS1107)。
次に、情報処理装置100は、取得した確信度aと、取得した確信度bと、算出した特徴量sとを入力に用いて、統合用モデルCを学習する(ステップS1108)。そして、情報処理装置100は、訓練処理を終了する。これにより、情報処理装置100は、クエリデータが正常であるか否かを精度よく判定可能な統合用モデルCを得ることができる。
(推論処理手順)
次に、図12を用いて、情報処理装置100が実行する、推論処理手順の一例について説明する。推論処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図12は、推論処理手順の一例を示すフローチャートである。図12において、情報処理装置100は、クエリデータを読み込む(ステップS1201)。
次に、情報処理装置100は、クエリデータを入力に用いた場合に、モデルAから出力される確信度aを取得する(ステップS1202)。
また、情報処理装置100は、規則に従って、クエリデータを加工する(ステップS1203)。そして、情報処理装置100は、加工済みのクエリデータを入力に用いた場合に、モデルBから出力される確信度bを取得する(ステップS1204)。
次に、情報処理装置100は、加工前後のクエリデータの違いを表す特徴量sを算出する(ステップS1205)。そして、情報処理装置100は、取得した確信度aと、取得した確信度bと、算出した特徴量sとを入力に用いた場合に、統合用モデルCから出力される攻撃確信度cを取得する(ステップS1206)。
次に、情報処理装置100は、攻撃確信度cに基づいて、クエリデータが正常であるか否かを検証し、検証した結果を出力する(ステップS1207)。そして、情報処理装置100は、推論処理を終了する。これにより、情報処理装置100は、クエリデータが正常であるか否かを精度よく判定することができる。
ここで、情報処理装置100は、図11および図12の各フローチャートにおける一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップS1102の処理と、ステップS1103,S1104の処理との順序は入れ替え可能である。また、情報処理装置100は、図11および図12の各フローチャートにおける一部ステップの処理を省略してもよい。例えば、情報処理装置100が、モデルAと、モデルBとを学習せず、他のコンピュータから取得する場合、ステップS1102,S1104の処理は省略可能である。
以上説明したように、情報処理装置100によれば、訓練データが入力される第1のモデルを取得することができる。情報処理装置100によれば、ある規則に従って訓練データが加工されてから入力される第2のモデルを取得することができる。情報処理装置100によれば、訓練データが入力された際の第1のモデルの出力と、規則に従って加工された加工後の訓練データが入力された際の第2のモデルの出力と、所定の特徴量とを入力に用いて、異常データを検知する第3のモデルを学習することができる。所定の特徴量は、加工前の訓練データに関する特徴量、加工後の訓練データに関する特徴量、加工前後の訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量などである。これにより、情報処理装置100は、分類精度および攻撃耐性が比較的高い第3のモデルを得ることができる。
情報処理装置100によれば、加工前後の訓練データの違いに関する特徴量として、加工前後の訓練データのセッション長の差分を算出することができる。これにより、情報処理装置100は、訓練データが、通信に関わる構造化データである場合に適用することができる。
情報処理装置100によれば、所定の訓練データを入力に用いて、第1のモデルを学習することにより、第1のモデルを取得することができる。これにより、情報処理装置100は、第1のモデルを、他のコンピュータから取得せずに済ませることができる。
情報処理装置100によれば、規則に従って所定の訓練データを加工し、加工後の所定の訓練データを入力に用いて、第2のモデルを学習することにより、第2のモデルを取得することができる。これにより、情報処理装置100は、第2のモデルを、他のコンピュータから取得せずに済ませることができる。
情報処理装置100によれば、所定の特徴量として、加工前の訓練データに関する特徴量、および、加工後の訓練データに関する特徴量の組み合わせと、加工前後の訓練データの違いに関する特徴量とを利用することができる。これにより、情報処理装置100は、分類精度および攻撃耐性が比較的高い第3のモデルが得られるよう、所定の特徴量に、回避攻撃と関連が比較的深い特徴量を利用することができる。
情報処理装置100によれば、クエリデータを取得することができる。情報処理装置100によれば、規則に従って取得したクエリデータを加工することができる。情報処理装置100によれば、加工前のクエリデータが入力された際の第1のモデルの第1の出力を取得することができる。情報処理装置100によれば、加工後のクエリデータが入力された際の第2のモデルの第2の出力を取得することができる。情報処理装置100によれば、取得した第1の出力と、取得した第2の出力と、所定の特徴量とが入力された際の、学習した第3のモデルの第3の出力を取得して出力することができる。これにより、情報処理装置100は、クエリデータが正常であるか否かを精度よく示す第3の出力を利用可能にすることができる。
情報処理装置100によれば、それぞれ異なるアルゴリズムで学習される第1のモデルと、第2のモデルとを利用することができる。これにより、情報処理装置100は、第3のモデルが、異なる観点でクエリデータの妥当性を評価した、第1のモデルの出力と、第2のモデルの出力とを参照可能にすることができる。このため、情報処理装置100は、第3のモデルの分類精度および攻撃耐性の向上を図ることができる。
情報処理装置100によれば、回避攻撃に対応する規則を利用することができる。これにより、情報処理装置100は、第2のモデルの攻撃耐性の向上を図ることができる。結果として、情報処理装置100は、第2のモデルの出力を参照する第3のモデルの攻撃耐性の向上を図ることができる。
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した情報処理プログラムは、インターネットなどのネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)訓練データが入力される第1のモデルを取得し、
ある規則に従って前記訓練データが加工されてから入力される第2のモデルを取得し、
前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、加工後の前記訓練データに関する特徴量、加工前後の前記訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とを入力に用いて、異常データを検知する第3のモデルを学習する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記2)加工前後の前記訓練データの違いに関する特徴量は、加工前後の前記訓練データのセッション長の差分である、ことを特徴とする付記1に記載の情報処理プログラム。
(付記3)前記第1のモデルを取得する処理は、
所定の訓練データを入力に用いて、前記第1のモデルを学習することにより、前記第1のモデルを取得する、ことを特徴とする付記1または2に記載の情報処理プログラム。
(付記4)前記第2のモデルを取得する処理は、
前記規則に従って所定の訓練データを加工し、加工後の前記所定の訓練データを入力に用いて、前記第2のモデルを学習することにより、前記第2のモデルを取得する、ことを特徴とする付記1~3のいずれか一つに記載の情報処理プログラム。
(付記5)前記第3のモデルを学習する処理は、
前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、および、加工後の前記訓練データに関する特徴量の組み合わせと、加工前後の前記訓練データの違いに関する特徴量とを入力に用いて、前記第3のモデルを学習する、ことを特徴とする付記1~4のいずれか一つに記載の情報処理プログラム。
(付記6)クエリデータを取得し、
前記規則に従って取得した前記クエリデータを加工し、
加工前の前記クエリデータが入力された際の前記第1のモデルの第1の出力を取得し、
加工後の前記クエリデータが入力された際の前記第2のモデルの第2の出力を取得し、
取得した前記第1の出力と、取得した前記第2の出力と、加工前の前記クエリデータに関する特徴量、加工後の前記クエリデータに関する特徴量、加工前後の前記クエリデータの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とが入力された際の、学習した前記第3のモデルの第3の出力を取得して出力する、
処理を前記コンピュータに実行させることを特徴とする付記1~5のいずれか一つに記載の情報処理プログラム。
(付記7)前記第1のモデルと、前記第2のモデルとは、それぞれ異なるアルゴリズムで学習される、ことを特徴とする付記1~6のいずれか一つに記載の情報処理プログラム。
(付記8)前記規則は、回避攻撃に対応する、ことを特徴とする付記1~7のいずれか一つに記載の情報処理プログラム。
(付記9)訓練データが入力される第1のモデルを取得し、
ある規則に従って前記訓練データが加工されてから入力される第2のモデルを取得し、
前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、加工後の前記訓練データに関する特徴量、加工前後の前記訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とを入力に用いて、異常データを検知する第3のモデルを学習する、
処理をコンピュータが実行することを特徴とする情報処理方法。
(付記10)訓練データが入力される第1のモデルを取得し、
ある規則に従って前記訓練データが加工されてから入力される第2のモデルを取得し、
前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、加工後の前記訓練データに関する特徴量、加工前後の前記訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とを入力に用いて、異常データを検知する第3のモデルを学習する、
制御部を有することを特徴とする情報処理装置。
100 情報処理装置
101 訓練データ
102 加工後の訓練データ
103 所定の特徴量
110 第1のモデル
120 第2のモデル
130 第3のモデル
200 異常検知システム
201 クライアント装置
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
400 記憶部
401 取得部
402 加工部
403 第1学習部
404 第2学習部
405 第3学習部
406 第1利用部
407 第2利用部
408 第3利用部
409 出力部
500 コンピュータ
510 テーブル
601 構造化データ
602 加工後の構造化データ
603 セッション長の差分
604 セッション長の組み合わせ
900,1000 表

Claims (8)

  1. 訓練データが入力される第1のモデルを取得し、
    ある規則に従って前記訓練データが加工されてから入力される第2のモデルを取得し、
    前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、加工後の前記訓練データに関する特徴量、加工前後の前記訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とを入力に用いて、異常データを検知する第3のモデルを学習する、
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  2. 加工前後の前記訓練データの違いに関する特徴量は、加工前後の前記訓練データのセッション長の差分である、ことを特徴とする請求項1に記載の情報処理プログラム。
  3. 前記第1のモデルを取得する処理は、
    所定の訓練データを入力に用いて、前記第1のモデルを学習することにより、前記第1のモデルを取得する、ことを特徴とする請求項1または2に記載の情報処理プログラム。
  4. 前記第2のモデルを取得する処理は、
    前記規則に従って所定の訓練データを加工し、加工後の前記所定の訓練データを入力に用いて、前記第2のモデルを学習することにより、前記第2のモデルを取得する、ことを特徴とする請求項1~3のいずれか一つに記載の情報処理プログラム。
  5. 前記第3のモデルを学習する処理は、
    前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、および、加工後の前記訓練データに関する特徴量の組み合わせと、加工前後の前記訓練データの違いに関する特徴量とを入力に用いて、前記第3のモデルを学習する、ことを特徴とする請求項1~4のいずれか一つに記載の情報処理プログラム。
  6. クエリデータを取得し、
    前記規則に従って取得した前記クエリデータを加工し、
    加工前の前記クエリデータが入力された際の前記第1のモデルの第1の出力を取得し、
    加工後の前記クエリデータが入力された際の前記第2のモデルの第2の出力を取得し、
    取得した前記第1の出力と、取得した前記第2の出力と、加工前の前記クエリデータに関する特徴量、加工後の前記クエリデータに関する特徴量、加工前後の前記クエリデータの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とが入力された際の、学習した前記第3のモデルの第3の出力を取得して出力する、
    処理を前記コンピュータに実行させることを特徴とする請求項1~5のいずれか一つに記載の情報処理プログラム。
  7. 訓練データが入力される第1のモデルを取得し、
    ある規則に従って前記訓練データが加工されてから入力される第2のモデルを取得し、
    前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、加工後の前記訓練データに関する特徴量、加工前後の前記訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とを入力に用いて、異常データを検知する第3のモデルを学習する、
    処理をコンピュータが実行することを特徴とする情報処理方法。
  8. 訓練データが入力される第1のモデルを取得し、
    ある規則に従って前記訓練データが加工されてから入力される第2のモデルを取得し、
    前記訓練データが入力された際の前記第1のモデルの出力と、前記規則に従って加工された加工後の前記訓練データが入力された際の前記第2のモデルの出力と、加工前の前記訓練データに関する特徴量、加工後の前記訓練データに関する特徴量、加工前後の前記訓練データの違いに関する特徴量、正常データに関する特徴量、または、異常データに関する特徴量の少なくともいずれかの特徴量とを入力に用いて、異常データを検知する第3のモデルを学習する、
    制御部を有することを特徴とする情報処理装置。
JP2020174645A 2020-10-16 2020-10-16 情報処理プログラム、情報処理方法、および情報処理装置 Withdrawn JP2022065878A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020174645A JP2022065878A (ja) 2020-10-16 2020-10-16 情報処理プログラム、情報処理方法、および情報処理装置
EP21186383.2A EP3985534A1 (en) 2020-10-16 2021-07-19 Information processing program, information processing method, and information processing device
US17/381,853 US20220121989A1 (en) 2020-10-16 2021-07-21 Computer-readable recording medium storing information processing program, information processing method, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020174645A JP2022065878A (ja) 2020-10-16 2020-10-16 情報処理プログラム、情報処理方法、および情報処理装置

Publications (1)

Publication Number Publication Date
JP2022065878A true JP2022065878A (ja) 2022-04-28

Family

ID=76971724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020174645A Withdrawn JP2022065878A (ja) 2020-10-16 2020-10-16 情報処理プログラム、情報処理方法、および情報処理装置

Country Status (3)

Country Link
US (1) US20220121989A1 (ja)
EP (1) EP3985534A1 (ja)
JP (1) JP2022065878A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117114141B (zh) * 2023-10-20 2024-02-27 安徽蔚来智驾科技有限公司 模型训练的方法、评估方法、计算机设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017219274A1 (de) * 2017-10-26 2019-05-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Verbessern der Robustheit eines maschinellen Lernsystems
EP3477553B1 (en) * 2017-10-27 2023-08-30 Robert Bosch GmbH Method for detecting an anomalous image among a first dataset of images using an adversarial autoencoder
US10657259B2 (en) 2017-11-01 2020-05-19 International Business Machines Corporation Protecting cognitive systems from gradient based attacks through the use of deceiving gradients
WO2019172868A1 (en) * 2018-03-05 2019-09-12 Clinc, Inc. Systems and method for automatically configuring machine learning models
US10303978B1 (en) * 2018-03-26 2019-05-28 Clinc, Inc. Systems and methods for intelligently curating machine learning training data and improving machine learning model performance
US11468291B2 (en) 2018-09-28 2022-10-11 Nxp B.V. Method for protecting a machine learning ensemble from copying
US20200410392A1 (en) * 2019-06-27 2020-12-31 Adobe Inc. Task-aware command recommendation and proactive help
US11928857B2 (en) * 2020-07-08 2024-03-12 VMware LLC Unsupervised anomaly detection by self-prediction

Also Published As

Publication number Publication date
EP3985534A1 (en) 2022-04-20
US20220121989A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
JP6530786B2 (ja) Webページの悪意のある要素を検出するシステム及び方法
CN109815332B (zh) 损失函数优化方法、装置、计算机设备及存储介质
KR102043938B1 (ko) 이미지 기반의 captcha 과제
US10075463B2 (en) Bot detection system based on deep learning
US10135852B2 (en) Bot detection based on behavior analytics
JP5020776B2 (ja) 情報セキュリティ対策決定支援装置及び方法ならびにコンピュータプログラム
US10243981B2 (en) Bot detection based on divergence and variance
US20130042306A1 (en) Determining machine behavior
US9864855B2 (en) Verification data processing method and device and storage medium
EP3490223A1 (en) System and method for simulating and foiling attacks on a vehicle on-board network
US20160173518A1 (en) Adaptive client-aware session security
CN110830445B (zh) 一种异常访问对象的识别方法及设备
CN109753561B (zh) 一种自动回复的生成方法及装置
CN103294939B (zh) 用于虚拟化身认证的方法和系统
CN107070940B (zh) 一种从流式登录日志中判断恶意登录ip地址的方法及装置
US20180349470A1 (en) Multi-distance similarity analysis with tri-point arbitration
WO2016200408A1 (en) Hybrid classification system
CN111027643B (zh) 深度神经网络模型的训练方法、人机交互识别方法、装置、电子设备及存储介质
CN114595826A (zh) 一种联邦学习工人节点选择方法、系统、终端以及存储介质
JP2022065878A (ja) 情報処理プログラム、情報処理方法、および情報処理装置
Singh et al. An ensemble approach for feature selection of Cyber Attack Dataset
CN111258796A (zh) 服务基础设施以及在其处预测和检测潜在异常的方法
US8594329B2 (en) Non-interactive verifiable, delegated computation
US20220121647A1 (en) Computer-readable recording medium storing information processing program, information processing method, and information processing device
CN105094810B (zh) 基于通用网关接口插件的数据处理方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230707

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20240129