合法マルウェアで実感「リアルとサンドボックスの違い」マルウェアの視点で見るサンドボックス(1/3 ページ)

標的型攻撃対策の手法として、「サンドボックス」が注目を集めています。しかし攻撃者もすでに「サンドボックス対策」を進めています。合法的に作成したマルウェア的アプリ「ShinoBOT」を通じて分かったサンドボックス対策のヒントを、制作者本人が解説します。

» 2014年04月18日 18時00分 公開
[凌 翔太(マクニカネットワークス),@IT]

※ご注意

本記事に掲載した行為を自身の管理下にないネットワーク、コンピューターに行った場合は、攻撃行為と判断される場合があり、最悪の場合、法的措置を取られる可能性もあります。

また、本記事を利用した行為による問題に関しましては、筆者およびアイティメディア株式会社は一切責任を負いかねます。ご了承ください。


 標的型攻撃対策として、各セキュリティベンダーが「サンドボックス」製品をリリースし、注目を集めています。

 サンドボックスとは、仮想環境として「攻撃されてもよいホスト」を作成し、その中でマルウェアを動作させて、振る舞いをチェックするものです。実際にマルウェアを動かすので、バイナリを解析するよりも素早く、安全なアプリか悪意あるアプリかを判断できることが特徴です。しかし、当然ながらマルウェア作成者はサンドボックスでの検出を避けようと、対策を打ちます――でも、どうやって?

 今回の記事では、筆者が合法的に広めたマルウェアによって得られた、「攻撃者の視点から見たサンドボックス」の結果をまとめたいと思います。そして、今まであまり注目されなかった、「攻撃されてもよいホスト」が乗っ取られた場合のリスクについて考えてみたいと思います。

疑似マルウェアの詳細、およびその配布方法

 振る舞い検知ベースのソリューションを評価する際、筆者は検証用のマルウェアとして「ShinoBOT」というツールを開発しました。そのツールをマルウェアとして検知させるために、それらしい動作をいろいろと組み込んだ結果、最終的には標的型攻撃で利用されるRAT(Remote Administration Tool:攻撃者が外部からホストを操作するために用いるマルウェア)と同様の機能を持ち合わせる、疑似マルウェアになりました。

 ShinoBOTの主な機能は以下の通りです。

  • RAT同等の機能
    • 任意のファイルのアップロード/ダウンロード
    • 任意のコマンドの実行
    • 任意のファイルの実行
    • OS起動時に自動起動
    • スクリーンショットの取得 など。
  • C&C as a Service
    • 攻撃者が命令を発行するためのC&Cサーバーはクラウドで提供しており、テスト利用する際にユーザーはグローバルIPやドメインを取得したり、サーバーを立てたりする必要はありません。
  • GUI
    • 本物のマルウェアと大きく異なる点はGUIを持っており、実行している振る舞いをリアルタイムで確認することができます。また、GUIがあることにより潜伏ができないため、悪用されることを防止しています。

ShinoBOT、Black Hat USA 2013で(合法的に)広まる

 この疑似マルウェアを広めるきっかけになったのは、2013年夏、ラスベガスで行われたBlack Hat USA 2013というセキュリティカンファレンスでした。

 Black Hatでは「Arsenal」というイベントが行われます。ここでは世界中のハッカーが、自分の作ったツールを披露できます。このイベントに応募したところ無事採用されたため、この場でShinoBOTを発表し、ArsenalオフィシャルサイトにShinoBOT本体をアップロードしました。その結果、Black Hat来場者に限らず、たくさんの方にShinoBOTを試していただきました。

 以下は、ShinoBOTを動かしたホストを世界地図にプロットした図となります。

図1 手動で“感染”したShinoBOTの状況

 合計、55カ国から700台のホストがShinoBOTに“感染”しました(2014年4月時点)。なおShinoBOTに感染拡大の能力はなく、意図的に実行しない限り感染しないため、ご安心ください。

マルウェアの視点で見るサンドボックス

 ShinoBOTにより、寄せられた感染ホストの情報の一部をご紹介します。

 ShinoBOTがC&Cサーバーと初めて通信をする際、コンピューター名、ユーザー名、ドメイン名、ローカルIPアドレスがC&Cサーバーに送られます。その後、C&Cサーバーから以下のコマンドが発行されます。

  • スナップショットの取得
  • システム情報(Systeminfoコマンド)
  • 実行中のタスク一覧(tasklistコマンド)
  • ローカルユーザー一覧(net userコマンド)
  • ARPテーブル(arpコマンド)

 そのため、ShinoBOTを実行したクライアントからは、自動的に上記の情報が取得されます。

「スクリーンショット」がサンドボックスを判断する大きなヒントに

 では実際に接続してきたホストの「スクリーンショット」を見てみましょう。

図2 ShinoBOT感染端末のスクリーンショット1(部分的にモザイクを入れています)

 壁紙、ガジェット、付箋紙、さらにデスクトップ上の複数のファイルなどから「リアルな人間」のデスクトップであると判断できます。

 では異なるホストのスクリーンショットを見てみましょう。

図3 ShinoBOT感染端末のスクリーンショット2

 図2と比較すると、壁紙は一色で、必要最小限のアイコンしかありません。つまり、マルウェア解析用ホスト、サンドボックスである可能性が考えられます。この通り、デスクトップのスクリーンショットを見るだけで、ユーザーの環境なのか、サンドボックスなのかを簡単に判別することができます。同様に異なる16台の端末のスクリーンショットのサムネイルを並べてみました。

図4 ShinoBOT感染端末のスクリーンショット3

 一目で分かるように、左側が「リアルな環境」で、右側が「サンドボックス環境」となります。最近のPCやモニターはワイド画面(16:9)が主流ですが、サンドボックス上の仮想環境は従来の4:3の画面が人気のようです。つまり、画面の解像度もサンドボックスかどうかを判断する基準になります。

 標的型攻撃で利用されるRATのほとんどは、スクリーンショットを取得する機能があるため、攻撃者にも同様の画面が見えているはずです。つまり、攻撃者も自分のマルウェアが標的のユーザーのPCで動作しているのか、あるいはサンドボックス上で実行されているのか、容易に察知することができるのです。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。