AWS-SANS-Secure-by-Design-Whitepaper-2024 (1)
AWS-SANS-Secure-by-Design-Whitepaper-2024 (1)
AWS-SANS-Secure-by-Design-Whitepaper-2024 (1)
As the threat landscape continues to evolve, the A total of 26,447 critical vulnerabilities were disclosed in 2023, surpassing
the previous year by more than 1,500.1
concept of Secure by Design (SbD) is gaining
importance in the effort to mitigate vulnerabilities Insecure design is ranked as the number four critical web application
security concern on the Open Web Application Security Project (OWASP)
early, minimize risks, and recognize security as a
Top 10.2
core business requirement. SbD aims to reduce
Supply chain vulnerabilities are ranked fifth on the OWASP Top 10 for Large
the burden of cybersecurity and break the cycle Language Model (LLM) Applications.3
of constantly creating and applying updates by
developing products that are foundationally secure.
The Cybersecurity and Infrastructure Security Agency (CISA), National Security Agency
(NSA), Federal Bureau of Investigation (FBI), and international partners including the Five
Eyes (FVEY) intelligence alliance have adopted the SbD mindset and are evangelizing
it to help encourage proactive security practices and avoid creating target-rich
environments for threat actors.
This chapter explores what SbD actually means and discusses its benefits, cultural
aspects, key considerations, and action items that can set you on the path to
successfully embedding SbD into your security strategy.
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
1
“2023 Threat Landscape Year in Review: If Everything Is Critical, Nothing Is,” January 2024, https://blog.qualys.com/vulnerabilities-threat-
research/2023/12/19/2023-threat-landscape-year-in-review-part-one
2 “OWASP Top Ten,” https://owasp.org/www-project-top-ten/
3 “OWASP Top 10 for Large Language Model Applications,” https://owasp.org/www-project-top-10-for-large-language-model-applications/
4 “Secure by Design Pledge,” www.cisa.gov/securebydesign/pledge
Both ensure that security is inherent. Together, they work to establish a solid foundation
for proactive security, build trust with customers, and increase the level of difficulty for
threat actors seeking to exploit products and systems.
Secure by Design offers more flexibility to help protect resources and withstand threats
that originate outside of architectural components. It allows you to use products with
different options and settings, so the outcome aligns with your risk tolerance level.
With SbD, the security of architectural components that products are built around
cannot be altered without changing their fundamental design or setup. SbD principles
can be applied to components ranging from IT workloads to services, microservices,
libraries, and beyond.
Another way to think of SbD is to consider the topology of a space, such as a house. An
SbD setup should have only closed, finite rooms in the configuration space (house) that
do not allow access to an infinite space (outside of the house) except through well-
defined and carefully controlled ingress and egress points. This absence of configuration
space options facilitates added security. If you don’t make design principles accessible
to builders, then they’re creating IT workloads in a secure environment.
When software is in the cloud, SbD helps eliminate access points. Identity and access
management (IAM) is your first line of defense, as IAM misconfigurations can lead to
misconfigurations and unsecure usage elsewhere. An example of an SbD approach in an
IAM system for distinct principals (IAM users, federated users, IAM roles, or applications)
is to rely on testable outcomes that make them atomic. Because IAM is inherently based
on the “default deny” principle that either explicitly allows or implicitly denies access,
SbD helps you lay the foundation of a secure IAM setup for builders and operators
within the cloud environment as part of an overarching, centralized IAM system that is
accompanied by centralized logging. New design elements should automatically inherit
the secure setup; otherwise, they shouldn’t work.
Commonly used SDLC models such as waterfall, spiral, and agile don’t address software
security in detail, so secure development practices need to be added to set foundational
security. Additionally, in a cloud environment, infrastructure is also code that should fall
under the purview of the SDLC.
The National Institute of Standards and Technology (NIST) Secure Software Development
Framework (SSDF), also known as SP 800-218, can support efforts to strengthen the
security of your SDLC. The SSDF describes a set of high-level practices based on
established standards, guidance, and secure software development practice documents
from organizations such as SAFECode, BSA, and OWASP. The framework is divided into
four groups (see Figure 1) that are designed to help prepare the organization’s people,
processes, and technology to perform secure software development, protect software
from tampering and unauthorized access, produce well-secured software with minimal
security vulnerabilities in its releases, and respond to residual vulnerabilities. Although
it’s not a checklist—and the degree to which you choose to implement the practices
depends on your organization’s requirements—it can help you adopt well-understood
best practices and ensure team members across all phases of the development pipeline
assume responsibility for security.
Continuous integration and continuous delivery (CI/CD) pipelines that help automate
the software delivery process are substantial contributors to SbD environments, as
they include a comprehensive set of checks to be run—such as firewall settings, OS
configurations, libraries used, security-related reviews, and software components used—
before a target configuration is implemented.
The second area of automation includes detective systems, which can identify
noncompliant components or configurations. Misconfigurations generally shouldn’t
happen within SbD setups, as they are largely prevented through the design and
preventive controls in the implementation. Additionally, it is important to note that a
vulnerability in a system due to either the design or the implementation may not pose
an immediate problem, if the design includes defense-in-depth elements that protect
the overall system despite any individual flaws. Nevertheless, if a detective system finds
something that doesn’t adhere to the design, it’s a signal that the design needs to be
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
If the design needs to be open to enable some business processes, a layered defense
can address threats and either prevent a breach or limit potential damage.
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
6
“Securing generative AI: What matters now,” May 2024, www.ibm.com/downloads/cas/2L73BYB4?mod=djemCybersecruityPro&tpl=cs
Integrating an AI/ML bill of materials (AI/ML BOM) and cryptography bill of materials
(CBOM) into BOM processes can help you catalog security-relevant information, and
gain visibility into model components and data sources. Additionally, frameworks and
standards such as the NIST AI Risk Management Framework (AI RMF 1.0), the HITRUST AI
Assurance Program, and ISO/IEC 42001 can facilitate the incorporation of trustworthiness
considerations into the design, development, and use of AI systems.
Threat modeling in the design phase fosters a culture of secure design and
implementation, which in today’s landscape includes infrastructure, configuration
management, and application code. Threat modeling exercises conducted during
design allow development and security teams to conceptualize and then document
potential threats before code has been written, and can save time and money by
avoiding rework or escalations later in the development process. Threat models should
be treated as living documents that can be integrated into your SDLC processes and
evolve with experience and learnings, as well as the overall product evolution and threat
landscape over time.
During a threat modeling exercise, mitigation activity should focus on both the design
and the available technology.
Rethinking threats to the login process itself can lead to either network-based control of
the communication as discussed, or to the login process being embedded in a different
environment, which helps to prevent the threat. The cloud- and IAM-based login design
can also provide you with benefits through the scalability or responsibility shift that
comes with the cloud. Keeping the IAM system secure is a critical task for the cloud
service provider (CSP) and part of its core business functions. The centralized logging
and monitoring capabilities provided by the CSP’s IAM system can help you ensure that
only authorized users have access to sensitive data and resources.
The SbD nature of the created space (through automation or systems on the borders)
keeps new resources of the same type in the safe state and free from inherited threats.
Resources with unwanted configurations, states, or dependencies cannot be deployed.
However, the design’s assumptions should be challenged as often as your commercial
requirements allow. Each vulnerability scan with findings should be tested for an impact
on design aspects. New business requirements and compliance considerations also may
necessitate changes or add to your design targets.
Guiding Principles
There are three guiding security design principles to consider when applying SbD to
threat modeling:
2. Monitor the logical borders created by closed spaces to gather baselines. This
helps create enforcement automation through filter and approval technology.
Typical examples of borders include firewalls, web application firewalls (WAFs),
landing zones, system-call jails for preventing unwanted interaction with the
operating system (such as creating users), IAM settings, closed-source libraries,
and software repositories.
3. Design your spaces to allow changes to flow within. You can achieve this by
defining behavior outcome at the design level and having your builders make
decisions along this path in the design space you create.
An SbD approach can help you meet requirements across people, process, and
technology. From a people perspective, you can provide mandatory, role-specific training
on secure coding best practices. From a technology perspective, your design can be set
You can get there by defining your compliance requirements from the domains to
the controls, and then iteratively working backward to meet them. Instead of linking
the controls directly to TOMs, such as architectural components, configurations,
processes, and procedures, the goal is to link them to design principles, which are
then implemented in TOMs outside of the target system. The TOMs are then part of
the surrounding design and unchangeable configurations, rather than part of the
workload itself.
Consider zero trust, for example. If your target system is in an environment that enables
communication only after context-based authentication and authorization verify the
identity of the actor attempting access, you can meet a set of technical compliance
requirements around access and user management and facilitate a finite and closed
space by allowing only approved connections.
On the other hand, supporting builders with a design phase in which the main security
and technical compliance aspects are handled can make them feel safe, because the
design helps prevent insecure configurations. This is typically the situation in cloud
systems, where builders only get access to approved cloud services over approved
authorization and authentication paths, with prepared logging and reporting (landing
zones). The what, who, and where is defined and controlled by preventive automation,
such as a centrally managed IAM system and infrastructure as code (IaC).
Landing zones with built-in policy guardrails may initially add friction to the developer
workflow and decrease agility during a period of adaptation. However, the freedom
provided within well-defined constraints will ultimately pay off in terms of both better
security outcomes and the agility needed to help you achieve business goals.
Another short-term aspect of the targeted closed space of an SbD setup to consider is
how to deal with new technology, testing, and exploration. Testing is critical to verify the
quality and reliability of applications. This requires teams to create test suites and mock
data to maximize code coverage in lower-level environments. Doing so creates a secure
space for development and testing, which is often managed by version control systems
and continuous delivery pipelines.
To make products and services more sustainable, the SbD approach requires a balance
between the usability of the product, fundamental parameters, and malleability of the
design. Designs should take long-term effects into consideration by calling out functions
and their outcome and risk surface but staying out of technical details.
The design should provide builders with clear guidance and eliminate risk decisions
that can be made without undergoing a security approval process. Because builders may
not always realize when they are making a risk-based decision during the development
process, the design should prevent them from having to make them in the first place.
Additionally, builders can sometimes address challenges with the borders of the created
space through the design. For example, it may be easier to design an intake process
for code libraries and other elements of the supply chain to get software components
from existing outside repositories rather than create new components that may also
introduce new risks. It’s important to note that this intake process would be subject to
threat modeling as part of your SbD approach.
The Owner
Business process owners define the target behavior and, therefore, the design space. In
many cases, business requirements are found to be broader than expected. Regulatory
considerations, commercial aspects ranging from costs to time to market, and long-term
strategies for asset development should be incorporated into the design so that its
parameters can be modeled as input data for technical integration.
Business and IT workload owners are also key players in the process of working
backward from the most secure design to a desired working point that balances
security needs with commercial aspects. Informed decisions should be made, with clear
documentation and defined risk takers.
The Supervisors
Supervisory functions, such as design review boards or auditors that define and
potentially manage the data exchange between systems, address the integration
feasibility of the design through technical or organizational measures. They implement
preventive controls to set the borders of the finite space defined by the design and can
use detective controls to guide the design into the future. Additionally, the automated
implementation of those controls, through configuration management systems, can
generate evidence and documentation to prove the compliance status of the overall IT
workload. In cloud environments, where all configurations are known, the automation of
evidence generation is particularly important. Because these controls are running on the
principal of SbD to create finite configuration spaces, the desired result is a technically
compliant state.
Benefits
A robust SbD approach establishes a solid foundation that reduces risks and yields
security benefits for your development teams—and your business.
Scalability
Operations inside an SbD setup allow you to quickly scale,
without reiterating security settings. This is particularly beneficial
in environments where the demand cannot be predicted
precisely up front. An SbD approach helps create well-architected
landing zones that are both scalable and secure. Automation
through code pipelines, including automatic code checks against
attempts to open the room, are a key element here. These
pipelines also add to detective controls to help identify attempts
(or the need) to cross the borders of the design. Systems that
execute these pipelines concentrate risk through the need to
be able to execute everything that is required. Therefore, they
should be outside of the target design in their own closed SbD
room. This provides a starting point your organization can use to
efficiently launch and deploy workloads and applications with
confidence in your security and infrastructure environment.
Repeatability
Having prepared spaces also allows you to repeat setups in an
agile way. With an SbD approach, you can build products and
services that are designed to be foundationally secure using
a repeatable mechanism (see Figure 3) that can anchor your
development life cycle.
Figure 3. SbD as the Anchor of Your Development Life Cycle
Sustainability
A solid SbD approach includes built-in feedback loops through detective controls that
facilitate sustainability by enabling you to analyze data and leverage insights to enhance
the security of your products, services, or processes. If the design considers future
developments in the technology—such as cryptography changes, for example—following
them should be possible by design. This leads to products and services with a longer
lifetime, with potentially fewer changes and iterations, and a stable interaction surface.
In a cloud environment, log data can be used to create detective controls. Detection
of anomalies, and failed attempts to configure things outside the closed space should
lead to documentation (through tickets) and can drive the creation of new controls that
can further advance detection. This creates a flywheel effect that can help you tighten
security and cut off open treats. The closed space remains closed while taking care of
the dynamics on its borders.
Manageability
Manageability functions such as logging, reporting, and gathering data for compliance
purposes can generally be built into the design and don’t need to be rethought.
Included preventive controls will automatically generate the data needed to
keep the IT workload under control. A predesigned operating setup for compute
instances, for example, can include backup and restore, logging, access management,
patch management, inventory management, and telemetry data functions that
are automatically rolled out. Nowadays, you can orchestrate these things through
automated systems and document them with detective controls.
Design Changes
Threats to new and existing technologies are constantly evolving. SbD preventive
controls, such as firewalls and runtime security agents, can help security teams respond
quickly to an intrusion. Consider a scenario in which your security team has discovered
Implementation Efforts
The path to an SbD approach includes an additional step between requirements and
practical implementation. You will need time to qualify design-level mitigations, and
traditional conversations and documentation may be required to establish the “why”
and “how” behind your approach.
In addition to setting aside time for the design phase, focus on standardizing
approaches that can be reused by others. You also should choose your tech stacks
carefully, keeping an eye on complexity and related security overhead. Consider
leveraging cloud services to address problems, instead of building everything
on your own.
The tool landscape also should be approached through an SbD lens. Free selection of
tools, such as programming languages, and methodologies in software development
can create more dependencies (and open spaces) than the risk appetite for the
deployment allows. Time to market and implementation considerations might outweigh
security concerns related to the selected language or programming framework with its
dependencies, which is exactly what you should consider with care.
Using services with a higher integration level, such as cloud services, can reduce
your implementation efforts. Critical capabilities, such as IAM and connectivity, are
already designed and have security built in, which helps provide you with a closed risk
environment by design.
Getting Started
Taking a new approach to security can be daunting, especially for organizations used to
focusing on “check the box” compliance exercises. Five key action items that can help
you avoid frustration and set you on the path to successfully implementing SbD include:
• Identify your core SbD pillars—Evaluate a matrix of your technical domains with
the security domains that are called out by your business processes. Technical
domain examples include logging and security domain integrity while design
examples include mandatory checksums and authenticated encryption. Each node
in the matrix will require a decision to be made regarding how to address the
associated security domains.
Sponsor
SANS would like to thank this paper’s sponsor: