ハッカー集団、Brevoのウィジェットを悪用しマルウェアを拡散——10万件超のウェブサイトに影響

Brevoを巡るサプライチェーン侵害が疑われる事案により、10万件を超えるウェブサイトの訪問者およびWordPress管理者がマルウェアの脅威にさらされました。

マルウェア分析ツール

攻撃者は、Brevoがホストするジャバスクリプト資産、サインアップフォーム、配信停止ページ、チャットウィジェットを悪用し、WordPressバックドアとClickFixソーシャルエンジニアリング型ペイロードを拡散したとみられています。

旧SendinblueであるBrevoは9月10日、SAMLシングルサインオンの欠陥に関わる別のセキュリティインシデントを公表しています。

同社によると、攻撃者は138のアカウントにアクセスし、うち6つを使ってフィッシングメールを送信、さらに43のアカウントから連絡先データをエクスポートしたということです。

Brevoは同日中に、影響を受けたアクセス経路を閉鎖し、有効なセッションを無効化したと説明しています。

セキュリティ企業によると、今回のキャンペーンはBrevo自身のウェブ資産に加え、Brevoのトラッキング機能や会話ウィジェット、フォームサービスを組み込んでいる顧客企業のウェブサイトにも影響を及ぼしました。

PublicWWWで現在確認できるところでは、Brevo、Sibforms、Sibautomationのリソースを参照しているページは114,371件に上り、影響範囲の大きさをうかがわせています。

Sansecは、Brevoが運用するドメインsendibt1.com配下の攻撃者支配下サブドメインからf.jsを読み込む、注入されたスクリプトタグを確認しました。

確認されたペイロードは、cdn2.sendibt1.comcdn4.sendibt1.comcdn9.sendibt1.comcdn10.sendibt1.comcdn11.sendibt1.comを含むドメイン経由で読み込まれていました。

悪意あるローダーは、cdn.brevo.com/js/sdk-loader.jsやBrevo Conversationsウィジェットといった正規のBrevo製ジャバスクリプトリソースに追加される形で組み込まれていました。

その結果、これらのスクリプトを埋め込んでいた組織は、意図せぬまま訪問者に対して第二段階のマルウェアを配信してしまう恐れがありました。

Sansecはさらに、www.brevo.comをはじめ、Sibformsでホストされているページ、予約ページ、Brevoのチャット機能を支えるiframeなど、Brevo自身が保有するページでも注入コードを確認しています。

これこそが、サードパーティ製ジャバスクリプトを介したサプライチェーン侵害が持つ本質的な危険性です。広く信頼されているSaaSプロバイダー1社の侵害が、正規のウェブサイト統合機能を、下流にある数千のサイトへの配信経路へと変えてしまうのです。

報告によると、このペイロードは条件分岐ロジックを用いて、WordPress管理者と一般の訪問者を区別していました。

WordPress管理画面に認証済みの状態で影響を受けたサイトを閲覧したユーザーがいた場合、スクリプトはcdn10.sendibt1.com/p/wm.zipからプラグインを密かにインストールしようと試みました。

SansecはこのZIPアーカイブを回収できませんでしたが、バックドアとして使われた可能性が高いと評価しています。

このインストール手法が特に懸念されるのは、WordPressの脆弱性を直接悪用するのではなく、すでに認証済みの管理者のブラウザセッションを利用する可能性がある点です。

Image

Sansecの報告によれば、より広範な侵害が9月14日に発生しており、協定世界時16:05:18から20:12:53にかけて、Brevoのインフラを通じて悪意あるジャバスクリプトが配信されていました。

つまり、侵害されたBrevoのスクリプトによって、管理者が単に公開ページを閲覧しただけで、そのサイトに永続的なアクセス経路が作られてしまう可能性があったということです。

それ以外の訪問者に対しては、マルウェアは人間認証プロンプトを装った全画面のClickFixオーバーレイを表示していました。

マルウェア分析ツール

ClickFixキャンペーンでは一般的に、標的となったユーザーにコマンドをクリップボードにコピーさせ、Windowsの「ファイル名を指定して実行」やPowerShell、ターミナルなど、別のコマンドインターフェースに手動で貼り付けるよう指示します。

これにより、被害者自身に悪意あるコードを実行させることで、従来のブラウザ側のエクスプロイト対策を回避します。

Sansecによると、このマルウェアには解析回避のチェック機能が組み込まれており、クローラー、開発者、自動スキャナーに対しては動作しないようになっていたため、早期発見の可能性が低くなっていました。

研究者らによれば、入手可能な証拠はBrevoのCloudflare環境が侵害された可能性を示唆しているものの、この点はBrevoによって確認されていません。

cdn.sendibt1.com用のSSL証明書は8月25日に発行されており、侵入者がBrevo管理下のドメインのDNSレコードを変更できる権限を持っていた可能性を示しています。

Sansecはさらに、影響を受けたBrevoのドメインがCloudflare DNSを使用していること、そしてCloudflare WorkersやSnippetsによってレスポンスを動的に改変できることも指摘しています。

もし攻撃者が共有Cloudflareアカウントへのアクセス権を入手していた場合、オリジンでホストされているファイルを一切変更することなく、悪意あるDNSレコードを作成し、本来正規であるはずのジャバスクリプトのレスポンスにコードを注入できた可能性があります。

悪意あるサブドメインは9月15日に名前解決を停止し、Sansecによれば影響を受けたリソースは現在オリジン側ではクリーンな状態になっているとのことです。とはいえ、キャッシュされたコンテンツや、すでに侵害されたWordPress環境については、引き続きリスクが残る可能性があります。

トラッカー、チャットウィジェット、またはホスト型フォームを利用していたBrevoの顧客は、9月14日を対象としたウェブおよびWordPressのログを確認すべきです。

主な痕跡としては、/wp-admin/update.php?action=upload-pluginへのリクエストに続いて/wp-admin/plugins.php?action=activateへのリクエストが発生している点が挙げられます。

悪意あるプラグインは管理画面上での表示を隠している可能性があるため、管理者は9月14日にインストールまたは有効化されたプラグインを確認し、ディスク上のプラグインディレクトリとWordPress管理パネルに表示されている項目とを照合する必要があります。

また、組織は過去のDNS、プロキシ、CSP、エンドポイントのテレメトリを調査し、cdn*.sendibt1.comサブドメインへの接続がないか確認すべきです。

「あなたが人間であることを確認してください」というページに遭遇し、貼り付けられたコマンドを実行してしまった訪問者は、侵害された可能性があるものとして扱うべきです。

エンドポイントのスキャン、プロセスツリーの確認、必要に応じた認証情報のリセット、そしてインシデント対応のトリアージを優先的に実施することが求められます。

今回の事案は、埋め込み型のSaaSスクリプトが依然として影響の大きい信頼境界であることを改めて浮き彫りにしており、サードパーティ製スクリプトの継続的な監視が今や不可欠であることを示しています。

SOCのアラート調査1件あたりの時間を21分短縮。即座の対応のためにIOCコンテキストを即時提供し、SOCを強化しましょう: TI LookupをSOCに統合する

翻訳元: https://gbhackers.com/brevo-widgets-supply-chain/

本記事は gbhackers.com の記事を翻訳・要約したものです。