マルウェア分析のための安全な環境

近年、マルウェアは日々たくさんの数が発見されています。オリジナルのマルウェアを少し改変しただけの亜種を産み出すことは容易に行えますし、中には未知のマルウェアも存在しています。こういったマルウェアに対しては、既知のシグネチャ型のウイルス対策ソフトのようなソリューションでは、リアルタイムに追従することが難しくなります。そのため、不審なファイルを見つけた際にそのファイルが不審な挙動をとるかどうかを確認したいシーンが発生します。その際に役に立つのがマルウェアの分析環境です。

マルウェアの分析には大きく分けて2つの種類があります。ひとつは静的解析。もうひとつは動的解析です。

静的解析とは、マルウェアを何らかの手法を用いてプログラムの状態に戻し、それを読み解いて動作を解析する手法です。当然ながら、記述されたプログラミング言語に精通していなければ解析を行うことができないため、その難易度は比較的高くなります。

もうひとつが、動的解析です。これは、実際に不審なファイルを動作させて、その動き、例えば更新するレジストリの情報であったり、アクセスするファイル、通信先のIPアドレスを把握します。静的解析よりは技術的な難易度は低いですが、ここで重要なのは、マルウェアをあえて動かす以上、安全な環境でないと行えないということです。

この安全な環境を提供するのが「サンドボックス」です。サンドボックスは砂場という意味ですが、子供が安全に遊ぶことができる場所といった意味合いで使われています。

サンドボックスは技術的には一般的に、仮想環境を用いて実現します。専用のハードウェアを動的解析のために用意することは、コスト面などで制約になるためです。

今回はこのサンドボックスについて詳しく見ていきましょう。

サンドボックスのメリットとデメリット

サンドボックスによる動的解析は当然ながら万能ではありません。そこにはメリットもあればデメリットもあります。まずはその点を確認しておきます。

メリット

メリットとして挙げられるのは、やはり未知の攻撃に対応できることでしょう。

シグネチャ型のセキュリティ製品は、その性質上、既に出回ったマルウェアから対応するためのシグネチャを作成します。そのため、既知のマルウェアにしか対応できず、未知の攻撃にはほぼ無力となります。しかし、サンドボックスを使えば、安全にその動作を把握することができ、それに合わせた対策を取ることが可能になります。

また、仮想化技術を用いることで、コスト的に安価で解析を実現できる点も欠かせません。マルウェアが動作する環境はさまざまです。利用者が用いるパソコンのようなエンドポイントではWindowsやMacOSが用いられることが多くなっていますし、サーバーでは安定動作のためにLinuxも利用されます。これらの環境を物理的に用意することは、専門のセキュリティ業者でもなければ難しいでしょう。その悩みを仮想環境であれば解消してくれます。

デメリット

一方でデメリットとしては、仮想環境を用いた場合に動作しない、サンドボックスを回避するマルウェアが存在しているということがあります。

一部のマルウェアは、自身が動作している環境を調査し、それが仮想環境であった場合は、サンドボックスによる解析が行われている、と認識します。その後、その解析から逃れるために、動作を止めるといった動きをするのです。

これでは正しくマルウェアの挙動を解析することはできません。

また、サンドボックスで動かす以上、その動作が終わり、その結果を確認するまでは対策を実施することはできません。つまり、解析までに時間がかかるということです。リアルタイムタイム性は失われてしまいかねません。

このように、サンドボックスを仮想環境で実現する場合には、メリットとデメリットをよく理解して用いることが大切です。

オープンソースのサンドボックス紹介

サンドボックスを実現するためのソリューションにはいくつか種類があります。

中には有償のものもありますが、オープンソースとして無償で利用できるものもあります。これは、サポート面では有償のものより遅れを取りますが、ライセンス費用がかからないため、主に小規模な組織では大きな魅力といえます。

ここでは、オープンソースで提供されているサンドボックスを実現するマルウェア解析ソフトを2つ紹介します。

Cuckoo Sandbox

もっとも多く利用されている、有名なサンドボックスツールです。学生コミュニティを発祥としています。

ホストOS上に、VirtualBoxやKvmのような仮想化基盤を用いて、ゲストOSを動かし、その上で不審なファイルを動作させます。

Cuckoo Sandbox自体は軽量に動作しますが、仮想環境を動かすためには、相応のハードウェア要件が求められます。

小規模な組織では不要かもしれませんが、同時に多数の不審ファイル(検体と呼びます)を解析する場合は、スケーラビリティが求められますので、その分仮想環境も用意する必要が出ます。また、これはCuckoo Sandboxに限った話ではありませんが、ゲストOSのライセンスや動作させるOfficeなどのアプリケーションのライセンスに関わる費用は必要となりますので注意が必要です。

また、MongoDBと連携させることで、高度なレポート機能が利用できたり、Volatilityというメモリフォレンジックツールを動作させることで、メモリ上でどんな挙動を示しているかなどの解析が行えるようになります。

CAPEv2

Cuckoo Sandboxを発展させて開発されたオープンソースのマルウェア解析ソリューションです。

Cuckoo Sandboxと比較して、設定ファイルや、マルウェアの本体となるペイロード部分の解析に強みを持っています。

まとめ

未知のマルウェアについて対策をとるためには、サンドボックスを用いた動的解析は有効な手段となります。特に仮想環境を用いたものは、手軽かつ安価にその環境を実現することができますので、利用されるケースが増えています。

オープンソースのサンドボックスソリューションを用いれば、費用を抑えてサンドボックスを構成することも可能ですので、小規模な組織では利点になります。

ただし、オープンソースの場合は、サポートなどが不足することから、技術的な負担は大きくなります。そのため、導入を検討する場合、総合的なコストを勘案することが非常に重要です。

ゲストOSのライセンス費用なども見えにくい部分ですので、この辺りを判断して導入を検討すると良いでしょう。