Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Crowdstrike Packages Infected with Malware (and other 167 packages infected as well)

2025年09月16日に「Reddit /r/programming」が公開したITニュース「Crowdstrike Packages Infected with Malware (and other 167 packages infected as well)」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

サプライチェーン攻撃により、Crowdstrikeを含む187のソフトウェアパッケージがマルウェアに感染した。このワームはシステムから機密情報を盗み、GitHubへ公開し、さらに他へ拡散する機能を持つ。既に700以上のプライベートリポジトリが公開状態となったが、悪意あるバージョンは削除済みだ。

ITニュース解説

今回のニュースは、ソフトウェア開発の世界で発生した深刻なサイバー攻撃について詳しく伝えている。多数のソフトウェアパッケージがマルウェアに感染し、その結果、多くの機密情報が流出したり、プライベートな情報が公開されてしまったりする事態に発展した。システムエンジニアを目指す皆さんにとって、これはソフトウェア開発におけるセキュリティの重要性を改めて認識させる、非常に重要な事例だ。

この攻撃は「サプライチェーン攻撃」と呼ばれる種類のものである。ソフトウェア開発では、様々な機能を持つ小さなプログラムの部品、つまり「パッケージ」を組み合わせて新しいソフトウェアを作ることが一般的だ。これらのパッケージは、NPM(Node Package Manager)のような公開されているレジストリを通じて入手されることが多い。サプライチェーン攻撃とは、これらの開発の途中で使われる「部品」にマルウェアを仕込むことで、最終的にその部品を使った全てのソフトウェア、さらにはそのソフトウェアを使う企業やユーザーにまで被害を広げようとするものだ。今回のケースでは、攻撃者は自己増殖能力を持つ「ワーム」と呼ばれるマルウェアを多数のパッケージに忍び込ませた。

事態の始まりは、あるソフトウェア開発者、Daniel Pereira氏が不審なリポジトリが作成されていることに気づいたことだった。彼は調査を進める中で、「tinycolor」という人気のパッケージがマルウェアに感染していることを突き止めた。しかし、当初彼の警告はあまり真剣に受け止められなかった。その後、セキュリティ企業のSocket社が調査に乗り出し、このワームが少なくとも40のパッケージを侵害していることを確認した。しかし、事態はさらに悪化した。ニュース記事の筆者のチームのリード研究者であるCharlie Erikson氏が詳細な調査を行った結果、最終的にCrowdstrike社の製品に関連する20のパッケージを含む、合計187ものパッケージがこのマルウェアに感染していたことが明らかになった。

このワームは、感染すると非常に多岐にわたる悪質な活動を行う。主な活動は以下の五つに分けられる。まず一つ目は「Harvest(収集)」と呼ばれる活動だ。これは、マルウェアが侵入したコンピューター(ホスト環境)や、ソフトウェアの自動構築・テストを行うための環境(CI/CD環境)を徹底的にスキャンし、機密情報を探し出す作業だ。具体的には、プログラムの実行に必要な設定値などが含まれる「環境変数(process.env)」や、設定ファイルなどから秘密の情報を自動的に見つけ出すツール「TruffleHog」を使って、秘密の鍵やパスワードなどを探し出す。さらに、AWS(Amazon Web Services)やGCP(Google Cloud Platform)といったクラウドサービスの情報も狙われ、インスタンスやサービスにアクセスするための認証情報まで収集される。

二つ目の活動は「Exfiltrate (漏洩) (1)」だ。収集した機密情報を外部に持ち出すための手段の一つで、攻撃者は被害者のGitHubアカウントの下に「Shai-Hulud」という名前の新しいリポジトリを作成する。そして、そこに被害者のシステム情報、環境変数、そして先に収集した秘密の情報をJSON形式という分かりやすい形でダンプし、コミットしてしまう。しかも、このリポジトリは「公開(Public)」設定になっていたため、世界中の誰でもこれらの機密情報を閲覧できる状態になってしまったのだ。これは極めて危険な行為であり、情報漏洩の深刻さを物語る。

三つ目の活動は「Exfiltrate (漏洩) (2)」だ。これも機密情報を漏洩させるための方法で、GitHub ActionsというGitHubの自動化機能を利用する。マルウェアは、被害者のリポジトリ内に「.github/workflows/shai-hulud-workflow.yml」という名前の悪意あるワークフローファイルを配置する。このワークフローは、GitHubリポジトリに設定されている「シークレット(secrets)」、つまりAPIキーやトークンなどの機密情報をJSON形式に変換し、それを攻撃者が用意した「webhook.site」というURLにHTTP POSTリクエストで送信する。さらに、これらのシークレット情報は二重にBase64エンコードされた状態でGitHub Actionsの実行ログにも書き込まれる。ログは通常、開発者やCI/CDシステムの関係者しか見られないが、もし攻撃者がログにアクセスできれば、そこから情報が抜き取られる可能性もある。

四つ目の活動は「Propagate(伝播)」だ。これは、ワームが他の場所へ感染を広げるための仕組みである。マルウェアは、感染した環境内で見つかる可能性のある有効な「npmトークン」を探し出す。npmトークンとは、npmというパッケージ管理システムでパッケージを公開したり更新したりするための認証情報だ。このトークンを悪用して、ワームは感染したメンテナー(パッケージの管理者)が他に管理しているパッケージをリストアップし、それらのパッケージを悪意のあるバージョンに更新しようと試みる。これにより、さらに多くのパッケージが感染し、サプライチェーン攻撃の規模が指数関数的に拡大していく。

最後の活動は「Amplify(増幅)」だ。ワームは、被害者がアクセス可能なすべてのリポジトリを反復して処理する。そして、これらのリポジトリがもしプライベート(非公開)な設定になっていた場合、それを「公開(Public)」設定に変更してしまう。ニュース記事によれば、既に700ものプライベートリポジトリが公開されてしまったという。これは、意図しない情報漏洩だけでなく、企業の知的財産や非公開のコードなどが外部に晒される重大な被害となる。また、さらなる情報漏洩や攻撃を誘発するような悪意のあるワークフローやブランチをリポジトリに追加することもある。

今回の攻撃は、過去に「NX S1ngularity攻撃」という名前で知られる別の攻撃と全く同じ脅威アクター、つまり同じ攻撃者グループによるものだとされている。ニュース記事の筆者は、なぜ攻撃者が機密情報をプライベートなコマンド&コントロール(C2)サーバーではなく、わざわざ公開のGitHubリポジトリに漏洩させるのか、その意図が不明であると述べている。通常、攻撃者は盗んだ情報を密かに回収するためにC2サーバーを使うものだが、今回は「混乱を引き起こす」こと自体が目的の一つだった可能性も指摘されている。

今回の事態を受けて、Crowdstrike社のアカウントから悪意のあるバージョンは既に削除されている。しかし、一度感染が広がり、情報が漏洩してしまった影響は容易に消えるものではない。ニュース記事には、今回感染が確認された具体的なパッケージ名とバージョンが多数リストアップされている。これらを参考に、自身が使用しているパッケージに問題のあるバージョンが含まれていないか確認することは非常に重要だ。

今回の事件は、ソフトウェア開発において、たとえ小さなオープンソースパッケージであっても、そのセキュリティに細心の注意を払う必要があることを強く示唆している。外部のパッケージを利用する際は、信頼できるソースからのものか、常に最新のセキュリティ情報を確認する習慣を持つことが、システムエンジニアとして非常に大切になるだろう。また、自身が開発するソフトウェアだけでなく、その開発プロセス全体、CI/CD環境、そしてそれに付随する認証情報やトークンの管理についても、厳重なセキュリティ対策が求められる。