GitLab CIパイプラインでのセキュリティスキャン

GitLab CIパイプラインにセキュリティスキャンを追加。SAST、依存関係スキャン、コンテナスキャン、シークレット検出をGitLabテンプレートとオープンソースツールで実施。

Security

詳細な説明

GitLab CIでのセキュリティスキャン

CIでのセキュリティスキャンは、脆弱性が本番環境に到達する前に検出します。GitLabは組み込みテンプレートを提供していますが、オープンソースツールを直接使用することもできます。

オープンソースの代替(任意のティア)

trivy_scan:
  stage: security
  image: aquasec/trivy:latest
  script:
    - trivy fs --severity HIGH,CRITICAL --exit-code 1 .
  allow_failure: true

gitleaks:
  stage: security
  image: zricethezav/gitleaks:latest
  script:
    - gitleaks detect --source .
  allow_failure: true

ベストプラクティス

  1. allow_failure: trueから開始: 初期発見のトリアージ中にデプロイメントをブロックしません。
  2. マージリクエストでスキャン: マージ前に開発者が結果を確認できます。
  3. HIGH/CRITICALで失敗: 重大な脆弱性のみをブロックします。
  4. レポートをアーティファクトとして保存: 監査とトレンド分析のために保持します。

ユースケース

すべての本番パイプラインに何らかのセキュリティスキャンを含めるべきです。シークレット検出と依存関係スキャン(最も高いROI)から始め、セキュリティ体制が成熟するにつれてSASTとコンテナスキャンを追加します。

試してみる — GitLab CI Config Generator

フルツールを開く