10月6日、米国コロラド州デンバーで開催されたVirus Bulletinカンファレンスにおいて、チェック・ポイントの研究者であるスタニスラフ・スクラトビッチとアレクサンドル・シャイリトコがプレゼンテーションを行いました。テーマは、マルウェアが備えるサンドボックス回避手法にいかにして対抗するかです。今回のブログでは、カンファレンスに参加されていなかった読者の方に向けて、プレゼンテーションの概要をご紹介します。

マルウェアの世界は目まぐるしく変化します。サンドボックスが登場したときも、マルウェア作成者はすぐさま回避策の開発に乗り出しました。一方、我々はこのような攻撃からユーザを保護するため、サンドボックス回避手法を検出・対処する技術の開発に日夜取り組んでいます。マルウェアとの戦いはまさにいたちごっこであり、一向に終わる気配がありません。

サンドボックスは、無菌室のような特別な仮想環境で構成されます。セキュリティ研究者や高度なセキュリティ製品は、このサンドボックス内でファイルの振る舞いを分析し、内部に潜むマルウェアを検出します。最近の一部のマルウェアは、自身の実行環境がサンドボックスかどうかを確認する高度な機能を備えており、その確認手法にはいくつかの種類があります(プレゼンテーションでは、この点について詳しく解説しました)。実行環境がサンドボックスであることを把握したマルウェアは、サンドボックスによる検出を回避するため、次のいずれかの方法で対応します。

  • 自身の存在を隠蔽し、マルウェアの詳細調査(検出の可能性を高めるような調査)を回避するため、実行を停止する。
  • 調査の目をあざむくために無害な活動を行い、そのファイルの特性として偽の情報を与える。
  • 適当なドメインやIPアドレスにアクセスするなどの偽装工作を行い、マルウェア本来の活動とは無関係な振る舞いに目を向けさせる。

マルウェアは、上記のような駆け引きを行って、サンドボックスによる検出を免れようとします。検出を回避した後、活動を完全に停止するか、攻撃活動を再開するかは、マルウェアによって異なります。

マルウェアがサンドボックスを回避するためには、まず、実行環境がサンドボックスであることを見抜けなければなりません。そのために一部のマルウェア作成者は、サンドボックスのコードに含まれるバグを利用します。Cuckoo Sandboxに対して行われたのが、まさにこの手法です。オープンソースの自動マルウェア分析システムであるCuckoo Sandboxは、セキュリティの分野で広く使用されており、VirusTotalやMalwrなど、主要なマルウェア分析サービスのほぼすべてが、自動振る舞い分析を目的としたプラットフォームとしてこのシステムを利用しています。プレゼンテーションでは、その他の仮想環境やハイパーバイザに存在する、サンドボックス回避に利用可能な複数のバグと解決策も紹介しました。

サンドボックス回避手法の詳細については、アレクサンドルとスタニスラフの技術白書『Defeating Sandbox Evasion: How to Increase Successful Emulation Rate in your Virtualized Environment』をご覧ください。