Bsa Framework Secure Software Update 2020
Bsa Framework Secure Software Update 2020
www.bsa.org
CONTENTS
I. Executive Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
II. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Framework Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Framework Purpose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Guiding Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
IV. References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
I. Executive Summary
Developments over the last several years have resulted in the dramatic expansion of software-
powered capabilities from traditional computers and industrial control systems into diverse
personal devices, widely deployed sensors, smart appliances, connected vehicles, robotic systems,
and beyond. These innovations are driving the creation of a new, connected digital economy
and can yield tremendous economic and social benefits. Yet, because these technologies also
have the potential to create economic, legal, and even physical risk, software developers must
have the joint goals of building software securely and ensuring that it can be securely maintained
throughout its lifecycle.
Software development organizations, their customers, (3) help software developers, vendors, and customers
and policymakers are increasingly seeking ways of communicate internally and externally about software
assessing and encouraging security across the software security; and
lifecycle. While standards and guidelines exist to aid
and inform developers in achieving these goals, there (4) help software customers evaluable and compare the
is no consolidated framework that brings together best security of individual software products and services.
practices in a manner that can be effectively measured, The Framework is intended to focus on software products
regardless of the development environment or the (including Software-as-a-Service) by considering both the
purpose of the software. BSA | The Software Alliance has process by which a software development organization
developed The BSA Framework for Secure Software (the develops and manages software products and the
“Framework”) to fill that gap. security capabilities of those products. It is intended
Specifically, the Framework is intended to be used to: to complement guidance for overall organizational
risk management processes. To the greatest extent
(1) help software development organizations describe possible, it seeks alignment with recognized international
the current state and target state of software security standards and to remain flexible, adaptable, outcome-
in individual software security products and services; focused, and risk-based.
(2) help software development organizations identify The Framework is intended to be a living document,
opportunities for improvement in development and updated and improved based on ongoing feedback from
lifecycle management processes, and assess progress BSA’s members and other relevant stakeholders.1
toward target states;
1
Version 1.0 of the Framework was originally released April 29, 2019.
www.bsa.org 1
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
II. Introduction
Modern society is built on software. Software powers personal technologies, critical infrastructure,
scientific research, and industries across every sector. It drives emerging innovations such as
the Internet of Things (IoT), blockchain, and artificial intelligence (AI). As software becomes
increasingly central to our lives, making it secure and reliable becomes ever more critical in the
face of an evolving and expansive cybersecurity threat landscape.
From within the software community, best practices security that is flexible, adaptable, outcome-focused, risk-
are emerging that help software developers address based, cost-effective, and repeatable. Eschewing a one-
important aspects of software security, including size-fits-all solution, this voluntary framework will provide
security-by-design principles, secure development a common organization and structure to capture multiple
lifecycle processes, and internationally recognized approaches to software security by identifying standards,
standards for key security elements such as identity guidelines, and practices that can help software
management, encryption, and secure coding. Although development organizations achieve desired security
attention to each specific security consideration can outcomes while accounting for the wide spectrum of
achieve marginal security gains, effective security intended uses, risk profiles, and technological solutions
requires a comprehensive and risk-informed approach among software products and services.
that combines individual considerations into a holistic,
lifecycle-long framework. And a comprehensive approach Recent technological developments illustrate the
must be tailored to address the nuanced, diverse, and increasing ubiquity of software and the need for a
evolving challenges associated with different types of flexible, comprehensive software security framework.
software and connected devices, from the “bare metal” Software-powered capabilities continue to expand into
to the most advanced. every corner of personal lives and business activities,
including diverse personal devices, widespread sensors,
Building on best practices pioneered by many of its smart appliances, diverse business applications,
members, BSA | The Software Alliance has developed a connected vehicles, and robots. As these capabilities
software security framework to bring consistency to these evolve, software development is growing increasingly
complex challenges. The BSA Framework for Secure diverse and complex.
Software is intended to establish an approach to software
The BSA Framework for Secure Software is intended to establish an approach to software security
that is flexible, adaptable, outcome-focused, risk-based, cost-effective, and repeatable.
Software is at the core of the Many software applications are AI also brings new considerations
IoT, and secure software must now being operated as services to software development, along
be at the core of IoT security. from a cloud-based architecture in with new security challenges.
IoT devices have different which code is segmented across AI software often integrates
forms, functions, and levels of multiple container environments, multiple software components,
complexity. At the low end, updated constantly and in real- frameworks, and platforms,
some “bare metal” sensors lack time, and accessed via Internet potentially introducing new risk
even a basic operating system connections rather than installed with each additional element.
and contain only software code locally. Some SaaS applications Moreover, AI generally must
sufficient to perform one or two are updated dozens or even ingest and process enormous
simple functions. More complex hundreds of times each day, with data sets, introducing risk
devices may include operating little or no disruption to the user through the exposure of the data
systems, AI algorithms, or the experience. How can we craft a itself. Combined, these risks
hundreds of millions of lines of software security framework that demonstrate the importance of
code needed to operate many of accounts for the new technical software security for AI products.
today’s connected vehicles. How approaches to software security Yet, at the same time, AI products
can we achieve confidence in that SaaS development may are creating promising new
the security of software products demand, while at the same approaches to integrating security
across this spectrum? time driving secure outcomes in into software development.
traditional software development? How can we address the risks —
and harness the benefits — for
security in AI software?
These diverse and constantly evolving software relevant framework for software security. By adopting
development techniques and products demonstrate a flexible, outcome-focused approach rooted in
the need for an outcome-focused approach that can industry best practices and international standards, the
consistently ensure security across a broad array of Framework is structured to be applicable to the entire
technical considerations. Additionally, static, inflexible spectrum of (1) software development organizations and
approaches will either disrupt innovation or fail to keep vendors, whether individual entrepreneurs, large-scale,
pace with evolving threats because software is constantly multi-national businesses, the open source community,
changing. or others; (2) software development methods, from
traditional to DevOps; and (3) software products, from
The intent of the Framework is to provide the entire simple IoT sensors to complex AI algorithms.
software industry with a comprehensive, adaptable, and
www.bsa.org 3
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
Defining “Software Security” from vulnerabilities, either intentionally designed into the
software or accidentally inserted at any time during its
Software security encompasses what a software lifecycle, and that the software functions in the intended
development organization does to protect a software manner.” It has also been defined3 as “the development
product and the associated critical data from and implementation of methods and processes for
vulnerabilities, internal and external threats, critical ensuring that software functions as intended and is free
errors, or misconfigurations that can affect performance of design defects and implementation flaws.” While
or expose data. It comprises both organizational such definitions may suggest that the level of security
processes and product capabilities. associated with a given software product could be
ascertained simply by measuring the presence and extent
Organizational processes include governance
of defects or vulnerabilities in its code base, software
structures, strategies, guidance, and clearly defined
security is rarely that straightforward.
procedures that guide the development of software
in a manner that identifies and incorporates security One challenge is that — at least currently — it is
objectives throughout a product’s lifecycle, protects impractical to expect all software code to be entirely free
the integrity of the development environment, of vulnerabilities. Indeed, according to some estimates,
applies resources to incident and vulnerability software products currently average roughly 1–5 defects
management, and manages the supply chain that per 1,000 lines of code, with many complex software
supports the software development project. products incorporating tens or hundreds of millions of
lines of code in total.4 While defect-free code should
Product security capabilities are technical aspects
always be a developer’s goal, it is not a realistic industry
of specific software products that are useful in
standard. Instead, the goal should be the widespread
enabling the products to address common security
adoption of practices and processes that minimize code
challenges, such as protecting data, preventing
defects, and particularly known software vulnerabilities,
unauthorized access or use, tracking incidents and
and to maintain a proactive security posture oriented
vulnerabilities, and managing unforeseen events.
to identifying and addressing problems before they
Both organizational processes and product security can be exploited. In fact, researchers have documented
capabilities are vital elements of software security. substantial improvements in average software defect
density among leading software developers through
Software security is often discussed in relation to the implementation of secure development lifecycle
software assurance. Software assurance has been approaches and other software security best practices.
defined2 as the “level of confidence that software is free
2
https://www.hsdl.org/?view&did=7447
3
https://safecode.org/wp-content/uploads/2018/03/SAFECode_Fundamental_Practices_for_Secure_Software_Development_March_2018.pdf
4
https://resources.sei.cmu.edu/asset_files/Webinar/2014_018_100_295971.pdf
A second challenge is that any approach to software Other models exist for informing or assessing
security that is distilled into a test or series of tests at a software security. Some of these models, including
single point in time is inherently flawed. As developers SAFECode’s Fundamental Practices for Secure Software
increasingly adopt iterative approaches to development, Development, the Software Assurance Maturity Model,
incorporate third-party components, and face evolving and various secure software development lifecycle
security threats, a software product may change methodologies, serve as important starting points
continually and substantially over its lifecycle. Testing for the Framework described in this document. They
methodologies undergo evolution as well; for example, provide detailed guidance, informed by broad industry
the set of known software vulnerabilities assessed best practices, on a wide range of considerations
by certain testing methodologies may be frequently organizations should address to maximize their ability
updated to include newly discovered flaws. Security to produce secure software in a verifiable, repeatable,
is a persistent requirement; while software testing is a transparent manner. However, in many cases, these
critical element of secure development, it is not a stand- guidance documents lack specificity and are primarily
in for a sustained, security-focused approach to lifecycle targeted toward organizations, focusing almost
management. exclusively on organizational approaches, processes,
SDL GOVERNANCE
The foundation for secure software development is the creation of a culture of security, and an organization’s
governance practices are a key contributor to creating such a culture. Because software development
organizations are diverse with regard to size, organization, and methods, different governance practices will
be more or less effective for different organizations. For example, for larger organizations, measures like
identifying a security champion or separating security teams from coding teams may make sense, whereas
smaller organizations may be more efficient by collocating security and development roles. Focusing on
security outcomes associated with specific software products and services, the Framework does not attempt
to establish measurable diagnostic statements to holistically evaluate an organization’s security governance.
Nonetheless, implicit in the Framework is a robust commitment to coherent, committed, effective governance
practices and processes to guide software development.
Governance includes:
» Building commitment across an organization’s leadership to software security and secure development.
» Establishing clear expectations and standards for integrating security into the software development
lifecycle and establishing processes for achieving them.
» Establishing clear policies, as well as processes for elevating and accepting exceptions to those policies
based on risk analysis.
» Ensuring every individual involved in software development and software security is aware of his or her role
and is prepared to perform it.
» Identifying metrics to enable consistent evaluation and adjustment of secure development lifecycle
processes to improve outcomes and integrate lessons learned.
www.bsa.org 5
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
Through an examination of risk, software development organizations will apply the Diagnostic
Statements appropriate for their environment and product, and identify cases in which Diagnostic
Statements are inapplicable or irrelevant.
“Vulnerability Notification and Patching” Categories are Informative References are resources that identify and
conceptually closely related, as successful vulnerability describe best practices, guidelines, or further information
management necessarily involves vulnerability for the implementation of an associated Diagnostic
notification and patching. However, the Categories Statement. They may describe methods for achieving
seek to distill best practices into distinct subjects or the described outcome, provide technical specifications
disciplines; in this example, “Vulnerability Management” or related best practices, and offer further clarity and
provides guidance for organizational processes to specificity on the security benefits of the described
identify, prioritize, and mitigate vulnerabilities, whereas outcome. Informative References include internationally
“Vulnerability Notification and Patching” identifies best recognized technical standards, best practice manuals
practices for developing and issuing patches, mitigations, and guidelines, and references to Common Weakness
and notifications to customers. Categories within the Enumerators (CWEs). A current list of CWEs is maintained
same Function may involve different communities of at https://cwe.mitre.org/. In some cases, multiple
practices within the software development organization; standards may offer alternative approaches to achieve
for example, “Secure Coding” practices will may be most similar outcomes. Similarly, CWE references are drawn
relevant to a different part of a software development from a community-developed taxonomy of software
team than those members responsible for “Supply Chain weaknesses that serves as a common language for
Risk Management” practices. describing weaknesses and provides a baseline for
identification, mitigation, and prevention of such
Subcategories further divide a Category into distinct, weaknesses. Numerous CWE references may be related
unitary concepts that express identified software security in some form to a specific Diagnostic Statement; the
best practices. Framework attempts to identify the most relevant
Diagnostic Statements identify specific, verifiable weaknesses resulting when the Diagnostic Statement
outcomes. They provide a set of results that help is incompletely or improperly addressed. In all cases,
support achievement of the outcomes in each Category. Informative References are illustrative and are not
Diagnostic Statements are not intended as an exhaustive intended to be either exhaustive or prescriptive.
list of best practices, but as a set of desired outcomes The Framework’s Subcategories and Diagnostic
that are relevant to enhancing security across as many Statements are often focused on the individuals and
classes and types of software as possible. The Framework team that actually develop software. In practice, entities
does not intend that every Diagnostic Statement will developing software are complex organizations that
apply to every development environment or software often include separate software development teams
product. Instead, through an examination of risk, that interact with security teams, corporate governance
software development organizations will apply the structures, and external requirements, each of which play
Diagnostic Statements appropriate for their environment key roles in driving the security outcomes the Framework
and product, and identify cases in which Diagnostic describes. By “software development organizations,” the
Statements are inapplicable or irrelevant. This approach Framework intends to address all parts of an organization
is consistent with other risk-based frameworks that seek involved in the design, development, deployment,
to encourage and guide secure activities while avoiding and maintenance of software, recognizing that each
becoming simple checklists. organization must determine how it can assign roles
Implementation Notes provide additional information, and responsibilities to most effectively achieve desired
where necessary, such as examples of how organizations security outcomes.
may achieve security outcomes described in the There are numerous approaches to software development,
Diagnostic Statements, interpretations of how Diagnostic with Agile and Waterfall being two of the most common.
Statements may apply in different development The Framework does not recommend any specific
environments, and guidance on aligning implementation approach and encourages software development
with risk. organizations to consider the Categories, Subcategories,
and Diagnostic Statements in the context of whatever
method they are using.
www.bsa.org 7
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
Framework Purpose
1 2 3 4
Help software Help software Help software Help software
development development developers, vendors, customers evaluable
organizations organizations identify and customers and compare the
describe the current opportunities for communicate security of individual
state and target state improvement in internally and software products
of software security development and externally about and services.
in individual software lifecycle management software security.
security products processes, and assess
and services. progress toward
target states.
Many elements of the Framework are intentionally structured to provide software development
organizations with the flexibility to tailor their approaches based on the risk profile of the product.
Risk informs the Framework throughout its three software security must be flexible enough to enable
Functions and is intended to guide software software developers to develop new approaches to new
development organizations and vendors to address challenges, and to deliver innovative products to the
security considerations in operational processes and customers who depend on them.
product security capabilities according to the level of
risk associated with the product. The Framework approaches this vital principle by
ensuring that it specifies outcomes that are neutral with
For example, consider the first Subcategory articulated regard to coding language, development process, and
in the Framework which reads: “Threat modeling and risk technical approach. Similarly, the Framework recognizes
analysis are employed during software design to identify that some Diagnostic Statements may be more important
threats and potential mitigations.” This risk analysis is to some organizations than others. For example,
designed to guide software development organizations companies securing SaaS products will find statements
toward adopting the security controls most appropriate relating to securing containers, such as TC.1-6, more
to the type and uses of their products. Understanding applicable to their software development environment
of the risk subsequently informs the development of a than businesses providing mostly out-of-the-box
plan to address security considerations in the software’s software. Likewise, organizations developing out-of-the-
development and deployment. box software may find Diagnostic Statements relating
to anti-tamper techniques, like SM.4-1, more useful.
The Framework is structured in a way such that each
Outcome-Focused.
Diagnostic Statement is intended to maintain flexibility
The Framework communicates best practices in their while remaining applicable to software of all types,
most detailed form through Diagnostic Statements languages, and development processes.
that identify specific, measurable outcomes. These
statements are intended to be neutral with respect to Many elements of the Framework are intentionally
coding language, development process, and technical structured to provide software development
approach. Rather than dictating specific security organizations with the flexibility to tailor their approaches
techniques, the Framework focuses on the outcomes based on the risk profile of the product. For example, the
software development organizations and vendors ideally “Support for Identity Management and Authentication
should achieve to enhance the security profile of the (SI)” category recognizes that not all software products
software. will require an identity management and authentication
mechanism but includes clear guidelines for those
that do. It directs that software “avoids hard-coded
Flexible. passwords” and “avoids authentication mechanisms
Software development as a discipline is constantly that allow insufficiently complex passwords, insufficient
evolving based on innovations in efficiency and password aging management, unlimited log-on
management, emerging customer demands, new attempts, commonly used password topologies, or
approaches to coding languages or software unverified password changes.” For some software
development tools, and technical breakthroughs. products, these guidelines will mean adopting strong
Moreover, cybersecurity requires constant innovation
to keep pace with changing threats. Any approach to
www.bsa.org 9
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
EXAMPLE
Hackers may use SQL injection — a code injection technique in which malicious SQL statements are inserted
into an entry field for execution — to compromise the confidentiality, integrity, and/or availability of data
used in a software program. SQL injection attacks are particularly common in database-driven applications
and are among the common types of malicious cyber activity.
Concatenation of untrusted data with string constants (string concatenation, or the combining of multiple
strings of untrusted data into a single string) is a common and dangerous weakness that SQL injection
attacks can take advantage of. To mitigate the risk of SQL injection attacks, the Framework includes the
following diagnostic statements in the Secure Coding category of the Secure Development function:
By focusing on secure outcomes, the Framework avoids mandating specific technical approaches to
structuring SQL statements, such as prescribing certain stored procedures or whitelisting techniques. SQL
statements can be created and parameterized using many different programming languages, libraries, and
frameworks; the Framework establishes clear security outcomes that are targeted and meaningful but retains
the flexibility to enable its achievement through each of these differing languages, libraries, and frameworks.
In each case, the outcome specified in the diagnostic statement is linked to references to informative
material that provides further detail on achieving the outcome, including references specifying techniques to
prevent SQL injection attacks.
Not all software products are at risk of SQL injection attacks, and not all software products utilize dynamic
SQL statements. The security outcomes specified by the Framework are met equally by the software product
that develops properly parameterized SQL statements as by the software product that excludes dynamic
SQL statements altogether. The appropriate approach to meeting the specified security outcome will be
based on a risk-informed software design and security architecture.
EXAMPLE
To ensure that users are properly informed of relevant security information associated with software updates,
the Vulnerability Notification and Patching category of the Secure Lifecyle function includes the following
diagnostic statement:
As important as such notifications can be when users are asked to install updates that could potentially
have broader impacts to their own devices or systems, it may not be feasible for notifications to accompany
every software update in some contexts. For example, many SaaS vendors operate in a continuous delivery
environment, meaning software is produced in short cycles of testing, staging, pre-production, and
production. Because SaaS is a web-based model in which software is maintained on remote servers rather
than installed on user devices, SaaS software updates are also generally not installed on user devices.
Continuous integration and continuous delivery methodologies make it possible to quickly deploy new
versions of, or security updates to, a SaaS application without customer disruptions or losses of service.
Sophisticated SaaS vendors may deploy dozens, or even hundreds, of software updates to an application
each day.
By focusing on information relevant to significant security issues, the Framework avoids onerous notification
requirements, which may be impossible to meet in a SaaS environment, while ensuring customers are well-
informed regarding the security of their products and services.
and standards in the software industry. For that reason, for defining and implementing effective approaches
approaches to software security that mandate specific to cybersecurity and facilitate common approaches
technical measures or that endeavor to subject software to common challenges, thus enabling collaboration
products to batteries of tests that assess security at and interoperability. Industry leaders have developed
a single point in time will fail to keep pace with the a range of international standards and best practices
constant evolution of software. Instead, this Framework for secure-by-design software development. To ensure
provides a tool to assess the characteristics of software international interoperability and express consensus best
security throughout a software product’s lifecycle, practices, the Framework seeks to align, to the greatest
using outcome-focused Diagnostic Statements that are extent possible, with internationally recognized technical
adaptable to diverse and evolving technical approaches. standards wherever they exist. Currently, two notable
examples relevant to secure software development
are the ISO/IEC 27034 and ISO/IEC 62443 series of
Aligned with Internationally Recognized
standards, which sets out guidance on “integrating
Standards. security seamlessly throughout the lifecycle” of software
Internationally recognized standards provide widely applications.
vetted, consensus-based information and guidance
www.bsa.org 11
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
Using the Framework as a cybersecurity risk management tool, an organization can establish a
holistic secure development lifecycle that identifies likely risks, enables conscientious decisions
about risk mitigation and risk tolerance, improves software quality, and prepares the organization
to address emerging security considerations throughout the software’s lifecycle.
Implementing the Framework for the Framework into internal training and awareness
modules. In addition, the Framework may provide
Secure Software a useful tool for educating executives about how
The Framework is designed to support the systematic security is addressed in the development process,
processes used by software development organizations how resources are aligned to security considerations,
to identify, assess, and minimize cybersecurity risk and how individual products incorporate
throughout the lifecycle of software products. Using cybersecurity.
the Framework as a cybersecurity risk management
» Tracking and assessment. Software development
tool, an organization can establish a holistic secure
organizations may wish to use the Framework as a
development lifecycle that identifies likely risks, enables
tool to track a product as it is developed or to assess
conscientious decisions about risk mitigation and risk
its security profile according to concrete metrics.
tolerance, improves software quality, and prepares the
For example, software development lifecycles often
organization to address emerging security considerations
establish release gates that require a project to meet
throughout the software’s lifecycle. Specifically, software
an established measure or obtain a waiver before
development organizations may find the Framework
advancing; elements of the Framework may be
to be a useful tool for the following purposes, among
incorporated into release gate criteria. Additionally,
others:
the Framework may help an organization identify
» Development process guidance. A software metrics that define and measure software security for
development organization should publish definitive its products.
direction on the policies and processes that
» Vendor relations. A software development
development of a new software product is expected
organization should implement measures to ensure
to follow in order to ensure that all involved
the integrity of its supply chain. Organizations may
stakeholders understand roles, responsibilities,
choose to use the Framework to guide purchasing
and expectations. Organizations may choose
decisions and/or the development of vendor contracts
to amend software development processes and
that ensure third-party software components will not
process guidance to ensure the elements of the
jeopardize the organization’s security objectives and
Framework are accounted for throughout the product
compliance requirements.
development lifecycle.
» Public security narrative. Software development
» Training and awareness. A software development
organizations may wish to communicate information
organization may consider developing internal
about a product’s security features and its approach to
training and education programs to build a culture of
mitigating cybersecurity risk to a public audience. The
security and to ensure that stakeholders are trained
Framework may be useful in enabling organizations
in responsibilities and methodologies appropriate
to build a narrative about their secure development
to their roles in the software development lifecycle.
lifecycle and product security.
Organizations may choose to incorporate elements of
Conclusion
The BSA Framework for Secure Software provides
software development organizations, software vendors,
and software customers with a risk-based, adaptable
tool to evaluate security outcomes in individual software
products and services. Its focus on products and
services, instead of the development lifecycles of the
organizations producing them, is unique: the Framework
allows stakeholders to evaluate not just whether
security is integrated into software development, but
also whether software effectively implements essential
security capabilities. Its risk-informed, framework-based
model enables stakeholders to tailor their evaluations to
the specific functions, risks, and operating environments
of the individual software products and services being
evaluated. Stakeholders can apply the Diagnostic
Statements included in the Framework where appropriate
for their environment and product. Through thoughtful
and detailed application of the Framework, stakeholders
can gain trust that the software they develop, sell,
purchase, or use will enhance the cybersecurity of their
organization and the broader digital ecosystem.
www.bsa.org 13
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE DEVELOPMENT
Secure Coding SC.1. Threat SC.1-1. Software Threat modeling attempts ISO/IEC 27034; OWASP
(SC) modeling and development to identify and prioritize the Application Security
risk analysis are organizations document potential threats against a Verification Standard;
employed during likely threats. software product or component SAFECode “Fundamental
software design in order to guide software Practices”; SAFECode
to identify threats development decisions that “Tactical Threat Modeling”;
and potential defend against identified threats. SAMM; BSIMM; CWSS;
mitigations. Some software developers work CAPEC; OWASP Threat
in accordance with “zero trust” Modeling Cheat Sheet;
principles, which assume a NIST SSDF PO.1.1, PW.1.1
pervasively hostile environment.
Yet, even with zero trust
approaches, threat modeling is
important for identifying sensitive
data and prioritizing threats for
mitigation. Developers should
consider the risk profile of the
product when determining the
level of detail to provide in such
documentation.
www.bsa.org 15
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE DEVELOPMENT
Secure Coding SC.3. The SC.3-1. Software avoids, Software should avoid known NIST NVD; CWE/SANS
(SC) software is secure or includes documented vulnerabilities to the greatest Top 25 Most Dangerous
(continued) against known mitigations for, known extent possible. In some Software Errors; OWASP
vulnerabilities, security vulnerabilities in instances, there may be reasons Top 10; CWE-1006; CWE-
unsafe functions, included functions and for software to incorporate 242; NIST SSDF PW.3.2,
and unsafe libraries. libraries. functions or libraries known PW.5.1
to include vulnerabilities;
such functions or libraries
should only be incorporated
when developers include
documented mitigations that
ensure the vulnerabilities are not
exploitable.
SECURE DEVELOPMENT
Testing and TV.1. Analysis TV.1-1. Attack surface is OWASP Attack Surface
Verification and validation identified and mapped. Analysis Cheat Sheet,
(TV) of the software SAMM; NIST SSDF PW.1.1
attack surface is
conducted.
TV.2. Code review TV.2-1. Code review To the extent possible, SAFECode “Fundamental
using manual and/ release gates are automated tools should be Practices”; BSIMM; SAMM;
or automated tools established and implemented and integrated OWASP Testing Guide;
is conducted. enforced to guide with the software development OWASP Code Review
software development. process to ensure rigor and Guide; NIST SSDF PO.4.1,
consistency. Manual tools can PW.3.2, PW.7.2
be substituted in cases where
automation isn’t feasible.
www.bsa.org 17
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE DEVELOPMENT
Process and PD.1. Secure PD.1-1. Security Developers should consider the SAMM; Microsoft SDL;
Documentation development requirements for the risk profile of the product when NIST SSDF PO.1.1, PW.8.2
(PD) processes are software are gathered determining the level of detail to
documented from stakeholders and provide in such documentation.
throughout software documented.
development.
SECURE DEVELOPMENT
www.bsa.org 19
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE DEVELOPMENT
Supply Chain SM.3. Supply chain SM.3-1. Supply chain NIST IR 7622
(SM) data — including data is protected at rest.
(continued) information about
software elements,
design, testing,
evaluation, threat
assessments,
delivery processes,
and agreements
language — is
protected against
unauthorized
disclosure, access,
modification,
dissemination,
destruction, and
use.
SM.5. The software SM.5-1. The software Descriptive information should ISO/IEC 19770-2; SPDX
is identifiable includes descriptive generally include the software’s Version 2.1; NIST IR 8060;
through clear, information about the name, creator, version, licensing NIST SSDF PS.2.1
discoverable software’s identity. details and, where possible,
information information about the software’s
communicated dependencies.
in a standardized
format.
SECURE DEVELOPMENT
Supply Chain SM.6. Deployment SM.6-1. The software NIST IR 7622; NIST SSDF
(SM) procedures ensure includes mechanisms to PS.2.1
(continued) that the proper reduce the likelihood
usages of software that it is installed on
are established. unauthorized hardware
or by unauthorized users,
such as validating code-
signing, authentication,
or credentialing.
Development DE.1. The software DE.1-1. Security NIST CSF; ISO 27001; SSAE
Environment development controls and best
(DE) environment, practices are applied
including to the development
information environment based on
systems and data, risk-based frameworks.
is protected against
security threats.
DE.1-2. Internal
code repositories are
protected through
access controls,
monitoring, verification
procedures, and other
best practices.
www.bsa.org 21
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE DEVELOPMENT
Identity IA.1. Throughout IA.1-1. Strong Strong authentication is NCSC: NIST SP 800-53;
and Access the supply chain authentication methods generally understood to describe NIST IR 7622; NIST SSDF
Management and product are required for access mechanisms that require PS.1.1
(IA) lifecycle, to the development authentication factors from at
the software environment. least two of three categories
development (knowledge, or something
environment a user knows; ownership, or
uniquely identifies something a user has; and
and authenticates inherence, or something a user
users. is), but may also utilize contextual
information (e.g., geolocation
or device information) and
other factors to confirm a user’s
identity. Diagnostic Statements in
the IA Category address identity
and access management in the
development environment. See
the SI and AA Categories for
information regarding security
capabilities in software products
themselves.
SECURE DEVELOPMENT
www.bsa.org 23
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE CAPABILITIES
Support SI.1. The software SI.1-1. The software ISO/IEC 9798; OWASP
for Identity avoids architectural avoids hard-coded Authentication Cheat
Management weaknesses that passwords. Sheet; CWE-259; CWE-798;
and create risk of NIST SSDF PW.5.1
Authentication authentication
(SI) failure.
SI.1-2. Software source Secrets may include credentials NIST SSDF PW.5.1
code does not contain or keys.
secrets.
SI.1-5. Any passwords or Best practices for password OWASP Password Storage
sensitive authentication storage are rapidly evolving; Cheat Sheet
information stored by software development
the software is stored in organizations should stay abreast
accordance with current of current best practices.
best practices.
SECURE CAPABILITIES
Support SI.2. The SI.2-3. Authentication When authentication controls fail OWASP Secure Coding
for Identity software supports controls fail securely. securely, they prevent access by Practices; NIST SSDF
Management strong identity unauthenticated users even after PW.4.3
and management and encountering an error.
Authentication authentication.
(SI)
(continued)
Patchability PA.1. Software is PA.1-1. Software is The Patchability Category refers NTIA “Voluntary
(PA) capable of receiving capable of validating the to technical aspects relating Framework for Enhancing
secure updates and integrity of a transmitted to the ability of the software Update Process Security”;
security patches. patch or update. to receive secure updates and NIST SP 800-147; CWE-924
patches. Activities of software
developers relating to the
development and dissemination
of updates and patches are
discussed in the Secure Lifecycle
Function.
www.bsa.org 25
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE CAPABILITIES
Cryptographic CS.2. Software CS.2-1. Software avoids In unique circumstances when ISO/IEC 18033-1; ISO/IEC
Services (CS) avoids weak custom encryption a developer identifies a need 19790; FIPS 140-2; FIPS
(continued) encryption. algorithms and to use a custom algorithm or 186-4; FIPS 197; FIPS 202;
implementations. implementation, the developer SAFECode “Fundamental
should establish and document a Practices”; NIST SP 800-
robust procedure to validate the 57; CWE-325; CWE-326;
security of the custom algorithm CWE-327
or implementation prior to
deployment.
CS.2-4. Cryptography Standards for strong key lengths ISO/IEC 18033-1; ISO/IEC
employed by the will change over time based on 19790; FIPS 140-2; FIPS
software enables strong advancements in computing 186-4; FIPS 197; FIPS 202;
key lengths. power and factoring techniques; SAFECode “Fundamental
in general, strong key lengths Practices”; NIST SP 800-57;
are of sufficient length to ensure CWE-326; CWE-327; CWE-
brute force attacks are infeasible. 330; CWE-331; CWE-338
SECURE CAPABILITIES
www.bsa.org 27
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE CAPABILITIES
Logging (LO) LO.1. Software LO.1-1. Software Monitoring logs record data SAFECode “Fundamental
implements logging differentiates between relevant to analyzing usage and Practices”; CWE-779
of all critical security monitoring logs and performance, troubleshooting,
incident and event auditing logs. and informing ongoing software
information. development. Auditing logs
support analysis of and response
to security events.
SECURE CAPABILITIES
www.bsa.org 29
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE LIFECYCLE
SECURE LIFECYCLE
www.bsa.org 31
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE LIFECYCLE
Vulnerability VM.3. The VM.3-4. The vendor ISO 29147; NIST SSDF
Management vendor maintains maintains a system to RV.2.1
(VM) a coordinated record and track all
(continued) vulnerability reports of potential
disclosure program. vulnerabilities.
Configuration CF.1. The software CF.1-1. The software DHS/DACS; NIST SSDF
(CF) is deployed with documentation specifies PW.9.1
configurations configuration parameters
and configuration that are as restrictive
guidance that as feasible, to make
facilitate secure sure the software is as
installation and resistant as possible to
operation. anticipated attacks and
exploits.
SECURE LIFECYCLE
Configuration CF.1. The software CF.1-6. Software User configuration may not NIST SSDF PW.9.1; PW.9.2
(CF) is deployed with configuration settings always be possible or necessary.
(continued) configurations can be altered to tailor However, where viable, the
and configuration security settings to the software should be delivered in a
guidance that operating environment. configuration that is as secure as
facilitate secure possible based on its anticipated
installation and usage, and should support the
operation. ability of users to modify security
settings to accommodate
changing environments or
requirements.
www.bsa.org 33
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE LIFECYCLE
EL.1-3. Software is
continually monitored
to ensure that third-
party components have
not reached end-of-
life milestones or are
removed or otherwise
remediated.
IV. References
Definitions
Access Control. Means to ensure that access to assets is Patch. A modification made directly to an object
authorized and restricted based on business and security program without reassembling or recompiling from the
requirements. (Source: ISO/IEC 27000: 2018) source program, or a software component that, when
installed, directly modifies files or device settings related
Algorithm. A finite set of well-defined rules for the to a different software component without changing the
solution of a problem in a finite number of steps, version number or release details for the related software
sequence of operations for performing a specific task, or component. (Source: ISO/IEC 19770-2: 2015)
finite ordered set of well-defined rules for the solution of
a problem. (Source: ISO/IEC/IEEE 24765: 2017) Penetration testing. A test method in which the security
of a computer program or network is subjected to
Authentication. Provision of assurance that a claimed deliberate simulated attack. (Source: Microsoft Security
characteristic of an entity is correct. (Source: ISO/IEC Development Lifecycle Process Guidance Version 5.2)
27000: 2018)
Release gate. A specific point established in the
Control. A measure that is modifying risk. Controls software development lifecycle where a project may not
include any process, policy, device, practice, or other move forward until it meets certain security conditions
actions that modify risk. (Source: ISO/IEC 27000: 2018) established by an organization at the project’s inception.
Error. Discrepancy between a computed, observed, or (Adapted from Software Assurance Maturity Model,
measured value or condition and the true, specified, or Version 1.0)
theoretically correct value or condition. (Source: ISO/IEC Risk. An expression of the effect of uncertainty on
15026-1: 2019) cybersecurity objectives, as understood through the
Exception. An event that causes suspension of normal analysis of identified threats to a product or system,
program execution, or an indication that an operation the known vulnerabilities of that product or system,
request was not performed successfully. (Source: ISO/ and the potential consequences of the compromise
IEC/IEEE 24765: 2017) of the product or system. (Source: BSA International
Cybersecurity Policy Framework)
Fault isolation. The ability of a subsystem to prevent a
fault within the subsystem from causing consequential Sandboxing. A restricted, controlled execution
faults in other subsystems. (Source: ISO/IEC/IEEE 24765: environment that prevents potentially malicious
2017) software, such as mobile code, from accessing any
system resources except those for which the software
Fuzzing. A means of testing that causes a software is authorized. (Source: Committee on National Security
program to consume deliberately malformed data to Systems No. 4009)
see how the program reacts. (Source: Microsoft Security
Development Lifecycle Process Guidance Version 5.2) Software. All or part of the programs that process or
support the processing of digital information. (Source:
Lifecycle. States involved in the management of an asset; ISO/IEC 12207: 2017)
evolution of a system, product, service, project, or other
human-made entity from conception through retirement. Third-party components. Components of a software
(Sources: ISO/IEC 12207: 2017; ISO/IEC 27034: 2011) project of external origin, including open-source
components, purchased commercial off-the-shelf
Mitigation. The process of remediating a weakness, software, and online services used by the software
leaving the software in a more secure state. (Source: project. (Adapted from Software Assurance Maturity
Common Weakness Enumeration/MITRE) Model, Version 1.5)
www.bsa.org 35
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
Threat modeling. A systematic exploration technique to Vulnerability. Weakness of software, hardware, or online
expose any circumstance or event having the potential service that can be exploited. (Source: ISO/IEC 30111:
to cause harm to a system in the form of destruction, 2013)
disclosure, modification of data, or denial of service.
(Source: ISO/IEC/IEEE 24765: 2017) Weakness. A type of mistake in software that, in proper
conditions, could contribute to the introduction of
vulnerabilities within that software. (Source: Common
Weakness Enumeration/MITRE)
Acronyms
BSIMM Building Security in Maturity Model, NIST SP NIST Special Publication
Version 11
NTIA National Telecommunications and
CAPEC Common Attack Pattern Enumeration Information Administration
and Classification
NVD National Vulnerability Database
CVSS Common Vulnerability Scoring
System OAuth Initiative for Open Authentication
NIST National Institute for Standards and UAF Universal Authentication Framework
Technology
WS-FED Web Services Federation Language,
NIST IR NIST Interagency Report Version 1.2
Sources
Adobe, Adobe Secure Engineering Overview, March FIDO Alliance, Universal Authentication Framework
2018. https://www.adobe.com/content/dam/acom/en/ Architectural Overview, Version 1.1, February 2, 2017.
security/pdfs/adobe-secure-engineering-wp.pdf. https://fidoalliance.org/specs/fido-uaf-v1.1-id-20170202/
fido-uaf-overview-v1.1-id-20170202.html.
American Institute of Certified Professional Accountants
(AICPA) Auditing Standards Board, Statement on Forum for Incident Response and Security Teams,
Standards for Attestation Engagements (SSAE), No. 18, Common Vulnerability Scoring System: Specification
April 2016. https://www.aicpa.org/content/dam/aicpa/ Document, Version 3.0. https://www.first.org/cvss/cvss-
research/standards/auditattest/downloadabledocuments/ v30-specification-v1.8.pdf.
ssae-no-18.pdf.
Forum for Incident Response and Security Teams,
Box, Box Platform Guidelines and Security. https:// Guidelines and Practices for Multi-Party Vulnerability
developer.box.com/docs/security-guidelines. Coordination and Disclosure, Version 1.0, Summer
2017. https://www.first.org/global/sigs/vulnerability-
BSA | The Software Alliance, BSA International coordination/multiparty/FIRST-Multiparty-Vulnerability-
Cybersecurity Policy Framework. https://bsacybersecurity. Coordination-latest.pdf?20180320.
bsa.org/wp-content/uploads/2018/04/BSA_
cybersecurity-policy.pdf. Howard, Michael and Steve Lipner, The Security
Development Lifecycle: A Process for Developing
Carnegie Mellon University Software Engineering Demonstrably More Secure Software, 2006, Redmond,
Institute, SEI CERT C Coding Standard: Rules for WA: Microsoft Press.
Developing Safe, Reliable, and Secure Systems, 2016
Edition, June 2016. https://resources.sei.cmu.edu/library/ IBM, Security in Development: The IBM Secure
asset-view.cfm?assetID=454220. Engineering Framework, 2010. https://www.redbooks.
ibm.com/redpapers/pdfs/redp4641.pdf.
Carnegie Mellon University Software Engineering
Institute, SEI CERT C++ Coding Standard: Rules for Initiative for Open Authentication, OAuth 2.0, October
Developing Safe, Reliable, and Secure Systems, 2016 2012. https://oauth.net/2/.
Edition, March 2017. https://resources.sei.cmu.edu/
library/asset-view.cfm?assetID=494932. International Organization of Standardization,
Information Technology—IT Asset Management—Parts
Carnegie Mellon University Software 1–2, ISO/IEC 19770 (1: 2017–2: 2015).
Engineering Institute, SEI CERT Oracle Coding
Standard for Java, October 11, 2016. https:// International Organization of Standardization, Information
wiki.sei.cmu.edu/confluence/display/java/ Technology—Security Techniques—Information Security
SEI+CERT+Oracle+Coding+Standard+for+Java. Management Systems—Overview and Vocabulary, ISO/
IEC 27000: 2018.
Committee on National Security Systems (CNSS),
Committee on National Security Systems Glossary, CNSS International Organization of Standardization,
Instruction No. 4009, April 6, 2015. Information Technology—Security Techniques—Entity
Authentication—Parts 1–3, ISO/IEC 9798- (1: 2010–3:
European Union Agency for Network and Information 2019).
Security, Good Practice Guide on Vulnerability
Disclosure, January 18, 2016. https://www.enisa.europa. International Organization of Standardization,
eu/publications/vulnerability-disclosure. Information Technology—Programming Languages, Their
Environments and System Software Interfaces—C Secure
FIDO Alliance, Universal 2nd Factor Overview, April Coding Rules, ISO/IEC TS 17961: 2013.
11, 2017. https://fidoalliance.org/specs/fido-u2f-v1.2-
ps-20170411/fido-u2f-overview-v1.2-ps-20170411.pdf. International Organization of Standardization,
Information Technology—Security Techniques—
Encryption Algorithms—Parts 1–5, ISO/IEC 18033 (1:
2015–5: 2015).
www.bsa.org 37
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
The Linux Foundation, Software Package Data Exchange, OWASP, Authentication Cheat Sheet. https://github.com/
Specification Version 2.1, 2016. https://spdx.org/sites/ OWASP/CheatSheetSeries/blob/master/cheatsheets/
cpstandard/files/pages/files/spdxversion2.1.pdf. Authentication_Cheat_Sheet.md.
Microsoft, Security Development Lifecycle: SDL Process OWASP, C-Based Toolchain Hardening Cheat Sheet.
Guidance, Version 5.2, May 23, 2012. https://www. https://github.com/OWASP/CheatSheetSeries/blob/
microsoft.com/en-us/download/details.aspx?id=29884. master/cheatsheets/C-Based_Toolchain_Hardening_
Cheat_Sheet.md.
Migues, Sammy, John Steven, and Mike Ware, Building
Security In Maturity Model (BSIMM), Version 11, 2020. OWASP, Code Review Guide, Version 2.0, July 2017.
https://www.bsimm.com. https://www.owasp.org/images/5/53/OWASP_Code_
Review_Guide_v2.pdf.
MITRE Corporation, Common Attack Pattern
Enumeration and Classification, Version 3.0. https://
capec.mitre.org/data/index.html.
OWASP, Development Guide, Version 2.0.1, June SAFECode, The Software Supply Chain Integrity
2014. https://github.com/OWASP/DevGuide/tree/ Framework: Defining Risks and Responsibilities for
dc5a2977a4797d9b98486417a5527b9f15d8a251/ Securing Software in the Global Supply Chain, July
DevGuide2.0.1. 21, 2009. http://safecode.org/publication/SAFECode_
Supply_Chain0709.pdf.
OWASP, Input Validation Cheat Sheet. https://
github.com/OWASP/CheatSheetSeries/blob/master/ SAFECode, Tactical Threat Modeling, May 2017. https://
cheatsheets/Input_Validation_Cheat_Sheet.md. safecode.org/wp-content/uploads/2017/05/SAFECode_
TM_Whitepaper.pdf.
OWASP, Logging Cheat Sheet. https://github.com/
OWASP/CheatSheetSeries/blob/master/cheatsheets/ Salesforce, Secure Coding Guide, Version 49.0, August
Logging_Cheat_Sheet.md. 20, 2020. https://resources.docs.salesforce.com/latest/
latest/en-us/sfdc/pdf/secure_coding.pdf.
OWASP, OWASP Top 10 — 2017: The Ten Most
Critical Web Application Security Risks, 2017. https:// United Kingdom National Cyber Security Centre Secure,
www.owasp.org/images/7/72/OWASP_Top_10- Guidance for Secure Development and Deployment,
2017_%28en%29.pdf.pdf. December 11, 2017. https://www.ncsc.gov.uk/guidance/
secure-development-and-deployment.
OWASP, Password Storage Cheat Sheet. https://
github.com/OWASP/CheatSheetSeries/blob/master/ United States Department of Defense, “Software
cheatsheets/Password_Storage_Cheat_Sheet.md. Assurance Countermeasures in Program Protection
Planning,” March 2014. https://www.acq.osd.mil/se/
OWASP, Secure Coding Practices Quick Reference docs/swa-cm-in-ppp.pdf.
Guide, Version 2.0, November 2010. https://www.owasp.
org/images/0/08/OWASP_SCP_Quick_Reference_Guide_ United States Department of Homeland Security/
v2.pdf. Data & Analysis Center for Software, Enhancing the
Development Life Cycle to Produce Secure Software,
OWASP, Software Assurance Maturity Model, Version 1.5, Version. 2.0, October 2008. http://www.seas.upenn.
April 2017. https://owaspsamm.org/v1-5/downloads/. edu/~lee/09cis480/papers/DACS-358844.pdf.
OWASP, Testing Guide, Version 4.0, September 2014. United States National Institute for Standards
https://www.owasp.org/images/1/19/OTGv4.pdf. and Technology, BIOS Protection Guidelines:
OWASP, Threat Modeling Cheat Sheet. https:// Recommendations of the National Institute of Standards
github.com/OWASP/CheatSheetSeries/blob/master/ and Technology, Special Publication 800-147, April
cheatsheets/Threat_Modeling_Cheat_Sheet.md. 2011. https://nvlpubs.nist.gov/nistpubs/Legacy/SP/
nistspecialpublication800-147.pdf.
SAFECode, Fundamental Practices for Secure Software
Development, Third Edition, March 2018. https:// United States National Institute for Standards and
safecode.org/wp-content/uploads/2018/03/SAFECode_ Technology, Digital Identity Guidelines, Special
Fundamental_Practices_for_Secure_Software_ Publication 800-63-3, June 2017. https://nvlpubs.nist.
Development_March_2018.pdf. gov/nistpubs/SpecialPublications/NIST.SP.800-63-3.pdf.
SAFECode, Fundamental Practices for Secure Software United States National Institute for Standards and
Development, Second Edition, February 2011. https:// Technology, Federal Information Processing Standards.
safecode.org/publication/SAFECode_Dev_Practices0211. https://www.nist.gov/standardsgov/compliance-faqs-
pdf. federal-information-processing-standards-fips.
SAFECode, Managing Security Risks Inherent in the Use United States National Institute for Standards and
of Third-Party Components, 2017. https://safecode. Technology, Guidelines for the Creation of Interoperable
org/wp-content/uploads/2017/05/SAFECode_TPC_ Software Identification (SWID) Tags, Interagency Report
Whitepaper.pdf. 8060, April 2016. https://nvlpubs.nist.gov/nistpubs/
ir/2016/NIST.IR.8060.pdf.
www.bsa.org 39
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
BSA Worldwide Headquarters BSA Asia-Pacific BSA Europe, Middle East & Africa
20 F Street, NW 300 Beach Road 44 Avenue des Arts
Suite 800 #25-08 The Concourse Brussels 1040
Washington, DC 20001 Singapore 199555 Belgium