← ← ホームに戻る

DevSecOps / Repository

secure-pipeline-blueprints

SAST、DAST、SCA、secret scanning、セキュリティゲートを統合したセキュアな CI/CD パイプラインを構築するための、本番対応テンプレートとブループリント。現代のソフトウェア開発ワークフローで真の shift-left security を実現します。

GitHubで見る ↗

プロジェクトについて

Secure Pipeline Blueprints は、セキュリティ統合型 CI/CD (Continuous Integration/Continuous Deployment) パイプラインを構築するための、すぐに使えるテンプレートの包括的なライブラリを提供します。現代のソフトウェア開発では、CI/CD パイプラインがコードのビルド、テスト、デプロイを自動化します。このプロジェクトは、その自動化にセキュリティテストを各段階で組み込むことで拡張します。これは、開発ライフサイクルの早い段階 (左側) にセキュリティチェックを移動させることから 'shift-left security' と呼ばれます。 このブループリントライブラリは、最も人気の高い 3 つの CI/CD プラットフォーム — GitHub Actions、GitLab CI/CD、Jenkins — をカバーします。各ブループリントには、4 つの重要なセキュリティテストカテゴリが統合されています: SAST (Static Application Security Testing) はソースコードを実行せずに脆弱性を解析し、DAST (Dynamic Application Security Testing) は稼働中アプリケーションの脆弱性をテストし、SCA (Software Composition Analysis) はサードパーティライブラリや依存関係の脆弱性を特定し、Secret Scanning は誤ってコミットされた credentials、API keys、tokens を検出します。 各パイプラインテンプレートには、重要な脆弱性が見つかった場合にデプロイをブロックできる設定可能な security gates が含まれています。これらのゲートは、重要度 (critical/high でブロック、medium で警告、low は無視)、脆弱性の経過時間 (新規脆弱性か既存の技術的負債か)、コンポーネント (顧客向けサービスは厳格、内部ツールは緩やか) によって調整できます。 このプロジェクトはまた、複数のパイプラインにまたがるセキュリティスキャン結果の集約、時間経過に伴う脆弱性数の傾向、経営層向けのセキュリティレポート生成のためのダッシュボードテンプレートも提供します。

なぜ重要か

開発サイクルの最後、つまり本番デプロイ直前にだけセキュリティテストを行う従来のアプローチは、根本的に破綻しています。その時点では脆弱性の修正は高コストであり (開発中に発見するより 10〜100 倍高い)、スケジュール圧力により既知の脆弱性がそのままデプロイされることも少なくありません。shift-left security は、すべてのコードコミット、pull request、デプロイに自動セキュリティテストを統合することで、この問題に対処します。 しかし、shift-left security の実装は非常に複雑です。セキュリティチームは複数の専門ツールを統合し、それぞれを言語やフレームワークごとに設定し、開発者の生産性を損なわずに false positive に対処し、セキュリティとリリース速度のバランスを取るガバナンスポリシーを構築しなければなりません。多くの組織では、セキュアなパイプラインを構築・調整するのに何か月も費やしています。 これらのブループリントは、本番で検証済みかつよく文書化されたテンプレートを提供することで、その作業を数か月から数日に圧縮し、セキュリティチームが自組織の要件に合わせてカスタマイズできるようにします。これは、数十の組織にわたってセキュアパイプラインを実装してきた中で得られた教訓を体現しており、DevSecOps の現時点でのベストプラクティスを示しています。

ステップバイステップガイド

  1. CI/CD プラットフォームに合ったブループリント (GitHub Actions、GitLab CI、Jenkins) を選択します。各ブループリントディレクトリには、アーキテクチャ図、前提条件、統合手順を含む README があります。アーキテクチャを確認して、パイプライン内でセキュリティツールがどのようにオーケストレーションされるかを理解してください。
  2. 必要な環境変数と credentials を設定します。各セキュリティツールには個別の設定が必要です — 商用スキャナー用の API keys、オープンソースツール用のルールセット、アラート用の通知エンドポイントなどです。セットアップウィザード (setup.sh) が各設定手順を対話的に案内します。
  3. 組織のリスク許容度に応じて security gates をカスタマイズします。security-gates.yaml ファイルを編集し、どの脆弱性の重要度がデプロイをブロックするか、どれが警告を生成するか、どれが静かにログに記録されるかを定義します。まずは緩やかなポリシーから始め、チームの成熟に合わせて徐々に厳格化してください。
  4. まずテストリポジトリでパイプラインを実行します。セキュリティスキャン結果を確認し、検出内容が正確か (false positive ではないか) を検証し、必要に応じてツール設定を調整します。満足したら、本番リポジトリへ展開します。付属のダッシュボードテンプレートを使用して、すべてのプロジェクトにわたるセキュリティトレンドを監視してください。

使用技術

GitHub ActionsGitLab CIDockerYAML