Sucuriは1月10日(米国時間)、「Thousands of Sites with Popup Builder Compromised by Balada Injector」において、WordPressのマーケティングポップアップ作成プラグイン「Popup Builder」が抱える蓄積型クロスサイトスクリプティング(XSS: Cross-Site Scripting)の脆弱性が悪用され、数千のWebサイトが侵害されたと報じた。この脆弱性は「Popup Builderバージョン4.2.3」にて修正されている。
「Popup Builder」の脆弱性の概要
この脆弱性については、WPScanが詳細をブログで公開しており、「Stored XSS Fixed In Popup Builder 4.2.3 | WPScan」から確認することができる。攻撃者がこの脆弱性の悪用に成功すると、任意のプラグインをインストールしたり、新しい不正な管理者を作成したりすることが可能となる。この攻撃にサイトのアカウントは必要なく、あらゆる攻撃者が悪用できるという。
Sucuriによると、この脆弱性は2023年12月11日に発見され、その2日後の12月13日には「Balada Injector」キャンペーンにより悪用が開始された。Webサイトのソースコード検索エンジン「PublicWWW.com」を使用した検索(参考:「PublicWWW.com」)では、現時点で6,700以上のサイトの侵害(Injection)を確認できる。
この攻撃で追加されるスクリプトはポップアップが開く直前に起動される「sgpbWillOpen」イベントのハンドラとして追加される。この変更はWordPress管理インタフェースのPopup Builderセクションの「Custom JS or CSS」から確認、および削除することができる。
Balada Injectorキャンペーンでは、攻撃者は脆弱性を悪用して悪意のあるwp-felody.phpプラグインをインストール、有効化する。このプラグインは主にバックドアとしての機能を持ち、任意のPHPコードをアップロードして実行可能。攻撃者はこのプラグインを用いて追加の処理を実行し、アカウント情報を共有する他のサイトを検索する。そして侵害可能なすべてのサイトの「wp-blog-header.php」ファイルにマルウェアを挿入する。
「Popup Builder」の脆弱性を悪用したサイバー攻撃への対策
Sucuriはこの攻撃からサイトを保護するために、次のような対策を推奨している。
- 不正な管理者とプラグインの兆候を監視する - WordPressを侵害するマルウェアはダッシュボードから存在を隠蔽する。このため、侵害の兆候を確認するには「wp_users」テーブルと「wp-content/plugins/」ディレクトリを監視する
- 管理者の保護 - すべてのアカウントに一意のパスワードを設定し、二要素認証(2FA: Two-Factor Authentication)を採用する。アカウントには最小権限の原則を適用する
- 感染の伝搬を防止 - 同じアカウント情報を使用しているすべてのWebサイトを定期的に検査、駆除、保護する。重要なWebサイトには別のアカウントを使用する
- バックドアを速やかに削除 - マルウェアを発見した場合は速やかに駆除する。可能であればファイル整合性管理システムや専門のマルウェア駆除サービスを利用する
WPScanはこの脆弱性を極めて深刻と評価しており、プラグインを使用している管理者に直ちにアップデートすることを推奨している。また、すでに侵害された可能性がある場合は、追加のマルウェアが展開されている可能性があるため、専門家に調査と駆除を依頼することが望まれている。