WordPressはセキュリティ対策が必要って聞くけど…どうすればいいの?
メジャーなCMSであるWordPress。便利な反面、実は常に危険に晒されていることは知っていますか?WordPressはセキュリティ面において不正ログインやスパムなど、外部からの攻撃を受けやすいというリスクがあります。
WordPressでWebサイトや自身のブログなどを制作した場合、セキュリティ対策は必ず行うようにしましょう。当記事ではセキュリティ対策のひとつとしておすすめする、WordPressプラグインの「SiteGuard WP Plugin」を使う方法を紹介します。
この記事でわかること
- WordPressのセキュリティリスクと対策の必要性
- セキュリティ対策用プラグイン「SiteGuard WP Plugin」の機能と使い方
- 不正ログインやスパムを防ぐ方法
- WordPressのセキュリティリスク診断方法
WordPressのセキュリティリスクについて
・ユーザーが多数いるメジャーなCMSである
W3Techsによると、WordPressは全世界のWebサイトの41.4%、CMSの64.9%という圧倒的シェアであることがわかります(2021年5月時点)。WordPressは個人ブログから有名な企業の公式サイトまで幅広く利用されています。知名度、普及率が高ければそれだけセキュリティの被害数も多くなります。
・セキュリティ意識の低い初心者も多いため攻撃のターゲットにされやすい
WordPressは無料で自由に使えるライセンスで提供されています。HTMLやCSSなどといった制作の知識がなくても簡単に扱えるため初心者も多いです。初心者でも個人ブログなど開設することは簡単ですが、セキュリティ意識が低いまま運営をしていると攻撃のターゲットにされる可能性があります。
・無償のオープンソースのため攻撃者にセキュリティホールが発見されやすい
無償のオープンソースはプログラム構造もわかってしまうため、プログラミングの不具合やミスによって起こる欠陥からハッキングに利用されたりウイルスに感染したりする危険性があります。
・管理画面の初期ログインURLは誰でもわかる
管理画面の初期ログインURLは「https://ホスト名/wp-admin/」です。あなたのWebサイトURLを見て末尾に「/wp-admin/」を付ければ誰でもログイン画面にアクセス可能です。ユーザー名とパスワードの総当たり攻撃(ブルートフォース)によって不正にログインされる可能性があります。
「SiteGuard WP Plugin」の主な機能
- WordPress管理画面へのアクセス制限
- 不正ログイン防止
- コメントスパム防止
「SiteGuard WP Plugin」は主にこれらの攻撃から守るための機能があります。
詳しい説明は開発元である株式会社ジェイピー・セキュアの公式サイト「JP-Secure」に載っています。
「SiteGuard WP Plugin」の設定
インストールして有効化
プラグインをインストールします。WordPress管理画面を開き、プラグインの「新規追加」から「SiteGuard WP Plugin」を検索してインストール→有効化します。
設定方法
有効化すると左のメニューバーに「SiteGuard」が追加されるので、そこをクリックします。
初期設定だと下記のようになっているかと思います。最新の更新(1.6.0)では「ユーザー名漏えい防御」機能が追加されたようです(2021年5月時点)。
初期設定から変更または確認しておく箇所について順番に説明します。
・管理ページアクセス制限
ログインしていない接続元からの管理画面「/ホスト名/wp-admin/」へのログインを制限します。
初期設定はOFFになっていますが、ONにして「変更を保存」ボタンを押します。
・ログインページ変更
ユーザー名とパスワードの総当たり攻撃や、アカウントとパスワードのリストを用いた攻撃などによる不正ログインをされにくくします。
初期値は「login_<5桁の乱数>」になっていますがここをランダムな文字列など推測されにくいものに変更します。
「管理者ページからログインページへリダイレクトしない」にチェックを入れます。
「変更を保存」ボタンを押します。
・画像認証
ログイン時やコメント時に画像認証をはさみ、ユーザー名とパスワードの総当たり攻撃やコメントスパムなどを受けにくくします。
初期設定の「ひらがな」のままでも大丈夫です。
・ログイン詳細エラーメッセージの無効化
ログインに関するエラーメッセージの詳細を出さないことで、何が間違っているのかを攻撃者に伝えないものです。例えばユーザー名が間違っていてパスワードが当たっていても、「ユーザー名が違います」ではなく「エラーです」と返すだけになります。
初期設定のまま「ON」にしておきます。
・ログインロック
ログインの失敗が指定期間中に指定回数間違えた接続元IPアドレスを指定時間ブロックします。
初期設定では5秒以内に3回間違えると1分間ロックします。一見無理そうですが機械的にやれば簡単にできてしまう回数です。自身の好みで変えてもよいですし初期設定のままでも大丈夫です。
・ログインアラート
不正なログインに気づきやすくします。ログインがあるとメールで通知が来るので心当たりのないログインの疑いがあると気づけます。
初期設定のまま「ON」にしておきます。
・XMLRPC防御
XML-RPCピンバックを利用した攻撃や、XML-RPCを利用した総当たり攻撃から守ります。
ピンバックとはWordPressのユーザー同士で相互リンクをする仕組みのことです。リンクを貼られた側に自動的に通知がいきます。リンクを貼った側はアクセスUPに繋がる便利そうな機能ですが、脆弱性のあるピンバックによりスパマーからのリンクがたくさん飛んで来る可能性があるため無効化することが推奨されます。
初期設定のまま「ON」にしておきます。
・ユーザー名漏えい防御
前述しましたが最新の更新(1.6.0)で「ユーザー名漏えい防御」機能が追加されたようです(2021年5月時点)。「WordPressサイトのURL/?author=数字」のアクセスによるユーザー名の漏えいを防止します。
WordPressでは「サイトのURL/?author=数字」のように末尾に「?author=数字」を付けてアクセスすると「サイトのURL/author/ユーザー名」に自動転送される仕組みになっています。これによりログインIDは知られてしまいます。あとはログインパスワードが当たれば不正アクセスされてしまうためユーザー名の漏えいを防いで対策します。
初期設定はOFFになっていますが、「ON」にして「変更を保存」ボタンを押します。
・更新通知
WordPress、プラグイン、テーマの更新がある場合にメールで通知が来ます。
初期設定のまま「ON」にしておきますが、無理して毎日の確認作業にする必要もないかと思うのでお好みで設定して大丈夫です。
全て設定できたら再度確認します。
ログインできなくなった場合
ログインできなくなってしまった場合の解決法も紹介します。
ログインURLがわからない
・件名「WordPress: ログインページURLが変更されました」をメール内で検索する
このプラグインを有効化した時点で自動的にログインURLが変更になり、新しいログインURLが管理者宛にメールで通知されるようになっています。まずはメール内を探してみましょう。
例えばyahoo!メールの場合、メールの検索窓の▼(下向き三角のアイコン)をクリックして件名で検索します。
「SiteGuard WP Plugin」からのメールが見つかります。
・.htaccessを確認する
メール内を探してもわからない場合、「.htaccess」ファイルを確認します。「.htaccess」はWordPressをインストールしたサーバーにあります。
例えばロリポップ!レンタルサーバーでの確認方法は下記です。
ロリポップ!ユーザー専用ページにログインして、左のメニューバーから「ロリポップ!FTP」をクリックします。
ロリポップ!レンタルサーバーFTPが開くので、WordPressをインストールしたディレクトリに進んで「.htaccess」ファイルを見つけます。
「.htaccess」には「SiteGuard WP Plugin」の設定で変更したログインURLが記述されています。ここに書き込まれている下記を確認してください。
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^login_xxxxx(.*)$ wp-login.php$1 [L]
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
login_xxxxxの部分がログインURL(初期設定の場合)です。「https://ホスト名/login_xxxxx」のようにURLに繋げてアクセスしてください。login_xxxxxには自身で設定変更した文字列が当てはまります。
404エラーになる
・「https://ホスト名/wp-admin/」ではなく、自身で設定したログインURLにアクセスする
原因はログインURLを経由しないで管理画面にアクセスしていることです。プラグインの設定で「管理ページアクセス制限」を有効にしている場合、24時間以内にログインしていない接続元からの管理ページ(/wp-admin/)へのアクセスは404エラーになります。
これら以外でログインできなくなった場合について詳しくは公式サイトにも載っているので参考にしてみてください。
WordPressのセキュリティリスク診断
WordPressのセキュリティ対策ができているのか診断することができます。無料で簡単に診断するツールもあるので、定期的に検査をしてセキュリティ意識を高めましょう。
・「WPSEC」
URLを入力すれば脆弱性の診断が無料でできます。有料で登録すると詳細なデータを見ることもできます。
「Your WordPress URL」に自身のURLを入力して下のチェックボックスにチェックを入れ「START SCAN」ボタンをクリックします。
下記のような診断結果が出ます。「Your WordPress website is safe !」と表示されれば安心ですね。
・「sucuri」
こちらも「WPSEC」と同様に無料でURLを入力すれば脆弱性の診断ができます。さらに無料の会員登録をすると詳細なデータを見ることもできます。
「example.com」と入力例がある箇所に自身のURLを入力して「Scan Website」ボタンをクリックします。
下記のような診断結果が出ます。脆弱性が5段階評価で表示されます。Low Riskであれば安心ですね。
まとめ
セキュリティ対策のひとつとして必須のプラグイン「SiteGuard WP Plugin」を紹介しました。WordPress管理画面へのアクセス制限と不正ログインの防止に効果があります。WordPressを扱う場合は個人利用だとしてもセキュリティリスクについて知った上で、対策と定期的な検査をしてWebサイトを運営しましょう!
管理画面へのアクセス制限と不正ログインの防止以外にもセキュリティ対策として、フォームからのスパムメールを防ぐプラグインの紹介もしているので参考にしてみてください。