- NPMレジストリで1,000件以上のコンポーネントが数時間のうちに同じ手口で感染し、悪意あるコードを含む新バージョンが配布された
- 悪性パッケージはBunランタイムのインストールスクリプトを装って
setup_bun.js と難読化された bun_environment.js を追加し、実行時にTruffleHogを使ってローカル認証情報を窃取
- 収集されたAWS/GCP/Azure・GitHub・NPMトークンなどの機密情報は、
SHA1HULUD というGitHub Actionランナーを通じて外部へ送信された
- 悪性スクリプトは
npm publish を自動実行してワーム型の自己複製を行い、その結果27,000件以上のGitHubリポジトリが感染した
- オープンソースエコシステム全体にまたがるサプライチェーンセキュリティ脅威が改めて浮き彫りになった事例と評価されている
攻撃の概要
- 2025年11月24日、HelixGuardはNPMレジストリで1,000件以上のパッケージが数時間以内に同一手法で感染したことを検知
- 新バージョンはBunランタイムを追加するように見せかけ、
preinstall: node setup_bun.js スクリプトを含んでいた
- 同時に配布された
bun_environment.js ファイルは難読化された悪性コードで、実行時にTruffleHogをダウンロードして実行する
- TruffleHogはローカル環境からNPMトークン、AWS/GCP/Azure認証情報、環境変数などをスキャンして窃取
- 窃取した情報はGitHub Actionランナー
SHA1HULUD を作成し、Sha1-Hulud: The Second Coming. という説明を持つGitHubリポジトリ経由で外部へ流出
- HelixGuardは、この攻撃が2025年9月に発生した**「Shai-Hulud」事件**と同一攻撃者による可能性を示唆している
悪性コードの動作分析
- 例として
@asyncapi/specs パッケージを分析した結果、NPMに配布されたバージョンは感染していたが、GitHubの元リポジトリは安全だった
- 攻撃者は
package.json を改変して setup_bun.js を追加し、そのスクリプトが bun_environment.js を呼び出すよう構成
bun_environment.js は10MB超の高度に難読化されたJavaScriptファイルで、主な機能は次のとおり
- 環境変数からクラウド認証情報とトークンを収集
- TruffleHogによるシークレットキーのスキャン
- GitHub Actionsを通じたデータ流出
- さらに
package.json を改変して感染コードを挿入し、npm publish を自動実行してワーム型の拡散を行う
GitHub感染とデータ流出
- 悪性スクリプトは
.github/workflows/formatter_123456789.yml ファイルを作成し、SHA1HULUD ランナーを登録
- このワークフローはリポジトリのシークレットを二重Base64エンコードした
actionsSecrets.json ファイルにパッケージ化
- その後、
Sha1-Hulud: The Second Coming. という説明を持つランダム名のGitHubリポジトリを作成してデータをアップロード
- HelixGuardは27,000件以上のGitHubリポジトリが感染したことを確認
- 窃取された秘密情報には
AWS_ACCESS_KEY_ID, SLACK_WEBHOOK_URL, CODECOV_TOKEN, WEBFLOW_TOKEN など多様なサービスの認証情報が含まれる
感染したパッケージ一覧
- HelixGuardは数百件のNPMパッケージが感染したと報告
- 代表例として
@asyncapi, @ensdomains, @posthog, @zapier, @postman, @voiceflow など主要組織のパッケージが含まれる
- 各パッケージでは複数バージョン(例:
@asyncapi/specs@6.8.2, @postman/csv-parse@4.0.5)が感染
- 感染したパッケージの多くは正規のオープンソースプロジェクトを装っており、自動デプロイ過程で悪性コードが挿入された形となっている
セキュリティ上の示唆
- 今回の攻撃はサプライチェーンセキュリティの脆弱性を悪用し、大規模なオープンソースエコシステムを感染させた事例
- NPM・GitHub・クラウド認証情報など、開発インフラ全体のセキュリティ管理強化の必要性が浮き彫りになった
- HelixGuardは、感染したパッケージのインストールを直ちに停止し、関連トークンおよび認証情報をただちに失効させることを推奨している
まだコメントはありません。