このパッケージは広く利用されているNewtonsoft.Jsonライブラリになりすまし、その裏でDigitainのFG‑Crash賭博バックエンドを標的とする改変版フォークをひそかに配布します。
大半の開発者にとって、このパッケージは完全に機能するJSONフレームワークのように振る舞います。
しかしDigitainのインフラ上では、クラッシュゲームのラウンド結果をひそかに不正操作し、後続の世代ではその改ざんされた結果を、Seqログトラフィックを模倣した攻撃者制御下のホストへ流出させます。
このタイポスクワッティングは、正規のJson.NETに見えるよう周到に作り込まれています。
メタデータには公式作者名が記載され、実在のプロジェクトURLへのリンクが張られ、Json.NETのブランディングが使われており、依存関係グラフに自然に溶け込むもっともらしい11.0.x系のバージョン番号を採用しています。
lib/net8.0/以下では、NuGetが自動参照する形で3つのアセンブリ——トロイの木馬化されたNewtonsoft.Jsonのフォーク、ペイロードDLL、そしてランタイムパッチ適用用のHarmonyライブラリ——が組み込まれ、このJSONライブラリが使用されるたびに悪性コードが読み込まれる仕組みになっています。
トリガーとなるのは、罠が仕掛けられたJsonConvert.DefaultSettingsのセッターです。これはホストのリゾルバーを攻撃者側のものに置き換え、遅延実行されるHarmonyパッチをスケジュールするため、起動時にはアプリケーションが正常に動作しているように見えます。
その一方で、バックドアは数分から数時間後に起動します。
どのバージョンでもHarmonyは常にGenerateGameResultをフックしますが、不正操作の手口は世代とともに進化しています。初期のビルドでは、時刻をキーとする決定論的なルックアップテーブルを介してIL(中間言語)を書き換え、クラッシュ係数を差し替えていましたが、後期のビルドではよりシンプルに、月・曜日・月内の週・そして協定世界時(UTC)22時前後の特別なプロファイルに基づいてメソッドの戻り値を上書きするポストフィックス方式へと簡略化されています。
パス、ヘッダー、イベントスキーマはSeqのログ取り込みエンドポイントを模倣しており、すでにSeqを利用している環境では、外部への送信(POST)通信が通常のアプリケーションログに紛れ込んでしまいます。
これにより、防御側が不審なIPアドレスとAPIキーを意図的に探さない限り、この不正トラフィックを正規のオブザーバビリティ(可観測性)データと見分けるのは困難です。
この攻撃は範囲が限定されており、認証情報を盗んだり水平展開(ラテラルムーブメント)したりすることはなく、金銭目的でDigitainのクラッシュゲーム結果の完全性を操作することに焦点を絞っています。
攻撃者は不正操作されるラウンドのスケジュールを事前に把握できる利点を得られ、優遇された配当や勝利を確実にする一方で、パッチが適用されるラウンド数には上限があり、Harmonyが自らフックを解除するため、全体としては目立たない形になっています。
このタイポスクワッティングパッケージをインストールした他の開発者たちは、おそらく通常のJSONライブラリにしか見えず、本番環境にマルウェアを送り込んでしまったことに気づいていない可能性があります。というのも、このペイロードは標的となるゲームロジックの型が存在する環境でしか発動しないためです。
JFrogは責任ある方法でこの問題をDigitainに開示し、Digitain側は既にこの問題を把握し解決済みであることを確認しました。ただし、本番環境での悪用の詳細については依然として不明なままです。
注: IPアドレスおよびドメインは、誤った名前解決やハイパーリンク化を防ぐため、意図的に無害化表記(defang、例: [.])としています。再度有効な形式に戻す作業は、MISP、VirusTotal、あるいは自組織のSIEMといった管理された脅威インテリジェンスプラットフォーム内でのみ行ってください。
SOC調査の死角を減らすANY.RUNを活用し、脅威をより早い段階で封じ込めることで、対応コストと業務への影響を軽減しましょう。
翻訳元: https://cyberpress.org/betting-trojan-round-spoofing/