NIST SP 800-53 Rev. 5 · SA-10

Developer Configuration Management

US National Institute of Standards and Technology (NIST) · cited in 14 of our lessons

Explanation

What it asks for. Developers of systems, components or services must perform configuration management during design, development, implementation, operation and disposal, document and control changes, implement only approved changes, document approved changes and their security and privacy impacts, and track flaws and their resolution.

In practice. For in-house and outsourced development this means version control for all code and configuration, protected branches with reviewed merges, controlled release processes and an issue tracker for security defects. Auditors look for repository settings, merge approval records, release logs and defect tracking. Contracts with external developers should require equivalent practices.

Common gaps. Direct commits to main branches, shared repository credentials and pipeline secrets with broad access are common. Security flaws are tracked inconsistently compared with functional bugs.

The official text
Require the developer of the system, system component, or system service to: a. Perform configuration management during system, component, or service [Selection: design; development; implementation; operation; disposal]; b. Document, manage, and control the integrity of changes to [Assignment: organization-defined configuration items]; c. Implement only organization-approved changes to the system, component, or service; d. Document approved changes to the system, component, or service and the potential security and privacy impacts of such changes; and e. Track security flaws and flaw resolution within the system, component, or service and report findings to [Assignment: organization-defined personnel]. Discussion: Organizations consider the quality and completeness of configuration management activities conducted by developers as direct evidence of applying effective security controls. Controls include protecting the master copies of material used to generate security-relevant portions of the system hardware, software, and firmware from unauthorized modification or destruction. Maintaining the integrity of changes to the system, system component, or system service requires strict configuration control throughout the system development life cycle to track authorized changes and prevent unauthorized changes. The configuration items that are placed under configuration management include the formal model; the functional, high-level, and low-level design specifications; other design data; implementation documentation; source code and hardware schematics; the current running version of the object code; tools for comparing new versions of security-relevant hardware descriptions and source code with previous versions; and test fixtures and documentation. Depending on the mission and business needs of organizations and the nature of the contractual relationships in place, developers may provide configuration management support during the operations and maintenance stage of the system development life cycle.

From NIST SP 800-53 Rev. 5, a work of the US government in the public domain.

Lessons that cite it

Real incidents where this item mattered: the latest 12 of 14.