最近のNPMエコシステムを標的としたサプライチェーン攻撃を受け、GitHubはNPMレジストリのセキュリティ向上を目的とした、より厳格な認証および公開ルールを導入します。
過去3か月間にいくつかの大きなインシデントが発生しており、直近ではShai-Hulud自己増殖型ワームによる攻撃が先週、数十のメンテナーアカウントに影響を与えました。攻撃者は195個のパッケージを侵害し、500以上の悪意あるパッケージバージョンをレジストリに公開しました。
その1週間前には、Josh Junonが管理する18のNPMパッケージが、NPMサポートを装ったフィッシングキャンペーンによってメンテナーが被害に遭い、マルウェアが仕込まれました。これらのパッケージは週あたり25億回以上ダウンロードされています。
7月には、週合計3,000万回以上ダウンロードされている複数のパッケージが、攻撃者によるタイポスクワッティングでNode.jsパッケージレジストリを装い、メンテナーを標的にしたことで侵害されました。
GitHubによると、Shai-Hulud攻撃を受けて、プラットフォームおよびコミュニティは迅速に対応し、悪意あるパッケージの削除や、新たなマルウェアのアップロードを阻止しました。これにより、感染の大規模拡大を防ぐことができました。
「自己増殖機能と複数種類のシークレット(npmトークンだけでなく)を盗む能力を組み合わせることで、このワームはGitHubとオープンソースメンテナーによる迅速な対応がなければ、無限に攻撃を続けることが可能だったでしょう」とGitHubは述べています。
トークンの悪用や自己増殖型マルウェアに関連するリスクを防ぐため、Microsoft傘下のこのコードホスティングプラットフォームは、ローカルでの公開を2要素認証(2FA)必須とし、7日間で期限切れとなる細分化されたトークンや、信頼された公開機能を導入します。
推奨されるセキュリティ機能である「信頼された公開」は、長期間有効なトークンの管理を不要にし、短期間かつ厳密に範囲を限定したAPIトークンに依存することで、パッケージが特定のソースシステムから発信されていることを保証します。
「NPMが信頼された公開機能をリリースした際、私たちはこの新機能の導入が自然に広がることを期待していました。しかし、攻撃者は待ってくれません。すべての対応パッケージマネージャーで、できるだけ早く信頼された公開を採用することを強く推奨します」とGitHubは述べています。
さらに、プラットフォームは従来のクラシックトークンおよび時限型ワンタイムパスワード(TOTP)2FAを廃止します。また、公開権限を持つ細分化トークンの有効期限を短縮し、デフォルトでトークンによる公開アクセスを無効化、ローカルパッケージ公開時の2FA回避を防止、信頼された公開の対象プロバイダー拡大なども行います。
「これらのセキュリティ変更の一部は、ワークフローの更新が必要となる場合があることを認識しています。NPMのセキュリティ体制を強化しつつ、混乱を最小限に抑えるため、これらの変更は段階的に展開していきます」とGitHubは述べています。
GitHubは、できるだけ早く信頼された公開への切り替え、公開時の2FA必須化、2FA設定時にはTOTPではなくWebAuthnの利用を推奨しています。
関連記事: Shai-Huludサプライチェーン攻撃:ワームによるシークレット窃取、180以上のNPMパッケージが被害
関連記事: Expressユーティリティを装った悪意あるNPMパッケージ、攻撃者によるシステム消去を可能に
翻訳元: https://www.securityweek.com/github-boosting-security-in-response-to-npm-supply-chain-attacks/