この記事で分かること
- WordPress本体、プラグイン、テーマの版を確認する方法
- 既知の脆弱性や、配布が終了したプラグインを調べる方法
- 更新の手順と、更新する前に行うこと
- 更新できない時の考え方
WordPressの脆弱性は、多くが本体ではなく、プラグインとテーマで見つかります。要点は三つです。使っている版を把握すること。更新の前にバックアップを取ること。使っていないプラグインとテーマは削除することです。
なぜ、版の確認が必要なのか
WordPressは世界で広く使われているため、脆弱性が見つかると、その情報はすぐに公開され、攻撃にも使われます。修正版が出ているのに更新していないと、既知の方法で侵入されるおそれがあります。脆弱性の識別番号(CVE)がある問題は、攻撃者も同じ情報を見ています。
版を確認する方法
管理画面で確認する
管理画面の「ダッシュボード」から「更新」を開くと、WordPress本体、プラグイン、テーマに、更新があるかが表示されます。「プラグイン」の一覧にも、更新の有無が出ます。
WP-CLIで確認する
サーバーにSSHで入れる場合は、WP-CLIが便利です。
wp core version
wp core check-update
wp plugin list --update=available
wp theme list --update=available
1行目は現在の版、2行目は本体の更新の有無、3行目と4行目は、更新があるプラグインとテーマの一覧です。
既知の脆弱性を調べる方法
版が分かったら、その版に既知の脆弱性があるかを確認します。
- WordPress本体: 公式のリリース情報と、NVDで、版と脆弱性を確認できます。
- プラグインとテーマ: 公式ディレクトリの各ページの更新履歴(Changelog)に、セキュリティ修正の記載があります。脆弱性の情報を集めているデータベースとして、WPVulnerabilityなどがあります。
- 配布が終了したもの: 公式ディレクトリで、セキュリティ上の問題などにより配布が終了したプラグインは、その旨が表示されます。終了したプラグインは、今後も修正されません。代わりのプラグインを探します。
更新の手順
- バックアップを取る: ファイルとデータベースの両方を取ります。更新で不具合が出た時に、戻せるようにするためです。
- ステージング環境があれば、そこで先に試す: ない場合は、アクセスの少ない時間帯に行います。
- 本体、プラグイン、テーマの順に更新する: 管理画面からでも、WP-CLIでも行えます。
wp core update wp plugin update --all wp theme update --all - 表示と主要な機能を確認する: トップページ、問い合わせフォーム、会員機能、決済など、主要な機能を実際に操作します。
- 使っていないものを削除する: 無効にしているだけのプラグインやテーマにも、脆弱性は残ります。使わないものは、削除します。
自動更新を設定する
WordPress本体のセキュリティの更新は、標準で自動的に適用されます。本体のすべての更新を自動にするには、wp-config.php に次を書きます。
define( 'WP_AUTO_UPDATE_CORE', true );
プラグインとテーマは、管理画面の一覧から、個別に自動更新を有効にできます。ただし、自動更新は、不具合が起きても気づきにくい面があります。重要なサイトでは、更新の結果を確認する仕組みと、バックアップの運用をあわせて整えてください。
更新できない場合
互換性の問題などで、すぐに更新できないことがあります。その場合は、次を検討します。
- 脆弱性の内容を確認し、その機能を使っていなければ、該当の機能を無効にする
- WAFや、セキュリティ用のプラグインで、該当の攻撃を一時的に遮断する(根本の対策ではありません)
- 更新を妨げている原因(古いテーマやプラグイン)を、別のものへ置き換える計画を立てる
あわせて確認したい設定
- 管理者のパスワードを強いものにし、二段階認証を使う
- 使わない場合は、
xmlrpc.phpを無効にする - 管理画面からのテーマとプラグインの編集を無効にする:
define( 'DISALLOW_FILE_EDIT', true ); - ユーザー名の一覧が、REST API(
/wp-json/wp/v2/users)で取得できないようにする
Webサイト セキュリティチェッカー「Security Checker X」は、URLを入力するだけで、WordPress本体の版、公開されているプラグインの版、配布が終了したプラグインの有無、ユーザー名の一覧の取得可否、xmlrpc.phpの状態などを診断できます。登録は不要です。公開されている情報から読み取れる範囲の診断で、管理画面の内側までは確認できません。
よくある質問
WordPressの版を、外から知られないようにすれば安全ですか?
版の表示を隠しても、脆弱性は直りません。攻撃者が版を知るための手がかりを減らす効果はありますが、本質的な対策は更新です。隠すことは、更新の代わりにはなりません。
プラグインは、使っていなければ無効にするだけでよいですか?
無効にしても、ファイルはサーバーに残り、脆弱性のあるファイルに外から直接アクセスされることがあります。使わないものは、削除してください。
更新で、サイトが壊れないか心配です。
更新の前に、ファイルとデータベースのバックアップを取り、可能なら、同じ構成のステージング環境で先に試してください。壊れた場合は、バックアップから戻せます。
更新の通知が出ないプラグインも、確認が必要ですか?
必要です。有料のプラグインや、公式のディレクトリに無いプラグインは、更新の通知が出ないことがあります。提供元のサイトで、最新の版を確認してください。
関連記事
- Webサイトのセキュリティチェック項目30選|確認方法つき一覧表
- .gitや.envが公開されていないか確認する方法と、見つかった時の対処
- セキュリティヘッダーの設定方法|HSTS・CSPの設定例つき
関連する用語
サイトの設定を無料で確認する
この記事の内容を、自分のサイトで確かめたい時は、Webサイト セキュリティチェッカー「Security Checker X」をお使いください。URLを入力するだけで、登録なしで診断できます。










コメント