CMS(コンテンツマネジメントシステム)の決定版とも言えるWordPressは、日本のみならず世界中で使われています。
しかしユーザーが多いということは、それだけ攻撃者の関心も高いということです。
WordPressはインターネット上に誰でもアクセスできる管理画面が使われています。
そのため不正アクセスや脆弱性を悪用した攻撃が後を絶ちません。
特に企業サイトをWordPressで構築していた場合、攻撃を受けてWebサイトが改ざんされたり個人情報が流出してしまうと、金銭的な被害だけでなく社会的な信用も失われてしまいます。
WordPressを運営する上でセキュリティ対策は必要不可欠です。
今回はWordPressのセキュリティ対策として外せない10個の対策について徹底解説します。
目次
WordPressはなぜ狙われるのか
WordPressは2003年に公開されて以来、様々なWebサイトにて使われています。
世界中で使用されているCMSのうち60%のシェアを持ち、Webサイト全体でみると30%がWordPressで作られています。世界中のWebサイトの3分の1がWordPressで作られていることになり、これからもユーザーが増えていくことが予想されます。
しかしながらユーザーが多いということは、必ずしも良い事ばかりではありません。
もしWordPressに対する脆弱性が発覚してしまったら、世界中のWordPressのサイトが攻撃対象として狙われてしまいます。
もともとWordPressのユーザーは多いため、攻撃者にとっても脆弱性を悪用したり不正アクセスをしたりと恰好の的になりやすいのです。
実際にWordPressは現在でもバージョンアップを繰り返していますが、そのバージョンアップには脆弱性対策のためのものも含まれています。
またWordPressは初心者に使いやすい仕組みになっているため、管理画面のURLやプログラムのファイル構造などが決まっているため、攻撃者しやすい点も狙われる理由の1つです。
WordPressはオープンソースのプログラムであるため、攻撃者が内部の構造を確認して脆弱性を発見できることも、WordPressが攻撃されやすい原因になっています。
それではWordPressのユーザーである私たちは、具体的にどのようなセキュリティ対策をとれば良いのでしょうか。
それには次の3つのポイントがあります。
- WordPressのプログラムの管理
- WordPressの不正アクセス対策
- WordPressの運用管理
WordPressのセキュリティ対策を上記3つに分類し、絶対にやっておきたい10個の対策について詳しく解説しましょう。
WordPressのプログラムの管理
WordPressはPHPやJavaScriptなどのプログラミング言語で開発されています。まずはWordPress本体とプラグインといったプログラムの管理に関する対策を紹介します。
1.「WordPress本体」「プラグイン」「テーマ」を最新の状態にする
WordPressでは「本体」と「プラグイン」と「テーマ」がPHPやJavaScriptなどのプログラムで動作しています。
それらはバグや脆弱性が発見されると、速やかに修正されて新しいバージョンのプログラムとして公開されます。
WordPressには「メジャーアップデート」と「マイナーアップデート」の2種類があります。
管理画面のレイアウト変更や大幅な機能追加が行われたときのバージョンアップ。通常は自動更新されずに、手動で更新ボタンをクリックしてアップデートを行う
バグ修正やセキュリティ対策を目的とした小さなアップデート。基本的に自動更新される。新しいマイナーアップデートが公開されるとWordPressが自動的にバージョンアップを行う
本体、プラグイン、テーマを古いバージョンのまま使用しつづけると、プログラムのバグや脆弱性がそのままの状態になってしまい、攻撃を受けたときに何らかの被害が発生する可能性があります。
WordPressでは本体、プラグイン、テーマの最新バージョンが公開されると、新しいバージョンが存在することを通知し、WordPressの管理画面上からアップデートできる機能が備わっています。

このような機能を活用して、本体、プラグイン、テーマは常に最新の状態を維持するようにしましょう。
2.プラグインとテーマは公式のものを使う
先ほどプラグインやテーマは管理画面上からバージョンアップできると説明しましたが、この機能が使えるのはWordPressが公式に認めたプラグインやテーマだけです。
公式に認められたプラグインやテーマは、厳しい審査を受けて合格したものだけです。
つまり公式プラグインやテーマの最新バージョンは基本的には安全であり、悪意のある攻撃に対しても適切な対策が取られています。
しかしインターネット上には「野良プラグイン」や「野良テーマ」と呼ばれる非公式のプラグインやテーマが公開されています。
これらの野良のプログラムは公式に公開されるための審査を受けずに公開されていることが一般的です。
そのためWordPressの管理画面上で検索しても表示されません。
管理画面上からもバージョンアップできないため、もし開発者が新しいバージョンを公開しても、ユーザーは古いバージョンのものを使い続けることになる可能性があります。
WordPressのプラグインやテーマは最新のものを使うのが鉄則です。
そのためにはプログラムのバージョンアップが適切に通知される、公式のプラグインやテーマを使うことを強く勧めます。
3.使用していないプラグインは削除する
WordPressはプラグインを使うことで、様々な機能を追加できます。
しかしWordPressの運営を続けていくにつれて、使わなくなったプラグインが出てくることがあります。
さきほども紹介したようにプラグインはPHPやJavaScriptで開発されているプログラムです。
つまり適切な管理がされていないと、攻撃対象となる可能性があります。
また不要なプラグインを削除することは、WordPressのサイトの動作を軽くする効果もあります。
もし使わなくなったプラグインが出てきたら、そのまま放置せずに管理画面上から削除するようにしましょう。
WordPressの不正アクセス対策
引き続きWordPressの不正アクセス対策についてご紹介します。
特に注意したい点はログイン画面やWordPressのシステムで使われているファイルへの対策です。
4.デフォルトのユーザー名「admin」は使わない
WordPressをインストールした直後には「admin」という名前のアカウントが設定されています。
つまりデフォルトのアカウント名なわけですが、この「admin」に対してブルートフォースアタック(パスワード総当たり攻撃)を仕掛ける攻撃者が後を絶ちません。
「admin」を使っていても複雑なパスワードを設定していれば問題ないのでは?
とお考えかもしれせん。
しかし少しでも不正アクセスされる可能性を減らすためにも、「admin」というアカウントは使わず、別途管理用のためのアカウントを設定することがおすすめです。
5.アカウントを厳重に管理する
WordPressで使用するアカウントを厳重に管理しましょう。
WordPressに設定するアカウント数はできるだけ少なくして、パスワードも複雑なものを設定することが重要です。
WordPressのアカウントには与えられる権限別に「管理者」「編集者」「寄稿者」などが設定可能です。
複数のアカウントを使う場合は、できるだけ必要最小限の権限が与えられたアカウントを設定することが基本です。
さらにアカウントの権限を細かくカスタマイズしたオリジナルの権限アカウントを作成することも可能です。
WordPressを複数名で運用する際には、アカウントのパスワードや権限などをしっかりと設定し、厳重に管理することが重要です。
6.wp-config.phpへ外部からアクセス不可にする
WordPressを動作させるため情報が記載されている「wp-config.php」ファイルへの外部からのアクセスを制限しましょう。
「wp-config.php」にはWordPressが使用しているデータベースのIDやパスワードなどが生の状態で記載されています。
他にもWordPressを動作させるための各種設定が書かれており、外部からアクセスされると危険です。
「wp-config.php」に対するアクセス制限をするためには、「wp-config-.php」ファイルのあるディレクトリの「.htaccess」ファイルに以下の記述を追加します。
<Files wp-config.php>
order allow,deny
deny from all
</Files>
7.wp-login.phpにBasic認証を設置する
WordPressの管理画面へのログインURLである「wp-login.php」ファイルに対してBasic認証を追加することも有効です。
これによりWordPressのログインを二重化するような効果が得られます。
「wp-login.php」へBasic認証をかけるためには、
①.htaccessファイルに対する記述の追加
②.htpasswdファイルを作成してサーバーに設置する
上記2つの作業が必要です。
まず「wp-login.php」のファイルのあるフォルダの「.htaccess」ファイルに以下の記述を追加します。
<Files wp-login.php>
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>
AuthUserFile /path/to/.htpasswd
の部分には「.htpasswd」ファイルへのフルパスを設定します。
「.htpasswd」ファイルを設置するフォルダに、
<?php echo __FILE__; ?>
上記コードの書かれたPHPファイルをアップロードしてブラウザでアクセスすると、そのファイルへのフルパスが取得できます。
また、「.htpasswd」ファイルの内容はジェネレータを使うと簡単に作成できます。
WordPressの運用管理
WordPressでWebサイトを運用する時に気を付けたいポイントを紹介します。
8.Akismetでスパムコメント対策する
AkismetとはWordPressに標準で導入されているプラグインの1つです。
スパムと思われるコメントやトラックバックを自動的に判定して分類してくれます。
WordPressの運営を続けて、記事数が増えていくと、PVも増えていきますが、それにつれてスパムコメントも頻繁に送信されてくるようになります。
スパムコメント自体にはそれほど危険性はないのですが、コメント中のURLが危険なWebサイトのURLの可能性もあります。
また、スパムコメントをほったらかしにしていると、Webサイトの訪問者が「ここはしっかりと管理されていないWebサイト」だと判断して、再訪問しない可能性もあります。
スパムコメントへの対応は重要ですが、いちいち手動で処理していくと、手間がかかり大変です。
その手間をできるだけ省いてくれるプラグインがAkismetです。
またAkismetには、お問合せフォームプラグイン「Contact Form 7」と連動して動作させることも可能です。
これによりコメントやトラックバックだけでなく、お問合せフォームからのスパムメールにも対応できます。
9.セキュリティ対策プラグイン「SiteGuard」を導入する
WordPressのセキュリティ対策プラグイン「SiteGuard」の導入もおすすめです。
WordPressには他にも多数のセキュリティ対策プラグインがありますが、「SiteGuard」は国産のプラグインであり、日本語に完全対応しています。
- ログインしていない接続元からのアクセス制限
- ログインページ名の変更
- ログインページ、コメント投稿への画像認証追加
- ログイン詳細エラーメッセージの無効化
- ログイン失敗を繰り返すと一定期間ロックされる
- ログインがあるとメールで通知する
- ログインのフェールワンス
- XMLRPCの防御
- 本体、プラグイン、テーマの更新通知
- WAF(SiteGurad Lite)の除外ルール作成
- ログイン履歴の確認
このようにWordPressに必要なセキュリティ対策一式がそろっています。
セキュリティ対策としては、このプラグインを1つ導入しておけば問題ないでしょう。
他のセキュリティ対策プラグインを併用する必要はありません。
WordPressには様々な種類のプラグインがあり、それらには同じような機能を提供しているプラグインが複数あることもあります。
それらを同時にインストールして有効化してしまうと、機能が競合してしまって、WordPressの動作が不安定になったり、重くなったりすることがあります。
セキュリティ対策プラグインも同様に1つだけ導入するようにしましょう。
それが「SiteGuard」プラグインです。
10.定期的にバックアップを取る
「WordPressのデータが消えてしまった」
「WordPressのサイトが不正アクセスされて改ざんされてしまった」
このような事態に対応するためにも、WordPressのデータを定期的にバックアップすることが重要です。
WordPressのサイトがどうなってしまっても、バックアップさえ残してあれば復旧は可能です。特にWordPressサイトを長期間運営していた場合は、バックアップなしでゼロからやり直すのは大変です。
WordPressのバックアップ対象となるデータは
- WordPress本体とプラグイン(FTPサーバー)
- テーマ(FTPサーバー)
- メディアファイル(FTPサーバー)
- データベース(データベースサーバー)
の4つです。この4つのデータを整合性を維持した状態でバックアップを取り、いざという時に復元できる体制を整えておくことが重要です。
WordPressのバックアッププラグインとして有名なのが「BackWPup」というプラグインです。

これはWordPressのすべてのデータを定期的にバックアップしてくれるプラグインです。
またWordPressを丸ごと移行するプラグイン「All-in-One WP Migration」もバックアップのためのプラグインとして利用できます。
このプラグインに関しては当サイトで詳しく解説していますので、ぜひご覧ください。
WordPressには他にも様々なバックアッププラグインがあります。導入の際にはバックアップを取る方法だけでなく、取得したバックアップから復元する方法についても押さえておくことが重要です。
またWordPressのプラグインではなく、WordPressを設置しているレンタルサーバーにもバックアップ機能が備わっているものがあります。
レンタルサーバーのマニュアルをよく読んで、バックアップと復元の方法を押さえておきましょう。
セキュリティ対策を万全にして安全なWebサイトを運営しよう
WordPressは非常に便利なソフトウェアですが、攻撃の対象となりやすく様々なセキュリティ上のリスクがあります。
今回紹介したセキュリティ対策はどれも基本的なものばかりですが、全て同時に導入するのは難しいかもしれません。
しかしインターネット上でWebサイトを公開するということは、自分が被害者になるだけでなく、加害者になってしまう可能性もあるのです。
例えばWordPressが改ざんされて危険なURLを含んだ投稿を公開してしまうケースなどです。
WordPressでWebサイトを運営する際には、適切なセキュリティ対策を取り、訪問者にとって安全なWebサイトであることが、常に求められるでしょう。