原文・参照先資料
DoD Enterprise DevSecOps Reference Design - DoD CIO
1 はじめに
1.1 背景
DevSecOpsは、ソフトウェア開発(Dev)、セキュリティ(Sec)、運用(Ops)を統合することを目的とした組織的なソフトウェアエンジニアリングの文化と実践である。DevSecOpsの主な特徴は、ソフトウェアライフサイクルのすべてのフェーズ(計画、開発、構築、テスト、リリース、デリバリ、デプロイ、運用、監視)でセキュリティを自動化、監視、適用することによって、成果とミッションバリューを改善することです。DevSecOpsを実践することで、従来のソフトウェアライフサイクルに対する品質とセキュリティの改善を実証することができます。
・平均実稼働時間:新しいソフトウェア機能が必要になってから実稼働に移行するまでにかかる平均時間
・平均リードタイム:新しい要件の提供と導入にかかる時間
・導入速度:新しいバージョンのアプリケーションを本番環境に導入する速度
・導入頻度:新しいリリースを本番環境に導入できる頻度
・本番環境の障害発生率:本番環境でソフトウェアに障害が発生する頻度
・平均リカバリ時間:本番段階のアプリケーションが障害からリカバリするまでにかかる時間
さらに、DevSecOpsプラクティスによって次のことが可能になります。
・アプリケーション・ライフサイクル全体にわたって、リスクの特徴づけ、監視、軽減を完全に自動化
・セキュリティの脆弱性とコードの弱点に対処できる速度でのソフトウェアのアップデートとパッチ適用
DevSecOpsプラクティスは、アプリケーションのセキュリティ、安全な導入、および安全な運用を、ミッションの目標と密接に連携させて実現します。DevSecOpsでは、自動化されたユニットテスト、機能テスト、統合テスト、セキュリティテストを通じて、テストとセキュリティがシフトレフトされています。セキュリティと機能が同時にテストされ、構築されるため、DevSecOpsの重要な差別要素です。さらに、いくつかのセキュリティ機能(Sec)は、サイドカーコンテナを介して開発者(Dev)の介在なしに自動的にアプリケーションに注入されます。
##1.2 目的
この文書の主な目的は、DoD DevSecOpsソフトウェアファクトリをインスタンス化するために使用できる反復可能なリファレンスデザインを提供するために、主要な設計コンポーネントとプロセスの論理的な説明を提供することです。
このドキュメントの対象読者は次のとおりです。
・DoDエンタープライズDevSecOps強化コンテナを構築し、DevSecOps強化コンテナアクセスサービスを提供するDoDエンタープライズDevSecOps機能プロバイダー
・DevSecOpsソフトウェアファクトリとそのプログラムの関連パイプラインを管理(インスタンス化と維持)するDoD組織のDevSecOpsチーム
・DevSecOpsソフトウェアファクトリーを使用してミッションアプリケーションの開発、セキュリティ確保、運用を行うDoDプログラムアプリケーションチーム
・認可された職員(Authorizing Officials (AOs))
DoD Enterprise DevSecOps リファレンスデザインでは、DevSecOpsチームが開発対象のプログラムアプリケーション機能に適したテンプレートを選択するため、一連の強化されたDevSecOpsツールとデプロイメントテンプレートを活用しています。たとえば、これらのテンプレートは、特定のプログラミング言語や、Webアプリケーション、トランザクション、ビッグデータ、人工知能(AI)などのさまざまな種類の機能に特化しています。プログラムはDevSecOpsテンプレートとツールセットを選択します。プログラムはこれらを使用して、DevSecOpsソフトウェアファクトリと、ミッションアプリケーションの継続的インテグレーションと継続的デリバリ(CI/CD)を可能にするパイプラインをインスタンス化します。
このリファレンスデザインは、次のドキュメントと連携しています。
• DoD Cloud Computing Strategy [1]
• DoD Cloud Computing Security Requirements Guide [2]
• DoD Secure Cloud Computing Architecture (SCCA) [3]
• Presidential Executive Order on Strengthening the Cybersecurity of Federal Networks
and Critical Infrastructure (Executive Order (EO) 1380) [4]
• National Institute of Standards and Technology (NIST) Cybersecurity Framework [5]
• DoD Container Hardening Security Requirements Guide [6]
##1.3 範囲
このドキュメントでは、部門全体でDevSecOpsをスケールするためのリファレンス設計について説明します。DevSecOpsは業界で確立された成熟した能力であり、すでに政府の一部で使われています。このDoDリファレンス・デザインは、製品に依存しない設計、ソフトウェアチームが使用するための実行ガイダンスを提供します。ビジネス・トランザクション、C2、組み込みシステム、ビッグ・データ、人工知能(AI)などのビジネスシステム・ソフトウェアと兵器システム・ソフトウェアの両方で、新しい機能の開発と既存の機能の維持に適用できます。
本書では、ポリシーや物資調達は扱いません。
1.4 ドキュメントの概要
マニュアルの構成は次のとおりです。
・第1章では、このドキュメントの背景、目的、範囲について説明します。
・第2章では、基本的な原則を述べるとともに、この参照設計を開発する際になされた仮定について説明します。
・第3章では、DevSecOpsライフサイクル、DevSecOps採用を支援する4つの主要機能、DevSecOpsソフトウェアファクトリとそのエコシステムの技術アーキテクチャについて説明します。
・第4章では、DevSecOpsエコシステムのツールと、ソフトウェアのライフサイクルフェーズに沿った活動について説明します。
・第5章では、DoDエンタープライズDevSecOpsサービスについて説明します。このセクションの対象読者は、DoD Enterprise DevSecOps機能プロバイダーです。
・第6章では、DevSecOpsソフトウェアファクトリとエコシステムを構築するための、DoDプログラムのリファレンス設計について説明します。