Amazon Web Services ブログ
サプライチェーン攻撃への防御策: Chalk/Debug 侵害と Shai-Hulud ワームの対応事例から
本ブログは 2025 年 10 月 2 日に公開された AWS Blog “Defending against supply chain attacks like Chalk/Debug and the Shai-Hulud worm” を翻訳したものです。
これらの重要なサービスは、残念ながら、大規模にコードを配布しようとする脅威アクターの格好の標的となっています。これらのサービスのいずれかでパッケージを侵害できれば、その 1 つのアクションで自動的に何千もの他のシステムに影響を与えることができます。
2025 年 9 月 8 日: Chalk と Debug の侵害
この侵害は、npm の信頼されたメンテナーの認証情報が不正に取得されたことから始まりました。ソーシャルエンジニアリングで認証情報を窃取した後、18 の人気パッケージ (Chalk、Debug、ansi-styles、supports-color など) に悪意あるペイロードが注入されました。
このペイロードは、暗号通貨のアクティビティを密かに監視し、攻撃者の利益のためにトランザクションを改ざんするように設計されていました。
これらのパッケージは合わせて毎週推定 20 億回ダウンロードされています。メンテナーと npm 運営による迅速な対応があったにもかかわらず、侵害されたバージョンが利用可能だった数時間の間に、重大な影響を受けた可能性があります。この期間中にパッケージをダウンロードしたビルドシステムや、リモートでパッケージを読み込んだサイトは、脆弱な状態になった可能性があります。
この巧妙なマルウェアは、高度な偵察技術を備えており、実行環境に応じて最も効果的な攻撃ベクトルを選択するよう動作を適応させました。
2025 年 9 月 15 日: Shai-Hulud ワーム
翌週、Shai-Hulud ワームが npm の信頼チェーンを通じて自律的に拡散し始めました。このマルウェアは、開発者の環境での最初の足がかりを使用して、npm トークン、GitHub パーソナルアクセストークン、クラウド認証情報など、さまざまな認証情報を収集します。
可能な場合、マルウェアは収集した認証情報を公開します。npm トークンが利用可能な場合、ワームを追加のペイロードとして含む更新されたパッケージを公開します。侵害されたパッケージは、感染を継続的に拡散するために postinstall スクリプトとしてワームを実行します。
この自己増殖方法に加えて、ワームはアクセスを取得した GitHub リポジトリの改ざんも試みます。Shai-Hulud は、すべてのリポジトリアクティビティで実行される悪意のあるワークフローを設定し、コードを継続的に窃取し続けます。
このエクスプロイトは、技術的に高度であると同時に、開発者が信頼してパッケージをインストールする流れを巧みに悪用していることを示しました。標準的な npm インストールプロセスを使用することで、ワームは開発者に期待される動作パターン内で動作するため、検出がより困難になります。
このエクスプロイトの最初の 24 時間以内に、180 を超える npm パッケージが侵害され、再び何百万ものシステムに影響を与える可能性がありました。両方のインシデントは、サプライチェーン侵害の潜在的な規模を示しています。
このようなインシデントへの対応方法
侵害されたパッケージが本番環境に入った場合は、問題を解決するためにアクティブなインシデントに対する標準的なインシデント対応プロセスに従う必要があります。
開発環境をスキャンするには、以下の手順をお勧めします。
- 依存関係の監査: Chalk と Debug パッケージを削除するか、クリーンなバージョンにアップグレードし、Shai-Hulud に感染したパッケージがないか確認する
- シークレットのローテーション: npm トークン、GitHub パーソナルアクセストークン、API キーが侵害されている可能性があると想定し、認証情報を直ちにローテーションして再発行する
- ビルドパイプラインの監査: 不正な GitHub Actions ワークフローや予期しないスクリプトの挿入がないか確認する
- Amazon Inspector の使用: Amazon Inspector の検出結果で Chalk/Debug エクスプロイトまたは Shai-Hulud ワームの影響を受けていないか確認し、推奨される修復を行う
- サプライチェーンの強化: SBOM (ソフトウェア部品表) を適用し、パッケージバージョンを固定し、権限を限定したトークンを採用し、CI/CD 環境を分離する
Amazon Inspector が OpenSSF とともにオープンソースセキュリティを強化する仕組み
AWS は、Open Source Security Foundation (OpenSSF) とのパートナーシップを通じて、Amazon Inspector の悪意あるパッケージ検出システムからの検出結果をコミュニティと定期的に共有しています。Amazon Inspector は、Open Source Vulnerability (OSV) 形式を使用して、このタイプの脅威インテリジェンスを共有する自動化されたプロセスを採用しています。
Amazon Inspector は、悪意あるパッケージを特定するために、多角的な分析技術を組み合わせた多層検出アプローチを採用しています。このアプローチは、既知の攻撃パターンと新しい脅威の両方に対する堅牢な保護を提供します。
YARA ルールの広範なライブラリを使用した静的解析から始めて、Amazon Inspector はパッケージコンテンツ内の疑わしいコードパターン、難読化技術、既知の悪意あるシグネチャを特定できます。それに基づいて、システムは動的解析と動作監視を使用して、回避技術が使用されていても脅威を特定します。最後の分析セットは、AI と機械学習モデルを使用してコードのセマンティクスを分析し、パッケージ内の意図された目的と疑わしい機能を判断します。
この多段階アプローチにより、Amazon Inspector は誤検知を最小限に抑えながら高い検出精度を維持でき、正当なパッケージが誤ってフラグ付けされず、巧妙な脅威が確実に特定され軽減されるようにします。
これらの脅威がオープンソースパッケージで検出されると、システムはこの脅威インテリジェンスを OpenSSF と共有するための自動化されたワークフローを開始します。このワークフローは、検証された脅威インテリジェンスを OpenSSF に送信し、コミュニティデータベースにマージされる前に OpenSSF のメンテナーによって厳格にレビューされます。そこで、公式の MAL-ID (悪意あるパッケージ識別子) が付与されます。
このプロセスは、こうした脅威検出をできるだけ早くコミュニティと検証および共有し、他のセキュリティツールや研究者が Amazon Inspector の検出機能の恩恵を受けられるようにするのに役立ちます。
今後の展望
Chalk/Debug と Shai-Hulud ワームは、新しいタイプのエクスプロイトではありません。残念ながら、この攻撃ベクトルを使用した最新のインシデントにすぎません。オープンソースリポジトリは開発者にとって素晴らしいリソースであり、多くのチームがより迅速にイノベーションを実現するのに役立っています。オープンソースコミュニティは、このようなインシデントの影響を軽減するために懸命に取り組んでいます。
そのため、AWS は OpenSSF とパートナーシップを結び、侵害されたか悪意を持って作成された 40,000 を超える npm パッケージを特定したレポートを提供してきました。AWS は、Amazon Inspector が安全かつセキュアに構築するための優れたツールであると考えています。すべての方に使用していただきたいと思っていますが、OpenSSF のような取り組みへの AWS の貢献がコミュニティ全体のセキュリティ向上に役立っていることを誇りに思っています。
この投稿に関するご質問がある場合は、Amazon Inspector タグ付きの AWS re:Post に質問をするか、AWS サポートにお問い合わせください。