ワードプレスのセキュリティ対策

注意:必ず事前にバックアップを!

この記事にあるWordPressの設定を始める前に、必ずデータベースのバックアップを取ってください。
サーバー環境によってはエラーが発生する可能性があります。
また紹介しているプラグインは、いきなり本番サーバーで利用せず、テスト環境で試した後で利用することをお勧めします。

  1. ユーザーID『admin』を使用せず、独自のものに変更。パスワードを複雑な文字列にする。
  2. .htaccess のパーミッションを 604 に設定。
  3. wp-config.php のパーミッションを 400 に設定。
  4. 各種セキュリティ関連のプラグインを利用する。
    • ログイン試行制限:プラグイン[Limit Login Attempts]を使う。
    • ログイン監視:プラグイン[Crazy Bone]を使う。
    • スパム防止:プラグイン[Akismet]を使う。
    • テーマの品質管理:プラグイン[Theme-Check]を使う。
  5. フォルダのルートに「index.php」or「index.html」等が無い場合は設置する。
  6. 「wp-config.php」のアクセスを保護する。
  7. 定期的にバックアップを実施する。

ユーザーID『admin』を使用せず、独自のものに変更。パスワードを複雑な文字列にする。

以前、WordPressのデフォルトユーザ名「admin」をそのまま使っているサイトが集中してハッカーに狙われ、大変な被害が拡大したことがありました。
最初にWordPressをインストールすると、デフォルトのユーザ名は「admin」になりますが、巷ではデフォルトのユーザ名のまま放置している人が多かったようで、このサイトを対象に、総当たりパスワード解読(ブルートフォースアタック)をかけて、管理画面を乗っ取るという攻撃が多発しました。

一度設定されたユーザ名は後から変更できないので、「admin」はそのまま放置されがちです。たとえ「admin」じゃなくても、推測されやすいものは簡単に見破られてしまいます。
そういったサイトは、パスワードも覚えやすいように、「12345」や「aaaaa」のような簡単なものに設定されていることが多いようで、この程度ならほんの数分、もしくは数秒で解読されてしまいます。

さすがにユーザ名が「admin」のままのサイトは少ないと思いますが、ユーザ名はともかく、せめてパスワードぐらいは複雑なものに変更しておきましょう。

重要なファイルのパーミッションを変更する。

[.htaccess] のパーミッションを『604』に、[wp-config.php]のパーミッションを『400』に設定しましょう。

パーミッション変更後に[wp-config.php]を修正する場合は、一度パーミッションを元に戻してから作業をしてください。[.htaccess]も同様です。

フォルダ内に「index.php」または「index.html」等を設置する。

フォルダのルートに「index.php」または「index.html」等が無い場合は設置し、フォルダ内のファイルを一覧で見ることができないようにします。

各種セキュリティ関連のプラグインを利用する。

Limit Login Attempts

Limit Login Attemptsは、WordPressのログイン画面に対するログイン試行回数を制限できるプラグインです。ログイン認証に複数回失敗すると、ログイン画面を一定時間ロックし、管理画面への不正ログインを防ぐ効果があります。ログイン試行回数やログイン画面のロック時間は、プラグインの管理画面で自由に設定できます。

このプラグインを利用すると、パスワード総当り攻撃(ブルートフォースアタック)による不正アクセスを防止できます。プラグインの管理画面でログイン試行回数やログイン画面をロックする時間を設定できます。

もし、WordPressのログイン画面に対するセキュリティ対策を何もしていない場合は、このプラグインを活用しましょう。

Crazy Bone(狂骨)

Crazy Boneは、WordPress管理画面のログイン履歴を記録して閲覧できるプラグインです。ログインに成功した履歴とログインに失敗した履歴が記録されます。

もし、外部の誰かがあなたのWordPressで運営するWebサイトを乗っ取ろうとしている場合、管理画面のログイン履歴にログインエラーの履歴が残るので、悪意のあるユーザーを発見しやすくなります。

さらに、WordPress管理画面に別の接続元IPアドレスから接続があった場合、ダッシュボードに警告が表示され、自分(管理者)以外のユーザーがログインしたことを知ることができます。
あなたがWordPressを利用して運営しているWebサイトは、あなたが知らないだけで、実は、毎日のように誰かがログインしようとして、ログインエラーが発生しているかもしれません。このプラグインを利用し、どのくらいログインエラーが発生しているか把握しておきましょう。

※注意!:プラグイン[Crazy Bone]にはXSS脆弱性が含まれています。
今スグ利用を止めましょう。

2015年11月6日現在、プラグイン[Crazy Bone]は公式ディレクトリからも削除されています!

参考URL:https://on-ze.com/archives/4288

【WordPress】プラグイン[Crazy Bone]にXSS脆弱性が発見されたので使用を止めましょう。

スパムコメント対策:Akismet

Webサイトを運営していると、コメント欄にスパムコメントが毎日のように投稿されるようになります。スパムコメントは、フィッシングサイトや悪意のあるコードが書かれたページに誘導するURLが投稿される場合があります。スパムコメントには悪意のあるコードが記述されているケースもあり、放置するとセキュリティ的にも良くないので、スパムコメント対策は必ず行いましょう。

Akismetは、Webサイトのコメント欄に投稿される迷惑なスパムコメント(迷惑なコメント)をフィルタリングし、除去できるプラグインです。このプラグインは、初期状態からインストールされています。APIキーを取得する作業が少し面倒ですが、非常に役に立つプラグインなので活用しましょう。

「AIPキー」を取得する際に、非商用のWebサイトを運営する個人の場合は、初期設定で支払いが有料になっていますが、左にバーをスライドすると、0ドルに変更できます。寄付は任意なので、個人の非商用利用の場合は、無料で利用できます。尚、商用サイトの場合は有料です。

ちなみにAkismetは、単体で利用するのではなく、他のプラグインとの併用でスパムコメントがさらに減らせます。

Theme-Check

WordPressのメリットの1つは、世界中のデザイナーやプログラマーの方達が生み出した高品質なテーマファイルを無料で使えること。

しかし中には悪意のあるコードが埋め込まれている劣悪なテーマファイルが存在するケースもあります。

テーマファイルの中に含まれている危険なコードを事前にチェックしてくれるツールが「Theme-Check」です。

完全に悪質なコードをカバーして見つけられるとは限らないので盲信はNGですが、有料・無料を問わず配布されているテーマを使う際には必ずこのプラグインで安全性を確認しましょう。

「wp-config.php」のアクセスを保護する。

[.htaccess]に下記のコードを記述して「wp-config.php」へのアクセスを拒否します。

<Files wp-config.php>
Order allow,deny
Deny from all
</Files>

このとき、念には念を入れて「wp-mail.php」「install.php」「xmlrpc.php」へのアクセスも同様に拒否したい場合は前述のコードを次のように加筆します。

<FilesMatch "^(wp-config\.php|wp-mail\.php|install\.php|xmlrpc\.php)">
Order allow,deny
Deny from all
</FilesMatch>

定期的にバックアップを実施する。

備えあれば患なし。

サーバーがクラッシュしてデータが失われてしまうことがあっても、バックアップがあれば、一先ずは心の平静を保てます。

更新頻度の高いブログサイトであれば、最低でも週に1回。
その他のコーポレートサイトなどでも、毎月1回はバックアップを実施したいものです。

まとめ

セキュリティ対策は終わりのない戦いです。
ここで紹介した情報はまだほんの一部。常に最新の情報を仕入れて、大切なサイトをハッカーたちの攻撃から防衛しましょう!