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

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

bitWave編集部です。今回は(再度)ワードプレスで急増している不正ログイン防止対策方法とプラグインについてまとめてみました。

注意:ここに挙げたプラグインは同時に使用すると著しい不具合を起こす可能性があります。目的に応じて選択してください。

ワードプレス不正ログインの手法と防止方法

ワードプレス不正ログインの手法はとても原始的です。よく使われるアカウント名を使ってボットがログイン成功するまでひたすら試行を繰り返すブルートフォースアタック(総当り攻撃)と呼ばれる手法です。

攻撃の手法

  • ログインの成功率は低いが延々と繰り返す
  • アタックに使われるIPは6万〜10万IP
  • IPアドレスはランダムで規則性がない
  • 対策しない限り24時間365日ログイン試行を繰り返す
  • ユーザ名は決め打ち(admin,administrator,test,(ドメイン名),(投稿者名))

対策方法:案

  1. 攻撃を受けやすいユーザ名を変更する
  2. ログインの試行回数と復帰までの時間を制限する
  3. ワンタイムパスワードやオース認証を導入する
  4. 不正なログインIPアドレスを自動でブロックする(ブラックリスト)
  5. 海外からログイン画面へのアクセスを禁止する
  6. ログイン失敗が繰り返されたら(オーナーに)警告する
  7. 固定のIP以外のアクセスを禁止する(ホワイトリスト)
  8. 標的になりやすいファイルのアクセス権を変える
  9. 定期的にスキャンを行う
  10. ワードプレス本体やプラグインの更新を定期的に行う

有効と思われる幾つかを選択して実行する事をお勧めします。

1.攻撃を受けやすいユーザ名を変更する|攻撃の初期対策

ユーザ名は決め打ちなので、まず、決め打ちされているユーザ名を使わないようにしましょう。

  • admin
  • administrator
  • test
  • ドメイン名
  • 投稿者名=ユーザ名

最後の投稿者名=ユーザ名は、投稿者表示名を変更するだけで済むように見えますが、Internet Archiveなどに、キャッシュが残っていると対策になっていないので、ご注意を。

2.ログインの試行回数と復帰までの時間を制限する

ログイン失敗をした場合、少ない回数でロックアウト(ログイン画面に入れなくする)し、ロックアウト復帰(再度ログインを試行できる)までの時間を長くすれば安全性が高まります。

Wordfence SecurityはOptionsでこの回数をコントロールできます。

Options001_WordPress

その他、アクセス失敗回数をコントロールできる機能があるのは「Simple login lockdown」「Limit Login Attempts」などがあります。

3.ワンタイムパスワードやオース認証を導入する

ログイン項目を1つ増やすだけでも、不正ログイン対策には高い効果があります。組み合わせの回数が増えるので数十万のアクセスでは突破が困難になります。

Google Apps LoginはGoogleのOAuth2認証によるログインを可能にするものです。通常のログインよりも機密性が高くなります。ただしAPIキーを取得してセットする必要があるので、難易度は高めです。

Google Authenticator for WordPressは、Google Authenticatorを使ってワンタイムパスワードによる2段階認証を実現するプラグインです。

Google Appsにも利用していますが、かなり堅牢になると思います。かなり面倒なログインにもなりますが。

4.不正なログインIPアドレスを自動でブロックする(ブラックリスト)

まず、不正なログイン試行があるか、ログを取得してトラッキングできる機能が必要です。さらに、そのIPを自動的にロックする機能が必要となります。

先に挙げたWordfence Securityはリアルタイムのログ機能とロック機能が充実しています。

Banners_and_Alerts2

その他、SiteGuard WP PluginAll In One WP Security & FirewallJetpackも同様の機能があります。

参考になるサイト:WordPressのセキュリティ対策プラグイン15選

5.海外からログイン画面へのアクセスを禁止する

無償版でこの機能を持っているのは、ほとんどないと思います。Wordfence Securityの有償版では海外IPからのログインをブロック可能になります。海外から頻繁にログインすることが無いのであれば、日本以外をブロックするだけなので簡単です。

Country_Blocking_WordPress

6.ログイン失敗が繰り返されたら(オーナーに)警告する

不正アクセスと検知した場合や、ワードプレスがアップデートされた時、メールにて警告されれば検知が早くなります。

Wordfence Securityや、SiteGuard WP PluginAll In One WP Security & Firewallなどは総合セキュリティプラグインはアラート機能が付いています。

ある日突然、大量に来るので「うざったく」も感じますが、対策をしていって、アラートメールが来る件数を減らしていくことが指標にもなるので、あえて全て受信するようにしています。

7.固定のIP以外のアクセスを禁止する(ホワイトリスト)

アクセスするIPが企業などで固定IPである場合は、この機能でログインを限定することができます。
上記の総合セキュリティプラグインは、その機能を有しています。

それ以外ではJetpackが同様の機能を持っています。

スクリーンショット 2015-10-20 13.58.13

8.標的になりやすいファイルのアクセス権を変える

ファイルのパーミッションに関してはWordpress Codex のファイルパーミションの項を一読ください。

また、wp-config.php を安全にするも読んでください。

現在のワードプレスパッケージはwp-config.phpは400または440(読み取りのみ)になっていますが、古いパッケージの一部に権限が異なる時期がありました。古くから使っている方は「権限:ファイルのパーミッション」を確認することを強くお勧めします。

9.定期的にスキャンを行う

こちらも、Wordfence Securityや、SiteGuard WP PluginAll In One WP Security & Firewallなどは基本で機能がありますが、無償版ではスキャンに制限があるものもあるので各サイトをご確認ください。

Theme Authenticity Checkerはテーマの脆弱性をチェックします。

不正にログインされた場合、攻撃者は痕跡を残さ無いようにしつつファイルに不正なコードを混入させます。2次被害を出さ無いためにもファイルスキャンを定期的に行う事も重要です。

10.ワードプレス本体やプラグインの更新を定期的に行う

脆弱性を残したまま放置するのは危険です。まずは更新を確実に行うようにしてください。

特に攻撃の目的は、あなたのサイトにウイルスを仕込み、閲覧したユーザに感染、あるいはPCをハッキングする事です。あなたのサイトは被害者であると同時に攻撃者側になります。

アクセスがある一定数を超えると自動的に攻撃してくるので注意しましょう。

コメント