仮想環境で解析を行うサンドボックス技術は、ネットワークの最終防衛ラインであるエンドポイントセキュリティ対策製品が広く採用する仕組みです。砂場という名称の通り、サンドボックスはマルウェアや疑わしいファイルがルーチンを実行するなど、自由に振る舞うことのできる仮想環境です。マルウェアを仮想環境で実行してその実際の活動を既存の振る舞いやルーチンのパターンと比較分析し、悪意の有無を判定します。このように、システムのインフラストラクチャに被害を与える恐れのある信頼できないファイルを隔離し、エンドポイントセキュリティをより確かなものにします。
しかし、もしマルウェアがサンドボックスをすり抜けることができるとしたらどうでしょうか?あるいは、サンドボックス環境にいることを検知し、無害を装うことができたらどうでしょう?
以下は、注意すべきマルウェアが従来のセキュリティ技術を回避する手口と、最新のサンドボックス技術による対抗策の概要です。
■サンドボックスを回避する有名なマルウェア
現在、既に多くのマルウェアが「解析回避」「サンドボックス回避」とでもいうべき活動を行います。代表的なサンドボックス回避活動は、自身が実行された環境が仮想環境か否かを判断し、仮想環境だった場合には不正活動を行わない、と言うものです。
さまざまな手口でサンドボックス技術を回避するマルウェアの例として、暗号化型ランサムウェア「Locky「RANSOM_LOCKY(ロッキー)」として検出)」が挙げられます。「Locky」は、暗号化されたDLL、Windows スクリプトファイル、ソーシャルエンジニアリングを用いたスパムメールの添付ファイル(悪意のあるマクロを含む文書、RAR、JavaScript、VBScript)、あるいはFlashのゼロデイ脆弱性を悪用したエクスプロイトキットなど、さまざまな手法で PCに感染する悪名高いランサムウェアです。
「Locky」の亜種である「RANSOM_LOCKY.PUY」は、2016年4月、Windows カーネルモードドライバにおける権限昇格の脆弱性を突くエクスプロイトコードを利用して注目を集めました。エクスプロイトキットにより「drive-by download(ドライブバイダウンロード)」されるダウンローダ(「TROJ_LOCKY.DLDRA」として検出)がローカル権限昇格の脆弱性「CVE-2015-1701(2015年5月に更新プログラム配布)」を悪用し、システムのプロセスに偽装してサンドボックスの検知を逃れます。攻撃者は、脆弱性を抱えるカーネル(ワークアイテム、システムスレッド、非同期プロシージャコール)を悪用してコマンド&コントロール(C&C)サーバに接続します。そして、ランサムウェアをダウンロードし、感染した PCにファイルを物理的に作成することなくインストールされます。この手法は「Magnitude Exploit Kit(マグニチュード・エクスプロイト・キット)」で明らかになった上述のゼロデイ脆弱性「CVE-2016-1019(2016年4月に更新プログラム配布)」を悪用した攻撃にも使われていました。
比較的新しいランサムウェアのファミリも、仮想環境やそれに類するサンドボックスのような環境を検知できるようになってきています。例えば、「Locky」の亜種は、複数段階の難読化を施した不正な JavaScriptを用い、圧縮した DLLをダウンロードし実行します。その DLLは、環境を検知し、「virtual machine(仮想環境、VM)では動作を停止する機能を備えています。また、改ざんされたファイル共有アプリケーションや不正なMach-Oファイルで発見された「KeRanger(キーレンジャ)」(「OSX_KERANGER」として検出)は、感染 PC内で3日間スリープしてから暗号化を実行することでVMでの検出を回避します。
2012年に初登場した「Shamoon/Disttrack」(「WORM_DISTTRACK(ディストラック)」として検出)は、中東の有名企業を狙った標的型攻撃で主に利用されています。「Shamoon(シャムーン)」は、感染 PCの「マスターブートレコード(MBR)」を削除し再起動できないようにします。また、感染 PCと同じネットワーク上にある他の PCおよびサーバにも感染活動して、それらの MBRも削除して、同様に再起動できないようにします。2016年に再登場した際には、設定した条件が満たされたときに動作を開始するという「時限爆弾」のような仕様等でサンドボックス検出を回避する手法を備えていました。これは、マルウェアの中にハードコードされた特定の日時に不正なコンポーネントを実行させる仕組みです。
■ファイルを利用しないマルウェアによるサンドボックスの回避
ファイルを利用しない感染は、攻撃者にとって、非常に有効な手法です。というのも、実際のファイルをダウンロードしたり PCに書き込むことなく、メモリ上で実行されます。解析するファイルが存在しないということは、従来のサンドボックス技術で解析する対象が存在しないため解析が行えない、つまり、サンドボックス検出を巧妙に回避することを意味します。
PCのメモリやレジストリを使うのが一番安易な方法であるため、ファイルを利用しない攻撃はサイバー犯罪者にとってますます主要な手法となっています。企業を標的とした攻撃や POSマルウェアのような脅威はこの手法により感染することとなります。例えば、諜報活動を目的としたサイバー攻撃で利用される「Duqu 2.0(ドゥーク2.0)」は、感染 PCのメモリ内で不正なモジュールを実行することが知られています。また、侵入テストツール「Metasploit(メタスプロイト)」を悪用し、感染 PC内のパスワードをメモリから窃取しシステム権限を昇格させます。
ファイルを利用しない攻撃では、スクリプトとオペレーションシステムの正規のユーティリティソフトウェアが使われることも知られています。JavaScript(拡張子JS)や Visual Basic for Applications(拡張子VBA)、時には HTMLアプリケーション(拡張子HTA)、Publisher(拡張子PUB)、そしてコンパイル済み HTMLファイル(拡張子CHM)が使われます。また、PowerShell、コマンドプロンプト、そして .Net Frameworkのようなオペレーションシステム(OS)のユーティリティも悪用されます。
下の表は、攻撃者の回避手法、ファイルを利用しない攻撃、従来のサンドボックスの動作をまとめたものです。
回避手法 | ファイルを利用しない攻撃 |
従来のサンドボックスの動作 |
ファイルスキャンを回避 | 関与するファイル無し | 要求に応じたファイルのスキャン |
相関分析の妨害 | システムプロセスに偽装したスクリプトやコマンドプロンプトの使用 | システムAPIレベルのフック |
サンドボックスの回避 | 遅延実行(例:タスクのスケジュール作成) | 限られた時間のみの監視 |
アンチフォレンジック | メモリの感染の痕跡は揮発性 | N/A |
表:ファイルを利用しない攻撃のサンドボックス回避手法
■最先端のカスタムサンドボックス
マルウェアのサンドボックス回避手法が広まるにつれ、ソフトウェアの設定も含めた実際のPC内環境をサンドボックスに反映することが重要になります。それによって、Windows カーネルモードドライバにおける権限昇格の脆弱性を突くエクスプロイトコードのような特定の疑わしいファイルがシステムに与える影響をより正確にシミュレートすることができます。スクリプトやシェルコードから最終的な不正活動に至るまで、マルウェアの多様な振る舞いと不正活動の解析が可能なサンドボックスは、従来のサンドボックスが見逃す可能性のある難読化や回避手法を検出することができます。
マルウェアが備える VMを回避するコードは、通常圧縮されており、実行時にのみ解凍されます。実行時のサンドボックス解析を回避するコードの形跡を探索および検証できるサンドボックスは、この回避手法に対処することが可能です。
ほとんどのサンドボックス技術は、「Application Program Interface(システムAPI))のみを確認するため、ファイルを利用しない攻撃においては、スクリプトおよびユーティリティソフトウェアを悪用してこのサンドボックス技術による確認を回避することができます。高度なシステム監視機能を備えたサンドボックスは、PCのシステム APIを越えて悪意のある通信を確認し、このような攻撃に対応します。
従来のサンドボックスは、マルウェアのバイナリをエミュレートして実行し、その振る舞いを理解するという動的な解析を基盤としています。「CrypMIC(「RANSOM_CRYPMIC(クリプミック)」として検出)」やランサムウェア「CERBER」(「RANSOM_CERBER(サーバ-)」として検出)のような暗号化型ランサムウェアは、仮想マシン上で動作していることを検知するために CPUID命令によってサンドボックス解析を回避します。
トレンドマイクロのサンドボックス技術は、より正確に実際のシステムの設定を再現し、動的分析と静的分析を組み合わせた高度な分析能力を備えています。さまざまなファイルのコンポーネントが詳細に検証およびリバースエンジニアリングされ、不正活動および怪しい振る舞いを高い確率で検出します。例えば、「Shamoon」に含まれる時限爆弾は、バイナリファイルの日付を確認する静的解析によって検出することができます。不正活動の動的分析は特定の PCにおける振る舞いを識別することができます。もうひとつの例は、プロセスの中に悪意のあるコマンドを埋め込むシェルコードと「コンポーネント・オブジェクト・モデル(COM)」の悪用です。これらは振る舞いの解析だけでは見逃されていたでしょう。
ネットワーク挙動監視ソリューション「Trend Micro Deep Discovery™ファミリー」のサンドボックス機能は、マルウェアの回避ロジックを発見するために、ソフトウェアのコンポーネントが通信を行うプロトコルやルーチンを指定する APIを中断し、それらの命令を動的に追跡、制御、分析します。また、プログラムの実行経路を列挙し、そのそれぞれについて、一定時間スリープしてから実行するなどの疑わしいあるいは悪意のある振る舞いの有無を調べます。サーバ向け総合セキュリティ製品「Trend Micro Deep Security™」、そして「OfficeScan™(ウイルスバスターコーポレートエディション)」は、「Trend Micro Deep Discovery™ファミリー」と連携することにより、サンドボックス機能を利用することが可能です。
今日の脅威状況は軍拡競争のようです。サイバーセキュリティが進化すれば、サイバー犯罪もまた向上します。攻撃はさらに順応し、経験から蓄積した巧妙な手法を用いることが予測されます。さまざまな手法を利用するマルウェアは、従来のセキュリティソリューションを回避するようになるでしょう。2016年の出来事から分かるように、脅威が送り込まれる方法は変化しており、マルウェアの隠ぺい性は高まり、感染経路および攻撃手法は多様化しています。これらのサンドボックス回避手法はスクリプトファイル(JS、VBS、VBA、PowerShell等)だけでなく、不正 PEファイル(Portable Executable)にも拡大していくと予測されます。
サンドボックスは、特に未知の脅威やゼロデイ攻撃に対して効果的ですが、特効薬ではありません。ゲートウェイやサーバから、ネットワークとそのエンドポイントにいたるまで、システム全体を保護する多層的で世代を超えたアプローチの一部分だと考えるべきです。
【更新情報】
2017/06/06 14:20 | 本文の一部を修正しました。 |
2018/07/04 11:04 | 本文の一部を修正しました。Trend Micro Deep Security™およびOfficeScan™はTrend Micro Deep Discovery™ファミリーと連携することによりサンドボックス機能の利用が可能です。 |
参考記事:
- 「How can Advanced Sandboxing Techniques Thwart Elusive Malware?」
by Moony Li and Jerry Liu
翻訳:澤山 高士(Core Technology Marketing, TrendLabs)