自動化されたマルウェア動的解析システム
で収集した大量APIコールログの分析
MWS 2013
藤野 朗稚† ，森 達哉††早稲田大学 基幹理工学部 情報理工学科

2013/10/24

Akinori Fujino, Waseda Univ.

1

目次• 研究背景• 提案手法• 結果• まとめ

2013/10/24

Akinori Fujino, Waseda Univ.

2

研究背景
• マルウェアは日々驚くべき速さで増加している．
• 一日当たり20万個の新しいマルウェアが発見されている[1]．
新たに発見されてきたマルウェア[2]• このような状況の中，マルウェアに対応するためにはより効率のよい解析方法を確立する必要がある．
[1] Kaspersky Lab, ¥2012 by the numbers: Kaspersky Labnow detects 200,000 new malicious programs every day.
"http://www.kaspersky.com/about/news/virus/2012/2012_by_the_numbers_Kaspersky_Lab_now_detects_200000_new_malicious_programs_every_day”.
[2] AV-TEST GmbH, The AV-TEST Institute registers over 200,000 new malicious programs every day.
“http://www.av-test.org/en/statistics/malware/”2013/10/24

3

研究背景
マルウェアの解析方法には大きく分けて静的解析と動的解析の2種類がある．
静的解析:

動的解析:

マルウェアのソースコードを解析することでどのような挙動をするのかを詳細に調べるために行われる．自動化が難しい．

実際の感染者と類似した環境の中でマルウェアを動作させ，その結果を用いて解析する．自動化がしやすい．

長所： 動的解析よりも詳細に挙動がわかる．

短所： 解析に時間がかかる．
2013/10/24&

長所： 解析にかかる時間が少なくて済む．

短所： マルウェアに感染する可能性がある．

4

研究背景
• 大量に増え続けるマルウェアに対抗するために，動的解析を自動で行う技術が発達してきている．
– Cuckoo sandboxというオープンソースのソフトウェアもそのような動的解析を自動化したシステムのひとつである．

malwarePE形式かつ実行可能なもの

入力

動的解析
システム
実行と解析

ログの出力

log file~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

自動動的解析システム使用時のイメージ図
2013/10/24

5

研究背景
• 大量のマルウェアに対して自動動的解析システムを使用した場合，ログファイルの量もマルウェアの数に比例して多くなってしまう．

malwaremalwaremalwaremalwaremalware入力

動的解析システム
実行と解析

ログの出力

log file~~~~~~~
log file~~~~~~~~~~~~~~
log file~~~~~~~~~~~~~~
log file~~~~~~~~~~~~~~
log file~~~~~~~~~~~~~~~~~~~~~

解析するマルウェアの数が増えた場合
2013/10/24

6研究背景• 膨大な数になったログを効率よく解析するためには，マルウェアの対策につながるような特徴を発見する必要がある．
malwareの出力ログ
log file 1~~~~~~~~~~**~~

malwareAタイプ

特徴Aが存在malwareBタイプ

log file 2~~~@@~~~~~~~

特徴Bが存在New

未知のマルウェア

malwareCタイプ

マルウェアの特徴を発見できた場合
2013/10/24

7

使用したデータについて• FFRI-Dataset-2013– FFRI社より提供されたデータ．
– 2012年9月から2013年3月に収取されたもの．
– 検体数は，2644検体．
– PE形式のものをCuckoo sandboxを用いて解析したログ．
– ファイル形式は，json形式．

2013/10/248cuckoo sandboxのログのデータ構造と分布
e.g. ログのデータ構造{“info”: {},“yara”: [],“signatures”: [],“virustotal”: {},“static”: {},“dropped”: [],“behavior”: {},“target”: {}“debug”: {},“strings”: [],“network”: {}}2013/10/24

ログの各項目の行数
9ログの具体例
e.g. virustotalの構造の一部

e.g. behaviorの構造の一部“scans”: {“AV NAME": {"detected": true or false,"version": “version","result": “virus name","update": “update“},},"processes": [{"calls": [{"api": “API name","arguments": [{"name": “name 1","value": “value 1“},{"name": “name 2","value":“value 2“}]},},]

2013/10/24

10

研究背景
• マルウェアの特徴を発見するために，今回着目したのは出力ログの中のAPIコールに関するログである．
– 下の図に示したbehavior以下の部分をAPIコールログと呼ぶことにする．

behavior

processes

calls

api

API名

arguments

引数名，値

APIコールログのデータ構造の一部
2013/10/24

11目次• 研究背景• 提案手法• 結果• まとめ

2013/10/24

Akinori Fujino, Waseda Univ.

12提案手法（概要）• APIコールログを用いて特徴ベクトルを作成し，クラスタリングを用いて，データの分析をした．
– クラスタリングは，k-meansとNMFを使用した．

データの処理ログ
前処理

クラスタリングトピック抽出
類似検体検索2013/10/24

データ処理時のデータの様子
2600検体270検体

log file・・・・・・・

log file

log file

log file・・・・・・・

log file

log file・・・・・・・・

cluster 20

cluster 1cluster 2

各クラスタのトピック抽出
13

提案手法（前処理）
前処理

スクリーニング• スクリーニング

特徴ベクトルvirustotal内のKasperskyの検査結果を使用しラベル付けをし，同一の種類の検体が10体以上存在する種類を選択した．

特徴選択

ログ

スクリーニングによって選択された種類

前処理
クラスタリング
トピック抽出類似検体検索2013/10/24

14提案手法（前処理）
スクリーニング

前処理

特徴ベクトル
特徴選択

ログ
前処理
クラスタリング• 特徴ベクトル
APIの関数名
api=“LGD”,arguments: [{引数1“name: “FN”,“value”: “WINDOWS”,},{
引数2“name”: “MH”,“value”: “0x00000000”}]

特徴ベクトル作成の具体例

トピック抽出類似検体検索2013/10/24

15

提案手法（前処理）
前処理

スクリーニング• 特徴選択

特徴ベクトル

作成した特徴ベクトルの中から，出現頻度が高頻度のものと低頻度のものを除去する．

特徴選択

高頻度で出現する特徴ベクトルの除去
ログ
前処理
クラスタリング
トピック抽出類似検体検索2013/10/24

16提案手法（クラスタリング）
k-means
クラスタリング&NMF• クラスタリング
特徴ベクトルを用いることで，k-meansとNMFのそれぞれの手法でクラスタリングを行う．
トピック抽出はNMFの方でのみ可能．
クラスタの数は20とする．

ログ

270検体
前処理
クラスタリング
トピック抽出類似検体検索2013/10/24

file 1cluster 1・・・・・・・ file 269

cluster 2・・・・・・・・

file 270

cluster 20

270検体のクラスタリングのイメージ図17NMF• 非負値行列因子分解（NMF: Nonnegative MatrixFactorization）
0か正の値をもつ行列を解析する手法．
下図に示すように，行列Xを２つの行列に分解し，XとTVの距離を最小化する．

×分解
行列X

行列T

行列V

NMFのアルゴリズムイメージ図
2013/10/24

18

提案手法（トピック抽出）
ログ• トピック抽出

前処理

NMFを用いて，同時生起しやすい単語をトピックとして抽出する．

クラスタリング

トピックを構成する特徴を使うことで，類似の検体を検索することができると期待できる．

トピック抽出類似検体検索

台風28号が発生した．
参議院選挙無効訴
今年の野球では，楽天
訟が11月28日判決．
がリーグ優勝した．
台風27号が接近して楽天がリーグ優勝する
衆議院で公職選挙法いる．のは，初めてのことだ．
違反が起きた．

類似検体検索のイメージ図
2013/10/24

19

目次• 研究背景• 提案手法• 結果• まとめ

2013/10/24

Akinori Fujino, Waseda Univ.

20

結果（クラスタリング）• NMFのクラスタリング結果
Backdoor 4種，Adware.iBryte2種，Trojanの一部は綺麗にクラスタに分離された．

Worm系全般を含むVobfus, VB,VBNA, WBNAはファミリー毎のクラスタを持たなかった．

NMFによるクラスタリング
2013/10/24

21

結果（トピック抽出）
クラスタ番号4のTrojan.Win32.Midhosの重要度が高い上位5個のトピック•••••"RegOpenKeyExW":"Registry":"0x80000002":"SubKey“:"SoftwarenMicrosoftnCOM3":"Handle":"0x000000f4""LdrGetProcedureAddress":"ModuleHandle":"0x77cf0000":"FunctionName":"CallNextHookEx":"Ordinal":"0""NtCreateSection":"SectionHandle":"0x00000070":"DesiredAccess":"0x00000004":"ObjectAttributes:":"FileHandle":"0x0000006c""LdrLoadDll":"Flags":"522168":"FileName":"uxtheme.dll":"BaseAddress":"0x58730000""LdrLoadDll":"Flags":"522348":"FileName":"C:nWINDOWSnsystem32nuxtheme.dll":"BaseAddress":"0x58730000"

上記のトピックをすべて持つ検体を全検体から検索したところ，15体が該当し，10体は今回使用した検体5体は今回使用しなかった検体であった．5検体の種別は右図に示す．
2013/10/24

22

目次• 研究背景• 提案手法• 結果• まとめ

2013/10/24

Akinori Fujino, Waseda Univ.

23

まとめ• APIコールを機械学習を用いて分析するための前処理方法を提示した．
• APIコールで分類可能なマルウェア種別と不可能なものが存在する．
• NMFを利用することで，トピックを自動抽出し，類似する検体の検索に応用可能であることを示した．

2013/10/24

24

今後の課題• 未使用のbehaviorの項目の活用.
• APIコールの時間的流れの使用．
• 未知のマルウェアの分類．
• クラスタの精度評価

2013/10/24

25

補足資料

2013/10/24

26

特徴選択時の図（低頻度）
2以下の数の検体で使用されたものを削除

5以下の数の検体で使用されたものを削除

10以下の数の検体で使用されたものを削除
2013/10/24

27

k-means• k-meansとは，クラスタリングの手法のひとつである．

e.g. 3つのクラスタに分類する場合.

2013/10/24

28