2026年のDevOpsパイプラインセキュリティ:SAST、DAST、サプライチェーンと面接対策

DevOpsパイプラインセキュリティの2026年最新ベストプラクティス。SAST、DAST、SCAの統合方法、SBOM生成とSLSAプロベナンス、そしてDevSecOps面接質問への対策を解説します。

2026年のDevOpsパイプラインセキュリティ:SAST、DAST、サプライチェーンと面接対策

DevOpsパイプラインのセキュリティは、プリコミットフックから本番環境の監視まで、CI/CDワークフローのすべての段階にセキュリティチェックを組み込むことを求めています。Datadog State of DevSecOps Report 2026によると、87%の組織が少なくとも1つの既知の悪用可能な脆弱性を持つサービスを運用しており、ソフトウェアサプライチェーン攻撃による世界経済への被害は年間800億ドルを超えています。

セキュリティツールの優先順位

シークレット検出から始めることを推奨します(影響度が最も高く、誤検出率が最も低い)。次にSCAで既知のCVEを検出し、チューニング済みのSAST、IaCスキャン、最後にDASTを追加します。各ツールは次のツールを追加する前に価値を実証する必要があります。

SAST:マージ前に脆弱性を検出する静的解析

静的アプリケーションセキュリティテスト(SAST)は、コードを実行せずにソースコードを解析します。ツールはコードベースを解析し、抽象構文木を構築し、既知の脆弱性シグネチャとパターンマッチングを行います。すべてのプルリクエストでSASTを実行することで、SQLインジェクション、XSS、ハードコードされた認証情報をメインブランチに到達する前に検出できます。

Semgrepは2026年においてデファクトスタンダードのオープンソースSASTツールとなっています。正規表現ベースのスキャナーとは異なり、Semgrepはコード構造を理解し、YAMLでカスタムルールをサポートします。

yaml
# .github/workflows/sast.yml
name: SAST Scan

on:
  pull_request:
    branches: [main, develop]

jobs:
  semgrep:
    runs-on: ubuntu-latest
    container:
      image: semgrep/semgrep:latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run Semgrep
        run: semgrep scan --config=auto --sarif --output=semgrep.sarif
        
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: semgrep.sarif

--config=autoフラグは、検出された言語に一致するコミュニティルールを読み込みます。SARIF出力はGitHub Securityタブと統合され、検出結果を時系列で追跡できます。

DAST:静的解析では見つけられない脆弱性を検出するランタイムテスト

動的アプリケーションセキュリティテスト(DAST)は、実行中のアプリケーションを攻撃して、ランタイムでのみ発現する脆弱性を検出します。認証の不備、認可の欠陥、ビジネスロジックのバグは、実際のHTTPリクエストを行わなければ検出できません。SASTでは管理者エンドポイントに適切なアクセス制御がないことを検出できませんが、DASTは認証情報なしでアクセスを試み、脆弱性を報告します。

OWASP ZAPは、最も広く利用されているオープンソースDASTツールです。2026年初頭にリリースされたZAP 3.0では、GraphQLとgRPCスキャンのネイティブサポートが追加されました。

yaml
# .github/workflows/dast.yml
name: DAST Scan

on:
  deployment:
    types: [created]

jobs:
  zap-scan:
    runs-on: ubuntu-latest
    steps:
      - name: ZAP Full Scan
        uses: zaproxy/action-full-scan@v0.12.0
        with:
          target: ${{ secrets.STAGING_URL }}
          rules_file_name: '.zap/rules.tsv'
          cmd_options: '-a -j -l WARN -z "-config api.disablekey=true"'
          
      - name: Upload Report
        uses: actions/upload-artifact@v4
        with:
          name: zap-report
          path: report_html.html

DASTはライブターゲットが必要なため、デプロイ後に実行されます。ステージング環境がテスト対象となり、本番環境はスキャントラフィックから隔離されます。

本番環境でのDAST

本番環境に対してアクティブなDASTスキャンを実行すると、レート制限のトリガー、データの破損、セキュリティ監視のアラート発生のリスクがあります。本番環境の構成をミラーリングしたステージング環境を使用してください。

SCA:既知の脆弱性を検出する依存関係スキャン

ソフトウェア構成分析(SCA)は、National Vulnerability DatabaseやGitHub Advisory Databaseなどの脆弱性データベースに対して依存関係をスキャンします。単一の脆弱な推移的依存関係がアプリケーション全体を危険にさらす可能性があります。2026年のDatadogレポートによると、42%のサービスがもはや積極的にメンテナンスされていないライブラリに依存しています。

Trivyは、コンテナ、ファイルシステム、gitリポジトリの脆弱性を単一のバイナリでスキャンします。CycloneDXおよびSPDX形式でSBOM出力を生成できます。

yaml
# .github/workflows/sca.yml
name: Dependency Scan

on:
  push:
    branches: [main]
  schedule:
    - cron: '0 6 * * *'  # Daily at 6 AM

jobs:
  trivy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/trivy-action@0.28.0
        with:
          scan-type: 'fs'
          scan-ref: '.'
          format: 'sarif'
          output: 'trivy-results.sarif'
          severity: 'CRITICAL,HIGH'
          
      - name: Upload Trivy scan results
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: 'trivy-results.sarif'

スケジュールされた日次スキャンは、コードの変更がなくても新しく公開されたCVEを検出します。CRITICALとHIGH重大度にフィルタリングすることで、低リスクの検出結果によるアラート疲れを防止します。

DevOpsの面接対策はできていますか?

インタラクティブなシミュレーター、flashcards、技術テストで練習しましょう。

サプライチェーンセキュリティ:SBOMとSLSAプロベナンス

EUサイバーレジリエンス法は、2026年9月から報告義務が発効し、EU内で販売される製品にソフトウェア部品表(SBOM)の生成を義務付けています。SBOMは、直接的な依存関係、推移的な依存関係、およびそれらのバージョンを含む、ソフトウェア内のすべてのコンポーネントをリストアップします。

SLSA(Supply-chain Levels for Software Artifacts)は、ソフトウェアがどのようにビルドされたかを検証することでSBOMを補完します。SBOMは「このソフトウェアにはどのコンポーネントが含まれているか?」に回答し、SLSAは「ビルドプロセスは信頼できるか?」に回答します。

yaml
# .github/workflows/supply-chain.yml
name: Supply Chain Security

on:
  push:
    tags:
      - 'v*'

jobs:
  build-with-provenance:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write
      attestations: write
    steps:
      - uses: actions/checkout@v4
      
      - name: Build container image
        run: docker build -t myapp:${{ github.ref_name }} .
        
      - name: Generate SBOM
        uses: anchore/sbom-action@v0.17.0
        with:
          image: myapp:${{ github.ref_name }}
          format: cyclonedx-json
          output-file: sbom.json
          
      - name: Sign with Cosign
        uses: sigstore/cosign-installer@v3.7.0
        
      - name: Sign image and attach SBOM
        run: |
          cosign sign --yes myapp:${{ github.ref_name }}
          cosign attach sbom --sbom sbom.json myapp:${{ github.ref_name }}
          cosign sign --yes --attachment sbom myapp:${{ github.ref_name }}

SigstoreのCosignは、Fulcio認証局に裏付けられたキーレス署名を使用してアーティファクトに署名します。署名はアーティファクトをそれを生成したCIワークフローにバインドし、イメージが信頼されたパイプラインから来たことを検証できます。

シークレット検出:最初の防衛ライン

ハードコードされたシークレットは、コードベースで最も一般的なセキュリティ検出結果です。バージョン管理にコミットされたAWSアクセスキー、データベースパスワード、APIトークンは、あらゆる規模で侵害を引き起こしてきました。シークレット検出はプリコミットで実行され、認証情報がリポジトリに入る前にブロックします。

Gitleaksは、正規表現パターンとエントロピー分析を使用してシークレットを検出します。プリコミットフックにより、シークレットがコミットされることを防止します。

yaml
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.21.2
    hooks:
      - id: gitleaks
        args: ['--verbose']
yaml
# .github/workflows/secrets.yml
name: Secrets Detection

on:
  pull_request:

jobs:
  gitleaks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          
      - name: Gitleaks scan
        uses: gitleaks/gitleaks-action@v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

fetch-depth: 0オプションは完全な履歴をクローンし、Gitleaksが最新のコミットだけでなく、PRのすべてのコミットをスキャンできるようにします。

DevSecOps面接質問:採用担当者が問う内容

DevSecOps面接では、セキュリティの知識と実践的なCI/CD経験の両方が評価されます。以下の質問は、シニアDevOpsおよびプラットフォームエンジニアリング職の2026年の面接で頻繁に出題されています。より多くのパイプラインセキュリティに関する質問は、CI/CDパイプラインセキュリティ面接モジュールで確認できます。

「既存のパイプラインにシフトレフトセキュリティをどのように実装しますか?」

シフトレフトセキュリティは、テストを開発サイクルの早い段階に移動させることです。実践的な実装には、シークレット検出のプリコミットフック、プルリクエストでのSASTスキャン、ビルドフェーズでのSCAチェックの追加が含まれます。重要なのは段階的な導入です:シークレット検出から始めます(誤検出率が最も低く、シグナルが最も高いため)。次に既知のCVE用のSCAを追加し、SASTルールをチューニングしてノイズを減らしてからブロッキングチェックとして有効にします。

「SASTとDASTの違いを説明してください。それぞれどのような場合に使用しますか?」

SASTは、実行なしでソースコードを解析します。コード構造に対するパターンマッチングにより、SQLインジェクション、XSS、安全でない暗号化を検出します。SASTはコードのみを必要とするため、すべてのPRで早期に実行されます。

DASTは実行中のアプリケーションを攻撃します。認証バイパス、アクセス制御の不備、ランタイムでのみ発現するインジェクション脆弱性を検出します。DASTはステージング環境に対してデプロイ後に実行されます。

両者は互いを補完します。SASTはマージ前にコーディングエラーを検出し、DASTはデプロイされたアプリケーションが安全に動作することを検証します。成熟したパイプラインでは両方を実行します。

「SBOMとは何ですか?なぜ必要とされていますか?」

ソフトウェア部品表は、正確なバージョンを含む直接的および推移的な依存関係を含め、ソフトウェア内のすべてのコンポーネントをリストアップします。EUサイバーレジリエンス法などの規制要件により、2026年9月からEU市場に参入する製品にSBOM生成が義務付けられています。

実務的には、SBOMは迅速なインシデント対応を可能にします。新しいCVEが公開された場合、セキュリティチームはすべてのリポジトリを手動でスキャンする代わりに、SBOMデータベースにクエリを実行して脆弱なコンポーネントを実行しているすべてのサービスを特定できます。

「セキュリティツールでアラート疲れを防ぐにはどうしますか?」

アラート疲れは、シグナル対ノイズ比が低すぎるために開発者がセキュリティの検出結果を無視するときに発生します。防止には、ブロッキングゲートを有効にする前に各ツールをチューニングする必要があります。SASTについては、コードベースで誤検出を生成するルールを無効にし、クリーンアップ後に段階的に有効にします。SCAについては、既知のエクスプロイトを持つCRITICALおよびHIGH重大度の検出結果に焦点を当てます。DASTについては、将来のスキャンから誤検出を除外するようにベースラインスキャンを構成します。

追跡すべき指標は、実際の脆弱性の修正までの時間です。その数値が増加している場合、開発者はアラートを無視しています。

面接対策

これらの質問は実践的な経験をテストします。特定のツール、構成の決定、実装前後の指標を含む実際のパイプラインからの例を準備してください。

コンテナとランタイムセキュリティ

コンテナイメージスキャンは、デプロイ前に脆弱性を検出します。ランタイムセキュリティは、本番環境のコンテナを異常な動作について監視します。この組み合わせは、既知の脆弱性(ベースイメージのCVE)と未知の脅威(侵害されたコンテナ、クリプトマイナー)の両方に対処します。

Trivyはビルドパイプラインの一部としてイメージをスキャンします。FalcoはeBPFを使用してランタイムの動作を監視します。

yaml
# .github/workflows/container-security.yml
name: Container Security

on:
  push:
    branches: [main]

jobs:
  scan-image:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Build image
        run: docker build -t myapp:${{ github.sha }} .
        
      - name: Scan image
        uses: aquasecurity/trivy-action@0.28.0
        with:
          image-ref: myapp:${{ github.sha }}
          format: 'table'
          exit-code: '1'
          severity: 'CRITICAL'
          ignore-unfixed: true

ignore-unfixed: trueフラグは、利用可能なパッチがない脆弱性をスキップします。これにより、現在修正できないCVEのためにデプロイがブロックされることを防止します。

ランタイムセキュリティについては、Falcoルールが実行中のコンテナ内の疑わしいアクティビティを検出します。コンテナサプライチェーンセキュリティモジュールでは、イメージ署名とアドミッションコントロールについて詳しく解説しています。

IaCセキュリティ:TerraformとKubernetesマニフェストのスキャン

Infrastructure as Codeは、構成レイヤーでセキュリティリスクをもたらします。過度に許容的なIAMポリシー、パブリックアクセス可能なS3バケット、暗号化されていないデータベースは、IaCテンプレートの安全でないデフォルトから生じます。

Checkovは、Terraform、CloudFormation、Kubernetes、Helm、Dockerfileの誤設定をスキャンします。

yaml
# .github/workflows/iac-scan.yml
name: IaC Security Scan

on:
  pull_request:
    paths:
      - 'terraform/**'
      - 'k8s/**'
      - 'helm/**'

jobs:
  checkov:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run Checkov
        uses: bridgecrewio/checkov-action@v12
        with:
          directory: .
          framework: terraform,kubernetes,helm
          output_format: sarif
          output_file_path: checkov.sarif
          soft_fail: false
          
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: checkov.sarif

パスフィルターにより、インフラストラクチャファイルが変更されたときのみIaCスキャンが実行され、アプリケーションのみの変更に対するCI時間を短縮します。

今すぐ練習を始めましょう!

面接シミュレーターと技術テストで知識をテストしましょう。

2026年の完全なDevSecOpsパイプライン

2026年の本番対応DevSecOpsパイプラインは、各段階でこれらのツールを統合します:

  • プリコミット: Gitleaks(シークレット)、オプションのローカルSAST
  • プルリクエスト: Semgrep(SAST)、Trivy(SCA)、Checkov(IaC)
  • ビルド: コンテナイメージスキャン、SBOM生成
  • デプロイ前: Cosignによるイメージ署名、Kyvernoによるアドミッションコントロール
  • デプロイ後: ステージングに対するZAPによるDAST
  • ランタイム: コンテナ監視用のFalco、クラウドセキュリティポスチャ管理

無償のスタック(Semgrep、Trivy、ZAP、Gitleaks、Checkov、Falco)はすべてのカテゴリをカバーします。商用ツールは中央ダッシュボード、ポリシー管理、チューニング作業の削減を追加しますが、セキュリティカバレッジはライセンスコストなしで達成可能です。

DevSecOps職への準備として、個人プロジェクトでこれらのパイプラインを構築する練習をすることを推奨します。クラウドIDとシークレット管理モジュールでは、シークレット管理の側面について解説しています。

今日のチャレンジ

DevOps のバグを見つけられますか

実際のコード、隠れたバグ、1日1回。アカウントなしで試せます。

Anthony Fillion-Maillet

執筆

Anthony Fillion-Maillet

SharpSkill 創業者

10 年以上フルスタック開発に携わっています。SharpSkill を運営し、ここで公開される内容に責任を負っています。

2026年9月15日 更新

共有

関連記事