Development Environment Security

A secure development environment requires a current and sufficiently complete inventory of the people, devices, software, services, credentials, and automated identities capable of accessing or influencing the environment. The development environment includes source-code repositories, developer workstations, build servers, CI/CD runners, compiler and linker toolchains, container and virtual machine images, package registries, artifact repositories, signing systems, test environments, integration laboratories, and release-staging systems. For space systems, these environments may produce or manage flight software images, firmware, FPGA bitstreams, software-defined radio waveforms, command and telemetry databases, configuration tables, ephemerides, calibration products, fault-management logic, and on-orbit update packages. Unmanaged assets, unauthorized access, compromised dependencies, altered toolchains, and untrusted build services are significant pathways through which adversaries may maliciously modify software or other mission artifacts during development and build activities. All personnel and assets touching the development environment must be inventoried and actively managed. MFA shall be enforced for human access, while non-human identities shall use managed workload identities, scoped credentials, protected secrets, and defined rotation or expiration period, with particular rigor applied to code repositories, where threat actors may attempt to inject malicious code into software under development without detection. Zero-trust access controls should govern repository access, with protected branch and tag policies shall restrict direct modification, prohibit unauthorized force pushes or deletion, require successful security checks, and require independent review before merging or releasing critical code. Effective development environment security also requires integrated change management, privilege management, comprehensive audit logging, and continuous in-depth monitoring across all components of the environment.

ID: CM0004
Tier: I
Ground CM 
Created: 2022/10/19
Last Modified: 2026/08/06

Pre-Operations Government

Acquisition strategies for space systems that involve software development or integration should require contractors to establish and maintain a documented, auditable secure development environment as a contract deliverable, not merely a process aspiration. Requirements should specify that all personnel and assets with access to the development environment be inventoried and that the inventory be made available for government review. Contract language should mandate MFA for all code repository access, zero-trust access control architectures where feasible, and protected branch configurations that prevent unauthorized code injection into production branches. Evaluation criteria should assess offerors' existing secure development practices, tooling, and their proposed monitoring and audit approaches. Verification should include review of access control configurations, audit log retention practices, and evidence of change management processes at design reviews and security assessments conducted throughout the development lifecycle.

Pre-Operations Developer/Supplier

Secure development environment controls must be established before development begins, as retroactive enforcement of access controls and audit requirements on an active development pipeline introduces both technical risk and team friction. Asset inventory tooling should be selected and deployed at environment standup, covering all hardware, virtual machines, containers, developer workstations, and third-party services that interact with the build pipeline. MFA should be enforced at the identity provider level so that individual tool configurations cannot inadvertently bypass the requirement. Repository branch protection rules, code review requirements, and merge approval workflows should be configured as baseline repository settings rather than voluntary conventions. Privilege management should follow least-privilege principles, with access rights scoped to role and reviewed periodically; service accounts and automation tokens warrant particular attention as they are frequently over-privileged. Audit logging should capture access events, configuration changes, and code commits across all repository and pipeline components, with log integrity protected to prevent tampering.