GitLabアプリケーションセキュリティを始めましょう
概要については、GitLabアプリケーションセキュリティの採用をご覧ください。
以下のステップは、GitLabアプリケーションセキュリティツールを最大限に活用するのに役立ちます。これらのステップは、推奨されるオペレーション順序です。異なる順序で機能を実装したり、特定のニーズに当てはまらない機能を省略したりすることもできます。
-
シークレットの検出と 依存関係のスキャンを有効にして、コードベース内の漏えいしたシークレットや脆弱性のあるパッケージを特定します。
- すべてのセキュリティスキャナについて、
.gitlab-ci.yml
をブランチ上で直接更新することで有効にしてくださいdefault
。default
これにより、ブランチのdefault
ベースラインスキャンが作成さdefault
れ、機能ブランチのスキャンを比較するために必要となります。これにより、マージリクエストは新しく導入された脆弱性だけを表示できるようになります。そうでない場合、マージリクエストはブランチ内のすべての脆弱性を、ブランチ内の変更によってもたらされたかどうかにかかわらず表示します。 - シンプルさを求めるのであれば、まずシークレットディテクションのみを有効にしてください。アナライザが1つしかなく、ビルド要件もなく、発見内容も比較的シンプルです。
- 依存性スキャンを早めに有効にしておくと、コードベースに存在する脆弱性パッケージを特定し始めることができます。
- すべてのセキュリティスキャナについて、
- チームに脆弱性レポーターに慣れさせ、脆弱性トリアージのワークフローを確立させましょう。
- 脆弱性から生じたイシューを管理するために、ラベルと イシューボードの作成を検討してください。イシューボードを使用することで、すべての利害関係者がすべての問題を共通のビューで確認し、修復の進捗を追跡することができます。
-
スキャン実行ポリシーを使用して、定期的なセキュリティスキャンジョブを実施します。
- これらのスケジュールされたジョブは、コンプライアンスフレームワークのパイプラインまたはプロジェクトの
.gitlab-ci.yml
ファイルで定義した他のセキュリティスキャンとは独立して実行されます。 - 依存関係スキャンとコンテナスキャンを定期的に実行することで、リポジトリにすでに存在する脆弱性が新たに発見された場合に、その脆弱性を洗い出すことができます。
- 定期的なスキャンは、パイプラインスキャンの頻度が低い、開発者のアクティビティが低いプロジェクトや重要なブランチに最も有効です。
- これらのスケジュールされたジョブは、コンプライアンスフレームワークのパイプラインまたはプロジェクトの
-
スキャン結果ポリシーを作成して、新しい脆弱性が
default
ブランチにマージされないように制限します。 - セキュリティダッシュボードのトレンドを監視して、既存の脆弱性の是正と新たな脆弱性の侵入防止に成功したかどうかを評価します。
- SAST、DAST、ファズテスト、コンテナスキャンなど、その他のスキャンタイプを有効にします。
- コンプライアンス・パイプラインまたはスキャン実行ポリシーを使用して、必要なスキャン・タイプを実施し、セキュリティとエンジニアリングの職務分離を確実にします。
- レビューアプリを有効にして、エフェメラルなテスト環境で DAST とWeb API のファジングを行えるようにすることを検討します。
- 運用コンテナスキャンを有効にして、本番クラスタのコンテナイメージをスキャンし、セキュリティ脆弱性を調べます。