Flashアプリケーションは、数年前から主要セキュリティ問題の一つとなっています。Flashが広く一般に普及しているため、サイバー犯罪者にとってFlashファイルは非常に魅力的なターゲットと言えるでしょう。実際に、細工を施したバナー広告という手口は目新しくありません。こうしたFlashベースの「malvertisements」(悪質な広告)は、以前から広告主と有名なWebサイトを悩ませてきた存在です。攻撃用Flashファイルには、素直でだまされやすいユーザーに安全なファイルだと思い込ませるため、画像やアニメーションを入れられるケースが多くあります。今回はその攻撃一例として、「Exploit-CVE2007-0071」としてよく知られている、「DefineSceneAndFrameLabelData」タグの整数演算オーバーフローを起こす脆弱性を悪用する、悪質なFlashファイルの配布の手口を紹介します。
この脆弱性は既に対策済みですが、犯罪者はより巧妙化させた、新たな手口を次々と繰り出してきます。
バージョン9以降の「Flash Player」は、「ActionScript 3.0」言語で記述されたプログラムを実行する目的で「ActionScript Virtual Machine 2(AVM2)」と呼ばれる仮想マシンを搭載しています。ActionScript 3.0には,「loadBytes()」というメソッド(関数)があります。 ActionScriptの「flash.display.Loader」クラスはloadBytes()メソッドに対応しており、ローダー部分に納めるデータをバイト配列で受け取ります。この配列には、GIFやJPG,PNG,SWF形式のファイルを入れることができます。ローダー内に脆弱なSWF(Small Web Format)ファイルを入れると、攻撃の成功率が何倍にも高まると同時に、セキュリティ研究者による分析が遙かに難しくなります。
上のスクリーンショットは、ローダーファイルに埋め込まれた悪質なSWFファイルの内容です。このローダーはloadBytes()メソッドを使用しており、埋め込まれたデータを攻撃対象アプリケーションのセキュリティ・コンテキストに挿入します。
最近のバージョンになると、このエクスプロイトはバイトシフティングアルゴリズムやランダムXORキーなど、様々な方法で難読化を行い、埋め込むSWFファイルを暗号化します。以下のスクリーンショットは、その様子を示しています。
サイバー犯罪者は、アプリケーションなどといった攻撃しやすい対象を狙うため、今後もこのような状況は変わらないでしょう。Flashも決して例外ではありません。防御を怠らずに、常に最新のFlash Playerを使ってWebサーフィンを楽しみましょう。
関連記事
- [2010/09/13] 拡散中のアドビPDFゼロデイエクスプロイトを発見
※本ページの内容はMcAfee Blogの抄訳です。
原文:SWF Flash Exploits: Old Wine in a New Bottle