DevSecOps Reference
DevSecOps Reference
UNCLASSIFIED
DoD Enterprise
DevSecOps Reference
Design:
CNCF Kubernetes
March 2021
Version 2.0
UNCLASSIFIED
Unclassified 1
UNCLASSIFIED
UNCLASSIFIED 2
UNCLASSIFIED
Document Approvals
Approved by:
Nicolas Chaillan
Chief Software Officer, Department of Defense, United States Air Force, SAF/AQ
UNCLASSIFIED 3
UNCLASSIFIED
Trademark Information
Names, products, and services referenced within this document may be the trade names,
trademarks, or service marks of their respective owners. References to commercial vendors and
their products or services are provided strictly as a convenience to our readers, and do not
constitute or imply endorsement by the Department of any non-Federal entity, event, product,
service, or enterprise.
UNCLASSIFIED 4
UNCLASSIFIED
Contents
1 Introduction .......................................................................................................................... 7
1.1 Background................................................................................................................... 7
1.2 Purpose .......................................................................................................................... 7
1.3 DevSecOps Compatibility ......................................................................................... 8
1.4 Scope .............................................................................................................................. 8
1.5 Document Overview ................................................................................................... 9
1.6 What’s New in Version 2............................................................................................ 9
2 Assumptions and Principles ......................................................................................... 10
3 Software Factory Interconnects ................................................................................... 10
3.1 Cloud Native Access Points ................................................................................... 11
3.2 CNCF Certified Kubernetes .................................................................................... 11
3.3 Locally Centralized Artifact Repository .............................................................. 12
3.4 Sidecar Container Security Stack (SCSS) .......................................................... 13
3.5 Service Mesh .............................................................................................................. 16
4 Software Factory K8s Reference Design ................................................................... 17
4.1 Containerized Software Factory ............................................................................ 18
4.2 Hosting Environment ............................................................................................... 20
4.3 Container Orchestration .......................................................................................... 20
5 Additional Tools and Activities ..................................................................................... 22
5.1 Additional Deployment Types................................................................................ 29
5.1.1 Blue/Green Deployments .................................................................................... 29
5.1.2 Canary Deployments ........................................................................................... 29
5.1.3 Rolling Deployments ............................................................................................ 29
5.1.4 Continuous Deployments .................................................................................... 30
5.2 Continuous Monitoring in K8s ............................................................................... 30
5.2.1 CSP Managed Services for Continuous Monitoring ....................................... 31
UNCLASSIFIED 5
UNCLASSIFIED
Figures
Figure 1: Kubernetes Reference Design Interconnects ............................................................. 11
Figure 2: Container Orchestrator and Notional Nodes ............................................................. 12
Figure 3: Sidecar Container Relationship to Application Container ........................................ 13
Figure 4: Software Factory Implementation Phases.................................................................. 17
Figure 5: Containerized Software Factory Reference Design ................................................... 20
Figure 6: DevSecOps Platform Options ...................................................................................... 21
Figure 7: Software Factory - DevSecOps Services ..................................................................... 22
Figure 8: Logging and Log Analysis Process ............................................................................. 31
Tables
Table 1 Sidecar Security Monitoring Components..................................................................... 15
Table 2: CD/CD Orchestrator Inputs/Outputs............................................................................ 18
Table 3: Security Activities Summary and Cross-Reference...................................................... 23
Table 4: Develop Phase Activities ............................................................................................... 23
Table 5: Build Phase Tools.......................................................................................................... 23
Table 6: Build Phase Activities.................................................................................................... 24
Table 7: Test Phase Tools ............................................................................................................ 24
Table 8: Test Phase Activities ...................................................................................................... 25
Table 9: Release and Deliver Phase Tools .................................................................................. 25
Table 10: Release and Deliver Phase Activities .......................................................................... 25
Table 11: Deploy Phase Tools ..................................................................................................... 26
Table 12: Deploy Phase Activities ............................................................................................... 27
Table 13: Operate Phase Activities.............................................................................................. 27
Table 14: Monitor Phase Tools ................................................................................................... 28
Table 15: CSP Managed Service Monitoring Tools ................................................................... 28
UNCLASSIFIED 6
UNCLASSIFIED
1 Introduction
1.1 Background
Modern information systems and weapons platforms are driven by software. As such, the DoD
is working to modernize its software practices to provide the agility to deliver resilient software at
the speed of relevance. DoD Enterprise DevSecOps Reference Designs are expected to
provide clear guidance on how specific collections of technologies come together to form a
secure and effective software factory.
1.2 Purpose
This DoD Enterprise DevSecOps Reference Design is specifically for Cloud Native Computing
Foundation (CNCF) Certified Kubernetes implementations. This enables a Cloud agnostic,
elastic instantiation of a DevSecOps factory anywhere: Cloud, On Premise, Embedded System,
Edge Computing.
For brevity, the use of the term ‘Kubernetes’ or ‘K8s’ throughout the remainder of this
document must be interpreted as a Kubernetes implementation that properly submitted
software conformance testing results to the CNCF for review and corresponding
certification. The CNCF lists over 90 Certified Kubernetes offerings that meet software
conformation expectations. 1
It provides a formal description of the key design components and processes to provide a
repeatable reference design that can be used to instantiate a DoD DevSecOps Software
Factory powered by Kubernetes. This reference design is aligned to the DoD Enterprise
DevSecOps Strategy, and aligns with the baseline nomenclature, tools, and activities defined in
the DevSecOps Fundamentals document and its supporting guidebooks and playbooks.
The target audiences for this document include:
DoD Enterprise DevSecOps capability providers who build DoD Enterprise DevSecOps
hardened containers and provide a DevSecOps hardened container access service.
DoD Enterprise DevSecOps capability providers who build DoD Enterprise DevSecOps
platforms and platform baselines and provide a DevSecOps platform service.
DoD organization DevSecOps teams who manage (instantiate and maintain)
DevSecOps software factories and associated pipelines for its programs.
DoD program application teams who use DevSecOps software factories to develop,
secure, and operate mission applications.
Authorizing Officials (AOs).
This reference design aligns with these reference documents:
1Cloud Native Computing Foundation, “Software conformance (Certified Kubernetes,” [ONLINE] Available:
https://www.cncf.io/certification/software-conformance/. [Accessed 8 February 2021].
UNCLASSIFIED 7
UNCLASSIFIED
1.4 Scope
This reference design is product-agnostic and provides execution guidance for use by software
teams. It is applicable to developing new capabilities and to sustaining existing capabilities in
both business and weapons systems software, including business transactions, C3, embedded
systems, big data, and Artificial Intelligence (AI).
This document does not address strategy, policy, or acquisition.
2 DoD CIO, DoD Digital Modernization Strategy, Pentagon: Department of Defense, 2019.
3 Department of Defense, "DoD Cloud Computing Strategy," December 2018.
4 DISA, “Department of Defense Cloud Computing Security Requirements Guide, v1r3,” March 6, 2017
5 DISA, "DoD Secure Cloud Computing Architecture (SCCA) Functional Requirements," January 31, 2017.
6 White House, "Presidential Executive Order on Strengthening the Cybersecurity of Federal Networks and Critical
Infrastructure (EO 1380)," May 11, 2017.
7National Institute of Standards and Technology, Framework for Improving Critical Infrastructure Cybersecurity,
2018.
8 NIST, "NIST Special Publication 800-190, Application Container Security Guide," September 2017.
9 DoD Cyber Exchange, “Kubernetes Draft STIG – Ver 1, Rel 0.1,” December 15, 2020.
10 DISA, “Container Hardening Process Guide, V1R1,” October 15, 2020
UNCLASSIFIED 8
UNCLASSIFIED
UNCLASSIFIED 9
UNCLASSIFIED
It is critically important to avoid the proprietary APIs that are sometimes added
by vendors on top of the existing CNCF Kubernetes APIs. These APIs are not
portable and may create vendor lock-in!
UNCLASSIFIED 10
UNCLASSIFIED
Use of a service mesh within the K8s orchestrator to manage all east-west network
traffic.
Mandatory adoption of the Sidecar Container Security Stack (SCSS) to implement zero
trust down to the container/function level, also providing behavior protection.
Each of these interconnects will be described fully next.
11 DISA, “Department of Defense Cloud Computing Security Requirements Guide, v1r3,” Mar 6, 2017
UNCLASSIFIED 11
UNCLASSIFIED
formats and runtimes.12 The container is the standard unit of work in this reference design.
Containers enable software production automation in this reference design, and they also allow
operations and security process orchestration.
Kubernetes provides an API that ensures total abstraction of orchestration, compute, storage,
networking, and other core services that guarantees software can run in any environment, from
the Cloud to embedded inside of platforms like jets or satellites.
The key benefits of adopting Kubernetes include:
Multimodal Environment: Code runs equally well in a multitude of compute
environments, benefitting from the K8s API abstraction.
Baked-In Security: The Sidecar Container Security Stack is automatically injected into
any K8s cluster with zero trust.
Resiliency: Self-healing of unstable or crashed containers.
Adaptability: Containerized microservices create highly-composable ecosystems.
Automation: Fundamental support for a GitOps model and IaC speed processes and
feedback loops.
Scalability: Application elasticity to appropriately scale and match service demand.
The adoption of K8s and OCI compliant containers are concrete steps towards true
microservice reuse, providing the Department with a compelling ability to pursue higher orders
of code reuse across an array of programs.
12 The Linux Foundation Projects, “Open Container Initiative,” [Online] Available at: https://opencontainers.org.
UNCLASSIFIED 12
UNCLASSIFIED
limited to, container images, binary executables, virtual machine (VM) images, archives, and
documentation.
The Iron Bank artifact repository provides hardened, secure technical implementation guide
(STIG) compliance, and centrally updated, scanned, and signed containers that increases the
cyber survivability of these software artifacts. At time of writing this reference design, over 300
artifacts were in Iron Bank, with more being added continuously.
Programs may opt for a single artifact repository and rely on the use of tags to distinguish
between the different content types. It is also permissible to have separate artifact repositories
to store local artifacts and released artifacts.
As shown in Figure 3, the sidecar can share state with the application container. In particular,
the two containers can share disk and network resources while their running components are
fully isolated from one another.
UNCLASSIFIED 13
UNCLASSIFIED
The complete set of sidecar container security monitoring components are captured in Table 1
on the next page. Capability highlights include:
Centralized logging and telemetry that includes extract, transform, and load (ETL)
capabilities to normalize log data.
Robust east/west network traffic management (whitelisting).
Zero Trust security model.
Whitelisting.
Role-Based Access Control.
Continuous Monitoring.
Signature-based continuous scanning using Common Vulnerabilities and Exposures
(CVEs).
Runtime behavior analysis.
Container policy enforcement.
UNCLASSIFIED 14
UNCLASSIFIED
UNCLASSIFIED 15
UNCLASSIFIED
UNCLASSIFIED 16
UNCLASSIFIED
The components of this reference design’s software factory must be instantiated as follows: A
CSP-agnostic solution running a CNCF Certified K8s using hardened containers from Iron Bank.
This design recognizes that K8s is well-suited to act as the engine powering a continuous
integration/continuous delivery (CI/CD) orchestrator, coordinating multiple parallel DevSecOps
pipelines. K8s manages pipeline creation, pipeline modification, overall pipeline execution, and
finally pipeline termination.
The software factory leverages technologies and tools to automate the CI/CD pipeline
processes defined in the DevSecOps lifecycle plan phase. There are no “one size fits all” or
hard rules about what CI/CD processes should look like and what tools must be used. Each
software team needs to embrace the DevSecOps culture and define processes that suit its
software system architectural choices. The tool chain selection is specific to the software
programming language choices, application type, tasks in each software lifecycle phase, and
the system deployment platform.
DevSecOps teams create a pipeline workflow in the CI/CD orchestrator by specifying a set of
stages, stage conditions, stage entrance and exit control rules, and stage activities. The CI/CD
UNCLASSIFIED 17
UNCLASSIFIED
orchestrator automates the pipeline workflow by validating the stage control rules. If all the
entrance rules of a stage are met, the orchestrator will transition the pipeline into that stage and
perform the defined activities by coordinating the tools via plugins. If all the exit rules of the
current stage are met, the pipeline exits out the current stage and starts to validate the entrance
rules of the next stage. Table 2 shows the features, benefits, and inputs and outputs of the
CI/CD orchestrator.
Table 2: CD/CD Orchestrator Inputs/Outputs
UNCLASSIFIED 18
UNCLASSIFIED
Running a CI/CD pipeline is a complex activity. Containerization of the entire CI/CD stack
ensures there is no drift possible between different K8s cluster environments (development,
test, staging, production). It further ensures there is no drift between different K8s cluster
environments spanning multiple classification levels. Containerization also streamlines the
update/accreditation process associated with the introduction and adoption of new DevSecOps
tooling.
Figure 5, illustrates a containerized software factory reference design. The software factory is
built on an underlying container orchestration layer powered by K8s in a host environment. For
clarity, the software factory produces DoD applications and application artifacts as a product.
Applications typically use different sets of hardened containers from the Iron Bank than the ones
used to create the software factory.
The software factory reference design captured in Figure 5 illustrates how cybersecurity is
weaved into the fabric of each factory pipeline. All of the tooling within the factory is based on
hardened containers pulled from Iron Bank.
Moving from left to right, as code is checked into a branch triggering the CI/CD pipeline
workflow and resulting automated build, SAST, DAST, and unit tests are executed, as the
orchestrator coordinates different tools to perform various tasks defined by the pipeline. If the
build is successful and a container image is defined, a container security scan is triggered.
Some tests and security tasks may require human involvement or consent before being
considered complete and passed. If all of these tests are successful, then the artifact is
deployed into the test environment. If all of the entrance rules of the next stage are met, the
orchestrator will transition the pipeline into that stage and perform the defined activities by
coordinating the tools via plugins. When all stages are complete, a significant number of
security activities have completed and the artifact is eligible for deployment into production.
Deployment into production should be fully automated, but may be gated by a human actually
pressing a button to trigger the deployment.
UNCLASSIFIED 19
UNCLASSIFIED
DoD programs may have already implemented a DevSecOps platform. Operating a custom
DevSecOps platform is an expensive endeavor because software factories require the same
level of continuous investment as a software application. There are financial benefits for
programs to plan a migration to a containerized software factory, reaping the benefits of
centrally managed and hardened containers that have been fully vetted. In situations where a
containerized software factory is impractical, or the factory requires extensive policy
customizations, the program should consult with DoD CIO and (if applicable) its own
DevSecOps program office to explore options and collaborate to create, sustain, and deliver
program-specific hardened containers to Iron Bank.
UNCLASSIFIED 20
UNCLASSIFIED
described in the opening paragraphs of this section, this reference design mandates a container
orchestration layer as illustrated in Figure 6.
It is the mission program’s responsibility (or that of a DoD Enterprise DevSecOps Managed
Service, such as Platform One), to build and maintain the K8s container orchestration layer
using COTS solutions. The container orchestration layer can be deployed on top of a DoD
authorized Cloud environment, a DoD data center, or on bare metal servers. The container
orchestration system components are subject to monitoring and security control under the DoD
policy in that hosting environment, such as the DoD Cloud Computing Security Requirements
Guide (SRG) and DISA’s Secure Cloud Computing Architecture (SCCA) for the Cloud
environment.
UNCLASSIFIED 21
UNCLASSIFIED
UNCLASSIFIED 22
UNCLASSIFIED
UNCLASSIFIED 23
UNCLASSIFIED
UNCLASSIFIED 24
UNCLASSIFIED
UNCLASSIFIED 25
UNCLASSIFIED
UNCLASSIFIED 26
UNCLASSIFIED
UNCLASSIFIED 27
UNCLASSIFIED
UNCLASSIFIED 28
UNCLASSIFIED
UNCLASSIFIED 29
UNCLASSIFIED
problem, a major consequence for all continuous deployment approaches. Lost transactions
and logged-off users are also something to take into consideration while performing this
approach.
UNCLASSIFIED 30
UNCLASSIFIED
Incidents will be forwarded to the mission program incident management system to facilitate
change request generation for incident resolution. The mission program incident management
should alert or notify the responsible personnel about the incidents. The change request may be
created to address the incident. These actions make the DevSecOps pipeline a full closed loop
from secure operations to planning.
UNCLASSIFIED 31