WordPress(ワード プレス)はオープンソースのCMSであることから世界中で使われていると同時に、数多く使われているため不正アクセスを受けやすいと言われています。
そのためWordPressを利用している方は、

  • 他のシステムに乗り換えた方が良いの?
  • 乗り換えるのは大変だからWordpress使いたいけどセキュリティ面が不安
  • WordPressのセキュリティ対策方法を知りたい!

と思っていませんか?セキュリティ面であまり良い噂を聞かないWordPressも、しっかりと対策をしておけば大丈夫!

当記事では、WordPressサイトを安全に運営するために、絶対にやっておきたいセキュリティ対策についてまとめてみました。できるところから始めてみましょう。

WordPressのセキュリティは、管理者が自分で実施
WordPressは有料のサービスではないため、WEB制作会社に管理を依頼していない場合は、責任持って管理してくれるところがありません。
もし不正アクセスがあっても泣くのは自分だけ。誰も補償してくれません。自社でしっかりと対策を実施しましょう。

WordPressのセキュリティ対策19選

セキュリティ対策を導入する前にバックアップを取ろう

具体的なセキュリティ対策を進める前に、あらかじめデータベースやWordPressのテーマファイルのバックアップ作業をしましょう。

バックアップを取ることで、その後何か問題が起きた時もすぐに復旧できるようになります。

データベースのバックアップ

WordPressで使用するデータは、MySQLやPostgreSQLのようなデータベース管理システムに格納されています。
セキュリティ対策の導入に失敗したときのために、あらかじめデータベースのバックアップを取っておきましょう。一般的なレンタルサーバを使用している場合、データベースのバックアップはサーバのコントロールパネル(管理画面)phpMyAdminにログインして「エクスポート」機能を操作することでバックアップを取ることができます。

テーマファイルのバックアップ

データベースと同様にWordPressで使用しているテーマファイルのバックアップも取っておいたほうがよいです。
特にfunctions.phpというファイルはPHPで記述されたファイルであり、間違った記述があるとサイト全体が表示されなくなる場合もあります。テーマファイル一式はテーマフォルダに含まれているので、FTPやSCPを使ってサーバにログインしてダウンロードしておきましょう。

定期的に自動バックアップ「BackWPUp」プラグイン

上記のようにphpMyAdminにログインしたり、FTPでアクセスしたりなどでバックアップを取ることが難しいと感じる方は、「BackWPUp」プラグインを利用すると簡単にバックアップを取ることができます!

BackWPUpというプラグインを使用することで、WordPressの管理画面からデータベースやテーマのバックアップを取る事できます。
バックアップファイルをDropboxに保存したり、メールで送信したりする機能があり、さらにバックアップの設定をジョブという単位で管理し、定期的に実行する機能などもあります。

参考サイトBackWPUp
参考サイトBackWPUpで確実にWordPressのバックアップを取る方法 - バズ部

WordPressの本体とプラグインのセキュリティ対策4選

1.最新版にアップデート

WordPress本体の脆弱性対策のために、WordPress本体やプラグインの新しいバージョンが公開されたときはすぐにアップデートしましょう。WordPressのバージョンアップには「メジャーアップデート」「マイナーアップデート」の2種類があります。

メジャーアップデートとは
WordPressに対して大きな機能追加や管理画面のレイアウト変更などが伴ったバージョンアップの事です。このメジャーアップデートは「手動更新」によりアップデート作業を行います。アップデートの通知そのものは管理画面に表示されるのですが、更新ボタンを手動でクリックしないとアップデートは行われません。

多くのレンタルサーバの場合問題なく新しいバージョンを適用できますが、お使いのサーバのphpやmySQLのバージョンなどを確認の上、バージョンアップをしましょう。

マイナーアップデートとは
主にバグフィックスやセキュリティ対策など小さなアップデートのことです。マイナーアップデートは基本的に「自動更新」です。
マイナーアップデートがリリースされると、しばらくしてから利用しているWordPressが自動的にアップデートを適用します。

マイナーアップデートが自動更新されたときは、WordPressに登録してあるメールアドレスに対して通知が届くようになっているので、すぐに更新されたとわかるようになっています。

2.テーマやプラグインは公式から公開されているものを使う


WordPressには見た目をカスタマイズするための各種テーマや、機能拡張のためのプラグインが豊富に公開されています。
これらを使用するときは、必ず公式で公開されているもの使用するようにしましょう。

公式に公開されているテーマやプラグインは、厳しい審査を経て公開されているものです。
それらはアップデートされたときも、管理画面から簡単に更新することができます。

一方、公式に公開されていないテーマやプラグインは「野良テーマ」や「野良プラグイン」と呼ばれています
。これらは審査されたものではありません。中には悪意のあるコードやバグが含まれているものもあり、使用するにあたっては完全に自己責任となります。テーマやプラグインを利用するときは、原則として公式で公開されているものを使用しましょう。

しかし、公式サイトに公開されている全てのテーマ・プラグインが、今後ずっと安全かというと、100%そうとは言い切れません。
「野良テーマ」や「野良プラグイン」であっても、「公式サイトにあるテーマ・プラグイン」でも、このページで説明しているセキュリティ対策必須ですので、安心しないでそれ以外のセキュリティ対策も行っておきましょう。

参考サイトテーマディレクトリ — 無料の WordPress テーマ
参考サイトWordPress プラグイン — プラグインは WordPress の機能を拡張します。

3.使用していないプラグインは削除する

WordPressで使用しなくなったプラグインは積極的に削除しましょう。不要なプラグインの使用はサイトが重くなるだけでなくセキュリティホールの原因にもなります。プラグイン開発者がメンテナンスを停止したプラグインでWordPressのバージョンアップに伴い動作しなくなったというケースでは、特に危険です。サイトを定期的にチェックして不要なプラグインがインストールされていないか確認しましょう。

4.WordPressのバージョン情報を非表示にする

通常WordPressを使用していると、そのWordPressのバージョン情報が、下記のようにHTMLのソースコードに記述される場合があります。

仮に古いバージョンのWordPressを使用していることが知られますと、攻撃対象になってしまう可能性があります。バージョン情報の表示は基本的に不要なので表示を停止しましょう。

バージョン情報の非表示はテーマフォルダにあるfunctions.phpにコードを書いて設定します。

WordPressのバージョン情報を非表示にする方法

プラグインのバージョン情報を非表示にする方法

WordPressへの不正なログイン対策5選

WordPressを操作するための管理画面のログインに関する対策を紹介します。

1.adminユーザーは絶対に使わない

adminというユーザー名はWordPressをインストールした時にデフォルトで設定されているユーザー名です。攻撃者はこのadminというユーザー名に対してブルートフォースアタック(パスワード総当たり攻撃)を仕掛けることが多いです。不正アクセスされる可能性を減らすという意味で、adminというユーザー名は使わないようにしましょう。

2.ユーザー名を推測されないようにする

WordPressで使用しているユーザー名は実は特定のURLにアクセスすることで簡単に推測できてしまいます。

このようなURLにアクセスすると、WordPressで使用しているユーザー名が含まれたURLにリダイレクトされるようになっています。これに関しては「Edit Author Slug」というプラグインを導入することで、表示されるユーザー名を変更することができます。

参考サイトEdit Author Slug
参考サイトEdit Author Slugプラグインの使い方

3.複雑なパスワードを利用する

最近のバージョンのWordPressからアカウントを作成したときに自動的に難読化されたパスワードを生成してくれるようになっています。WordPressで使用するパスワードはこのように難読化されたパスワードを使用しましょう。クラッカーは辞書攻撃を仕掛けてくるケースがあるため、特定の単語を意味するような文字列をパスワードとして使わないようにしましょう。

参考サイト2017年もっともダメなパスワードトップ100

4.管理者権限のアカウントの数を最小限にする

複数人でWordPressを運営する場合、ユーザーアカウントをいくつも発行することになります。
その際はできるだけ管理者権限のアカウントを発行せずに、編集者、投稿者、寄稿者権限のアカウントで運営できるかどうか検討しましょう。

これらのデフォルトの権限以外にも、使用する機能を選択しカスタマイズされた権限アカウントを作成することも可能です。
追加されたユーザーによっては平易なパスワードを使うことも考えられるため、いざという時のためにも、アカウントを追加する場合はできるだけ権限の少ないアカウントを発行するようにしましょう。

5.WordPressのログイン履歴や操作ログを記録する「WP Security Audit Log」の導入

WordPressのログイン履歴や管理画面での操作ログを記録できるプラグイン「WP Security Audit Log」を導入しましょう。
特にログイン履歴に関しては、外部からの不正なパスワードによるログイン失敗履歴も残してくれます。もし不正なログインを許してしまっていても、このプラグインを導入していればログイン履歴から検知することができます。その場合は管理画面の

「ユーザー」→「あなたのプロフィール」→「他のすべての場所でログアウト」

をクリックすることで強制的にログアウトさせて、すみやかにパスワードを変更しましょう。

参考サイトWP Security Audit Log
参考サイト行動履歴を取るWP Security Audit Log

WordPressの必須セキュリティ対策10選

さらにWordPressで実行すべきセキュリティ対策を10個まとめて紹介します。

1. XML-RPCを無効にする

XML-RPC(Extensible Markup Language – Remote Procedure Call)とはWordPressを外部から操作するための仕組みです。
データをXML形式でやり取りするものですが、DDoS攻撃などに利用されることもあり、XML-RPCを使用しない場合は、アクセス制限をかけておきましょう。

.htaccessファイル内に以下の記述を追加します。

2. REST APIを無効にする

REST APIもWordPressを外部から操作するための機能です。
XML-RPCと同様にこの機能に対しても攻撃されることがあります。

この機能はWordPress本体にある「wp-json」フォルダ以下に対するアクセスを制御することで無効にすることができます。

設定するためには、.htaccessファイルに記述しているWordPressのリライトルールを以下のように書き換えます。

前述した、XML-RPCやREST APIに対するアクセス制限は、使用しているレンタルサーバによっては、レンタルサーバのコントロールパネルから設定できる場合もあります。
その場合はここで紹介した.htaccessファイル書き換える方法ではなく、まずはレンタルサーバが指定する方法で設定することを試みてください。

また、使用しているプラグインによってはXML-RPCやREST APIを無効化すると動作しなくなるものもあります。支障がある場合はここで紹介した、XML-RPCやREST APIの無効化は行わないでください。

3. 管理画面へのIP制限する

管理画面にアクセスするためのファイル「wp-login.php」と「wp-admin」に対してIP制限をかけることができます。

IPアドレス「AAA.AAA.AAA.AAA」からのみアクセスを許可したい場合は以下のように書きます。

許可したいIPアドレスが複数ある場合は、「allow from ・・・」の行を繰り返して書きます。

上のように書くとIPアドレス「AAA.AAA.AAA.AAA」と「BBB.BBB.BBB.BBB」と「CCC.CCC.CCC.CCC」に対してはアクセスを許可し、それ以外のIPアドレスからのアクセスは制限されます。

4. 管理画面内での操作を制限する

管理画面で操作できる「テーマのインストール」「プラグインのインストール」「テーマ編集」「プラグイン編集」の機能を停止させることができます。WordPressのインストールフォルダにある「wp-config.php」に以下のような記述を追加します。

5. 認証用ユニークキーを設定する

WordPressで使用する認証用ユニークキーを設定します。
これはローカルPCに保存されているCookie情報を暗号化するために設定される文字列です。この認証用ユニークキーを変更することで、パスワードを変更しなくても現在WordPressにログイン中の端末から強制的にログアウトさせることができます。

WordPressを手動でインストールした場合などはこの認証用ユニークキーが空になっていることがあるので、設定しておきましょう。以下のURLから認証用ユニークキーを生成することができます。

参考サイト認証用ユニークキー|wp-config.php の編集 - WordPress Codex 日本語版
参考サイト認証用ユニークキー オンラインジェネレータ

6. wp-comments-post.phpへのアクセスを制限する

コーポレートサイトなどはWordPress標準で用意されているコメント機能を使わない場合が多いです。
WordPressのコメント機能は「wp-comments-post.php」を使用しているので、このファイルへのアクセスを制限しましょう。.htaccessファイルへ以下の記述を追加します。

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

WordPressを動作させるための各種設定が記述された「wp-config.php」へのアクセスを制限しましょう。
このファイルにはデータベースサーバで利用するIDやパスワードが生で記述されています。
その他、WordPressの設定が記述されていることもあるので、外部からアクセスされると危険です。.htaccessファイルへ以下の記述を追加します。

また、wp-config.phpはとても重要なファイルです。
簡単にできるので、パーミッションを「400」に設定し、書き込みなどの権限を制限しましょう。これによりさらにセキュリティアップします。

参考サイトファイルパーミッションの変更

8. wp-login.phpへのBasic認証を設置する

WordPressのログインページである「wp-login.php」に対してBasic認証をかけます。Basic認証を追加することで、パスワードを2重にかけるようなことができます。まず、.htaccessファイルに対して以下の記述を追加します。

2行目の
「AuthUserFile /path/to/.htpasswd」
の「/path/to/」にはパスワードファイルである.htpasswdファイルのフルパスを記述します。ファイルのあるフォルダへの絶対パスは以下のPHPコマンドで取得できます。

.htpasswdファイルはジェネレータから作成することができます。

参考サイトhtpasswdジェネレータ

9. uploadsディレクトリでのphpの実行を制限する

「/wp-content/uploads/」はWordPressにアップロードされた画像ファイルなどの保存先となるディレクトリです。画像を保存できるようにこのディレクトリには書き込み権限が付与されています。このディレクトリでPHPのコードが実行されないように、「/wp-content/uploads/.htaccess」ファイルに以下の記述を追加します。

10.ディレクトリアクセス時のファイル一覧表示を無効にする

index.htmlやindex.phpが存在しないディレクトリに対してブラウザからアクセスすると、そのディレクトリにあるファイルの一覧が表示される場合があります。表示されているファイルによっては、不正なアクセスに利用されてしまうかもしれませんので、ファイルの一覧を非表示にしておきましょう。.htaccessに記述を追加するのですが、WordPressが動作しているサーバによって設定方法が異なります。

設定方法1

設定方法2

どちらか動作する方法で記述してください。

プラグイン「SiteGuard」を利用したセキュリティ対策

ここまで、数多くのセキュリティ対策を紹介させていただきましたが、「それぞれ専門知識が必要で、設定が大変」と思う方には、下記のプラグインで一括管理をするのが良いでしょう。

セキュリティ対策プラグインの定番である「SiteGuard」は、日本のセキュリティ会社であるJP-Secureが開発したプラグインであり標準で日本語対応されているため、使いやすいセキュリティプラグインです。

「SiteGuard」では以下の設定ができます。
管理ページアクセス制限
ログインしていない接続元から管理ディレクトリ(/wp-admin/)を守ります。

ログインページ変更
ログインページ名を変更します。

画像認証
ログインページ、コメント投稿に画像認証を追加します。

ログイン詳細エラーメッセージの無効化
ログインエラー時の詳細なエラーメッセージに変えて、単一のメッセージを返します。

ログインロック
ログイン失敗を繰り返す接続元を一定期間ロックします。

ログインアラート
ログインがあったことを、メールで通知します。

フェールワンス
正しい入力を行っても、ログインを一回失敗します。

XMLRPC防御
XMLRPCの悪用を防ぎます。

更新通知
WordPress、プラグイン、テーマの更新が必要になった場合に、管理者にメールで通知します。

WAFチューニングサポート
WAF (SiteGuard Lite)の除外ルールを作成します。

このように様々なセキュリティ対策を1つのプラグインで設定できるようになります。
設定方法詳細は、下記の公式サイトをご覧ください。

参考サイトSiteGuard WP Plugin | 国産WAFのJP-Secure

まとめ

WordPressのセキュリティ対策について紹介してきました。
セキュリティ対策と一言で言っても、実際にはかなりたくさんの方法があることがお分かりいただけたかと思います。
ここで紹介したWordPressのセキュリティ対策を実行して安全にサイトを運営できるようにしてください。

情報漏洩セキュリティ対策ハンドブックプレゼント

メルマガ登録で、下記内容の「情報漏洩セキュリティ対策ハンドブック」プレゼント

1.はじめに


2.近年の個人情報漏洩の状況


3. 内部要因による情報漏洩
3-1.被害実例
3−2.内部犯行による被害統計情報
3-3.内部犯行による情報漏洩が増え続ける3つの原因
3-4.内部犯行を減らすための対策


4. 外部要因による情報漏洩
4−1.近年の個人情報漏洩の状況
4−2.実際の近年のサイバー攻撃による企業の被害実例
4−3.サイバー攻撃の統計情報
4-4.サイバー攻撃がふえ続ける5つの原因
4-5.急増する日本の企業のWEBサイト改ざんへの対策
4-6.サイバー攻撃の種類を把握しよう
4-7.日本におけるサイバー攻撃に対する国の対応と今後
4-8.外部要因による情報漏洩のセキュリティ対策

無料でここまでわかります!
ぜひ下記より無料ダウンロードしてみてはいかがでしょうか?

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでフォローしよう

おすすめの記事