概要

CRM・メール配信プラットフォームのBrevoが、サプライチェーン型のサイバー攻撃を受けたことが明らかになった。攻撃者はアプリケーションのソースコードにハードコードされていた、アカウント全権限を持つ長期有効なCloudflare APIキーを窃取し、これを悪用して悪意あるCloudflareWorkerを展開。brevo.comやsendinblue.comに加え、Brevoのフォームスクリプト、Conversationsウィジェット、SDKローダースクリプトを組み込んでいる顧客サイト群に、偽のCAPTCHA画面から悪意あるコマンドを実行させる「ClickFix」型のマルウェア感染スクリプトが注入された。セキュリティ企業Sansecによれば、影響を受けた可能性のあるサイトは最大10万件に上るとされる。

攻撃の手口

今回の攻撃で特徴的なのは、Brevoのオリジンサーバーやファイル自体は一切改ざんされなかった点だ。攻撃者はCDNエッジ層で動作するCloudflare Workerを使い、レスポンスにコードを注入する一方で、Content-Security-Policyなどのセキュリティヘッダーを削除した。オリジン側のファイルが無傷であるため、通常のインテグリティチェックでは改ざんを検知できなかったという。窃取されたAPIキーは8月下旬までに流出していたとみられ、実際の悪用は9月14日16時07分から20時30分(UTC)にかけて確認され、悪性のサブドメインは9月15日には機能を停止した。

被害者となったサイトの訪問者は、まず偽のCloudflare認証ページを表示され、続いてClickFix特有の手口――クリップボードにコピーしたコマンドを「検証のため」に実行するよう誘導する画面が示された。WordPressで構築されたサイトでは、スクリプトが管理者ログイン状態を確認したうえで、「Web Media Optimizer」と称する悪意あるプラグインのアップロードを試み、これがJavaScriptインジェクション機能を備えた永続的なバックドアとして機能する仕組みだった。

Brevoの対応と今後への影響

Brevoは問題の発覚後、悪意あるWorkerを削除し、侵害された認証情報を失効、キャッシュをパージしたうえで、ソースコードにハードコードされていた認証情報を除去したと説明している。同社はメール配信機能やアカウントデータ自体には影響がなかったとしている。ただし、Brevoを巡っては9月10日にもSSO(シングルサインオン)関連の侵害が別途発生しており、暗号資産関連ベンダーのTrezorが自社顧客34万7000件がフィッシングの標的になったと報告するなど、一連のインシデントとして波及が続いている。

今回のケースは、SaaSベンダーが発行する外部連携用の長期有効な高権限APIキーが、たとえオリジンサーバー自体を経由しなくてもCDNエッジで任意のコンテンツ改ざんに悪用され得ることを示した。CDN層への信頼を前提とした標準的なファイル整合性チェックでは検知が困難であるため、こうしたクレデンシャルのハードコード排除や、短命かつ最小権限のAPIキー運用がサプライチェーン全体のセキュリティ確保に不可欠であることを改めて浮き彫りにしている。