概要
- NPMエコシステム で新たなサプライチェーン攻撃が発生
- @ctrl/tinycolor など40以上の人気パッケージが侵害対象
- マルウェアは 自己伝播機能 を持ち、依存パッケージを連鎖的に感染
- 認証情報の収集・外部送信、永続化のためのGitHub Actionsワークフロー挿入
- 影響パッケージや 検知方法・インジケーター を詳細解説
NPMサプライチェーン攻撃の概要と進化
- @ctrl/tinycolor を含む40以上のNPMパッケージでマルウェア感染
- 週200万ダウンロード超 の人気パッケージが標的
- マルウェアは 自己増殖型エンジン 搭載、下流パッケージを自動感染
- postinstallスクリプト を悪用し、npm install時に不正コード実行
- Linux/macOS開発環境 を主なターゲット、Windowsは回避
攻撃チェーンとマルウェアの構造
- Webpackバンドル(bundle.js) による複数モジュール構成
- process.env から認証情報を抽出、クラウドSDK/API利用で情報収集
- TruffleHog を用いたファイルシステム全体のシークレットスキャン
- 自己伝播 :NpmModule.updatePackage関数でメンテナーパッケージへ連鎖感染
- GitHub Actionsワークフロー (shai-hulud-workflow.yml)を自動生成し永続化
マルウェアの詳細技術分析
- OS情報収集 :getSystemInfo()でプラットフォーム・アーキテクチャ情報取得
- AWS認証情報収集 :AssumeRoleWithWebIdentityCommand経由で検証・Secrets Managerから秘密情報を列挙
- GCP認証情報収集 :@google-cloud/secret-managerで全シークレット取得・ペイロード復号
- ファイルシステムスキャン :TruffleHogで高エントロピーなシークレット(AWSキー等)検出
- NPMトークン取得・自己増殖 :.npmrcや環境変数からNPM_TOKEN抽出、所有パッケージを自動パッチ&公開
GitHub・クラウド認証情報の悪用と外部送信
- GitHubバックドア :/userエンドポイントで認証、全リポジトリにshai-huludブランチ作成
- ワークフロー挿入 :pushイベントで秘密情報をC2サーバへ送信
- JSON形式で全情報集約、GitHub APIで"Shai-Hulud"公開リポジトリにアップロード
- エラーはcatch {}で黙殺、TruffleHog実行を「セキュリティスキャン」と偽装
検知・対応のためのインジケーター
- shai-hulud-workflow.yml の存在確認:.github/workflows/配下を検索
- shai-huludブランチ の有無:ghコマンド等で全リポジトリを調査
- bundle.js SHA-256 :46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- 外部送信先 :https://webhook.site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7
- API/プロセス挙動 :NpmModule.updatePackage、AWS/GCP/NPM/GitHub APIへの異常アクセス、TruffleHogやnpm publish --forceの実行履歴
影響を受けたパッケージ一覧(一部抜粋)
- @ctrl/tinycolor 4.1.1, 4.1.2
- angulartics2 14.1.2, 14.1.1
- @ctrl/ngx-codemirror 7.0.2, 7.0.1
- @ctrl/ngx-csv 6.0.2, 6.0.1
- @nativescript-community/gesturehandler 2.0.35
- ngx-color 10.0.2, 10.0.1
- ngx-toastr 19.0.2, 19.0.1
- react-complaint-image 0.0.35, 0.0.32
- ts-gaussian 3.0.6, 3.0.5
- その他、40以上のパッケージ
組織での検知・対応策
- GitHub検索 でshai-hulud-workflow.ymlやshai-huludブランチを徹底調査
- 例:org:ACME path:/shai-hulud-workflow.yml
- 全リポジトリのブランチ一覧取得、shai-huludブランチの存在確認スクリプト
- bundle.jsのハッシュ値 でファイル照合
- 不審なAPIアクセス・プロセス実行履歴 の監査
- 感染パッケージの即時アンインストール・クリーンインストール推奨
まとめ・今後の注意点
- NPMサプライチェーンの脅威 は高度化・自動化傾向
- メンテナ権限の乗っ取り によるエコシステム全体への波及リスク
- クラウド認証情報・GitHubシークレット の漏洩による二次被害懸念
- 依存パッケージの監査・アップデート と、CI/CD環境のセキュリティ強化が必須
- 継続的な脅威インテリジェンス収集 と、検知・対応体制の整備が重要