Nist CSWP 04232020
Nist CSWP 04232020
GOV
Donna Dodson
Applied Cybersecurity Division
Information Technology Laboratory
Murugiah Souppaya
Computer Security Division
Information Technology Laboratory
Karen Scarfone
Scarfone Cybersecurity
Clifton, VA
Abstract
Few software development life cycle (SDLC) models explicitly address software security in detail,
so secure software development practices usually need to be added to each SDLC model to ensure
the software being developed is well secured. This white paper recommends a core set of high-
level secure software development practices called a secure software development framework
(SSDF) to be integrated within each SDLC implementation. The paper facilitates communications
about secure software development practices among business owners, software developers, project
managers and leads, and cybersecurity professionals within an organization. Following these
practices should help software producers reduce the number of vulnerabilities in released software,
mitigate the potential impact of the exploitation of undetected or unaddressed vulnerabilities, and
address the root causes of vulnerabilities to prevent future recurrences. Also, because the
framework provides a common vocabulary for secure software development, software consumers
can use it to foster communications with suppliers in acquisition processes and other management
activities.
Keywords
secure software development; secure software development framework (SSDF); secure software
development practices; software acquisition; software development; software development life
cycle (SDLC); software security.
Disclaimer
Additional Information
For additional information on NIST’s Cybersecurity programs, projects and publications, visit the
Computer Security Resource Center. Information on other efforts at NIST and in the Information
Technology Laboratory (ITL) is also available.
All comments are subject to release under the Freedom of Information Act (FOIA).
ii
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
Acknowledgments
The authors wish to thank all of the individuals and organizations who provided comments on the
preliminary ideas and drafts, particularly BSA | The Software Alliance, the Information Security
and Privacy Advisory Board (ISPAB), and the members of the Software Assurance Forum for
Excellence in Code (SAFECode).
The authors also greatly appreciate the thoughtful public comments submitted by many
organizations and individuals, including the Administrative Offices of the U.S. Courts, The
Aerospace Corporation, BSA | The Software Alliance, Capitis Solutions, the Consortium for
Information & Software Quality (CISQ), HackerOne, Honeycomb Secure Systems, iNovex, Ishpi
Information Technologies, Juniper Networks, Medical Imaging & Technology Alliance (MITA),
Microsoft, Naval Sea Systems Command (NAVSEA), the National Institute of Standards and
Technology (NIST), Northrop Grumman, Office of the Undersecretary of Defense for Research
and Engineering, RedHat, SAFECode, and the Software Engineering Institute (SEI).
Audience
There are two primary audiences for this white paper. The first is software producers (e.g.,
commercial-off-the-shelf [COTS] product vendors, government-off-the-shelf [GOTS] software
developers, custom software developers) regardless of size, sector, or level of maturity. The second
is software consumers, both federal government agencies and other organizations. Readers of this
document are not expected to be experts in secure software development in order to understand it,
but such expertise is required to implement its recommended practices.
Personnel within the following Workforce Categories and Specialty Areas from the National
Initiative for Cybersecurity Education (NICE) Cybersecurity Workforce Framework [1] are most
likely to find this publication of interest:
Trademark Information
iii
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
1 Introduction
A software development life cycle (SDLC) 1 is a formal or informal methodology for designing,
creating, and maintaining software (which includes code built into hardware). There are many
models for SDLCs, including waterfall, spiral, agile, and development and operations (DevOps).
Few SDLC models explicitly address software security in detail, so secure software development
practices usually need to be added to and integrated within each SDLC model. Regardless of which
SDLC model is used to develop software, secure software development practices should be
integrated throughout it for three reasons: to reduce the number of vulnerabilities in released
software, to mitigate the potential impact of the exploitation of undetected or unaddressed
vulnerabilities, and to address the root causes of vulnerabilities to prevent future recurrences. Most
aspects of security can be addressed at multiple places within an SDLC, but in general, the earlier
in the SDLC that security is addressed, the less effort and cost is ultimately required to achieve the
same level of security. This principle, also known as shifting left, is critically important regardless
of the SDLC model.
There are many existing documents on secure software development practices, including those
listed in the References section. This white paper does not introduce new practices or define new
terminology; instead, it describes a subset of high-level practices based on established standards,
guidance, and secure software development practice documents. These practices, collectively
called a secure software development framework (SSDF), should be particularly helpful for the
target audiences to achieve secure software development objectives. Note that these practices are
limited to those that bear directly on secure software development (e.g., securing the development
infrastructure or pipeline itself is out of scope).
This white paper is intended to be a starting point for discussing the concept of an SSDF and
therefore does not provide a comprehensive view of SSDFs. Future work may expand on the
material in this white paper, potentially covering topics such as how an SSDF may apply to and
vary for different software development methodologies and how an organization can transition
from using just their current software development practices to also incorporating the practices
specified by the SSDF. It is likely that future work will primarily take the form of use cases so that
the insights will be more readily applicable to certain types of development environments.
This white paper expresses secure software development practices but does not prescribe exactly
how to implement them. The focus is on implementing the practices rather than on the tools,
techniques, and mechanisms used to do so. For example, one organization might automate a
particular step, while another might use manual processes instead. Advantages of specifying the
practices at a high level include the following:
1 Note that SDLC is also widely used for “system development life cycle.” All usage of “SDLC” in this white paper is
referencing software, not systems.
1
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
• Can be integrated into any existing software development workflow and automated
toolchain; should not negatively affect organizations that already have robust secure
software development practices in place
• Makes the practices broadly applicable, not specific to particular technologies, platforms,
programming languages, SDLC models, development environments, operating
environments, tools, etc.
• Can help an organization document its secure software development practices today and
define its future target practices as part of its continuous improvement process
• Can assist an organization currently using a classic software development model in
transitioning its secure software development practices for use with a modern software
development model (e.g., agile, DevOps)
• Can assist organizations that are procuring and using software to understand secure
software development practices employed by their suppliers
This white paper also provides a common language to describe fundamental secure software
development practices. This is similar to the approach of the Framework for Improving Critical
Infrastructure Cybersecurity, also known as the NIST Cybersecurity Framework [2]. 2 Expertise
in secure software development is not required to understand the practices. This helps facilitate
communications about secure software practices among both internal and external organizational
stakeholders, such as the following:
• Business owners, software developers, project managers and leads, and cybersecurity
professionals within an organization
• Software consumers, including both federal government agencies and other organizations,
that want to define required or desired characteristics for software in their acquisition
processes in order to have higher-quality software (particularly with fewer security
vulnerabilities) 3
• Software producers (e.g., commercial-off-the-shelf [COTS] product vendors, government-
off-the-shelf [GOTS] software developers, software developers working within or on
behalf of software consumer organizations, software testers/quality assurance personnel)
that want to integrate secure software development practices throughout their SDLCs,
express their secure software practices to their customers, or define requirements for their
suppliers
This white paper’s practices are not based on the assumption that all organizations have the same
security objectives and priorities; rather, the recommendations reflect that each software producer
may have unique security assumptions, and each software consumer may have unique security
needs and requirements. While the desire is for each software producer to follow all applicable
practices, the expectation is that the degree to which each practice is implemented and the formality
of the implementation will vary based on the producer’s security assumptions. The practices
2 The SSDF practices may help support the NIST Cybersecurity Framework Functions, Categories, and Subcategories, but the
SSDF practices do not map to them and are typically the responsibility of different parties. Developers can adopt SSDF
practices, and the outcomes of their work could help organizations with their operational security in support of the
Cybersecurity Framework.
3 Future work may provide more practical guidance for software consumers on how they can leverage the SSDF in specific use
cases.
2
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
provide flexibility for implementers, but they are also clear to avoid leaving too much open to
interpretation.
3
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
This white paper introduces a software development framework (SSDF) of fundamental, sound,
and secure software development practices based on established secure software development
practice documents. For the purposes of this white paper, the practices are organized into four
groups:
• Prepare the Organization (PO): Ensure that the organization’s people, processes, and
technology are prepared to perform secure software development at the organization level
and, in some cases, for each individual project.
• Protect the Software (PS): Protect all components of the software from tampering and
unauthorized access.
• Produce Well-Secured Software (PW): Produce well-secured software that has minimal
security vulnerabilities in its releases.
• Respond to Vulnerabilities (RV): Identify vulnerabilities in software releases and
respond appropriately to address those vulnerabilities and prevent similar vulnerabilities
from occurring in the future.
• Practice: A brief statement of the practice, along with a unique identifier and an
explanation of what the practice is and why it is beneficial.
• Task: An individual action (or actions) needed to accomplish a practice.
• Implementation Example: An example of a type of tool, process, or other method that
could be used to implement this practice; not intended to imply that any example or
combination of examples is required or that only the stated examples are feasible options.
• Reference: An established secure development practice document and its mappings to a
particular task.
Although most practices are relevant for any software development effort, some practices are not
always applicable. For example, if developing a particular piece of software does not involve using
a compiler, there would be no need to follow a practice on configuring the compiler to improve
executable security. Some practices are more fundamental, while others are more advanced and
may depend on certain fundamental practices already being in place. Also, practices are not all
equally important in any particular case. Risk should be considered when deciding which practices
to use and how much time and resources to devote to each practice. 4 Finally, the frequency for
performing recurring practices is not specified because the frequency appropriate for any particular
situation depends on risk and other factors.
The table that defines the practices is below. Remember that these practices are only a subset of
what an organization may need to do, with the practices focused on helping organizations achieve
secure software development objectives. The practices are not listed sequentially or in order of
4 Organizations seeking guidance on how to get started with secure software development can consult many publicly available
references, such as “SDL That Won’t Break the Bank” by Steve Lipner from SAFECode (https://i.blackhat.com/us-18/Thu-
August-9/us-18-Lipner-SDL-For-The-Rest-Of-Us.pdf) and “Simplified Implementation of the Microsoft SDL” by Microsoft
(https://www.microsoft.com/en-us/download/details.aspx?id=12379).
4
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
importance. The information in the table is space constrained, and much more information on each
practice can be found in the references (with the bolded text on each line being the identifier used
for that reference in the table):
5
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
6
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
7
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
8
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
9
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
Protect All Forms of Code PS.1.1: Store all forms of code, • Store all source code in a code BSA: IA.1, IA.2-2, SM.4-1
from Unauthorized Access including source code and repository, and restrict access to it based IDASOAR: Fact Sheet 25
and Tampering (PS.1): Help executable code, based on the on the nature of the code. For example, NISTCSF: PR.AC-4
prevent unauthorized changes principle of least privilege so that some code may be intended for public
to code, both inadvertent and only authorized personnel have OWASPASVS: 1.10, 10.3.2, 14.2
access, in which case its integrity and
intentional, which could the necessary forms of access. availability should be protected; other PCISSLRAP: 6.1
circumvent or negate the code may also need its confidentiality SCSIC: Vendor Software Delivery
intended security characteristics protected. Integrity Controls, Vendor Software
of the software. For code that is • Use version control features of the Development Integrity Controls
not intended to be publicly repository to track all changes made to
accessible, it helps prevent theft the code with accountability to the
of the software and may make it individual developer account.
more difficult or time-consuming
• Review and approve all changes made
for attackers to find
to the code.
vulnerabilities in the software.
• Use code signing to help protect the
integrity and provenance of executables.
• Use cryptography (e.g., cryptographic
hashes) to help protect the integrity of
files.
• Create and maintain a software bill of
materials (SBOM) for each software
package created.
Provide a Mechanism for PS.2.1: Make verification • Post cryptographic hashes for release BSA: SM.4.2, SM.4.3, SM.5.1, SM.6.1
Verifying Software Release information available to software files on a well-secured website. BSIMM10: SE2.4
Integrity (PS.2): Help software consumers. • Use an established certificate authority NISTCSF: PR.DS-6
consumers ensure that the for code signing so consumers can
software they acquire is PCISSLRAP: 6.2
confirm the validity of signatures.
legitimate and has not been SAMM15: OE3-B
• Periodically review the code signing SCSIC: Vendor Software Delivery
tampered with.
processes, including certificate renewal Integrity Controls
and protection.
SP800181: K0178
Archive and Protect Each PS.3.1: Securely archive a copy • Store all release files in a repository, and BSA: PD.1-6
Software Release (PS.3): Help of each release and all of its restrict access to them. IDASOAR: Fact Sheet 25
identify, analyze, and eliminate components (e.g., code, NISTCSF: PR.IP-4
vulnerabilities discovered in the package files, third-party
software after release. libraries, documentation), and PCISSLRAP: 5.2, 6.2
release integrity verification SCSIC: Vendor Software Delivery
information. Integrity Controls
SP80053: SA-15
10
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
Design Software to Meet PW.1.1: Use forms of risk • Train the development team (the security BSA: SC.1-3, SC.1-4
Security Requirements and modeling, such as threat champions in particular) or collaborate BSIMM10: AM1.3, AM1.5, AM2.1,
Mitigate Security Risks modeling, attack modeling, or with a threat modeling expert to create AM2.2, AM2.5, AM2.6, AM2.7
(PW.1): Identify and evaluate attack surface mapping, to help threat models and attack models and to IDASOAR: Fact Sheet 1
the applicable security assess the security risk for the analyze how to use a risk-based
requirements for the software’s software. ISO27034: 7.3.3
approach to address the risks and
design; determine what security implement mitigations. MSSDL: Practice 4
risks the software is likely to • Perform more rigorous assessments for NISTCSF: ID.RA-*
face during production operation high-risk areas, such as protecting OWASPASVS: 1.1.2, 1.2, 1.4, 1.6, 1.8,
and how those risks should be sensitive data and safeguarding 1.9, 1.11, 2, 3, 4, 6, 8, 9, 11, 12, 13
mitigated by the software’s identification, authentication, and access OWASPTEST: Phase 2.4
design; and justify any cases control, including credential PCISSLRAP: 3.2
where risk-based decisions management.
conclude that security SAMM15: DR1-A, TA1-A, TA1-B, TA3-B
• Review vulnerability reports and SCAGILE: Tasks Requiring the Help of
requirements should be relaxed
or waived. Addressing security statistics for previous software. Security Experts 3
requirements and risks during SCFPSSD: Threat Modeling
software design (secure by SCTTM: Entire guide
design) helps to make software
SP80053: SA-8, SA-15, SA-17
development more efficient.
SP800160: 3.3.4, 3.4.5
SP800181: T0038, T0062, T0236;
K0005, K0009, K0038, K0039, K0070,
K0080, K0119, K0147, K0149, K0151,
K0152, K0160, K0161, K0162, K0165,
K0297, K0310, K0344, K0362, K0487,
K0624; S0006, S0009, S0022, S0078,
S0171, S0229, S0248; A0092, A0093,
A107
11
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
12
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
13
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
PW.5.2: Have the developer • [See Review and/or Analyze Human- [See Review and/or Analyze Human-
review their own human- Readable Code to Identify Readable Code to Identify
readable code, analyze their Vulnerabilities and Verify Compliance Vulnerabilities and Verify Compliance
own human-readable code, with Security Requirements (PW.7)] with Security Requirements (PW.7)]
and/or test their own executable • [See Test Executable Code to Identify [See Test Executable Code to Identify
code to complement (not Vulnerabilities and Verify Compliance Vulnerabilities and Verify Compliance
replace) code review, analysis, with Security Requirements (PW.8)] with Security Requirements (PW.8)]
and/or testing performed by
others.
14
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
PW.6.2: Determine which • Enable compiler features that produce BSA: TC.1, TC.1-3, TC.1-4, TC.1-5
compiler and build tool features warnings for poorly secured code during OWASPASVS: 1.14.3, 1.14.4, 14.1
should be used and how each the compilation process. SCAGILE: Operational Security Task 8
should be configured, then • Implement the “clean build” concept,
implement the approved SCFPSSD: Use Current Compiler and
where all compiler warnings are treated Toolchain Versions and Secure Compiler
configuration for compilation and as errors and eliminated.
build tools, processes, etc. Options
• Enable compiler features that randomize SCSIC: Vendor Software Development
characteristics, such as memory location Integrity Controls
usage, that would otherwise be easily SP800181: K0039, K0070
predictable and thus exploitable.
• Conduct testing to ensure that the
features are working as expected and
not inadvertently causing any operational
issues or other problems.
• Verify that the approved configuration is
enabled for compilation and build tools,
processes, etc.
• Document information about the
compilation and build tool configuration
in a knowledge base that developers can
access and search.
15
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
16
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
17
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
18
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
19
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
20
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
21
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
References
[1] Newhouse W, Keith S, Scribner B, Witte G (2017) National Initiative for Cybersecurity
Education (NICE) Cybersecurity Workforce Framework. (National Institute of Standards
and Technology, Gaithersburg, MD), NIST Special Publication (SP) 800-181.
https://doi.org/10.6028/NIST.SP.800-181
[2] National Institute of Standards and Technology (2018), Framework for Improving
Critical Infrastructure Cybersecurity, Version 1.1. (National Institute of Standards and
Technology, Gaithersburg, MD). https://doi.org/10.6028/NIST.CSWP.04162018
[3] Migues S, Steven J, Ware M (2019) Building Security in Maturity Model (BSIMM)
Version 10. Available at https://www.bsimm.com/download/
[5] Hong Fong EK, Wheeler D, Henninger A (2016) State-of-the-Art Resources (SOAR) for
Software Vulnerability Detection, Test, and Evaluation 2016. (Institute for Defense
Analyses [IDA], Alexandria, VA), IDA Paper P-8005. Available at
https://www.ida.org/research-and-publications/publications/all/s/st/stateoftheart-
resources-soar-for-software-vulnerability-detection-test-and-evaluation-2016
[8] Open Web Application Security Project (2019) OWASP Application Security Verification
Standard 4.0. Available at https://github.com/OWASP/ASVS
[9] Open Web Application Security Project (2014) OWASP Testing Guide 4.0. Available at
https://www.owasp.org/images/1/19/OTGv4.pdf
[10] Payment Card Industry (PCI) Security Standards Council (2019) Secure Software
Lifecycle (Secure SLC) Requirements and Assessment Procedures Version 1.0. Available
at https://www.pcisecuritystandards.org/document_library?category=sware_sec#results
[11] Open Web Application Security Project (2017) Software Assurance Maturity Model
Version 1.5. Available at https://www.owasp.org/index.php/OWASP_SAMM_Project
[12] Software Assurance Forum for Excellence in Code (2012) Practical Security Stories and
Security Tasks for Agile Development Environments. Available at
http://www.safecode.org/publication/SAFECode_Agile_Dev_Security0712.pdf
22
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
[13] Software Assurance Forum for Excellence in Code (2018) Fundamental Practices for
Secure Software Development: Essential Elements of a Secure Development Lifecycle
Program, Third Edition. Available at https://safecode.org/wp-
content/uploads/2018/03/SAFECode_Fundamental_Practices_for_Secure_Software_Dev
elopment_March_2018.pdf
[14] Software Assurance Forum for Excellence in Code (2010) Software Integrity Controls:
An Assurance-Based Approach to Minimizing Risks in the Software Supply Chain.
Available at
http://www.safecode.org/publication/SAFECode_Software_Integrity_Controls0610.pdf
[15] Software Assurance Forum for Excellence in Code (2017) Managing Security Risks
Inherent in the Use of Third-Party Components. Available at
https://www.safecode.org/wp-
content/uploads/2017/05/SAFECode_TPC_Whitepaper.pdf
[16] Software Assurance Forum for Excellence in Code (2017) Tactical Threat Modeling.
Available at https://www.safecode.org/wp-
content/uploads/2017/05/SAFECode_TM_Whitepaper.pdf
[17] Joint Task Force Transformation Initiative (2013) Security and Privacy Controls for
Federal Information Systems and Organizations. (National Institute of Standards and
Technology, Gaithersburg, MD), NIST Special Publication (SP) 800-53, Revision 4,
Includes updates as of January 22, 2015. https://doi.org/10.6028/NIST.SP.800-53r4
[18] Ross R, McEvilley M, Oren J (2016) Systems Security Engineering: Considerations for a
Multidisciplinary Approach in the Engineering of Trustworthy Secure Systems.
(National Institute of Standards and Technology, Gaithersburg, MD), NIST Special
Publication (SP) 800-160, Volume 1, Includes updates as of March 21, 2018.
https://doi.org/10.6028/NIST.SP.800-160v1
23
NIST CYBERSECURITY WHITE PAPER MITIGATING THE RISK OF SOFTWARE
APRIL 23, 2020 VULNERABILITIES BY ADOPTING AN SSDF
Appendix A—Acronyms
24