Push protection is generally available, and free for all public repositories

プッシュ保護の一般提供(GA)を開始、すべてのパブリックリポジトリで無料利用が可能に

Image of Zain Malik
   
Image of Mariam Sulakian

GitHubは、パブリックリポジトリおよびプライベートリポジトリのシークレット漏洩を未然に防ぐ、プッシュ保護の一般提供(GA)を発表しました。


GitHubでは、ワークフローに直感的なセキュリティ機能を組み込み、開発者が利用できるようにすることで、共に協力して、セキュリティ対応をリアクティブなものからプロアクティブなものへと変えることができると考えています。2022年4月にGitHub Advanced Security(GHAS)のユーザ向けにシークレットスキャンのプッシュ保護機能のベータ版をリリースして以降、プッシュ保護を利用している開発者は、17,000件に及ぶ潜在的なシークレット漏洩を防止し、公開されたシークレットの無効化、入れ替え、修正にかかる時間として95,000時間以上を削減しています。

本日、GitHub Advanced Security (GHAS)ライセンスを購入しているユーザーのプライベートリポジトリを対象に、プッシュ保護の一般提供(GA)を開始しました。さらに、オープンソースに携わる開発者やメンテナーが事前にコードを保護できるよう、すべてのパブリックリポジトリに対してプッシュ保護を無料で提供します。

プッシュ保護は、高度に識別可能なシークレットをコミット前にスキャンすることで、開発者の利便性を損なうことなくシークレットの漏洩を防止します。GitHubでは、サービスプロバイダーと緊密に連携し、トークンの誤検出率を低く抑えることで、アラートに対する開発者の信頼を確保しています。コード内でシークレットが検出されると、開発者のIDEまたはコマンドラインインターフェイスに直接、シークレットが公開されないようにするための修正ガイダンスが表示されます。Fidelity InvestmentsのALMツールおよびプラットフォーム担当プロダクトエリアリーダーであるGer McMahon氏は、次のように説明しています。「プッシュ保護付きのSecret Scanningを開発ワークフローに直接組み込むことで摩擦が減少し、開発者は安全かつ質の高いコードを作成できるようになりました」

プッシュ保護はどのように不協和のない開発を実現するのか

開発者が必要としているのは、信頼できるツールです。GitHubではこのことを念頭に置いてプッシュ保護を設計しました。シークレットを含んだコミットをプッシュした場合、プッシュ保護のメッセージと合わせて、シークレットの種類、場所、公開時の修正方法に関する情報が表示されます。コミット履歴からシークレットを削除すると、コミットを再プッシュすることができます。プッシュ保護は誤検出率の低いシークレットのみをブロックするため、コミットがブロックされた時点で調査する必要があるとわかります。

場合によっては、機能停止を迅速に解決してからシークレットに対処するなど、シークレットを含むコードをプッシュしなければならない緊急事態が生じることがあります。このような場合、「テストに使用した」「誤検出である」「後で修正する許容可能なリスクである」といった理由を提示することで、プッシュ保護をバイパスできます。リポジトリ管理者、組織の管理者、およびセキュリティ管理者はすべてのバイパスについてメールでアラートを受け取り、企業や組織の監査ログ、アラート表示画面、REST API、webhookイベントなどを通じて、任意のバイパスを監査することができます。

KPMGのディレクター兼クラウドプラクティスリードであるLeo Stolyarov氏によると、このアプローチにより、スピードを犠牲にすることなく、セキュリティ態勢を向上させることができると言います。「シークレットスキャンのプッシュ保護は開発フローにおける不協和を生じさせない機能です。開発者体験を損なうことなく、より高いセキュリティ意識とシークレット漏洩からの保護を実現しています」

プッシュ保護の詳細と使用を開始する方法

リポジトリ、組織、企業でプッシュ保護を有効にするには、[Code security and analysis(コードのセキュリティと分析)]設定に移動し、[Secret scanning]のセクションまでスクロールします。[Enable all(すべて有効にする)]ボタンを選択すると、[Secret scanning]とそのサブセットのプッシュ保護を有効にすることができます。

Screenshot of the push protection settings page

プッシュ保護を自動的に有効にする、もしくは、[プッシュ保護]セクションにあるチェックボックスにチェックを付けることで、プッシュ保護メッセージに表示するカスタムリソースリンクを指定することも可能です。これにより、企業や組織で新規作成されたリポジトリにプッシュ保護が適用されるようになります。

また、GitHub Advanced Securityを利用している場合は、カスタムシークレットパターンのプッシュ保護を有効にすることで、デプロイメントをさらにカスタマイズすることもできます。

プッシュ保護GitHub Advanced Security、secret scanningパートナープログラムの詳細については、GitHubのドキュメントをご覧ください。