WordPressのセキュリティ強化に有効な13の対策項目

WordPressのセキュリティ強化に有効な13の対策項目

WordPress(ワードプレス)は、Webサイトを作成するためのオープンソースのアプリケーションソフト(CMS)で、世界中の多くWebサイトがWordPressで作成されていると言われています。

それゆえに、セキュリティのぜい弱性を狙われやすいアプリでもあります。

Windowsが狙われやすいのが、世界中の多くのパソコンがWindowsを利用しているからと同じことですね。

そのため、WordPressを利用してWebサイトを運営する際に、適切なセキュリティ対策を実施していないと、改ざんやデータ漏えいなどの被害を受ける可能性が高くなります。

そこでここでは、WordPressのセキュリティ強化に有効な対策項目を紹介します。

なお、各項目の詳しい設定方法はここでは割愛しているので、項目ベースでのチェックにお役立てください。

WordPress本体とプラグインは常に最新に

セキュリティ対策の基本の一つに「ソフトウェアを常に最新に保つ」があります。

WordPress環境でも同じことが言え、WordPress本体とプラグインは、可能な限り常に最新に保ちましょう。

特に、インターネットに公開している環境で、古いバージョンを使い続けることは危険性が高いので、特別な事情がない限り最新バージョンを使いましょう。

バージョンアップによる動作への影響が心配な場合は、バージョンアップ前にバックアップを採ったり、事前にバージョンアップ後の動作確認がきる検証環境などを準備しておきましょう。

信頼できるプラグインを利用する

WordPressプライグインの中には、公式サイト(https://wordpress.org/)以外で提供されているプラグインがあります。

ですが、提供元の信頼性が高い場合を除き、公式サイト以外からプラグインを導入するのは控えたほうがよいでしょう。

また、公式サイトからプラグインを導入する場合も、プラグインの導入実績や更新頻度を確認し、導入実績が豊富で、定期的に更新されているプラグインを選択するようにしましょう。

長期間更新されていないプラグインは、セキュリティのぜい弱性が放置されている可能性もあります。

定期的にバックアップを取る

WordPress環境では、プラグインを更新したらサイトが表示されなくなった、サイトを攻撃されデータを改ざんされたなど、不測の事態が起こる可能性があります。

そのような場合に備えて、WordPress環境は定期的にバックアップしておきましょう。

バックアップ方法としては、自分でバックアップツールを用意して実行する方法や、WordPressプラグインで対応する方法があります。

個人的には「UpdraftPlus」などのWordPressプラグインで対応する方法が、カンタンでおススメです。

WordPressのバックアップなら「UpdraftPlus」がおすすめ
ここでは、WordPress環境をバックアップ/復元できるプラグインとしておすすめの「UpdraftPlus(無料版)」の特長と基本的な使い方を紹介します。

既定の管理者ユーザー「admin」は使わない

WordPressをインストールすると、デフォルトの管理者アカウントとして「admin」が作成されますが、WordPressへの不正ログインや、不正ログインの試行のほとんどがこの「admin」アカウントをターゲットとして行われています。

面倒でもこの「admin」アカウントは削除して、新しい管理者アカウントを作成しましょう。

二段階認証を導入する

WordPressは、管理ページへのログインがデフォルトでパスワード認証となっています。

パスワード認証でも、複雑なパスワードを設定すれば、セキュリティを若干強化できますが、セキュリティ対策としては不十分です。

パスワード認証に加えて、新たな認証を追加してセキュリティ強化しましょう。

たとえば、WordPressプライグインを利用して画像認証機能を追加したり、アクセスコードによる認証を追加する方法があります。

また、不正アクセスのほとんどが海外からの接続であることを考えると、画像認証にひらがなを利用することも効果的です。

ログインページのアクセスを制限する

WordPressの管理ページのURLは、デフォルトでは「http://<ドメイン名>/wp-login.php」となっており、WebサイトがWordPressで作られていることがわかれば、ログイン画面のURLも容易に推測することができます。

そこで、ログインページのURLを変更するか、ログインページへアクセスできるIPアドレスを制限して、容易にログインページへアクセスできないようにすることでセキュリティを強化できます。

ログインページのURLを変更するには「Login rebuilder」などのプラグインを利用するのがカンタンでしょう。

Login rebuilder – WordPress プラグイン | WordPress.org

ログインページへのアクセスをIPアドレスで制限する場合は、Webサーバーの設定で制限することもできます。

管理画面からのファイル編集を禁止する

WordPressの管理画面にあるテーマエディタでは、デフォルトでファイル編集が可能ですが、管理画面からファイル編集が可能な状態だと、不正アクセス時にマルウェアを埋め込まれたりする危険性があります。

そこで、ファイル編集はSSH接続など別の接続方法で実施するようにして、管理画面からの編集を禁止することで、セキュリティを強化できます。

設定方法は「wp-config.php」に以下を追記します。

define('DISALLOW_FILE_EDIT' ,true );

ユーザー名を隠す

WordPressには「投稿者アーカイブ」というページがあり、投稿者ごとの記事一覧が表示できますが、デフォルトのままだと投稿者(管理者)のユーザー名が、URLなどから容易に確認できるため、不正アクセスの危険性があります。

そこで、次のような対策を行うことで、セキュリティを強化できます。

  • 投稿時に使用するユーザーは管理者ユーザー以外にする
  • 記事に表示されるユーザー名をニックネームに変更する
  • 投稿者アーカイブのURLを変更する
  • 投稿者アーカイブを無効化する

個人サイトであれば、投稿者アーカイブを無効化するのがおススメです。

テーブル名を変更する

WordPressでは、データベースのテーブル名の接頭語にデフォルトで「wp_」が使用されますが、デフォルトのままだと容易にテーブル名が推測でき、SQLインジェクションなどのデータベースへの不正アクセスの危険性があります。

そこで、テーブルの接頭語を任意の文字列に変更しておくことでセキュリティを強化できます。

テーブル名の接頭語は、WordPressインストール時であれば、セットアップ画面で変更することができます。

すでにWordPressがインストールされている環境では、WordPressプラグインなどを使って接頭語を変更することができます。

セキュリティ系プラグインを導入する

WordPressにはセキュリティ関連のプラグインが多数あり、導入することでここで挙げている対策のいくつかを簡単に設定でき、セキュリティを強化できます。

有名どころとしては「SiteGuard WP Plugin」や「All In One WP Security & Firewall」が挙げられます。

特に「SiteGuard WP Plugin」は、国産のプラグインで管理画面も日本語表示なので、英語が苦手な方でも安心して利用できます。

SiteGuard WP Plugin – WordPress プラグイン | WordPress.org

All In One WP Security & Firewall – WordPress プラグイン | WordPress.org

WordPress環境へ安全に接続する

WordPress環境へファイルなどを転送する場合、FTPなどデータが暗号化されていない接続方法は、通信内容をのぞかれる危険性があります。

インターネットカフェなど信頼できないネットワークを経由して接続する場合は特にです。

そこで、WordPress環境へファイルなどを転送する場合は、接続経路が暗号化されているSSH接続、またはSFTP接続を利用することで、セキュリティを強化できます。

アクセス権を設定する

ルートディレクトリや「wp-config.php」など、WordPressを構成するファイルやディレクトリには、適切なユーザーに適切な権限(読み取り・書き込み・実行)を付与します。

どのように設定するかは、以下の公式サイトが参考になるでしょう。

ファイルパーミッションの変更 - WordPress Codex 日本語版

アクセスログを採る

コンピューターシステムに対してどんなにセキュリティ対策を行っても、完全にセキュリティ事故を防ぐことはできません。それは、WordPress環境でも同じです。

そこで、万が一何らかのセキュリティ事故が起こった場合でも、素早い対応や対策が行えるよう、アクセスログを取得しておきましょう。

アクセスログは、WordPressプラグインで対応するか、Webサーバーのログで記録することができます。

あとがき

ここで紹介した対策はWordPress特有の対策項目ですが、実際の環境では、これに加えてファイアウォールを設定するなどの対策も必要になるでしょう。

また、WordPressの稼働環境によっては、ここで紹介したすべての対策項目を実施する必要がないこともあるので、自分の利用しているWordPress環境で必要な対策項目を確認しましょう。

なお、WordPressのセキュリティ対策の多くはプラグインを導入することで対応できますが、プラグインを導入しすぎると、サイトの動作が遅くなったり、予期せぬ動作を引き起こす原因にもなりますので、どの対策をプラグインで対応するかもよく検討しましょう。