GitLab Pipeline secret detection 使っていますか?
コミット→プッシュされてからスキャンして漏洩されていると思われるシークレット情報を特定する心強い機能でFree~Ultimateまですべてのユーザーが使える機能ですね。
今回のトピックは、さらに1工程前にシークレットスキャンができ、さらに手戻りを削減できる機能 Secret Push Protection です。
(GitLab社のセキュリティブログから引用・要約)
Secret Push Protectionは、キーとAPIトークンなどの秘密情報がGitLabにプッシュされるのをブロックします。各コミットの内容は、GitLabにプッシュされたときに高信頼性の秘密情報をチェックします。何か秘密情報が検出された場合、プッシュはブロックされます。これにより、チームは最初から秘密情報の漏洩を防ぎ、秘密情報のローテーションに費やす時間を大幅に削減できます。
秘密情報は、アプリケーションが認証し、機密データへのアクセスを提供するために頻繁に使用されます。開発者は時折、これらの秘密情報をハードコードし、そのコードをGitLabのようなソース管理システムにプッシュします。これらは悪意のあるアクターにとって低労力で高価値のターゲットとなります。秘密情報は特別なスキルを必要とせず、多くの秘密情報は自動的に有効期限が切れません。
Secret Push Protectionの仕組み
Secret Push Protectionがプロジェクトで有効になると、開発者は高信頼性の秘密情報を含むコードをプロジェクトにプッシュすることができなくなります。これにより、コードをプッシュする際のパフォーマンスが確保され、偽のアラートの数も減少します。注:Secret Push Protectionが対応する高信頼性パターンのリストはこちらです。
各コミットの内容をチェックする際、このワークフローのパフォーマンスを最適化するためにいくつかの要素を除外しています。そのため、Pipeline Secret Detectionと一緒にレイヤードアプローチでSecret Push Protectionを使用することをお勧めします。両方の機能を同時に使用することで、ソフトウェア開発ライフサイクル全体で漏洩した秘密情報をより多く特定するカバレッジが最大化されます。
・Secret Push Protection の設定方法・活用方法(例外的なケースで本機能をSkipする方法など)はこちら
(2024/724現在、本機能は Ver17.2 Self-managed Ultimate デフォルト提供、Ver17.1 SaaS Ultimate Beta提供されています。)
以下からGitLab セキュリティブログ「Prevent secret leaks in source code with GitLab Secret Push Protection」本文および動画を確認いただけます。
弊社パートナー様はNetworld Dev Portal アカウント(無料)登録いただくと、GitLabパートナー制度や DevSecOps関連提案資料などのパートナー限定コンテンツがご覧いただけます。
DevSecOps全般、GitLab製品または本サイトについては以下よりお問い合わせ下さい。