WordPressで友人たちと運営しているサイトが、改ざんされてしまった。
人間て、ヒトゴトと思っていたことが我が身に起きて初めて、叫ばれていた危険性や対策の甘さに気付くんだなあ。情けないけれど。
不幸中の幸いであったのは、改ざんに比較的早く気が付けたこと。そして、改ざんの修正がすぐにできたこと(翌日朝に気が付き修正、翌々日には修正完了、Google警告も解除)。
この件でまず最初に言いたいのは、もし運営仲間がみなIEを使っていたら、サイトの改ざんに気付くのはずいぶん遅れただろう、ということ(改ざんされたまま数か月が経過しているビジネスサイトもある)である。改ざんされた当該サイトにアクセスして、不審なファイルを知らぬうちにダウンロードしてしまった人は少なからずいたようだけれど(Googleの診断では9ユーザーのうち5ユーザー)、以下に述べる理由からも、おそらくこの人たちのブラウザもIEであった確率が高い。彼らのPCのセキュリティが、ウィルスを検知・駆除、あるいは不審な動きをブロックしてくれたことを祈るばかりである。
ちなみにこれは、4月末から問題化していたIEの脆弱性とは関係のないことです。
1. Firefox の警告
仲間の一人からあわてた声で電話。
Firefoxでサイトにアクセスすると、トップページから管理画面に至るまでの全てのページに以下の警告文が出る、IEでは出ない、という。
(この時点で他のメンバーへ状況報告第一報を送る)
調べた結果、これはFirefoxがGoogleの検知情報に基づいて警告を表示し、アクセスブロックを行ったものであった(Chromeも同様の警告とブロックを行っているらしい)。IEはそれを行っていないためアクセスできてしまう、ということがわかった。
最初はGoogleの誤診断も疑ったけれど、それはあまりないらしい。ということはほぼ確実に、私たちのサイトは警告文の通り、攻撃サイトと化していることになる。
ここで、右下の小さな文字のリンク、「この警告を無視する」をクリックすると、サイトにアクセスは出来る。が、もし閲覧中にどこかのサイトでこの画面に出くわしたら、決してここはクリックせず、この警告画面がでなくなるまでそのサイトにはアクセスしないようお勧めする。そしてもう一つ、せっかくFirefoxが警告してくれているのだから、間違っても私たちのようにIEではどうだろう、などと確かめてはいけない。
2. Google で調べてみた
Googleにアカウントを持っていると、ウェブマスターツールでサイトの状態を検証できる。先のFirefoxの警告画面の、「このサイトがブロックされる理由」をクリックしてたどっていく。検証するにはそのサイトを登録しなければならず、まずサイトの所有者であることの確認が求められる。Googleからダウンロードした確認ファイルをFTPでアップするとすぐに認証され、サイトの状態を検証できるようになった。
(ちなみに、私はウェッブマスターツールに自分のサイトをいくつか登録していたんだけれど、まともに利用したことがなかった。今回初めてこんなふうに使うのかと、そのありがたみがわかった。)
すぐに攻撃サイトとの警告文が出て、詳細をクリックすると、”マルウェアコードインジェクション”とある。これは、検出された不審な Javascript コードがマルウェア(悪質な)コードで、インジェクションというのは、サイトの脆弱性から侵入して不正なコードを挿入する攻撃のことをいう。
Googleによると、このメッセージは「ユーザーをサイトからスパム サイトにリダイレクトしているという意味」とある。リダイレクトとは自動でページを移動させる、ということである。
ハッキングのタイプ: コード インジェクション
コード下部にはこのコードが検出されるサイトページの一覧もあり、データとしてダウンロードもできる(Excelデータは文字化けするけれど、Googleドキュメントであれば文字化けしない)。
3. FTPでサーバーのファイル状態を確認、
WordPressのscript、header.php に書き込んでたよなあ、とFTPで接続してみる。と、header.php の更新日時に心当たりがなかった。これがGoogleのマルウェア検知の日時とも一致していたので、このファイルをダウンロードし、開いてみたところ、案の定上記のscriptが書き加えられていた。
取り急ぎ、親テーマと子テーマの header.php両方を修正し、パーミッションを確認。
実はパーミッションの緩さに自覚があった。Wordpressの管理画面からphpファイルにアクセスする際、パーミッションを緩くしないと更新が出来ないのだ(これは共用サーバー(WADAX)の設定のため。他のサーバーでは644で更新ができるのに、WADAXではできないのだ)。このファイルを管理画面からいじった後、パーミッションを元に戻していなかったのだ。あまりに初歩的なミスではある。
4. レンタルサーバーに連絡、PCウィルスチェック
WADAXに電話してみると、あいにく日曜日だったため技術者がおらず、検証は明日になるとのこと。
念のためWordpress管理画面のパスワードとFTP接続のパスワードを変更。
WADAXには、今回の経過とGoogleウェブマスターの検証結果、上記作業の内容をメールでも書き送っておく。
他のメンバーに状況説明とPW変更の報告(第二報)、あわせてPCのウィルスチェックを促す。誰かのPCがウィルスに感染してパスワードが抜き取られたという可能性もゼロではない。もしそうなら、パスワードを変更してもまた抜き取られてしまうので。
続いて、サイトトップページに状況をお知らせする記事を掲載(本当は改ざんに気が付いた時点でサイトを閉鎖すべきであるが)。
翌日の検証報告によると、適用テーマだけでなく、デフォルトで入っていて利用していないテーマ三つに関しても、同様にheader.php が改ざんされていたことが判明、不要なものはテーマディレクトリごと削除する。
WADAXによると、書き変えられたファイルは上記header.phpだけである、ファイルパーミッションが緩かったためであろう、パスワードは問題ないようであり、FTP接続やWordpressの管理画面への不正侵入はなかったようである、とのことであった。
5. チェック後Googleに警告解除の申請
この際なので、停止状態でおいてあった不要なプラグインも削除し、ファイルパーミッションをサーバー推奨(WADAXの場合、フォルダは701か755、ファイルは644)のものか、それ以下に変更。特に.htaccess と wp-config.php は厳しめに変更し、Googleアカウントのウェブマスターツールから、修正過程を具体的に書き込んで再検証を申請。
ウェッブマスターツールを確認すると、5時間ほどで、このサイトは問題なしという状態になった。Firefox の「攻撃サイト」との警告も出なくなった。予想以上に早い対応でびっくり。
6. WordPressセキュリティーを見直す
今回の改ざんはファイルパーミッションの甘さが原因で、Wordpress管理画面へのログインパスワードの漏えいはなさそう。それは安心材料ではあるけれど、念のためにセキュリティー対策を見直した。
●パスワードを複雑なものに変更
●不正侵入チェックのためにプラグインCrazy Boneを導入
導入してから数時間で管理画面への不正アクセスが200件規模。
不明なユーザーアクセスのログインエラーを見ると、Wordpressインストール時にデフォルトでユーザー名となるadminがダントツに多いけれど、次はサイト名であった。でもユーザー名って、簡単にわかっちゃうんだよね。そのためか、各ユーザー名でのログインアクセスも同様にかなり多い。
●ユーザー名を取得できないようにする ? (検討中)
これに関してはfunction.phpにコードを追加する必要がある。ユーザー名は仕方がないとあきらめ、パスワードのみで管理すると割り切るかどうか。
・WordPressで「ブルートフォースアタック」や辞書攻撃にあった時にやってみたこと。
上記サイトを参考に、当サイトのfunction.phpで試してみたところ、見事にユーザー名は取得されないようになった。これをやっておけば余計な心配の種はひとつ減るね…。
●緊急避難場所を設置
万一またこのようなことがあったときのために、別の場所に緊急避難ブログを設置。サイト閉鎖の際、503リダイレクトで飛ばし、状況のアナウンスやメンバーの連絡場所として利用することにする(これは無料ブログサイトでいいだろうということで、Wordpress.com にブログを新規開設)。
●自動バックアッププラグインを導入
最低ブログ記事のエキスポートをメール添付で送ってくれるように設定。
●管理画面へのアクセス制限強化 ? (検討中)
管理画面へのアクセス制限で一番厳しい設定は、.htaccessによるIPアドレスの制限 だろうか。これだとメンバーのIPアドレスからのみ管理画面へのアクセスが可能となる。
また、Basic認証やURL変更などのプラグインを利用するという手もある。
ただ、現状でそこまでやる必要はないような気もするので、今回は未対応。こういう方法もあるということは頭の隅に置いておこうと思う。
[参考]
・Wordpress Codex FAQ/ハッキング・クラッキング被害
7. 授業料を払って学習したこと
●「自分だけは大丈夫」はない。
弱小個人サイトであっても「攻撃サイト化」という利用価値はあり、例外ではない。
●ブラウザはFirefoxかChromeを利用する。
改ざんや不正侵入には少しでも早く気付く必要があるが、IEでは気付けないため。サイト訪問者が親切に教えてくれる場合もあろうが、企業の場合などはとくに、不正侵入されたという脇の甘さに加えて、さらに不名誉が増すことになってしまう。
●セキュリティ対策
・監視 ➾ Crazy Bone などで不正侵入をチェックし、ユーザー名やパスワードを見直す
・防止 ➾
ファイルパーミッションを適切に
ユーザー名、パスワードを想定されにくいものに変える
ユーザー名がわからないようにfunctions.php を修正(記事内参照)
管理画面のURLを変更するプラグインを入れる
可能な場合、管理画面へのアクセスをIPアドレスで制限する(.htaccessに記述)
ユーザーのIPが固定であり、そのIPアドレスからしか投稿しない場合は許可IPを記入
管理画面へのアクセスを制御するプラグインを入れる
DBやブログのバックアップをとっておく(プラグインを利用すると簡単)
・最悪の事態を想定しておく ➾
不正侵入と改ざんが判明したら対応は以下の順序で
①サイトを一時閉鎖、あるいは、503リダイレクトで別アドレスに誘導し、状況をサイト訪問者にアナウンスする
②攻撃された脆弱性の調査・除去、改ざんの調査・修正
ユーザーのパソコンのウィルスチェック
パスワードの変更
サーバーへの連絡
Google等を使って改ざん箇所を調べ、修正可能な場合は修正
簡単に回復が出来そうもない場合、サーバーの再構築を覚悟する
サーバーから全てのファイルを削除、WP,MTなどの再インストール、バックアップデータの再アップロード、調整など。また、それらが不可能な場合(時間がかかる場合)有料の専門サービスも検討する。
コメント