認証情報の誤用に起因する情報漏えいや侵害リスクは、今もなお私たちを悩ませ続けています。認証情報の保護は現代のソフトウェア開発の規模と相互関連性によって困難なものとなっています。GitHubはこれまでに、GitHub Advanced Securityの提供機能であるSceret Scanningによって数1,000近くのプライベートリポジトリにわたり70万件を超えるシークレットを検出してきました。また、すべてのパブリックリポジトリにおいて、パートナーのパターンを無料でスキャンしています。そしてこの度、GitHubはGitHub Advanced Securityのユーザー向けに、「git push」の受け入れ前にSecret Scanningを実行することで、漏えいの発生を完全に防ぐオプションを追加しました。
高度に識別可能なシークレットをCommit前にスキャンすることで、事後対応型のセキュリティから事前対応型のセキュリティに移行できるだけでなく、シークレットの漏洩を完全に防ぐことができます。
Secret Scanningに新しく追加されたPush保護機能では、開発ワークフローにスキャンそのものが組み込まれます。開発の生産性に支障をきたすことなくこれを実現するために、Push保護の対象は正確に検出可能なトークンタイプに限定されます。GitHubは、高度に識別可能なパターンを推進するために、昨年、自社のシークレットのフォーマットを変更し、他のトークン発行者との連携も開始しました。今回は、提供開始と同時に69にのぼる信頼度が高いパターンをサポートすることで、それぞれで開発者が信頼できるSN比(Signal-to-Noise Ratio)を確保しています。
Secret ScanningのPush保護の使用例を見る
GitHubのPush保護機能は、開発者がソースコードをプッシュすると高信頼度シークレットの有無を確認し、シークレットを特定するとPushをブロックします。高信頼度シークレットの誤検知率が低いため、セキュリティチームは開発者のエクスペリエンスを損なうことなくorganizationを保護できます。
GitHubは100を超えるトークンタイプを確認し、シークレットの有無を検出します。シークレットが特定された場合、開発者は再度Pushを実行する前にそのシークレットを確認し、コードから排除できます。稀に、直ちに修正を行う必要がない状況もあります。その場合、開発者はシークレットを偽陽性、テストケース、または後で修正する実際のインスタンスとして解決し、先に進むことができます。
GitHubは、Secret ScanningのPush保護が迂回されると、テストケースまたは偽陽性に指定されたシークレットに関しては非公開のセキュリティアラートを生成します。また後で修正するとしてフラグ付けされたシークレットについては、開発者とリポジトリ管理者が連携できるよう、公開のセキュリティアラートを生成します。またチームは、組織および企業レベルのセキュリティ概要を活用し、Secret Scanning関連のすべてのアラートを含め、全体的なセキュリティ状況を追跡できます。
Secret ScanningのPush保護を有効にする
GitHub Advanced Securityを利用しているユーザーは、UIまたはAPI経由で1回クリックするだけで、Secret ScanningのPush保護機能をリポジトリレベルおよびOrganizationレベルで有効にできます。
シークレットスキャン機能の詳細については、以下のページをご覧ください。
- Secret Scanningの詳細はこちら
- Secret ScanningのPush保護の詳細はこちら
GitHub Advanced Securityの詳細について
GitHub Advanced Securityは、Secret Scanning、Code Scanning、サプライチェーンのセキュリティ機能を提供しています。その機能には、永久に無料で利用できるDependabotアラートおよびDependabotセキュリティアップデートも含まれています。
自社でGitHub Advanced Securityを試したい、またはデモを見たいという場合は、担当のギットハブ・ジャパン営業およびサポート窓口にぜひお問い合わせください。
GitHubのシークレットスキャンのパートナーになる
サービスプロバイダーは、GitHubのパートナーになることで、ユーザーをシークレットの漏えいから守ることができます。また高度に識別可能なトークンの発行者様は、ぜひGitHubの新しいプッシュ保護機能で連携しましょう。