はじめに:Shai-Hulud 2.0、NPMサプライチェーン攻撃が40万件の機密情報を漏洩
先週発生した「Shai-Hulud 2.0」攻撃により、約40万件の機密情報が流出し、NPM(Node Package Manager)レジストリ内の数百のパッケージが感染しました。窃取されたデータは、3万件ものGitHubリポジトリで公開されたことが明らかになりました。オープンソースのスキャンツールであるTruffleHogによって検証された有効な機密情報は約1万件に留まるものの、クラウドセキュリティプラットフォームのWizの研究者によると、漏洩したNPMトークンの60%以上が12月1日時点でも依然として有効であったとのことです。
攻撃の概要と規模
Shai-Huludの脅威は9月中旬に初めて表面化し、当時187のNPMパッケージが自己増殖型のペイロードに感染しました。このペイロードはTruffleHogを使用してアカウントトークンを特定し、悪意のあるスクリプトをパッケージに注入してプラットフォーム上に自動的に公開するものでした。
今回の第2波攻撃では、マルウェアは800以上のパッケージ(感染した全バージョンを含む)に影響を与え、特定の条件が満たされた場合に被害者のホームディレクトリを消去するという破壊的なメカニズムも含まれていました。
漏洩した機密情報の種類と深刻度
Shai-Hulud 2.0攻撃によって3万件以上のGitHubリポジトリに拡散された機密情報の分析により、以下の種類の情報が漏洩していることが判明しました。
- 約70%のリポジトリで、GitHubのユーザー名とトークン、ファイルスナップショットを含む
contents.jsonファイルが確認されました。 - 半数のリポジトリには、TruffleHogのスキャン結果を含む
truffleSecrets.jsonファイルがありました。 - 80%のリポジトリで、OS情報、CI/CDメタデータ、NPMパッケージメタデータ、GitHub認証情報を含む
environment.jsonファイルが見つかりました。 - 400のリポジトリでは、GitHub Actionsのワークフローシークレットを含む
actionsSecrets.jsonがホストされていました。
Wizは、マルウェアがTruffleHogを「-only-verified」フラグなしで使用したため、40万件の漏洩した機密情報は既知の形式に一致するものの、すべてが有効または使用可能とは限らないと指摘しています。しかし、「データは非常にノイズが多いものの、クラウド、NPMトークン、VCS認証情報を含む数百の有効な機密情報が依然として含まれており、さらなるサプライチェーン攻撃の差し迫ったリスクとなっている」と説明しています。
感染源とプラットフォームの分析
2万4000件のenvironment.jsonファイルの分析から、約半数がユニークであり、そのうち23%が開発者マシンからのもので、残りはCI/CDランナーや同様のインフラからのものでした。感染したマシンのほとんど、87%がLinuxシステムであり、感染の76%がコンテナ上で発生していました。
CI/CDプラットフォームの分布に関しては、GitHub Actionsが圧倒的に多く、Jenkins、GitLab CI、AWS CodeBuildがそれに続きました。
感染分布を見ると、最も多く感染が確認されたパッケージは@postman/tunnel-agent@0.6.7で、次に@asyncapi/specs@6.8.3が続きます。これら2つのパッケージで全感染の60%以上を占めていました。研究者らは、この集中性から、もしこれらの主要なパッケージが早期に特定され、無力化されていれば、Shai-Huludの影響は大幅に軽減された可能性があると述べています。
また、感染パターンに関しては、インスタンスの99%がpreinstallイベントを通じてnode setup_bun.jsを実行することから発生しており、ごく少数の例外はテスト試行である可能性が高いと見られています。
今後の見通しと対策
Wizは、Shai-Huludの背後にいる攻撃者が今後も技術を洗練させ、進化させ続けると予測しており、近い将来、さらなる攻撃の波が訪れる可能性があると警告しています。特に、これまでに収集された大量の認証情報が、新たな攻撃に利用される懸念があります。
