New Shai-Hulud attack trojanizes 19 science-focused PyPI packages

ハッカーは、開発者の機密情報を盗むように設計されたマルウェアを配布する新たな「Shai-Hulud」サプライチェーン攻撃により、PyPI上の19のパッケージを侵害しました。これらのパッケージは、合計で数十万回ダウンロードされています。

感染したパッケージの多くは、Dynamo、Spateo、CoolBox、U-FISH、Napari-UFISHといった人気のあるバイオインフォマティクスツールです。

この新たな攻撃キャンペーンは、アプリケーションセキュリティ企業のSocketによって発見され、単一のメンテナーによるものとみられる19のパッケージに対して、計37件の悪意あるリリースが確認された。

image

研究者によると、悪意のあるアーティファクトには「*-setup.pth」ファイルと、「_index.js」という名前の難読化されたJavaScriptペイロードが含まれていたという。

ユーザーがPythonを起動するだけでPTHファイルの実行がトリガーされ、その後、GitHubからBun JavaScriptランタイムをダウンロードして、バンドルされたスクリプトを実行しようとします。

「つまり、侵害されたwheelは、本来は受動的な依存関係のインストールを、遅延実行のトリガーに変えてしまう可能性がある。次にPython、pip、テスト実行、ノートブックカーネル、CIジョブ、あるいはPythonを起動するパッケージ管理コマンドが実行された際、その悪意のある.pthが処理される可能性がある」 Socketは説明している

使用されている手法にいくつかの類似点が見られることから、研究者らはこの攻撃が、より広範な「Shai-Hulud」キャンペーンの一環であると見ている。

このため、Socketは過去の攻撃と併せてこれを追跡しており、Shai-Huludの活動に起因するとされる悪意のあるアーティファクトのリストは現在453件に達している。

JavaScriptペイロードの分析により、以下のものを含む幅広い開発者向けシークレットが標的となっていたことが判明しました:

  • GitHubトークンおよびGitHub Actionsのシークレット
  • npm、PyPI、RubyGems、JFrogのパブリッシングトークン
  • AWS、GCP、Azure、Kubernetes、およびVaultの認証情報
  • SSH キー
  • Dockerの認証情報
  • .env、.npmrc、.pypirc
  • シェル履歴
  • Claude/MCPの設定ファイル
  • その他の開発者ワークステーションおよびCI/CDのシークレット

他の Shai-Hulud 攻撃と同様、その目的はソフトウェア開発ワークフローを侵害し、マルウェアをさらに拡散させることにあるようです。

主なデータ流出手法は過去の Shai-Hulud による攻撃と同様で、自動的に作成された GitHub リポジトリを利用し、GitHub Actions を通じて書き出された機密情報をホストするものです。

直接的な HTTPS に基づく 2 つ目の情報流出手法も存在し、正当ではあるが無効な Anthropic API エンドポイント (api[.]anthropic[.]com/v1/api) を指しています。Socket は、これがカモフラージュのために使用された可能性が高いと考えています。

また、このマルウェアには、ロシア語のロケールや環境の有無を確認する機能や、StepSecurity Harden-Runnerなどのセキュリティツールを検知する機能など、いくつかの回避メカニズムが組み込まれています。

永続化は、Linux では systemd サービス、macOS では LaunchAgents を通じて確立され、GitHub ワークフローや Claude/MCP の設定ファイルも使用されています。

Socketのレポートには、影響を受けるすべてのパッケージとバージョンが記載されており、これらをインストールした組織に対しては、すべてのシークレットを更新し、安全なバックアップから環境を復元することを推奨しています。

防御担当者は、実行可能な.pthスタートアップフックを含むPythonパッケージ、GitHubからのBun JavaScriptランタイムの予期せぬダウンロード、およびPythonがBunを起動して_index.jsを実行するプロセスチェーンに注意を払う必要があります。