Never leak secrets to your GitHub repositories again
2023/05/10 HelpNetSecurity — GitHub のプッシュ・プロテクション (リポジトリでの機密漏えいを自動的に防ぐためのセキュリティ機能) が、すべてのパブリック・リポジトリの所有者に向けて無料化された。これまでは、GitHub Advanced Security ライセンスを持つ、プライベート・リポジトリの所有者のみが利用可能だった。この機能は、オープンソースの開発者やメンテナが、コードのセキュリティを積極的に確保することを目的としている。

GitHub のプッシュ・プロテクションで機密漏えいを防ぐ
この機能が実現されるキッカケとなったのは、パスワード/暗号化キー/API キーなどの機密情報を、ソースコードにダイレクトに取り込むという、一般的な開発者の習慣にある。それにより、クレデンシャル漏洩が、今日のデジタル環境におけるデータ侵害の最大の原因になっている。
セキュリティのベストプラクティスにおいて、見落としや、過失があっても、あるいは認識不足があっても、結果は同じである。
このプッシュ・プロテクションは、コードがコミットされる前に、プッシュ・コードをスキャンすることで、秘密の漏えいを防ぐものである。それにより、開発者たちは、IDE (integrated development environment) や CLI (command line interface) を介して、ダイレクトに警告を受けることになる。
GitHub の Mariam Sulakian と Zain Malik は、「シークレット含むコミットをプッシュされる場合には、プッシュ・プロテクションのプロンプトが表示され、そのシークレットの種類/場所に加えて、暴露を修復する方法に関する情報が表示される。したがって、コミット履歴からシークレットを削除した後に、コミットを再プッシュすることが可能になる」と説明している。
プッシュ保護は、誤検出率の低いシークレットだけをブロックするため、コミットがブロックされた時点で、調査する価値があることが分かる。
ただし、シークレットを含むコードであっても、緊急でプッシュする必要がある場合には、正当な理由を提示することで、プッシュ保護を回避できる。その際には、リポジトリ/組織の管理者や、セキュリティ管理者に対して、メールを介した通知が行われる。
プッシュ・プロテクションの有効化
GitHub のコード・セキュリティと解析の設定で、プッシュ・プロテクション機能を有効化できる。シークレット・スキャンとプッシュ・プロテクションの両方を、有効化することも可能だ。
GitHub は、「現時点において、プッシュ・プロテクションとしてのシークレット・スキャンは、一部のサービス・プロバイダーが発行したシークレットのリポジトリをスキャンしている。このシークレット・スキャンは、カスタム・パターンのプッシュもチェックできる」と指摘している。
なお、プッシュ・プロテクションは、特定のトークンの古いバージョンや、レガシー・トークンをサポートしない場合もあるという。
GitHub のプッシュ・プロテクションに関しては、2022/04/04 の「GitHub にトークン保護機能が追加:リポジトリ・プッシュの前に自動判定」という記事があります。このサービスが、すべてのパブリック・リポジトリで使えるようになり、しかも無償というのが良いですね。よろしければ、GitHub ページも、ご参照ください

You must be logged in to post a comment.