JPGファイルを隠ぺいに利用するWebサーバ専用バックドア「BKDR_ZZPEG」の被害を日本で確認

「リージョナルトレンドラボ(RTL)」では、新しい Webサーバへの攻撃手法である「BKDR_ZZPEG」の被害が日本国内でも発生していることを確認しました。RTL への問い合わせでは、特に 7月下旬からこの「BKDR_ZZPEG」関連の問い合わせが顕著になっています。この「BKDR_ZZPEG」は、PHP を使用している Webサーバ上でバックドアとして機能する不正プログラムです。特徴的な部分として JPG画像ファイルを自身のコンポーネントの隠ぺいのために利用します。攻撃者はこの不正プログラムを Webサーバへ侵入させることにより、外部から Webサーバを遠隔操作することが可能となります。「BKDR_ZZPEG」はあくまでも Webサーバに対する遠隔操作を実現するバックドア型不正プログラムです。クライアント側で検出されても直接の脅威は無いことに注意してください。

■Webサーバを狙う新しい脅威、「BKDR_ZZPEG」とは?
「BKDR_ZZPEG」は非常に特徴的なバックドア型不正プログラムです。このバックドアは、サーバサイドのスクリプト言語である PHP を使用した Webサーバ上でのみ機能します。「BKDR_ZZPEG」は 2つのコンポーネントからなります。1つは PHP実行環境の一部として機能する不正モジュールです。攻撃者は何らかの方法で Webサーバに侵入し、PHP実行環境を改ざんしてこの不正モジュールを組み込みます。

もう 1つのコンポーネントは、非常に特徴的なことに、JPGファイルです。この JPGファイルは単体では活動の危険はありませんが、Exifヘッダ内に不正スクリプトを保持しています。Exif とは、「Exchangeable image file format」の略称で、デジタルカメラの写真専用のメタデータを含む画像形式です。Exif では画像以外に画像データのサイズや画素数、圧縮の種類などの情報を保管できる領域が設けられています。攻撃者はこの Exif の領域を、不正スクリプトの存在を隠ぺいするために悪用しました。

「BKDR_ZZPEG」のコンポーネントであるJPG画像ファイルをメモ帳で開くと以下のように表示され、一見、判読不可能な文字が羅列しています。

図1:「BKDR_ZZPEG」であるJPG画像ファイルをメモ帳で開いた場合の表示
図1:「BKDR_ZZPEG」である JPG画像ファイルをメモ帳で開いた場合の表示

しかし、この JPGファイルのプロパティを参照すると、Exif情報内の「カメラの製造元」および「カメラモデル」欄に以下のようなコードが記載されていることが判ります。

図2:「BKDR_ZZPEG」である JPG画像ファイルのプロパティ表示
図2:「BKDR_ZZPEG」である JPG画像ファイルのプロパティ表示

上記のカメラモデル欄に保持されているコードはエンコードされていますが、復号すると、以下のようになります。

図3:コードの復号結果
図3:コードの復号結果

PHP実行環境に組み込まれた不正モジュールは、以下のように問題の画像ファイルから Exif情報を取得する機能を持っています。

図4:JPGファイルのExif情報を取得するためのコード
図4:JPGファイルのExif情報を取得するためのコード

「$exif[‘MAKE’]」および「$exif[‘Model’]」には、それぞれ「カメラの製造元」、「カメラのモデル」の値が格納されています。これにより、この JPGファイル内に埋め込まれた不正なスクリプトが読み込まれます。ここで注目すべきは、「カメラの製造元」欄に記載されている「/.*/e」です。これは、置換後の文字列を自動的に実行する PHP のオプションとなります。このため、改ざんされた Webページの不正モジュールが画像ファイルの Exif内に秘められたコードを取得すると、「カメラのモデル」に記載されているスクリプトが無条件で実行されてしまうことになります。

「カメラのモデル」中に記載されている「$_POST[“zz1”]」は、HTTP POSTメソッドで現在のスクリプトに渡された変数「zz1」の連想配列です。これにより、「BKDR_ZZPEG」は、改ざんされた Webサーバ上で、HTTP POSTメソッドを待ち受けていることになります。攻撃者は、改ざんされた Webサーバに HTTP POSTメソッドでコマンドを送信することで「BKDR_ZZPEG」が侵入した Webサーバ上でコマンドを実行させ、遠隔操作することが可能になります。

■「BKDR_ZZPEG」:攻撃の背景にある攻撃者の狙いは?
このように、「BKDR_ZZPEG」の実行には、その準備として Webサーバ上のシステムを改ざんする必要があります。トレンドマイクロでは、今回の「BKDR_ZZPEG」の被害について共通点を見出しています。トレンドマイクロが確認した被害環境の Webサーバでは、「コンテンツ管理システム(CMS)」の「Joomla!」の古いバージョンが多数使用されていました。このことから、改ざん手法として、「2013 年第2四半期セキュリティラウンドアップ」においても言及したように、サーバ上で使用されているミドルウェアに存在する脆弱性への攻撃が関連している可能性が高いものと推測できます。

また、単純に遠隔操作を実現するためには、単体で動作するバックドア型不正プログラムを設置する手もあります。なぜ PHP の実行環境を利用する「BKDR_ZZPEG」のような特殊な手法をとるのでしょうか? そこには「攻撃を隠ぺいし、発覚を防ぐ」目的があると考えられます。単体でさまざまな遠隔操作を実現するバックドア型不正プログラムは、セキュリティベンダによって検出対応される可能性が高いものです。また、バックドア型不正プログラムのための通信が発生するので、不審な通信として気付かれる可能性もあります。この点、「BKDR_ZZPEG」では遠隔操作のコマンドは通常の HTTPプロトコルで送信できるため、Webサーバの通常の通信に紛れさせることができます。「BKDR_ZZPEG」の不正モジュールの機能は、大まかに言って JPGファイルの Exif情報を読み込むだけであり、そのようなモジュールが PHP の実行環境に紛れていたとしても、Web管理者には異常とは判断しにくいでしょう。また、不正スクリプトの本体は、JPGファイルのExif情報の領域に隠すことで露見を防いでいます。それも、新たな JPGファイルをアップロードするのではなく、既に Webコンテンツとしてサーバ上に存在した JPGファイルの Exif情報にスクリプトを注入することにより、Web管理者の監視を免れようとしているものと推測されます。

現在判明している範囲では、「BKDR_ZZPEG」の攻撃は、今年非常に多く発生している他の Web改ざん事例とは異なり、Web閲覧者に被害を与えるものではありません。Webサーバ自体が継続的に遠隔操作されてしまうものです。現状その後の攻撃者の狙いは明らかになっていませんが、侵入した Webサーバを足掛かりとしてより内部への侵害、例えば顧客データベースからの情報窃取など、を狙っている可能性があります。Webサイト管理者は、こうした脅威を防ぐために管理用アカウント情報の管理を徹底すること、サーバ上で使用しているミドルウェアの脆弱性対策を徹底すること、特に CMS を使用している場合、最新版の更新を怠らないことを強く推奨します。また、万が一侵入されてしまった事態に備えて、サーバの変更監視のような改ざんの事実になるべく早く気づき、対処できるようにするための対策を導入することをお勧めします。

トレンドマイクロ製品をご利用のユーザは、弊社のクラウド型セキュリティ基盤「Trend Micro Smart Protection Network」によって守られています。「ファイルレピュテーション」技術により、上述の不正プログラム「BKDR_ZZPEG」を検出し、削除できます。

また、サーバ向け総合セキュリティ対策製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」ではサーバに存在する脆弱性への遠隔攻撃を検知/遮断する「仮想パッチ」機能、また、サーバ上のコンテンツやシステムに対する「変更監視」の機能を提供します。

※記事構成:岡本 勝之(シニアスペシャリスト)および船越 麻衣子(Technical Communications Specialist)