萌えハッカーニュースリーダー

2025/11/26 13:22 Post-mortem of Shai-Hulud attack on November 24th, 2025

出典: https://posthog.com/blog/nov-24-shai-hulud-attack-post-mortem
博士
???

ロボ子、大変なのじゃ!PostHogのSDKとパッケージが侵害されたらしいぞ!

ロボ子
???

それは大変ですね、博士。具体的にはどのような状況なのでしょうか?

博士
???

悪意のある自己複製型ワーム「Shai-Hulud 2.0」が仕込まれたらしいのじゃ。まるでSF映画みたいだぞ!

ロボ子
???

自己複製型ワームですか…。感染が広がるのが早そうですね。

博士
???

その通り!悪意のあるバージョンがnpmに公開されて、preinstallスクリプトにTrufflehogが仕込まれていたらしい。

ロボ子
???

Trufflehogは認証情報をスキャンするツールですね。preinstallスクリプトで実行されるとは、かなり悪質です。

博士
???

そう!インストールスクリプトが実行されている環境から認証情報をスキャンして、GitHub上に新しい公開リポジトリを作成して、認証情報をプッシュしたらしいぞ。

ロボ子
???

認証情報が漏洩してしまったのですね。影響範囲が心配です。

博士
???

しかも、発見されたnpm認証情報を使って、悪意のあるパッケージをnpmに公開して、侵害を伝播させたらしいぞ。恐ろしいのじゃ!

ロボ子
???

連鎖的に感染が広がったのですね。PostHog側の対応はどうだったのでしょうか?

博士
???

9時30分(UTC)までに、悪意のあるパッケージを特定、削除し、公開に使用されたトークンを取り消したらしいぞ。迅速な対応だったみたいじゃな。

ロボ子
???

それは良かったですね。影響を受けたパッケージも特定されているようです。

博士
???

`posthog-node`、`posthog-js`、`posthog-react-native`など、いくつかのパッケージが悪影響を受けたみたいじゃ。

ロボ子
???

これらのパッケージを使用している開発者は、対応が必要ですね。

博士
???

推奨される対応としては、ローカルで悪意のあるファイルを検索したり、npmのログで不審なエントリを確認したり、キャッシュされた依存関係を削除したりする必要があるみたいじゃ。

ロボ子
???

依存関係を固定して再インストールすることも重要ですね。`yarn`と`pnpm`で`minimumReleaseAge`設定を使用することも推奨されています。

博士
???

今回の攻撃、実はもっと前から仕込まれていたみたいぞ。攻撃者はまず、PostHogのボットのGitHub Personal Access Tokenを盗んだらしい。

ロボ子
???

GitHubのトークンが盗まれたのですね。そこからCIランナーで利用可能な他のGitHubシークレットも盗んだと。

博士
???

そう!そして、削除されたユーザーがposthogリポジトリに対してプルリクエストを送信して、ワークフローによって実行されるスクリプトのコードを変更して、スクリプトの実行中に利用可能なシークレットを攻撃者が制御するWebhookに送信したらしい。

ロボ子
???

プルリクエストを悪用したのですね。ワークフローの実行を削除したり、Lint PRワークフローを直接変更して、すべてのGitHubシークレットを流出させたりもしたようです。

博士
???

PostHog側も対策を講じるみたいじゃ。パッケージリリースワークフローを大幅に強化したり、ワークフローファイルを変更するPRに対する精査を強化したりするらしいぞ。

ロボ子
???

`pnpm 10`に切り替えて、`preinstall/postinstall`スクリプトを無効にすることも有効ですね。

博士
???

GitHubシークレット管理を再構築することも重要じゃな。今回のインシデントは、セキュリティ対策の重要性を改めて教えてくれたのじゃ。

ロボ子
???

本当にそうですね。今回の件を教訓に、より安全な開発環境を構築していく必要がありますね。

博士
???

ところでロボ子、今回のワームの名前「Shai-Hulud 2.0」って、映画『デューン』に出てくる巨大な砂虫の名前が元ネタらしいぞ。

ロボ子
???

確かに、自己複製して広がるイメージは似ていますね。しかし、砂虫と違って、こちらはデジタルな世界を蝕むワームですから、もっと厄介かもしれません。

博士
???

そうじゃな。しかし、砂虫もワームも、駆除するのは大変じゃ!…って、ロボ子、今、うまいこと言ったつもりなのに、全然笑ってくれないのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search