NIST 800-53 REV 5 • SYSTEM AND SERVICES ACQUISITION
SA-11(2) — Threat Modeling and Vulnerability Analyses
Require the developer of the system, system component, or system service to perform threat modeling and vulnerability analyses during development and the subsequent testing and evaluation of the system, component, or service that: Uses the following contextual information: {{ insert: param, sa-11.02_odp.01 }}; Employs the following tools and methods: {{ insert: param, sa-11.02_odp.02 }}; Conducts the modeling and analyses at the following level of rigor: {{ insert: param, sa-11.2_prm_3 }} ; and Produces evidence that meets the following acceptance criteria: {{ insert: param, sa-11.2_prm_4 }}.
Supplemental Guidance
Systems, system components, and system services may deviate significantly from the functional and design specifications created during the requirements and design stages of the system development life cycle. Therefore, updates to threat modeling and vulnerability analyses of those systems, system components, and system services during development and prior to delivery are critical to the effective operation of those systems, components, and services. Threat modeling and vulnerability analyses at this stage of the system development life cycle ensure that design and implementation changes have been accounted for and that vulnerabilities created because of those changes have been reviewed and mitigated.
Practitioner Notes
Threat modeling identifies potential threats during the design phase, and vulnerability analysis examines the system for exploitable weaknesses. Together, they help you find and fix problems before attackers do.
Example 1: Conduct threat modeling for every new system or major feature using the STRIDE methodology: identify Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege threats for each component. Document threats and mitigations in a threat model document.
Example 2: Use the Microsoft Threat Modeling Tool or OWASP Threat Dragon to create data flow diagrams and automatically identify threats at trust boundaries. For each identified threat, document whether it is mitigated by an existing control, needs a new control, or is accepted as a residual risk.