JP6491356B2 - 分類方法、分類装置および分類プログラム - Google Patents

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

Info

Publication number
JP6491356B2
JP6491356B2 JP2017553695A JP2017553695A JP6491356B2 JP 6491356 B2 JP6491356 B2 JP 6491356B2 JP 2017553695 A JP2017553695 A JP 2017553695A JP 2017553695 A JP2017553695 A JP 2017553695A JP 6491356 B2 JP6491356 B2 JP 6491356B2
Authority
JP
Japan
Prior art keywords
node
attribute information
nodes
communication
classification
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
JP2017553695A
Other languages
English (en)
Other versions
JPWO2017094377A1 (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 JPWO2017094377A1 publication Critical patent/JPWO2017094377A1/ja
Application granted granted Critical
Publication of JP6491356B2 publication Critical patent/JP6491356B2/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/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、分類方法、分類装置および分類プログラムに関する。
従来、悪性なソフトウェアであるマルウェアの種類を特定して分類する手法が知られている。このようなマルウェアを分類する手法として、マルウェアのコードに基づく手法、ホスト上での挙動に基づく手法、ネットワーク上での挙動に基づく手法に大別することができる。
マルウェアのコードに基づく手法では、マルウェアを逆アセンブリしたコードから、連続する単語の出現回数に基づくn-gram特徴量を抽出し、機械学習を適用することで、マルウェアを分類する手法が提案されている(例えば、非特許文献1参照)。他の手法としては、逆アセンブリしたコードから使用される関数の依存関係のグラフを作成し、グラフの距離を定義することで、マルウェアを分類する手法が提案されている(例えば、非特許文献2参照)。
また、ホスト上の挙動に基づく手法では、CWSandBoxと呼ばれるマルウェアを安全に解析するサンドボックスシステムで解析した際に生成されるレポートに、特定の文字列が出現するかどうかを特徴量として算出し、機械学習を適用することでマルウェアを分類する手法が提案されている(例えば、非特許文献3参照)。他の手法としては、マルウェア実行時に呼び出されたAPIの時系列に対し、文章のトピックを推定する手法であるトピックモデルを適用し、マルウェアを分類する手法が提案されている(例えば、非特許文献4参照)。
また、ネットワーク上の挙動に基づく手法では、マルウェアによる個々の通信をノードとし、DNS(Domain Name System)名前解決に基づいてHTTP(Hyper Text Transfer Protocol)通信が行われたなどの依存関係に基づいてエッジを作成することで、グラフを作成する。グラフの大きさやノードのエッジ数の平均などを特徴量として算出し、機械学習を適用する手法が提案されている(例えば、非特許文献5参照)。他の手法としては、マルウェアの特徴的な通信パターンを抽出しシグネチャを作成することで、マルウェアを検知する手法が提案されている(例えば、非特許文献6参照)。
Kolter, J. Z. and Maloof, M.A., "Learning to detect and classify malicious executables in the wild.", The Journal of Machine Learning Research, Vol. 7, pp. 2721-2744, 2006 Kong, D. and Yan, G., "Discriminant malware distance learning on structural information for automated malware classification.", in Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining, 2013, pp. 1357-1365. Rieck, K., Holz, T., Willems, C., Dussel, P. and Laskov, P., "Learning and classification of malware behavior.", in Detection of Intrusions and Malware, and Vulnerability Assessment, 2008, pp. 108-125. Xiao, H. and Stibor, T., "A supervised topic transition model for detecting malicious system call sequences.", in Proceedings of the 2011 workshop on Knowledge discovery, modeling and simulation, 2011, pp. 23-30. Nari, S., et al., "Automated malware classification based on network behavior.", in International Conference on Computing, Networking and Communications , 2013, pp. 642-647. Mizutani, M., Shirahata, S., Minami, M. and Murai, J., "Rook: Multi-session based network security event detector.", in International Symposium on Applications and the Internet, 2008, pp. 48-54.
しかしながら、上記の従来技術では、マルウェアの特徴を適切に捉えることができず、マルウェアを適切に分類することができない場合があるという課題がある。例えば、マルウェアのコードに基づく手法では、マルウェアが難読化されていると、マルウェアの特徴を捉えることができず、適切に分類できなくなると考えられる。ホスト上の挙動に基づく手法では、マルウェアが解析環境をレジストリ名やファイル名から検知し、検知した場合に悪性な挙動を示さなくなる機能を具備していると、悪性な挙動の特徴を抽出することができず、適切に分類することができなくなると考えられる。
一方、ネットワーク上の挙動に基づく手法では、実際にマルウェアを実行するため難読化の影響を受けず、情報の収集にはマルウェアのトラフィックを監視する機器のみが必要なため、解析環境の検知による影響を受けないと考えられる。マルウェアのネットワーク上の挙動には、C&Cサーバに通信した後に攻撃を実行するといった時系列特徴が存在する。しかし、攻撃対象とその数はC&Cサーバから送信されるコマンドによって異なるため、この特徴を捉えるためには、柔軟な時系列解析が必要となる。しかし、従来技術は通信の順序性を考慮していない手法と、予め用意した固定的なシグネチャに基づく手法であるため、柔軟な時系列解析を実施できない。このため、柔軟な時系列解析によって、マルウェアのネットワーク上の時系列の特徴を捉え、マルウェアを分類する手法を構築する必要がある。
上述した課題を解決し、目的を達成するために、本発明の分類方法は、分類装置によって実行される分類方法であって、ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータを構築する構築工程と、前記末端のノードの属性情報を基に、上位のノードの属性情報を算出する算出工程と、最上位のノードの属性情報に基づいて、前記ソフトウェアの種類を特定して分類する分類工程とを含んだことを特徴とする。
また、本発明の分類装置は、ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータを構築する構築部と、前記末端のノードの属性情報を基に、上位のノードの属性情報を算出する算出部と、最上位のノードの属性情報に基づいて、前記ソフトウェアの種類を特定して分類する分類部とを有することを特徴とする。
また、本発明の分類プログラムは、ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータを構築する構築ステップと、前記末端のノードの属性情報を基に、上位のノードの属性情報を算出する算出ステップと、最上位のノードの属性情報に基づいて、前記ソフトウェアの種類を特定して分類する分類ステップとをコンピュータに実行させることを特徴とする。
本発明によれば、マルウェアの特徴を捉え、マルウェアを適切に分類することができるという効果を奏する。
図1は、本実施形態に係る分類装置の概要を示す構成図である。 図2は、識別対象ソフトウェアの通信に関する情報例を示す図である。 図3は、既知ソフトウェアの通信に関する情報例を示す図である。 図4は、通信が発生した時刻が近いノードに対する上位ノードを作成することで木を構築する例を説明する図である。 図5は、通信が発生した時刻が早いノードに対する上位ノードを作成することで木を構築する例を説明する図である。 図6は、属性情報の類似性が高いノードに対する上位ノードを作成することで木を構築する例を説明する図である。 図7は、上位ノードの属性情報を算出する処理の一例を説明する図である。 図8は、本実施形態に係る分類装置における分類モデル作成処理の流れを示すフローチャートである。 図9は、本実施形態に係る分類装置におけるソフトウェア分類処理の流れを示すフローチャートである。 図10は、分類プログラムを実行するコンピュータを示す図である。
以下に、本願に係る分類方法、分類装置および分類プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る分類方法、分類装置および分類プログラムが限定されるものではない。
[実施形態]
以下の実施形態では、実施形態に係る分類装置の構成及び処理の流れを順に説明し、その後、最後に実施形態による効果を説明する。
[分類装置の構成]
まず、図1を用いて、分類装置10の構成を説明する。図1は、本実施形態に係る分類装置の概要を示す構成図である。図1に示すように、この分類装置10は、対象通信入力部11、既知通信入力部12、出力部16、制御部20および記憶部30を有する。
対象通信入力部11は、識別対象のソフトウェアの通信を入力として許容する。既知通信入力部12は、ソフトウェアの種別が既知である既知ソフトウェアの通信を入力として許容する。出力部16は、後述する分類モデルまたは分類結果を出力する。
記憶部30は、制御部20による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、対象通信入力部11、既知通信入力部12から入力された情報を記憶する。例えば、記憶部30は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
ここで、図2を用いて、対象通信入力部11によって入力される情報であって、記憶部30が記憶する通信に関連する情報について説明する。図2は、識別対象ソフトウェアの通信に関する情報例を示す図である。図2に例示するように、記憶部30は、ソフトウェアを実行した際に発生する通信先との一連の通信を識別する「通番」と、通信が発生したタイミングを示す「時刻」と、発生した通信のプロトコルを示す「プロトコル」と、名前解決を実施したドメイン名を示す「名前解決ドメイン」と、発生した通信の通信先ドメインを示す「通信先ドメイン」と、発生した通信がHTTP通信だった場合のHTTPメソッド名を示す「HTTPメソッド」とを対応付けて記憶する。なお、図2の時刻は、所定の時刻を基準として、該所定の時刻から何秒後に通信が発生したかを示している。例えば、時刻「4」とある場合には、所定の時刻から「4」秒後に通信が発生したことを意味する。
また、プロトコルとしてはDNSやHTTPが考えられるが、これに限るものではなく、SMTP(Simple Mail Transfer Protocol)、SSL(Secure Sockets Layer)、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)などでもよい。ただし、時刻情報は、通信発生順序と変更することもできる。なお、図2において、上記した通信に関連する情報として、時刻情報は必須とし、その他に、プロトコル、名前解決ドメイン、通信先ドメイン、HTTPメソッドなどを例示しているが、これに限るものではなく、ポート番号、ドメインに対応するIPアドレス数、HTTPレスポンスのサイズ、URLなどを記憶してもよい。
なお、図2に例示した情報は、少なくとも後述の図3の内容を含んでいることが望ましいが、含んでいない場合は、含まれていない情報を空欄として扱って分類する等の処理が可能である。また、これらの情報は、対象通信入力部11が保有する外部インタフェースを介して入力される。当該情報は、外部に設けた機能から自動的に入力される場合もあれば、オペレータによって手動で入力される場合もある。
また、これらの情報は、pcap(packet capture)やsyslogなど、機器が保有する通信ログから生成することができる。通信ログからこれらの情報を生成する場合、データ変換用プログラムが必要となるが、対象通信入力部11に保有させてもよいし、外部に設けた機能に保有させてもよい。なお、通番はマルウェア1検体で発生した通信をまとめて振り、重複は許さないものとする。
次に、図3を用いて、既知通信入力部12によって入力される情報であって、記憶部30が記憶する通信に関連する情報について説明する。図3は、既知ソフトウェアの通信に関する情報例を示す図である。図3に例示するように、記憶部30は、ソフトウェアを実行した際に発生する通信先との一連の通信を識別する「通番」と、ソフトウェアの種別が既知である既知ソフトウェアの種類を示す「ラベル」と、通信が発生したタイミングを示す「時刻」と、発生した通信のプロトコルを示す「プロトコル」と、名前解決を実施したドメイン名を示す「名前解決ドメイン」と、発生した通信の通信先ドメインを示す「通信先ドメイン」と、発生した通信がHTTP通信だった場合のHTTPメソッド名を示す「HTTPメソッド」とを対応付けて記憶する。
なお、図3において、上記した通信に関連する情報として、時刻情報は必須とし、その他に、プロトコル、名前解決ドメイン、通信先ドメイン、HTTPメソッドなどを例示しているが、これに限るものではない。ただし、時刻情報は、通信発生順序と変更することもできる。
また、本発明における、プロトコルとしてはDNS、HTTP、SMTPが考えられるが、これに限るものではない。また、ソフトウェアの性質を識別するラベルを各通信に付与するが、ラベルは図に示した「ワーム」や「ウイルス」に限るものではなく、「バックドア」、「ダウンローダー」、「スパイウェア」等でもよい。
また、これらの情報は、既知通信入力部12が保有する外部インタフェースを介して入力される。当該情報は、外部に設けた機能から自動的に入力される場合もあれば、オペレータによって手動で入力される場合もある。
また、これらの情報は、例えばサンドボックスやマルウェア動的解析システムに代表される、既知ソフトウェアの通信先を収集する機器が保有する解析ログから生成することができる。解析ログからこれらの情報を生成する場合、データ変換用プログラムが必要となるが、既知通信入力部12に保有させてもよいし、外部に設けた機能に保有させても良い。なお、通番はマルウェア1検体で発生した通信をまとめて振り、重複は許さないものとする。
図1の説明に戻って、制御部20は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、木構築部13、属性情報算出部14および分類部15を有する。木構築部13は、対象通信入力部11と既知通信入力部12で入力した各通信から、1回または複数回の通信に関する属性情報を末端ノードとする木を構築する。属性情報算出部14は、木構築部13によって構築された木の上位ノードの属性情報を、下位ノードの属性情報をもとに算出する。分類部15は、属性情報算出部14によって算出された最上位のノードの属性情報を用いて、ソフトウェアの分類を行う。以下に、各部について、詳しく説明する。
木構築部13は、ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータ(以下では、適宜「木」と記載)を構築する。木構築部13は、木構造のデータを構築するタイミングとして、分類モデルを作成する際、または、分類モデルを用いて識別対象ソフトウェアを分類する際に、木構造のデータを構築する。木構築部13は、分類モデルを作成する際には、既知通信入力部12で入力されたソフトウェアの種類が既知であるソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、木構造データを構築する。一方、木構築部13は、分類モデルを用いて識別対象ソフトウェアを分類する際には、対象通信入力部11で入力された通信の情報を基に、木構造データを構築する。
また、木構築部13は、木構造データを構築する手法として、例えば、通信が発生した時刻が近いノードに対する上位ノードを作成して木を構築する手法と、通信が発生した時刻が早いノードに対する上位ノードを作成して木を構築する手法と、属性情報の類似度が高いノードに対する上位ノードを作成し、木を通番ごとに構築する手法のうち、いずれか1つの手法を用いて木構造データを構築するものとする。上記3つの手法のうち、いずれの手法を使用するかは任意に選択できるものとする。
例えば、木構築部13は、末端のノードのうち、通信が発生した時刻が最も近い2つのノードの属性情報を基に、該2つのノードに対する新たな上位のノードを作成し、新たに作成されたノードを含め上位のノードが存在しないノードのうち、時刻が最も近い2つのノードの属性情報を基に、該2つのノードに対する新たな上位のノードを作成する処理を繰り返すことで木構造のデータを構築する。
ここで、図4を用いて、通信が発生した時刻が近いノードに対する上位ノードを作成し、木を構築する例を説明する。ここでは、対象通信入力部11で入力された通信の情報または既知通信入力部12で入力された通信の情報を基に、1回または複数回の通信を末端ノードとする木を通番ごとに構築する。
例えば、1回または複数回の通信に対応するノードを、通信が発生した順に末端ノードの位置に配置する(図4の(1)参照)。複数回の通信を1つのノードに対応させる場合は、ノードの時刻として通信の平均、最初の通信の時刻、最後の通信の時刻などを採用することができる。例えば、通信先ドメインごとに通信をまとめると、マルウェアの挙動として想定される通信環境の確認、攻撃指令の受信、被害者に関する情報の送信、攻撃等の情報を抽出でき、マルウェアの挙動を効果的に表現可能と考えられる。また、ノード数の削減にもなるため、計算量の低減も可能である。
次に、上位ノードが存在しないノードの中で、隣り合うノードの時刻の差を計算し、最も時刻が近い2つのノードに対し上位ノードを作成する(図4の(2)参照)。上位ノードの時刻は、下位ノードの平均の時刻、またはどちらかの下位ノードの時刻などを採用することができる。新たに作成されたノードを含め上位ノードが存在しないノードに対し、すべての末端ノードが1つの木に属するようになるまでこの処理を繰り返す(図4の(3)参照)。なお、テーブルに同時刻での通信情報が記載されていた場合、記載順序に応じて通信が発生したものとして処理する。
マルウェアの通信は、特定の目的の通信を行った後、その結果を処理し、次の通信に遷移すると考えられる。つまり、同一の目的の通信は短い間隔で発生すると考えられる。マルウェアが解析を妨害するために、一時的に挙動を停止する動作や、無関係な通信を発生する動作が埋め込まれていなければ有効と考えられる。
また、例えば、木構築部13は、末端のノードのうち、通信が発生した時刻が最も早いノードと2番目に早いノードとの属性情報を基に、該2つのノードに対する新たな上位のノードを作成し、新たに作成されたノードを含め上位のノードが存在しないノードのうち、通信が発生した時刻が最も早いノードと2番目に早いノードとの属性情報を基に、該2つのノードに対する新たな上位のノードを作成する処理を繰り返すことで木構造のデータを構築するようにしてもよい。
ここで、図5を用いて、通信が発生した時刻が近いノードに対する上位ノードを作成し、木を構築する例を示す。ここでは、対象通信入力部11で入力された通信の情報または既知通信入力部12で入力された通信の情報を基に、1回または複数回の通信を末端ノードとする木を通番ごとに構築する。
例えば、1回または複数回の通信に対応するノードを、通信が発生した順に末端ノードの位置に配置する(図5の(1)参照)。複数回の通信を1つのノードに対応させる場合は、ノードの時刻として通信の平均、最初の通信の時刻、最後の通信の時刻などを採用することができる。例えば、通信先ドメインごとに通信をまとめると、マルウェアの挙動として想定される通信環境の確認、攻撃指令の受信、被害者に関する情報の送信、攻撃等の情報を抽出でき、マルウェアの挙動を効果的に表現可能と考えられる。また、ノード数の削減にもなるため、計算量の低減も可能である。
次に、上位ノードが存在しないノードの中で、ノードの時刻が最も早い2つのノードに対する上位ノードを作成する(図5の(2)参照)。上位ノードの時刻は、下位ノードの平均の時刻、またはどちらかの下位ノードの時刻などを採用することができる。新たに作成されたノードを含め上位ノードが存在しないノードに対し、すべての末端ノードが1つの木に属するようになるまでこの処理を繰り返す(図5の(3)参照)。なお、テーブルに同時刻での通信情報が記載されていた場合、記載順序に応じて通信が発生したものとして処理する。
マルウェアによる解析妨害として、一時的に挙動を停止する動作をランダムに挿入することが考えられる。この場合、通信間隔に基づいてノードを結合させると、異なる目的のノードを先に結合させることになり、推定がうまくいかないと考えられる。このような場合には、通信が発生した時刻が早いノードから結合させることで影響を最低限に抑えることが可能と考えられる。
また、例えば、木構築部13は、末端のノードのうち、類似度が高いノード同士の属性情報を基に、該2つのノードに対する新たな上位のノードを作成し、新たに作成されたノードを含め上位のノードが存在しないノードのうち、類似度が高いノード同士の属性情報を基に、該2つのノードに対する新たな上位のノードを作成する処理を繰り返すことで木構造のデータを構築するようにしてもよい。
ここで、図6を用いて、属性情報の類似性が高いノードに対する上位ノードを作成し、木を構築する例を示す。ここでは、対象通信入力部11で入力された通信の情報または既知通信入力部12で入力された通信の情報を基に、1回または複数回の通信を末端ノードとする木を通番ごとに構築する。
例えば、1回または複数回の通信に対応するノードを、通信が発生した順に末端ノードの位置に配置する(図6の(1)参照)。複数回の通信を1つのノードに対応させる場合は、ノードの時刻として通信の平均、最初の通信の時刻、最後の通信の時刻などを採用することができる。例えば、通信先ドメインごとに通信をまとめると、マルウェアの挙動として想定される通信環境の確認、攻撃指令の受信、被害者に関する情報の送信、攻撃等の情報を抽出でき、マルウェアの挙動を効果的に表現可能と考えられる。また、ノード数の削減にもなるため、計算量の低減も可能である。
次に、上位ノードが存在しないノードの中で、ノードの属性情報の類似度が最も高い2つのノードに対する上位ノードを作成する(図6の(2)参照)。上位ノードと末端ノードとの類似度は、上位ノードの結合する各ノード(通信2、通信3に対応するノード)と末端ノード(通信1に対応するノード)との類似度を計算し、最大値、最小値、平均値などを採用することができる。
上位ノード同士の類似度は、下位ノード同士の類似度を全ての組み合わせで計算し、最大値、最小値、平均値などを採用することができる。ノードの属性情報としては、ドメインに対応するIPアドレス数、ドメインに含まれる数字の割合、各プロトコルの通信数などを利用することができる。
類似度の算出方法としては、属性情報がすべて数値の場合はユークリッド距離、マンハッタン距離などを利用することができ、カテゴリデータが含まれる場合はJaccard係数などを用いることができる。属性情報の類似度に加え、通信の発生時間を考慮して最終的な類似度を算出してもよい。新たに作成されたノードを含め上位ノードが存在しないノードに対し、すべての末端ノードが1つの木に属するようになるまでこの処理を繰り返す(図6の(3)参照)。また、類似度の算出方法として複数の方法を用意し、ある算出方法で類似度が閾値以上のノードが存在しなくなった場合に他の算出方法を用いて類似度を算出することを繰り返しても良い。
マルウェアの解析妨害として、マルウェアの本来の目的と無関係な通信を挿入する手法が考えられる。この場合、図4または図5の手法では妨害の通信とその他の通信を先に結合させることになり、推定がうまくいかないと考えられる。一方、通信の類似度に基づく手法では、同一の目的に関する通信は類似していると考えられるので、適切に木を構築可能と考えられる。
属性情報算出部14は、末端のノードの属性情報を基に、上位のノードの属性情報を算出する。具体的には、属性情報算出部14は、分類モデルを用いて識別対象ソフトウェアを分類する際には、末端のノードの属性情報を入力とし、上位のノードの属性情報を出力とする特定の関数を用いて、全ての上位のノードの属性情報を算出する。ここで、図7を用いて、上位ノードの属性情報の算出する例を説明する。図7は、上位ノードの属性情報を算出する処理の一例を説明する図である。
属性情報算出部14は、前述の木構築部13によって構築された木を基に、上位ノードの属性情報を算出する。ノードの属性情報としては、ドメインに対応するIPアドレス数、ドメインに含まれる数字の割合、各プロトコルの通信数などを利用することができる。属性情報にカテゴリデータが含まれる場合は、カテゴリ数を次元としカテゴリのインデックスの次元のみ「1」残りは「0」のベクトルとして表現するなど、属性情報を数値ベクトルに変換する必要がある。上位のノードの属性情報は、下位の2つのノードを引数とする関数fによって算出する。上位のノードの属性情報の算出では、この関数fを木構造に従って再帰的に適用する。
また、属性情報算出部14は、分類モデルを作成する際にも同様に、木構築部13によって構築された木構造のデータにおける末端のノードの属性情報を入力とし、上位のノードの属性情報を出力とする特定の関数を用いて、全ての上位のノードの属性情報を算出する。
分類部15は、最上位のノードの属性情報に基づいて、ソフトウェアの種類を特定して分類する。具体的には、分類部15は、識別対象ソフトウェアを分類する際には、最上位のノードの属性情報を入力とし、マルウェアの種類を出力する関数を用いて、マルウェアの種類を特定し、該マルウェアの種類に応じて分類する。
また、分類部15は、分類モデルを作成する際には、最上位のノードの属性情報を入力とし、ソフトウェアの種類を算出する関数を用いて、種類が既知であるソフトウェアの種類を算出する。ここで、分類部15は、算出されたソフトウェアの種類と実際のソフトウェアの種類との誤差が小さくなるように、特定の関数fおよびソフトウェアの種類を算出する関数を変更して分類モデルを作成する。
[分類装置の処理の一例]
次に、図8および図9を用いて、分類装置10における処理の流れを説明する。図8は、本実施形態に係る分類装置における分類モデル作成処理の流れを示すフローチャートである。図9は、本実施形態に係る分類装置におけるソフトウェア分類処理の流れを示すフローチャートである。
まず、図8を用いて、分類モデルを作成する処理を説明する。図8に示すように、分類装置10は、ソフトウェアの種類が既知である既知ソフトウェアの通信の情報の入力を受け付ける(ステップS101)。そして、分類装置10は、既知通信入力部12で入力された通信の情報から木を構築する(ステップS102)。木構築部13は、木構造データを構築する手法として、例えば、通信が発生した時刻が近いノードに対する上位ノードを作成して木を構築する手法と、通信が発生した時刻が早いノードに対する上位ノードを作成して木を構築する手法と、属性情報の類似度が高いノードに対する上位ノードを作成し、木を通番ごとに構築する手法のうち、いずれか1つの手法を用いて木構造データを構築する。
続いて、分類装置10は、末端のノードの属性情報を基に、上位のノードの属性情報を算出する。具体的には、分類装置10は、構築された木構造のデータにおける末端のノードの属性情報を入力とし、上位のノードの属性情報を出力とする特定の関数fを用いて、全ての上位のノードの属性情報を算出する(ステップS103)。ここで、さらに、分類装置10は、属性情報からソフトウェアの種類を算出する関数を用いて、最上位のノードからソフトウェアの種類を予測する。
そして、分類装置10は、予測誤差に基づく学習アルゴリズムを適用し、上記の分類モデルを作成する(ステップS104)。すなわち、分類装置10は、ステップS101にて入力された既知のソフトウェアの種類(ラベル)を「教師データ」とした教師あり機械学習により、分類モデルを作成する。予測されたソフトウェアの種類と実際のソフトウェアのラベルとの誤差が小さくなるように、属性情報からソフトウェアの種類を算出する関数と上位ノードの属性情報を算出する関数とを変更し、分類モデルを作成する。なお、この処理は十分な回数繰り返し行うものとする。その後、分類装置10は、作成された分類モデルを出力する(ステップS105)。なお、ここでは、属性情報からソフトウェアの種類を算出する関数と上位ノードの属性情報を算出する関数の両方を含むものを分類モデルと記載する。
次に、図9を用いて、ソフトウェアを分類する処理を説明する。図9に示すように、分類装置10は、対象通信入力部11で入力された識別対象のソフトウェアの通信の情報を受け付ける(ステップS201)。そして、分類装置10は、対象通信入力部11で入力された通信の情報を基に、木構造データを構築する(ステップS202)。
そして、分類装置10は、上述の作成されたモデルを読み込み(ステップS203)、末端のノードの属性情報を入力とし、上位のノードの属性情報を出力とする関数fを用いて、全ての上位のノードの属性情報を算出した後、最上位のノードの属性情報を入力し、ソフトウェアの種類を出力する分類モデルを用いて、ソフトウェアの種類を算出する(ステップS204)。その後、分類装置10は、ソフトウェアの分類結果を出力する(ステップS205)。
[実施形態の効果]
このように、分類装置10は、ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータを構築し、末端のノードの属性情報を基に、上位のノードの属性情報を算出し、最上位のノードの属性情報に基づいて、ソフトウェアの種類を特定して分類する。このため、分類装置10が、単数または複数の通信先との1回または複数回の通信に関する属性情報を末端ノードとする木を構築し、下位のノードの属性情報をもとに、上位のノードの属性情報を算出し、最上位のノードの属性情報に基づいて分類を行うことで、多少の変化は許容しつつ、ソフトウェアに特徴的な通信の時系列特徴を捉えることで難読化や解析環境検知の影響を受けず精度の高いソフトウェアの分類を行うことが可能となる。
また、分類装置10は、上述したように、木構造データを構築する手法として、例えば、通信が発生した時刻が近いノードに対する上位ノードを作成して木を構築する手法と、通信が発生した時刻が早いノードに対する上位ノードを作成して木を構築する手法と、属性情報の類似度が高いノードに対する上位ノードを作成し、木を通番ごとに構築する手法のうち、いずれか1つの手法を用いて木構造データを構築する。上記3つの手法のうち、いずれの手法を使用するかは任意に選択できるものとする。例えば、マルウェアが解析を妨害するために、一時的に挙動を停止する動作や、無関係な通信を発生する動作が埋め込まれていない場合には、通信が発生した時刻が近いノードに対する上位ノードを作成して木を構築する手法が選択される。また、例えば、マルウェアによる解析妨害として、一時的に挙動を停止する動作がランダムに挿入されている場合には、通信が発生した時刻が早いノードに対する上位ノードを作成して木を構築する手法が選択される。また、例えば、マルウェアが解析を妨害するために、マルウェアの本来の目的と無関係な通信が挿入されている場合には、属性情報の類似度が高いノードに対する上位ノードを作成し、木を通番ごとに構築する手法が選択される。このように、マルウェアの挙動に応じて、最適な木構造データの構築手法が選択された上で、木構造データを構築することが可能である。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。例えば、木構築部13と属性情報算出部14とを統合してもよい。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
また、上記実施形態において説明した分類装置10が実行する処理について、コンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る分類装置10が実行する処理について、コンピュータが実行可能な言語で記述した分類プログラムを作成することもできる。この場合、コンピュータが分類プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる分類プログラムをコンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録され分類プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図1に示した分類装置10と同様の機能を実現する分類プログラムを実行するコンピュータの一例を説明する。
図10は、分類プログラムを実行するコンピュータ1000を示す図である。図10に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図10に例示するように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図10に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図10に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、図10に例示するように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図10に例示するように、例えばディスプレイ1130に接続される。
ここで、図10に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の分類プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、実行する。
なお、分類プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、分類プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 分類装置
11 対象通信入力部
12 既知通信入力部
13 木構築部
14 属性情報算出部
15 分類部
16 出力部
20 制御部
30 記憶部

Claims (9)

  1. 分類装置によって実行される分類方法であって、
    ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータを構築する構築工程と、
    前記末端のノードの属性情報を基に、上位のノードの属性情報を算出する算出工程と、
    最上位のノードの属性情報に基づいて、前記ソフトウェアの種類を特定して分類する分類工程と
    を含んだことを特徴とする分類方法。
  2. 前記構築工程は、前記末端のノードのうち、通信が発生した時刻が最も近い2つのノードの属性情報を基に、該2つのノードに対する新たな上位のノードを作成し、新たに作成されたノードを含め上位のノードが存在しないノードのうち、時刻が最も近い2つのノードの属性情報を基に、該2つのノードに対する新たな上位のノードを作成する処理を繰り返すことを特徴とする請求項1に記載の分類方法。
  3. 前記構築工程は、前記末端のノードのうち、通信が発生した時刻が最も早いノードと2番目に早いノードとの属性情報を基に、該2つのノードに対する新たな上位のノードを作成し、新たに作成されたノードを含め上位のノードが存在しないノードのうち、通信が発生した時刻が最も早いノードと2番目に早いノードとの属性情報を基に、該2つのノードに対する新たな上位のノードを作成する処理を繰り返すことを特徴とする請求項1に記載の分類方法。
  4. 前記構築工程は、前記末端のノードのうち、類似度が高いノード同士の属性情報を基に、該2つのノードに対する新たな上位のノードを作成し、新たに作成されたノードを含め上位のノードが存在しないノードのうち、類似度が高いノード同士の属性情報を基に、該2つのノードに対する新たな上位のノードを作成する処理を繰り返すことを特徴とする請求項1に記載の分類方法。
  5. 前記算出工程は、前記末端のノードの属性情報を入力とし、上位のノードの属性情報を出力とする第一の関数を用いて、全ての上位のノードの属性情報を算出することを特徴とする請求項1〜4のいずれか一つに記載の分類方法。
  6. ソフトウェアの種類が既知であるソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から構築された前記木構造のデータにおける末端のノードの属性情報を入力とし、上位のノードの属性情報を出力とする第一の関数を用いて、全ての上位のノードの属性情報を算出し、さらに、最上位のノードの属性情報を入力とし、ソフトウェアの種類を出力する第二の関数を用いて、ソフトウェアの種類を特定する特定工程と、
    前記特定工程によって特定されたソフトウェアの種類と実際のソフトウェアの種類との誤差が小さくなるように、前記第一の関数および前記第二の関数を変更する変更工程と、
    をさらに含んだことを特徴とする請求項1に記載の分類方法。
  7. 前記構築工程は、前記ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信のうち、通信先が同一である複数の通信に関する属性情報をまとめて一つの末端ノードとし、前記木構造のデータを構築することを特徴とする請求項1に記載の分類方法。
  8. ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータを構築する構築部と、
    前記末端のノードの属性情報を基に、上位のノードの属性情報を算出する算出部と、
    最上位のノードの属性情報に基づいて、前記ソフトウェアの種類を特定して分類する分類部と
    を有することを特徴とする分類装置。
  9. ソフトウェアを実行した際に発生する単数または複数の通信先との一連の通信から、1回または複数回の通信に関する属性情報を末端のノードとする木構造のデータを構築する構築ステップと、
    前記末端のノードの属性情報を基に、上位のノードの属性情報を算出する算出ステップと、
    最上位のノードの属性情報に基づいて、前記ソフトウェアの種類を特定して分類する分類ステップと
    をコンピュータに実行させるための分類プログラム。
JP2017553695A 2015-11-30 2016-10-18 分類方法、分類装置および分類プログラム Active JP6491356B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015233345 2015-11-30
JP2015233345 2015-11-30
PCT/JP2016/080830 WO2017094377A1 (ja) 2015-11-30 2016-10-18 分類方法、分類装置および分類プログラム

Publications (2)

Publication Number Publication Date
JPWO2017094377A1 JPWO2017094377A1 (ja) 2018-03-29
JP6491356B2 true JP6491356B2 (ja) 2019-03-27

Family

ID=58797012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017553695A Active JP6491356B2 (ja) 2015-11-30 2016-10-18 分類方法、分類装置および分類プログラム

Country Status (4)

Country Link
US (1) US10970391B2 (ja)
EP (1) EP3367288B1 (ja)
JP (1) JP6491356B2 (ja)
WO (1) WO2017094377A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019185183A (ja) * 2018-04-03 2019-10-24 積水ハウス株式会社 通信装置保護管理サーバおよび通信装置保護システム
JP7119630B2 (ja) * 2018-06-20 2022-08-17 日本電信電話株式会社 情報処理装置、情報交換システム、情報処理方法および情報処理プログラム
US11538038B2 (en) * 2019-05-31 2022-12-27 Paypal, Inc. Systems and methods for remote detection of computer device attributes
KR102317833B1 (ko) * 2019-10-31 2021-10-25 삼성에스디에스 주식회사 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
CN111078646B (zh) * 2019-12-30 2023-12-05 山东蝶飞信息技术有限公司 基于互联网设备的运行数据对软件进行分组的方法及系统
CN111737694B (zh) * 2020-05-19 2023-04-25 华南理工大学 一种基于行为树的恶意软件同源性分析方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117486B2 (en) * 2007-04-10 2012-02-14 Xerox Corporation Method and system for detecting an anomalous networked device
US8595834B2 (en) 2008-02-04 2013-11-26 Samsung Electronics Co., Ltd Detecting unauthorized use of computing devices based on behavioral patterns
US8615606B2 (en) * 2008-12-10 2013-12-24 At&T Intellectual Property I, L.P. Methods and apparatus to manipulate services in a distributed business intelligence computing environment
US8826438B2 (en) * 2010-01-19 2014-09-02 Damballa, Inc. Method and system for network-based detecting of malware from behavioral clustering
JP5806630B2 (ja) 2012-02-23 2015-11-10 セコム株式会社 アプリケーション検査システム
CN102984140B (zh) * 2012-11-21 2015-06-17 中国人民解放军国防科学技术大学 基于行为片段共享的恶意软件特征融合分析方法及系统
US20170024660A1 (en) * 2015-07-23 2017-01-26 Qualcomm Incorporated Methods and Systems for Using an Expectation-Maximization (EM) Machine Learning Framework for Behavior-Based Analysis of Device Behaviors

Also Published As

Publication number Publication date
WO2017094377A1 (ja) 2017-06-08
EP3367288B1 (en) 2020-06-17
US10970391B2 (en) 2021-04-06
JPWO2017094377A1 (ja) 2018-03-29
US20190065743A1 (en) 2019-02-28
EP3367288A1 (en) 2018-08-29
EP3367288A4 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
JP6491356B2 (ja) 分類方法、分類装置および分類プログラム
US11423146B2 (en) Provenance-based threat detection tools and stealthy malware detection
Shibahara et al. Efficient dynamic malware analysis based on network behavior using deep learning
EP2946331B1 (en) Classifying samples using clustering
CN114787805A (zh) 系统事件的自动语义建模
US11212297B2 (en) Access classification device, access classification method, and recording medium
Karbalaie et al. Semantic malware detection by deploying graph mining
JPWO2014112185A1 (ja) 攻撃分析システム及び連携装置及び攻撃分析連携方法及びプログラム
KR101859562B1 (ko) 취약점 정보 분석 방법 및 장치
US10757029B2 (en) Network traffic pattern based machine readable instruction identification
JP2016091549A (ja) マルウェアイベントとバックグラウンドイベントとを分離するためのシステム、デバイス、および方法
EP3876122A1 (en) System, method and computer readable medium for identifying missing organizational security detection system rules
KR102280845B1 (ko) 네트워크 내의 비정상 행위 탐지 방법 및 그 장치
WO2016194909A1 (ja) アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム
JPWO2018066221A1 (ja) 分類装置、分類方法及び分類プログラム
Kumar et al. Machine learning based malware detection in cloud environment using clustering approach
Sethi et al. A novel malware analysis for malware detection and classification using machine learning algorithms
JP6864610B2 (ja) 特定システム、特定方法及び特定プログラム
Nadeem et al. Beyond labeling: Using clustering to build network behavioral profiles of malware families
WILLIAMSON et al. Active malware analysis using stochastic games
JP6666475B2 (ja) 解析装置、解析方法及び解析プログラム
EP3799367B1 (en) Generation device, generation method, and generation program
KR101863569B1 (ko) 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치
Ahmadi et al. Intrusion detection using transfer learning in machine learning classifiers between non-cloud and cloud datasets
JP7424395B2 (ja) 分析システム、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190228

R150 Certificate of patent or registration of utility model

Ref document number: 6491356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150