[WordPress] サイト改ざんの被害にあったので行った対処・対策方法などについてまとめました
先日 WordPress で運営しているサイトが改ざんの被害にあってしまいました…。どのような改ざん被害だったのかと今回行った対処・対策方法などについてまとめました。
今回あった改ざんは一見して分からないように改ざんされていたため、他にも気づかないうちに被害にあっている WordPress サイトがあるかもしれません…。
どのような改ざんだったのか
一見通常通り表示されているのですが、ソースコードをみると以下の画像のようなコードが投稿記事内に書き込まれていました。(クリックで大きい画像をみることができます。)海外のiPhoneアプリの販売サイトなどへのリンクですが、CSS で画面には表示されないように設定されています。
実は以前もサイト改ざんの被害にあったことがあり、その時はデータベース側へ書き込まれるというものだったので、今回もまた同じようなことが起きたのかと思いデータベースを確認してみました。
(今回も同じサーバーでの出来事でしたが、サーバー会社へ問い合わせた結果サーバー側には問題がないとのことです。)
データベース内 wp_posts テーブルの post_content の項目へ不審なコードの書き込みがあったのですが、リビジョンデータや固定ページの部分には書き込みがなく(post_content にはリビジョンデータなどがゴチャゴチャに入っています)、公開済みのデータにのみ、しかも記事によってコードが挿入されている位置がバラバラという不思議な感じでした。
その辺から以前のような機械的なものでなく、もしかしたらブルートフォースアタックによりログインされて投稿画面から書き込まれたのかな??と思いました。結局どういう経緯で書き込まれたのかは不明ですが…。
改ざんされた WordPress の状況
結果的に改ざんされてしまったんですが、セキュリティはある程度は意識していたので以下のような状況でした。
- 最新の WordPress へアップデート済み。
- プラグインは Contact Form 7 と Jetpack、WP Multibyte Patch のみであった。(よく分からないプラグインは入れていない)
- 本体はサイトアドレスとはちがうディレクトリへ置いていた。(管理画面がhttp://ドメイン/wp-login.php ではない)
- admin ユーザは削除してある。
- パスワードは15文字程度に設定。
- サーバーのパーミッションの変更。
- WAF(ウェブアプリケーションファイアウォール)をオンに設定。
- サーバーへの接続は SSL で行っていた。
など…。
改ざんサイトへの対処と今後の対策
改ざんサイトへは以前の時の対処「WordPress › フォーラム » サイト改ざん?」を参考に以下のように対処・対策を行いました。
1. 不審なタグを削除
投稿内に書き込まれていたタグを削除しました。
2. コアファイルが改ざんされていないか確認
コアファイルが改ざんされていないかは Exploit Scanner プラグインで確認することができます。
Exploit Scanner プラグインの使い方は以下のフォーラムで解説されています。
スキャンが終わったら「Location / Description」の項目に「Modified core file」と表示されている箇所を確認します。以下のように英語が日本語に訳されている部分が「Modified core file」と表示されるのは問題ありません。
3. ID とパスワードを変更
WordPress の ID を変更し、パスワードをもっと複雑なものへ変更しました。
4. アクセス制限をかける
今後のブルートフォースアタック対策としてログインページへ海外IPアドレスからのアクセスを拒否するようにしました。
この方法は以前の記事「ログインページ(wp-login.php)で海外IPアドレスからのアクセスを拒否する」にまとめてあります。
5. FTP パスワードを変更する
どういう経緯で書き込みが行われたのか不明なので、FTP のパスワードも念のため変更しておきました。
6. テーマファイルの復元
テーマファイルを改ざん前のバックアップより復元します。
ひとまず、以上のことを行って対処と今後の対策としました。
以下、BizVektorの Kurudrive(@kurudrive)さん、今村だけがよくわかるブログの bouya Imamura(@s56bouya)さんに教えて頂いた部分を今後の対策として追記しました。
7. WordPress のログインの履歴をとる
ログインを試みるような不審な形跡がないかを「Crazy Bone 」プラグインで確認することができます。
8. 管理画面からテーマ・プラグインの編集をできないようにする
万が一ログインされても管理画面からテーマ・プラグインファイルを改ざんされることを防げます。wp-config.php ファイルの適当な場所へ以下のコードを記入すると、管理画面からの書き込みを無効にできます。
define('DISALLOW_FILE_EDIT',true);
9. 管理画面全体に BASIC 認証をかける
管理画面全体に BASIC 認証をかけておけば、管理画面のどのページへアクセスしても二重ロックをかけることができて安心です。
BASIC 認証のかけ方は、過去の記事「WordPressのログイン画面にBasic認証をかけて二重ロックする」の中で説明しています。
上記の記事ではログイン画面にたいしてかけているので、.htaccessファイルに「<Files wp-login.php></Files>」の記述がありますが、管理画面全体にかけるならこの部分は不要になり、.htaccessファイルを wp-admin フォルダへ入れればよいです。
プラグインもあるようです。
ここまで行うとかなり強固なガードとなります!二重三重の対策が必要ですね。
感想など
一応セキュリティのことは意識してサイト管理を行っていたつもりなので、このような被害にあったのはショックでした…。改めてセキュリティについてもっと知っておかなくてはいけないなと思います。
改ざんされてしまった方にはこの記事が何か参考になれば嬉しいですし、サイト改ざんなどを意識するきっかけにでもなればよいなと思います。
はじめまして。
いつも、興味深い記事をありがとうございます。
[WordPress] サイト改ざんの被害記事を拝見しました。
「改ざんされていた」ことに気付いたのは、どのようなことがきっかけだったのでしょうか。投稿記事内にコードが挿入されていたということでから、Web表示ではなかなか気付かないと思うのですが。
「あれ?」と思ったことがあったのでしょうか。
そのあたりも記事にしていただけると、とても参考になります。
しげ さま
初めまして。コメントありがとうございます。
気づいたきっかけは、
たまたま投稿の一部を get_the_content で取得していたところがあり、
変なところがあったため気づきました(^O^;)
通常ならなかなか気づかないところだと思います…。
本当に「たまたま気づいた」というだけでした。
なにか検証するよい方法があるとよいですよね。