連載
» 2017年05月24日 05時00分 公開

とにかく速いWordPress(18):「これだけ」はやっておこう──WordPressのセキュリティ対策、基礎中の基礎 (1/2)

エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回から2回にわたって、WordPress管理者向けセキュリティ対策の基礎とその方法を解説します。

[中村けん牛,プライム・ストラテジー]

連載バックナンバー

 前回は、2017年2月に古いバージョンのWordPressで発覚した脆弱(ぜいじゃく)性を踏まえ、その対策を万全にするための「WordPressのバージョンアップ自動化」と「最新のアップデートを適用する手順」を解説しました。そのセキュリティ対策をもっと強固にしていただくために、今回から全2回にわたって、あらためて「WordPressサイトを運用する上で欠かせないセキュリティ対策の基礎」を解説していきます。

WordPressのセキュリティ対策は、「WordPress自体の対策」と「WordPress実行環境であるサーバの対策」の2領域で行う

 WordPressのセキュリティ対策は、大きく2つの領域に分けられます。

 1つは、Webアプリケーションとしての「WordPress自体」のセキュリティ対策です。こちらは前編の本稿で解説します。もう1つは、WordPressの実行環境としての「サーバ」のセキュリティです。こちらは後編で解説します。この他に、WordPressアプリケーションの開発時に開発者が留意するべき点についても補足解説します。

 本稿で説明する内容はあくまで最低限のものとなりますが、筆者の知る限り、これらを順守した運用を正しく行っており、対策を心掛けているWordPressサイトでセキュリティ上の大きな問題が発生したことを聞いたことはありません。基礎中の基礎の対策となりますが、もし「まだ」でも、決して遅くはありません。この機会に対策を実践することを強くお勧めします。

WebアプリケーションとしてのWordPressのセキュリティ

 「WordPressを運用する上で必須の項目」として、以下の4つを挙げます。ちなみにこれらはWordPressに限った話ではなく、「Webアプリケーションを運用する上で必須の項目」と置き換えることもできます。

  1. ログインパスワードは「12文字以上」の複雑なパスワードを設定する
  2. WordPressアプリケーションを「常時SSL環境」で運用する
  3. WordPressアプリケーションを「最新状態」に保つ
  4. WordPressのファイル配置、パーミッションを適切に設定する

 順に説明します。

(1)ログインパスワードは12文字以上の複雑な文字列を設定する

 攻撃者は、攻撃の難易度が低く、「対策が甘い」サイトを狙います。「password」「1234」のようなブルートフォース辞書に載っているお手本のような安易な文字列のパスワードでは、すぐ破られてしまうのはご存じの通りでしょう。具体的には、大文字、小文字、数字、記号を混ぜた文字列が望ましいです。

 解読の難易度が高ければ、攻撃者にとってもコスト高になり、割が合わずに諦める可能性が高まります。一般的にパスワードに利用できる文字列は96種類(96通り)程度あります。単純計算ですが参考値として、文字列を1文字追加するだけでおよそ96倍に組み合わせ例が増えることも知っておくとよいでしょう。例えば8文字のパスワードは、4文字のパスワードより96の4乗で1億倍近く強固、それと同様に12文字のパスワードならば、8文字のパスワードよりさらに1億倍近く強いということになります。

 なお、ログインユーザー名についても、管理者ユーザーのデフォルトである「admin」以外を設定するのが望ましいとされています。しかしWordPressの場合、ユーザー名は外部から簡単に判定できるので、複雑なユーザー名だからといってセキュリティが強化されるわけではありません。WordPressにおいては、複雑なユーザー名を採用するよりも、適切なパスワードを1文字でも長くする方がより効果的だといえます。

(2)WordPressアプリケーションを「常時SSL環境」で運用する

 もう1つはWordPressアプリケーションを「常時SSL環境」で運用することです。パスワードの強度を上げたとしても、もし非SSL環境の“暗号化されていない”WordPressサイトを運用しているとしたら、平文での認証情報のやりとりが発生した場合にパスワードが簡単に漏えいしてしまいます。

 これは、WordPress管理画面へのログイン認証“以外”のことであってもそうです。WordPressの認証情報はログインユーザーのブラウザにクッキーとして記録されます。暗号化されていない非SSL環境だと、ログイン後に管理画面からそれ以外の領域へ、例えば「公開されているWordPressサイトのトップページへアクセスする」場合にも、ログインクッキーが平文でサーバに送信され、認証情報が漏れる可能性があるのです。

 それに対して、常時SSL環境で運用すれば、全てのアクセスが暗号化されます。この対策は今後、全てのWordPressサイト運用管理者に推奨されます。

 WordPressサイトを「常時SSL化する方法」は、以下の連載バックナンバーで詳しく解説してあります。【保存版】としてブックマークしていただき、ぜひ早期に実施することをお勧めします。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。