[WordPress] SiteGuard WP Pluginでログイン・管理画面のセキュリティ対策
WordPressのログイン・管理画面は通常wp-login.php
やwp-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の設定画面に遷移する
/サブディレクトリ/wp-login.php
でアクセスすると404にならない
管理ページアクセス制限
デフォルトで「OFF」になっているので「ON」にする
ここを「ON」にしないと、「サイトURL/wp-admin/
」でアクセスするとログイン画面にリダイレクトされてログインURLが簡単にバレる
* mod_rewrite
が使える必要がある
ログインページ変更
推測されにくい文字列を入力する * mod_rewriteが使える必要がある画像認証
ログインページに表示される画像認証を選ぶ 画像認証の種類- ひらがな 日本語が分からない攻撃者に有効なためオススメ
- 英数字
- 無効
文字の長さは4文字固定 濁音、半濁音、「っ」のような小書き文字は表示されない
ログイン詳細エラーメッセージの無効化
デフォルトだと間違っているのが、ユーザー名なのかパスワードなのかがわかる 「ON」にすると同じエラーメッセージが表示されるようになり、ユーザー名とパスワードのどちらが間違っているのか分からなくなるので、「ON」にする「エラー: 入力内容を確認の上、もう一度送信してください。」
ログインロック
ログインに失敗するとロックされるようになるロックする「期間」「回数」「ロック時間」を選択できる
例えば、5秒(期間)以内に、3回(回数)間違えたら、1分間(ロック時間)ロックされるとか
ログインアラート
ログインすると都度メールが送られてくる。 メール内容を変更することもでき、変数が使える変数名 | 内容 |
---|---|
%SITENAME% | サイト名 |
%USERNAME% | ログインユーザー名 |
%DATE% | ログイン日付 |
%TIME% | ログイン時刻 |
フェールワンス
正しいアカウント情報でログインしても、必ず1度は失敗になる 5秒以降、60秒以内にもう1度ログインすると成功となるXMLRPC防御
以下の2つから選択できる- ピンバック無効化(デフォルト)
- XMLRPC無効化
更新通知
WordPress、プラグイン、テーマの更新がある場合管理者宛にメール通知される 以下から必要なものを選択する WordPressの更新(無効/有効) プラグインの更新(無効/すべてのプラグイン/アクティブなプラグインのみ) テーマの更新(無効/すべてのテーマ/アクティブなテーマのみ)WAFチューニングサポート
WebサーバーにWAF(SiteGuard Lite)が導入されている場合に使用する詳細設定
クライアントIPアドレスの取得方法に関する設定 プロキシーサーバーや、ロードバランサーを設置して、クライアントのIPアドレスが取得できない場合には、X-Forwarded-Forから適切なものを選択する。通常はリモートアドレスでいいログイン履歴
ログイン履歴が一覧で表示される 日時、結果、ログイン名、IPアドレス、タイプ項目がある 結果には、成功、失敗、ロック、フェールワンスがある タイプには、ログインページ、XMLRPCがあり、xmlrpc.php
からのログイン履歴も確認できる
履歴は10,000件を超えると古い履歴から削除される