検出回避にZWS圧縮技術を悪用する不正プログラム

サイバー犯罪者は、検出を回避することにかけては、間違いなく才能があります。トレンドマイクロでは、セキュリティ対策製品などを回避する手法が改良された不正プログラムの事例をこれまでに何度も確認してきました。例えば、解析ツールの実行を阻止したり、デバッガ機能を阻止、また通常のネットワークトラフィックに紛れ込ませたりJavaScriptを利用したさまざまな回避手法などです。そして、2014年1月、セキュリティ対策製品を回避するために正規のデータ圧縮技術を利用した、不正プログラムの確認が報告されました。

TROJ_SHELLCOD.A」として検出されるこの不正プログラムは、”Adobe Flash Player” に存在する脆弱性CVE-2013-5331」を利用します。この不正プログラムは、「ZWS」という方式で圧縮した Flashファイルを埋め込んだ文書ファイルです。ZWS は 2011年に公開され、「Lempel-Ziv-Markove Algorithm(LZMA)」という圧縮アルゴリズムを用いて、ファイル内情報を損失することなくデータを圧縮する技術です。弊社では、この不正プログラムが、どのようにこの正規の技術を悪用したかを検証しました。

図1:圧縮された不正プログラム
図1:圧縮された不正プログラム

図1 は、圧縮された不正プログラムのコードを示しており、圧縮することで不正プログラム自身の検出を回避します。弊社では、この不正ファイルを解凍するために、オブジェクト指向スクリプト言語「Python」で作成された「SWFCompression」を利用しました。

図2:シェルコードを ASCII形式で抽出
図2:シェルコードを ASCII形式で抽出

図3:ASCII形式で抽出したシェルコード
図3:ASCII形式で抽出したシェルコード

16進コードに変換すると、この不正プログラムがアクセスすると思われる URL を確認しました。残念ながら、解析の時点では、この URL はすでにアクセスできなくなっており、ここからダウンロードされると思われる不正プログラムを入手することができませんでした。

図4:バイナリ形式のシェルコード
図4:バイナリ形式のシェルコード

デバッガ用のソフトウェアにこのコードを読み込ませると、図5 の結果が得られました

図5:実行コード
図5:実行コード

図5 が示すように、「TROJ_SHELLCOD.A」は不正プログラムを実行するために、さまざまな手法を利用します。不正プログラムは、通常、ダウンロードされて実行します。つまり、感染PC に自身のコピーが作成されるということです。そのため、セキュリティ対策製品による不正プログラム検出が可能となります。

しかし、今回の不正プログラムは、実行コードからVirtualAlloc関数を利用して、ダウンロードされるはずの不正プログラムをメモリ上に割り当て、バックドア型不正プログラムのように、不正プログラムを実行します。つまり、物理的に作成されるファイルがなく、その代わりに不正プログラムが直接メモリにコピーされます。そのため、不正プログラムの活動を追跡するのがより難しくなります。ZWS圧縮の検出サポートをしていたとしても、ほとんどのセキュリティ対策製品がこの不正プログラムを検出できないのは、こうした理由からです。

ユーザは、セキュリティ更新プログラムが公開され次第、インストールすることをお勧めします。更新プログラムにより、感染を防ぎ、自身を保護することができます。例えば、Adobeは、2013年12月に今回の攻撃に利用された脆弱性の修正プログラムを公開しています。

トレンドマイクロ製品をご利用のユーザは、弊社のクラウド型セキュリティ基盤「Trend Micro Smart Protection Network」によって守られています。特に「Webレピュテーション」技術により、この脅威に関連する不正な Web サイトへのアクセスをブロックします。そして、「ファイルレピュテーション」技術により、上述の不正プログラムを検出し、削除します。

参考記事:

  • Malware Uses ZWS Compression for Evasion Tactic
    by Mark Joseph Manahan (Threat Response Engineer)
  •  翻訳:品川 暁子(Core Technology Marketing, TrendLabs)