JP7509244B2 - 生成装置、生成方法および生成プログラム - Google Patents

生成装置、生成方法および生成プログラム Download PDF

Info

Publication number
JP7509244B2
JP7509244B2 JP2022576281A JP2022576281A JP7509244B2 JP 7509244 B2 JP7509244 B2 JP 7509244B2 JP 2022576281 A JP2022576281 A JP 2022576281A JP 2022576281 A JP2022576281 A JP 2022576281A JP 7509244 B2 JP7509244 B2 JP 7509244B2
Authority
JP
Japan
Prior art keywords
software
unit
clustering
malware
matching
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
JP2022576281A
Other languages
English (en)
Other versions
JPWO2022157867A1 (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 JPWO2022157867A1 publication Critical patent/JPWO2022157867A1/ja
Application granted granted Critical
Publication of JP7509244B2 publication Critical patent/JP7509244B2/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
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

特許法第30条第2項適用 https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=208502&item_no=1&page_id=13&block_id=8 ウェブサイトの掲載日:2020年10月19日
本発明は、生成装置、生成方法および生成プログラムに関する。
近年、全世界のデバイスで稼働しているOS(Operating System)は、常にマルウェアによる攻撃の標的になっており、日々多くの新種のマルウェアが発見されている。例えば、世界に普及しているAndroidを標的とした代表的なマルウェアには、アドウェア、迷惑なアプリケーション(PUA:Potentially Unwanted Application)、トロイの木馬、ランサムウェア等が存在する。
マルウェアの脅威が深刻化する中、マルウェア検知技術が多数提案されており、既知のマルウェアのシグネチャやルールを基に検知する手法だけでなく、機械学習を利用したマルウェアの検知手法が多く提案されてきた。例えば、Androidを標的としたマルウェア(適宜、「Androidマルウェア」)を対象とした検知技術では、Androidアプリケーションを入力し、それがマルウェアであるかそうではないかを識別する二値分類を行う研究(例えば、非特許文献1~3参照)や、Androidマルウェア内のファミリ分類を行う研究(例えば、非特許文献4参照)がある。
Y. Aafer, W. Du, and H. Yin, "DroidAPIMiner: Mining API-Level Features for Robust Malware Detection in Android," in Security and Privacy in Communication Networks, 2013, pp. 86-103, doi: 10.1007/978-3-319-04283-1_6. D. Arp, M. Spreitzenbarth, M. Hubner, H. Gascon, K. Rieck, and C. Siemens, "DREBIN: Effective and explainable detection of android malware in your pocket," in Proc. NDSS, 2014. E. Mariconti, L. Onwuzurike, P. Andriotis, E. De Cristofaro, G. Ross, and G. Stringhini, "MAMADROID: Detecting Android Malware by Building Markov Chains of Behavioral Models," in Proc. NDSS, 2017. O. Mirzaei, G. Suarez-Tangil, J. M. de Fuentes, J. Tapiador, and G. Stringhini, "AndrEnsemble: Leveraging API Ensembles to Characterize Android Malware Families," in Proc. ACM Asia Conference on Computer and Communications Security, Jul. 2019, vol. 25, pp. 307-314, doi: 10.1145/3321705.3329854.
しかしながら、上述した従来技術では、時間変化によってコンセプトドリフトが発生したことを即座に特定し、検知精度が低下することなく、マルウェアをより正確に検知することができない場合があるという課題があった。
マルウェアは時間経過とともに攻撃手法やそのファミリが増加し、機械学習において、このように予測対象のデータの性質が大きく変化することは「コンセプトドリフト」と呼ばれる。そのため、ある時点の検知性能だけでなく、時系列変化を考慮したロバストな検知性能が重要であるが、マルウェアの検出に関連する従来技術は、コンセプトドリフトを十分に考慮しておらず、時系列変化が発生する現実的な条件下では時間経過とともに検出精度が低下するという課題がある。例えば、「マルウェアのファミリ名を予測する」タスクの場合、学習データに存在しない新種のファミリが出現した時点でコンセプトドリフトが発生し、正確な予測ができない場合がある。
上述した課題を解決し、目的を達成するために、本発明に係る生成装置は、ソフトウェアの情報を取得する取得部と、前記取得部によって取得された前記ソフトウェアの情報から、前記ソフトウェアの特徴量を抽出する抽出部と、前記抽出部によって抽出された前記特徴量に基づいて、前記ソフトウェアごとのクラスタを生成し、該クラスタの重心を含むクラスタリング結果を計算するクラスタリング部と、マルウェアの情報から計算された過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、前記クラスタリング部によって計算された前記クラスタリング結果を、該過去のクラスタリング結果とマッチングするマッチング部と、前記マッチング部によってマッチングされた結果に基づいて、前記ソフトウェアと前記マルウェアとの関係性を表わすグラフを生成する生成部とを備えることを特徴とする。
また、本発明に係る生成方法は、生成装置によって実行される生成方法であって、ソフトウェアの情報を取得する取得工程と、前記取得工程によって取得された前記ソフトウェアの情報から、前記ソフトウェアの特徴量を抽出する抽出工程と、前記抽出工程によって抽出された前記特徴量に基づいて、前記ソフトウェアごとのクラスタを生成し、該クラスタの重心を含むクラスタリング結果を計算するクラスタリング工程と、マルウェアの情報から計算された過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、前記クラスタリング工程によって計算された前記クラスタリング結果を、該過去のクラスタリング結果とマッチングするマッチング工程と、前記マッチング工程によってマッチングされた結果に基づいて、前記ソフトウェアと前記マルウェアとの関係性を表わすグラフを生成する生成工程とを含むことを特徴とする。
また、本発明に係る生成プログラムは、ソフトウェアの情報を取得する取得ステップと、前記取得ステップによって取得された前記ソフトウェアの情報から、前記ソフトウェアの特徴量を抽出する抽出ステップと、前記抽出ステップによって抽出された前記特徴量に基づいて、前記ソフトウェアごとのクラスタを生成し、該クラスタの重心を含むクラスタリング結果を計算するクラスタリングステップと、マルウェアの情報から計算された過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、前記クラスタリングステップによって計算された前記クラスタリング結果を、該過去のクラスタリング結果とマッチングするマッチングステップと、前記マッチングステップによってマッチングされた結果に基づいて、前記ソフトウェアと前記マルウェアとの関係性を表わすグラフを生成する生成ステップとをコンピュータに実行させることを特徴とする。
本発明では、時間変化によってコンセプトドリフトが発生したことを即座に特定し、検知精度が低下することなく、マルウェアをより正確に検知することができる。
図1は、第1の実施形態に係るソフトウェア家系図生成システムの構成例を示す図である。 図2は、第1の実施形態に係るソフトウェア家系図生成装置の構成例を示すブロック図である。 図3は、第1の実施形態に係る特徴量の抽出処理および家系図生成処理の概要を示した図である。 図4は、第1の実施形態に係る家系図の一例を示した図である。 図5は、第1の実施形態に係る特徴量の抽出処理の流れの一例を示すフローチャートである。 図6は、第1の実施形態に係る家系図生成処理の流れの一例を示すフローチャートである。 図7は、第1の実施形態に係るコンセプトドリフト検知処理および学習データ配信処理の流れの一例を示すフローチャートである。 図8は、プログラムを実行するコンピュータを示す図である。
以下に、本発明に係るソフトウェア家系図生成装置(適宜、生成装置)、ソフトウェア家系図生成方法(適宜、生成方法)およびソフトウェア家系図生成プログラム(適宜、生成プログラム)の実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
〔第1の実施形態〕
以下に、本実施形態に係るソフトウェア家系図生成システムの構成、ソフトウェア家系図生成装置の構成、特徴量の抽出処理、家系図生成処理、家系図の具体例、特徴量の抽出処理の流れ、家系図生成処理の流れ、コンセプトドリフト検知処理および学習データ配信処理の流れを順に説明し、最後に本実施形態の効果を説明する。
[ソフトウェア家系図生成システムの構成]
図1を用いて、本実施形態に係るソフトウェア家系図生成システム(適宜、本システム)100の構成を詳細に説明する。図1は、第1の実施形態に係るソフトウェア家系図生成システムの構成例を示す図である。ソフトウェア家系図生成システム100は、ソフトウェア家系図生成装置10、各種端末等のユーザ端末20(20A、20B、20C)およびソフトウェア識別装置30を有する。ここで、ソフトウェア家系図生成装置10とユーザ端末20とソフトウェア識別装置30とは、図示しない所定の通信網を介して、有線または無線により通信可能に接続される。なお、図1に示したソフトウェア家系図生成システム100には、複数台のソフトウェア家系図生成装置10や、複数台のソフトウェア識別装置30が含まれてもよい。
まず、ユーザ端末20は、マルウェア等のソフトウェアの情報を取得し(ステップS1)、その情報をソフトウェア家系図生成装置10に送信する(ステップS2)。ここで、ユーザ端末20は、一般的な利用者が所有するPC(Personal Computer)やAndroid等のOSを導入したスマートフォン、タブレット端末等であるが、特に限定されない。ユーザ端末20は、マルウェアの情報を収集する専用の機器であってもよい。
ここで、ソフトウェアの情報とは、少なくとも当該ソフトウェアの動作や構造上の特性を含む情報であるが、特に限定されない。また、ソフトウェアの情報とは、あらかじめマルウェアかどうかを識別可能な従来技術を用いて処理されたマルウェアの情報であってもよいし、マルウェアと断定はできないが疑わしいアプリケーションを含む情報であってもよい。さらに、ソフトウェア家系図生成装置10は、ソフトウェアの情報を、ユーザ端末20を介さずに直接取得することもできる。ソフトウェア家系図生成装置10による詳細なソフトウェアの情報の取得処理については、[特徴量の抽出処理]にて後述する。
次に、ソフトウェア家系図生成装置10は、クラスタリング結果記憶部14aから、マルウェア等の情報から計算された過去のクラスタリング結果を取得する(ステップS3)。ここで、クラスタリング結果とは、ソフトウェア家系図生成装置10によってクラスタリングされた、マルウェアごとのクラスタの重心を含む情報であるが、特に限定されない。クラスタリング結果は、当該マルウェアの収集された時系列に関する情報、マルウェアの種別を表わすファミリ名や仮ラベル等を含んでもよい。ソフトウェア家系図生成装置10による詳細なクラスタリングに関する処理については、[家系図生成処理]等にて後述する。
続いて、ソフトウェア家系図生成装置10は、マルウェア等の過去のクラスタリング結果から、マルウェア等の複数のソフトウェア間の関係性や時系列変化を表現したソフトウェアの家系図を生成し、更新する(ステップS4)。ソフトウェア家系図生成装置10による詳細なソフトウェア家系図生成処理やソフトウェア家系図の具体例については、[家系図生成処理][家系図の具体例]等にて後述する。また、ソフトウェア家系図生成装置10は、ソフトウェア家系図生成処理に際に取得した新たなマルウェア等のクラスタリング結果を、クラスタリング結果記憶部14aに送信する(ステップS5)。
さらに、ソフトウェア家系図生成装置10は、生成したマルウェア等のソフトウェア家系図より、新種のマルウェアのファミリの出現等のコンセプトドリフトの発生を検知する(ステップS6)。そして、ソフトウェア家系図生成装置10は、コンセプトドリフトの発生を検知した場合は、最新のマルウェア等を識別するための学習データであるデータセットを配信する(ステップS7)。一方、ソフトウェア識別装置30は、最新のデータセットを学習データとして用いて、マルウェア等のソフトウェアを識別するための機械学習モデルの再学習を行う(ステップS8)。ソフトウェア家系図生成装置10による詳細なコンセプトドリフト検知処理および再学習のためのデータセット配信処理については、[コンセプトドリフト検知処理および学習データ配信処理の流れ]にて後述する。
本実施形態に係るソフトウェア家系図生成システム100では、複数のマルウェア間の先祖にあたるものから子孫にあたるものまでの関係や、その時系列変化を表現することができる、いわば「家系図」を自動的に生成する。このため、本システム100では、新たに登場したマルウェアが、過去のマルウェアやファミリとどのような関係にあるのかを認識することができる。また、本システム100では、ある時点以後に出現する既存のファミリとの関係が得られない「突然変異」のような新種のファミリを即座に特定することができる。さらに、本システム100では、マルウェアを検知する技術を適用する際に、時間変化によってコンセプトドリフトの発生を即座に特定することができる。
また、本システム100では、コンセプトドリフトの発生を特定して機械学習モデルの再学習を行う。このため、マルウェアを検知する機械学習モデルの検知精度の低下を解消することができる。
[ソフトウェア家系図装置の構成]
図2を用いて、本実施形態に係るソフトウェア家系図生成装置10の構成を詳細に説明する。図2は、本実施形態に係るソフトウェア家系図生成装置の構成例を示すブロック図である。ソフトウェア家系図生成装置10は、入力部11、出力部12、通信部13、記憶部14および制御部15を有する。
入力部11は、当該ソフトウェア家系図生成装置10への各種情報の入力を司る。入力部11は、例えば、マウスやキーボード等であり、当該ソフトウェア家系図生成装置10への設定情報等の入力を受け付ける。また、出力部12は、当該ソフトウェア家系図生成装置10からの各種情報の出力を司る。出力部12は、例えば、ディスプレイ等であり、当該ソフトウェア家系図生成装置10に記憶された設定情報等を出力する。
通信部13は、他の装置との間でのデータ通信を司る。例えば、通信部13は、各通信装置との間でデータ通信を行う。また、通信部13は、図示しないオペレータの端末との間でデータ通信を行うことができる。
記憶部14は、制御部15が動作する際に参照する各種情報や、制御部15が動作した際に取得した各種情報を記憶する。記憶部14は、クラスタリング結果記憶部14aを有する。ここで、記憶部14は、例えば、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置等である。なお、図2の例では、記憶部14は、ソフトウェア家系図生成装置10の内部に設置されているが、ソフトウェア家系図生成装置10の外部に設置されてもよいし、複数の記憶部が設置されていてもよい。
クラスタリング結果記憶部14aは、制御部15のクラスタリング部15cが計算したクラスタリング結果を記憶する。例えば、クラスタリング結果記憶部14aは、クラスタリング結果として、過去のマルウェアを特徴量に基づいてクラスタ化したとき、当該クラスタに属する特徴量を表わす行ベクトルの平均(クラスタの重心)を記憶する。また、クラスタリング結果記憶部14aは、クラスタリング結果として、当該マルウェアの収集された時系列に関する情報、マルウェアの種別を表わすファミリ名や仮ラベル等を記憶してもよい。
制御部15は、当該ソフトウェア家系図生成装置10全体の制御を司る。制御部15は、取得部15a、抽出部15b、クラスタリング部15c、マッチング部15d、生成部15e、検知部15fおよび配信部14gを有する。ここで、制御部15は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路である。
取得部15aは、ソフトウェアの情報を取得する。例えば、取得部15aは、時系列順に複数のソフトウェアの情報を取得する。また、取得部15aは、少なくともソフトウェアの動作や構造上の特性を含む情報を取得する。ここで、取得部15aは、ソフトウェアの情報として、あらかじめマルウェアかどうかを識別可能な従来技術を用いて処理された、マルウェアの情報のみを取得してもよいし、マルウェアと断定はできないが疑わしいアプリケーションを含む情報を取得してもよい。
さらに、取得部15aは、時系列等ごとに分割されたソフトウェアの情報や、部分的なソフトウェアの情報を取得してもよい。一方、取得部15aは、取得したソフトウェアの情報を記憶部14に格納してもよい。また、取得部15aは、記憶部14に記録されたソフトウェアの情報を取得してもよい。
抽出部15bは、取得部15aによって取得されたソフトウェアの情報から、ソフトウェアの特徴量を抽出する。例えば、抽出部15bは、ソフトウェアの特徴量として、ソフトウェアの動作または構造上の特性を抽出する。また、抽出部15bは、ソフトウェアの特徴量として、ソフトウェアによって要求されるパーミッションまたは、ソフトウェアのソースコードのパッケージ名およびクラス名を抽出する。一方、抽出部15bは、抽出したソフトウェアの特徴量を記憶部14に格納してもよい。なお、抽出部15bによる詳細なソフトウェアの特徴量の抽出処理については、[特徴量の抽出処理]にて後述する。
クラスタリング部15cは、抽出部15bによって抽出されたソフトウェアの特徴量に基づいて、ソフトウェアごとのクラスタを生成し、クラスタの重心を含むクラスタリング結果を計算する。例えば、クラスタリング部15cは、X-means法を用いてクラスタを生成する。また、クラスタリング部15cは、過去のクラスタリング結果を更新する。例えば、クラスタリング部15cは、クラスタの重心を含むクラスタリング結果を、クラスタリング結果記憶部14aに格納し、過去のクラスタリング結果を更新する。なお、クラスタリング部15cによる詳細なクラスタリング処理については、[家系図生成処理]にて後述する。
マッチング部15dは、マルウェアの情報から計算された過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、クラスタリング部15cによって計算されたクラスタリング結果を、過去のクラスタリング結果とマッチングする。例えば、マッチング部15dは、k近傍法を用いてクラスタリング結果をマッチングする。一方、マッチング部15dは、マッチングした結果を記憶部14に格納してもよい。また、マッチング部15dは、記憶部14に記録された過去のマッチングした結果を参照してもよい。なお、マッチング部15dによる詳細なクラスタのマッチング処理については、[家系図生成処理]にて後述する。
生成部15eは、マッチング部15dによってマッチングされた結果に基づいて、ソフトウェアとマルウェアとの関係性を表わすグラフを生成する。例えば、生成部15eは、マッチング部15dによってマッチングされたクラスタリング結果に対応するノードと過去のクラスタリング結果に対応するノードとを時系列順にエッジで接続する。一方、生成部15eは、生成したグラフを記憶部14に格納してもよい。また、生成部15eは、記憶部14に記録された過去の生成したグラフを参照してもよい。なお、生成部15eによる詳細なグラフ作成処理については、[家系図生成処理]にて後述する。
検知部15fは、ソフトウェアの性質の変化を検知する。例えば、検知部15fは、生成部15eによって生成された新たなノードについて、過去のどのノードとも結びつかないノードが出現した場合、新たなマルウェアが出現し、コンセプトドリフトが発生したと判定する。また、検知部15fは、生成部15eによって生成された新たなノードについて、過去のどのノードからも所定の距離以上である場合、時間経過にともなうマルウェアの大きな変化が発生し、コンセプトドリフトが発生したと判定する。
配信部15gは、検知部15fによって検知されたソフトウェアの性質の変化に基づいて、ソフトウェアを識別する機械学習モデルに学習データを配信する。例えば、配信部15gは、検知部15fにより、新たなマルウェアの出現や時間経過にともなうマルウェアの大きな変化等のコンセプトドリフトの発生を検知した場合、正解ラベルや新種のマルウェアを表わす仮ラベル等を含む最新のデータセットを学習データとして作成し、マルウェアを識別する機械学習モデルに学習データを配信する。
[特徴量の抽出処理]
図3の手順1を用いて、本実施形態に係る特徴量の抽出処理を詳細に説明する。図3の手順1は、第1の実施形態に係る特徴量の抽出処理の概要を示したものである。手順1では、ソフトウェア家系図生成装置10は、入力された各アプリケーションから、その動作や構造上の特徴を捉えられるような「特徴量」を抽出する。以下では、特徴量として、マルウェアが要求するパーミッション(特徴量1)と、ソースコードのパッケージ名およびクラス名(特徴量2)について説明するが、特に限定されない。
(用語の定義)
ソフトウェア家系図生成装置10は、過去のマルウェアの情報として、{1,・・・,i-1,i}のi回目までの入力を受け付け、新しいマルウェアの情報として、i+1目の入力を受け付けるものとする。また、各アプリケーション(マルウェア)の特徴量をデータDと表記する。Dは行列形式で定義し、各行が1つのアプリケーションに対応し、各列が1つの特徴量に対応する。
また、データDの各行はマルウェアの出現順に並んでいるものとする。Dの各行、すなわち各マルウェアの特徴量を行ベクトルで表わしたものを「サンプル」と呼び、各サンプルは特徴量のベクトルで表されている。
また、データDを重複のないように時系列順、すなわち行番号順に行単位でm分割した部分行列{D(1),D(2),・・・,D(m)}を「バッチ」と呼び、バッチは複数のマルウェアの特徴量を行列で表したものとなる。なお、i回目のマルウェアの情報から得られたバッチをD(i)と表わし、i∈{1,2,・・・,m}である。
図3の手順1では、ソフトウェア家系図生成装置10は、新たなマルウェアの入力として、i+1目の入力を受け付け、特徴量をバッチD(i+1)として抽出する。
(特徴量1)
図3の手順1で抽出する特徴量として、マルウェアが要求するパーミッションを抽出する処理について詳細に説明する。パーミッションは、アプリケーションの動作のために、ユーザに要求する様々な権限を示す。例えば、Androidマルウェアが要求するパーミッションは、マニフェストファイル(AndroidManifest.xml)から取得することができ、Androidマルウェアがインターネットへのアクセスを要求する場合、「android.permission.INTERNET」というパーミッションがXML(Extensible Markup Language)ファイルに記述される。
ソフトウェア家系図生成装置10は、上記のパーミッションの記述について、以下の処理を行い、特徴量を抽出する。まず、ソフトウェア家系図生成装置10は、パーミッションの記述をピリオドで区切り、出現したパーミッション名をトークン化する。
次に、ソフトウェア家系図生成装置10は、あるマルウェアが要求するパーミッションについて、トークンが出現した場合にそのトークンに対応する特徴量を「1」とする。なお、この特徴量の構成方法はOne-hot encoding法として知られている。さらに、ソフトウェア家系図生成装置10は、要求するパーミッションの内容に関係なく、一般的に多く出現するトークン(例:「android」、「permission」)は特徴量からは除外するという処理を加えてもよい。
(特徴量2)
図3の手順1で抽出する特徴量として、ソースコードのパッケージ名およびクラス名(ファイル名)を抽出する処理について詳細に説明する。以下では、Androidアプリケーションの例を用いて説明するが、アプリケーション(マルウェア)は特に限定されない。
Androidアプリケーションは、ソースコードとそのディレクトリ構造(Java(登録商標)におけるパッケージの構造)も含めて逆コンパイルが可能である。例えば、あるAndroidアプリケーションのソースコードを逆コンパイルした結果、「com.example.myfirstapp.MainActivity (.java)」のようなクラスとパッケージの名前空間が得られる場合がある。この逆コンパイルした結果得られるパッケージの名前空間に着目すると、慣習的につけられる国別のTLD(Top Level Domain)、ライブラリの開発者、クラス名等の様々な情報が得られる。
ソフトウェア家系図生成装置10は、上記のようなパッケージ構造の名前空間に着目し、以下の処理を行い、特徴量を抽出する。まず、ソフトウェア家系図生成装置10は、逆コンパイルして得られたソースコードのファイル1つ1つについて、Android SDK(Software Development Kit)が提供するAPI(Application Programming Interface)に着目し、そのパッケージ構造とクラス名を取り出す。なお、ソフトウェア家系図生成装置10は、特にマルウェアの動作に関係するAPIに限定してパッケージ構造とクラス名を取り出すという処理を加えてもよい。
次に、ソフトウェア家系図生成装置10は、得られた名前空間をピリオドで区切り、上述のパーミッションを用いた処理と同様にトークン化し、One-hot encoding法で特徴量として抽出する。さらに、ソフトウェア家系図生成装置10は、一般的に多く出現するトークン(例:「android」、「permission」)は特徴量からは除外するという処理を加えてもよい。
(その他の特徴量の抽出処理)
ソフトウェア家系図生成装置10は、上述した特徴量の抽出処理以外の処理を行うこともできる。例えば、ソフトウェア家系図生成装置10は、上記のような静的解析に基づくパーミッションやパッケージ名やクラス名を抽出処理以外にも、動的解析結果を利用した処理や、アプリケーションが配置されているマーケットで取得可能な情報を利用した処理や、当該アプリケーションを利用するユーザに関する情報を利用した処理等を行うこともできる。
[家系図生成処理]
図3の手順2を用いて、本実施形態に係る家系図生成処理を詳細に説明する。図3の手順2は、第1の実施形態に係る家系図生成処理の概要を示したものである。手順2では、ソフトウェア家系図生成装置10は、クラスタリング処理(手順2-1)、クラスタのマッチング処理(手順2-2)、グラフ作成処理(手順2-3)の3つの処理を行う。
ソフトウェア家系図生成装置10は、新たなアプリケーションの特徴量が入力されるたびに、手順2を繰り返して実行することで、最新のマルウェアの家系図を生成し続ける。具体的には、ソフトウェア家系図生成装置10は、過去の世代のクラスタリング結果と、新しい世代のクラスタリングの結果をマッチングさせる手順を繰り返すことにより家系図を作成する。このため、日々新たに得られるまだ十分に解析されていないマルウェアを、過去に得られたマルウェアと関連付けすることができる。
なお、以下では、マルウェアはこれまで知られているファミリではない新種のファミリが時間経過とともに出現するというコンセプトドリフトが発生することを鑑み、すでに決まったクラスへの分類を考える教師あり学習のアプローチではなく、教師なし学習のアプローチでのクラスタリングを適用するが、特に限定されない。クラスタリングあるいはグループ化の方法は別の方法をとることもできる。
(クラスタリング処理)
図3の手順2のうち、マルウェアのクラスタリング処理について詳細に説明する。ソフトウェア家系図生成装置10は、図3の手順1で抽出した特徴量に基づいて、時系列順に得られる複数のマルウェアのクラスタリングを行う。以下のクラスタリング処理では、最適なクラスタ数を自動決定できるX-means法を用いる例を記載するが、クラスタリング処理は、特に限定されない。
まず、ソフトウェア家系図生成装置10は、バッチD(i)の行ベクトル全体からなるサンプルの集合に対して、X-means法を用いてクラスタリングし、c(i)個のクラスタを生成する。
次に、ソフトウェア家系図生成装置10は、各クラスタに属するサンプルの特徴量を表す行ベクトルの平均を計算し、各c(i)個のクラスタの重心を得る。このとき、クラスタの重心の集合を、G(i)={g(i,1),g(i,2),・・・,g(i,c(i))}と表わす。また、その和集合∪G(i)を(1)式と表す。つまり、∪G(i)は、バッチ{D(1),D(2),・・・,D(i)}に対してクラスタリング処理を行ったときに生成されるクラスタの重心をまとめたものとなる。
Figure 0007509244000001
図3の手順2-1の例では、ソフトウェア家系図生成装置10は、過去i回行ったクラスタリング処理により得られたクラスタの重心の集合{G(1),・・・,G(i-1),G(i)}をまとめた∪G(i)を過去のクラスタリング結果として保持している。また、図3の手順2-1の例では、ソフトウェア家系図生成装置10は、時系列順に得られた4個のマルウェアの特徴量としてバッチD(i+1)をクラスタリングし、3種のマルウェアに対応するクラスタを生成し、各クラスタに属する特徴量の平均を各クラスタの重心として計算している。
さらに、ソフトウェア家系図生成装置10は、バッチD(i+1)から計算したクラスタの重心の集合G(i+1)を∪G(i)に追加し、過去のクラスタリング結果を更新する。
(クラスタのマッチング処理)
図3の手順2のうち、クラスタのマッチング処理について詳細に説明する。ソフトウェア家系図生成装置10は、図3の手順2-1で計算した各クラスタの重心に基づいて、クラスタのマッチング処理を行う。ここで、ソフトウェア家系図生成装置10は、過去のクラスタリング結果から、現在のクラスタリングの結果に近いものを探索する処理を行う。以下のクラスタのマッチング処理では、近傍の要素を探索する手法としてはk近傍法を用いる例を記載するが、クラスタのマッチング処理は、特に限定されない。
ソフトウェア家系図生成装置10は、k近傍法を用いて、上述のクラスタリング処理によって新たに得られたG(i+1)の要素であるc(i+1)個の重心{g(i+1,1),g(i+1,2),・・・,g(i+1,c(i+1))}のそれぞれについて、その近傍を∪G(i)の要素からk個ずつ探索する(マッチング処理)。このとき、ソフトウェア家系図生成装置10は、k近傍法の距離関数としてユークリッド距離を用いるが、特に限定されない。
上記のマッチング処理の結果、D(i+1)のあるクラスタの重心g(i+1,l)について、∪G(i)から探索したk個の近傍を要素にもつ集合Neighbor(i+1,l)と、それらのk個の近傍とg(i+1,l)との距離を要素に持つ集合Distance(i+1,l)が得られる。なお、l∈{1,2,・・・,c(i+1)}である。また、ソフトウェア家系図生成装置10は、探索する近傍の個数kを任意に設定することができる。
図3の手順2-2の例では、ソフトウェア家系図生成装置10は、∪G(i)を過去のクラスタリング結果から、クラスタの重心の集合{G(1),・・・,G(i-1),G(i)}を取得し、G(i+1)の要素である3個のクラスタの重心のそれぞれについて、その近傍を∪G(i)の要素から1個ずつ探索している。
さらに、ソフトウェア家系図生成装置10は、Neighbor(i+1,l)、Distance(i+1,l)をマッチング処理の結果として保持し、マッチング処理ごとに更新してもよい。
(グラフ作成処理)
図3の手順2のうち、グラフ作成処理について詳細に説明する。ソフトウェア家系図生成装置10は、図3の手順2-2で得られたマッチング処理の結果に基づいて、マルウェアの家系図を表わすグラフの作成処理を行う。ソフトウェア家系図生成装置10が行うグラフの作成処理は、特に限定されない。
以下の例では、家系図P=(N,E)を有向グラフにより定義する。ここで、Nはノードを示し、クラスタの重心の集合∪G(i)の要素と1対1で対応する。また、Eはエッジを示し、距離dを保持し、エッジの方向は、時間の方向を表す。
まず、ソフトウェア家系図生成装置10は、D(i+1)から求められたc(i+1)個のクラスタの重心g(i+1,l)に対応するノードn(i+1,l)を作成する。なお、l∈{1,2,・・・,c(i+1)}である。
次に、ソフトウェア家系図生成装置10は、上記のノードに、Neighbor(i+1,l)の要素である過去の重心と対応するノードをエッジで結ぶ。
このとき、距離の閾値θをパラメータとし、θを超える場合はエッジの接続を切るという操作を加えてもよい。この操作を実施することにより,より近いクラスタのノードが接続され、家系図のエッジとして時系列を保ったクラスタ間の関係を示すことができる。
図3の手順2-3の例では、ソフトウェア家系図生成装置10は、過去のクラスタリング処理の結果から、3個のクラスタの重心に対応するノード(×印で表わす)のそれぞれについて、時間の方向を示すエッジ(点線矢印で表わす)を接続し、マルウェアの家系図を表わすグラフを作成している。なお、図3の手順2-3の例では、ソフトウェア家系図生成装置10は、過去(i回目)までのデータNeighbor(i,l)に基づいて、過去に作成されたノードおよびエッジも保持してグラフを作成している。
さらに、ソフトウェア家系図生成装置10は、作成したマルウェアの家系図を表わすグラフをグラフ作成処理の結果として保持し、グラフ作成処理ごとに更新してもよい。
[家系図の具体例]
図4を用いて、本実施形態に係る家系図の一例を詳細に説明する。図4は、第1の実施形態に係る家系図の一例を示した図である。図4では、あるノードとつながっている集合が「家系」(「family line」と図中に表記した箇所)、複数の家系を含む全体図が「家系図」である。グラフは下方向に進むに従って、時間が進むことを示す。また、ノードの色や模様は、そのノードに対応するクラスタ内で最多のファミリを示す。家系図では図のように関連するマルウェアのクラスタが同じ家系で結ばれ、エッジを逆向きに辿ることで過去のマルウェアとの関連付けも容易に行える。
なお、図4の例では、後にアンチウィルスベンダが付与したファミリ名(「Youmi」、「FakeInst」、「AirPush」、「Fusob」)を記載しているが、実際に家系図を作成する時点では、過去のマルウェアに対するファミリ名は得られているが新種のマルウェアのファミリ名については判明していないことが多い。ファミリ名は家系図作成の上述の手順1、2では一切利用していないため、アンチウィルスベンダによってファミリ名が付与されていない段階でも家系図は作成することができ、あるマルウェアに対し過去のマルウェアやファミリとの関係を知ることができる。
図4のマルウェアの家系図を用いることにより、新たに入手したマルウェアが、過去のマルウェアやファミリとどのような関係にあるのかを認識することができる。例えば、図4では、2013年11月に新規に入力したマルウェア(当該入力時点では、まだ「FakeInst」とは判明していない)から、「FakeInst」ファミリ(図4中央に存在する網目模様のノードの家系)の一番右下に接続されるような家系図が生成された場合、その入力したマルウェアは「FakeInst」のファミリと関係があるということが認識できる。
また、図4のマルウェアの家系図を用いることにより、新種のマルウェアのファミリの出現を観測することができる。例えば、図4では、「Fusob」ファミリ(図4下側に独立して存在する白色のノードの家系)が2015年以降に現れており、それらが既存の家系やファミリとは接続されなかったことがわかる。したがって、ある時点で過去のマルウェアファミリとは関連が低い新種のファミリが出現したことを知ることができる。
[特徴量の抽出処理の流れ]
図5を用いて、本実施形態に係る特徴量の抽出処理の流れを詳細に説明する。図5は、第1の実施形態に係る特徴量の抽出処理の流れの一例を示すフローチャートである。まず、ソフトウェア家系図生成装置10の取得部15aは、マルウェアの情報をユーザ端末20から取得する(ステップS101)。このとき、取得部15aは、ユーザ端末20以外の機器から情報を取得してもよい。また、取得部15aは、入力部11を介して直接入力された情報を取得してもよい。
次に、抽出部15bは、抽出するマルウェアの特徴量がマルウェアによって要求されるパーミッションである場合(ステップS102:パーミッション)、マニフェストファイルからパーミッションを取得し(ステップS103)、パーミッションをトークン化し(ステップS104)、出現したトークンを特徴量として抽出する(ステップS108)。また、抽出部15bは、多く出現するトークンを特徴量から除外し(ステップS109)、処理が終了する。
一方、抽出部15bは、抽出するマルウェアの特徴量がソースコードのパッケージ名・クラス名である場合(ステップS102:ソースコードのパッケージ名・クラス名)、マルウェアのソースコードを逆コンパイルし(ステップS105)、パッケージ名・クラス名を取得し(ステップS106)、パッケージ名・クラス名をトークン化し(ステップS107)、出現したトークンを特徴量として抽出する(ステップS108)。また、抽出部15bは、多く出現するトークンを特徴量から除外し(ステップS109)、処理が終了する。
なお、抽出部15bは、マルウェアの特徴量として、マルウェアによって要求されるパーミッションと、ソースコードのパッケージ名・クラス名とを合わせて抽出することもできる。
[家系図生成処理の流れ]
図6を用いて、本実施形態に係る家系図生成処理の流れを詳細に説明する。図6は、第1の実施形態に係る家系図生成処理の流れの一例を示すフローチャートである。まず、ソフトウェア家系図生成装置10のクラスタリング部15cは、抽出部15bによって抽出されたマルウェアの特徴量からクラスタを生成し(ステップS201)、各クラスタの重心を含むクラスタリング結果を計算する(ステップS202)。
次に、マッチング部15dは、クラスタリング部15cによって計算されたクラスタリング結果と、過去のクラスタリング結果とをマッチングする(ステップS203)。続いて、生成部15eは、マッチング部15dによってマッチングされた結果に基づいて、クラスタに対応するノードをエッジで接続し、マルウェアの家系図を表わすグラフを作成する(ステップS204)。
また、生成部15eは、作成したグラフのノード間の距離が設定した閾値を超えていた場合(ステップS205:肯定)、閾値を超えたノード間のエッジを切断する(ステップS206)。
そして、生成部15eは、マルウェアの家系図を生成し(ステップS207)、出力部12を介して家系図を表示する。このとき、生成部15eは、マルウェアのファミリ名や種別ごとにノードの色を変えて表示してもよいし、ファミリ名や出現時期を表示してもよい。
最後に、クラスタリング部15cは、新たなマルウェアの特徴量から計算したクラスタリング結果をクラスタリング結果記憶部14aに格納し、過去のクラスタリング結果を更新し(ステップS208)、処理が終了する。なお、クラスタリング部15cは、ステップS208の処理を、マッチング部15dによる処理や生成部15eによる処理の前に行ってもよい。
なお、マッチング部15dは、マッチング処理の結果を記憶部14に格納してもよいし、記憶部14に記憶されている過去のマッチング処理の結果を参照してもよい。また、生成部15eは、作成したグラフを記憶部14に格納してもよいし、記憶部14に記憶されている過去に作成したグラフを参照してもよい。
[コンセプトドリフト検知処理および学習データ配信処理の流れ]
図7を用いて、本実施形態に係るコンセプトドリフト検知処理および学習データ配信処理の流れを詳細に説明する。図7は、第1の実施形態に係るコンセプトドリフト検知処理および学習データ配信処理の流れの一例を示すフローチャートである。まず、ソフトウェア家系図生成装置10の生成部15eは、ノードおよびエッジを用いて、マルウェアの家系図を生成する(ステップS301)。
次に、検知部15fは、生成部15eによって生成された家系図に基づいて、コンセプトドリフトが発生を検知した場合(ステップS302:肯定)、最新のマルウェアの情報から、学習データとして最新のデータセットを構成する(ステップS303)。例えば、検知部15fは、家系図内のノードについて、入力された各バッチで、過去のどのノードとも結びつかないノード(適宜、「新ノード」)が出現した場合、新ノードに属するマルウェアの個数が事前に決められた一定個数以上のときには、コンセプトドリフトが発生したと判定する。また、検知部15fは、正解ラベルや新種のマルウェアを表わす仮ラベル等を含む最新のデータセットを構成する。
最後に、配信部15gは、検知部15fによって構成された最新のデータセットを、ソフトウェア識別装置30の機械学習モデルに配信し(ステップS304)、処理が終了する。
上記のコンセプトドリフト検知処理および学習データ配信処理を行うことにより、マルウェアを検知する機械学習モデルを運用する際に、時間経過によって新種のマルウェアファミリが登場し、コンセプトドリフトが発生したタイミングを即座に特定することで、当該機械学習モデルの検知精度が劣化する前に再学習を行うことができる。
例えば、あるマルウェアが与えられたとき、どのファミリに属するのかを予測する多クラス分類を行う機械学習モデルを考える。このとき、本発明で得られる家系図内のノードについて、新ノードが出現したとき、コンセプトドリフトが発生したとみなし、最新のデータセットを構成して、機械学習モデルの再学習を行う。このため、毎回最新のデータセットを用意せずとも、機械学習モデルの精度が劣化しうるコンセプトドリフトが発生したときにのみデータセットを用意すればよく、当該機械学習モデルの運用コストを下げることができる。
[第1の実施形態の効果]
第1に、上述した本実施形態に係るソフトウェア家系図生成処理では、ソフトウェアの情報を取得し、取得したソフトウェアの情報から、ソフトウェアの特徴量を抽出し、抽出した特徴量に基づいて、ソフトウェアごとのクラスタを生成し、クラスタの重心を含むクラスタリング結果を計算し、マルウェアの情報から計算した過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、計算したクラスタリング結果を、過去のクラスタリング結果とマッチングし、マッチングした結果に基づいて、ソフトウェアとマルウェアとの関係性を表わすグラフを生成する。このため、本処理では、時間変化によってコンセプトドリフトが発生したことを即座に特定し、検知精度が低下することなく、マルウェアをより正確に検知することができる。
第2に、上述した本実施形態に係るソフトウェア家系図生成処理では、時系列順に複数のソフトウェアの情報を取得し、ソフトウェアの特徴量として、ソフトウェアの動作または構造上の特性を抽出し、過去のクラスタリング結果をさらに更新し、マッチングしたクラスタリング結果に対応するノードと過去のクラスタリング結果に対応するノードとを時系列順にエッジで接続する。このため、本処理では、より効果的に時間変化によってコンセプトドリフトが発生したことを即座に特定し、検知精度が低下することなく、マルウェアをより正確に検知することができる。
第3に、上述した本実施形態に係るソフトウェア家系図生成処理では、ソフトウェアの特徴量として、ソフトウェアによって要求されるパーミッションまたは、ソフトウェアのソースコードのパッケージ名およびクラス名を抽出する。このため、本処理では、より効率的に時間変化によってコンセプトドリフトが発生したことを即座に特定し、検知精度が低下することなく、マルウェアをより正確に検知することができる。
第4に、上述した本実施形態に係るソフトウェア家系図生成処理では、X-means法を用いてクラスタを生成し、k近傍法を用いてクラスタリング結果をマッチングする。このため、本処理では、より正確に時間変化によってコンセプトドリフトが発生したことを即座に特定し、検知精度が低下することなく、マルウェアをより正確に検知することができる。
第5に、上述した本実施形態に係るソフトウェア家系図生成処理では、ソフトウェアの性質の変化を検知し、検知した性質の変化に基づいて、ソフトウェアを識別する機械学習モデルに学習データを配信する。このため、本処理では、時間変化によってコンセプトドリフトが発生したことを即座に特定し、頻繁に機械学習モデルの学習を行わなくとも、検知精度が低下することなく、マルウェアをより正確に検知することができる。
〔システム構成等〕
上記実施形態に係る図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
〔プログラム〕
また、上記実施形態において説明したソフトウェア家系図生成装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
図8は、プログラムを実行するコンピュータを示す図である。図8に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図8に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図8に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図8に例示するように、ディスクドライブ1100に接続される。例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図8に例示するように、例えば、マウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図8に例示するように、例えばディスプレイ1130に接続される。
ここで、図8に例示するように、ハードディスクドライブ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 記憶部
14a クラスタリング結果記憶部
15 制御部
15a 取得部
15b 抽出部
15c クラスタリング部
15d マッチング部
15e 生成部
15f 検知部
15g 配信部
20、20A、20B、20C ユーザ端末
30 ソフトウェア識別装置
100 ソフトウェア家系図生成システム

Claims (7)

  1. ソフトウェアの情報を取得する取得部と、
    前記取得部によって取得された前記ソフトウェアの情報から、前記ソフトウェアの特徴量を抽出する抽出部と、
    前記抽出部によって抽出された前記特徴量に基づいて、前記ソフトウェアごとのクラスタを生成し、該クラスタの重心を含むクラスタリング結果を計算するクラスタリング部と、
    マルウェアの情報から計算された過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、前記クラスタリング部によって計算された前記クラスタリング結果を、該過去のクラスタリング結果とマッチングするマッチング部と、
    前記マッチング部によってマッチングされた結果に基づいて、前記ソフトウェアと前記マルウェアとの関係性を表わすグラフを生成する生成部と
    を備えることを特徴とする生成装置。
  2. 前記取得部は、時系列順に複数のソフトウェアの情報を取得し、
    前記抽出部は、前記特徴量として、前記ソフトウェアの動作または構造上の特性を抽出し、
    前記クラスタリング部は、前記過去のクラスタリング結果をさらに更新し、
    前記生成部は、前記マッチング部によってマッチングされた前記クラスタリング結果に対応するノードと前記過去のクラスタリング結果に対応するノードとを時系列順にエッジで接続することを特徴とする請求項1に記載の生成装置。
  3. 前記抽出部は、前記特徴量として、前記ソフトウェアによって要求されるパーミッションまたは、前記ソフトウェアのソースコードのパッケージ名およびクラス名を抽出することを特徴とする請求項2に記載の生成装置。
  4. 前記クラスタリング部は、X-means法を用いて前記クラスタを生成し、
    前記マッチング部は、k近傍法を用いて前記クラスタリング結果をマッチングすることを特徴とする請求項3に記載の生成装置。
  5. 前記ソフトウェアの性質の変化を検知する検知部と、
    前記検知部によって検知された前記性質の変化に基づいて、ソフトウェアを識別する機械学習モデルに学習データを配信する配信部と
    をさらに備えることを特徴とする請求項1から4のいずれか1項に記載の生成装置。
  6. 生成装置によって実行される生成方法であって、
    ソフトウェアの情報を取得する取得工程と、
    前記取得工程によって取得された前記ソフトウェアの情報から、前記ソフトウェアの特徴量を抽出する抽出工程と、
    前記抽出工程によって抽出された前記特徴量に基づいて、前記ソフトウェアごとのクラスタを生成し、該クラスタの重心を含むクラスタリング結果を計算するクラスタリング工程と、
    マルウェアの情報から計算された過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、前記クラスタリング工程によって計算された前記クラスタリング結果を、該過去のクラスタリング結果とマッチングするマッチング工程と、
    前記マッチング工程によってマッチングされた結果に基づいて、前記ソフトウェアと前記マルウェアとの関係性を表わすグラフを生成する生成工程と
    を含むことを特徴とする生成方法。
  7. ソフトウェアの情報を取得する取得ステップと、
    前記取得ステップによって取得された前記ソフトウェアの情報から、前記ソフトウェアの特徴量を抽出する抽出ステップと、
    前記抽出ステップによって抽出された前記特徴量に基づいて、前記ソフトウェアごとのクラスタを生成し、該クラスタの重心を含むクラスタリング結果を計算するクラスタリングステップと、
    マルウェアの情報から計算された過去のクラスタリング結果に含まれるクラスタの重心との距離が所定値以下の場合、前記クラスタリングステップによって計算された前記クラスタリング結果を、該過去のクラスタリング結果とマッチングするマッチングステップと、
    前記マッチングステップによってマッチングされた結果に基づいて、前記ソフトウェアと前記マルウェアとの関係性を表わすグラフを生成する生成ステップと
    をコンピュータに実行させることを特徴とする生成プログラム。
JP2022576281A 2021-01-20 2021-01-20 生成装置、生成方法および生成プログラム Active JP7509244B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/001920 WO2022157867A1 (ja) 2021-01-20 2021-01-20 生成装置、生成方法および生成プログラム

Publications (2)

Publication Number Publication Date
JPWO2022157867A1 JPWO2022157867A1 (ja) 2022-07-28
JP7509244B2 true JP7509244B2 (ja) 2024-07-02

Family

ID=82548582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022576281A Active JP7509244B2 (ja) 2021-01-20 2021-01-20 生成装置、生成方法および生成プログラム

Country Status (4)

Country Link
US (1) US20240303330A1 (ja)
EP (1) EP4266200A1 (ja)
JP (1) JP7509244B2 (ja)
WO (1) WO2022157867A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115422556B (zh) * 2022-11-07 2023-03-24 中国科学技术大学 漏洞利用概率预测方法、系统、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011040064A (ja) 2003-11-12 2011-02-24 Trustees Of Columbia Univ In The City Of New York 正常データのnグラム分布を用いてペイロード異常を検出するための装置、方法、及び媒体
US20190073474A1 (en) 2013-02-26 2019-03-07 Palo Alto Networks, Inc. Malware detection using clustering with malware source information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011040064A (ja) 2003-11-12 2011-02-24 Trustees Of Columbia Univ In The City Of New York 正常データのnグラム分布を用いてペイロード異常を検出するための装置、方法、及び媒体
US20190073474A1 (en) 2013-02-26 2019-03-07 Palo Alto Networks, Inc. Malware detection using clustering with malware source information

Also Published As

Publication number Publication date
EP4266200A1 (en) 2023-10-25
JPWO2022157867A1 (ja) 2022-07-28
US20240303330A1 (en) 2024-09-12
WO2022157867A1 (ja) 2022-07-28

Similar Documents

Publication Publication Date Title
Euh et al. Comparative analysis of low-dimensional features and tree-based ensembles for malware detection systems
US9762593B1 (en) Automatic generation of generic file signatures
Tang et al. Dynamic API call sequence visualisation for malware classification
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
Azab et al. Msic: malware spectrogram image classification
US20160219068A1 (en) Method and apparatus for automatically identifying signature of malicious traffic using latent dirichlet allocation
Palahan et al. Extraction of statistically significant malware behaviors
Sayfullina et al. Efficient detection of zero-day android malware using normalized bernoulli naive bayes
CN110750789B (zh) 解混淆方法、装置、计算机设备和存储介质
Wang et al. A malware variants detection methodology with an opcode based feature method and a fast density based clustering algorithm
Balram et al. Static malware analysis using machine learning algorithms on APT1 dataset with string and PE header features
US11423099B2 (en) Classification apparatus, classification method, and classification program
Darus et al. Android malware classification using XGBoost on data image pattern
WO2017010350A1 (ja) ソフトウェア解析システム、ソフトウェア解析方法およびソフトウェア解析プログラム
CN114595451A (zh) 基于图卷积的安卓恶意应用分类方法
CN113315851A (zh) 域名检测方法、装置及存储介质
JP7509244B2 (ja) 生成装置、生成方法および生成プログラム
EP3799367B1 (en) Generation device, generation method, and generation program
Zhang et al. Slowing down the aging of learning-based malware detectors with api knowledge
KR20200073822A (ko) 악성코드 분류 방법 및 그 장치
Pranav et al. Detection of botnets in IoT networks using graph theory and machine learning
US11868473B2 (en) Method for constructing behavioural software signatures
Khan et al. Op2Vec: An Opcode Embedding Technique and Dataset Design for End‐to‐End Detection of Android Malware
Pektaş et al. Runtime-behavior based malware classification using online machine learning
TW201626279A (zh) 保護方法與其電腦系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230613

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A801

Effective date: 20230613

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20230613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240603