つい先日、世界中のWebサイトでのWordPressの利用率が3割を越えました 🎉
WordPressは以前から高いシェアを持つため攻撃や不正アクセスの標的にされており、セキュリティ強化が常に行われ頻繁にアップデートがありますが、そのアップデートについて行けなければたちまちセキュリティのリスクが高まります。
「脆弱性」と「不正アクセス」の二点を対策
セキュリティ対策と言うと、ハッキング、ウイルス、改ざん、DDoS、etc…と用語が次々出てくるので迷ってしまうと思います。
Webサイトのセキュリティは「ソフトウェアの穴(脆弱性)を塞ぐこと」と「外部からの攻撃・侵入を防ぐこと」の二点がセキュリティの要です。「WordPressのセキュリティ対策は何をすべきか不安」という方のため対応すべき項目を紹介します。
WordPressの脆弱性対策
- WordPress本体
- WordPress本体を最新にアップデートする
- 自動アップデートを有効にする
- プラグイン
- プラグインを最新にアップデートする
- 公式のプラグインを利用する
- 更新頻度の高いプラグインを利用する
- テーマ
- テーマを最新にアップデートする
- 公式のテーマを利用する
- 子テーマを利用する
不正アクセスへの対策
- アクセス制限
- wp-adminへのアクセス制限
- ログインページのURLを変える
- データベース
- データベースの接頭辞を「wp_」以外にする
- ユーザー
- 管理者IDに「admin」を使わない
- 強力なパスワードを使う
- 「表示名」を設定する
- コメント機能
- コメント、ピンバックを停止する
また今回紹介する項目をコンパクトにまとめたPDFも公開しました。
WordPressの脆弱性対策
ソフトウェア側の穴を無くすための対応をします。
WordPress本体
WordPress本体を最新にアップデートする
WordPressの基本かつ最重要なセキュリティ対策です。アップデートには機能追加だけでなくセキュリティパッチも含まれることがあるためです。
WordPress本体は過去数回致命的な脆弱性が発見されており、脆弱性を突かれると他すべてのセキュリティ対策も無意味な場合があります。バージョンアップは可能な限り早い対応が必須です。
企業サイトに利用されるWordPressでも安全に更新できる手順を以下の記事で紹介しています。
自動アップデートを有効にする
WordPress本体の軽微な不具合修正や、緊急度の高いセキュリティパッチはマイナーバージョンとして配信されます。マイナーバージョンアップはWordPressが標準で持つ自動アップデート機能でインストールできます。
マイナーバージョンは機能や表示への影響は少ないですが、それでも万一の表示崩れやプラグインへの影響を考慮し自動アップデートを無効にしているケースもあります。セキュリティを考慮すれば自動アップデートは必須です。
アップデートはWordPress管理画面から1クリックでできますが、テーマやプラグインの相性問題もあるため、事前のバックアップや事後の表示・動作確認の作業が発生します。そうした作業スケジュールを見越して対応しましょう。
プラグイン
プラグインを最新にアップデートする
高機能の人気プラグインはWordPress本体同様に攻撃の対象にされやすく、脆弱性を突かれる可能性があります。本体同様にバージョンアップは可能な限り早い対応が必須です。
公式のプラグインを利用する
WordPressのプラグイン追加画面から探せるプラグインのみ利用しましょう。登録されているプラグインは公式にレビューされており、一定のセキュリティが担保されています。公式に登録せずGithubなどで公開されている「野良プラグイン」もありますが、セキュリティの担保が無いため利用を避けましょう。
更新頻度の高いプラグインを利用する
最終更新日が1年以内のプラグインを推奨します。継続的な機能改善やセキュリティメンテナンスが期待できるプラグインを選んで利用しましょう。
テーマ
テーマを最新にアップデートする
WordPress本体同様にテーマファイルの脆弱性を突かれる可能性があります。本体同様にバージョンアップは可能な限り早い対応が必須です。
公式のテーマを利用する
WordPressのテーマ追加画面から探せるテーマのみ利用しましょう。プラグインと同じく公式にレビューされており、一定のセキュリティが担保されています。公式以外のテーマは無償・有償問わずセキュリティの担保がありません。非公式のテーマにバックドアが仕込まれていたケースもあるため、有償で購入したものでも外部テーマは慎重に利用しましょう。
子テーマを利用する
直接的なセキュリティ対策ではありませんが、テーマをアップデートしやすくするために子テーマの利用を推奨します。「テーマのアップデート=テーマファイルの上書き」のため、テーマファイルに直接カスタマイズをしているとアップデートで帳消しにされてしまいます。子テーマを適用しておけば独自のカスタマイズを適用しつつアップデートも受けることができます。
子テーマの作成方法を以下の記事で紹介しています。
不正アクセスへの対策
外部からの攻撃・侵入を防ぐための対策をします。
アクセス制限
wp-adminへのアクセス制限
WordPressの管理画面にあたる wp-admin
へのアクセス制限をしましょう。IP制限が望ましいですが、固定IPでインターネット接続をしていない場合はベーシック認証で代用しましょう。
ログインページのURLを変える
ログインページ(wp-login.php
)は真っ先に不正アクセスの対象になるため、そのURLを変えましょう。functions.phpのカスタマイズやプラグインで対応可能です。
データベース
データベースの接頭辞を「wp_」以外にする
WordPressをインストールする際に設定するデータベースの接頭辞を、デフォルトの「wp_」以外で設定しましょう。データベースを直接狙った不正アクセスや、不正なプラグイン・テーマが決め打ちでアクセスしてくるのを防ぐ意味があります。 WordPress構築語はプラグインを利用することでも変更できます。
ユーザー
管理者IDに「admin」を使わない
「admin」というID名は攻撃を受けやすいため、WordPressインストール時に変更しましょう。adminのまま作成していた場合、別の管理者IDを作成しadminを削除することで対応できます。
強力なパスワードを使う
WordPressでユーザーを新規作成すると英数記号24文字の強力なパスワードが作成されます。これを基準に全ユーザー複雑なパスワードに設定しましょう。
「表示名」を設定する
IDが露出することを避けるため、全ユーザーのプロフィールに「ニックネーム」を設定し「表示名」をニックネームにしましょう。
コメント機能
コメント、ピンバックを停止する
コメントを求めないサイトならばコメント機能は停止しましょう。「設定
→ ディスカッション
」の「投稿のデフォルト設定
」のチェックを全て外して完全に停止できます。不正アクセスというよりコンテンツ改ざん防止の意味があります。
セキュリティ対策まとめ
今回の内容をまとめたPDFを以下よりダウンロードできます。記事に収めていないプラグインについても触れていますので参考にしていただけたら幸いです。
今回は運営者でも対応できるWordPressの脆弱性・不正アクセスへの対策を紹介しましたが、これと併せてサーバー側の脆弱性・不正アクセスの対策も必要です。一般的にはサーバー事業者側の対応範囲なので、不安が残るようなら契約業者のセキュリティ情報の確認や問い合わせもしましょう。
セキュリティ対策もサイト運営と同様に一度やって終わりではなく継続的に対応するものなので、運用フローの中に取り込めればうまく付き合っていけるのではと思います。