Koiの研究者らは、大規模なFirefox拡張機能マルウェアキャンペーンを発見した。多くのユーザーがほとんど確認しないもの、つまり拡張機能のロゴに悪意のあるコードを隠していた。
その名をGhostPosterといい、このキャンペーンはステガノグラフィーを使って実行可能なJavaScriptをPNGアイコンファイルに埋め込み、最終的に信頼されたアドオンを通じて5万人を超えるFirefoxユーザーに感染した。
このキャンペーンは「閲覧したすべてを監視し、ブラウザーのセキュリティ保護を無効化し、リモートコード実行のためのバックドアを開く、多段階のマルウェアペイロードを展開する」ととKoiの研究者らは述べた。
GhostPosterキャンペーン、信頼された拡張機能を標的に
GhostPosterは、ユーザーや組織から暗黙に信頼されることの多いブラウザー拡張機能が、依然として高リスクの攻撃対象領域であることを浮き彫りにしている。
このキャンペーンは少なくとも17個のFirefox拡張機能に及び、その中にはFree VPN Foreverも含まれる。同拡張機能は単独で1万6000件を超えるインストール数を記録し、分析時点でもFirefox Add-onsのマーケットプレースで提供されていた。
これらの拡張機能は総じて、VPNアクセス、翻訳ツール、天気情報、広告ブロックなど無害に見える機能をうたいながら、永続的に動作する多段階のマルウェアペイロードをひそかに配信する。
GhostPosterの感染チェーンの仕組み
GhostPosterの感染チェーンは、拡張機能が自身のアイコンファイルを読み込むことから始まる。これは、あらゆるブラウザーアドオンに共通する標準的な動作だ。
しかし、この拡張機能は単に画像を表示するのではなく、PNGファイルの生バイト列を読み込み、特定のマーカー列(===)を探す。そのマーカー以降は画像データではなく、ファイルに直接埋め込まれた隠しJavaScriptである。
この手法はステガノグラフィーと呼ばれ、悪意のあるコードが静的スキャンや手動レビューを回避することを可能にする。
拡張機能のソースファイルを検査するセキュリティツールには明らかなペイロードが見えず、アイコンもブラウザーのツールバーに正常に表示される。しかし、拡張機能が読み込まれるたびに、隠されたJavaScriptが抽出されて実行される。
PNGに埋め込まれたコードには、最終的なマルウェアは含まれていない。
その代わり、攻撃者が管理するインフラから追加のペイロードを取得するローダーとして機能する。
このローダーはliveupdt[.]comに接続し、利用できない場合はdealctr[.]comにフォールバックする。その際、感染したインストールを運用者が追跡できるよう、固有のシグネチャを送信する。
GhostPosterが検知を回避する仕組み
GhostPosterは、検知を避けるために多層的な回避技術を用いる。ローダーがチェックインするのは48時間ごとのみで、次の段階のペイロードをダウンロードする確率もわずか10%だ。
この確率的な動作により、感染した拡張機能は監視中に完全に活動を停止しているように見える可能性があり、ネットワーク監視の信頼性が低下する。
ペイロードが配信されると、文字の大文字・小文字の入れ替え、数値の変更、Base64デコード、拡張機能のランタイムIDに結び付いたXOR暗号化など、独自のエンコードによって難読化される。
デコードされたペイロードはブラウザーのストレージに保存され、従来型のファイルをディスクに書き込まずに永続化を確立する。
これらの技術により、マルウェアは主にメモリとランタイム状態に存在し、フォレンジック分析から隠れる。
GhostPosterのブラウザーペイロードの内部
GhostPosterのペイロードが活動を開始すると、攻撃者は被害者のブラウザー環境を完全に制御できるようになる。
主な収益化手法の1つがアフィリエイトリンクの乗っ取りだ。大手ECプラットフォーム上の正規のアフィリエイトリンクを攻撃者が管理するリンクにひそかに置き換え、ユーザー体験を損なうことなくコミッションを攻撃者側にリダイレクトする。
このマルウェアは、訪問したすべてのページにトラッキングコードも挿入し、Google Analyticsの識別子を使って閲覧行動、インストールの時系列、販売者の活動を収集する。
非表示のHTML要素をページに動的に挿入し、感染したブラウザーにひも付くメタデータや識別子を保存する。
この拡張機能は、HTTPレスポンスから主要なブラウザーセキュリティヘッダーも削除する。これにはContent-Security-PolicyとX-Frame-Optionsが含まれる。
これにより、ユーザーが訪問するすべてのサイトで、組み込みのクロスサイトスクリプティングやクリックジャッキングに対する防御が弱まる。
そのほか、CAPTCHAの回避機構、広告詐欺やクリック詐欺のための不可視iframeの挿入、リファラーの操作、実行後に目に見える痕跡を除去する動的クリーンアップなどの機能も備える。
ブラウザー拡張機能のリスクを低減する方法
以下のプラクティスは、組織がブラウザー拡張機能のリスクを管理するのに役立つ。
- ブラウザー拡張機能をエンドポイント攻撃対象領域の一部として扱うとともに、ブラウザーポリシーや承認済みの許可リストを使ってインストールを制限する。
- インストール済みの拡張機能を定期的に監査する。特に、VPNやユーティリティなど、広範な権限を要求する「無料」サービスを厳しく精査する。
- 拡張機能の動作を監視して悪用の兆候を探す。予期しないネットワーク接続、動的なコード実行、レスポンスの操作などが対象となる。
- ブラウザーと拡張機能のテレメトリーをEDRまたはSIEMプラットフォームに統合し、不審な活動の検知と相関分析を改善する。
- 次のようなネットワークレベルの制御を適用する。DNSフィルタリングやセキュアウェブゲートウェイなどを利用し、既知の悪意ある拡張機能インフラをブロックする。
- 信頼できる発行元からのみ拡張機能をインストールするようユーザーを教育するとともに、不要になった拡張機能や、積極的に保守されていないアドオンを削除する。
これらの制御を組み合わせることで、可視性を高め、不要な露出を制限し、エンドポイント全体のセキュリティ態勢を強化して、ブラウザーベースのリスクを低減できる。
攻撃者は信頼のシグナルを悪用
GhostPosterは、攻撃者が技術的な脆弱性ではなく、より広く信頼のシグナルを悪用する傾向を示している。
画像にマルウェアを隠し、正規のマーケットプレースを通じて拡散することで、攻撃者は従来のセキュリティ上の前提を回避し、想定されたブラウザーの動作の範囲内だけで活動する。
この傾向は、多くの組織が、暗黙の信頼を排除し、正当なものに見える活動であっても継続的に検証するゼロトラストの原則を採用している理由を裏付けるものだ。





