プロアクティブなパイプラインセキュリティ:ScribeによるOWASPトップ10 CI/CDリスクの適用

全ての記事

この記事は、 マイキー・ストラウス   ヴィクトル・カルタショフ.

OWASPトップ10リスクを自動化された監査可能なコントロールに変換

現代のDevOps環境において、CI/CDパイプラインはソフトウェアデリバリーの基盤となっています。しかし、スピードが速ければ速いほど、リスクも高まります。組織がリリースを加速させるにつれ、攻撃者は安全でないパイプラインを標的にし、悪意のあるコードの挿入、機密情報の窃取、サプライチェーンの整合性の侵害といった攻撃を仕掛けるケースが増えています。

これに対処するため、OWASP Top 10 CI/CDセキュリティリスクフレームワークは、開発パイプライン全体における最も一般的かつ重大な弱点を強調しています。 スクライブセキュリティ、私たちはこのフレームワークを採用し、署名付き証拠、イニシアチブベースの適用、ポリシー・アズ・コードを通じて組織が CI/CD セキュリティをワークフローに直接組み込めるように支援しています。

OWASP CI/CD リスクが重要な理由

従来のセキュリティツールでは、現代のパイプラインの速度に対応しきれません。自動化された適用と可視性がなければ、次のような問題が見逃されてしまいます。

❌ パイプライン設定にハードコードされたシークレット

❌ 出所不明の改ざんされたビルド成果物

❌ パブリックレジストリから取得された安全でないベースイメージ

❌ 2FAやレビュー制御のない管理者レベルのアクセス

OWASPフレームワークはこれらのリスクを形式化し、修復のための共通言語と構造を提供します。Scribeでは、ビルドプロセスに大きな変更を加えることなく、CI/CDパイプラインのセキュリティ体制を自動的に検証する取り組みを定義するために、OWASPフレームワークを活用しています。

セキュリティは署名された証拠から始まる

パイプラインが安全であることを検証するために、次のような証拠を収集し、暗号で署名します。

  • Git SBOMとイメージSBOM
    を使用して生成 scribe-security/action-bomこれにより、コードとコンテナの内容を完全に把握できるようになります。
  • SLSAの由来
    アーティファクトがどのように、どこで、誰によって構築されたかを記録します。
  • GitHub 組織とリポジトリのスキャン
    実行方法 アクションプラットフォーム 秘密、構成のドリフト、および構成ミスのあるアクセスをチェックします。

この証拠はすべて署名されており、整合性と追跡可能性が確保され、ライフサイクル追跡のために特定の製品とバージョンにマッピングされます。

📌 この証拠に基づくモデルについては、以前の記事で紹介しました。 SLSA準拠   SP 800–190の施行.

🔒 ポリシー・アズ・コードによる OWASP コントロールの適用

Scribeでは、OWASPトップ10のCI/CDリスクを ポリシー・アズ・コード・イニシアチブ CIパイプラインで直接実行される。各リスクは、ローカルで定義された設定可能なルールとして表現される。 owasp-top10-cicd.yaml ファイル。これらのルールは検証フェーズで自動的に評価され、実用的なフィードバックと修復ガイダンスが提供されます。

含まれる主なコントロールは次のとおりです。

  • CICD-SEC-1 : ブランチ保護ルールの適用
    次のような重要なブランチへの直接プッシュを制限することで、不正なコード変更を防止します。 メイン.
  • CICD-SEC-2 :  アイデンティティとアクセス管理制御
    多要素認証 (MFA) を要求し、Git プロバイダーの管理者権限を制限します。
  • CICD-SEC-3 : 依存関係の検証
    すべてのベースイメージとサードパーティの依存関係が、承認済みおよび信頼できるレジストリから取得されていることを確認します。
  • CICD-SEC-4 :  ポイズニングされたパイプラインの実行防止
    悪意のあるロジックがワークフローに導入されるのを防ぐために、CI/CD スクリプトを変更できるユーザーを制限します。
  • CICD-SEC-6 :  資格情報の衛生管理の実施
    ハードコードされたシークレット、期限切れのトークン、漏洩した資格情報をスキャンし、リリース前にフラグを立てます。

これらのコントロールはそれぞれ、組織のリスク許容度、環境、コンプライアンス要件に基づいてカスタマイズできます。コードとして定義されているため、セキュリティ体制は 監査可能, バージョン管理された, 自動化によって強制可能.

プロヒント: 特定のルールを追加または除外したり、重大度のしきい値を設定したり、修復アドバイスをカスタマイズしたりすることも、イニシアチブ構成ファイルで直接行うことができます。

これらのコントロールをパイプラインに組み込むことで、アドホックレビューから 自動化され検証可能なセキュリティの施行  ソフトウェア サプライ チェーンを保護するための重要なステップです。

GitHub Actions: 現実世界のCI/CD統合

以下は、Scribe のアクションを使用してビルド、証拠の収集、組織のスキャン、OWASP Top 10 CI/CD フレームワークに対するコンプライアンスの検証を行うワークフローの例です。

name: OWASP CI/CD セキュア ビルド on: push: branches: - main env: PRODUCT_NAME: my-app PRODUCT_VERSION: v1.0 jobs: build: runs-on: ubuntu-latest outputs: image-name: ${{ steps.meta.outputs.image }} steps: - uses: actions/checkout@v4 - uses: docker/setup-buildx-action@v3 - run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USER }} --password-stdin - id: meta uses: docker/build-push-action@v5 with: context: . push: true タグ: ${{ secrets.REGISTRY_URL }}/my-app:${{ github.sha }} - uses: scribe-security/action-bom@master with: target: 'git:.'プロダクトキー: ${{ env.PRODUCT_NAME }} 製品バージョン: ${{ env.PRODUCT_VERSION }} フォーマット: attest - uses: scribe-security/action-bom@master with: target: ${{ secrets.REGISTRY_URL }}/my-app:${{ github.sha }} ベースイメージ: Dockerfile プロダクトキー: ${{ env.PRODUCT_NAME }} 製品バージョン: ${{ env.PRODUCT_VERSION }} フォーマット: attest - uses: scribe-security/action-verify@master with: target: ${{ secrets.REGISTRY_URL }}/my-app:${{ github.sha }} プロダクトキー: ${{ env.PRODUCT_NAME }} 製品バージョン: ${{ env.PRODUCT_VERSION }} イニシアティブ: slsa.l2@v2 provenance: true フォーマット: attest beautify: true org-scan: runs-on: ubuntu-latest の手順: - 使用: scribe-security/action-platforms@master と: コマンド: discover プラットフォーム: github サイン: true 検証デフォルト: sigstore 引数: >- --token ${{ secrets.GITHUB_PAT }} --organization.mapping ${{ github.repository_owner }}::${{ env.PRODUCT_NAME }}::${{ env.PRODUCT_VERSION }} --repository.mapping $(basename ${{ github.repository }})::${{ env.PRODUCT_NAME }}::${{ env.PRODUCT_VERSION }} --scope.workflow.past_days 1 --scope.branch ${{ github.ref_name }} --hook trivy_iac_and_secrets_sarif 検証: 実行先: ubuntu-latest ニーズ: [build, org-scan] の手順: - 使用: scribe-security/action-verify@master に次の設定を記載: initiative: owasp-top10-cicd.yaml product-key: ${{ env.PRODUCT_NAME }} product-version: ${{ env.PRODUCT_VERSION }} format: attest all-evidence: true beautify: true

継続的なコンプライアンスの実践

このワークフローにより、パイプラインがどのOWASPリスクに合格または不合格となったかを示す検証可能なアテステーションが作成されます。各違反は特定の証拠(SBOM、ワークフローログ、組織構成)に追跡可能であるため、チームは迅速かつ確実に問題を解決できます。

これが現実世界でどのように見えるか確認してみませんか?以下は、社内パイプラインのスキャン結果の例です。

概要ビュー

違反ビュー

証拠ビュー

 

このコンテンツは、エンドツーエンドのソフトウェア サプライ チェーン セキュリティ ソリューションの大手プロバイダーである Scribe Security によって提供されており、ソフトウェア サプライ チェーン全体のコード成果物とコード開発および配信プロセスに最先端のセキュリティを提供しています。 詳しくはこちら。