NIST 800-53 REV 5 • SYSTEM AND SERVICES ACQUISITION
SA-8(8) — Secure Evolvability
Implement the security design principle of secure evolvability in {{ insert: param, sa-08.08_odp }}.
CMMC Practice Mapping
No direct CMMC mapping
NIST 800-171 Mapping
No direct NIST 800-171 mapping
Related Controls
Supplemental Guidance
The principle of secure evolvability states that a system is developed to facilitate the maintenance of its security properties when there are changes to the system’s structure, interfaces, interconnections (i.e., system architecture), functionality, or configuration (i.e., security policy enforcement). Changes include a new, enhanced, or upgraded system capability; maintenance and sustainment activities; and reconfiguration. Although it is not possible to plan for every aspect of system evolution, system upgrades and changes can be anticipated by analyses of mission or business strategic direction, anticipated changes in the threat environment, and anticipated maintenance and sustainment needs. It is unrealistic to expect that complex systems remain secure in contexts not envisioned during development, whether such contexts are related to the operational environment or to usage. A system may be secure in some new contexts, but there is no guarantee that its emergent behavior will always be secure. It is easier to build trustworthiness into a system from the outset, and it follows that the sustainment of system trustworthiness requires planning for change as opposed to adapting in an ad hoc or non-methodical manner. The benefits of this principle include reduced vendor life cycle costs, reduced cost of ownership, improved system security, more effective management of security risk, and less risk uncertainty.
Practitioner Notes
Secure evolvability means designing systems so they can be updated, patched, and upgraded without introducing security gaps. Systems that are hard to update tend to fall behind on security.
Example 1: Design systems with modularity that allows individual components to be updated without a full system rebuild. Use containerized deployments (Docker, Kubernetes) so that updating a single service does not require downtime or re-testing the entire application stack.
Example 2: Maintain CI/CD pipelines with automated security tests that run on every update. This lets you deploy patches and updates quickly and confidently, knowing that each change is automatically checked for security regressions before it reaches production.