S1ngularity のリーク: GitHub と NPM が影響を受ける 🚨
Nxに対する「s1ngularity」と呼ばれるサプライチェーン攻撃に関する最近の調査で、大規模な認証情報漏洩が明らかになりました。数千ものアカウントトークンとリポジトリの秘密情報が漏洩し、インシデントの複数の段階にわたって影響が及んでいました。Wizによるインシデント後レポートでは、その範囲が記録され、情報漏洩の進展とその影響に関する洞察が提供されています。🚨📊
Wizの研究者が発表した評価によると、この侵害により、3つの異なる段階で2,180のアカウントと7,200のリポジトリが漏洩したが、多くの秘密は依然として有効であり、 継続的な損害のリスクホワイトペーパーでは、タイムライン、攻撃者の手法、漏洩した秘密の性質について詳細に説明しています。🔍📈
Nx サプライチェーン攻撃 ⚠️🚀
Nxは、エンタープライズ規模のJavaScript/TypeScriptエコシステムで広く使用されている、オープンソースの単一リポジトリビルド・管理システムです。NPMレジストリでは毎週数百万回ダウンロードされているため、侵害されたパッケージは、多数の統合や開発パイプラインに広範囲にわたる影響を及ぼします。⚙️
侵害ベクトルとインシデント発生日 📅
2025年8月26日、攻撃者はNxリポジトリ内の脆弱なGitHub Actionsワークフローを悪用し、悪意のあるバージョンのパッケージをNPMに公開しました。このパッケージには、「telemetry.js」という悪意のあるインストール後スクリプトが含まれており、これは影響を受けたシステム上で認証情報抽出マルウェアとして動作しました。🔥
telemetry.js マルウェアの仕組み 🕵️♂️
telemetry.js マルウェアは、Linux および macOS 上で認証情報窃取ツールとして動作し、GitHub トークン、npm トークン、SSH キー、.env ファイル、暗号通貨ウォレット、その他のシークレット情報を窃取し、「s1ngularity-repository」という名前の GitHub パブリックリポジトリにアップロードしようとしました。このパターンにより、攻撃者は窃取した情報を一元管理し、公開することが可能になりました。🔐

出典: ウィズ
攻撃者は、AIプラットフォーム(Claude、Q、Geminiなど)用のコマンドラインツールも統合し、標的型プロンプトを用いた検索と収集を自動化しました。Wizは、攻撃中にプロンプトがどのように進化し、抽出を最適化し、特定の指示に対するモデル拒否を回避したかを記録しており、攻撃者がLLM技術に積極的に適応していることを反映しています。✨💡
影響範囲:ダメージ半径とフェーズ 📈🔥
このインシデントは3つの段階に分かれて展開しました。最初の段階、8月26日から27日にかけて、Nxの侵害されたバージョンが1,700人のユーザーに直接影響を与え、2,000件以上の機密情報が漏洩したほか、感染したシステムから約20,000個のファイルが流出しました。GitHubが介入しましたが、データの多くは既に複製されていました。
- 🔹 フェーズ1(8月26日~27日): 影響を受けたユーザーは 1,700 人、漏洩した秘密は約 2,000 件、侵害されたファイルは 20,000 件です。
- 🔸 フェーズ2(8月28日~29日): 漏洩したトークンを使用してプライベートリポジトリを公開リポジトリに変換。さらに 480 個のアカウントが侵害され、6,700 個のリポジトリが公開されました。
- 🔹 フェーズ3(8月31日から): 被害者組織を狙った攻撃 公開するために侵害されたアカウント プライベートリポジトリが 500 個追加されました。
第2フェーズでは、攻撃者は盗んだGitHubトークンを用いてプライベートリポジトリを公開し、「s1ngularity」という文字列で名前を変更することで、露出を拡大しました。第3フェーズでは、特定の標的を悪用して数百ものプライベートリポジトリを公開し、攻撃者の執拗さとエスカレーションを露呈しました。🎯

出典: ウィズ
Nxプロジェクトの対応と緩和策 🔧✅
Nx チームは、プル リクエストのタイトルへのインジェクションと pull_request_target の安全でない使用を組み合わせることで、昇格された権限で任意のコードが実行され、公開パイプラインがトリガーされ、npm 公開トークンの流出が容易になったことを説明する根本原因分析を GitHub で公開しました。🛠️
実施された対策には、悪意のあるパッケージの削除、侵害されたトークンの失効とローテーション、すべてのパブリッシャーアカウントへの二要素認証の義務付けなどが含まれます。さらに、NxはNPMの信頼できるパブリッシャーモデルを採用し、PRによってトリガーされるワークフローに手動承認機能を追加しました。🔐📌
簡単なヒントと重要なポイント✏️
- ✅ 侵害が疑われる場合は、トークンとシークレットを直ちに確認してローテーションします。
- 📌 pull_request_target の安全でない使用を避け、機密性の高いフローに対して手動承認を強制します。
- 🔧 多要素認証と、信頼できる発行元などの信頼できる発行モデルを実装します。
- ⚡ パブリックリポジトリを監視し、自動化された秘密検索を実行して早期検出を実現します。
スニペットとFAQの定義✨
telemetry.js とは何ですか?
telemetry.js は、侵害されたバージョンの Nx パッケージに含まれる悪意のあるインストール後スクリプトの名前です。これは、Linux および macOS システム上で資格情報窃取プログラムとして機能し、攻撃者が管理するパブリック リポジトリに秘密情報を収集して流出させます。🔍
影響を受けたアカウントとリポジトリの数はいくつですか?
Wiz のレポートによると、この攻撃により、インシデントの記録された 3 つのフェーズを通じて 2,180 件のアカウントと 7,200 件のリポジトリが漏洩しましたが、多くの秘密は依然として有効であり、影響が継続するリスクがあります。📊