NuGetのマルウェア偽装:.NET統合ライブラリが暗号資産ウォレットとOAuthトークンを窃取

ReversingLabs(RL)の研究者は、NuGetパッケージマネージャーを介して.NET開発者エコシステムを標的とする高度なマルウェアキャンペーンを発見しました。

2025年7月に始まったこのキャンペーンでは、正規の暗号資産ライブラリを模倣するよう設計された14個の悪意あるパッケージが関与しています。

これらのパッケージは、暗号資産ウォレットを盗み、資金をリダイレクトし、Google AdsのOAuthトークンを流出させるよう作られており、今年のオープンソースソフトウェア(OSS)サプライチェーン攻撃における重大なエスカレーションを示しています。

「Netherеum」の欺瞞

調査は、10月17日にNetherеum.Allというパッケージが発見されたことから開始されました。このパッケージはホモグリフ攻撃を利用し、名前にキリル文字を混ぜることで、Ethereumブロックチェーン向けに広く使われている.NET統合ライブラリ「Nethereum」を視覚的に偽装していました。

2025年のNuGetはPyPIやnpmと比べてマルウェアに関して比較的静かでしたが、このキャンペーンは脅威アクターが標的を多様化していることを示しています。攻撃者は開発者を欺くため、以下を含む攻撃的なソーシャルエンジニアリング手法を用いました。

  • バージョンのつり上げ:アクティブに保守され信頼できるかのように見せかけるため、短期間に多数の新バージョンを次々と公開する。
  • 人為的な水増し:公開直後にダウンロード数を数百万まで操作し、人気があるかのような誤った印象を作り出す。
  • タイポスクワッティング:信頼されたツールと同一に見える名前を作成する。

技術的な内訳

RLの研究者は14個のパッケージを分析し、悪意あるペイロードに基づいて3つの明確なグループに分類しました。

Image
悪意あるパッケージのNuGet概要.

グループ1:ウォレット窃取型

Netherеum.AllやSolnetPlusを含む大半のパッケージは、機密性の高いウォレットデータを流出させるよう設計されていました。

作成者はShuffleという悪意ある関数を、重要なコード実行ポイントに埋め込みました。検知を回避するため、流出先URLはハードコードされておらず、XOR暗号を用いて動的に生成されていました。

トリガーされると、マルウェアは秘密鍵、シードフレーズ、Wallet Import Format(WIF)キーを、Solanaネットワーク監視を装うドメイン(solananetworkinstance[.]info)へ送信しました。

グループ2:資金リダイレクト型

Coinbase.Net.Apiなどのパッケージは別の仕組みを利用していました。鍵を流出させる代わりに、これらのパッケージはSendMoneyAsyncメソッドにMapAddress関数を注入しました。

コードのロジックは100ドルを超える取引を監視し、送金先アドレスを攻撃者が管理するウォレットに密かに上書きすることで、送金中に資金を脅威アクターへ直接流し込む形になっていました。

グループ3:OAuth認証情報の窃取

最後のグループはGoogleAds.APIパッケージに代表され、直接的な暗号資産窃取から方向転換していました。このマルウェアは特にGoogle Adsアカウントを標的とし、OAuthクライアントID、シークレット、開発者トークンを流出させました。

Image
SendLog関数によって流出したGoogle Oath.

これらの認証情報を保有することで、攻撃者は被害者になりすまし、キャンペーンデータにアクセスし、詐欺広告に無制限の資金を費やす可能性があります。

このキャンペーンは、ソフトウェアサプライチェーンにおいて信頼が依然として最も弱いリンクであることを浮き彫りにしています。NuGetが2024年に必須の二要素認証を導入したにもかかわらず、攻撃者はソーシャルエンジニアリングによって防御を回避し続けています。

特定されたパッケージは、AngelDev、DamienMcdougal、jackfreemancodesといったアカウント名を含む、さまざまな作成者によって公開されていました。

SolnetAllパッケージは分析前に削除されていましたが、他の確認済み窃取型と同じ作成者に紐づいていました。

開発者は、容易に改ざん可能なダウンロード指標だけに頼るのではなく、パッケージの公開日や作成者の履歴を精査するよう促されています。

翻訳元: https://gbhackers.com/nuget-malware/

ソース: gbhackers.com