Adobe Readerのバージョンアップはしただろうか。11月に公開されたぜい弱性に対するアップデート(Adobe Reader 8.13)のことだ。

 11月に報告されたぜい弱性について簡単に解説しよう。PDFファイルにJavaScriptを埋め込めることはご存知だろう。そのJavaScript関数のutil.printf()のフォーマット・ストリング(%d,%s,%xなど)の処理の不備が問題となっている。具体的には,該当の関数の引数に不正な浮動小数点を含む値が引数として指定されるとバッファ・オーバーフローが発生し,任意のコマンドを実行されてしまう可能性がある。

 PDF形式のファイルは多くのプラットフォーム上で閲覧可能であるため,ビジネス・ドキュメントとしてだけでなく,Web経由での資料配布などにもよく利用されている。Microsoft Officeも世界中で利用されているが,万人への配布となると圧倒的にPDFファイルが多い。試しに,Googleで「site:co.jp filetype:pdf」と検索してみてほしい。filetype:doc(Microsoft Word)に比べた利用率は,日本企業でも圧倒的に高いことが分かるはずだ。著名なサイトで配布されているPDFファイルが悪性コードを含むPDFファイルに置き換えられたらどうなるか。その影響度は容易に想像がつく。

 このぜい弱性の影響度が大きいとされる根拠は主に次の3点だ。
(1)ユーザー権限を奪取される
(2)本ぜい弱性を悪用したPDFマルウエアは容易に作成できる
(3)ウイルス対策ソフトでの検出が困難

 PDFファイルに関しては以前から,JavaScriptを埋め込めるなどの自由度が高さが攻撃につながると懸念されていた。ただ今までは,攻撃がJavaScriptで操作可能な範囲に限られていた。ところが今回のぜい弱性を突かれると,ユーザーはOSの権限を奪われてしまう。つまり,リモートからのパソコンの操作が可能になるわけで,従来の攻撃よりも被害レベルは高い。

 このぜい弱性を悪用するための攻撃コードも既にサンプルが公開され ている。攻撃者はサンプルを基にすれば,比較的容易に攻撃コードを作成し,PDFファイルに埋め込める。PDFファイルは,ヘッダー,オブジェクト,クロスリファレンス,トレーラという4領域で構成されているが,今回のぜい弱性では,JavaScriptの挿入と同様に攻撃コードをオブジェクト領域に挿入することで攻撃が成立する。

 さらに,難読化によってJavaScriptマルウエアの検出を困難にできるように,PDFファイルに埋め込まれた攻撃コードも柔軟に変更が可能だ。ウイルス対策ソフトの定義ファイルによる検出は苦労を要する。

PDF Exploitの動作

 今回のぜい弱性の動作は容易に確認できる。例えば,簡単なPoC(コンセプト実証用コード)として,次のようなコードを含む攻撃コードをPDFファイルに埋め込むとAdobe Readerは強制終了してしまう。
util.printf(‘%5000f’, 0.0);
これを悪用し,シェルコード(ぜい弱性を悪用する攻撃コードの中核部分)を埋め込むと,攻撃者はAdobe ReaderもしくはAcrobatを介してユーザー権限を奪取できる。攻撃者の支配下にあるサーバーにコネクトバックするシェルコードが埋め込まれた場合は,図1のような動作をすることになるだろう。

図1●PDFファイルのぜい弱性を突く攻撃の流れ
[画像のクリックで拡大表示]

 埋め込むシェルコードによっては,外部のWebサイトから悪意あるプログラムをダウンロード,インストールさせることも可能だ。その場合,OSやアプリケーションが標準設定のままであれば,
「C:\Document and Settings\Local Settings\Temporary Internet Files」
以下に悪意あるプログラムがダウンロードされ,その後「C:\WINDOWS\system32」配下に名前を変えてコピーされる。

 現在リリースされている攻撃コードでは,Metasploit Frameworkと呼ばれるセキュリティ・ツールを使って作成したシェルコードを埋め込むだけで攻撃が成功してしまう。具体的には,Metasploit Frameworkで作成したシェルコードをUTF-16(ユニコード)に変換したものを攻撃コードに挿入し,PDFファイルに埋め込む。

図2●攻撃コードの例
[画像のクリックで拡大表示]

考えられる被害と対策

 実際のところ,既に,このぜい弱性を悪用した不正プログラムが確認されている。PDFファイルの場合,その配布形態が豊富であることが大きな脅威になる。標的型攻撃に悪用された場合のクリック率は今まで以上に高くなるのではないか。

 とりわけ気になったのが、ファイル・サーバーなどネットワーク共有を利用しているような環境だ。様々なファイルが無造作に保存されているため、誰かが誤って悪意あるPDFファイルを保存してしまう可能性がある。さらに、影響度の大きそうなケースとして閲覧すると同時に,ランサムウエア(攻撃者がファイルを人質にとって身代金を要求する際に使うマルウエア)がダウンロードされ,ファイル・サーバー内のOffice文書ファイルが暗号化されてしまった場合,影響度は計り知れない。

 今回のぜい弱性は,Adobe ReaderもしくはAcrobatのアップデートを適用すれば対処できる。ただ,今後も同様の脅威が発生することは十分考えられる。そこで,ぜひ対策として実施してほしいのが,アプリケーション・レベルでの動作の監視。例えば,パーソナル・ファイアウォール(インターネットセキュリティ製品に付属しているものなど)を有効にしておく。これで,仮に悪意あるPDFファイルを閲覧してしまっても,外部のサーバーと通信が遮断されれば被害は受けない。ぜひ,アプリケーション・レベルでの監視が有効になっているかどうか確認しておいてほしい。

 PDFファイルだけでなく,広告用Flashなどに悪性コードが含まれるケースも確認されている。アプリケーションのバージョンをチェックすることを怠ってはいけない。secunia.comのオンライン・スキャナなどを利用して,できるだけ頻繁にチェックする習慣をつけてほしい。

岩井 博樹(いわい・ひろき)
ラック コンピュータセキュリティ研究所 所長
ラックのコンピュータセキュリティ研究所に勤務。IDS/IPS導入設計,コンサルティングなどに従事した後,同社のJapan Security Operation Center(JSOC)にて監視業務に携わる。現在は,セキュリティ技術の研究開発,フォレンジック業務を手掛ける。