日本ソフトウェア科学会第 34 回大会 (2017 年度) 講演論文集

マルウェアが実行する耐解析処理の定量的傾向
大山 恵弘

現代的なマルウェアの多くは解析を妨害するための処理（耐解析処理）を実行する．耐解析処理の例にはサンドボックスの検出や長時間のスリープの実行がある．耐解析処理を実現するための方法はよく研究されてきたが，現実のマ
ルウェアが実行する耐解析処理の定量的傾向については，十分な知見が得られていない．本論文では，最近のマルウェアが実行する耐解析処理の定量的傾向を示す．例えば，どの程度の割合のマルウェアがどのような種類の耐解析処理を実行するかを明らかにする．

Many modern malware programs execute operations to hinder analysis (anti-analysis operations). Examplesof them are sandbox detection and execution of long sleeps. Although the methods to achieve anti-analysis
operations have been extensively studied, only insuﬃcient knowledge has been obtained about the quantitative trends of anti-analysis operations executed by real malware. In this paper, we present quantitative
trends of anti-analysis operations executed by recent malware. For example, we clarify what proportion of
malware programs execute each particular class of anti-analysis operations.

味深い知見が多く含まれていると考えるが，最新のマ

1 はじめにルウェアが実行する広範な耐解析処理の傾向を必ずし現代的なマルウェアの多くは，自身の解析を妨害すも捉えてはいない．具体的には，データセットの収集るための処理（耐解析処理）を実行する．耐解析処理に用いられた動的解析システム Cuckoo Sandbox [4]の例としては，自身が仮想マシンやサンドボックスなのバージョンが古かったために，解析結果に出力されどの解析に用いられるシステム上で動いているかど

る耐解析処理の種類が限られていた．その制限は文うかの判定や，長時間のスリープの実行がある．

献 [7, 12] でも明示的に述べられている．

耐解析処理については多くの研究が行われ，耐解

その後，新しい版である FFRI Dataset 2017 [11]析処理の実現方法自体については多くの知見が集まっが配布されるようになった．FFRI Dataset 2017 の収ている．しかし，現在世界で観測されているマルウェ

集に用いられた Cuckoo Sandbox は，FFRI Dataset

アがどの程度の割合で耐解析処理を実行するのか，ま2016 のそれと比較して，マルウェアの特徴的な挙動

た，どんな種類の耐解析処理を実行するのかについてを検出するためのより充実したルール集を備えておは，知見が不足しており，明確にはなっていない．

り，はるかに多くの耐解析処理を検出できるように

そこで著者は，それらを明らかにする研究を行ってなっている．

いる．例えば文献 [7,12] では，マルウェアの動的解析

本研究では，FFRI Dataset 2017 から観測できる，

結果のデータセットである FFRI Dataset 2016 [13]最新のマルウェアが実行する耐解析処理の傾向を示に見られる，マルウェアが実行する耐解析処理の傾向

す．特に以下の点を明らかにする．

に関する調査結果を示している．この調査結果には興Quantitative Trends of Anti-Analysis Operations Executed by Malware.
Yoshihiro Oyama, 筑波大学, University of Tsukuba.

• どの程度の割合のマルウェアがどのような種類の耐解析処理を実行するか• 耐解析処理によってどのようなシステムの検出が試みられているか• 個々のマルウェアは何種類の耐解析処理を実行するか

dows 7 (x86) 上での 6251 検体のマルウェアの解析結果を用いる．これらの検体は 2017 年の 3 月から 4 月

本研究ではマルウェア解析のうち静的解析ではなくに FFRI 社が収集したものであり，どれも 15 以上の動的解析を主に扱う．また，耐解析処理についても，

アンチマルウェア製品によってマルウェアと判定され静的解析を妨害する処理ではなく動的解析を妨害すている．データセット内の情報によると，データセッ

る処理を主に扱う．

トの作成には Cuckoo Sandbox 2.0.1 と VirtualBoxが用いられた．各検体はタイムアウトを 90 秒に設定

2 耐解析処理
耐解析処理の概要を述べる．耐解析処理の詳細
は [1–3, 8–10] などの多くの文献で説明されている．
主な耐解析処理を以下に示す．
解析システムの検出 自身がハイパバイザ，デバッ

して実行された．

FFRI Dataset には多岐に渡る情報が含まれるが，本研究では以下の 2 つの情報を用いる．

• Windows API 呼び出しの列• Signature

ガ，サンドボックスなどの解析用のシステム（解FFRI Dataset には他にも，マルウェアのバイナリに

析システム）上で動いているかどうかを推定す

含まれる静的情報，マルウェアの実行中に発生した通る．解析システム上で動いていると判断したら，信の情報，マルウェアがアクセスしたファイルやレジ

実行終了などの解析を妨げる処理を行う．推定にストリなどの資源の情報，公共サンドボックスによる用いられる手段としては，ハードウェア情報の検スキャン結果などが含まれる．

査，サービスやファイルの存在の検査，処理の所

API 呼び出し列の例を図 1 に示す．API 呼び出し

要時間やタイミングの測定，特定の CPU 命令の列の情報はデータセットに JSON 形式で格納されてい挙動の検査などがある．

るが，図にはそれを整形したものを示している．API

解析時間の長大化 自身の重要な部分が実行されるまでに長大な時間がかかるようにする．動的解呼び出しの引数から，アクセスしたファイルやレジス
トリなどの資源の情報が得られる．

析ではしばしばタイムアウトが設定されるため，Signature は，バイナリや挙動に見られるマルウェア

重要な部分の実行をそれ以降まで遅らせることの特徴である．例えば，他プロセスへのコードインジェ

によって，解析結果を無益なものにすることがでクション，HTTP 通信，実行型ファイルの生成，UPX

きる．実行を遅らせる手段としては，長時間のスによるパック，起動時に自動的に実行されるプログラム

リープの実行や無駄な処理の実行などがある．

への自身の登録などがある．Cuckoo Sandbox はマル

解析処理の回避 自身に適用されている解析のた

ウェアのバイナリや実行から signature を検出し，検出めの機構を検出し，その機構を無効化させる．例

した signature 群をそのマルウェアの解析結果に記録

えば自身にセットされているデバッガのブレークする．例えば，Cuckoo Sandbox はファイル関連 API

ポイントを外したり，解析システムのものと思わ呼び出しの引数を検査し，引数が “VBoxHook.dll”

れるプロセスを kill したりする．

や “...VirtualBox Guest Additions...” などの Vir-

tualBox を特徴づける文字列のパターンとマッチした

3 FFRI Dataset

ら，VirtualBox の検出を試みているという signature

FFRI Dataset は Cuckoo Sandbox の上でマルウェを解析結果に記録する．

アを実行して得られた動的解析結果のデータセットである．Cuckoo Sandbox は仮想マシンモニタを用い

4 分析結果たサンドボックスであり，広く用いられている．その4. 1 統計情報

ソースコードは GitHub で公開されている．
本研究では FFRI Dataset 2017 に含まれる Win-

FFRI Dataset 2017 の統計情報を表 1 に示す．各
検体は平均で約 20000 回の API 呼び出しを実行して





...
NtCreateFile(filepath="\\??\\SIWVID", ...) = 3221225524 (STATUS_OBJECT_NAME_NOT_FOUND)
NtCreateFile(filepath="\\??\\NTICE", ...) = 3221225524 (STATUS_OBJECT_NAME_NOT_FOUND)
RegOpenKeyExA(regkey="HKEY_CURRENT_USER\\Software\\Wine", ...) = 2 (ERROR_FILE_NOT_FOUND)
LdrGetProcedureAddress(function_name="GetNativeSystemInfo", module="kernel32", ...) = 0
GetNativeSystemInfo(processor_count=...) = 0
GetSystemDirectoryA(dirpath=...) = 19
NtClose(0) = 3221225480 (STATUS_INVALID_HANDLE)
...



図1



API 呼び出し列の例
表1

統計情報

検体数

6251

各検体が実行する API 呼び出し数

最小: 95, 平均: 19993.1, 最大: 145234

各検体が使用する API 関数の種類数

最小: 14, 平均: 96.7, 最大: 181

全検体を通しての API 関数の種類数292

各検体から検出された signature の数

最小: 4, 平均: 11.8, 最大: 27

全検体を通しての検出された signature の数158

各検体のプロセスの数

最小: 1, 平均: 4.3, 最大: 55

各検体のスレッドの数

最小: 1, 平均: 20.7, 最大: 488

いる．各検体は平均で約 100 種類の API 関数を呼理 signature と呼ぶ）を対象に，上位 20 件を抽出しび出す．各マルウェアからは平均約 12 の signature

た．Cuckoo Sandbox では各 signature を検出するが検出されている．詳細は後述するが，中には 27 のコードは別々のファイルに記述されている．それらのsignature が検出されるような目立った挙動を示す検うち anti という接頭語で始まるファイルが 52 ある体も存在する．検出された signature の総数は 158 でが，これらのファイルのコードで検出される signa-ある．Cuckoo Sandbox 2.0.1 がリリースされた 2017

ture を，耐解析処理 signature とみなした．ファイル

年 4 月 16 日時点での GitHub にあるソースコードに名の内訳は，antianalysis * が 1，antiav * が 5，

よれば，signature（を検出するコードのファイル）のantidbg * が 2，antiemu * が 1，antisandbox * が

数は 379 である．すなわち，Cuckoo Sandbox が検12，antivirus * が 2，antivm* が 29 である．

出可能な signature の約 42%がこのデータセットに検出された検体の数が多い signature の上位 20 件含まれている．プロセスの数とスレッドの数の平均はを表 2 に示す．検出された signature の総数は 158 な

それぞれ約 4.3 と約 20.7 であり，それほど大きくはので，この並びは 158 位まで続く．最も多くの検体

ないが，中には 55 のプロセスや 488 のスレッドで構から検出された signature は，アンパックによく用い成される検体も存在する．

られる読み書き可能メモリを確保する挙動である．ただし，これは通常のプログラムの多くにも見られる

4. 2 多く検出された signature

挙動であり，それほどマルウェアに特徴的な挙動と各 signature が何検体から検出されたかを調査しいうわけではない．同様の微妙な挙動の signature はた．まず，全ての signature を対象に，検出された

他にも多く存在する．以下の順位には，メモリ量の検体数が多い signature の上位 20 件を抽出した．次チェック，実行型ファイルの作成，バイナリ内の暗号に，耐解析処理の signature（以下では単に耐解析処化や圧縮がされたデータ，興味深いバッファの抽出，

表2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

検出された検体の数が多い signature の上位 20 件

Cuckoo Sandbox による signature の説明
Allocates read-write-execute memory (usually to unpack itself)
Checks amount of memory in system, this can be used to detect virtual
machines that have a low amount of memory available
Creates executable files on the filesystem
The binary likely contains encrypted or compressed data.
One or more potentially interesting buffers were extracted, these generally
contain injected code, configuration data, etc.
Queries for the computername
One or more processes crashed
Generates some ICMP traffic
Installs itself for autorun at Windows startup
Creates an Alternate Data Stream (ADS)
Creates a suspicious process
Drops a binary and executes it
Executed a process and injected code into it, probably while unpacking
Collects information to fingerprint the system(MachineGuid, DigitalProductId, SystemBiosDate)
The executable has PE anomalies (could be a false positive)
One or more of the buffers contains an embedded PE file
Queries the disk size which could be used to detect virtual machine withsmall fixed size or dynamic allocation
Creates (office) documents on the filesystem
This sample modifies more than 5 files through suspicious ways, likely apolymorphic virus or a ransomware
Attempts to detect Cuckoo Sandbox through the presence of a file

検体の数と割合
5317 (85.1%)

4419 (70.7%)3872 (61.9%)3795 (60.7%)3660 (58.6%)
3610 (57.8%)3216 (51.4%)
2971 (47.5%)
2694 (43.1%)
2494 (39.9%)2493 (39.9%)2204 (35.3%)
2182 (34.9%)2052 (32.8%)
1807 (28.9%)
1703 (27.2%)
1423 (22.8%)1402 (22.4%)1340 (21.4%)
1261 (20.2%)

コンピュータ名の問い合わせ，マルウェアプロセスの

2，3，7 位はメモリ量，コンピュータ名，ディスクサ

クラッシュが続く．ここまでの signature は 50%以上

イズ，ネットワークアダプタのアドレスの検査であの検体から検出されており，ある意味，平凡な挙動のるが，それらは通常のプログラムも実行すると思わsignature と言える．耐解析処理 signature は 2 位，6れる．

位，17 位，20 位に入っている．耐解析処理 signature

特定の解析システムの検出に関する signature もは他の signature と比べて，それほど頻繁には検出さ見られる．具体的には Cuckoo Sandbox，VMware，れない．これは耐解析処理 signature の重要性を低下

VirtualBox，Avast，Sunbelt Sandbox などの製品にさせるものではなく，むしろ逆である．耐解析処理

関する signature が見られる．21 位以下には Threat-signature が検出された検体はそれだけで「目出つ」

Track，GFI SandBox，CWSandbox, Wine，Virtu-

ことになり，他の検体との区別がしやすくなる．

alPC，Sandoxie，BitDefender，Xen に関する signa-検出された検体の数が多い耐解析処理 signature のture が出現する．特定の解析システムのうち，最も上位 20 件を表 3 に示す．検出された耐解析 signature

多くの検体で検出が試みられたと判定されたのはの総数は 40 なので，この並びは 40 位まで続く．上Cuckoo Sandbox であり，続いて VMware，Virtual-

述したソースコードによれば，耐解析 signature（をBox，Sunbelt Sandbox である．広く普及しているシ検出するコードのファイル）の数は 52 なので，耐解ステムが上位に来ている．これら 4 つ以外の製品を

析 signature のうち約 77%がこのデータセットに含検出しようとする signature が検出されることは稀でまれている．

あり，高々1%程度の検体からしか検出されていない．

最上位には，耐解析処理のためにそれを実行した

6 位と 7 位はそれぞれ，スリープによる解析時間ののかどうかが微妙であるような signature が並ぶ．1，

長大化とフォアグラウンドウィンドウの検査による人

表3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

検出された検体の数が多い耐解析処理の signature の上位 20 件

Cuckoo Sandbox による signature の説明
Checks amount of memory in system, this can be used to detect virtual
machines that have a low amount of memory available
Queries for the computername
Queries the disk size which could be used to detect virtual machine withsmall fixed size or dynamic allocation
Attempts to detect Cuckoo Sandbox through the presence of a file
A process attempted to delay the analysis task
Checks whether any human activity is being performed by constantly checking
whether the foreground window changed
Checks adapter addresses which can be used to detect virtual network
interfaces
Detects VMWare through the in instruction feature
Detects VirtualBox through the presence of a file
Detects Avast Antivirus through the presence of a library
Detects VMWare through the presence of various files
Looks for the Windows Idle Time to determine the uptime
Attempts to identify installed analysis tools by a known file location
Detects Sunbelt Sandbox through the presence of a file
Checks for the presence of known windows from debuggers and forensic tools
Attempts to identify installed AV products by registry key
Enumerates services, possibly for anti-virtualization
Checks for known Chinese AV sofware registry keys
Attempts to identify installed AV products by installation directory
Checks for the presence of known devices from debuggers and forensic tools

検体の数と割合

4419 (70.7%)3610 (57.8%)1423 (22.8%)
1261 (20.2%)
867 (13.9%)643 (10.3%)436 (7.0%)
374 (6.0%)
346 (5.5%)339 (5.4%)
313 (5.0%)
310 (5.0%)
300 (4.8%)297 (4.8%)
249 (4.0%)
164 (2.6%)
149 (2.4%)
135 (2.2%)
121 (1.9%)
90 (1.4%)の活動の検出であり，ここまでが 10%以上の検体か検出しようとしているかどうかは，ファイル関連 API

ら検出された signature である．

呼び出しの引数に，所定のパターンにマッチする文

検出される signature の傾向は FFRI Dataset 2016

字列が与えられたかどうかなどの条件で判定される．

での傾向 [7, 12] から大きく変わっている．例えば，

例えばマルウェアが agent.py や analyzer.py とい

表 3 の 1，2，3，4，7，8，10，13，14，16，19，20

うファイルを open したら，Cuckoo Sandbox を検出

位は，FFRI Dataset 2016 では 1 回も検出されていしようとしたとみなされる．それらは通常 Cuckoo

ない signature である．全体的には，検出される sig-

Sandbox の上で動くゲスト OS に置かれるファイル

nature が増える方向に変化している．変化は Cuckoo

である．マルウェアは耐解析処理以外の目的で，ルー

Sandbox のバージョンアップとマルウェアの進化のトフォルダ，ユーザの Document フォルダ，ユーザの両方に起因すると考えるが，少なくとも前者の影響

Recent フォルダなどにある全ファイルを open するは大きいと推測している．バージョンアップにより，ことがある．例えばランサムウェアが暗号化対象ファ

新しい signature が検出できるようになっているととイルを探す目的でそれを実行する．その際，それらのもに，4. 4 節で述べるように，signature 検出においフォルダに agent.py や analyzer.py があれば，そて見逃されていた多くの API 呼び出しの引数が見逃

れらが open される．このように，Cuckoo Sandbox

されなくなっている．その結果，FFRI Dataset 2017の検出を試みていないのに試みたと判定された検体が，では FFRI Dataset 2016 と比べて耐解析処理の実行

データセットに一定数含まれていると予想している．

の実態をより詳しく把握できるようになっている．

実際，Cuckoo Sandbox の signature が検出された検20.2%もの検体から Cuckoo Sandbox に関する sig-体のうちの多くで，特徴的なフォルダ内の全ファイル

nature が検出されているが，これは誤検出を含んでいのスキャンの結果として agent.py や analyzer.py

る可能性がある．マルウェアが Cuckoo Sandbox をがアクセスされたと思わせる API 呼び出し列が実行18 以上の signature が検出される検体は少ない．た800

だし，表 1 で示したように，最多の 27 の signature700が検出された検体も存在する．

Number of samples

600

検出された耐解析処理 signature はずっと少なく500なっている．1 検体から検出された signature の数は400

0 から 13 の範囲内にある．その数が 4 以下だった検300

体が多く，5 以上だった検体は全体の約 7.5%である．
200

その数の平均は約 2.6 である．すなわち，広範な耐解100析処理を実行するマルウェアは少ない．ただし，最多0
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Number of signaturesの 13 の耐解析処理 signature が検出された検体も存
在する．

図2

検出された signature の数ごとの検体数27 の signature かつ 13 の耐解析処理 signature が検出された検体がデータセットに 1 検体だけ存在す
る．この検体から検出された signature を図 4 に示

2000

す．特定のシステムに関する耐解析 signature とし

Number of samples

1800
1600

て，VirtualBox，VMware，VirtualPC，Wine に関1400

する signature が検出されている．他にも，耐解析処

1200

理 signature としては，様々な資源の状態や属性の検1000

査，解析時間の長大化などが検出されている．広範な

800
600

耐解析処理を実行する洗練されたマルウェアも，数は400

少ないながら存在することがわかる．

200
0
0

1

2

3

4

5

6

7

8

9

10 11 12 13 14

Number of signatures

4. 4 制限
Cuckoo Sandbox が検出する signature には当然な

図3検出された耐解析 signature の数ごとの検体数

がら false positive と false negative が含まれる．詳
しくは文献 [7, 12] に述べられているが，それらが生されている．現状では，Cuckoo Sandbox はかなり単じる理由としては，まず，検査すべき API 関数や照純な引数のパターンマッチに基いて signature を検出合すべき文字列のパターンが網羅されていないというしており，マルウェアが本当に耐解析処理を実行しよものがある．そもそも全てのパターンを網羅するのはうとしたのかどうかを詳しく検査していないという

ほぼ不可能である．FFRI Dataset 2016 では加えて，点には注意が必要である．

一部の API 関数（NtCreateFile など）で，失敗した呼び出しの引数は検査対象から外されており，それが4. 3 検出された signature の数

大量の false negative をもたらしていた．この制限はSignature の数ごとの検体数の分布を調査した．

FFRI Dataset 2017 では無くなっており，検出される

全 signature についての分布を図 2 に，耐解析処理

signature が大幅に増えている．さらに前述のように，

signature についての分布を図 3 に示す．

フォルダ内の全ファイルの open をマルウェアが実行

1 検体から検出された signature の数は 4 から 27

した場合，解析システムを検出しようとしてはいなの範囲内にある．6 から 17 の signature が検出されいのに，解析システムを特徴づけるファイルを open

た検体の数はいずれも 100 を越えており，この範囲のすることになり，解析システムを検出しようとしてい数の signature を実行する検体が多い．5 以下および

るとみなされることがある．それは false positive に耐解析 signature- Queries for the computername- Checks amount of memory in system, this can be used to detect virtual machines that have a
low amount of memory available- A process attempted to delay the analysis task.
- Looks for the Windows Idle Time to determine the uptime- Checks the version of Bios, possibly for anti-virtualization- Detects virtualization software with SCSI Disk Identifier trick(s)- Detects VirtualBox through the presence of a file- Detects VirtualBox through the presence of a registry key- Tries to detect VirtualPC- Detects VMWare through the presence of various files- Detects VMWare through the presence of a registry key- Detects Virtual PC through the presence of a registry key- Detects the presence of Wine emulator
他の signature- Collects information to fingerprint the system (MachineGuid, DigitalProductId, SystemBiosDate)- This executable has a PDB path
- One or more potentially interesting buffers were extracted, these generally contain injected
code, configuration data, etc.
- Allocates read-write-execute memory (usually to unpack itself)- Creates executable files on the filesystem- Creates a suspicious process- Tries to locate whether any sniffers are installed- The binary likely contains encrypted or compressed data.
- One or more of the buffers contains an embedded PE file
- Installs itself for autorun at Windows startup- Attempts to modify browser security settings- Generates some ICMP traffic- Executed a process and injected code into it, probably while unpacking- Connects to IP addresses that are no longer responding to requests(legitimate services will remain up-and-running usually)
図4

単一の検体から検出された 27 の signature

つながる．本研究の結果は，Cuckoo Sandbox によ110005 検体のうち 5835 検体が，耐解析処理などをる signature 検出の特徴を十分に理解した上で見るこ実行する evasive なマルウェアであったことが報告さとが望ましい．ただ，一般にはマルウェアの意図をれている．彼らの研究は本研究とは異なり，マルウェ

API 呼び出し列から常に正確に判断することは極め

アが具体的にどんな耐解析処理を実行したかを明らて難しく，どのシステムやデータセットを用いても，かにしていない．

同様の不正確さは生じると考えている．

Ferrand [5] は Cuckoo Sandbox を検出するための複数の方法およびその検出を回避するための方法を

5 関連研究示している．彼らの研究は耐解析処理の実現方法およ

文献 [1, 2] の研究でも本研究と同様に，現代的なマびその回避方法を示す研究であり，本研究は，そのよ

ルウェアのどの程度の割合が耐解析処理を使用するかうな耐解析処理の使用の傾向を示す研究である．

を明らかにしている．しかし，彼らの研究は本研究とSandPrint [10] は，サンドボックス内で動くマルは異なり，静的解析を用いている．静的解析で捉えらウェアがそのサンドボックスの特徴を抽出し，それがれる特徴と動的解析で捉えられる特徴は異なるため，

どのサンドボックスであるかを高い精度で特定するこ両方の解析手法を補完的に用いて知見を蓄積することを可能にするシステムである．SandPrint は広範なとが重要である．

耐解析処理の実行結果を組み合わせて精度を高めて

BareCloud についての研究 [6] では，マルウェア

いる．SandPrint は高度な耐解析処理によって実現可能な脅威を示す研究であり，本研究はマルウェアによ社 FFRI および MWS 組織委員会に感謝する．本研

る耐解析処理の使用の実態を示す研究である．

究の一部は JSPS 科研費 17K00179，26330080 の助

AADetect [9] は，耐解析処理の特徴の有無に基い成を受けている．

てプログラムがマルウェアかどうかを判定するシステ
ムである．AADetect の研究は耐解析処理に関するマ

参 考 文 献ルウェアと非マルウェアの挙動の違いを明らかにして[ 1 ] Barbosa, G. N. and Branco, R. R.: PrevalentCharacteristics in Modern Malware, Black Hat USA
2014, 2014.
[ 2 ] Branco, R. R., Barbosa, G. N., and Neto, P. D.:
Scientific but Not Academical Overview of Malware Anti-Debugging, Anti-Disassembly and AntiVM Technologies, Black Hat USA 2012, 2012.
[ 3 ] Chen, X., Andersen, J., Mao, Z. M., Bailey,M., and Nazario, J.: Towards an Understanding ofAnti-virtualization and Anti-debugging Behavior inModern Malware, Proceedings of the 38th Annual
IEEE/IFIP International Conference on Dependable Systems and Networks, 2008, pp. 177–186.
[ 4 ] Cuckoo Sandbox, https://cuckoosandbox.org/.
[ 5 ] Ferrand, O.: How to detect the Cuckoo Sandbox
and to Strengthen it?, Journal of Computer Virology and Hacking Techniques, Vol. 11, No. 1(2015),
pp. 51–58.
[ 6 ] Kirat, D., Vigna, G., and Kruegel, C.: BareCloud: Bare-metal Analysis-based Evasive Malware
Detection, Proceedings of the 23rd USENIX Security Symposium, 2014, pp. 287–301.
[ 7 ] Oyama, Y.: Trends of anti-analysis operations ofmalwares observed in API call logs, Journal of Computer Virology and Hacking Techniques, (2017).
[ 8 ] Raﬀetseder, T., Kruegel, C., and Kirda, E.: Detecting System Emulators, Proceedings of the 10th
Information Security Conference, 2007, pp. 1–18.
[ 9 ] Tan, J. W. and Yap, R. H.: Detecting Malware Through Anti-analysis Signals - A Preliminary
Study, Proceedings of the 15th International Conference on Cryptology and Network Security, 2016,
pp. 542–551.
[10] Yokoyama, A., Ishii, K., Tanabe, R., Papa, Y.,
Yoshioka, K., Matsumoto, T., Kasama, T., Inoue,D., Brengel, M., Backes, M., and Rossow, C.: SandPrint: Fingerprinting Malware Sandboxes to Provide Intelligence for Sandbox Evasion, Proceedingsof the 19th International Symposium on Research in
Attacks, Intrusions and Defenses, 2016, pp. 165–
187.
[11] 株 式 会 社 FFRI: FFRI Dataset 2017 の ご 紹 介,
MWS2017 意見交換会, 2017.
[12] 大山恵弘: マルウェアによる対仮想化処理の傾向についての分析, コンピュータセキュリティシンポジウム
2016 論文集, 2016, pp. 534–541.
[13] 高田雄太, 寺田真敏, 村上純一, 笠間貴弘, 吉岡克成,
畑田充弘: マルウェア対策のための研究用データセット〜MWS Datasets 2016〜, 情報処理学会研究報告 コン
ピュータセキュリティ, Vol. 2016-CSEC-74, 2016.

いるが，現実のマルウェアの多くが実行する耐解析処
理や，各耐解析処理を実行するマルウェアの割合を示していない．実験で用いているマルウェアは 69 検体であり，本研究よりも大幅に少ない．

6 まとめと今後の課題
2017 年に収集されたマルウェアが実行する耐解析処理の傾向を，API 呼び出し列の分析によって示した．最も多くの検体で検出された耐解析 signature は，
メモリ量，コンピュータ名，ディスクサイズの検査である．特定のシステムに関する signature としては，20%以上の検体の実行から，Cuckoo Sandbox を検出しようとしているという signature が検出された．他には，VMware，VirtualBox，Avast，Sunbelt

Sandbox に関する signature が多く検出された．他に顕著だった耐解析 signature は，スリープによる解析時間の長大化，フォアグラウンドウィンドウの検査による人の活動の検出，ネットワークアダプタのア
ドレスの検査である．マルウェア 1 検体から検出された signature の数の平均は約 11.8 であり，耐解析

signature に限ると約 2.6 であった．ただし，27 もの
signature や 13 もの耐解析 signature が検出された検体もあった．
今後の課題を述べる．まず，API 呼び出し列をさらに詳しく分析し，耐解析処理の実行後にマルウェ
アがどう振る舞ったかを解明する必要がある．特に，サンドボックスの検出に伴い実行を終了させる処理を実際に行ったかどうかを調べる必要がある．また，
現在の Cuckoo Sandbox による signature 検出では少なくない false positive や false negative が出ると思われるため，それらの誤りの発生を減らす技術や，それらの誤りを解析結果から発見，除去する技術が必
要である．
謝辞

FFRI Datasets を提供して下さった株式会