昨日から、ロリポップ、interQのサーバで動作するWordPressを標的とした、
大規模な改竄事件が多発しています。
憎たらしいことに、首謀者はFacebookページや専用サイトで改竄結果のリストを報告しています。
(というか、予告していたようです)
上記レンタルサーバは第一弾なだけで、他サーバのサイトも勿論標的になります。
★おそらくIPの特定しやすい、かつ(暗号化されず危険な)FTP転送を未だに使用できるサーバが標的になってると思います。
普段私はJoomla!開発がメインなので、今回の「Hacked by Krad Xin」の件、先ほどまで知りませんでしたが、
日が変わる頃に、前回別件対応したお客さんからメールで連絡が来て、まあ対応は早々に終わり、
現在元の仕事中。。。
今時FTP接続を許可してるサーバなんて。。。 とかロリポップに対する不満もあるわけですが、
とりあえずは対処しないとということで、早々に対応しました。
※以下を参考にした作業に伴う結果に対する責任は持てません。
<まず>
テーマのカスタマイズで行う、「タイトル」「キャッチフレーズ」に対応するレコードが直接改竄されたと思います。
あとは、サイトの文字コードを定義するレコードが「UTF-7」にされていました。
<症状>
初期症状はサイトにアクセスするとフロントページは
Warning: mb_regex_encoding() [function.mb-regex-encoding]: Unknown encoding "UTF-7" in ・・・
の表示でした。
<原因>
DBのxx_optionsテーブルの「charset」がUTF-7に書き換えられていたため。
<対処>
1)とりあえずテーマのfunctions.phpでmb_regex_encoding()を利用している箇所をコメントアウト
例) if (function_exists('mb_regex_encoding')) mb_regex_encoding(get_bloginfo('charset'));
=>サイトは表示されるようになりました。
2)管理画面にログインし、「一般」-「表示設定」で「UTF-7」をUTF-8に設定し直し。
3)1)の文のコメントアウトも元に戻しました。
4)ほか、サイトのタイトル、キャッチフレーズ、ウィジェットの設定を元に戻しました。
<根本原因?(改竄の流れ予想)>
1)FTP(暗号化してないファイル転送)データがハックされ、パスワードが盗まれてるのかなと思います。
=>★WP管理画面のパスワードを16文字の英数字記号に変更したばかりのサイトが改竄され、さすがにこれが
すぐに破られるとは思えないので。しかも4800サイト全てで見破られやすいパスワードを使っていたとも思えませんし。。。
2)FTPでサイトのファイルにアクセス可能な状態になった
3)改竄プログラムが仕込まれた。
=>wp-config.phpを読み込みさえすれば、WordPressの管理者アカウントが分からなくても、簡単にDB改竄可能です。
4)WordPressのデータベーステーブルはとても単純な構造で、MD5化されてるレコードも少なく、改竄箇所の特定も容易です。
5)また、管理者アカウントでログインしていない状態で、WordPressの関数が全部実行できてしまうのも根本原因かと。
※不明な管理者アカウントが追加されていた例もあるので、手作業による犯行もあったかもしれません。
とりあえず、古いFFFTPを使っている場合は、「ロリポップ FTPS」で検索して、最新のFFFTPで暗号化した上で作業することが大事かと思います。
<重要な対処だと思うこと>
・サイトのバックアップ
・ロリポップ管理画面でDBのパスワード変更
・FTPSを使ってwp-config.phpのDBのパスワード変更
・wp-config.phpのパーミッションを404に(実際FTPアカウントのパスワードが乗っ取られていたらあまり意味なし)
・wp-config.phpのセキュリティートークン文字列を変更
・WordPress管理画面ログインのIDを変更(プラグインもあります)
・同様に、管理画面ログインのパスワードを、最低8文字以上、記号を含む一般単語以外のものに。
=> 「パスワード強度チェッカー」でぐぐってみてください。
※上記を参考にした作業に伴う結果に対する責任は持てません。
以上です
なお、今回の障害、範囲が広いですし、本業のほうが忙しいので既存のお客様以外の対応はしておりません。
追加情報があれば、このサイトかTwitterでつぶやくかもしれません。