【開発者注意】GitHub乗っ取りワーム「Shai-Hulud (Sha1-Hulud) 2.0」の感染チェックと予防法

セキュリティ

自己増殖型サプライチェーン攻撃Shai-Hulud 2.0 (Sha1-Hulud 2.0)が猛威をふるっています。

2025年11月24日時点で影響を受けたnpmパッケージは約800個、GitHubリポジトリは25,000以上に及んでいます。

この中には、ZapierやPostmanなど有名なものも含まれています。最近、これらのパッケージをインストールした方は要注意!

どんなウイルスか、何をすればよいか、本記事ではこの点をお伝えします。

既に色々な記事があり、そちらも非常に役立ちます。ただ、やや専門的な説明が多すぎるような気もします。

そこで、本記事は確認方法と対策重視でお伝えしますね。

Shai-Hulud 2.0とは?どんなウイルス?

ひとことでいえば、最悪の『自己増殖型』サプライチェーン攻撃です。

  • 感染経路: npm install を実行した瞬間に感染し、PC内の認証トークン(AWSやGitHubの合鍵)を盗み出す。

  • 挙動: 盗んだ権限で勝手にリポジトリを作成して、ローカル上の機密情報をばら撒く。GitHub Actionsに裏口(Runner)を設置。

  • リスク: 自分のPCが踏み台になり、チームメンバーや他のプロジェクトへ無限に感染を広げてしまう。

  • さらに深刻なリスク: 認証情報の窃取に失敗した場合、マルウェアはホームディレクトリ全体を破壊しようとする。

今すぐやるべきチェック

今感染しているかどうかをチェックする方法をご紹介します。

ライブラリチェック

すでに影響を受けたことが報告されているライブラリについては、下記記事の「Impacted Packages」より確認できます。ZapierやPostmanなど有名なものが含まれています。

GitHubの「不審な動き」を確認

すでに被害に遭っていないかチェックします。

  • リポジトリ一覧: 身に覚えのないリポジトリが作られていないか?

  • Actions(裏口)の確認:

    • 主要なリポジトリの Settings > Actions > Runners を確認。

    • 知らない「Self-hosted runner」が登録されていたら即削除。(ここがバックドアになり、PCを外部から遠隔操作されます)

もし異常があれば「トークン」を全変更

上記で怪しい点が見つかった場合、PC内の「合鍵」がコピーされている可能性があります。

GitHubのアクセストークン(PAT)、AWS/GCPのクレデンシャル、npmのトークンなどを無効化・再発行します。

PC内の「感染源」を掃除(キャッシュクリア)

PC内に汚染されたライブラリが保存されている可能性があるため、履歴をリセットします。

  • npmの場合: npm cache clean --force

  • Bunの場合: bun pm cache rm

デメリットとしては、キャッシュがなくなるため、次回インストールする際に時間がかかります。

今後の対策

今後の対策についてもまとめます。

怪しいライブラリを見極める

新しくライブラリを入れる時は、以下の3点をチェック。

  1. 名前: 有名なものと似ていないか?

  2. 公開日: 昨日や今日リリースされたばかりではないか?

  3. DL数: 有名なはずなのに、週間ダウンロード数が極端に少なくないか?

package.jsonの中身をチェックする

インストールしようとしているライブラリの package.json を見て、scripts 欄に以下のような記述があったら危険です。

または

ファイル名は変わる可能性もありますが、「preinstall(インストール前)で、Bunのセットアップと思われるJSファイルを実行しようとしている」 点が特徴です。

アカウント防御の強化

今後のためにも、以下の設定の見直しをおすすめします。

2FAとパスキーの設定

まだの方は、2FA(2要素認証)とパスキーを有効にすることでセキュリティレベルが向上します。
→ GitHub: Settings > Password and authentication

トークンの権限の見直し

Personal Access Tokenで不要な権限を持つものがないかチェックして、リポジトリ作成権限を持つ不要なトークンがあれば削除・または権限を絞るなどします。
→ GitHub: Settings > Developer Settings > Personal access tokens

OAuth連携アプリの見直し

使っていないアプリや、信頼できないアプリとの連携は削除しましょう。
→ GitHub: Settings > Applications > Authorized OAuth Apps

「不要なアクセス権限を与えない」というのが非常に大事です。

GitHub側の対応

GitHubは11月26日から、トークンの無効化や悪意あるリポジトリの非公開化など対応を進めています。

ですが既に盗まれた認証情報はGitHub側では完全には把握できませんし、PC内のキャッシュも自動削除されません。そのため、自分での対策が必須です。

まとめ

今回の攻撃では、Bunが使われています。こちら、npmの代替として利用できる高機能なランタイムです。

これによって、こういった攻撃が容易になったと考えられます。

Bun自体が悪いわけではありません。

高性能なツールができたことで、攻撃者にとっても使いやすくなってしまった、ということかと思います。

なお今回の攻撃は、OWASP Top 10 の「Software Supply Chain Failures」に該当すると思われます。

ここからまた、色々とこういった攻撃が繰り広げられていきそうですよね。ぜひ、セキュリティ意識高めていきましょう。

セキュリティ 攻撃と対策

ご相談受付

お問い合わせ

生成AIを使った開発の研修・各種ご相談承っています。お気軽にお問い合わせください。

詳細を見てみる

ご相談受付

お問い合わせ

生成AIを使った開発の研修・各種ご相談承っています。お気軽にお問い合わせください。

詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版テキストに加え、Laravel8版~Laravel11版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新版テキストに加え、Laravel8版からLaravel11版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した書籍を出版しました。 ご好評につき、最新版に対応した改訂版を2025年7月に発売
書店やAmazon等のオンラインショップにて販売中です。 詳しくは下記ボタンをクリック

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。ご好評につき最新版対応の改訂版発売。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました