Twitterに書ききれないこと

イベントや技術的なことを記したい・・・

Practical Malware Analysis Chapter 2

マルウェア解析についての有名な書籍にPractical Malware Analysisがある。

その書籍を勉強のために翻訳・要約した記事。

全訳ではないので、詳細は原書を読んでください。

Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software

Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software

2章 仮想マシン上でのマルウェア解析

動的解析をする前に、安全な環境をセットアップする必要がある。 隔離環境を用意することで、ネットワーク上の他のマシンへの感染を防ぐ。 安全にマルウェアを解析するために、専用の物理マシンまたは仮想マシンを使用する。

しかし、隔離環境ではインターネット接続ができないという問題がある。 マルウェアの更新、ダウンロード、C&Cなどの多くの機能は、インターネット接続が必要である。

物理マシンは仮想マシンよりもマルウェアの除去が困難な問題がある。 マルウェアを実行後は、OSのバックアップイメージから復元する必要がある。 物理マシンで解析する利点は、マルウェアが行う仮想環境検知を回避できる点である。

仮想環境には、検知されてしまうという欠点があるが、仮想マシンは、復元の容易さもあり、一般的に動的解析で使用されている。

仮想マシンの構成

ゲストOSは、仮想マシンのホストOS内に設置され、仮想マシンで実行しているOSは、ホストOSから分離されている。 仮想マシン上で実行されているマルウェアは、ホストOSに影響を与えることはない。 マルウェアを実行後は、仮想マシンにOSを再インストールするか、クリーンな環境へ復元する。

仮想化ソフトとして無料のVMware Playerと有料のVMware Workstationが人気である。VMware Workstationには、スナップショット作成機能などがある。 他にもHyper-VXenなどがある。

マルウェア解析環境の使い方

マルウェアの挙動を出来るだけ解析するためにネットワークサービスをシミュレートする必要がある。 例えば、マルウェアは、一般的に追加のマルウェアをダウンロードするために、HTTPサーバへ接続する。 この挙動を観測するためには、要求に応答するサーバのIPアドレスだけでなく、名前解決するためのドメインネームサーバ(DNS)を用意する必要がある。 このようにマルウェアが必要とするサービスを用意しなければならない。

インターネットへのマルウェアの接続

マルウェア解析時に、より詳細な解析のためインターネットに接続したい時がある。 最大のリスクとして、他のホストに感染をすることや、DDOS攻撃を行うこと、スパムとして活動してしまうことがある。 また、マルウェア作成者に解析を悟られてしまうというリスクもある。

こうした活動を、インターネット接続時に行う可能性があるため、解析をせずにインターネットへ接続してはいけない。

スナップショットの作成

スナップショットは仮想環境で解析する利点である。 コンピュータのある状態を保存し、後でその地点に戻ることができる。 マルウェア解析前の環境を保存し、動的解析後に復元することで、容易に解析ツールを用意した感染前の環境へ戻ることができる。

仮想マシンからのファイルの転送

スナップショットの欠点として、解析環境を復元すると今まで行っていた作業も消えてしまう点がある。 VMwareを使用している場合、VMware Toolsを使うとドラッグアンドドロップでファイルを共有することができる。 または、共有フォルダを使うことで、他のホストへファイルを転送することができる。

解析環境へツールをインストールしなくて良い点と接続するのは感染した環境であるという点から、隔離ネットでLinuxホストとファイルを共有するのがすすめ。

VMwareでのマルウェア解析のリスク

仮想マシンを検知する技術はいくつか公開されている。 この技術を使って、仮想環境では挙動が異なるマルウェアがある。

また、VMware脆弱性がある場合がある。 これを利用され、ホストOSがクラッシュすることや、マルウェアに感染することがある。ソフトウェアのバージョンを最新にしていても、こうしたリスクがあるため、注意が必要である。 そのため、解析環境は解析にのみ使用し、重要な情報を保存しないようにしなければいけない。

まとめ

仮想マシンでのマルウェア解析手順

  1. 解析ツールをインストールした、マルウェアが動作していないクリーンなスナップショットを作成する。
  2. 仮想マシンマルウェアを転送する。
  3. マルウェアの解析を実施する。
  4. 仮想マシンから解析結果のデータなどを退避しり。
  5. クリーンなスナップショットへ仮想マシンを戻す。