WordPressのプラグイン経由でマルウェア感染?どのように防ぐのか?

ワードプレスプラグイン

先日、セキュリティーソフトの会社のホームページを閲覧していましたら、何やら非常に気になるコンテンツがあり非常に参考になったため拡散したいと思います。

世界中で多く利用され、導入率トップを誇るCMSがWordPressだ。その利便性の反面、導入率の高さを要因とするセキュリティリスクも存在する。中でも、プラグインは無償で利用できるものも多く、導入も容易なため見過ごされがちなリスクの1つだ。WordPressのプラグインに潜むリスクとその対策について解説する。

利便性が高く、普及しているがゆえに狙われるWordPress
先述のとおり、WordPressは世界で広く利用されるCMSだ。W3Techsの調査によると、2022年4月時点で、CMSが導入されているWebサイトのうち約65%でWordPressが使われており、そのほかのCMSを大きく引き離していることがわかる。世界中のすべてのWebサイトを母数とした場合でも、約43%でWordPressが導入されていることからも、その人気ぶりがわかる。ただし裏を返せば、WordPressの脆弱性を突く攻撃手法を開発することで、世界中の40%を超えるWebサイトを標的にできるということでもある。攻撃者にとってはリソースを割くことに価値があると言えるだろう。

また、企業や個人ブログなどで幅広く導入されているがゆえに、メンテナンスが行き届いていないケースも見受けられる。ベンダーから脆弱性に対するセキュリティアップデートが提供されているにもかかわらず、適用されていないWebサイトも散見される。WordPressの本体だけでなく、プラグインの脆弱性がマルウェア感染を誘発するケースも少なくない。このような背景もあり、WordPressはサイバー攻撃者から格好の標的となっているのだ。

WordPressにおけるマルウェア感染のパターン

WordPressの運用におけるマルウェア感染リスクは、大きく以下3つのパターンが存在する。

1)WordPress本体の脆弱性によるマルウェア感染
WordPress本体の脆弱性を突かれてマルウェアに感染するパターン。ソフトウェアには脆弱性が付きものであり、WordPressも例外ではない。例えば、2017年に発表されたWordPressのバージョン4.7.2ではREST APIに関する脆弱性があり、約10万件に及ぶ改ざん被害が発生した。

2)Webサイト管理者の端末への不正アクセスによるマルウェア感染
Webサイト管理者の端末が不正アクセスを受け、認証情報が漏えいしてしまうケースも考えられる。管理者の端末にバックドアを仕込まれ、裏側でWordPressの管理画面やFTPへの不正なアクセスを許してしまった結果、Web改ざんなどの被害に遭遇してしまう。

3)WordPressプラグインの脆弱性によるマルウェア感染
プラグインもソフトウェアであることから、脆弱性の発覚は付きものだ。また、サードパーティ製のものをはじめ、有償・無償を問わず多くのプラグインが出回っており、複数のプラグインをインストールしているWebサイトも少なくない。WordPress本体はアップデートしていても、プラグインのアップデートを怠っているケースもある。無償で容易に導入できてしまうことで、アップデートが行われていないなど、適切な管理がされていないWebサイトも散見される。

最近は、有名なWordPressのプラグインで脆弱性の発覚が相次いでいる。脆弱性を放置しておくと、攻撃者の格好の標的となりかねないため、速やかに対応するようにしたい。

WordPressプラグインで発覚した主な脆弱性
これまで多くのWordPressプラグインで脆弱性が発覚している。以下、多くのユーザーが利用しているプラグインで発覚した脆弱性の事例を紹介する。

1)利便性が高いファイル管理プラグインの脆弱性
2020年9月、ファイルやフォルダーの管理がWordPress上で行えるプラグインに脆弱性が発覚。リモートでのコード実行が可能になる脆弱性で、情報窃取や改ざん、システム破壊などのリスクが、プラグインを導入済みの約35万以上のWebサイトに生じた。最新バージョンでは脆弱性は修正されている。

2)導入率が高いSEOプラグインの脆弱性
2021年12月、導入率が高いSEOプラグインにて権限昇格やSQLインジェクションの脆弱性が発覚した。このプラグインを導入済みの300万以上のWebサイトに影響を与えた。最新版では修正されている。

3)50万以上のサイトに影響を与えたサイトの統合管理プラグインの脆弱性
2020年1月、複数サイトを統合管理できるプラグインの脆弱性が発覚。認証を突破できてしまう脆弱性で、パスワードなしで管理画面へログインできるリスクがあったという。同プラグインを導入している50万以上のサイトへ影響を与えた。現時点ではアップデート版がリリースされ、修正されている。

また、jQueryやGoogle Analyticsのコードに偽装するマルウェアも確認されている。クリプトジャッキングに代表されるこの手のマルウェアに感染すると、Webサイトに訪問したユーザーのコンピューターのリソースを、暗号資産のマイニングに利用するためのプログラムを読み込ませようとする。

意図せずサイバー攻撃の温床になってしまう場合も
2021年11月以降、一時期は沈静化していた「Emotet(エモテット)」の活動が再活発化している。Emotetは非常に感染力が強いマルウェアで、過去には世界的な流行を引き起こした。

Emotetの感染プロセスにおいて、WordPressの脆弱性を悪用するケースも確認されている。脆弱性を突き、不正に改ざんしたWebサイトからEmotetのダウンローダーが添付されたメールを配信する。このように、WordPressやプラグインの脆弱性を放置することで、知らないうちに攻撃に加担してしまうこともあり得るため、注意が必要だ。

WordPressにおけるセキュリティ対策
WordPressにおける主なセキュリティ対策は以下のとおりだ。

1)WordPress本体、プラグインを最新状態に維持
セキュリティ対策の基本だが、常にソフトウェアを最新の状態に保つことだ。アップデートを行う際は、念のためバックアップも取得しておくこと。

2)ファイルのパーミッションの適切な設定
パーミッションとはファイルの読み書き権限の設定のこと。設定ファイルへの不正アクセスを引き起こさないためにも、重要なファイルはフォルダー単位でパーミッションを適切に設定することが望ましい。例えば、WordPress.orgによると、「wp-config.php」は440または400が推奨されている。

3)IPアドレスなどでの接続制限
IPアドレスをベースに接続制限を設け、第三者が外部ネットワークからWordPressの管理画面へのアクセスを遮断する方法も有効だ。Webサイトの更新における柔軟性が失われるものの、安全性が重視される場合、検討の余地がある。

4)不要なプラグインの削除
WordPressのプラグインは無償かつWebブラウザー上で導入できるものが多い。そのため、試用したものの、本導入に至らず放置されてしまうケースもある。これらの放置されたプラグインが有効化されていない状態であっても脆弱性によるリスクは残ることに注意が必要だ。

5)適切なパスワード管理、二要素認証の導入
当然ながら、WordPressのログイン時のパスワードは推測しにくいものにすること。また、使い回しは避け、二要素認証を導入できるプラグインなどを利用して、認証を強化するようにしたい。

6)セキュリティ対策用プラグインのインストール
WordPressにはセキュリティを強化するためのプラグインも提供されている。ログインページのURLを定期的に変更する機能、ログイン元のIPアドレス以外からのアクセスをブロックする機能などがプラグインとして提供されている。例えば、SiteGuard WP PluginはWordPressのセキュリティレベルを高める対策を総合的に提供する。

7)情報の収集
セキュリティ対策には情報収集も欠かせない。中でも、脆弱性にはタイムリーな対応が求められる。JVN(脆弱性対策情報データベース)では脆弱性に関する情報の検索が可能だ。また、「サイバーセキュリティ情報局(当サイト)」ではメールマガジンやTwitterなどでセキュリティに関する最新の情報を発信している。定期的にチェックすることでセキュリティ情報の収集に役立つはずだ。

WordPressはオープンソースであることから、年々使い勝手が向上している。最近では関連するエコシステムも確立し、プラグイン提供もビジネスとして成立するようになっている。このようなエコシステムが機能することで、世界で一番利用されるCMSという地位につながっていると言えよう。しかし、それゆえに攻撃者から狙われやすいという側面もある。WordPressの管理を適切にできているかどうかを見直すためにも、今回紹介した対策を参考にしてほしい。

キヤノンMJがお届けする安全なデジタル活用のためのセキュリティ情報

以上長文になってしまいましたが、如何でしたでしょうか?プラグインの脆弱性によるマルウェア感染など想像してないことはないが現実にさらされるとドキッとします。

文中にありました二段階認証は弊社でも標準装備しております。今後「wp-config.php」は440または400にパーミッションを随時変更する予定です。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA