オープンソースプロジェクトおよびビジネスユースを含む、ソフトウェアの開発プラットフォームを提供するGitHub, Inc.(本社:米国サンフランシスコ)は、4月4日(米国現地時間)に、GitHub Advnced Securityの新たなオプションを追加したことを発表しました。
高度に識別可能なシークレットをCommit前にスキャンすることで、事後対応型のセキュリティから事前対応型のセキュリティに移行できるだけでなく、シークレットの漏えいを完全に防ぐことができます。
Secret Scanningに新しく追加されたPush保護機能では、開発ワークフローにスキャンそのものが組み込まれます。開発の生産性に支障をきたすことなくこれを実現するために、Push保護の対象は正確に検出可能なトークンタイプに限定されます。GitHubは、高度に識別可能なパターンを推進するために、昨年、自社のシークレットのフォーマットを変更 (
https://github.blog/2021-04-05-behind-githubs-new-authentication-token-formats/ ) し、他のトークン発行者との連携も開始しました。今回は、提供開始と同時に69にのぼる信頼度が高いパターンをサポートすることで、それぞれで開発者が信頼できるSN比(Signal-to-Noise Ratio)を確保しています。
Secret ScanningのPush保護の使用例を見る
GitHubのPush保護機能は、開発者がソースコードをPushすると高信頼度シークレットの有無を確認し、シークレットを特定するとPushをブロックします。高信頼度シークレットの誤検知率が低いため、セキュリティチームは開発者のエクスペリエンスを損なうことなくGitHub内のorganization単位での保護が可能になります。
GitHubは100を超えるトークンタイプを確認し、シークレットの有無を検出します。シークレットが特定された場合、開発者は再度Pushを実行する前にそのシークレットを確認し、コードから排除できます。稀に、直ちに修正を行う必要がない状況もあります。その場合、開発者はシークレットを偽陽性、テストケース、または後で修正する実際のインスタンスとして解決し、先に進むことができます。
GitHubは、Secret ScanningのPush保護が迂回されると、テストケースまたは偽陽性に指定されたシークレットに関しては非公開のセキュリティアラートを生成します。また、後で修正する対象としてフラグ付けされたシークレットについては、開発者とリポジトリ管理者が連携できるよう、公開のセキュリティアラートを生成します。またチームは、組織および企業レベルのセキュリティ概要 (
https://github.blog/changelog/2022-03-01-security-overview-for-enterprise-in-beta/ ) を活用し、Secret Scanning関連のすべてのアラートを含め、全体的なセキュリティ状況を追跡できます。
Secret ScanningのPush保護を有効にする
GitHub Advanced Securityを利用しているユーザーは、UIまたはAPI経由で1回クリックするだけで、Secret ScanningのPush保護機能をリポジトリレベルおよびOrganizationレベルで有効にできます。
シークレットスキャン機能の詳細については、以下のページをご覧ください。