MF Blogs 便利ツール
ダークグリーンの背景に、緑色の盾の中に3Dの立方体パッケージアイコンがあり、右上にチェックマーク、左下にブロックを示すバツ印のアイコンが配置されたイラスト

記事

GitHub、インストール時のサプライチェーン攻撃を防ぐ「package firewall」をパブリックプレビュー公開

GitHubが、パッケージのインストール時に発生する供給網攻撃を防ぐ新機能「package firewall」をパブリックプレビューとして公開しました。CI/CDホストや開発者のワークステーションがコード実行なしに認証情報を窃取される被害を、流通経路の段階で遮断します。

0:00 0:00

GitHubは10月20日、パッケージのインストール時に起きるサプライチェーン攻撃を防ぐ新機能「package firewall」をパブリックプレビューとして公開したと発表しました。CI/CDホストや開発者のワークステーションを狙い、パッケージのコードを実行することすらなくインストール処理だけで認証情報を窃取するタイプのマルウェア攻撃が増えていることを受けた対応だといいます。GitHub公式ブログが発表しました。

インストール時に認証情報を狙う攻撃が増加

GitHubによると、近年の攻撃手法の中には、パッケージのインストール処理そのものを悪用し、CI/CDホストや開発者端末上の認証情報を窃取するものが目立って増えているといいます。従来のセキュリティ対策の多くはパッケージのコードが実行された後の挙動を監視するものですが、この手の攻撃はコードの実行を待たずにインストールの段階で被害が発生してしまう点が厄介です。package firewallは、この「インストール時」という見落とされがちな攻撃経路そのものを塞ぐことを目的に設計されています。

仕組み——エンドポイントとレジストリの間に立つ関所

package firewallは、GitHub Actionsのランナーやコーディングエージェントといったエンドポイントとパッケージレジストリの間に割って入り、パッケージのメタデータ取得リクエストとダウンロードの両方を検査します。利用にあたってはまず管理者が組織単位でポリシーを設定し、設定可能なクールダウン期間の導入、GitHub Advisory Databaseを参照したマルウェアや脆弱性アラートのチェック、証明の格下げ(attestation downgrade)のようなサプライチェーン上のチェックなどを組み合わせられます。その上でActionsランナーやコーディングエージェントなどのエンドポイント側は、上流のレジストリへ直接アクセスするのではなく、firewall経由でリクエストを送るように設定を変更する必要があります。

ダークグリーンの背景に緑色の盾の中の立方体パッケージアイコンがあり、右上にチェックマーク、左下にブロックを示すバツ印が配置されたイラスト

画像引用元: GitHub Blog

誤検知時の例外申請にも対応

ポリシーに反すると判定されたパッケージは自動的にブロックされますが、誤ってブロックされてしまった場合にはユーザーが例外を申請できる仕組みも用意されています。この申請フローは、GitHub Advanced Securityの他の機能と似たワークフローになっているとのことで、既存のセキュリティ運用に慣れた開発者であれば違和感なく扱えそうです。なお現時点でpackage firewallが対応しているのはnpmパッケージのみで、他のパッケージマネージャーへの対応は今後の拡張待ちとなります。

料金とパブリックプレビューの位置づけ

package firewallは現在、データレジデンシー対応版を含むすべてのGitHub Enterprise Cloudの顧客が利用できるパブリックプレビューとして提供されています。プレビュー期間中は無料で利用できますが、一般提供(GA)に移行した際には、Actionsの課金と同様に従量制の計測ベースで課金される見込みです。GitHubは今後、裏側のインフラ基盤を拡張しつつ、顧客からの要望に基づいて機能を追加していく方針としており、対応パッケージマネージャーの拡大にも期待が集まりそうです。