DevSecOps

開発・セキュリティ・運用を統合し、セキュリティをパイプラインに組み込むアプローチ

セキュリティDevOps
DevSecOps」の技術書を見る (15 冊) →

DevSecOps とは

DevSecOps は、開発 (Dev)・セキュリティ (Sec)・運用 (Ops) を統合し、セキュリティをソフトウェア開発ライフサイクルの全段階に組み込むアプローチである。「セキュリティはリリース前のゲートではなく、全員の責任」という考え方。

従来 vs DevSecOps

従来と DevSecOps の違いを以下にまとめる。

観点従来DevSecOps
セキュリティの時期リリース前にレビュー開発の全段階
担当セキュリティチーム全員
発見のタイミング遅い (手戻りが大きい)早い (修正コストが低い)
自動化手動レビューCI/CD に組み込み

パイプラインへの組み込み

パイプラインへの組み込みを図で示す。

コード → ビルド → テスト → デプロイ → 運用
  ↓        ↓       ↓        ↓        ↓
SAST    SCA     DAST    IaC検査   監視
(静的解析) (依存脆弱性) (動的解析) (設定検査) (異常検知)
ツール段階検出対象
SAST (Semgrep, CodeQL)コードSQLi, XSS, ハードコード秘密鍵
SCA (Dependabot, Snyk)ビルド依存パッケージの脆弱性
DAST (OWASP ZAP)テスト実行中のアプリの脆弱性
IaC スキャン (cfn-lint, Checkov)デプロイ設定ミス、過剰な権限

GitHub Actions での例

GitHub Actions での例を以下に示す。

security:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    # 依存パッケージの脆弱性チェック
    - run: npm audit --audit-level=high
    # シークレットの検出
    - uses: trufflesecurity/trufflehog@main
    # IaC のセキュリティチェック
    - run: cfn-lint template.yaml

AWS でのセキュリティ自動化

AWS でのセキュリティ自動化を以下にまとめる。

サービス用途
IAM Access Analyzer過剰な権限の検出
GuardDuty脅威の検出
Security Hubセキュリティ状態の一元管理
InspectorEC2/Lambda の脆弱性スキャン
Configリソース設定の監査

最小権限の原則

最小権限の原則の例を示す。

# ❌ 過剰な権限
Policies:
  - Statement:
      - Effect: Allow
        Action: "*"
        Resource: "*"

# ✅ 最小権限
Policies:
  - Statement:
      - Effect: Allow
        Action: [dynamodb:GetItem, dynamodb:PutItem]
        Resource: !GetAtt Table.Arn

より深く学ぶには関連書籍が役立つ。

この記事は役に立ちましたか?

関連用語

関連する記事