昨日(8月28日頃)から、日本の個人サイト界隈で大変な騒動になっています。
発端は、WordPressのフォーラムに投稿されたこんな質問。
サイトが急に文字化けになり、困っております;;
Hacked by Krad Xinと黒の上部ツールバーにあり、サイトが改ざんされてしまったのでしょうか?
WordPress › フォーラム » サイト改ざん?”
【ここまでのまとめ】
アドミンバーに犯行声明つきって、それってひょっとしなくても改竄されてますよね!
このXinと名乗るクラッカーは自分のサイト上、およびFacebookページ上に、今回クラックしたページのリストを掲載しており、それはロリポップサーバーのサイトを中心に4,800件以上にも上るようです。
サイト上には
「動機は愛国心か何か? それも多少はあるが、それよりも単純に楽しみのためにこれを行なった。」「R.I.P lolipop」といった犯行声明も掲載されています。Xinという表記を見るに中華系のクラッカーでしょうか。
標的となったWordPress
- ロリポップサーバー上で動作するWordPress
設置時期、使用プラグイン、WordPressのバージョンなどには関係がない(最新版でも被害報告あり)ので、どうやらサイトを個別にクラックしたものではなさそうです。
サーバーごとに、同居しているユーザーのWordPressが軒並み狙われたのではないでしょうか。
被害内容
- データベースの一部書き換え
- ファイルの改竄
具体的には;
サイトタイトルが『Hacked by Krad Xin』に変わり、上部管理バーにも表示される
ウィジェットにJavaScriptのDocumentwriteコマンドだけを書いたものが設置され、これによってサイトが表示されなくなる
文字コードがUTF-7になり、文字化けする
管理アカウントが追加される
header.phpにコードが追加される
対処法
対処法…といっても対症療法というか、被害にあってからのレストア法です。
不法作成アカウントの削除
→まずはログインして追加された管理ユーザーを削除します
サイトタイトル、犯行声明の削除
→header.phpの改竄部分を削除、「設定→一般」でサイトタイトルを変更
ウィジェットの削除
→JavaScriptが書き込まれたウィジェットを削除
文字コードの修正
→UTF-7になっていたら、「設定」でUTF-8に戻す
(設定項目にない(3.6以降)場合は、Databaseから「wp_options」の「blog_charset」を直接UTF-8に戻す)
その他一般的な予防法
この問題に対して、現時点では原因およびバックドア、クラッキング手法が不明なため、有効な予防法がありません。
ここに上げるのはロリポップ社からも提示された方法ですが、あくまでもWordPressへの直接攻撃に対するセキュリティを高めるための汎用的な方法です。
やらないよりは、やっておいたほうが大分ましです。(ロリポップサーバーでなくても)
- パスワードは大文字小文字数字記号を混ぜた「強力」なものに変更
- admin、ドメイン名など、類推されやすいユーザー名を変
- wp-config.phpのパーミッションを[400]に変更
- .htaccessのパーミッションを[404]に変更
- wp-login.phpへのIPレベルでのアクセス制限
- .htaccessに以下の記述をします
<Files wp-login.php> Order deny,allow Deny from all Allow from 111.222.33.44 #自分のIPを入れます </Files>
発展的なセキュリティ対策
・プラグインWordPress › Exploit Scannerで、コアファイルに改竄がないか調べます。
・プラグインWordPress › Crazy Bone で、WordPressへのログインを監視します。
・プラグインWordPress › Limit Login Attempts で、ログイン試行回数を制限します。
・FTPの使用を辞める →SFTPかSSHを使いましょう
犯人が用いた手法は?
しかし、4,800件もの甚大な被害数が、同時に出ているのを見ると、どうも個別にブルートフォース攻撃をして乗っ取ったとかそういう感じではなさそうに思えます。
ロリポップ!社によると、サーバー自体への侵入の形跡はない、とのことなので、何らかの方法でwp-config.phpを盗み見て、そこを足がかりにしたんじゃないか、と推測します。
追記:原因が突き止められた?
2013/08/29 22:40のロリポップからの発表で、原因は「WordPressのプラグインやテーマの脆弱性」だったこと、被害サイトが8,438件にのぼることが発表されました。
[2013/08/29 22:40 追記]
継続対応しております「ロリポップ!レンタルサーバー」への攻撃に関して、現時点で調査により判明した事実および対策についてご報告いたします。[対象のお客様]
「ロリポップ!レンタルサーバー」のユーザーサーバーにおいてWordPressをインストールされている一部のお客様(8,438件)[現在までに判明している被害状況]
WordPressのプラグインやテーマの脆弱性を利用し、不正なファイルがアップロードされました。
またそのファイルを利用し、wp-config.phpの設定情報が抜き出されることにより、データベースの書き換えが行われ、WordPressサイトが改ざんされました。[対策について]
1)サーバーの設定を変更しセキュリティを確保するため、やむを得ずCGIやPHPで旧来のフルパス指定を利用できないように変更いたしました。なお、この変更の影響によりプログラムが正常に動作していないお客様のアカウントについては順次対応を行い、対象となるお客様には完了後メールにてお知らせをいたします。2)外部からの攻撃を防ぐためにロリポップ!ユーザーサーバー上にあるすべてのwp-config.phpのパーミッションを「400」に変更しました。
(8月29日 16時13分完了)
新着情報 / お知らせ – レンタルサーバーならロリポップ!”
いずれにせよ、状況はまだ予断を許しません。
また、ロリポップの緊急対策としてサーバーのフルパスが変更されたため、WordPressだけではなく、XOOPSやNucleusなどPHP・MySQLベースのCMSに不具合、という二次被害も発生している模様です。
引き続きこの問題について注視していきます。
(実は趣味のサイトでいくつかロリポップにおいているサイトがあるのですが…。幸い被害を免れています。)