Endpoint Protection

 View Only

AES-256 で保護された PDF マルウェア 

Dec 26, 2011 03:43 AM

Adobe Systems は、2011 年 12 月 16 日、ゼロデイ脆弱性を修正するために Windows 版 Adobe Acrobat および Reader 9.x のセキュリティアップデートを公開しました。最近 Vikram Thakur が報告したとおり、PDF のこの脆弱性を利用して侵入先のコンピュータに Backdoor.Sykipot を投下するゼロデイ脆弱性攻撃が発生しているためです。

シマンテックでは、この同じ脆弱性を使った PDF マルウェアの亜種が存在することを確認しました。今回の PDF マルウェアは、PDF の仕様に固有で見られる暗号化手法を利用しています。『Portable Document Format Malware』と題したホワイトペーパーにも書いたように、PDF マルウェアで使われている暗号化手法は、RC4 から AES に変更されています。AES では、暗号化キーの長さが 128 ビットと指定されていますが、この亜種は暗号化手法として AES-256 を採用しており、キーの長さは 256 ビットです。PDF で AES-256 を使う暗号化手法の仕様は、ISO32000 版の PDF 拡張仕様であり、Adobe の Web サイトから PDF 拡張文書ファイルをダウンロードすることができます。PDF 文書で暗号化キーの作成に使われるアルゴリズムが RC4 や AES のアルゴリズムから変更されたほか、拡張を通じて新しいキーワードを使うことができます。

次の図は、文書を復号するパラメータが格納されたオブジェクトです。"/AESV3" は、PDF 文書で文字列とストリームの内容を AES-256 アルゴリズムで暗号化するように指定しています。

"/U" オプションは、ユーザーパスワードに基づいて文字列を保持し、RC4、AES、または AES-256 を使って文書の内容を暗号化するときに使われますが、AES-256 の暗号化を選択した場合には、その長さが 32 バイトから 48 バイトに拡張されます。この例では、"/U" の長さが 127 バイトになっています。これは、PDF 仕様の解釈方法を利用して、ウイルス対策スキャナの PDF パーサーをくぐり抜けるために細工されているからです。AES-256 は最初の 48 バイトを使うので、文字列の残り、つまり 0 を充填された長さ 79 バイト分は無視されます。

このマルウェアは、Adobe Acrobat と Reader の U3D に存在するメモリ破損の脆弱性(BID 50922)を利用していました。この脆弱性は U3D タイプのデータに影響し、PDF 文書は次の図に示すように U3D データをストリームとして保持しています。

この U3D オブジェクトには "/Filter/FlateDecode" というオプションもあり、このオプションでは DEFLATE 圧縮データ形式を使ってストリームデータが圧縮されることを指定します。したがって、U3D データを調べるためには、AES-256 で暗号化されたデータを復号して圧縮解除しなければなりません。

シマンテック製品は、これらのサンプルを Bloodhound.Exploit.439 として検出します。以前からの脆弱性を利用し、AES-256 で暗号化されている PDF マルウェアも検出されます。お客様は、ウイルス定義を最新の状態に保つようにしてください。Windows 版 Adobe Reader と Acrobat のバージョン 9.x をお使いの場合は、できるだけ速やかに最新バージョンにアップグレードしてください。また、Adobe Reader X の保護モードや Adobe Acrobat X の保護されたビューを利用すれば、この脆弱性を狙っている現在の悪用は実行されません。

 

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads