430万台のブラウザが感染:ShadyPandaによる7年間のマルウェアキャンペーンの内実

Koiの研究者は、ShadyPandaと呼ぶ脅威アクターを特定しました。このアクターは7年間にわたるブラウザ拡張機能キャンペーンを主導し、ChromeおよびEdgeの利用者430万人を感染させた責任を負っています。

今回の調査では、現在も活動中の2つの作戦が明らかになりました。

30万人のユーザーを狙ったRCEバックドア: 「注目」および「認証済み」バッジを付与されたClean Masterを含む5つの拡張機能は、数年にわたり正規のサービスとして運用された後、2024年半ばに武器化されました。これらの拡張機能は現在、1時間ごとにリモートコード実行(RCE)を行っており、任意のJavaScriptをダウンロード・実行し、ブラウザへの完全なアクセス権限を悪用しています。あらゆるウェブサイトへのアクセスを監視し、暗号化した閲覧履歴を窃取するとともに、ブラウザの完全なフィンガープリント情報を収集しています。

400万人規模のスパイウェア作戦: 同一の発行者による、単独で300万インストールを誇るWeTabを含む追加の5つの拡張機能が、訪問した全URL、検索クエリ、マウスクリックを積極的に収集し、そのデータを中国国内のサーバーへ送信しています。

ShadyPandaの拡張機能の一部は、Googleにより「注目」および「認証済み」として掲載され、即座に信頼と大規模な配布網を獲得していました。この脅威アクターは7年間かけてブラウザ向けマーケットプレイスを武器化する方法を学び、信頼を積み上げ、ユーザーを蓄積し、サイレントアップデートを通じて攻撃を仕掛けてきました。

Image

フェーズ1:壁紙アプリを悪用した手口(145の拡張機能)

ShadyPandaの最初のキャンペーンは単純ながらも大規模なもので、2023年中に実施されました。両マーケットプレイス合計で145個の拡張機能が確認されており、Chromeウェブストアでは発行者nuggetsno15名義で20個、Microsoft Edgeでは発行者rocket Zhang名義で125個が公開されていました。いずれも壁紙アプリや生産性向上アプリを装っていました。

この攻撃は単純なアフィリエイト詐欺でした。ユーザーがeBay、Amazon、Booking.comをクリックするたびに、ShadyPandaの拡張機能は密かにアフィリエイト追跡コードを注入していました。購入のたびに隠れた報酬を得ていたのです。これらの拡張機能はまた、Google Analyticsによる追跡機能を導入し、閲覧データを収益化していました。あらゆるウェブサイト訪問、検索クエリ、クリックパターンが記録され、販売されていました。

この段階は高度な手口ではなかったものの、成功を収めていました。ShadyPandaはここで3つの重要な教訓を得ています。

  • Chromeの審査プロセスは初回提出時に重点を置いており、承認後の挙動は監視していないこと
  • ユーザーはインストール数が多く高評価な拡張機能を信頼すること
  • 辛抱強さが報われること。一部の拡張機能は検知されるまで数ヶ月間活動を続けていました。正規のものに見える期間が長いほど、与えられる被害も大きくなります

フェーズ2:検索ハイジャックへの進化

ShadyPandaはさらに大胆になりました。2024年初頭に始まった次の波では、受動的な収益化から能動的なブラウザ制御へと手口をシフトさせています。

Infinity V+という拡張機能は、この段階を象徴する存在です。新しいタブの生産性向上ツールを装いながら、ブラウザの中核機能を乗っ取っていました。

検索のリダイレクト: あらゆるウェブ検索が、既知のブラウザハイジャッカーであるtrovi.comを経由してリダイレクトされていました。検索クエリは記録・収益化・販売され、検索結果も利益目的で改ざんされていました。

クッキーの窃取: 拡張機能は特定のドメインからクッキーを読み取り、追跡データをnossl.dergoodting.comへ送信していました。閲覧活動を監視するための固有識別子を作成しており、これらはすべて同意も開示もなく行われていました。

Image

検索クエリの収集: 検索ボックスに入力されたすべてのキーストロークが外部サーバー(s-85283.gotocdn[.]comおよびs-82923.gotocdn[.]com)に送信されていました。ユーザーがEnterキーを押す前の段階から、関心事についてリアルタイムでプロファイリングが行われていたのです。この拡張機能は入力途中のクエリ、誤字、修正内容までも捕捉し、ユーザーの思考過程を詳細にマッピングしていました。すべて暗号化されていないHTTP通信で送信されていたため、データの傍受と収益化は容易でした。単に何を検索したかだけでなく、どのように検索を組み立てているかまで把握されていたことになります。

ShadyPandaは学習を重ねながら、さらに攻撃的になっていきました。しかし依然として検知は続いていました。拡張機能は展開から数週間から数ヶ月のうちに通報され、削除されていたのです。

彼らにはより優れた戦略が必要でした。

フェーズ3:長期戦略

5つの拡張機能。うち3つは2018年から2019年にかけてアップロードされており、20万件以上のインストールを誇るClean Masterも含まれています。いずれも数年間にわたり正規のサービスとして運用され、「注目」および「認証済み」のステータスを獲得していました。

その戦略とは、信頼を積み上げ、ユーザーを蓄積した上で、たった一度のアップデートで武器化するというものでした。

武器化に先立ち、ShadyPandaは配布状況を最適化するため、密かにインストール状況の追跡を行っていました。データに基づいたマルウェア開発といえます。

2024年半ば、30万件を超えるインストールを蓄積した後、ShadyPandaは悪意あるアップデートを配信しました。ChromeとEdgeの信頼された自動アップデート機構を通じて、自動的に感染が広がりました。5つの拡張機能すべてが、現在は同一のマルウェアを実行しています。

Image

リモートコード実行:1時間ごとに繰り出される武器

感染したすべてのブラウザは、リモートコード実行フレームワークを実行しています。1時間ごとにapi.extensionplay[.]comへアクセスして新たな指示を確認し、任意のJavaScriptをダウンロードして、ブラウザAPIへの完全なアクセス権限のもとで実行します。

Image

これは固定された機能を持つマルウェアではありません。バックドアなのです。何を行うかはShadyPanda次第です。今日は監視活動でも、明日にはランサムウェア、認証情報の窃取、あるいは企業スパイ活動に転じる可能性もあります。このアップデート機構は自動的に、1時間ごとに、永続的に稼働し続けます。

ブラウザの包括的な監視

現在のペイロードはあらゆるウェブサイト訪問を監視し、暗号化したデータをShadyPandaのサーバーへ窃取しています。

Image

収集・窃取される情報は以下の通りです。

  • 訪問したすべてのURLと完全な閲覧履歴
  • ナビゲーションパターンを示すHTTPリファラー
  • 活動プロファイリング用のタイムスタンプ
  • 永続的なUUID4識別子(chrome.storage.syncに保存され、デバイスをまたいで維持される)
  • ユーザーエージェント、言語、プラットフォーム、画面解像度、タイムゾーンを含む完全なブラウザフィンガープリント
  • api.cleanmasters.storeへ送信する前にAESで暗号化された全データ

検知回避および攻撃能力

解析対策: 研究者が開発者ツールを開くと、マルウェアはそれを検知し、無害な挙動に切り替わります。コードは変数名を短縮するなど重厚な難読化が施されており、コンテンツセキュリティポリシー(CSP)を回避するために158KBのJavaScriptインタプリタを介して実行されます。

中間者攻撃(MitM): サービスワーカーがネットワークトラフィックを傍受・改変できるほか、正規のJavaScriptファイルを悪意あるバージョンに置き換えることが可能です。これにより、HTTPS接続であっても、あらゆるウェブサイトに対する認証情報窃取、セッションハイジャック、コンテンツ注入が可能になります。

ShadyPandaはこれらの機能をいずれも1時間ごとに更新できます。これらの拡張機能は最近マーケットプレイスから削除されたものの、大規模攻撃を実行するためのインフラは、感染したすべてのブラウザ上に依然として展開されたままです。

フェーズ4:スパイウェア帝国(5つの拡張機能、400万人以上のユーザー)

しかし、ShadyPandaの最大規模の作戦はClean Masterではありませんでした。EdgeでClean Masterを運営していたのと同じ発行者Starlab Technologyは、2023年頃にMicrosoft Edge上でさらに5つの拡張機能を展開し、合計で400万件を超えるインストールを蓄積していました。

そしてここに問題があります。これら5つの拡張機能はすべて、現在もMicrosoft Edgeのマーケットプレイスで公開されたままなのです。フェーズ3の削除済み拡張機能とは異なり、この400万人規模の監視作戦は現在進行形で稼働しています。

5つのうち2つは包括的なスパイウェアです。その筆頭であるWeTab 新标签页(WeTab New Tab Page)は、単独で300万件のインストールを誇り、生産性向上ツールを装った高度な監視プラットフォームとして機能しています。

Image

包括的なデータ収集

WeTabは、広範なユーザーデータを収集し、17の異なるドメイン(中国国内のBaiduサーバー8台、中国国内のWeTabサーバー7台、およびGoogle Analytics)へ窃取しています。

Image

収集される情報は以下の通りです。

  • 訪問したすべてのURL — 完全な閲覧履歴をリアルタイムで送信
  • すべての検索クエリ — ユーザーが何を検索しているかをキーストロークレベルで監視
  • ピクセル単位の精度によるマウスクリック追跡 — X/Y座標および要素の特定
  • ブラウザフィンガープリンティング — 画面解像度、言語、タイムゾーン、ユーザーエージェント
  • ページ操作データ — ページ滞在時間、スクロール挙動、実際の閲覧時間
  • ストレージへのアクセス — localStorageやsessionStorageを読み取り、すべてのクッキーにもアクセス可能

フェーズ4はClean Masterの作戦をはるかに上回る規模です。感染ユーザー数は400万人に対し、Clean Masterは30万人でした。これらの拡張機能はMicrosoft Edgeのマーケットプレイスで公開され続けており、すでに全URLとクッキーへのアクセスを含む危険な権限を保持した状態で、ユーザーは今この瞬間もダウンロードしています。ShadyPandaはいつでもアップデートを配信でき、フェーズ3と同じRCEバックドアフレームワーク、あるいはさらに悪質な何かによって、400万台のブラウザを一斉に武器化することが可能です。インフラはすでに整っています。権限もすでに付与されています。アップデート機構は自動的に機能します。

7年間にわたる悪用

ShadyPandaの成功は、単に技術的な巧妙さによるものではありません。7年間にわたり、同一の脆弱性を組織的に悪用し続けてきたことにあります。すなわち、マーケットプレイスは提出時点でのみ拡張機能を審査し、承認後の挙動を監視していないという点です。

これらすべてのキャンペーンを結びつけていたのは、コード署名の類似性、重複するインフラ、そして時間とともに進化していく同一の難読化手法でした。同一のアクターが、異なる仮面をかぶり、それぞれのフェーズで前の段階から学びを得ていたのです。稚拙なアフィリエイト詐欺から、辛抱強く5年間続けられた作戦へと進化していきました。

ユーザーの安全を守るために設計されていたはずの自動アップデート機構が、攻撃の経路と化しました。ChromeとEdgeの信頼されたアップデートパイプラインは、静かにユーザーへマルウェアを配信していたのです。フィッシングもソーシャルエンジニアリングも使われていません。信頼された拡張機能が、目立たないバージョンアップを重ねるだけで、生産性向上ツールを監視プラットフォームへと変貌させていました。

この先何が起こるかは、ShadyPandaが握っています。セッションハイジャック、認証情報の収集、アカウント乗っ取り、侵害された開発者を介したサプライチェーン攻撃などが考えられます。企業にとっては、感染した開発者のワークステーションが、リポジトリの侵害やAPIキーの窃取につながることを意味します。SaaSプラットフォーム、クラウドコンソール、社内ツールへのブラウザベースの認証は、すべてのログインがShadyPandaに筒抜けであることを意味します。拡張機能は従来のセキュリティ対策を迂回します。ShadyPandaはすでに1年以上にわたり、皆さんのネットワーク内部に潜んでいるのです。

これは単に1つの悪意あるアクターだけの問題ではありません。構造的な問題は、セキュリティモデルそのものがこうした行動を助長している点にあります。

  1. 正規のものを作り上げる
  2. 審査を通過し、信頼のシグナル(インストール数、レビュー、認証バッジ)を獲得する
  3. 大規模なユーザーベースを蓄積する
  4. アップデートを通じて武器化する
  5. 検知される前に利益を得る

ShadyPandaはこの手口が有効であることを証明しました。そして今や、あらゆる高度な脅威アクターがこの手法を知ることとなりました。

結び

1つの辛抱強い脅威アクターが示した教訓は1つです。信頼こそが脆弱性であるということです。

ShadyPandaは、マーケットプレイスが7年前と変わらぬ方法で拡張機能を審査し続けていることを証明しました。提出時の静的解析、承認後の信頼、そして継続的な監視の欠如です。Clean Masterは5年間にわたり正規のサービスとして運用されていました。静的解析だけでは、これを見抜くことはできなかったでしょう。

本レポートはKoi Securityのリサーチチームが執筆しました。

私たちはまさにこの瞬間のためにKoiを構築してきました。マーケットプレイスから取得するあらゆるものに対する、行動分析とリスクスコアリングです。私たちは、拡張機能が何を名乗っているかではなく、インストール後に実際に何を行っているかを監視しています。

デモを予約することで、承認後に進化する脅威を行動監視がどのように捕捉するかをご確認いただけます。

侵害指標(IOC)

C&Cドメイン:

  • extensionplay[.]com
  • yearnnewtab[.]com
  • api.cgatgpt[.]net

窃取先ドメイン:

  • dergoodting[.]com
  • yearnnewtab[.]com
  • cleanmasters[.]store
  • s-85283.gotocdn[.]com
  • s-82923.gotocdn[.]com

Chrome拡張機能:

  • eagiakjmjnblliacokhcalebgnhellfi
  • ibiejjpajlfljcgjndbonclhcbdcamai
  • ogjneoecnllmjcegcfpaamfpbiaaiekh
  • jbnopeoocgbmnochaadfnhiiimfpbpmf
  • cdgonefipacceedbkflolomdegncceid
  • gipnpcencdgljnaecpekokmpgnhgpela
  • bpgaffohfacaamplbbojgbiicfgedmoi
  • ineempkjpmbdejmdgienaphomigjjiej
  • nnnklgkfdfbdijeeglhjfleaoagiagig
  • Mljmfnkjmcdmongjnnnbbnajjdbojoci
  • llkncpcdceadgibhbedecmkencokjajg
  • nmfbniajnpceakchicdhfofoejhgjefb
  • ijcpbhmpbaafndchbjdjchogaogelnjl
  • olaahjgjlhoehkpemnfognpgmkbedodk
  • gnhgdhlkojnlgljamagoigaabdmfhfeg
  • cihbmmokhmieaidfgamioabhhkggnehm
  • lehjnmndiohfaphecnjhopgookigekdk
  • hlcjkaoneihodfmonjnlnnfpdcopgfjk
  • hmhifpbclhgklaaepgbabgcpfgidkoei
  • lnlononncfdnhdfmgpkdfoibmfdehfoj
  • nagbiboibhbjbclhcigklajjdefaiidc
  • ofkopmlicnffaiiabnmnaajaimmenkjn
  • ocffbdeldlbilgegmifiakciiicnoaeo
  • eaokmbopbenbmgegkmoiogmpejlaikea
  • lhiehjmkpbhhkfapacaiheolgejcifgd
  • ondhgmkgppbdnogfiglikgpdkmkaiggk
  • imdgpklnabbkghcbhmkbjbhcomnfdige

Edgeアドオン:

  • bpelnogcookhocnaokfpoeinibimbeff
  • enkihkfondbngohnmlefmobdgkpmejha
  • hajlmbnnniemimmaehcefkamdadpjlfa
  • aadnmeanpbokjjahcnikajejglihibpd
  • ipnidmjhnoipibbinllilgeohohehabl
  • fnnigcfbmghcefaboigkhfimeolhhbcp
  • nlcebdoehkdiojeahkofcfnolkleembf
  • fhababnomjcnhmobbemagohkldaeicad
  • nokknhlkpdfppefncfkdebhgfpfilieo
  • ljmcneongnlaecabgneiippeacdoimaa
  • onifebiiejdjncjpjnojlebibonmnhog
  • dbagndmcddecodlmnlcmhheicgkaglpk
  • fmgfcpjmmapcjlknncjgmbolgaecngfo
  • kgmlodoegkmpfkbepkfhgeldidodgohd
  • hegpgapbnfiibpbkanjemgmdpmmlecbc
  • gkanlgbbnncfafkhlchnadcopcgjkfli
  • oghgaghnofhhoolfneepjneedejcpiic
  • fcidgbgogbfdcgijkcfdjcagmhcelpbc
  • nnceocbiolncfljcmajijmeakcdlffnh
  • domfmjgbmkckapepjahpedlpdedmckbj
  • cbkogccidanmoaicgphipbdofakomlak
  • bmlifknbfonkgphkpmkeoahgbhbdhebh
  • ghaggkcfafofhcfppignflhlocmcfimd
  • hfeialplaojonefabmojhobdmghnjkmf
  • boiciofdokedkpmopjnghpkgdakmcpmb
  • ibfpbjfnpcgmiggfildbcngccoomddmj
  • idjhfmgaddmdojcfmhcjnnbhnhbmhipd
  • jhgfinhjcamijjoikplacnfknpchndgb
  • cgjgmbppcoolfkbkjhoogdpkboohhgel
  • afooldonhjnhddgnfahlepchipjennab
  • fkbcbgffcclobgbombinljckbelhnpif
  • fpokgjmlcemklhmilomcljolhnbaaajk
  • hadkldcldaanpomhhllacdmglkoepaed
  • iedkeilnpbkeecjpmkelnglnjpnacnlh
  • hjfmkkelabjoojjmjljidocklbibphgl
  • dhjmmcjnajkpnbnbpagglbbfpbacoffm
  • cgehahdmoijenmnhinajnojmmlnipckl
  • fjigdpmfeomndepihcinokhcphdojepm
  • chmcepembfffejphepoongapnlchjgil
  • googojfbnbhbbnpfpdnffnklipgifngn
  • fodcokjckpkfpegbekkiallamhedahjd
  • igiakpjhacibmaichhgbagdkjmjbnanl
  • omkjakddaeljdfgekdjebbbiboljnalk
  • llilhpmmhicmiaoancaafdgganakopfg
  • nemkiffjklgaooligallbpmhdmmhepll
  • papedehkgfhnagdiempdbhlgcnioofnd
  • glfddenhiaacfmhoiebfeljnfkkkmbjb
  • pkjfghocapckmendmgdmppjccbplccbg
  • gbcjipmcpedgndgdnfofbhgnkmghoamm
  • ncapkionddmdmfocnjfcfpnimepibggf
  • klggeioacnkkpdcnapgcoicnblliidmf
  • klgjbnheihgnmimajhohfcldhfpjnahe
  • acogeoajdpgplfhidldckbjkkpgeebod
  • ekndlocgcngbpebppapnpalpjfnkoffh
  • elckfehnjdbghpoheamjffpdbbogjhie
  • dmpceopfiajfdnoiebfankfoabfehdpn
  • gpolcigkhldaighngmmmcjldkkiaonbg
  • dfakjobhimnibdmkbgpkijoihplhcnil
  • hbghbdhfibifdgnbpaogepnkekonkdgc
  • fppchnhginnfabgenhihpncnphhafmac
  • ghhddclfklljabeodmcejjjlhoaaiban
  • bppelgkcnhfkicolffhlkbdghdnjdkhi
  • ikgaleggljchgbihlaanjbkekmmgccam
  • bdhjinjoglaijpffoamhhnhooeimgoap
  • fjioinpkgmlcioajfnncgldldcnabffe
  • opncjjhgbllenobgbfjbblhghmdpmpbj
  • cbijiaccpnkbdpgbmiiipedpepbhioel
  • fbbmnieefocnacnecccgmedmcbhlkcpm
  • hmbacpfgehmmoloinfmkgkpjoagiogai
  • paghkadkhiladedijgodgghaajppmpcg
  • bafbmfpfepdlgnfkgfbobplkkaoakjcl
  • kcpkoopmfjhdpgjohcbgkbjpmbjmhgoi
  • jelgelidmodjpmohbapbghdgcpncahki
  • lfgakdlafdenmaikccbojgcofkkhmolj
  • hdfknlljfbdfjdjhfgoonpphpigjjjak
  • kpfbijpdidioaomoecdbfaodhajbcjfl
  • fckphkcbpgmappcgnfieaacjbknhkhin
  • lhfdakoonenpbggbeephofdlflloghhi
  • ljjngehkphcdnnapgciajcdbcpgmpknc
  • ejfocpkjndmkbloiobcdhkkoeekcpkik
  • ccdimkoieijdbgdlkfjjfncmihmlpanj
  • agdlpnhabjfcbeiempefhpgikapcapjb
  • mddfnhdadbofiifdebeiegecchpkbgdb
  • alknmfpopohfpdpafdmobclioihdkhjh
  • hlglicejgohbanllnmnjllajhmnhjjel
  • iaccapfapbjahnhcmkgjjonlccbhdpjl
  • ehmnkbambjnodfbjcebjffilahbfjdml
  • ngbfciefgjgijkkmpalnmhikoojilkob
  • laholcgeblfbgdhkbiidbpiofdcbpeeo
  • njoedigapanaggiabjafnaklppphempm
  • fomlombffdkflbliepgpgcnagolnegjn
  • jpoofbjomdefajdjcimmaoildecebkjc
  • nhdiopbebcklbkpfnhipecgfhdhdbfhb
  • gdnhikbabcflemolpeaaknnieodgpiie
  • bbdioggpbhhodagchciaeaggdponnhpa
  • ikajognfijokhbgjdhgpemljgcjclpmn
  • lmnjiioclbjphkggicmldippjojgmldk
  • ffgihbmcfcihmpbegcfdkmafaplheknk
  • lgnjdldkappogbkljaiedgogobcgemch
  • hiodlpcelfelhpinhgngoopbmclcaghd
  • mnophppbmlnlfobakddidbcgcjakipin
  • jbajdpebknffiaenkdhopebkolgdlfaf
  • ejdihbblcbdfobabjfebfjfopenohbjb
  • ikkoanocgpdmmiamnkogipbpdpckcahn
  • ileojfedpkdbkcchpnghhaebfoimamop
  • akialmafcdmkelghnomeneinkcllnoih
  • eholblediahnodlgigdkdhkkpmbiafoj
  • ipokalojgdmhfpagmhnjokidnpjfnfik
  • hdpmmcmblgbkllldbccfdejchjlpochf
  • iphacjobmeoknlhenjfiilbkddgaljad
  • jiiggekklbbojgfmdenimcdkmidnfofl
  • gkhggnaplpjkghjjcmpmnmidjndojpcn
  • opakkgodhhongnhbdkgjgdlcbknacpaa
  • nkjomoafjgemogbdkhledkoeaflnmgfi
  • ebileebbekdcpfjlekjapgmbgpfigled
  • oaacndacaoelmkhfilennooagoelpjop
  • ljkgnegaajfacghepjiajibgdpfmcfip
  • hgolomhkdcpmbgckhebdhdknaemlbbaa
  • bboeoilakaofjkdmekpgeigieokkpgfn
  • dkkpollfhjoiapcenojlmgempmjekcla
  • emiocjgakibimbopobplmfldkldhhiad
  • nchdmembkfgkejljapneliogidkchiop
  • lljplndkobdgkjilfmfiefpldkhkhbbd
  • hofaaigdagglolgiefkbencchnekjejl
  • hohobnhiiohgcipklpncfmjkjpmejjni
  • jocnjcakendmllafpmjailfnlndaaklf
  • bjdclfjlhgcdcpjhmhfggkkfacipilai
  • ahebpkbnckhgjmndfjejibjjahjdlhdb
  • enaigkcpmpohpbokbfllbkijmllmpafm
  • bpngofombcjloljkoafhmpcjclkekfbh
  • cacbflgkiidgcekflfgdnjdnaalfmkob
  • ibmgdfenfldppaodbahpgcoebmmkdbac

翻訳元: https://www.koi.ai/blog/4-million-browsers-infected-inside-shadypanda-7-year-malware-campaign

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