BSA Secure Software Framework Guide
BSA Secure Software Framework Guide
www.bsa.org
CONTENTS
I. Executive Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
II. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Framework Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Framework Purpose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Guiding Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
IV. References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
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, The Framework is intended to focus on software
and policymakers are increasingly seeking ways of products (including Software-as-a-Service) by considering
assessing and encouraging security across the software both the process by which a software development
lifecycle. While standards and guidelines exist to aid organization develops and manages software products
and inform developers in achieving these goals, there and the security capabilities of those products. It is
is no consolidated framework that brings together best intended to complement, rather than replace, guidance
practices in a manner that can be effectively measured, for organizational risk management processes. To
regardless of the development environment or the the greatest extent possible, it seeks alignment with
purpose of the software. BSA | The Software Alliance has recognized international standards and to remain flexible,
developed The BSA Framework for Secure Software (the adaptable, outcome-focused, and risk-based.
“Framework”) to fill that gap.
The Framework is intended to become a living
Specifically, the Framework is intended to be used to document, to be updated and improved based on
help software development organizations: ongoing feedback from BSA’s members and other
(1) describe the current state of software security in relevant stakeholders.
individual software products;
(2) describe the target state of software security in
individual software products;
(3) identify and prioritize opportunities for improvement
in development and lifecycle management
processes;
(4) assess progress toward the target state; and
(5) communicate among internal and external
stakeholders about software security and security
risks.
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 based, cost-effective, and repeatable. Eschewing a one-
are emerging that help software developers address size-fits-all solution, this voluntary framework will provide
important aspects of software security, including a common organization and structure to capture multiple
security-by-design principles, secure development approaches to software security by identifying standards,
lifecycle processes, and internationally recognized guidelines, and practices that can help software
standards for key security elements such as identity development organizations achieve desired security
management, encryption, and secure coding. Although outcomes while accounting for the wide spectrum of
attention to each specific security consideration can intended uses, risk profiles, and technological solutions
achieve marginal security gains, effective security among software products.
requires a comprehensive and risk-informed approach
that combines individual considerations into a holistic, Recent technological developments illustrate the
lifecycle-long framework. And a comprehensive approach increasing ubiquity of software and the need for a
must be tailored to address the nuanced, diverse, and flexible, comprehensive software security framework.
evolving challenges associated with different types of Software-powered capabilities are rapidly expanding
software and connected devices, from the “bare metal” from desktop computers and industrial systems into
to the most advanced. nearly every corner of personal lives and business
activities, including diverse personal devices, widespread
Building on best practices pioneered by many of its sensors, 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
security that is flexible, adaptable, outcome-focused, risk-
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 be now being operated as services to software development,
at the core of IoT security. IoT from a cloud-based architecture in including new security challenges.
devices, like other computing which code is segmented across AI software often integrates
devices, have many different multiple container environments, multiple software components,
forms, functions, and levels of updated constantly and in real- frameworks, and platforms,
complexity. At the low end, time, and accessed via Internet potentially introducing new risk
some “bare metal” sensors lack connections rather than installed with each additional element.
even a basic operating system locally. Some SaaS applications Moreover, AI generally must
and contain only software code are updated dozens or even ingest and process enormous
sufficient to perform one or two hundreds of times each day, with data sets, introducing risk
simple functions. More complex little or no disruption to the user through the exposure of the data
devices may include operating experience. How can we craft a itself. Combined, these risks
systems, AI algorithms, or the software security framework that demonstrate the importance of
hundreds of millions of lines of accounts for the new technical software security for AI products.
code needed to operate many of approaches to software security Yet, at the same time, AI products
today’s connected vehicles. How that SaaS development may are creating promising new
can we achieve confidence in demand, while at the same approaches to integrating security
the security of software products time driving secure outcomes in into software development.
across this spectrum? traditional software development? How can we address the risks —
and harness the benefits — for
security in AI software?
These diverse and constantly evolving software The intent of the Framework is to provide the entire
development techniques and products demonstrate software industry with a comprehensive, adaptable, and
the need for an outcome-focused approach that can relevant framework for software security. By adopting a
consistently ensure security across a broad array of flexible, outcome-focused approach rooted in industry
technical considerations. Additionally, static, inflexible best practices and international standards, the Framework
approaches will either disrupt innovation or fail to keep is structured to be applicable to the entire spectrum of
pace with evolving threats because software is constantly (1) software development organizations and vendors, from
changing. the individual entrepreneur to large-scale, multi-national
businesses; (2) software development methods, from
traditional to DevOps; and (3) software products, from
simple IoT sensors to complex AI algorithms.
www.bsa.org 3
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
Defining “Software Security” such definitions may suggest that the level of security
associated with a given software product could be
Software security encompasses what a software ascertained simply by measuring the presence and extent
development organization does to protect a software of defects or vulnerabilities in its code base, software
product and the associated critical data from security is rarely that straightforward.
vulnerabilities, internal and external threats, critical
errors, or misconfigurations that can affect performance One challenge is that — at least currently — it is
or expose data. It comprises both organizational impractical to expect complex software code to be
processes and product capabilities. entirely free of vulnerabilities. Indeed, according to some
estimates, software products currently average roughly
Organizational processes include governance 1–5 defects per 1,000 lines of code, with many complex
structures, strategies, guidance, and clearly defined software products incorporating tens or hundreds of
procedures that guide the development of software millions of lines of code in total.3 While defect-free code
in a manner that identifies and incorporates security should always be a developer’s goal, it is not a realistic
objectives throughout a product’s lifecycle, protects industry standard. Instead, the goal should be the
the integrity of the development environment, widespread adoption of practices and processes that
applies resources to incident and vulnerability minimize code defects, and particularly known software
management, and manages the supply chain that vulnerabilities, and to maintain a proactive security
supports the software development project. posture oriented to identifying and addressing problems
before they can be exploited. In fact, researchers have
Product security capabilities are technical aspects
documented substantial improvements in average
of specific software products that are useful in
software defect density among leading software
enabling the products to address common security
developers through the implementation of secure
challenges, such as protecting data, preventing
development lifecycle approaches and other software
unauthorized access or use, tracking incidents and
security best practices.
vulnerabilities, and managing unforeseen events.
A second challenge is that any approach to software
Both organizational processes and product security
security that is distilled into a test or series of tests at a
capabilities are vital elements of software security.
single point in time is inherently flawed. As developers
Software security is often discussed in relation to increasingly adopt iterative approaches to development,
software assurance. Software assurance has been incorporate third-party components, and face evolving
defined1 as the “level of confidence that software is free security threats, a software product may change
from vulnerabilities, either intentionally designed into the continually and substantially over its lifecycle. Testing
software or accidentally inserted at any time during its methodologies undergo evolution as well; for example,
lifecycle, and that the software functions in the intended the set of known software vulnerabilities assessed
manner.” It has also been defined2 as “the development by certain testing methodologies may be frequently
and implementation of methods and processes for updated to include newly discovered flaws. Security
ensuring that software functions as intended and is free is a persistent requirement; while software testing is a
of design defects and implementation flaws.” While critical element of secure development, it is not a stand-
1
https://www.hsdl.org/?view&did=7447
2
https://safecode.org/wp-content/uploads/2018/03/SAFECode_Fundamental_Practices_for_Secure_Software_Development_March_2018.pdf
3
https://resources.sei.cmu.edu/asset_files/Webinar/2014_018_100_295971.pdf
www.bsa.org 5
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
practices within the software development organization; methods for achieving the described outcome, provide
for example, “Secure Coding” practices will may be most technical specifications or related best practices, and
relevant to a different part of a software development offer further clarity and specificity on the security benefits
team than those members responsible for “Supply Chain of the described outcome. Informative References
Risk Management” practices. include internationally recognized technical standards,
best practice manuals and guidelines, and references
Subcategories further divide a Category into distinct, to Common Weakness Enumerators (CWEs). A current
unitary concepts that express identified software security list of CWEs is maintained at https://cwe.mitre.org/. In
best practices. some cases, multiple standards may offer alternative
Diagnostic Statements identify specific, verifiable approaches to achieve similar outcomes. Similarly, CWE
outcomes. They provide a set of results that help references are drawn from a community-developed
support achievement of the outcomes in each Category. taxonomy of software weaknesses that serves as a
Diagnostic Statements are not intended as an exhaustive common language for describing weaknesses and
list of best practices, but as a set of desired outcomes provides a baseline for identification, mitigation,
that are universally relevant, to the maximum extent and prevention of such weaknesses. Numerous CWE
possible, to enhancing security across all classes and references may be related in some form to a specific
types of software. The Framework does not intend Diagnostic Statement; the Framework attempts to
that every Diagnostic Statement will apply to every identify the most relevant weaknesses resulting when
development environment or software product. Instead, the Diagnostic Statement is incompletely or improperly
through an examination of risk, software development addressed. In all cases, Informative References are
organizations will apply the Diagnostic Statements illustrative and are not intended to be either exhaustive
appropriate for their environment and product, and or prescriptive.
identify cases in which Diagnostic Statements are The Framework’s Subcategories and Diagnostic
inapplicable or irrelevant. This approach is consistent Statements are often focused on the individuals and
with other risk-based frameworks that seek to encourage team that actually develop software. In practice, entities
and guide secure activities while avoiding becoming developing software are complex organizations that
simple checklists. often include separate software development teams
Implementation Notes provide additional information, that interact with security teams, corporate governance
where necessary, such as examples of how organizations structures, and external requirements, each of which play
may achieve security outcomes described in the key roles in driving the security outcomes the Framework
Diagnostic Statements, interpretations of how Diagnostic describes. By “software development organizations,” the
Statements may apply in different development Framework intends to address all parts of an organization
environments, and guidance on aligning implementation involved in the design, development, deployment,
with risk. and maintenance of software, recognizing that each
organization must determine how it can assign roles
Informative References are additional resources and responsibilities to most effectively achieve desired
that identify and describe best practices, guidelines, security outcomes.
or further information for the implementation of an
associated Diagnostic Statement. They may describe
Framework Purpose
1 2 3 4 5
Describe the Describe the Identify and Assess progress Communicate
current state of target state of prioritize toward the among internal
software security software security opportunities target state. and external
in individual in individual for improvement stakeholders
software software in development about software
products. products. and lifecycle security and
management security risks.
processes.
www.bsa.org 7
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
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 challenges, and to deliver innovative products to the
functions and is intended to guide software development customers who depend on them.
organizations and vendors to address security
considerations in operational processes and product The Framework approaches this vital principle by
security capabilities according to the level of risk ensuring that it specifies outcomes that are neutral with
associated with the product. regard to coding language, development process, and
technical approach. Similarly, the Framework recognizes
For example, consider the first Subcategory articulated that some Diagnostic Statements may be more important
in the Framework which reads: “Threat modeling and risk to some organizations than others. For example,
analysis are employed during software design to identify companies securing SaaS products will find statements
threats and potential mitigations.” This risk analysis is relating to securing containers, such as TC.1-6, more
designed to guide software development organizations applicable to their software development environment
toward adopting the security controls most appropriate than businesses providing mostly out-of-the-box
to the type and uses of their products. Understanding software. Likewise, organizations developing out-of-the-
of the risk subsequently informs the development of a box software may find Diagnostic Statements relating
plan to address security considerations in the software’s to anti-tamper techniques, like SM.4-1, more useful.
development and deployment. The Framework is structured in a way such that each
Diagnostic Statement is intended to maintain flexibility
while remaining applicable to software of all types,
Outcome-Focused.
languages, and development processes.
The Framework communicates best practices in their
most detailed form through Diagnostic Statements Many elements of the Framework are intentionally
that identify specific, measurable outcomes. These structured to provide software development
statements are intended to be neutral with respect to organizations with the flexibility to tailor their approaches
coding language, development process, and technical based on the risk profile of the product. For example, the
approach. Rather than dictating specific security “Support for Identity Management and Authentication
techniques, the Framework focuses on the outcomes (SI)” category recognizes that not all software products
software development organizations and vendors ideally will require an identity management and authentication
should achieve to enhance the security profile of the mechanism but includes clear guidelines for those
software. that do. It directs that software “avoids hard-coded
passwords” and “avoids authentication mechanisms
that allow insufficiently complex passwords, insufficient
Flexible. password aging management, unlimited log-on
Software development as a discipline is constantly attempts, commonly used password topologies, or
evolving based on innovations in efficiency and unverified password changes.” For some software
management, emerging customer demands, new products, these guidelines will mean adopting strong
approaches to coding languages or software identity management and authentication mechanisms,
development tools, and technical breakthroughs. such as multi-factor authentication, single sign-on
Moreover, cybersecurity requires constant innovation technologies, and log-on limits. For others, they will
to keep pace with changing threats. Any approach to mean ensuring that third-party identity management
software security must be flexible enough to enable and authentication tools meet those guidelines before
software developers to develop new approaches to new they are incorporated. For still others, they will mean
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.
validating that such measures are not needed based on constant innovation of new technologies, processes,
the product’s risk and architecture. and standards in the software industry. For that reason,
approaches to software security that mandate specific
technical measures or that endeavor to subject software
Adaptable.
products to batteries of tests that assess security at
In today’s development context, software is constantly a single point in time will fail to keep pace with the
changing. Many products are continually updated constant evolution of software. Instead, this Framework
with new features and additional security measures provides a tool to assess the characteristics of software
long after their original market deployment. For that security throughout a software product’s lifecycle,
reason, software security must be conceptualized in a using outcome-focused diagnostic statements that are
way that is adaptable to this lifecycle, as well as to the adaptable to diverse and evolving technical approaches.
www.bsa.org 9
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
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.
Aligned with Internationally Recognized standards, which sets out guidance on “integrating
Standards. security seamlessly throughout the lifecycle” of software
applications.
Internationally recognized technical standards provide
widely vetted, consensus-based information and
guidance for defining and implementing effective Implementing the Framework for
approaches to cybersecurity and facilitate common
approaches to common challenges, thus enabling
Secure Software
collaboration and interoperability. Industry leaders have The Framework is designed to support the systematic
developed a range of international standards and best processes used by software development organizations
practices for secure-by-design software development. to identify, assess, and minimize cybersecurity risk
To ensure international interoperability and express throughout the lifecycle of software products. Using
consensus best practices, the Framework seeks to align, the Framework as a cybersecurity risk management
to the greatest extent possible, with internationally tool, an organization can establish a holistic secure
recognized technical standards wherever they exist. development lifecycle that identifies likely risks, enables
Currently, the most notable example relevant to secure conscientious decisions about risk mitigation and risk
software development is the ISO/IEC 27034 series of tolerance, improves software quality, and prepares the
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.
organization to address emerging security considerations »» Tracking and assessment. Software development
throughout the software’s lifecycle. Specifically, software organizations may wish to use the Framework as a
development organizations may find the Framework tool to track a product as it is developed or to assess
to be a useful tool for the following purposes, among its security profile according to concrete metrics.
others: For example, software development lifecycles often
establish release gates that require a project to meet
»» Development process guidance. A software an established measure or obtain a waiver before
development organization should publish definitive advancing; elements of the Framework may be
direction on the policies and processes that incorporated into release gate criteria. Additionally,
development of a new software product is expected the Framework may help an organization identify
to follow in order to ensure that all involved metrics that define and measure software security for
stakeholders understand roles, responsibilities, its products.
and expectations. Organizations may choose
to amend software development processes and »» Vendor relations. A software development
process guidance to ensure the elements of the organization should implement measures to ensure
Framework are accounted for throughout the product the integrity of its supply chain. Organizations may
development lifecycle. choose to use the Framework to guide purchasing
decisions and/or the development of vendor contracts
»» Training and awareness. A software development that ensure third-party software components will not
organization may consider developing internal jeopardize the organization’s security objectives and
training and education programs to build a culture of compliance requirements.
security and to ensure that stakeholders are trained
in responsibilities and methodologies appropriate »» Public security narrative. Software development
to their roles in the software development lifecycle. organizations may wish to communicate information
Organizations may choose to incorporate elements of about a product’s security features and its approach to
the Framework into internal training and awareness mitigating cybersecurity risk to a public audience. The
modules. In addition, the Framework may provide Framework may be useful in enabling organizations
a useful tool for educating executives about how to build a narrative about their secure development
security is addressed in the development process, lifecycle and product security.
how resources are aligned to security considerations,
and how individual products incorporate
cybersecurity.
www.bsa.org 11
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
The Framework does not intend that every Diagnostic Statement will apply to every development
environment or software product. Software development organizations will identify and apply the
Diagnostic Statements appropriate for their environment and product based on analysis of risk.
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
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.
SECURE DEVELOPMENT
Secure Coding SC.2. Software SC.2-1. Standards are ISO/IEC TS 17961; SEI
(SC) is developed formally identified and CERT C Coding Standard;
(continued) according to documented. SEI CERT C++ Coding
recognized, Standard; SEI CERT Java
enforceable coding Coding Standard; NCSC
standards.
SC.3. The SC.3-1. Software avoids, Software should avoid known NIST NVD; CWE/SANS
software is secure or includes documented vulnerabilities to the greatest Top 25 Most Dangerous
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
and unsafe libraries. libraries. functions or libraries known
to include vulnerabilities;
such functions or libraries
should only be incorporated
when developers include
documented mitigations that
ensure the vulnerabilities are not
exploitable.
www.bsa.org 13
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
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
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 to guide implemented and integrated OWASP Testing Guide;
is conducted. software development. with the software development OWASP Code Review
process to ensure rigor and Guide
consistency. Manual tools can
be substituted in cases where
automation isn’t feasible.
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
(PD) processes are software are gathered determining the level of detail to
documented from stakeholders and provide in such documentation.
throughout software documented.
development.
www.bsa.org 15
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE DEVELOPMENT
SECURE DEVELOPMENT
www.bsa.org 17
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE DEVELOPMENT
Supply Chain SM.5. The software SM.5-1. The software Descriptive information should ISO/IEC 19770-2; SPDX
(SM) is identifiable includes descriptive generally include the software’s Version 2.1; NIST IR 8060
(continued) through clear, information about the name, creator, version, licensing
discoverable software’s identity. details and, where possible,
information information about the software’s
communicated dependencies.
in a standardized
format.
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
Management and product are required for access mechanisms that require
(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 and operators. 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.
www.bsa.org 19
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
Authentication authentication
(SI) failure.
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
Management strong identity unauthenticated users even after
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.
EN.1-2. Software
enables the use of
encryption to protect
the software itself from
tampering.
www.bsa.org 21
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE CAPABILITIES
Encryption (EN) EN.2. Software EN.2-1. Software avoids In unique circumstances when ISO/IEC 18033-1; ISO/IEC
(continued) avoids weak custom encryption a developer identifies a need 19790; FIPS 140-2; FIPS
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”; OWASP
robust procedure to validate the Cryptographic Storage
security of the custom algorithm Cheat Sheet; NIST SP 800-
or implementation prior to 57; CWE-325; CWE-326;
deployment. CWE-327
EN.2-4. Encryption 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”; OWASP
are of sufficient length to ensure Cryptographic Storage
brute force attacks are infeasible. Cheat Sheet; NIST SP
800-57; CWE-326; CWE-
327; CWE-330; CWE-331;
CWE-338
SECURE CAPABILITIES
Encryption (EN) EN.2. Software EN.2-6. Software is It may be necessary for CWE-326; CWE-327; CWE-
(continued) avoids weak configured to disable or software to support weak 330; CWE-331; CWE-338
encryption. prevent the use of weak encryption algorithms and
encryption algorithms key lengths for reasons of
and key lengths. backward compatibility. Where
such support is required,
the implementation should
be carefully engineered and
thoroughly reviewed to ensure
that it does not allow an attacker
to bypass the default or user
selection of strong encryption.
www.bsa.org 23
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 25
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE LIFECYCLE
VM.1-2. The
vulnerability
management plan
addresses security
testing and vulnerability
identification
methodologies to be
applied throughout a
product’s lifecycle.
SECURE LIFECYCLE
www.bsa.org 27
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
SECURE LIFECYCLE
SECURE LIFECYCLE
Configuration CF.1. The software CF.1-6. Software User configuration may not
(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 29
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 Mitigation. The process of remediating a weakness,
authorized and restricted based on business and security leaving the software in a more secure state. (Source:
requirements. (Source: ISO/IEC 27000: 2018) Common Weakness Enumeration/MITRE)
Algorithm. A finite set of well-defined rules for the Patch. A modification made directly to an object
solution of a problem in a finite number of steps, program without reassembling or recompiling from the
sequence of operations for performing a specific task, or source program, or a software component that, when
finite ordered set of well-defined rules for the solution of installed, directly modifies files or device settings related
a problem. (Source: ISO/IEC/IEEE 24765: 2017) to a different software component without changing the
version number or release details for the related software
Authentication. Provision of assurance that a claimed component. (Source: ISO/IEC 19770-2: 2015)
characteristic of an entity is correct. (Source: ISO/IEC
27000: 2018) Penetration testing. A test method in which the security
of a computer program or network is subjected to
Control. A measure that is modifying risk. Controls deliberate simulated attack. (Source: Microsoft Security
include any process, policy, device, practice, or other Development Lifecycle Process Guidance Version 5.2)
actions that modify risk. (Source: ISO/IEC 27000: 2018)
Release gate. A specific point established in the
Error. Discrepancy between a computed, observed, or software development lifecycle where a project may not
measured value or condition and the true, specified, or move forward until it meets certain security conditions
theoretically correct value or condition. (Source: ISO/IEC established by an organization at the project’s inception.
15026-1: 2019) (Adapted from Software Assurance Maturity Model,
Exception. An event that causes suspension of normal Version 1.0)
program execution, or an indication that an operation Risk. An expression of the effect of uncertainty on
request was not performed successfully. (Source: ISO/ cybersecurity objectives, as understood through the
IEC/IEEE 24765: 2017) analysis of identified threats to a product or system,
Fault isolation. The ability of a subsystem to prevent a the known vulnerabilities of that product or system,
fault within the subsystem from causing consequential and the potential consequences of the compromise
faults in other subsystems. (Source: ISO/IEC/IEEE 24765: of the product or system. (Source: BSA International
2017) Cybersecurity Policy Framework)
Fuzzing. A means of testing that causes a software Sandboxing. A restricted, controlled execution
program to consume deliberately malformed data to environment that prevents potentially malicious
see how the program reacts. (Source: Microsoft Security software, such as mobile code, from accessing any
Development Lifecycle Process Guidance Version 5.2) system resources except those for which the software
is authorized. (Source: Committee on National Security
Lifecycle. States involved in the management of an asset; Systems No. 4009)
evolution of a system, product, service, project, or other
human-made entity from conception through retirement. Software. All or part of the programs that process or
(Sources: ISO/IEC 12207: 2017; ISO/IEC 27034: 2011) support the processing of digital information. (Source:
ISO/IEC 12207: 2017)
www.bsa.org 31
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
Threat modeling. A systematic exploration technique to Weakness. A type of mistake in software that, in proper
expose any circumstance or event having the potential conditions, could contribute to the introduction of
to cause harm to a system in the form of destruction, vulnerabilities within that software. (Source: Common
Weakness Enumeration/MITRE)
Acronyms
BSIMM Building Security in Maturity Model, NIST IR NIST Interagency Report
Version 9
NIST SP NIST Special Publication
CAPEC Common Attack Pattern Enumeration
and Classification NTIA National Telecommunications and
Information Administration
CVSS Common Vulnerability Scoring
System NVD National Vulnerability Database
CWSS Common Weakness Scoring System OAuth Initiative for Open Authentication
Sources
Adobe, Adobe Secure Engineering Overview, March Forum for Incident Response and Security Teams,
2018. https://www.adobe.com/content/dam/acom/en/ Common Vulnerability Scoring System: Specification
security/pdfs/adobe-secure-engineering-wp.pdf. Document, Version 3.0. https://www.first.org/cvss/cvss-
v30-specification-v1.8.pdf.
Apple, Secure Coding Guide. https://developer.apple.
com/library/archive/documentation/Security/Conceptual/ Forum for Incident Response and Security Teams,
SecureCodingGuide/Introduction.html. Guidelines and Practices for Multi-Party Vulnerability
Coordination and Disclosure, Version 1.0, Summer
Box, Box Platform Guidelines and Security. https:// 2017. https://www.first.org/global/sigs/vulnerability-
developer.box.com/docs/security-guidelines. coordination/multiparty/FIRST-Multiparty-Vulnerability-
BSA | The Software Alliance, BSA International Coordination-latest.pdf?20180320.
Cybersecurity Policy Framework. https://bsacybersecurity. Howard, Michael and Steve Lipner, The Security
bsa.org/wp-content/uploads/2018/04/BSA_ Development Lifecycle: A Process for Developing
cybersecurity-policy.pdf. Demonstrably More Secure Software, 2006, Redmond,
Carnegie Mellon University Software Engineering WA: Microsoft Press.
Institute, SEI CERT C Coding Standard: Rules for IBM, Security in Development: The IBM Secure
Developing Safe, Reliable, and Secure Systems, 2016 Engineering Framework, 2010. https://www.redbooks.
Edition, June 2016. https://resources.sei.cmu.edu/library/ ibm.com/redpapers/pdfs/redp4641.pdf.
asset-view.cfm?assetID=454220.
Initiative for Open Authentication, OAuth 2.0, October
Carnegie Mellon University Software Engineering 2012. https://oauth.net/2/.
Institute, SEI CERT C++ Coding Standard: Rules for
Developing Safe, Reliable, and Secure Systems, 2016 International Organization of Standardization,
Edition, March 2017. https://resources.sei.cmu.edu/ Information Technology—IT Asset Management—Parts
library/asset-view.cfm?assetID=494932. 1–2, ISO/IEC 19770 (1: 2017–2: 2015).
www.bsa.org 33
The BSA Framework for Secure Software: A New Approach to Securing the Software Lifecycle
International Organization of Standardization, Information OASIS, Security Assertion Markup Language, Version
Technology—Security Techniques—Vulnerability 2.0, March 25, 2008. http://docs.oasis-open.org/security/
Disclosure, ISO/IEC 29147: 2018, October 23, 2018. saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.pdf.
International Organization of Standardization, Information OASIS, Web Services Federation Language, Version
Technology—Security Techniques—Vulnerability 1.2, May 22, 2009. http://docs.oasis-open.org/wsfed/
Handling Processes, ISO/IEC 30111: 2013(E), November federation/v1.2/os/ws-federation-1.2-spec-os.html.
1, 2013.
Okta, Okta Security Technical White Paper. https://
International Organization of Standardization, Systems www.okta.com/sites/default/files/Okta%20Technical%20
and Software Engineering—Software Lifecycle Processes, Security%20Whitepaper.pdf.
ISO/IEC/IEEE 12207: 2017.
Open ID Foundation, Open ID Connect, Version 1.0,
International Organization of Standardization, Systems November 8, 2014. https://openid.net/connect/.
and Software Engineering—Systems and Software
Assurance—Part 1: Concepts and Vocabulary, ISO/IEC/ Open Web Application Security Project (OWASP),
IEEE 15026 (1: 2019). Application Security Verification Standard, Version 3.0,
October 2015. https://www.owasp.org/images/6/67/
International Organization of Standardization, Systems OWASPApplicationSecurityVerificationStandard3.0.pdf.
and Software Engineering—Vocabulary, ISO/IEC/IEEE
24765: 2017. Oracle, Security Practices: Oracle Software Security
Assurance. https://www.oracle.com/corporate/security-
IoT Security Foundation, Vulnerability Disclosure: practices/assurance/.
Best Practice Guidelines, Release 1.1, December
2017. https://iotsecurityfoundation.org/wp-content/ OWASP, Attack Surface Analysis Cheat Sheet. https://
uploads/2017/01/Vulnerability-Disclosure.pdf. github.com/OWASP/CheatSheetSeries/blob/master/
cheatsheets/Attack_Surface_Analysis_Cheat_Sheet.md.
The Linux Foundation, Software Package Data Exchange,
Specification Version 2.1, 2016. https://spdx.org/sites/ OWASP, Authentication Cheat Sheet. https://github.com/
cpstandard/files/pages/files/spdxversion2.1.pdf. OWASP/CheatSheetSeries/blob/master/cheatsheets/
Authentication_Cheat_Sheet.md.
McGraw, Gary, Sammy Migues, and Jacob West, Building
Security in Maturity Model (BSIMM), Version 9, 2018. OWASP, C-Based Toolchain Hardening Cheat Sheet.
https://www.bsimm.com. https://github.com/OWASP/CheatSheetSeries/blob/
master/cheatsheets/C-Based_Toolchain_Hardening_
Microsoft, Security Development Lifecycle: SDL Process Cheat_Sheet.md.
Guidance, Version 5.2, May 23, 2012. https://www.
microsoft.com/en-us/download/details.aspx?id=29884. OWASP, Code Review Guide, Version 2.0, July 2017.
https://www.owasp.org/images/5/53/OWASP_Code_
MITRE Corporation, Common Attack Pattern Review_Guide_v2.pdf.
Enumeration and Classification, Version 3.0. https://
capec.mitre.org/data/index.html. OWASP, Cryptographic Storage Cheat Sheet. https://
github.com/OWASP/CheatSheetSeries/blob/master/
MITRE Corporation, Common Weakness Enumeration, cheatsheets/Cryptographic_Storage_Cheat_Sheet.md.
Version 3.2. https://cwe.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 45.0, January
Logging_Cheat_Sheet.md. 30, 2019. https://resources.docs.salesforce.com/218/
latest/en-us/sfdc/pdf/secure_coding.pdf.
OWASP, OWASP Top 10 — 2017: The Ten Most
Critical Web Application Security Risks, 2017. https:// Symantec, “Executive Summary: Symantec Software
www.owasp.org/images/7/72/OWASP_Top_10- Security Process,” 2019. https://www.symantec.com/
2017_%28en%29.pdf.pdf. content/dam/symantec/docs/other-resources/symantec_
software_security_process.pdf.
OWASP, Password Storage Cheat Sheet. https://
github.com/OWASP/CheatSheetSeries/blob/master/ United Kingdom National Cyber Security Centre Secure,
cheatsheets/Password_Storage_Cheat_Sheet.md. Guidance for Secure Development and Deployment,
December 11, 2017. https://www.ncsc.gov.uk/guidance/
OWASP, Secure Coding Practices Quick Reference secure-development-and-deployment.
Guide, Version 2.0, November 2010. https://www.owasp.
org/images/0/08/OWASP_SCP_Quick_Reference_Guide_ United States Department of Defense, “Software
v2.pdf. Assurance Countermeasures in Program Protection
Planning,” March 2014. https://www.acq.osd.mil/se/
OWASP, Software Assurance Maturity Model, Version 1.5, docs/swa-cm-in-ppp.pdf.
April 2017. https://owaspsamm.org/v1-5/downloads/.
United States Department of Homeland Security/
OWASP, Testing Guide, Version 4.0, September 2014. Data & Analysis Center for Software, Enhancing the
https://www.owasp.org/images/1/19/OTGv4.pdf. Development Life Cycle to Produce Secure Software,
OWASP, Threat Modeling Cheat Sheet. https:// Version. 2.0, October 2008. http://www.seas.upenn.
github.com/OWASP/CheatSheetSeries/blob/master/ edu/~lee/09cis480/papers/DACS-358844.pdf.
cheatsheets/Threat_Modeling_Cheat_Sheet.md. United States National Institute for Standards
SAFECode, Fundamental Practices for Secure Software and Technology, BIOS Protection Guidelines:
Development, Third Edition, March 2018. https:// Recommendations of the National Institute of Standards
safecode.org/wp-content/uploads/2018/03/SAFECode_ and Technology, Special Publication 800-147, April
Fundamental_Practices_for_Secure_Software_ 2011. https://nvlpubs.nist.gov/nistpubs/Legacy/SP/
Development_March_2018.pdf. nistspecialpublication800-147.pdf.
SAFECode, Fundamental Practices for Secure Software United States National Institute for Standards and
Development, Second Edition, February 2011. https:// Technology, Digital Identity Guidelines, Special
safecode.org/publication/SAFECode_Dev_Practices0211. Publication 800-63-3, June 2017. https://nvlpubs.nist.
pdf. gov/nistpubs/SpecialPublications/NIST.SP.800-63-3.pdf.
SAFECode, Managing Security Risks Inherent in the Use United States National Institute for Standards and
of Third-Party Components, 2017. https://safecode. Technology, Federal Information Processing Standards.
org/wp-content/uploads/2017/05/SAFECode_TPC_ https://www.nist.gov/standardsgov/compliance-faqs-
Whitepaper.pdf. federal-information-processing-standards-fips.
www.bsa.org 35
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 65 Petty France
Suite 800 #25-08 The Concourse Ground Floor
Washington, DC 20001 Singapore 199555 London, SW1H 9EU
United Kingdom
+1.202.872.5500 +65.6292.2072
+44.207.340.6080
@BSAnews @BSAnewsAPAC
@BSAnewsEU
@BSATheSoftwareAlliance