マルウエアの解析には大きく「表層解析」「動的解析」「静的解析」の3種類がある。今回は動的解析について解説する。
動的解析は文字通り、マルウエアを実際に動作させて、その挙動から解析する手法である。ファイルの情報から解析する表層解析や、プログラムコードから解析する静的解析にはないメリットがある。一方で、デメリットもある。動的解析を使いこなすには、メリットとデメリットの両方を理解しておく必要がある(図1)。
動的解析のメリットの1つは、マルウエアが感染した際の挙動や被害を直接把握できることだ。
例えばマルウエアによっては、感染後に別のマルウエアを生成したり、インターネットからダウンロードしたりする。そのような場合、動的解析なら生成あるいはダウンロードされるマルウエアを実際に取得して調べられる。
また、実際の挙動から対策や復旧に有用な情報も得られる。例えば、外部と通信するマルウエアの場合には、通信先を特定して遮断することで被害を未然に防げる。システムの設定を変更するマルウエアの場合は、変更内容を特定できるので迅速な復旧が可能になる。
解析結果への過信は禁物
有用な動的解析だがデメリットもある。その1つが、マルウエアを感染させても問題がない環境を用意することだ。当然のことながら、実際の業務システムを感染させるわけにはいかない。
一般的には「VMware」や「VirtualBox」といった仮想環境を利用する。仮想環境なら業務システムに影響を与えることはないし、感染前の環境にも容易に戻せる。
アップロードしたファイルを動的解析してくれる「自動解析システム」も存在する。マルウエアと思われるファイルをインターネット経由でアップロードすると仮想環境で実行して、挙動をリポートとして出力する。
解析結果を過信できないこともデメリットと言える。動的解析を回避するマルウエアが存在するからだ。具体的には、仮想環境で実行されているかどうかなどを調べ、動的解析されていることを検知すると挙動を変えるのだ。
このため動的解析の結果だけで判断するのは危ない。静的解析を併用するのが望ましい。
調査内容は多岐にわたる
一口に動的解析と言っても、調査の内容は多岐にわたる。ここでは代表的な5つの調査を解説する(図2)。
まず1つ目が「プロセスの調査」である。例えば、マルウエアの実行時に起動されるプロセスを調べ、特徴的な引数がないかどうかなど、プロセスから得られる情報を調べる。
2つ目が「プロセスの挙動の調査」。マルウエアの実行時に起動されるプロセスをリアルタイムで監視して、その挙動を把握する。
3つ目が「通信(パケット)の調査」だ。マルウエアの多くは、感染すると通信を開始する。攻撃者と通信したり、別のマルウエアをダウンロードしたりするためだ。感染パソコンが存在するネットワークを調査するために通信を開始する場合もある。こういった不審な通信を調べることで、マルウエアの挙動を解析する。
4つ目が「システムの状態変化の調査」である。マルウエアの多くは、感染したコンピューターの設定を変更したり、特定のファイルを作成したりする。つまりシステムに変更を加える。このためシステムの状態の変化を調べることでマルウエアの挙動を推測する。マルウエア感染による変化が明らかになるので、復旧の際にも役立つ。
そして5つ目が「コードレベルでの挙動の調査」である。不審なプロセスをコードレベルで少しずつ動作させながら解析する。手間はかかるが詳細を調べられる。
以上の調査に必要なツールはインターネットで無料で多数公開されている。そこで以下では、有用なツールをいくつかピックアップして紹介しよう。