JPWO2020075662A1 - データ分類装置、データ分類方法、および、データ分類プログラム - Google Patents

データ分類装置、データ分類方法、および、データ分類プログラム Download PDF

Info

Publication number
JPWO2020075662A1
JPWO2020075662A1 JP2020551137A JP2020551137A JPWO2020075662A1 JP WO2020075662 A1 JPWO2020075662 A1 JP WO2020075662A1 JP 2020551137 A JP2020551137 A JP 2020551137A JP 2020551137 A JP2020551137 A JP 2020551137A JP WO2020075662 A1 JPWO2020075662 A1 JP WO2020075662A1
Authority
JP
Japan
Prior art keywords
data
classification
features
class
known data
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.)
Granted
Application number
JP2020551137A
Other languages
English (en)
Other versions
JP7001178B2 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2020075662A1 publication Critical patent/JPWO2020075662A1/ja
Application granted granted Critical
Publication of JP7001178B2 publication Critical patent/JP7001178B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/10Pre-processing; Data cleansing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

データ分類装置(1)は、データの属するクラスおよび前記クラスの下位のクラスであるサブクラスが既知である既知データの入力を受け付ける既知データ入力部(3)と、既知データに含まれる特徴から、当該特徴を用いて同じクラスに属する既知データのサブクラスの分類を実施した場合に分類が失敗するような特徴を抽出する特徴抽出部(4)と、特徴抽出部(4)により抽出された特徴を用いて、分類の対象データのクラスを分類する分類部(5)とを備える。

Description

本発明は、データ分類装置、データ分類方法、および、データ分類プログラムに関する。
機械学習を応用したデータ分類は様々な分野で応用されている。例えば、サイバーセキュリティでは、アンドロイド(登録商標)アプリケーションの分類(非特許文献1参照)や、IoT機器のファームウェアの分類(非特許文献2参照)等に応用されている。これらの分類により、既知の悪性アプリケーションに類似するアプリケーションや、既知の脆弱性のあるプログラムに類似するプログラムを特定することができる。
ここで、一般的な機械学習手法では、既知データと分類対象のデータとの特徴が類似していることを前提としている。しかし、データによっては、時間とともに特徴が変化する場合もある。そこで、時間ともに特徴が変化する場合でも高精度にデータを分類する手法として、経時的な変化の影響を受けにくい特徴量の設計(非特許文献3参照)や、特徴の変化を検知する手法(非特許文献4参照)も提案されている。
一般的な機械学習では、ラベル付きの既知データが大量に必要であるが、ラベル付きのデータを入手できない場合も存在する。そこで、ラベル付きのデータを入手できない場合であっても機械学習を行えるよう、ラベル付けが容易な、分類対象のデータに類似するデータを利用する手法が提案されている(非特許文献5参照)。
この手法では、分類対象のデータに類似するラベル付きデータ(source)と、分類対象のラベルなしデータ(target)とを利用する。
具体的には、この手法では、sourceとtargetとに共通する特徴を抽出し、その抽出された特徴を用いたsourceとtargetとの分類が失敗するように、特徴の抽出方法を調整する。一例を挙げると、sourceが写真のデータ、targetがスケッチのデータの場合、sourceとtargetとに共通する特徴として物体の輪郭の特徴が抽出される。そして、その抽出された特徴を用いたsourceとtargetとの分類が失敗するように、特徴の抽出方法を調整する。例えば、上記の調整により、例えば、sourceとtargetとに共通する特徴(例えば、物体の輪郭の特徴)は抽出されるが、sourceに固有の色やテクスチャ等の特徴は抽出されない。このようにして調整された特徴に基づいてsourceの分類ができるような機械学習を実施することで、targetを高精度に分類することができる。
D. Arp, M. Spreitzenbarth, et al., "DREBIN: Effective and Explainable Detection of Android Malware in Your Pocket", Proceedings of the 2014 Network and Distributed System Security Symposium, 2014. X. Xu et al., "Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection", Proceedings of the 24th ACM Conference on Computer and Communications Security, pp. 363-376, 2017. K. Bartos, et al., "Optimized Invariant Representation of Network Traffic for Detecting Unseen Malware Variants", Proceedings of the 25th USENIX Security Symposium, pp. 807-822, 2016. R. Jordaney, et al., "Transcend: Detecting Concept Drift in Malware Classification Models", Proceedings of the 26th USENIX Security Symposium, pp. 625-642, 2017. K. Bousmalis, et al., "Domain Separation Networks", Proceedings of the 29th Advances in Neural Information Processing Systems, pp. 343-351, 2016.
ここで、サイバーセキュリティにおいて、同じツールで作成された悪性データ群(以下、ファミリと呼ぶ)は互いに類似している。よって、新規のデータであってもその新規のデータのファミリに既知データが含まれていれば、上記の機械学習を用いることで、新規データを高精度に分類することができる。しかし、新規のデータのファミリが、既知データを含まないファミリ(未知のファミリ)であった場合は、高精度な分類を行うことは困難であった。
例えば、上記のように、特徴が徐々に変化するデータについては高精度に分類する手法が提案されているが、未知のファミリのように特徴が大きく変化する場合には適用できない。また、ラベル付きデータが入手できない場合に、類似のラベル付きデータを利用して分類する手法についても、未知のファミリのラベルなしデータを事前に入手できないため、適用できない。つまり、従来、未知のファミリのデータを精度よく分類することは困難であった。そこで、本発明は、未知のファミリのデータを精度よく分類することを課題とする。
前記した課題を解決するため、本発明は、データの属するクラスおよび前記クラスの下位のクラスであるサブクラスが既知である既知データの入力を受け付ける既知データ入力部と、前記既知データに含まれる特徴から、当該特徴を用いて同じクラスに属する既知データのサブクラスの分類を実施した場合に分類が失敗するような特徴を抽出する特徴抽出部と、前記特徴抽出部により抽出された特徴を用いて、分類の対象データのクラスを分類する分類部と、を備えることを特徴とする。
本発明によれば、未知のファミリのデータを精度よく分類することができる。
図1は、データ分類装置の構成例を示す図である。 図2は、対象データの一例を示す図である。 図3は、既知データの一例を示す図である。 図4は、図1の特徴抽出部の動作概要を説明するための図である。 図5は、図1の分類部による対象データの分類の一例を説明するための図である。 図6は、図1のデータ分類装置の処理手順の例を示すフローチャートである。 図7は、図6のS2における特徴の抽出処理を詳細に説明するフローチャートである。 図8は、第2の実施形態におけるデータ分類装置の特徴抽出部の動作概要を説明するための図である。 図9は、第3の実施形態におけるデータ分類装置の特徴抽出部の動作概要を説明するための図である。 図10は、予測確率が最も高い順に所定数のサブクラス(ファミリ)の予測確率を高くする方法を説明するための図である。 図11は、予測確率が所定の閾値以上のサブクラス(ファミリ)の予測確率を高くする方法を説明するための図である。 図12は、予測確率に所定の値(定数)を足す方法を説明するための図である。 図13は、予測確率をソフトマックス関数の係数で調整する方法を説明するための図である。 図14は、プロキシログを記録するデータ蓄積部を含むシステムの例を示す図である。 図15は、数値ベクトルの算出の一例を示す図である。 図16は、データ分類装置を備えるシステムの一例を示す図である。 図17は、データ分類プログラムを実行するコンピュータの一例を示す図である。
以下、図面を参照しながら、本発明を実施するための形態(実施形態)を第1の実施形態から第3の実施形態に分けて説明する。本発明は、各実施形態に限定されない。
[第1の実施形態]
[構成]
まず、図1を用いて第1の実施形態のデータ分類装置1の構成例を説明する。なお、以下の説明において、データのクラスとは、例えば、当該データが悪性または良性であるか等の属性であり、サブクラスは、各クラスのさらに詳細な属性(クラスの下位の属性)である。換言すると、悪性/良性等のクラスを、さらに複数の集合に分割したファミリ等のラベルがサブクラスに相当する。
データ分類装置1は、新規データ(未知のファミリのデータ)をいずれかのクラスに分類する。このデータ分類装置1は、対象データ入力部(新規データ入力部)2と、既知データ入力部3と、特徴抽出部4と、分類部5とを備える。
対象データ入力部2は、分類の対象データ(新規データ)の入力を受け付ける。対象データには、例えば、通番および数値ベクトルが含まれる(図2参照)。この数値ベクトルは、事前に決められた方法でデータの特性を表現したベクトルである。図2に示す対象データは、4つの特徴量をもつ数値ベクトルにより、データの特性を表現した例である。数値ベクトルの特徴量は、例えば、悪性URL(Uniform Resource Locator)のサブドメインの有無、パスの階層数、クエリの数等である。
既知データ入力部3は、既知データ(データの属するクラスおよびサブクラスが既知であるデータ)の入力を受け付ける。この既知データには、通番、数値ベクトル、クラス、サブクラス等が含まれる(図3参照)。この数値ベクトルは、対象データの数値ベクトルと同じ方法で作成される。例えば、対象データの数値ベクトルがサブドメインの有無、パスの階層数、クエリの数等の3つの特徴量をもつ数値ベクトルであれば、サブドメインの有無、パスの階層数、クエリの数等の3つの特徴量を持つ数値ベクトルで作成される。
既知データのクラスは、例えば、「良性」、「悪性」等が考えられるが、「drive-by download」、「標的型攻撃」、「フィッシング」等でもよい。各クラスのさらに詳細なカテゴリであるサブクラスは全てのデータにつけられていてもよいが、一部のデータのみでもよい。例えば、「悪性」のクラスのサブクラスの場合、悪性サイトを作成するexploit kitの名称の「Rig」、「Neutrino」、「Magnitude」等が考えられるが、マルウェアのファミリ名の「ランサムウェア」、「ダウンローダ」、「PUP」等でもよい。したがって、例えば、同じサブクラスに属するデータ群は、同じ悪性ツール(例えば、上記の「Rig」等)により作成された悪性データ群である。
特徴抽出部4は、既知データに含まれる特徴から、当該特徴を用いて同じクラスの既知データの分類を実施した場合にサブクラスの分類が失敗するような特徴(つまり、同じクラスのサブクラス間で共通する特徴)を抽出する。例えば、既知データの数値ベクトルがN次元の変数により記述されている場合、特徴抽出部4は、そのN次元の変数のうち、各サブクラス間で変数の値(特徴量)が類似するもの(例えば、数値ベクトルの1次元目と3次元目の値)を抽出する。
すなわち、特徴抽出部4は、既知データから特徴を抽出し、その抽出した特徴で同じクラスの既知データのサブクラスの分類がどの程度可能か評価する。そして、特徴抽出部4は、評価の結果、抽出した特徴で、同じクラスの既知データのサブクラスの分類が精度よく行われている(分類に成功している)と判断した場合、抽出する特徴を変更する。一方、特徴抽出部4は、抽出した特徴で同じクラスの既知データのサブクラスの分類が精度よく行われていない(分類に失敗している)と判断した場合、当該特徴を分類部5へ出力する。
上記の特徴抽出部4の動作概要を、図4を用いて説明する。図4における四角い囲みは数値ベクトルを示し、その中の丸は数値ベクトル中の変数を示す。
例えば、図4の「入力」と書かれた囲みの中の丸は入力データ(例えば、既知データ)の数値ベクトルの変数を示し、「抽出された特徴」と書かれた囲みの中の丸は入力データの数値ベクトルの変数から抽出された特徴を示す。
また、図4の矢印は数値ベクトルの一部の選択や、ニューラルネットワーク、SVM(Support Vector Machine)、ランダムフォレスト等でのベクトルの変換を意味する。なお、図4の左側は特徴抽出部4による特徴の抽出、右側は特徴抽出部4による当該特徴の評価に相当する(図5、図6においても同様)。
例えば、特徴抽出部4は、図4に示すように、入力データの数値ベクトルの変数から特徴を抽出すると、当該特徴を用いたファミリ(サブクラス)の分類がどの程度可能かを評価する。そして、特徴抽出部4は、評価の結果、当該特徴によるファミリの分類に成功していれば抽出する特徴を変更する。一方、評価の結果、当該特徴によるファミリの分類に失敗していれば、特徴抽出部4は、当該特徴を分類部5へ出力する。つまり、特徴抽出部4は、入力データから抽出する特徴について、当該特徴を用いた入力データのファミリの分類が失敗するように特徴を変更する。
なお、特徴抽出部4は、入力データの数値ベクトルから特徴を抽出する際、数値ベクトルの一部を選択してもよいし、ニューラルネットワーク等で低次元のベクトルに変換してもよい。また、特徴抽出部4は、抽出された特徴でサブクラスの分類がどの程度可能か評価する際、サブクラスの分類にニューラルネットワークを使用することが考えられるが、ランダムフォレスト、SVM等を使用してもよい。
なお、抽出する特徴の変更(調整)は、例えば以下のようにして行われる。例えば、特徴抽出部4が、図3に示す数値ベクトルの一部から特徴を抽出する場合、サブクラスの分類に失敗するような特徴(例えば、数値ベクトルの1次元目の値と3次元目の値)を選び直し、選び直した特徴で構成される新たな数値ベクトルを作成する。
また、数値ベクトルをニューラルネットワークで低次元のベクトルに変換することにより特徴を抽出する場合には、特徴抽出部4は、ニューラルネットワークのニューロン間の重みを変更する。
なお、特徴抽出部4は、サブクラスの分類が失敗するようにする方法として、例えば、各サブクラスに分類される予測確率が各サブクラス間で同じになるように調整する方法が考えられるが、各サブクラスの予測確率が低下するように調整してもよい。
分類部5は、特徴抽出部4により抽出された特徴を用いて、対象データ(新規データ)のクラスを分類する。例えば、図5に示すように、特徴抽出部4により既知データから抽出された特徴が数値ベクトルの1次元目の値と3次元目の値であり、対象データの数値ベクトルが[0.2,1.2,1.4,1.0]である場合を考える。この場合、分類部5は、既知データそれぞれの数値ベクトル(符号1101)および対象データの数値ベクトルの1次元目の値と3次元目の値とを用いて類似度を計算する。類似度の計算は、例えば、以下の式(1)に基づき行われる。そして、分類部5は、計算の結果、最も類似度の高い通番2のデータのクラス(例えば、「悪性」)に対象データを分類する。
Figure 2020075662
また、上記において類似度としては、ベクトルの差分のL2ノルムの逆数を用いたが、ベクトルの内積、ベクトルの差分のL1ノルムの逆数等を用いてもよい。
また、例えば、図5に示すように、分類部5が、既知データおよび対象データの数値ベクトル(4次元の値)をそのまま用いて既知データと対象データとの類似度を算出すると、既知データのうちクラスが「悪性」のデータも「良性」のデータも類似度の差があまりない(通番2の「0.63」と通番3の「0.75」等)。よって、分類部5は対象データのクラスを「悪性」に分類することができない。
しかし、異なるサブクラスでも数値ベクトルの値が類似している1次元目と3次元目を特徴として抽出すると、既知データのうちクラスが「悪性」のデータとクラスが「良性」のデータとで類似度の差が大きくなる(例えば、通番2の「100」と通番3の「1.3」等)。よって、分類部5は対象データのクラスを「悪性」に分類することができる。
このようにデータ分類装置1は、既知データから同じクラスのサブクラス間に共通する特徴を抽出し、当該特徴を用いて対象データのクラスの分類を行うので、対象データのクラスの分類精度を向上させることができる。
[処理手順]
次に、図6を用いてデータ分類装置1の処理手順の例を説明する。まず、データ分類装置1の既知データ入力部3は既知データの入力を受け付ける(S1)。その後、特徴抽出部4はS1で受け付けた既知データから特徴を抽出する(S2)。そして、対象データ入力部2が対象データの入力を受け付ける(S3)と、分類部5はS2で抽出された特徴を用いて、対象データのクラスを分類する(S4)。その後、分類部5は対象データのクラスの分類結果(例えば、悪性/良性)を出力する(S5)。
次に、図7を用いて、図6のS2における処理を詳細に説明する。特徴抽出部4は、S2で受け付けた既知データから特徴を抽出すると(S21)、当該抽出した特徴を用いて同じクラスに属する既知データのサブクラスの分類を行う(S22)。ここで、特徴抽出部4が、当該抽出した特徴を用いた既知データのサブクラスの分類に失敗したと判断した場合(S23でNo)、当該抽出した特徴を分類部5へ出力する(S24)。一方、特徴抽出部4が、当該抽出した特徴を用いた既知データのサブクラスの分類に成功したと判断した場合(S24でYes)、抽出する特徴を変更し(S25)、S22へ戻る。つまり、特徴抽出部4は、既知データから、前回抽出した特徴とは異なる特徴を用いてS22の処理を実行する。
このようにデータ分類装置1は、既知データから同じクラスのサブクラス間に共通する特徴(つまり、同じクラスに属するサブクラスの分類に失敗するような特徴)を抽出し、当該特徴を用いて対象データのクラスの分類を行うので、対象データのクラスの分類精度を向上させることができる。よって、例えば、データ分類装置1は、攻撃に悪用するアプリケーションや管理が厳格ではないレジストラ等、攻撃者が変更しにくい特徴を抽出し、その特徴を用いて対象データを分類することができる。その結果、例えば、対象データが未知のファミリ(未知ファミリ)のデータであったとしても、データ分類装置1は、悪性か否かを精度よく分類することができる。つまり、未知ファミリの悪性データの検知率を向上させることができる。
[第2の実施形態]
なお、上記の特徴抽出部4が既知データから特徴を抽出する際、既知データのクラスの分類が成功することも考慮して特徴を抽出してもよい。
例えば、データ分類装置1の特徴抽出部4は、図8に示すように既知データから抽出された特徴を用いて、同じクラスの既知データのファミリの分類(サブクラスの分類)と、既知データの悪性/良性の分類(クラスの分類)を行う。そして、特徴抽出部4は、同じクラスの既知データのサブクラスの分類が失敗し、かつ、既知データのクラスの分類が成功するように、抽出する特徴を変更する。このようにすることで、特徴抽出部4は、既知データから、クラスの分類精度がより高い特徴を抽出することができる。
[第3の実施形態]
また、特徴抽出部4は、既知データから特徴を抽出する際、同じクラスに属する既知データのサブクラスの分類を行った場合、類似のサブクラスについての分類が失敗するような特徴を抽出してもよい。
つまり、特徴抽出部4が、同じクラスに属するすべてのサブクラスの分類が同程度失敗するような特徴を抽出してしまうと、実際には共通の特徴がほとんど存在しないサブクラスからも特徴を抽出してしまうおそれがある。その結果、分類部5が当該特徴を用いて対象データのクラスの分類をすると、分類精度を低下させてしまうおそれがある。そこで、特徴抽出部4が、同じクラスのサブクラスのうち、類似するサブクラスを対象に既知データの分類が失敗するような特徴を抽出することで、クラスの分類を成功させるような特徴を安定して抽出することができる。
なお、類似のサブクラスは、データ分類装置1の管理者等が手動で設定したものでよいし、事前に、既知データの数値ベクトルを用いて各サブクラスを分類しておき、その分類結果を用いて設定されたものでもよい。
例えば、事前の分類結果を用いる場合、特徴抽出部4は、抽出した特徴を用いて同じクラスの既知データのサブクラスの分類を実施した場合に、既知データがどのサブクラスに分類されるかの予測確率を算出する。
例えば、特徴抽出部4は、図9のグラフ901に示すようにファミリ(サブクラス)1,2,3への分類の予測確率を算出する。そして、特徴抽出部4は、グラフ902に示すように、各ファミリの予測確率を平滑化する。その後、特徴抽出部4は、当該特徴を用いた既知データのファミリの分類結果が、平滑化後の予測確率に近づくように、特徴を変更(調整)する。
例えば、図9のグラフ901において最も予測確率が高い「ファミリ1」と類似するファミリは分かりにくい。しかし、特徴抽出部4がグラフ902のように各ファミリの分類結果の予測確率を平滑化することで、ファミリ1と類似するファミリが「ファミリ2」であることが分かりやすくなる。つまり、どのファミリ同士が類似しているか事前に分からない場合、特徴抽出部4が事前に算出したファミリの予測確率を参照することで、どのファミリ同士が類似しているかを推測しやすくなる。そして、特徴抽出部4が、ファミリの分類結果の予測確率を平滑化した値に近づくように、抽出する特徴を調整することで、類似するファミリに共通の特徴を抽出しやすくなる。
なお、特徴抽出部4は、図9に示すように、ファミリの分類結果が平滑化後の予測確率に近づくことの他、クラスの分類が成功することも考慮して特徴を調整してもよいし、ファミリの分類結果が平滑化後の予測確率に近づくことのみを考慮して特徴を調整してももちろんよい。
[予測確率の平滑化方法の例]
次に、特徴抽出部4によるサブクラス分類における予測確率の平滑化方法の例を説明する。特徴抽出部4によるサブクラス分類における予測確率の平滑化方法としては、例えば、以下の(1)〜(4)に示す方法が考えられる。
(1)予測確率が最も高い順に所定数のサブクラス(ファミリ)の予測確率を高くする方法(図10参照)
(2)予測確率が所定の閾値以上のサブクラス(ファミリ)の予測確率を高くする方法(図11参照)
(3)予測確率に所定の値(定数)を足す方法(図12参照)
(4)予測確率をソフトマックス関数の係数で調整する方法(図13参照)
例えば、(1)予測確率が最も高い順に所定数(例えば、2つ)のファミリの予測確率を高くする方法の場合、特徴抽出部4は、ファミリ1〜3のうち予測確率が最も高いファミリ1,2の予測確率を同じ値にする(図10の例1,2参照)。
また、例えば、(2)予測確率が閾値以上のファミリの予測確率を高くする方法の場合、特徴抽出部4は、図11の例1に示すファミリ1〜3について、予測確率が所定の閾値以上のファミリ1,2の予測確率を同じ値にする。また、特徴抽出部4は、図11の例2に示すファミリ1〜3のうち、予測確率が所定の閾値以上のファミリはファミリ1のみなので、ファミリ1の予測確率のみを用いて特徴を抽出する。
また、例えば、(3)予測確率に所定の値(定数)を足す方法(図12参照)の場合、特徴抽出部4は、図12の例1の左に示すファミリ1〜3の予測確率に所定の値(例えば、定数a)を足した上で平滑化を行い、例1の右に示すファミリ1〜3の予測確率を算出する。また、特徴抽出部4は、図12の例2の左に示すファミリ1〜3の予測確率に所定の値(例えば、定数a)を足した上で平滑化を行い、例2の右に示すファミリ1〜3の予測確率を算出する。ここでの各ファミリの予測確率の平滑化は、例えば、以下の式(2)を用いて行われる。
Figure 2020075662
なお、式(2)におけるaは定数、piはファミリiの予測確率、pi´は平滑化されたファミリiの予測確率、jはファミリの変数を示す。
また、例えば、(4)各ファミリの予測確率をソフトマックス関数の係数で調整する方法(図13参照)の場合、特徴抽出部4は、図13の例1の左に示すファミリ1〜3の予測確率をソフトマックス関数の係数を調整することで平滑化を行い、例1の右に示すファミリ1〜3の予測確率を算出する。また、特徴抽出部4は、図13の例2の左に示すファミリ1〜3の予測確率についても同様に、ソフトマックス関数の係数を調整することで平滑化を行い、例2の右に示すファミリ1〜3の予測確率を算出する。ここでの各ファミリの予測確率の平滑化は、例えば、以下の式(3)を用いて行われる。
Figure 2020075662
なお、式(3)におけるaは係数、piはファミリiの予測確率、pi´は平滑化されたファミリiの予測確率、jはファミリの変数を示す。
なお、類似するファミリの数が予め分かっている場合、(1)予測確率が最も高い順に所定数のファミリの予測確率を高くする方法を用いるのがよい。また、類似するサブクラスが比較的少ない場合、(2)予測確率が閾値以上のファミリの予測確率を高くする方法を用いるのがよい。さらに、類似するファミリが比較的多い場合、(3)予測確率に所定の値(定数)を足す方法を用いるのがよい。また、類似するファミリと類似しないファミリとが同数程度混在する場合、(4)予測確率をソフトマックス関数の係数で調整する方法を用いるのがよい。
[適用例]
次に、各実施形態のデータ分類装置1を、未知ファミリによる攻撃の検知に適用した場合の例を説明する。上記のデータ分類装置1を含むシステムは、例えば、以下の(1)〜(5)に示す手順を行う。
手順(1)正常(良性)および悪性のプロキシログと、そのプロキシログのクラスおよびサブクラスのラベルとを収集する。
手順(2)プロキシログから数値ベクトルを算出する。
手順(3)複数のサブクラスに共通の特徴を抽出する。
手順(4)抽出した特徴を用いてクラスの分類器を構築する。
手順(5)分類器を用いて攻撃の検知を行う。
なお、上記のプロキシログは、例えば、図14に示すネットワークにおけるデータ蓄積部に蓄積されたものを用いる。
図14に示すネットワークにおいて、各PC(Personal Computer)はルータとプロキシを経由してインターネットに接続されている。データ蓄積部は、プロキシを介した通信のログ(プロキシログ)を記録する。ここでのプロキシログの記録の形式に制約はないが、プロキシログから数値ベクトルを算出する際に必要なデータと、プロキシログのクラスおよびサブクラスのラベルの収集に必要な情報を記録しておく。
手順(1)においてプロキシログのラベルを収集する方法としては、IDS(Intrusion Detection System)の検知名を利用する方法の他、アンチウイルスソフト等の検知名を利用する方法でもよい。例えば、システムが、IDSにより悪性として検知されたプロキシログのクラスのラベルを悪性とし、サブクラスのラベルはIDSの検知名に基づいて設定する。また、データ蓄積部に記録されたデータに対して、別途IDSによるラベル付けを行ってもよいし、プロキシログの記録と同時にIDSによる検知とラベル付けとを行ってもよい。
手順(2)でプロキシログから算出される数値ベクトルの例を図15に示す。ここでは、システムが、プロキシログのHTTP(HyperText Transfer Protocol)リクエストに含まれるURLから数値ベクトルを算出する場合を説明する。なお、この数値ベクトルは、悪性データと良性データの特性を反映するように設計される。ここでは、数値ベクトルは、HTTPリクエストに含まれるURLにおける、サブドメインの有無、URLの長さ、パスの階層数、クエリの数等を数値化したものが考えられるが、HTTPリクエストに含まれるURLの、クエリのエントロピー、ホスト名のIPアドレスでの指定、ドメイン名の人気度合い、HTTPメソッド、content-type等を数値化したものでもよい。
図15では、HTTPリクエストごとに数値ベクトルを算出する例を示したが、複数のHTTPリクエストの集合から数値ベクトルを算出してもよい。集合の作成の仕方は、例えば、送信元IPアドレスと宛先FQDN(Fully Qualified Domain Name)が同一のHTTPリクエストの集合を作成する方法が考えられるが、送信元IPアドレスと宛先ドメイン名が同一のHTTPリクエスト集合でもよいし、所定時間内に同一送信元IPアドレスから送信されたHTTPリクエストの集合でもよい。
手順(3)では、システムは、前記した第1の実施形態〜第3の実施形態で述べた方法で、各サブクラスに共通の特徴を抽出する。
手順(4)では、システムは、手順(3)で抽出された特徴を用いて、クラス分類のための分類器を構築する。この分類器は、例えば、ニューラルネットを用いて構築する方法が考えられるが、ランダムフォレストやSVM等を用いてもよい。
手順(5)において、手順(4)により構築された分類器を用いて攻撃の検知を行うシステムの構成例を図16に示す。なお、図16に示すデータ分類装置1において、既知データ入力部3(図1参照)の記載は省いている。
また、手順(4)で構築された分類器は、図16のモデル蓄積部に格納される。そして、データ分類装置1の分類部5は、モデル蓄積部に格納された分類器を用いて、対象データが悪性か否かを分類する。つまり、分類部5は、攻撃の検知を行う。そして、分類部5は、その分類結果を通知部へ出力する。通知部は、例えば、分類結果が悪性である場合には、対象データの送信元の端末の所有者または遠隔の監視センターに対して悪性な通信(攻撃)があったことを通知する。このようにすることで、システムは未知ファミリによる攻撃を検知し、その結果を通知することができる。
[プログラム]
また、上記の実施形態で述べたデータ分類装置1の機能を実現するプログラムを所望の情報処理装置(コンピュータ)にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置をデータ分類装置1として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータ、ラック搭載型のサーバコンピュータ等が含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistants)等がその範疇に含まれる。また、データ分類装置1を、クラウドサーバに実装してもよい。
図17を用いて、上記のプログラム(データ分類プログラム)を実行するコンピュータの一例を説明する。図17に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図17に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。前記した実施形態で説明した各種データや情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。
そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、上記のデータ分類プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール1093やプログラムデータ1094は、LANやWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
1 データ分類装置
2 対象データ入力部
3 既知データ入力部
4 特徴抽出部
5 分類部

Claims (7)

  1. データの属するクラスおよび前記クラスの下位のクラスであるサブクラスが既知である既知データの入力を受け付ける既知データ入力部と、
    前記既知データに含まれる特徴から、当該特徴を用いて同じクラスに属する既知データのサブクラスの分類を実施した場合に分類が失敗するような特徴を抽出する特徴抽出部と、
    前記特徴抽出部により抽出された特徴を用いて、分類の対象データのクラスを分類する分類部と、
    を備えることを特徴とするデータ分類装置。
  2. 前記特徴抽出部は、
    前記既知データに含まれる特徴から、当該特徴を用いて同じクラスに属する既知データのサブクラスの分類を実施した場合に、互いに類似するサブクラスの既知データの分類が失敗するような特徴を抽出する
    ことを特徴とする請求項1に記載のデータ分類装置。
  3. 前記特徴抽出部は、
    前記既知データに含まれる特徴から、当該特徴を用いて同じクラスの既知データのサブクラスの分類を実施した場合にサブクラスの分類が失敗し、かつ、当該特徴を用いて既知データのクラスの分類を実施した場合にクラスの分類が成功するような特徴を抽出する
    ことを特徴とする請求項1に記載のデータ分類装置。
  4. 前記特徴抽出部は、
    前記既知データに含まれる特徴から、当該特徴を用いて同じクラスの既知データのサブクラスの分類を実施した場合に、当該既知データがどのサブクラスに分類されるかの予測確率を算出し、前記算出した予測確率をサブクラス間で平滑化した値を算出し、当該特徴を用いた既知データのサブクラスの分類が、前記平滑化した予測確率の値に近づくような特徴を抽出する
    ことを特徴とする請求項1または請求項2に記載のデータ分類装置。
  5. 同じ前記サブクラスに属するデータ群は、
    悪性のクラスに属し、同じ悪性ツールにより作成された悪性データ群である
    ことを特徴とする請求項1に記載のデータ分類装置。
  6. データ分類装置より実行されるデータ分類方法であって、
    データの属するクラスおよび前記クラスの下位のクラスであるサブクラスが既知である既知データの入力を受け付ける既知データ入力ステップと、
    前記既知データに含まれる特徴から、当該特徴を用いて同じクラスに属する既知データのサブクラスの分類を実施した場合に分類が失敗するような特徴を抽出する特徴抽出ステップと、
    前記特徴抽出ステップにより抽出された特徴を用いて、分類の対象データのクラスを分類する分類ステップと、
    を含んだことを特徴とするデータ分類方法。
  7. データの属するクラスおよび前記クラスの下位のクラスであるサブクラスが既知である既知データの入力を受け付ける既知データ入力ステップと、
    前記既知データに含まれる特徴から、当該特徴を用いて同じクラスに属する既知データのサブクラスの分類を実施した場合に分類が失敗するような特徴を抽出する特徴抽出ステップと、
    前記特徴抽出ステップにより抽出された特徴を用いて、分類の対象データのクラスを分類する分類ステップと、
    をコンピュータに実行させることを特徴とするデータ分類プログラム。
JP2020551137A 2018-10-09 2019-10-07 データ分類装置、データ分類方法、および、データ分類プログラム Active JP7001178B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018191174 2018-10-09
JP2018191174 2018-10-09
PCT/JP2019/039447 WO2020075662A1 (ja) 2018-10-09 2019-10-07 データ分類装置、データ分類方法、および、データ分類プログラム

Publications (2)

Publication Number Publication Date
JPWO2020075662A1 true JPWO2020075662A1 (ja) 2021-04-30
JP7001178B2 JP7001178B2 (ja) 2022-01-19

Family

ID=70164891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020551137A Active JP7001178B2 (ja) 2018-10-09 2019-10-07 データ分類装置、データ分類方法、および、データ分類プログラム

Country Status (4)

Country Link
US (1) US20210342651A1 (ja)
EP (1) EP3848822B1 (ja)
JP (1) JP7001178B2 (ja)
WO (1) WO2020075662A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12063248B2 (en) * 2020-06-04 2024-08-13 Palo Alto Networks, Inc. Deep learning for malicious URL classification (URLC) with the innocent until proven guilty (IUPG) learning framework

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014115920A (ja) * 2012-12-12 2014-06-26 Casio Comput Co Ltd 多クラス識別器、方法、及びプログラム
WO2016077027A1 (en) * 2014-11-13 2016-05-19 Nec Laboratories America, Inc. Hyper-class augmented and regularized deep learning for fine-grained image classification

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078625B1 (en) * 2006-09-11 2011-12-13 Aol Inc. URL-based content categorization
US20120254333A1 (en) * 2010-01-07 2012-10-04 Rajarathnam Chandramouli Automated detection of deception in short and multilingual electronic messages
US8521667B2 (en) * 2010-12-15 2013-08-27 Microsoft Corporation Detection and categorization of malicious URLs
US10205704B2 (en) * 2016-07-01 2019-02-12 Rapid 7, Inc. Classifying locator generation kits

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014115920A (ja) * 2012-12-12 2014-06-26 Casio Comput Co Ltd 多クラス識別器、方法、及びプログラム
WO2016077027A1 (en) * 2014-11-13 2016-05-19 Nec Laboratories America, Inc. Hyper-class augmented and regularized deep learning for fine-grained image classification

Also Published As

Publication number Publication date
EP3848822A1 (en) 2021-07-14
JP7001178B2 (ja) 2022-01-19
EP3848822A4 (en) 2022-05-04
EP3848822B1 (en) 2023-11-22
US20210342651A1 (en) 2021-11-04
WO2020075662A1 (ja) 2020-04-16

Similar Documents

Publication Publication Date Title
Vinayakumar et al. A visualized botnet detection system based deep learning for the internet of things networks of smart cities
US11539736B1 (en) Network asset correlator for cybersecurity operations
CN111382430B (zh) 用于对计算机系统的对象进行分类的系统和方法
CN111382434B (zh) 用于检测恶意文件的系统和方法
EP3435623A1 (en) Malware detection using local computational models
US8745760B2 (en) Malware classification for unknown executable files
CN102047260A (zh) 用于集中式恶意软件检测的智能散列
US20230185915A1 (en) Detecting microsoft windows installer malware using text classification models
US12032687B2 (en) Command classification using active learning
KR20120112696A (ko) 평판 시스템을 통한 멀웨어 탐지
EP3844927A1 (en) Increasing security of network resources utilizing virtual honeypots
Ahmed et al. Classification of packet contents for malware detection
EP3905086B1 (en) Large scale malware sample identification
Hussain et al. Malware detection using machine learning algorithms for windows platform
CN109525577B (zh) 基于http行为图的恶意软件检测方法
Vanitha et al. Malicious-URL detection using logistic regression technique
JP6823201B2 (ja) 分類装置、分類方法、および、分類プログラム
Khandait et al. IoTHunter: IoT network traffic classification using device specific keywords
Hikal et al. Enhancing IoT botnets attack detection using machine learning-IDS and ensemble data preprocessing technique
Wu et al. Detect repackaged android application based on http traffic similarity
Vij et al. Detection of algorithmically generated domain names using LSTM
Sidi et al. Helix: DGA domain embeddings for tracking and exploring botnets
CN107070845B (zh) 用于检测网络钓鱼脚本的系统和方法
Thiyagu et al. Deep learning approach for RPL wormhole attack
JP7001178B2 (ja) データ分類装置、データ分類方法、および、データ分類プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201020

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: 20211124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211207

R150 Certificate of patent or registration of utility model

Ref document number: 7001178

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150