Adobe Acrobat と Reader に存在するリモートコード実行の脆弱性 CVE-2010-0188(BID 38195)を悪用する、PDF ファイルベース攻撃の新しい波が確認されています。この脆弱性は、利用者の多い PDF 閲覧アプリケーションのうち、パッチ修正されていない特定のバージョンに存在します。これらの攻撃はすべて、シマンテックの Skeptic™ 技術によって遮断されました。
図1 に示すように、今回悪用された典型的な PDF サンプルのひとつには、高度に不明瞭化された JavaScript が含まれています。
図 1: 不明瞭化された JavaScript の一部
この JavaScript は、Acrobat Form の XFA オブジェクト(上の図のオブジェクト 8)で使われており、埋め込まれた要素への参照を利用してサブフォームフィールド(この例では "qwe123b")を操作します。このように悪用された PDF サンプルが脆弱な PDF 閲覧アプリケーションにロードされると、XFA の初期化処理が実行され、問題の JavaScript が呼び出されます。手動で不明瞭化を解除したところ、隠されたこの JavaScript を取り出すことができました(図 2)。
図 2: 不明瞭化して隠されていた JavaScript を取り出した一部
さらに解析を進めると、実際にこの JavaScript は既知の脆弱性を悪用していることがわかります。悪用されるのは、Adobe Acrobat と Reader に存在するリモートコード実行の脆弱性 CVE-2010-0188(BID 38195)です。利用者の多い PDF 閲覧アプリケーションのうち、パッチ修正されていない特定のバージョンでは、JavaScript によって生成される TIFF(Tagged Image File Format)画像に存在する無効な値によって TIFF パーサー(LibTIFF)が破損します。
以前のブログで紹介した結果と同様、この JavaScript は以下のような処理を実行します。
- PDF 閲覧アプリケーションの現在のバージョンを判定し、危殆化した適切な TIFF ファイルとシェルコードを作成する。
- シェルコードをメモリにいくつも書き込む。
- 画像が表示されるとき脆弱性がトリガされるように、危殆化したTIFF 画像を定義済みフォーム要素の "rawValue" に割り当てる。
興味深い点として、悪用する PDF 閲覧アプリケーションのバージョンを大きい整数に変換し、アプリケーションのバージョンを表す特定のしきい値と比較しています。これは、マルウェア開発者がウイルス対策(AV)スキャナやマルウェアの解析者を混乱させる目的で設計されたと考えられます。今回のサンプルでは、PDF 閲覧アプリケーションのバージョンにかかわらず、生成される TIFF 画像とシェルコードは同じであることも判明しています。
16 進でエンコードされたシェルコードを抽出した一部を、図 3 に示します。
図 3: 16 進でエンコードされたシェルコードを抽出した一部
さらに詳しく調べると、ファイルの最後で URL が見つかります(図 4)。
図 4: 悪質な実行可能ファイルへのリンクがシェルコードに存在する
シェルコードの実行に成功すると悪質な実行可能ファイルがダウンロードされることは確実です。残念ながら、悪質なファイルへのリンクが存在したのはごく短期間だったため、実際の実行可能ファイルのサンプルはまだ入手できていません。
シマンテック ドット クラウドをお使いのお客様は、この種のあらゆる攻撃から保護されています。シマンテックの解析によると、Skeptic™ は過去 2 週間にこのマルウェアを含む 1 万件以上の PDF ファイルの遮断に成功しています(図 5)。攻撃の実行には大きな波がいくつかあったことが、この図からも見てとることができます。攻撃が最も大規模だったのは 2 月 15 日で、連続的に 3,000 回以上が記録されました。同月 6 日の遮断数がそれに次いでいます。
図 5: 2 週間にわたってメールによる PDF 攻撃をシマンテック ドット クラウドが遮断した件数
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。