コンテンツにスキップするには Enter キーを押してください

悪意のあるnpmパッケージがUnicodeステガノグラフィーとGoogleカレンダーをC2ドロッパーとして利用

Image

サイバーセキュリティ研究者は、「os-info-checker-es6」という悪意のあるパッケージを発見しました。このパッケージは、オペレーティングシステム情報ユーティリティを装い、侵害されたシステムに次の段階のペイロードを密かにドロップします。

「このキャンペーンは、初期の悪意のあるコードを隠すために巧妙なUnicodeベースのステガノグラフィーを使用し、最終ペイロードの動的ドロッパーとしてGoogleカレンダーのイベントショートリンクを利用しています」とVeracodeはThe Hacker Newsに共有したレポートで述べています。

「os-info-checker-es6」は、2025年3月19日に「kim9123」というユーザーによってnpmレジストリに初めて公開されました。執筆時点で2,001回ダウンロードされています。同じユーザーは、「os-info-checker-es6」を依存関係としてリストしている「skip-tot」という別のnpmパッケージもアップロードしています。このパッケージは94回ダウンロードされています。

最初の5つのバージョンではデータ流出や悪意のある動作の兆候は見られませんでしたが、2025年5月7日にアップロードされた後続のバージョンには、「preinstall.js」ファイルに難読化されたコードが含まれており、Unicode「プライベートユースアクセス」文字を解析して次の段階のペイロードを抽出することが判明しました。

悪意のあるコードは、Googleカレンダーのイベントショートリンク(「calendar.app[.]google/<string>」)にBase64でエンコードされた文字列をタイトルとして連絡するように設計されています。これは、IPアドレス「140.82.54[.]223」を持つリモートサーバーにデコードされます。言い換えれば、Googleカレンダーは攻撃者が制御するインフラストラクチャを隠すためのデッドドロップリゾルバーです。

Image

しかし、現時点では追加のペイロードは配布されていません。これは、このキャンペーンがまだ進行中であるか、現在休止中であることを示している可能性があります。別の可能性として、すでに終了しているか、コマンドアンドコントロール(C2)サーバーが特定の条件を満たす特定のマシンにのみ応答するように設計されている可能性があります。

「Googleカレンダーのような正当で広く信頼されているサービスを中間体として使用し、次のC2リンクをホストすることは、検出を回避し、攻撃の初期段階をブロックするのをより困難にする巧妙な戦術です」とVeracodeは述べています。

Image

アプリケーションセキュリティ企業とAikidoは、この活動を詳細に説明し、他の3つのパッケージが「os-info-checker-es6」を依存関係としてリストしていることを指摘しましたが、これらの依存パッケージは同じキャンペーンの一部であると疑われています –

  • vue-dev-serverr
  • vue-dummyy
  • vue-bit

「os-info-checker-es6パッケージは、npmエコシステム内で洗練された進化する脅威を表しています」とVeracodeは述べています。「攻撃者は、明らかなテストから多段階のマルウェアの展開へと進化を示しました。」

この開示は、ソフトウェアサプライチェーンセキュリティ企業のSocketが、タイポクワッティング、Goリポジトリのキャッシュ悪用、難読化、多段階実行、スロップスクワッティング、正当なサービスと開発者ツールの悪用を、2025年上半期に脅威アクターが採用した6つの主要な敵対的手法として強調した際に行われました。

「これに対抗するために、防御者は、予期しないポストインストールスクリプト、ファイルの上書き、無許可のアウトバウンドトラフィックなどの行動信号に焦点を当て、使用前にサードパーティパッケージを検証する必要があります」とセキュリティ研究者のKirill BoychenkoとPhilipp Burckhardtは述べています

「静的および動的分析、バージョンピンニング、CI/CDログの詳細な検査は、悪意のある依存関係が本番環境に到達する前に検出するために不可欠です。」

翻訳元: https://thehackernews.com/2025/05/malicious-npm-package-leverages-unicode.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です