マルウェア解析
マルウェア解析の解析の効率化手法の効率化手法の検討
山口 和晃

堀合 啓一

田中 英彦

情報セキュリティ大学院大学
221-0835 神奈川県横浜市神奈川区鶴屋町 2-14-1{mgs081101,dgs063101,tanaka}@iisec.ac.jp
あらまし 近年のマルウェアは、プロの手により複雑化しており、数そのものも爆発的に増えていることから、人手による解析のみでは解析者の負担が多く、解析が困難になっている。そのため、自動的なマルウェ
アの解析が必要であるが、最近は仮想マシンで実行されているか、ネットワーク接続の有無、日時などの動作環境要因から処理を分岐することで、振る舞いを変化させる耐解析機能を備えたマルウェアが増えている。このことから、自動的解析の精度の低下や解析効率の低下が起きている。そのため、本研究では、マルウェアの実行環境や実行方法の工夫により、自動的解析の精度の向上や解析効率の向上に対する有効性の検討を行う。

Efficiency Improvement of Malware Analysis
Kazuaki Yamaguchi

Keiichi HoriaiHideki Tanaka

Institute of information security
2-14-1 Tsuruyacho Kanagawa-ku Yokohama-shi Kanagawa 221-0835 Japan{mgs081101,dgs063101,tanaka}@iisec.ac.jp
Abstract In late years a malware which became complicated by malicious attackers is used. Because thenumber of malware increases for an explosion, a burden of work centers on a person of limited analysis,and analysis becomes difficult. Therefore it is necessary to analyze a malware automatically. However, anaction of a malware changes by practice environment. So precision of automatic analysis and efficiencydeteriorate. Therefore, by changing of practice environment, precision of automatic analysis and efficiency
are studied.

1

はじめに

初期の攻撃者の動機は「自己表現」であり、主にファイル感染やブートセクタウイルス、マクロウイルスなどを用いての攻撃であった。しかし、近年はプロの手による複雑化したマルウェアが使われ、感染経路も複雑化するとともにソーシャルエンジニアリング手法も活用し、数そのものも倍増しているのが特徴である。また、解析者からのマルウェア解析を遅らせるために耐解析機能を備えたものがある。
このことから、人手による解析のみでは解析者の負担が多く、解析が困難になっている。そのため、自動的なマルウェアの解析が必要であるが、従来のマルウェアの分析方法としての標準的なやり方は仮想マシン上でのみマルウェアの動的分析を行ってきた[9,12]。この方法は、レジストリやファイルへのアクセスを記録したり、ネットワークトラフィックをキャプチャしたりするツールが数多く存在することや、実行環境の復元の即時性から仮想マシンを使用することで比較的容易に環境を構築することができる。しかし、仮想マシンで実行されているか、ネットワーク接続の有無、日時などの動作環境要因から処理を分岐することでマルウェアの振る舞
いが複雑化されているために分析が困難になりつつあり、解析精度の低下や解析効率の低下が起きている[1]。そのため、本研究では、CCC DATAset
2009[12]のマルウェア検体を用い、マルウェアの実行環境や実行方法の工夫により、自動的解析の精度の向上や解析効率の向上に対する有効性の検討を行う。

マルウェアのマルウェアの動的挙動自動解析システム
動的挙動自動解析システム
動的挙動解析の全体構成を図１[2]に示す。ネットワーク環境は、Linux のカーネル・パケット・フィルタに使用されている iptables の機能を利用して構築している。模擬サーバの一部は、Truman[13]の機能を利用した。この模擬ネットワークには、マルウェアを実行する感染 PC が接続され、模擬DNS、 IRC、 SMTP、 SMB、 HTTP の各サーバ群は、実際には制御 PC の中に実装している。
ネットワークを模擬環境で構成する利点は、解析を安全に実行できる点に加え、挙動解析の再現性を確保し易い点にある。仮に感染拡大の防止など、外部への影響を緩和する対策を行った上で、インターネットへ接続した状態で解析を行う場合では、マルウェアを実行する時期・時間帯によって通信の相手先の状態の影響を受ける可能性があり、マルウェアの種類とは必ずしも直結しない要素で、観測できる挙動が変化する可能性がある。インターネットへ接続しないことによって、ボットの Herderからの指令等を観測できないという欠点もあるが、マルウェアを実行した直後の、数分間の挙動を自動的に解析し、マルウェアの種類を特定するための環境としては、模擬環境の方が適していると考えられる。また、Windows 内の挙動については、
文献[9,13]のように API CALL の情報を解析するのではなく、マルウェアを実行する前の状態と実行後の状態を記録したログを比較し、それらの差分をマルウェアの挙動を示す情報として抽出している。これによって、デバッガの存在を検出して、その挙動を変化させるマルウェアへの対策としている。またマルウェアを実行する Windows OS の種類として Windows XP 各サービスパックの場合の比較、マルウェアを実行する感染 PC 環境を仮想マシンにするか、実マシンでするかによる比較ができる環境を構築した。
2

図１ 動的挙動解析の全体構成[2]2.1 マルウェアのマルウェアの実行制御
次にマルウェアの実行制御について述べる。マ
ルウェアの挙動解析は、実行制御用のホスト（以下ホスト）OS と、マルウェアを実行する感染 PC (仮想マシンの VMware Server または、実マシン)上で作動しマルウェアを実行する。仮想マシンを利用する際は、物理的には１台の PC に実装している。
感染 PC の OS が起動すると続いて感染 PC 内のローダが起動し、感染 PC 内の情報取得に必要なソフトウェアをホストから受信し、マルウェア実行前のログを取得する。続いて解析対象のマルウェアをホストから受信してこのマルウェアを実行し、指定した時間経過後にマルウェア実行後のログを取得する。 また、マルウェアの実行時間は２００秒とした[6]。
2.2 システム内
システム内の情報取得と情報取得と利用ツール利用ツール
マルウェアが感染した際の情報を取得するには、このためのソフトウェア・ツールが必要である。また、一連の解析処理を制御する仕組みが必要となるが、表１に本システムで利用したツールを示す。これらのツールをあらかじめ解析対象のマルウェアを実行する感染 PC へインストールしておくことも考えられるが、OS の種類やバージョンの違いなどが、感染 PC の挙動に及ぼす影響を調査する場
合には、個々の感染PC へツールをインストールする必要がある。また、挙動解析の項目を追加する

場合には、これに必要なツールを個々の感染 PCプロセスリスト、Hostファイルの改竄、ルートキットのへインストールすることが必要となり非効率である。

有無、通信ログ、などの項目を文字列の情報としてこのような作業の効率化を図るため感染 PC 内へ抽出し、これをBDB（Behavior Data Base）として蓄積する 。

ホストからダウンロードして実行する方法を使用した。
表１ 使用ツール一覧
使用目的

ツール名

自動解析の自動解析の結果
自動解析から収集できた BDB の一例を表２にまとめる。また、この結果は仮想マシン環境のWindows XP Professional SP0 において実行した結果である。
表２ BDBの一例
4

配布元

Registry

autorunsｃ

Microsoft[23]Processpslist

Microsoft[23]ServicePsService

Microsoft[23]Listen ports

Fport

Fundstone[24]

RootKit detection

RootKitRevealer

Microsoft[23]2.3 実マシン環境
マシン環境と環境と仮想マシン
仮想マシン環境
マシン環境の環境の比較
マルウェアの挙動を自動的に解析するには、マルウェアの実行環境、自動解析処理の全体制御や挙動の記録と分析、感染後の PC の復旧などの機能が必要となる。実マシン環境と仮想マシン環境の違いを整理した結果を、図２に示す。同図に示すように、ほとんどの処理は共通化が可能であり、違いのある部位は、感染後に復旧する機能を実現する部分だけとなっている。

[HASH] マルウェアのハッシュ値の先頭６桁
f8c19c[REGISTRY] レジストリ改ざんc:¥windows¥u29tzwjvzhk¥command.exe
c:¥program files¥network monitor¥netmon.exe[MD5SUM] システムファイル等の変更
CreatedC:¥WINDOWS¥SYSTEM32¥ATMTD.DLL.TMP[PROCESS] Listen port プロセスリスト
628 winlogon 672 services 588 netmon
128 command 572 wuauclt[HOSTS] HOSTS ファイル改ざん
Change Found.
[ROOT KIT] ルートキットの有無
Not Detected[TRAFFIC] 通信ログ
FQDN(13) xxx6ry3i3x3qbrkwhxhw.xxx439.com
xxxmand.xxxervs.com
PORT(2),：53(4) 80(20) 35815(3) 42613(3) 44627(3)43327(3) 45390(3) 49830(3) 58010(3)44645(3) 48717(3) 56840(3) 54267(3)

図２ 実マシン環境と仮想マシン環境の違い[2]マルウェアのマルウェアの実行で実行で取得する
取得する情報する情報
以上のような環境で取得できる情報は、AV 製品ベンダーなどが公開している、マルウェアの特徴（レジストリの改ざん箇所と内容、マルウェアが作成・削除・改ざんするファイルの名称、起動または停止されるプロセスやサービスの名称、ルートキットの埋め込み、発生する通信のポート番号、通信のあて先、IRC サーバへログインする際のユーザ名やパスワードなど）とほぼ同等である。この動的挙動解析の結果から、レジストリ改竄、システムファイルの変更、
34.1 １０種類１０種類の種類の検体について検体について特徴について特徴のまとめ
特徴のまとめ自動解析から収集できた BDB の結果をマルウェ
ア別にそれぞれ表３～表７にまとめた。なお、使用した実行環境は、Windows XP Professional SP0（仮想マシン）である。表３から表７のフラグは過去に得られた解析データからランキングしたトップ５のファイルが変更された場合にフラグが立つところと、その他の変更があった場合にフラグが立つところに分かれている。また、表中の x フラグはデータの取得ができなかったことを示す。

表３ 通信ポートログ
hash 値

表７ホストファイル、サービス、ルートキット有無
hash 値

ServiceRootKit

host

1d23f2

通信ポート（Top 5+その他+ICMP）
10000
101d23f2

000393f00

10000

10393f00000

68ac2900000

1068ac29

0007190e400000

107190e400084e9c2

100001084e9c2

000cd9125

0000010cd9125

000d49391

0010010d49391

xxxdf7585

1000010df7585000f8c19c

1000010

f8c19c000

fdf3bbc

1000010

fdf3bbc000

表４ ファイル改ざん状況
hash 値

実行環境の実行環境の変化による変化による挙動による挙動の挙動の変化
実行環境においてのマルウェアの挙動の違い

4.2

ファイル改ざん(Top 5+他+改竄+削除）

1d23f200000000393f00

0000000068ac29

000000007190e4

00000000

つの実行環境を用意し、先頭ハッシュ値６桁が84e9c2

0000000068ac29 のマルウェアを解析した BDB の結果を表８

cd912500000000d49391

00000001～１１にまとめた。

df758500000000f8c19c00000000

fdf3bbc

00000000を比較するため、Windows XP Professional SP0（仮想マシン）、SP2 の仮想マシンと実マシンの三

表８ 環境による通信ログの違い

表５ プロセスの変更状況
hash 値プロセス（Top 5+その他＋削除）

1d23f20000000393f00

0000000

68ac2900000107190e4010100084e9c2

0000000cd9125

0101110d49391

xxxxxxx

df75850000000

f8c19c000

10010000000

fdf3bbc

1d23f2393f0068ac297190e484e9c2
cd9125d49391
df7585f8c19cfdf3bbc

000000x000000000x
000000000x
0
0
0

00
0000x
0
0
000
0
000x
0
0
00
0
0000x
0
00

Registry
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0x x x
1 0 0
1 0 0
1 0 0

0000
00x
0
00000000x000000000x000

通信ポート（Top 5+その他+ICMP）
0000010

XPSP2（仮想）0000010

XPSP2(実機)0000010

表９ 環境によるファイル改ざんの違い
実行環境 OSXPSP0（仮想）XPSP2（仮想）XPSP2(実機)ファイル改ざん(Top 5+他+改竄+削除）
00
0
000000000000000000000

表１０ 環境によるプロセスの違い
実行環境 OSXPSP0（仮想）XPSP2（仮想）XPSP2(実機)表６ レジストリの変更状況
hash 値

実行環境 OSXPSP0（仮想）000000x000111111x111000プロセス（Top 5+その他＋削除）
0000
101000000
10000

表１１ホストファイル、サービス、ルートキット有無
実行環境 OSXPSP0（仮想）XPSP2（仮想）XPSP2(実機)Service000

RootKit001

host000確率的な確率的な挙動の挙動の変化
動作環境に依存せずに実行時刻などから確率

表１２ 取りこぼし確率(単位[%])

4.3

試行回数[回]

x パターン

的に挙動パターンを変更するマルウェアについて

1101002050100

考察する。 マルウェアの挙動を解析することにお110521いて、１種類の実行パターンしか持たないマルウェ

22010423301563440208455025

105アに対して何度も実行していては無駄が多い。だが、複数の実行パターンを持つマルウェアにおいてはできるだけ全てのパターンを網羅する必要がしたがって、Windows XP Professional SP0（仮想ある。ここで、考えられることは、ある回数において、マシン）において各１０回の解析を行い、えられたあるパターン数が確認されていたとして、その次の挙動パターン数と各挙動パターンにおいてえられ解析においてまた新たな挙動パターンを得られるた回数を表１３にまとめた。

確率を考え、次の解析の確率から解析を終了する

表１３ 解析の１０回試行結果かどうかを判断すればよいと考えられる。これを一hash 値

般化すると図３となる。

1d23f2110393f00

11068ac29

25,57190e4

11084e9c2

110cd912529,1(１エラー含)

d49391110

df758529,1(１エラー含)

f8c19c110

fdf3bbc110

図３ 試行回数における一般化
ここで真のパターン数は X パターンであったとし

挙動パターン数

各出現回数て n 回の試行で x パターンのみ出現する確率

１０回行われた結果から挙動パターン数の確率f(x,n)を考える。したがって、これは仮に X パターン的予測を行った場合の妥当性を検証するために１あった場合に x パターンしかえられない確率であ００回試行した結果を表１４にまとめた。

ることから、n 回目の試行時に x パターン出現した

表１４ 解析の１００回試行結果ときの取りこぼし確率となる。したがって、確率hash 値f(x,n)が十分低ければ x パターンしか存在しないことが推定される。この確率は式（１）の大数の法則

1d23f21100393f00

1100から導き出せる。式（１）から f(x,n)は式（２）となるこ

68ac294

69,23,6,2

7190e4

110084e9c2

1100cd9125

299,1(１エラー含)

d493911100df7585

299,1(１エラー含)

f8c19c

1100fdf3bbc

1100とがわかるので、その結果を表１２にまとめた。

σ2Pr x − µ ≥ ε ≤ 2nε()σnμ2（１）2f ( x, n ) =（２）

ここで、注意が必要なことは、この式が成り立つには確率が独立であり、一様分布している必要がある。表１２の結果から、最低１０回以上の解析を行わなければ、９０％以上の確率で全ての挙動パターンを網羅したとは言えないことがわかる。

挙動パターン数

各出現回数

考察
表８～１１から実行環境によってマルウェアに挙動の変化があることがわかる。実マシンの挙動について注目すると、表１１において、実マシンのみルートキットの実行が RootkitRevealer に検出されたことがわかる。これは、仮想マシンでの解析時にマルウェアが仮想マシンで実行されていること

5

から、解析されていることを検知し、挙動を変化さ参考文献せ、そのまま停止したか、もしくは偽のまったく違う実行動作を行い、真の実行動作をやめてしまった[1] 畑田充弘、他、”マルウェア対策のための研究用データセットとワークショップを通じた研究成果可能性が高い。このことから、実マシンでの解析もの共有”、MWS2009、2009/10併用して使用する必要がることがわかる。また、仮[2] 堀合 啓一、今泉 隆文、田中 英彦、”定点観想マシンの SP0，SP2 同士の比較においても挙動の変化があることがわかる。これは、SP2 のセキュリ測によるボットネットの観測と Malware の動的挙動解析システムの提案“、情報処理学会論文誌ティ機能の強化などが関係すると考えられる。また、

Vol.49 No.4 1-12、2008/4

セキュリティが脆弱である SP0 で実行されていなか[3] 永田 大、堀合 啓一、田中 英彦、“OLAP(多ったにもかかわらず、セキュリティが強化された次元データ分析)を利用した攻撃元データの分析

SP2 の実マシンで実行した場合はルートキットがと検体の自動解析”MWS2008、2008/10

RootkitRevealer に検出されたことがわかる。このこ[4] 堀合 啓一、今泉 隆文、田中 英彦、“ハミンとからも、実マシンでの解析の重要性がわかる。

グ距離によるマルウェア亜種の自動分類”、第４１次に、確率的な挙動についてであるが、式（１）が成立するのは確率が独立であり、一様分布して回 CSEC、2008/5いる必要がある。マルウェアの挙動が実際に一様アのテクニック” ISS スクウェア インターネット分

分布しているのか、表１３、１４から検討すると、複科会、株式会社セキュアブレイン、2008/11/15数の挙動が確認された“68ac29d”の出現回数に偏りがあることから、今回は一様分布であるとは言え[6] 笠間 貴弘、吉岡 克成、井上 大介、衛藤将史、中尾 康二、松本 勉、“マルウェア動的解析にない。だが、１０回実行した状態で１パターンのみおけるマルウェア実行時間に関する検討”、SCIS挙動が得られたものはエラーを抜かせば１００回実2009、2009/1

行を行っても１パターンのみの挙動であることから、[7] 市川 幸宏、神薗 雅紀、白石 善明、森井 昌

１０回の実行をして、複数のパターンが得られなけ

克、“ウイルス解析を目的としたメモリ上の不正コーれば、解析を停止することで、一定の効率化が可ド検出システムの構築”、電子情報通信学会技術

能と考えられる。

研究報告、2004

まとめと今後
まとめと今後の今後の課題
今回、複数の実行環境と実行方法によってマルウェアが挙動を変化させることがあることがわかった。また、マルウェアを１０回実行した結果の挙動のバラツキ具合から、さらに実行を繰り返す必要があるかどうかについての推定の可能性があることが判明した。今後の課題としては、マルウェアの確率的挙動のメカニズムの調査から更なる効率化の検討、仮想マシンと実マシンとの併用にあたり、仮想マシンの解析結果から一回あたりの解析に時間がかかる実マシンの解析の回数を低減するなどの効率化の検討をしていく予定である。また、解析精度の向上においては、今回は API コールの監視を敢えて適用せずに行ったが、API コールの監視による挙動の変化を解析することで実行環境の最適化をするなどの研究を行っていく予定である。

[8] 星澤 裕二、岡田 晃市郎、山村 元昭、椎木

6[5] 星澤 裕二、”解析してわかる最近のマルウェ

孝斉、マルウェアの動作条件の抽出、情報処理学会研究報告、2007[9] 星澤裕二、太刀川剛、山村元昭、“マルウェアの亜種等の自動化”、情報処理学会研究報告2007-CSEC-38 、pp271-278、2007[10] 吉岡 克成、松本 勉、“自動マルチパス解析によるマルウェア動的解析の提案”、SCIS2009、
2009[11] IPA、”未知ウイルス検出技術に関する調査”、
2004/4[12] Tony Lee 、 Jigar J.Mody 、 “ BehavioralClassification”、In Proceedings of EICAR 2006、2006/4[13] TJoe Stewar 、 Truman 、 “ The Reusable
Unkonwn Malware Analysis Net”