[WordPress] SiteGuard WP Pluginでログイン・管理画面のセキュリティ対策

2019-05-17WordPressセキュリティ,プラグイン

WordPressのログイン・管理画面は通常wp-login.phpwp-adminでアクセスできるが、コレは不正アクセスや悪意のある攻撃などを容易にし、危険な状態である。ログイン画面のURL変更方法を調べたら「SiteGuard WP Plugin」が良さそうなので導入することにした。
ログイン画面のURL変更などで管理画面周りのセキュリティを強化する。

セキュリティ対策

ログイン・管理画面周辺のセキュリティ強化にあたり、どんな対策をすればいいか調べた

IPアドレス制限

管理画面に対するアクセスは、特定のIPアドレスのみ(自宅・社内だけとか)許可する 今のところコレが一番強固な対策だと思われる * エックスサーバーであれば、デフォルトで日本のIPアドレスのみアクセス可能という設定になっている

ログイン画面を隠す

ログイン画面が見えちゃってるいると、通常WordPressのログインには回数制限がないので、何度もログインを試みるブルートフォースアタック(辞書攻撃)の標的にされる。ログイン画面がわからなければ、そもそも攻撃ができない
* エックスサーバーであれば、ログイン回数に制限をつけることができる(ログイン先を変えても有効なのかは不明)

認証機能をつける

画像認証:ログイン時にユーザー名とパスワード以外に、画像の文字列を答えさせるなどの認証機能 Basic認証:ログイン画面にアクセスするための、IDとパスワードを設置する2段階認証

XMLRPCの停止

WordPress本体には「xmlrpc.php」というファイルが入っていて、外部からWordPressを操作するためのプログラム(XMLRPC機能)が書かれている。
「メールで投稿する」、「ピンバック」、「コメントの追加や編集」などの機能が使える。
Jetpackなど一部のプラグインでもXMLRPC機能を使っている

xmlrpc.phpはかなり狙われているようで、以下のように悪用される

  • xmlrpc.phpでもログイン認証が必要で、ブルートフォースアタックの対象にされる
  • 継続的なブルートフォースアタックにより、サーバーがずっと高負荷状態になる
  • ログイン情報がバレてサイトが乗っ取られる
  • ピンバックとは、自サイトにリンクを貼るとリンク元に通知がいく機能で、コレを悪用してDos攻撃やDDoS攻撃される(大量のパケットを送りつけサーバーをダウンさせる)
  • スパムコメントの連続投稿

SiteGuard WP Pluginについて

プラグインは増やしたくないし、ログイン先のURL変更はプラグインを使わずともできるが、 セキュリティ対策を調べると他にもやった方がいいことがあったし、ログイン履歴も見られるようにしたかったので、 国産で高評価のSiteGuard WP Pluginを使うことにした

SiteGuard WP Pluginのいいとこ

  • 欲しい機能が一通り揃っている(ログイン履歴とか)
  • 日本のセキュリティ会社が開発している
  • 日本語に対応している
  • 画像認証を「ひらがな」にできる
  • 情報が多い
  • 設定が簡単

SiteGuard WP Pluginの使い方

実際にWordPressに導入する方法

インストール・有効化

WordPress管理画面のプラグイン追加からSiteGuard WP Pluginをインストールし、有効化

有効化すると、すぐにログインURLが変更される!新しいURLは、リンクが画面上部に小さく表示されている
気づかずにログアウトすると、ログイン画面のURLがわからなくなるので注意!
「新しいログインページURL」リンクをクリックするとログインページが表示される
「こちら」リンクをクリックすると、URLの設定画面に遷移する

SiteGuard WP Plugin New Login URL
SiteGuard WP Plugin New Login URL
* サブディレクトリにWordPress本体を入れていると、/サブディレクトリ/wp-login.phpでアクセスすると404にならない

管理ページアクセス制限

デフォルトで「OFF」になっているので「ON」にする ここを「ON」にしないと、「サイトURL/wp-admin/」でアクセスするとログイン画面にリダイレクトされてログインURLが簡単にバレる
* mod_rewriteが使える必要がある

ログインページ変更

推測されにくい文字列を入力する
SiteGuard WP Plugin Change Login URL
SiteGuard WP Plugin Change Login URL
* mod_rewriteが使える必要がある

画像認証

ログインページに表示される画像認証を選ぶ
SiteGuard WP Plugin verification on loginpage
SiteGuard WP Plugin verification on loginpage
画像認証の種類
  1. ひらがな 日本語が分からない攻撃者に有効なためオススメ
  2. 英数字
  3. 無効

文字の長さは4文字固定 濁音、半濁音、「っ」のような小書き文字は表示されない

ログイン詳細エラーメッセージの無効化

デフォルトだと間違っているのが、ユーザー名なのかパスワードなのかがわかる
wp default error messages
wp default error messages
「ON」にすると同じエラーメッセージが表示されるようになり、ユーザー名とパスワードのどちらが間違っているのか分からなくなるので、「ON」にする
表示されるメッセージ
エラー: 入力内容を確認の上、もう一度送信してください。

ログインロック

ログインに失敗するとロックされるようになる
ロックする「期間」「回数」「ロック時間」を選択できる
例えば、5秒(期間)以内に、3回(回数)間違えたら、1分間(ロック時間)ロックされるとか

ログインアラート

ログインすると都度メールが送られてくる。 メール内容を変更することもでき、変数が使える
変数名内容
%SITENAME%サイト名
%USERNAME%ログインユーザー名
%DATE%ログイン日付
%TIME%ログイン時刻

フェールワンス

正しいアカウント情報でログインしても、必ず1度は失敗になる 5秒以降、60秒以内にもう1度ログインすると成功となる

XMLRPC防御

以下の2つから選択できる
  • ピンバック無効化(デフォルト)
  • XMLRPC無効化
XMLRPC機能を使わないなら、XMLRPC無効化した方がセキュリティが強固になる

更新通知

WordPress、プラグイン、テーマの更新がある場合管理者宛にメール通知される 以下から必要なものを選択する WordPressの更新(無効/有効) プラグインの更新(無効/すべてのプラグイン/アクティブなプラグインのみ) テーマの更新(無効/すべてのテーマ/アクティブなテーマのみ)

WAFチューニングサポート

WebサーバーにWAF(SiteGuard Lite)が導入されている場合に使用する

詳細設定

クライアントIPアドレスの取得方法に関する設定 プロキシーサーバーや、ロードバランサーを設置して、クライアントのIPアドレスが取得できない場合には、X-Forwarded-Forから適切なものを選択する。通常はリモートアドレスでいい

ログイン履歴

ログイン履歴が一覧で表示される 日時、結果、ログイン名、IPアドレス、タイプ項目がある 結果には、成功、失敗、ロック、フェールワンスがある タイプには、ログインページ、XMLRPCがあり、xmlrpc.phpからのログイン履歴も確認できる 履歴は10,000件を超えると古い履歴から削除される

Posted by Agopeanuts