WordPressでサイト制作をする大きいメリットの一つとして、プラグインが利用できる点が挙げられます。様々なプラグインが無償で公開されているため、ほしいと思った機能はたいていプラグインで手に入る、という素晴らしい環境です。
サイト制作を自分で(自社で)しても、制作会社(フリーランス)に依頼しても、いずれもプラグインを1つも使わないということは現実的にほぼあり得ません。
一方、注意したいのが「どんなプラグインを利用しているか」「正しくプラグインのメンテナンスができているか」ということ。
- 公式ディレクトリから停止されたプラグイン
- 最終更新日が数年前となっているプラグイン
- 公開時からアップデートをしていない
- 脆弱性が発見されたプラグインを利用している
ひとつでも上記に当てはまったら要注意。WordPressのアップデートができなかったり、いつの間にかサイトが改ざんされていたり、情報漏えいしていた、ということリスクがあるため非常に危険です。
一つずつ見ていきましょう。
目次
公式ディレクトリから停止されたプラグイン
WordPressのプラグインが安全に継続的に利用できるのは、WordPressが定めたガイドラインに則って開発者がプラグインを開発し、WordPress側もプラグインの審査を行っているからです。審査を通過後、ガイドラインに違反する行為が発見されても修正されなかったり、審査を通過したもののガイドラインに違反していたのが発覚した場合、プラグイン公式ディレクトリから停止されます。
停止後もガイドライン違反を修正しないと、公式ディレクトリから停止されるため、インストールやアップデートができません。
ガイドラインに違反したプラグイン例:
- social-media-mashup (ガイドライン違反)
- wp-facebook-open-graph-protocol (ライセンス違反)
- count-per-day(ガイドライン違反)
- contact-form-7-datepicker (セキュリティの問題)
ガイドライン違反すると公式ディレクトリやWordPressのプラグイン新規追加からのプラグイン検索には引っかからなくなります。
最終更新日が数年前となっているプラグイン
WordPressプラグインはWordPress自体のアップデートや新しいPHPのバージョンによる変更に対応したり、セキュリティ対応や修正等によってアップデートがされます。特に有名なプラグインや利用者が多いプラグインはアップデートが頻繁な傾向にあります。
一方、アップデートされないままのプラグインも存在します。
その場合、このように公式ディレクトリのプラグインページに注意メッセージが表示されます。こうなってしまう背景としては、開発者が個人で、プラグインのメンテナンスに時間を割けない、開発を止めてしまった等が考えられます。WordPressのプラグインは原則無料で利用できるため直接の収益は見込めないため、なかなか個人で開発を続けることはそう簡単なことではありません。
最終更新日が古いプラグインの例:
- WP Social Bookmarking Light (3年前)
- Delete Custom Fields (9年前)
- Theme Test Drive (6年前)
もし利用しようとしたプラグインの最終更新日が数年前だった場合、今後もメンテナンスされない可能性が高いため、利用時には代替プラグインがないか、機能はプラグインを導入しないで実現できないかどうか確認しましょう。
公開時からアップデートをしていない
サイト制作を制作会社に依頼し、無事公開し納品完了。WordPressからブログ記事の更新も行っている。ただ、公開してからWordPressやプラグインのアップデートをしていない。
このケースたまにあります。程度によりますが、結構リスクが高い可能性があります。WordPressはプラグイン含めてオープンソースで無料で利用できる反面、脆弱性が頻繁に世界中から報告され、その都度対応したバージョンが公開されています。
マイナーアップデートを有効化している場合は、自動的にセキュリティアップデートされたバージョンへアップデートされますが、そうではない場合は脆弱性があるバージョンのためリスクに晒されます。また、現時点でWordPress4.0以下はマイナーアップデートが行われていませんので、4.0以下のバージョンを使っている場合も同様です。
プラグインはWordPressコアと異なり、各バージョンの最新という概念がなく、セキュリティリリースも新しいバージョンで実施されます。よって、プラグインは基本的に最新のバージョンにしておくのが望ましいです。また、プラグインによって必須WordPressバージョンが異なります。
各プラグインと必須WordPressバージョンの例
- Contact Form 7: 5.5以降
- Elementor Website Builder: 5.0以降
- Yoast SEO: 5.6以降
- Advanced Custom Fields: 4.7以降
例えば、2020年末に見つかったContact Form 7の脆弱性(以前記事書きました)は同プラグインのバージョン 5.3.1 以下において、セキュリティリスクに晒されるというもの(参考: NVDによるとセキュリティスコアは10点中で10点)でしたが、対応されたプラグインのバージョン5.3.2を利用できるWordPressのバージョンは5.4(当時)でした。なので、WordPress5.4未満の場合、Contact Form 7のアップデートができないため、WordPressを5.4以降にアップデートする必要があります。問題なくアップデートできればいいのですが、他にも影響が考えられる場合や、アップデートによって不具合が生じる場合はまずそこをクリアしないといけません。
サイト公開後にアップデートを全くしていないと、このように緊急的に発生するセキュリティアップデートに対応できず、リスクがある状態でサイト運用となってしまうため注意が必要です。
脆弱性が発見されたプラグインを利用している
上記とも重なりますが、脆弱性が発見されたプラグインを利用している場合セキュリティ対応された安全なバージョンを利用しないとリスクに晒されます。
脆弱性が発見されたプラグイン一例(対応バージョンにて解決済み)
- Elementor Website Builder: 3.1.2以下でXSS
- WooCommerce: 5.1以下でXSS
- All in One SEO Pack: 3.6.1以下でXSS
- Elementor Website Builder: 3.1.2以下でXSS
- WPForms: 1.5.8以下でXSS
- All-in-One WP Migration: 6.9以下でXSS
- Welcart e-Commerce: 2.2.4以下でXSS
- Custom Post Type UI: 1.7.2以下でCSRF
- Ultimate Member: 2.1.11以下で権限昇格
これらは中には500百万以上のサイトで使われるほど、有名で人気のプラグインもあり、インストールしているサイトも多いでしょう。セキュリティアップデートされたバージョンが既にリリースされているため、アップデートを行っていれば問題有りませんが、適切にアップデートしていないと、脆弱性のあるバージョンを使っている状態になります。
サイト公開後からWordPress本体もアップデートできていない場合は、前述のように必須WordPressのバージョンに届かないためプラグイン側もアップデートできないという状態に陥ってしまいます。
個人のウェブサイトならまだしも、法人のコーポレートサイトや、特にECサイトや会員サイト等の場合、セキュリティ被害は深刻なダメージです。ご利用のWordPressサイトで脆弱性が発見されているバージョンを使っていないか早急にチェックしましょう。
プラグインを適切にアップデートするには
確認したところ、古いバージョンのプラグインが見つかった、脆弱性のあるバージョンを使っていた、公式ディレクエトリから削除されたプラグインを使っていた、最終更新日が数年前で使い続けていくのに不安、といった場合はどうすればいいでしょうか。
まずは焦らず落ち着いて、本番サイトでいきなりアップデート等は避けましょう。不具合が発生したりサイトが見られなくなる可能性があります。
テスト環境があるかどうか確認してください。ない場合は作成しましょう。同じサーバー上が望ましいです。
バックアップをとった上で、テストサイト上でプラグインの確認やアップデートの検証を行います。アップデート後はサイト一通りの確認や、管理画面側も確認します。まとめてアップデートすると不具合発生時にどのプラグインの影響かわからないため、一つずつアップデートしてという確認が好ましいです。
不具合が発生したプラグインがあれば、エラー内容を表示させるため、wp-config.php 内に記載されている WP_DEBUGをfalseからtrueに変更します。
// define( 'WP_DEBUG', false );
define( 'WP_DEBUG', true );
エラー内容を確認して対処します。エラーの内容がよくわからない……という場合は、WordPressのサポートフォーラムで過去に同様の事例がないか探してみたり、ウェブ検索したりするなりして、どうにか見てみましょう。それでも対応策がない場合は自力での対応は難しい可能性が高いので、プロに依頼するのが間違いありません。
プラグインのアップデートが問題なければ、WordPressコアやテーマも同様にアップデートします。アップデート後、再度プラグインのアップデートがあればそれも行い、すべてのアップデートを最新状態にします。これで問題なければ、いよいよ本番側もアップデートを行います。テスト側で行ったことがあればメモを残しておいて、本番側も同様の作業を行います。もちろんバックアップは忘れずに。
プラグインのアップデートは忘れずに
以上、脆弱性が発見されたバージョンを使っていてリスクがある状態でサイト運営をしていると注意というお話でした。WordPress保守管理サービスをお申し込みいただく際に状態を確認しますが、古いプラグインを使い続けていてリスキーなケースが頻繁にあります。ある日突然サイトが見られなくなっても困らなければいいかもしれませんが、会社サイトやECサイト、会員サイト等は大問題なので、適切に運用することをお勧めします。
コメントを残す