id: "SA-11(08)" title: "Dynamic Code Analysis" family: "SA" family_name: "System and Services Acquisition" sort_id: "sa-11.08" priority: "P1" implementation_level: "organization" parent: "SA-11" enhancement: True
Statement
Require the developer of the system, system component, or system service to employ dynamic code analysis tools to identify common flaws and document the results of the analysis.
Guidance
Dynamic code analysis provides runtime verification of software programs using tools capable of monitoring programs for memory corruption, user privilege issues, and other potential security problems. Dynamic code analysis employs runtime tools to ensure that security functionality performs in the way it was designed. A type of dynamic analysis, known as fuzz testing, induces program failures by deliberately introducing malformed or random data into software programs. Fuzz testing strategies are derived from the intended use of applications and the functional and design specifications for the applications. To understand the scope of dynamic code analysis and the assurance provided, organizations may also consider conducting code coverage analysis (i.e., checking the degree to which the code has been tested using metrics such as percent of subroutines tested or percent of program statements called during execution of the test suite) and/or concordance analysis (i.e., checking for words that are out of place in software code, such as non-English language words or derogatory terms).
Assessment Objective: the developer of the system, system component, or system service is required to employ dynamic code analysis tools to identify common flaws;
Assessment Objective: the developer of the system, system component, or system service is required to document the results of the analysis.
System and services acquisition policy
procedures addressing system developer security testing
procedures addressing flaw remediation
solicitation documentation
acquisition documentation
service level agreements
acquisition contracts for the system, system component, or system service
system developer security test and evaluation plans
security test and evaluation results
security flaw and remediation tracking reports
system security plan
other relevant documents or records
Organizational personnel with system and service acquisition responsibilities
organizational personnel with information security responsibilities
organizational personnel with developer security testing responsibilities
organizational personnel with configuration management responsibilities
system developers
Organizational processes for monitoring developer security testing and evaluation
mechanisms supporting and/or implementing the monitoring of developer security testing and evaluation