メインコンテンツに移動

builders.flash

コミュニティ通信

DevSecOps ライフサイクルを AWS のセキュリティサービスと OSS で実現

2025-11-04 | Author : 吉江 瞬 (AWS Security Hero)

はじめに

AWS Security Hero の吉江です。

本日は、DevSecOps について改めて見直し、最新の AWS のセキュリティサービスと OSS でどのように実現するか、考えたいとおもいます。


X ポスト »
| Facebook シェア » | はてブ »

builders.flash メールメンバー登録

builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。

今すぐ登録 »

DevSecOps とは

DevSecOps とは Dev (開発) と Sec (セキュリティ) と Ops (運用) を統合し、セキュリティを最初から最後まで自動化・継続的に組み込んだソフトウェアエンジニアリングの方法論、プラクティス、ツールを組み合わせたものを指します。

ある書籍の執筆をきっかけに、DevSecOps が浸透しない理由について考えることがありました。セキュリティベンダーを始め、DevSecOps について下図が用いられます。シンプルではありますが、セキュリティはすべてのフェーズで行うにしても、どういったことを実施するのが良いか理解しにくいのではないかと考えました。そこで、私が改めて読み返したドキュメントを次に紹介します。 

図 : 従来のDevSecOpsライフサイクル

Missing alt text value

米国国防総省の DevSecOps ライフサイクル

米国国防総省 (Department of Defense:以下DoD) は、世界最大級の情報システムとサイバー空間の責任を担う組織です。業務システムから兵器・指揮統制・組み込みソフトウェアに至るまで、多種多様かつミッションクリティカルなソフトウェア資産を有しています。

このような環境において、DoDは「Enterprise DevSecOps Fundamentals」という、堅牢かつ回復力のあるソフトウェア開発を実現するための文書で、DevSecOps ライフサイクルを提示しています。このモデルは「セキュリティを最初から最後まで一貫して、継続的かつ自動化された形で組み込む」ことを前提としており、従来のウォーターフォールや単純な CI/CD モデルとは異なる強いセキュリティ要求が特徴です。DevSecOps を実現する上で実施するテストについても記述されており、ページ数も多くないため、ぜひ一読されることをおすすめします。

日本企業でも近年、クラウドネイティブやゼロトラストへの対応、SBOM への関心の高まりなどを背景に、DevSecOps への注目が集まっています。本記事では、DoD の方針を簡単に紹介した上で、AWS のセキュリティサービスと OSS (オープンソースソフトウェア) を用いた現実的な DevSecOps ライフサイクルの実装方法を、各フェーズに分けて解説します。

図:DoDのDevSecOpsライフサイクル (Figure 11: DevSecOps Integrated with Security より引用)
 

Missing alt text value

DevSecOps を実現する CI/CD パイプラインの例

これは AWS のセキュリティサービスと OSS で DevSecOps を実現する CI/CD パイプラインの一例ですが、OWASP の DevSecOps ガイドライン を元に作成したものになります。

下はネットワークインフラのコードについて、いくつかのスキャンを経て準本番環境のインフラをデプロイし、インフラスキャンで問題がなければ、本番環境のインフラをデプロイしています。

上はアプリケーションのコードについて、同様にいくつかのスキャンを経て準本番環境のアプリケーションをデプロイし、スキャンで問題がなければ、本番環境のアプリケーションをデプロイしています。

インフラのコードは図では Terraform を用いていますが、AWS のセキュリティサービスの多くは Terraform で管理することも可能なため、セキュリティについても、同様のパイプラインを組むことは容易に考えることができます。ネットワークインフラやセキュリティだけでなく、ドキュメント、構成などをコードで管理する Everything as Code という考え方があり、バージョン管理やテスト、デプロイメントの原則を下記のようなパイプラインに統一することで、メンテナンスやスケーラビリティが向上します。

図:DevSecOps パイプライン例

フェーズ別 : AWS と OSS で実践する DevSecOps

DoD の DevSecOps ライフサイクルの各フェーズを説明するにあたり、次のような AWS アーキテクチャを確認しましょう。

シンプルにフロントエンドは Amazon EKS 上に Web アプリケーションが展開され、バックエンドは Amazon S3 や Amazon Bedrock を活用しているものと考えてください。このアーキテクチャを AWS のセキュリティサービスと OSS で DevSecOps を実践しながら、セキュアにしていくことを考えていきましょう。

なお、ここで紹介する OSS はすべて利用したことあるサービスだけを紹介していますが、世の中にはたくさんの OSS が存在しますので、代替可能な OSS などありましたら、ぜひ教えていただきたいです。また、AWS のサービスについても、軽く触れていますが、詳しい活用方法は AWS Documentation の各サービスのページなどを参照ください。

図:セキュリティ対策前のAWSアーキテクチャ例

Missing alt text value

Plan (計画・設計) フェーズ

このフェーズでは、次期リリースに向けた要件定義や目標設定を行うと同時に、脅威モデリングやリスク分析によって潜在的な脅威を特定します。早期に脅威を洗い出すことで、設計段階での対策が可能になります。脅威モデリングをサポートするツールをいくつか紹介します。

AWS :

Threat Composer : AWS ラボで提供されており、脅威モデリングの理解を支援してくれる OSS です。脅威モデリングを実践したことがない方のために脅威モデリングのプロセスについて理解することが可能なものになっています。

OSS :

  • OWASP Threat Dragon : ソフトウェア設計段階での脅威モデリングを支援する無料ツールです。Web 版とデスクトップ版があり、直感的な操作でデータフロー図を作成し、脅威を整理・評価できます。STRIDE など複数の分析手法に対応しています。
  • OWASP Risk Rating Calculator : OWASP の Risk Rating Methodology をベースにしたリスクのスコアリングと意思決定を行うことを支援してくれるツールです。脅威エージェントや脆弱性、技術的影響、ビジネスインパクトの要因に関する各種リスクスコアを元に全体的なリスクの深刻度を算出するのをサポートしてくれます。

Develop (実装) フェーズ

計画フェーズで定義した要件に沿って開発を進めます。ここではセキュアコーディングを実現するための Linter やコードレビュー支援ツールと Security as Code の実践が重要です。Linter はコーディングにおける潜在的なバグ、コードの改善などを指摘してくれるツールで、OSSでは記述する言語に対応した Linter が多く存在します。Security as Code では、構成検証やアクセス制御などのセキュリティ要件やコンプライアンス要件をコードで定義し、継続的に適用できるようにする考え方です。

AWS :

  • Amazon Q Developer : アプリケーションのコードはもちろん、テストのためのコード生成やコードレビューの実施も可能なサービスです。AWS セキュリティベストプラクティスに基づく指摘も可能な次世代の開発者支援ツールです。
  • Amazon Q Developer CLI : Amazon Q Developer をコマンドラインから利用できる OSS の CLI ツールです。

OSS :

  • Pylint : Python に対応した Linter です。
  • tslint : TypeScript に対応した Linter です。
  • Open Policy Agent : Policy as Code や Security as Code を実現するためのポリシーエンジンです。セキュリティやコンプライアンスのルールをコード (Rego 言語) として定義します。

Build (ビルド) フェーズ

ソースコードをビルドし、コンパイルや依存関係の解決を行う段階です。ここで静的解析セキュリティテスト (SAST) やソフトウェア構成分析 (SCA) を組み込むことで、脆弱性の早期検出を実現します。

AWS :

  • Amazon Inspector : Amazon EC2 や AWS Lambda などのワークロード、コンテナイメージとのスキャンを CI/CD に統合し、脆弱性の検出を行うことが可能です。また、最近、Github や Gitlab と統合し、ソースコードのセキュリティスキャンや IaC スキャンも可能となりました。
  • git-secrets : AWS ラボで提供されており、ビルド前のコード内に AWS キーやパスワードなどの秘密情報が誤って含まれていないか検出し、クレデンシャル漏洩を防ぎます。

OSS :

  • semgrep : ビルド時にコードを静的解析し、脆弱性やセキュリティ上の不適切な実装を検出して修正を促すことで、安全なコードを保証します。また、semgrep は 35 以上の言語にも対応しています。
  • trivy : コンテナイメージや IaC をビルド段階でスキャンし、既知の脆弱性や構成不備を検出して、デプロイ前にリスクを低減します。

Test (テスト) フェーズ

機能テストやユニットテストはもちろん、セキュリティテストも並行して実施します。ここでのセキュリティテストは、ビルド後のアプリケーションや API に対して動的アプリケーションセキュリティテスト (DAST) やペネトレーションテストを組み込み、実際の動作に対するセキュリティ評価を実施します。なお、AWS のサービスにおけるデプロイ後のDASTやペネトレーションテストに関するツールはありません。下記 2 つのツールはヘッドレスモードで実行可能であり、CI/CD に組み込んで実行することが可能です。

OSS :

  • OWASP ZAP : OWASP が提供するオープンソース DAST ツールです。Web アプリケーションや API の通信をプロキシ経由で監視・改ざんすることが出来ます。自動スキャナーや手動検査機能を備えており、SQL インジェクションや XSS といった典型的な脆弱性を発見可能です。スクリプトによる拡張も可能で、教育用途から実務の簡易診断まで幅広く活用されています。
  • Burp Suite : PortSwigger 社が開発・提供している商用の Web アプリケーション脆弱性診断ツールです。有償版以外にもコミュニティ版があります。ZAP と同じくプロキシ型で、ブラウザ通信を傍受・操作しながら脆弱性検査を行います。

Release (リリース) フェーズ

リリース時には、アーティファクト (バイナリやコンテナ) に対してデジタル署名を行い、改ざん防止と出所証明を行います。

AWS :

  • AWS Signer : マネージドなコード署名サービスで、ソフトウェアアーティファクトに対してデジタル署名を行い、改ざん防止や出所証明を実現します。利用者は署名プロセスを自動化でき、署名鍵は AWS KMS によって安全に管理されるため、鍵の取り扱いリスクを最小化できます。Lambda 関数やコンテナイメージ、その他のアプリケーションパッケージなどに対応しています。

OSS :

  • cosign : sigstore プロジェクトが提供するオープンソースの署名ツールで、コンテナイメージやアーティファクトに対して軽量かつシンプルにデジタル署名を行えます。
  • HashiCorp Vault : 秘密情報や暗号鍵の管理を行う OSS のセキュリティプラットフォームです。署名専用ツールではありませんが、署名鍵を安全に保管し、API 経由で署名操作を提供することができます。これにより、ソフトウェアアーティファクトへの署名を Vault を介して行い、署名鍵を開発者やパイプラインに直接触れさせない仕組みを構築可能です。

Deliver (提供) フェーズ

CI/CD パイプラインによるステージング〜本番環境へのデプロイ時にもセキュリティを組み込みます。

AWS :

  • AWS CodePipeline / AWS CodeBuild / AWS CodeDeploy : CI/CD を構成するための AWS ネイティブサービス群です。これらを組み合わせることで、ソースコードのビルドからテスト、ステージング環境への展開、本番環境へのリリースまでを自動化し、セキュリティチェックを組み込むことが可能になります。

OSS :

  • ArgoCD : Kubernetes に特化した GitOps ツールです。アプリケーションの望ましい状態を Git リポジトリで宣言的に管理し、実際のクラスタ環境と同期させることで、自動的かつ一貫したデプロイを実現します。
  • GitLab CI/CD : GitLab に統合された CI/CD 機能です。パイプライン定義を .gitlab-ci.yml ファイルでコードとして記述できるため、ビルド、テスト、セキュリティチェック、デプロイをすべて自動化できます。OSS ツールとの親和性が高く、これまで紹介した OSS のスキャン結果やリリース状況を一元的に把握できます。

Deploy (導入) フェーズ

アプリケーションやインフラを安全に本番環境へ展開することが求められます。この際、単に機能をリリースするだけでなく、構成や設定のセキュリティ (Secure Config) を徹底することが極めて重要です。

AWS :

  • AWS Config : AWS リソースの構成変更を自動的に記録・評価するサービスです。事前にセキュリティルールを定義しておけば、デプロイ後にリソースが規定に違反していないかを自動チェックできます。たとえば、Amazon S3 Bucket は暗号化必須、 Security Group は特定 IP アドレスのみに制限する等です。さらに、修復アクションを自動適用することも可能です。
  • AWS WAF : Web アプリケーションへの攻撃を防御するマネージド型のファイアウォールです。デプロイ工程では、アプリケーションが本番に公開される段階で、即座に WAF を適用して SQL インジェクションや XSS といった一般的な攻撃から防御できます。

OSS :

  • Cloud Custodian : クラウドリソースのポリシー管理と自動修復を行う OSS です。YAML 形式で「ルール」を定義し、デプロイ後にクラウド環境がそのルールに準拠しているかをチェックできます。たとえば、「暗号化されていない Amazon EBS ボリュームを検出したら自動で暗号化を適用する」といった自動修復を可能にします。

Operate (運用) フェーズ

稼働中のシステムを安全に維持・運用する段階です。ここでは機能追加や改善ではなく、セキュリティを保ちながら安定稼働を続けることが目的となります。

AWS :

  • AWS Systems Manager Patch Manager : Patch Manager は、AWS Systems Manager の機能の一つで、Amazon EC2 インスタンスやオンプレミスサーバーに対して OS やソフトウェアのセキュリティパッチを自動適用 できます。パッチ適用スケジュールを定義して定期的に実行したり、重大度に応じて即時適用したりすることが可能です。
  • Amazon Inspector : Amazon EC2 や AWS Lambda などのワークロード、コンテナイメージとのスキャンを CI/CD に統合し、脆弱性の検出を行うことが可能です。ソースコードのセキュリティスキャンや IaC スキャンも可能となりましたが、ここでのスキャンは必ずしも、CI/CD に組み込んだ中で実施するだけではなく、例えばデイリースキャン、ウィークリースキャンなどを実施し、早期脆弱性を発見するためのスキャンを実施することとなります。
  • AWS Security Hub : クラウド環境全体のセキュリティ状況を可視化する CSPM サービスです。Amazon Inspector や Amazon GuardDuty の検出結果を集約し、CIS ベンチマークや PCI DSS などのセキュリティ標準に照らして自動評価を行います。
  • AWS Audit Manager : セキュリティやコンプライアンス監査を効率化するサービスです。監査証跡を自動的に収集し、ISO 27001、FedRAMP、NIST などのフレームワークに沿った監査レポートを生成できます。

OSS :

  • Prowler : AWS 環境のセキュリティ監査や CIS ベンチマーク準拠チェックを行う OSS です。CLI から簡単に実行できことはもちろん、CI/CD に組み込むことも可能です。IAM ポリシーの過剰権限、Amazon S3 の公開設定、暗号化の有無などを包括的にチェック可能です。

Monitor (監視) フェーズ

運用中のシステムを継続的に監視し、攻撃や異常を早期に検知することを目的としています。また、あらゆるログから分析を行うことで、攻撃の兆候がないかリアルタイムに把握することに努めます。

AWS :

  • Amazon GuardDuty : マネージドな脅威検出サービスです。アカウントの不審な API コール、外部からの不正アクセスを機械学習で検知します。運用者はインフラにセンサーを仕込む必要がなく、導入後すぐに監視を開始できます。近年は機能も拡充され、ランタイムの監視、Amazon S3、Amazon RDS、Amazon EKS、AWS Lambda 向け保護対策、マルウェアの検出にも役立ちます。
  • Amazon Macie : Amazon S3 に保存された機密データを自動的に検出・分類するデータセキュリティサービスです。個人情報 (PII)、認証情報、財務データなどを識別し、不必要に公開されているストレージを検出できます。「どのデータがどこに存在し、誰がアクセス可能か」を継続的に監査できるため、データ漏洩リスクを事前に発見し、リリース後の不正公開や情報流出を未然に防止します。
  • Amazon CloudWatch : AWS リソースとアプリケーションの統合監視サービスです。ログ、メトリクス、イベントを収集・分析し、システムの健全性をリアルタイムに監視します。Anomaly Detection を利用すれば、通常と異なるトラフィックやリソース利用を自動検出可能です。
  • AWS Distro for OpenTelemetry : OpenTelemetry の AWS 公式ディストリビューションで、メトリクス、ログに加え、トレースを標準化形式で収集するためのツールセットです。クラウドネイティブ環境において、サービス間通信や API 呼び出しを可観測化し、異常挙動を追跡できます。
  • Amazon Managed Service for Prometheus & Grafana : Amazon Managed Service for Prometheus はクラウドやコンテナ環境のメトリクスを収集・監視します。セキュリティ運用においては、いくつかの OSS で生成されたメトリクスも取り込むことができます。そうしたデータを Amazon Managed Service for Grafana で可視化することが可能で、異常行動の確認に役立ちます。
  • IAM Access Analyzer : IAM ポリシーやリソースポリシーを解析し、外部からの不正アクセスリスクを検出するセキュリティ機能です。「最小権限の原則」を徹底していく上でも重要な機能であり、リスクに直結するポリシー設定を特定して修正を促すことができます。
  • AWS Budgets : コストと利用量を監視し、異常を検知するサービスです。一見コスト管理のツールですが、セキュリティ分析においては「急激なリソース消費増大 \= 不正利用の兆候」を把握するのに有効です。
  • Amazon Detective : セキュリティインシデントの調査を効率化する分析サービスです。AWS CloudTrail、VPC Flow Logs、Amazon GuardDuty などのログをグラフベースで関連付け、攻撃の流れや影響範囲を可視化するなどフォレンジックに活用します。
  • Amazon Route53 Health Check : DNS レベルでアプリケーションやエンドポイントのヘルスチェックを行う機能です。アプリケーションや API がセキュリティ攻撃などでダウンした場合、可用性の低下を迅速に検知できます。また、ヘルスチェックの結果を Route 53 のルーティングに反映させることで、障害発生時に安全なリージョンへトラフィックを自動的に迂回させることも可能です。
  • AWS Fraud Detector : 機械学習を用いて不正行為を検出するサービスです。ログイン試行やトランザクションデータを分析し、アカウント乗っ取りや不正利用の兆候を早期に見つけます。
  • AWS Security Lake : セキュリティデータを統合・標準化して分析基盤を構築するサービスです。OCSF (Open Cybersecurity Schema Framework) に準拠した形式でログを一元管理できます。
  • Amazon Q in Quicksight : BI/分析が可能な Amazon Quicksight に、生成 AI の Amazon Q を組み込んだサービスです。自然言語を用いてセキュリティデータを探索でき、即座に可視化レポートを生成することが可能です。
  • SIEM on Amazon OpenSearch Service : AWS 上にオープンソースの SIEM 環境を構築できる仕組みです。Amazon OpenSearch Service を基盤に、セキュリティログやイベントを収集・検索・可視化し、脅威の検出や監査対応を実現します。

OSS :

  • OWASP Amass : 外部攻撃面管理 (Attack Surface Management; ASM) のための OSS です。ドメイン調査やサブドメイン列挙、ネットワークマッピングにより、攻撃対象となり得るアセットを特定できます。
  • Falco : ランタイムセキュリティツールで、Kubernetes や Linux のシステムコールを監視して不審な挙動を検知します。マルウェアによるプロセス起動や予期しないファイルアクセスなどをリアルタイムに検出可能です。Sysdig 社によって開発されました。
  • ThreatMapper : 稼働中のコンテナやクラウド環境をスキャンし、攻撃経路を可視化します。脆弱性や機密情報の露出を検出するだけでなく、攻撃シナリオに基づいたリスク優先度付けが可能です。Deepfence 社によって開発されました。
  • wazuh : ログ収集、脆弱性検出、ファイル改ざん検知を統合し、分析結果をダッシュボードで提供してくれる OSS の SIEM です。Amazon S3 に貯められたログや AWS サービスの監視データと組み合わせて二重の可視化を行うことができます。
  • stratoshark : Wireshark をベースにしたトラフィック解析ツールで、システムコールやログを詳細に分析できます。通常のログ監視では見えにくい通信パターンを可視化でき、セキュリティインシデントの原因調査に強みを発揮します。こちらも、Sysdig 社によって開発されました。

Feedback (改善) フェーズ

先のフェーズでの監視や解析結果をもとに、最初の Plan フェーズにフィードバックを返す重要フェーズです。これまで紹介した AWS のサービスや OSS は参考に活用していただければと思いますが、セキュリティサービスや OSS をすべて同時に導入することは、必ずしも安全の近道ではありません。アラート過多やコスト増大を招き、運用が追いつかなくなる危険があります。重要なのは リスクに応じた優先度付けと段階的導入です。DoD の DevSecOps ライフサイクルが示すように、セキュリティは一度きりの設定ではなく、継続的に改善していくプロセスである点を忘れてはなりません。

おわりに

DoD のような堅牢なセキュリティ文化を民間企業で再現することは一見困難に思えるかもしれません。しかし、AWS のマネージドセキュリティサービスと、柔軟で自由度の高い OSS を組み合わせることで、十分に実現可能です。

特に 2025 年現在では、Amazon Q Developer など、開発者支援の自動化も進んでいることからも、コードの生成はもちろん、手間をかけずにセキュア CI/CD を構築できる環境が整ってきています。

セキュリティは一過性の対応ではなく、組織の文化として継続的に根付かせるものです。最初の導入ハードルを下げるためにも、「まずできることから着手する」「小さく始めて育てる」姿勢が、組織の DevSecOps 成熟度を確実に高めていく第一歩となるでしょう。

筆者プロフィール

吉江 瞬 (AWS Security Hero)

2008 年、野村総合研究所入社とともに、NRIセキュアテクノロジーズへ出向。セキュリティおよびインフラエンジニアとして同社が提供するマネージドセキュリティサービスの運用に従事。後に金融サービスを専門とするセキュリティコンサルタントとなる。2023 年 10 月より出向解除とともに野村総合研究所にて業務を開始。マルチクラウド向けのセキュリティ対策、ポリシー策定に注力。

コミュニティ活動歴は JAWS DAYS 2013 から JAWS-UG に参加。2016 年に Security-JAWS を立ち上げる。2019 年 2 月の JAWS DAYS 2019 、2020 年 9 月の 24 時間オンラインの JAWS SONIC 2020 、2021 年 11 月の 24 時間オンラインのグローバルイベント JAWS PANKRATION 2021、2024 年 8 月の 24 時間オンラインのグローバルイベント JAWS PANKRATION 2024 でそれぞれ実行委員長を努めた。2021 年 3 月に AWS Community Hero、2023 年 8 月に AWS Security Hero に選ばれた。最近の興味は Multi-Cloud、Cloud Native、CNAPP、Security Observability。

Missing alt text value