2026-04-30

SAP関連のnpmパッケージが認証情報を盗むサプライチェーン攻撃に侵害される

2026年4月29日、SAP関連のnpmパッケージが新たなサプライチェーン攻撃により侵害され、認証情報を盗むマルウェアが仕込まれました。この攻撃は「mini Shai-Hulud」と名付けられ、特定のパッケージに新たなインストール時の動作が追加され、悪意のあるスクリプトが実行される仕組みです。攻撃者は、開発者のローカル認証情報やクラウドの秘密情報を収集し、被害者のGitHubアカウントに作成した公開リポジトリに暗号化されたデータを送信します。これにより、開発環境やCI/CD環境が危険にさらされる可能性があります。

メトリクス

このニュースのスケール度合い

6.5 /10

インパクト

7.0 /10

予想外またはユニーク度

7.5 /10

脅威に備える準備が必要な期間が時間的にどれだけ近いか

8.5 /10

このニュースで行動が起きる/起こすべき度合い

8.5 /10

主なポイント

  • SAP関連のnpmパッケージが新たなサプライチェーン攻撃により侵害され、認証情報を盗むマルウェアが仕込まれました。
  • 攻撃者は、開発者のローカル認証情報やクラウドの秘密情報を収集し、GitHubに暗号化されたデータを送信します。

社会的影響

  • ! この攻撃は、開発者や企業のセキュリティ意識を高める必要性を示しています。
  • ! GitHubがデータ外部送信のインフラとして利用されることで、開発環境のセキュリティが脅かされる可能性があります。

編集長の意見

今回のサプライチェーン攻撃は、特に開発者の認証情報を狙ったものであり、従来の攻撃手法とは異なる新たな脅威を提示しています。攻撃者は、npmパッケージの信頼性を悪用し、開発者が無意識のうちに悪意のあるコードを実行するよう仕向けています。このような攻撃は、開発者の作業環境に直接影響を及ぼし、企業のセキュリティポリシーに対する信頼を損なう可能性があります。特に、GitHubを利用したデータの外部送信は、追跡が難しく、攻撃者にとっては非常に効果的な手法です。今後、開発者は自らの環境を守るために、npmパッケージの信頼性を確認することが重要です。また、企業はCI/CD環境におけるセキュリティ対策を強化し、悪意のあるコードが実行されないようにする必要があります。さらに、開発者教育を通じて、セキュリティ意識を高めることが求められます。攻撃者が利用する手法は日々進化しているため、常に最新の情報を把握し、適切な対策を講じることが重要です。

解説

SAP関連npmに「mini Shai‑Hulud」混入、インストール時スクリプト経由で認証情報を奪取し被害者のGitHubへ流出するサプライチェーン攻撃です

今日の深掘りポイント

  • 攻撃はnpmのインストール時スクリプトを悪用し、開発端末やCIで手元にある認証情報を収集、被害者自身のGitHubアカウントに作成した公開リポジトリへ暗号化して押し込む設計です。
  • egress制御をすり抜けやすい「GitHubへの正規通信」を外形にするため、ネットワーク監視やDLPの盲点を突く構図です。
  • CIは「--ignore-scripts」「オフラインキャッシュ」「最小権限トークン」「OIDCの採用」などで無害化の余地が大きい一方、開発者端末のGit資格情報管理とクラウドCLIの残存情報が弱点になりやすいです。
  • 影響の広がりは大きく、初動は依存関係の凍結と資格情報の即時ローテーション、GitHubの監査ログ確認の3点から着手するのが現実的です。

はじめに

SAP関連のnpmパッケージに、インストール時に自動実行される悪性スクリプトが仕込まれ、ローカルやCIに存在する認証情報を収集して外部に流出させる事案が4月29日に報じられました。キャンペーン名は「mini Shai‑Hulud」とされ、1,100超のリポジトリに影響が及んだとされています。特異なのは、窃取データの送信先に攻撃者管理のインフラではなく、被害者のGitHubアカウント内に新規作成した公開リポジトリを用いた点で、検知と封じ込めの難しさが際立ちます。欧州を中心にSAP導入企業が多い状況を踏まえると、ソフトウェア供給網を迂回して業務基盤へ寄り添うように侵入するリスクが読み取れます。報道は二次情報ですが、サプライチェーン防御の「いま押さえるべき実務」を整理しておきます。The Hacker Newsの報道を一次情報の代替として参照します。

深掘り詳細

事実関係(判明していること)

  • 2026年4月29日、SAP関連のnpmパッケージにサプライチェーン侵害が発生し、インストール時に悪性スクリプトが実行されるよう改変されました。スクリプトは開発者のローカル認証情報やクラウドの秘密情報を収集し、被害者のGitHubアカウントに自動作成した公開リポジトリへ暗号化したデータを送信します。1,100超のリポジトリが影響を受けたと報じられています。出典はThe Hacker Newsです。
  • リスクはローカルの開発環境に加え、CI/CD実行環境に波及する可能性が指摘されています。特に、インストールライフサイクルスクリプトが許可されているCIや、広い権限のトークンを用いるパイプラインは被害の起点になりやすい設計です。同上です。

インサイト(何が新しく、なぜ効くのか)

  • 正規プラットフォームを使った秘匿外部送信の巧妙さです。GitHubは多くの組織で許可ドメインになっており、APIやgitプロトコルへの通信は日常的です。被害者アカウント配下に新規リポジトリを作成してpushする手口は、外向きの宛先やTLS証明書に異常が出にくく、DLPやFWのカスタムシグネチャにも引っかかりづらいです。監視は「誰のアカウントが、どのIPから、どんな命名規則のリポジトリを、どの頻度で新規作成・更新したか」というアイデンティティ視点に寄る必要があります。
  • 依存パッケージの「postinstall」等のライフサイクルスクリプトは、ビルド時に最も高い権限と最も多い秘密情報に触れられる場所です。ビルドの再現性やキャッシュ優先のチューニングは進んだ一方、スクリプトの無害化やサンドボックス化は後回しになりやすく、攻撃者目線では「最小の改変で最大の収穫」が期待できます。
  • 企業の現場実装を踏まえると、CIでは「--ignore-scripts」「オフラインキャッシュ」「最小権限トークン」「外向き通信の最小化」でリスクを大きく削れます。一方、開発者端末は多様で、Git資格情報ヘルパーの設定やクラウドCLIの残骸(~/.aws/credentials、SSH秘密鍵、環境変数、デフォルト環境ファイル等)の管理がばらつきがちです。キャンペーンはこの「CIは堅牢でも、端末はムラがある」という現実に刺さる設計だと読めます。
  • 報道ベースの数値と観測から、影響は既に顕在化している前提で動くべきです。新規性は中程度でも、即時性と実行可能性は高く、事後対応の遅れが損害の増幅に直結するタイプのインシデントです。優先度付けの指針は「発生確率の高さ × 露出範囲(開発者端末+CI) × 秘密情報の濃度」で判断するのが実務的です。

脅威シナリオと影響

以下は報道と一般的な攻撃技術を踏まえた仮説シナリオです。実際の観測結果に応じて調整してください。

  • 初期侵入と実行
    • 侵害済みnpmパッケージの導入時にpostinstall等のライフサイクルスクリプトが自動実行されます。
    • MITRE ATT&CK: Supply Chain Compromise (T1195)、Command and Scripting Interpreter: JavaScript/Node.js (T1059) です。
  • 資格情報・秘密情報の収集
    • 環境変数、プロファイルファイル、各種CLI設定、SSH鍵、Git資格情報ヘルパーからの抽出、OSキーチェーンからの取得を試みる可能性があります。
    • MITRE ATT&CK: Unsecured Credentials (T1552、特にT1552.001 Credentials in Files、T1552.004 Private Keys)、Credentials from Password Stores (T1555) です。
  • 標的環境の把握
    • 実行ユーザ、ホスト情報、プロキシ設定、CI環境変数の有無の確認など基本的なディスカバリが行われます。
    • MITRE ATT&CK: System Information Discovery (T1082) です。
  • データ外部送信(秘匿化)
    • 収集データを暗号化し、被害者のGitHubアカウントに新規作成した公開リポジトリへpushします。REST APIのPOST /user/reposあるいはgit+SSH/HTTPSを悪用する仮説です。
    • MITRE ATT&CK: Exfiltration Over Web Service: Exfiltration to Code Repository (T1567.001) です。
  • 影響の広がり
    • 開発者端末で奪取したトークン・鍵により、クラウド環境(例: AWS/Azure/GCPの長期アクセスキー、SAP BTPのサービスキー等)へ横展開する可能性があります。ここは仮説ですが、Node系SAP開発ではdefault-env.jsonやVCAP_SERVICES相当の構成ファイルが残存することがあり、狙われやすい地点です。

業務影響としては、ソースコード・秘密情報の漏洩、CI/CDの信頼性失墜、クラウドリソースの不正利用(コスト・破壊・ランサム)に加え、SAP周辺の統合基盤やAPIエンドポイントに対する認証済みの不正呼び出しが懸念されます。被害検知の難しさは「被害者アカウント内の正規リポジトリ操作」という擬態にあります。GitHubの監査ログとアイデンティティ基盤での相関監視が鍵になります。

セキュリティ担当者のアクション

初動(24〜72時間)

  • 依存関係の凍結とスクリプト無効化
    • CI/CDではnpm ciに統一し、インストールスクリプトを無効化します(NPM_CONFIG_IGNORE_SCRIPTS=true もしくは --ignore-scripts)。npm config: ignore-scriptsnpm ciを参照ください。
    • ビルドはオフラインキャッシュ(ベンダー済みnode_modulesや内部レジストリのプロキシキャッシュ)を使用し、新規公開バージョンの直接取得を止めます。
  • 影響評価と封じ込め
    • SBOMや依存関係グラフで該当パッケージの利用可否とインストール履歴を特定します。対象期間中に該当パッケージをインストールした開発端末とCIジョブを列挙します。
    • 該当端末・ランナーのプロセス監査とネットワークログから、npm実行直後のgit/api.github.com通信を抽出します。プロセス連鎖「npm → node → シェル → git」があれば優先トリアージ対象です。
  • 認証情報のローテーション
    • GitHub: 個人アクセストークン(PAT)、デプロイトークン、SSH鍵を即時ローテーションし、不要なトークンを無効化します。過去数日で作成された見覚えのない公開リポジトリを棚卸し、削除と監査を実施します。GitHub PATの管理です。
    • クラウド: 長期アクセスキーを停止し、短期発行の一時クレデンシャルへ移行します(例: OIDC連携やSTSのAssumeRole)。GitHub ActionsのOIDCハードニングAWS STSです。
    • 開発端末: Git資格情報ヘルパーが「store」になっていないか確認し、OS保護ストア(macOS Keychain、Windows DPAPI、libsecret等)を用いるヘルパーへ統一します。git-credentialsの仕組みです。
  • 監査と通知
    • GitHub Enterpriseの監査ログで「Repository created」「Public repository added」「OAuth authorization」「Fine-grained PAT作成」などのイベントを横断確認します。IPやUAの異常も相関します。GitHub Enterprise 監査ログです。
    • 開発者・サプライヤへ注意喚起を配信し、端末自己点検チェックリスト(最近のnpm install実行、怪しいリポジトリ作成の有無、PAT再発行)を回付します。

短期(1〜4週間)

  • CI/CDの構成ハードニング
    • デフォルトでインストールスクリプトを無効化、必要ジョブのみホワイトリストで許可します。コンテナ実行環境はネットワークegressを制限し、必要時のみapi.github.comやレジストリへの通信を開放します。
    • GITHUB_TOKENは最小権限(contents: read)をデフォルトに、書き込みやリポジトリ作成は個別ワークフローで明示付与します。PATの組み込みは原則禁止します。
    • 依存パッケージの新規バージョンは内部レジストリで検疫(quarantine)し、審査通過後に解放するゲートを設けます。
  • 消費側の真正性検証の強化
    • lockfileの厳格運用(npm ci専用化、手動更新の承認プロセス化)、レジストリのスコープ制限、名前衝突(typosquatting)検知を導入します。
    • 可能な範囲でnpmパッケージのプロベナンス(署名・ビルド由来メタデータ)の活用を検討します。供給元が発行するプロベナンスの有無を可視化し、重要依存の門番指標にします。
  • 検知体制
    • 「npm実行直後にgit/API通信が発生」「ビルドコンテナからリポジトリ新規作成APIが叩かれる」「短時間に複数の公開リポジトリ作成」という振る舞い検知ルールをEDRとSIEMに追加します。
    • GitHubの監査ログをIDPのリスク判定と相関し、地理的・時間的に不自然なリポジトリ操作をアラート化します。

中長期(四半期〜)

  • 開発者端末のシークレット衛生
    • クラウドCLIやSAP開発で用いる「default-env.json」「.env」「VCAP_SERVICES」相当のローカルファイルを保全対象に指定し、平文や長期鍵の残存を撲滅します。秘密情報は開発時もシークレットマネージャと短期資格で扱う標準に移行します。
    • Git資格情報はOSキーチェーン管理を前提に、PATは細粒度・期限付・スコープ最小、不要時は失効という運用を徹底します。
  • ソフトウェア供給網ガバナンス
    • クリティカル依存の台帳化、代替候補の用意、メンテナの信頼性・バス係数・セキュリティ実践(2FA、署名、リリース手順)を定期レビューします。
    • SBOMの継続生成と脆弱依存の自動サプレッション/例外ワークフローを整備し、パッケージ入れ替えが事業影響最小で行える体制をつくります。

参考情報

  • 報道(二次情報):SAP npm packages compromised by “mini Shai‑Hulud” to steal credentials
  • MITRE ATT&CK: Supply Chain Compromise (T1195) — https://attack.mitre.org/techniques/T1195/
  • MITRE ATT&CK: Command and Scripting Interpreter (T1059) — https://attack.mitre.org/techniques/T1059/
  • MITRE ATT&CK: Unsecured Credentials (T1552) — https://attack.mitre.org/techniques/T1552/
  • MITRE ATT&CK: Credentials from Password Stores (T1555) — https://attack.mitre.org/techniques/T1555/
  • MITRE ATT&CK: Exfiltration to Code Repository (T1567.001) — https://attack.mitre.org/techniques/T1567/001/
  • npm: ignore-scripts 設定 — https://docs.npmjs.com/cli/v10/using-npm/config#ignore-scripts
  • npm: npm ci — https://docs.npmjs.com/cli/v10/commands/npm-ci
  • GitHub Enterprise 監査ログ — https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise
  • GitHub Actions OIDCによる短期資格連携 — https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers
  • git-credentials(資格情報ヘルパーの仕組み) — https://git-scm.com/docs/gitcredentials

編集後記 今回の教訓はシンプルです。ビルドは最も秘密が濃い場所であり、最も慎重に動かすべきプロセスです。オフライン化とスクリプト無効化を「面倒だから」の一言で先送りにしない姿勢が、サプライチェーン攻撃の時代における強さそのものです。小さな運用の徹底が、いちばん大きな被害の芽を摘むのだと、あらためて感じます。

背景情報

  • i 今回の攻撃は、特定のnpmパッケージに新たなインストール時の動作を追加する形で行われました。これにより、悪意のあるスクリプトが実行され、開発者の認証情報が盗まれる仕組みです。
  • i 攻撃者は、GitHubを利用してデータを外部に送信する手法を採用しており、これにより追跡が困難になるという新たな脅威を生み出しています。