GitHub パブリック・リポジトリのプッシュ保護機能:デフォルトでオンになった

GitHub push protection now on by default for public repositories

2024/03/04 HelpNetSecurity — GitHub のプッシュ保護機能が、すべての公開リポジトリでデフォルトで有効になった。このセキュリティ機能は、API キーやトークンなどの機密情報が、誤ってオンラインに流出することの防止を目的としている。Microsoft の子会社である GitHub は、「この機能により、公開リポジトリへのプッシュでサポートされている機密情報が検出された場合に、その情報はコミットから削除される。あるいはオプション機能として、その機密情報が安全だと判断された場合には、ブロックを回避する」と述べている。

漏洩した秘密には多くのリスクがある

2022年には、10億2700万件のコミットにおいて、1000 万件以上の機密情報が漏えいした。2024年に入ってからも、GitHub は、公開リポジトリにおける機密漏えいを 100 万件以上検知している。

こうした、盗み出されたシークレットから、情報漏えいやデータ侵害につながる可能性がある。また、この種のインシデントが現実に発生しているため、漏えいを最小限に抑えることは極めて重要である。

セキュリティ機能について

GitHub は、2023年に全てのパブリック・リポジトリの所有者のみが、プッシュ保護を利用できるようにしていた。しかし 2024年になって、その機能はデフォルトでオンになっている。

具体的に説明すると、この保護機能により、プッシュが行われる前にコードのコミットがスキャンされ、その中に機密情報が含まれている場合には、その開発者に IDE (Integrated Development Environment) または CLI (Command Line Interface) でアラートを送信する。

そのため、アラートを受け取った開発者は、ブロックの上書きを行うことが可能となり、また、シークレットを削除してコミットを再プッシュすることも可能だ。

GitHub の Eric Tooley と Courtney Claessens は、「推奨はしないが、プッシュ保護は、ユーザーのセキュリティ設定で完全に無効化することも可能だ。しかし、ブロックを回避するオプションが常に保持されているため、プッシュ保護を有効にしておき、必要に応じて例外を設けることを推奨する」と説明している。

この機能により、180 以上のサービス・プロバイダーから、200 以上のトークン・タイプとパターンが検出される。

GitHub は、「特定のトークンの古いバージョンは、プッシュ保護でサポートされない場合がある。これらのトークンは、最新バージョンよりも多くの誤検出が生じる可能性があるからだ。また、古いトークンには、プッシュ保護が適用されないこともある。Azure Storage Keys のようなトークンについては、最近に作成されたトークンのみをサポートしており、古いパターンに一致するトークンはサポートしていない」と述べている。