Blog運営

【2019年】WordPressをインストールしたら最低限やるべきセキュリティ対策と厳選アプリ

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

こんにちは! まついんぐ@ma2iing)です。

WordPressでブログを運営する上で必須となるセキュリティ対策。

『WordPress セキュリティ対策』とかで検索したらいろんな情報が見つかりますが、『逆にどれを見たらいいのかわからない!』という声をよく聞きます。

そこで、私が実際にやっている基本のセキュリティ対策をご紹介します。
(随時、アップデート予定です)

WordPressのバージョンを最新に保つ

WordPressは機能改善やバグ修正、セキュリティ対策のため、頻繁にバージョンアップを行っています。

新しいバージョンにアップデートせず、脆弱性を放置したまま古いバージョンで運営を続けると、匿名ユーザーからの攻撃の標的にされ、不正ログイン等の危険性が高まります。

脆弱性のある古いバージョンのWordPressを自動的に検出して攻撃するBOTも存在するため、WordPressのアップデートがあった場合は、必ず実行し、常に最新のバージョンを保ってください。

 

プラグインの定期的なチェック

プラグインに関しては3つの脆弱性対策があります。

不要なプラグインの削除

使用しなくなったプラグインやWordPress本体のバージョンアップに伴って動作しなくなったプラグインは削除しましょう。不要なプラグインの使用はサイトが重くなるだけでなく、セキュリティホールの原因にもなります。

更新されていないプラグインは要注意

WordPress本体がセキュリティ対策をしていても、プラグインに脆弱性が見つかればそこがセキュリティホールの原因となります。前回のアップデートから1年以上経過しているプラグインは、開発が停止する可能性もありますので注意が必要です。

公式プラグイン以外は使用しない

WordPressのプラグイン追加画面から探せるプラグインを使用しましょう。ここに登録されているプラグインは公式にレビューされ、一定のセキュリティ基準が担保されています。

 

SSLの導入

SSLとは、Secure Sockets Layer の略で、インターネット上でやりとりされる情報を暗号化し、第三者によるデータの盗聴・改ざんを防止する技術のことです。
SSLを導入するだけで、不正アクセスを防止することができます。

SSL
SSLって何? 私に関係あるの?SSLと聞いてもあまりピンとこない人がSSLの基本知識を身につけ、セキュリティの意識がほんのり上がる記事です。...

 

データベースの接頭辞を「wp_」以外にする

WordPressのインストールを進めると、データベースの接頭辞はデフォルトで「 wp_ 」になります。

これでは、データベースのテーブル名がある程度特定されてしまうため、データベースに対するハッキングのハードルを下げることになります。

プラグインでの変更も可能ですが、不具合発生のリスクもあるため、インストールの段階で初めから「wp_」以外に設定しておくのが望ましいです。

 

ユーザーID、パスワードは、推測されにくいものを設定

基本ですが、結構やってない人が本当に多い。

WordPressのユーザーIDは、推測されにくいものにする必要があります。
「admin」「webmaster」は論外ですし、ドメイン名にするのも「推測されにくいもの」という観点で避けた方が良いでしょう。

パスワードはランダムに10文字以上の英数字を織り交ぜた文字列を設定すべきです。
パスワードは8文字以内だとハッキングされやすいというデータもあります。

 

wp-config.php へのアクセスを制限

wp-config.php は、各種設定情報(例えば、データベースサーバーで利用するIDやパスワード)が生で記述されている重要なファイルですので、外部からアクセスされると大変危険です。

.htaccessファイルにて「wp-config.php」ファイルのアクセスを制限する必要があります。

 

海外からのアクセスをブロック

ハッキング攻撃のほとんどは海外からのため、そのアクセスをブロックすることで、ハッキングのリスクをかなり回避できます。

ここで注意しておきたいポイントとしては、ウェブサイト全体をブロックして「鎖国」しないこと。

ブロックするのは、「wp-admin」ディレクトリと「wp-login.php」ファイルへのアクセスのみです。

 

コメント、ピンバックの停止

コメント機能が不要であれば、機能を停止しましょう。

「設定 → ディスカッション」の「投稿のデフォルト設定」のチェックを全て外すと完全に停止できます。

不正アクセス防止策というよりは「コンテンツ改ざん防止策」の意味があります。

 

表示名を設定する

WordPressインストール後、設定を変えなければ、「ログインに使用するユーザー名」がブログの投稿者名として表示されてしまいます。

ログイン情報の露出を避けるため、ユーザーのプロフィールに「ニックネーム」を設定し、「ブログ上の表示名」を「ニックネーム」に変更しましょう。

 

プラグイン「Edit Author Slug」

WordPressのインストール時に「ユーザー名」は推測されにくいものを設定するように書きましたが、実は下記のようにブログのURLの後に「/?author=1」と入力すると、ユーザー名が表示されてしまいます。

https://サイトのURL/?author=1

「Edit Author Slug」プラグインを使えば、「/?author=1」と入力されても、プラグインで設定した文字列を表示し、ログインに使うユーザー名を特定できないようにすることができます。

 

プラグイン「SiteGuard WP Plugin」

WordPress のセキュリティ関連のプラグインは多数存在し、機能も似通っているため、どれが良いのか選定に迷ってしまいますよね。

また日本語対応していない海外製品が多いのも選定を難しくする要因です。

私がおすすめするのは、日本のセキュリティ会社が開発した国産のプラグイン「SiteGuard WP Plugin」です。

<機能一覧>

管理ページアクセス制限 ログインしていない接続元から管理ディレクトリ(/wp-admin/)を守ります。
ログインページ変更 ログインページ名を変更します。
画像認証 ログインページ、コメント投稿に画像認証を追加します。
ログイン詳細エラーメッセージの無効化 ログインエラー時の詳細なエラーメッセージに変えて、単一のメッセージを返します。
ログインロック ログイン失敗を繰り返す接続元を一定期間ロックします。
ログインアラート ログインがあったことを、メールで通知します。
フェールワンス 正しい入力を行っても、ログインを一回失敗します。
XMLRPC防御 XMLRPCの悪用を防ぎます。
更新通知 WordPress、プラグイン、テーマの更新を、メールで通知します。
WAFチューニングサポート WAF (SiteGuard Lite)の除外リストを作成します。

詳細な設定方法や説明は開発元のウェブに丁寧に記載があるのでこちらをご覧ください。

 

さいごに

いかがでしたか?

意外と多かったかもしれませんが、備えあれば憂いなしです!
しっかりセキュリティ対策をして快適なブロガーライフを過ごしましょう。

この記事があなたのお役に立てれば嬉しいです。
ではでは、mahalo 👋