Wordpressハッキング事件は身近にあった件
ご安心下さい、このサイトではないところで起きた事件なのです。
ロリポップの事件もそうですが最近Wordpressを狙ったハッキングが多いですね。
はい、完全に他人事だと思っていました。
復旧作業をする前にバックアップとってね。
ハッキングに気づくまでの経緯
お客様が管理しているサイトなのですが
wordpressをインストールしているレンタルサーバーから連絡があったそうです。
「有害なサイトだからブロックしました。ドメイン削除するか有償サポートだよ」
というお話しだったとか・・・
レンタルサーバーから来たメールを見せて頂くと
iflame-infというマルウェアらしい。
ググったけど感染源とかよくわからないよー
英語読めないよー\(^o^)/
googleさんにもブロックされてるし私が常用しているchromeさんもブロックしてる状態。
まあどっちもgoogleだけどさ。ちなみにfirefoxでも赤いあの表示に・・・
攻撃サイトとして報告されています!っていうやつですね。
(IEでは表示できちゃうっていう恐ろしい事態)
FTPでアクセスしようにもレンタルサーバー様に当該ドメイン部分のアクセス権を剥奪されている模様
うーん、もうできることねぇな!
と思って同サーバーで管理しているもうひとつのwordpressをなんとなく開いてみる。
ハ ッ キ ン グ さ れ て る
ぇ、これのせいなの?
被害範囲と症状
googleウェブマスターツールのサイト診断によると
幸い、誰もこの件で感染してしまった人はいないとの表示でした。
- 海外のIPアドレスで驚きのログイン試行回数
- テンプレートタグの全部にbase64でデコードされたコードが追加されている
eval(base64_decode(“CmVycm9yX3JlcG9ydGluZygwKTsKJHFhe(中略)0KfQ==”)); include (TEMPLATEPATH . ‘/copyright.php’); ?></div>
エンコードして見てみたら全然知らないドメインにつなぎに行ってるー:(;゙゚’ω゚’): - テーマファイルのディレクトリにいかにもそれらしいphpファイルが作られている
正確なファイル名は忘れたけど半角英数ランダムっぽいもの+index.phpとか。 - uploadsディレクトリ、その下の月毎のディレクトリに本来無いはずのindex.phpが作られている
- ほぼ全ての投稿した記事に勝手にリンクが追加されている
(display:none;なので表示はされていない)
<div style=”display:none;”><a href=”海外の語学学習サイトとかのアドレス”>宣伝めいた英語の文章</a></div>
対処したこと
- 不正に書換えられたphpファイルの修正
上記のエンコードされた文字列を含む記述を全部削除 - 不正に生成されたphpファイルの削除
元々存在しなかった勝手に生成されたphpファイルを削除 - ファイルのパーミッションの見直し
もうね、555にしたった。
※ファイルの所有者も編集できなくなるので編集するときは事前にFTPクライアントでパーミッション要変更 - 不正ログインされたWordpressのログインアカウントを削除、パスワードの強化
アカウント名もパスワードも複雑な文字列に変更しました - wp-login.phpにアクセスできるIPアドレスを制限
wp-login.phpのあるディレクトリの.htaccessに以下を追加しました。<Files "wp-login.php"> order deny,allow deny from all allow from xxx.xxx.xxx.xxx(管理者のIPアドレス) </Files>
- wordpressログイン画面にBasic認証をかける
こちらも.htaccessでいいかと思ったのですがプラグインで対応しました(後述) - 投稿記事に不正に追加されたタグを削除
DreamWeaverの一括置換で削除しようかとも思ったのですが便利なプラグインがありました(後述) - googleにサイトの再審査を申請
最後にgoogleウェブマスターツールから再度審査してほしいですっていうリクエストを送信!
役に立ったサイト・プラグイン
[wp] WordPressテーマのfunctions.phpに仕込まれるワームについて
WordPressがマルウェアに感染したので、経緯と対処法の備忘録
私が紹介した件と同じ症状ではありませんが大変参考になりました。ありがとうございます。
Password Generator
任意のパスワードを大量に生成してくれるジェネレーターです。
数字、小文字、大文字、記号などを含むか選べて好みの強度で生成してくれるのでありがたい。
WP BASIC Auth
おなじみのプラグインですが管理画面にベーシック認証をかけられます。
Search Regex
すべての記事から文字列を検索、置換できます。正規表現も使える!
不正に追加されたタグを消すのに楽できてよかった!
Theme Authenticity Checker (TAC)
テーマファイルに不正な記述がないか簡単にチェックできるプラグイン。
しかし精度はそこまで安心できるものでもないとか・・・。
Crazy Bone(狂骨)
すごい名前ですがWordpressへのログイン履歴を確認できます。
海外のIPアドレスで怒濤のようにアクセスされるとこうなります。
左上のユーザー名を「不明」にすると わーこんなにいっぱいあくせすためされてたー
おわかりいただけるだろうか 右上のページネーションが・・・
Simple Login Lockdown
同一IPアドレスからの連続したログイン試行回数を制限できます。
最短で30分ログイン不能にできます。
ただ不正アクセスしようとする人はIPアドレスも変えてチャレンジしにくるよね
でも何もしないより絶対効果的!
まとめ
更新する時の手軽さ・素早さは損なわれますがIPアドレス制限は大事だね!
今回の件はテーマファイルの脆弱性とセキュリティ対策が問題だったのかと思います。
PVが低いサイトだろうがブルートフォースアタックの対象になり得るので注意しようと思います。
ネットオウル系のサーバーとかXSERVERは海外のIPアドレスを制限できたりするんですよね。
ただ国外IPアドレスを制限できないサイトもあると思うので対策の仕方には悩まされるなぁ。