a-sans-survey-rethinking-the-sec-in-devsecops-security-as-code
a-sans-survey-rethinking-the-sec-in-devsecops-security-as-code
A SANS Survey:
Rethinking the
Sec in DevSecOps:
Security as Code
Written by Jim Bird and Eric Johnson
Advisor: Frank Kim
June 2021
configuration management tools to automatically check and enforce Software engineering practices for writing
and building good code extend from software
security and compliance policies on every change. They need to understand
development to system and network
different cloud architectures and platforms, including both their strengths engineering and even to security. Thus, security
and weaknesses. They also need to do all of this at high velocity, without becomes security engineering: writing security
getting in the way of delivery. and compliance policies in code; reviewing,
scanning, and testing application code and
Security as Code represents the future of security. What does this mean service configurations; and understanding
to security professionals, to their priorities, to their training, and to the how application development and system
investments that they make in technology and tooling? engineering teams work and helping them to
find and implement tools to inject security
This survey, the eighth in an annual series that focuses on application testing directly into development.
security and DevOps, examines the following with regard to DevSecOps in
Security as Code requires new skills and
the cloud: new ways of thinking and working: more
collaborative and transparent, faster, and more
• What do security teams need to understand about software
iterative. It requires leaning on automation to
development to meet the demand of high-velocity delivery? solve common problems and to reduce costs
• What skills enable security teams to architect secure cloud services and risks.
SANS surveyed 281 organizations across the world. Figure 1 on the next page provides a
snapshot of the demographics of the survey respondents.
Small/Medium
Cybersecurity (1,001–5,000)
Application Medium
development (5,001–15,000)
firm
Medium/Large
Healthcare (15,001–50,000)
Ops: 79
Top 4 Roles Represented
HQ: 9 Ops: 76
HQ: 8 Security administrator/
Ops: 96
Security analyst
HQ: 34
Security manager
or director
Ops: 35
Ops: 49 IT manager or director
Ops: 53 HQ: 2
HQ: 12
HQ: 6
Each person represents 5 respondents.
Key Findings
Cloud platforming:
• More than half (57%) of organizations use three or more cloud platforms. Each cloud
platform is unique: The configuration models differ, as do the APIs and services.
Therefore, operational and security risks differ, making them difficult to understand
and manage. Increasingly, cloud-agnostic tools help to reduce costs and risks.
• More organizations are taking advantage of the cloud, DevOps, and lightweight Agile
practices and tools to deliver features and changes to production faster and more
cost-effectively. The velocity of IT delivery has increased by 14% over the past five
years, but the speed of security assessments has failed to keep up. Security testing
continues to lag.
Operations:
• As delivery teams continue to get faster, so do attackers. Only half of organizations
(51%) patch or otherwise resolve critical security vulnerabilities and other critical
security risks within a week of identifying these risks. Organizations need to leverage
DevOps and Agile practices, and automated build chains and automated testing, to
get patches out faster with confidence.
• Training in secure coding practices is a key enabler—not just training for developers,
but also training for operations, and security, and even compliance personnel.
Understanding how to write secure code requires a fundamental change in mindset
for everyone involved in IT in the cloud.
TAKEAWAY
As the technologies and options multiply in heterogenous cloud environments, so do the risks. Security teams must
learn different security and data privacy models, identity management and access control schemes, data storage and
encryption capabilities, activity auditing functions, configuration languages and defaults, compliance and security
controls and APIs, and the architectural strengths and weaknesses for each provider’s service platforms.1
Having multiple options increases the value of tools and security solutions that work across different cloud service
providers (CSPs). For example, Terraform, an open source platform for managing cloud services, enables teams to
configure and provision services across multiple cloud platforms using the same toolset and one high-level language
syntax (HCL), which reduces development and operational costs and security costs and risks. However, abstraction
comes with a downside. You may run into problems configuring and provisioning services where it is unclear if there
are mistakes in your Terraform code or bugs or limitations in the Terraform providers (API wrapper) you use.
1
For more on multicloud security considerations, see www.sans.org/reading-room/whitepapers/cloud/top-5-considerations-multicloud-security-39505
29.9% 30.3%
30% 27.9% 28.3%
26.7% 26.7%
25.1% 24.7%
23.5% 23.5%
20.7%
20% 18.3% 17.5%
14.7% 15.9%
12.4%
10.8% 10.8%
10% 9.2% 9.2%
6.8% 7.6%
6.0% 5.6% 5.6%
2.8% 2.4% 2.0% 2.4%
0.8%
0%
On-premises Cloud-hosted Cloud-hosted Cloud-hosted Functions-as- Other
virtual machine container service a-Service (FaaS) (serverless)
• O
n-premises—The organization is responsible for managing everything.
• C
loud VMs—The organization is responsible for managing cloud operations, security,
and configuration management. This includes carefully checking the VM platform:
Each cloud provider auto-provisions default network and firewall rules for new VMs,
which may unintentionally expose private resources.
• C
loud container services—The CSP is responsible for patching the VM and
provisioning and hardening the container runtime. DevOps teams (and security)
can focus on the application and its build/runtime dependencies, packaged and
shipped in container images.
• C
loud serverless—The CSP is responsible for hardening container images and
patching the underlying application runtime shift to the cloud provider. DevOps
teams need to worry only about writing and testing application code, the
permissions associated with the function’s service account, and major upgrades to
the application runtime environment. However, even careful coding and testing is
not enough to protect your code against common attacks, and a lack of visibility into
the serverless runtime makes it difficult to understand what attacks you are facing.
This is where cloud workload protection platforms (CWPPs) and other runtime
protection solutions come in.
Cloud-hosted Kubernetes
(e.g., EC2, Azure VM, GCE) 47.8%
Cloud-hosted Docker
(e.g., EC2, Azure VM, GCE) 43.9%
Cloud-managed container service
(e.g., AWS ECS, AWS Fargate, Azure Container) 37.6%
Other 4.3%
0% 10% 20% 30% 40% 50%
TAKEAWAY
Managed container service platforms still require careful review by DevSecOps engineers:
• D
evSecOps engineers need to evaluate container platforms for misconfigurations and
insecure defaults. For example, CaaS resources created through the cloud web console
might run workloads in default cloud-managed virtual private cloud (VPC) networks without
traditional network security controls such as network logging and egress traffic firewall rules.
• C
ontainer images stored in cloud-managed registries are not automatically scanned for
vulnerabilities. Cloud security teams need to understand each cloud provider’s image
scanning capabilities and know how to enable this.
• C
ontainer workloads can be assigned an identity (or service account) with excessive
permissions that can allow a compromised container to move laterally through the cloud
account and perform data exfiltration.
• R
untime detection and incident response tools do not Which languages and platforms in your application portfolio have
automatically monitor compromised container workloads. been the greatest source of risk or exposure to your organization?
If a workload is in fact compromised, having the ability to Select your top three.
immediately alert (if a malicious actor actually performed
data exfiltration) and to capture a detailed activity record Python 29.4%
are critical.
C/C++ 27.4%
Managing these risks requires security engineers to carefully
JavaScript 26.6%
review the container service configuration, create secure by-
default templates (e.g., Terraform modules) for development PHP 26.2%
teams, and have runtime threat detection and response Java 26.2%
capabilities in place.
.NET 23.4%
COBOL 21.4%
Programming Environments and Risks C# 18.3%
As development teams move to the cloud, they adopt HTML 17.5%
new programming languages and tools. With these new
Android 16.7%
capabilities come new risks, as shown in Figure 6.
Go 14.7%
The security risk of any programming language generally
Perl 13.9%
tracks its popularity of use:2
Groovy 11.1%
• S
cripting languages—Languages such as JavaScript
Ruby 9.1%
and Python are easy to learn and use, making
them increasingly popular in cloud environments, Objective C/Swift 7.9%
2
A useful indication of popularity of use is GitHub’s “State of the Octoverse,” which ranks development languages used in open source projects:
https://octoverse.github.com
• Java and PHP—These have been mainstays of web development, and although
the use of these languages has declined over time, many organizations still have
significant legacy investments in this code, as well as code written in legacy
languages like COBOL.
Security practices and tooling must be adapted to the needs of development teams as
well as the development environments, languages, and frameworks that these teams use.
TAKEAWAY
Newer coding languages and frameworks, and special-purpose languages (including configuration template languages), come with
new risks: a lack of secure coding guidelines, limited integrated development environment (IDE) support, and limited tooling for static
analysis and software component analysis (SCA). In these cases, developers need to fall back on general defensive coding practices and
rely on code reviews, including third-party expert reviews, and other kinds of testing to find security problems. Security teams should
identify the risks of working with new or niche languages early, in upfront risk assessments, as they evaluate development tools and
architecture candidates.
Security at Velocity
High-velocity, incremental delivery enables development teams to innovate and run
experiments at low cost, collect feedback, respond, and change. Founded on these
priorities, modern tooling and lightweight Agile practices minimize friction and cost and
encourage teams to learn and change as they go. However, the relentless focus on velocity
of delivery can force DevOps teams to take shortcuts, putting speed ahead of everything
else, taking lightweight too far. Teams build up all kinds of technical debt: code that is not
clean and safe to change, lack of test coverage, and outdated dependencies. The faster
that teams move, the more debt they build up.4
Continuous change means that the targets and risks for security and compliance
constantly change. Security must become agile and iterative:
• R
uthlessly automate security testing to keep pace with delivery. However, the
emphasis on speed and fidelity/accuracy means that you will not catch some
problems. You need to recognize these risks, and add deep scanning, fuzzing, and
penetration testing or bug bounties to find problems that fast, incremental scanning
and testing can’t find.
3
https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=494934
4
“2017 SANS State of Application Security: Balancing Speed and Risk,” October 2017,
www.sans.org/reading-room/whitepapers/analyst/2017-state-application-security-balancing-speed-risk-38100
• B
ecause code and third-party dependencies and cloud configurations constantly
change, you need to track and understand all of this code and how it is built,
and think of code and the code build infrastructure as part of the organization’s
attack surface.
• W
orking in an iterative, incremental way means that everyone (including the security
teams) “learn on the go.” Look out for incorrect assumptions, and for holes in
knowledge and understanding on the part of the delivery teams and on the part of
the security team (you don’t know what you don’t know). Be prepared to respond
quickly to new knowledge and to new risks.
To understand how organizations manage these risks and challenges, we asked a series
of questions:
• H
ow often do organizations deliver changes to production?
• H
ow do they deliver these changes? What technical practices and toolchains do
they use?
• H
ow often do they test or assess security?
• H
ow much of this testing is automated?
• W
hat security tools and practices do they rely on to manage security risks?
We describe the survey results and our findings related to these questions in the
following sections.
30%
20%
10%
0%
Other/Ad hoc More than Annually Quarterly Monthly More than Weekly Daily Continuously
1x year 1x month
testing. This implies that they still rely Automated deployment 43.1%
on manual testing (which does not Microservices-based architecture 40.9%
scale and cannot keep up with rapid, Continuous monitoring and measurement 35.6%
iterative development and delivery)
Continuous Deployment (CD) to production 35.6%
or, worse, that they do not test at all. Programmable configuration
management/Infrastructure as code 33.8%
And only 34% are provisioning and
Immutable infrastructure provisioning 21.7%
configuring infrastructure using modern
Blameless retrospectives 11.7%
programmatic tools, such as Chef,
Terraform, or AWS CloudFormation, Chaos engineering 5.0%
• M
icroservices-based architecture—A common architectural pattern for cloud
applications, where small teams work independently, designing and delivering
small services with each offering discrete responsibilities through APIs. This trades
off development simplicity for operational complexity and greatly increases the
system’s attack surface. Common security risks include holes in API authentication
and access control. Protecting these applications requires close collaboration
between development and runtime security approaches, including next-generation
web application firewalls (NGWAFs), Runtime Application Self-Protection (RASP),
CWPP, and API fuzzing.
• B
lameless postmortems—Retrospectives extended from development to operations
to learn from outages and other operational problems and near misses. Teams work
together to walk through incidents and incident response and to conduct root cause
analysis to identify improvements. These practices can (and should) be extended to
security breaches, compliance violations, and near misses.
• C
ontinuous monitoring—Infrastructure and culture to detect and respond to
exceptions can be used to enlist DevOps teams in monitoring for evidence of attacks
on application services and infrastructure and on other security events.
• P
rogrammatic configuration/infrastructure as code—Configuring cloud
infrastructure in code creates a control structure for security and compliance. We
can check configuration changes into version control, and automatically scan and
test using CI/CD build pipelines to catch configuration errors and enforce hardening
policies. It also provides transparency into runtime architecture and configuration,
making it easier to understand and assess risks.
• A
utomated deployment—Make deployment steps repeatable, testable, automated,
auditable, and safe. Enforces change control and reduces the cost and risk of
making changes, including deploying patches.
• B
lue/green deployment—An incremental deployment technique to reduce the cost
and risk of rolling out changes.
• C
haos testing—Operational failure injection in running systems, either in test or
in production. Netflix made this concept famous through their “Chaos Monkey”5
service. Effective at uncovering problems in technical architecture and for incident
detection and response. Chaos testing ensures that security controls remain
resilient to DOS attacks and other types of attacks.
• B
uild automation/CI/CD—Moving from manual builds to automated build chains,
and then to Continuous Integration and Continuous Delivery or Continuous
Deployment, is a prerequisite for iterative and incremental development.
Standardizing and streamlining these steps, making them repeatable and
transparent, reduces costs and risks for the delivery teams (and for security).
Security and compliance can build on and leverage these enabling practices and tools—if
we have the practices and tools in place and working effectively.
5
https://netflix.github.io/chaosmonkey
6
https://orangematter.solarwinds.com/2021/01/07/our-plan-for-a-safer-solarwinds-and-customer-community
20%
10%
0%
Other Ad hoc Annually Quarterly Monthly More than once Weekly Daily Continuously
per month
When Is Security Testing When do you perform security testing in your build and release pipeline workflow?
Performed in DevOps? Select all that apply.
TAKEAWAY
Lack of automation is a key reason that security does not keep up with the pace of delivery. Automation needs
commitment from development/engineering teams and their managers. Such commitment proves easier with
modern CI/CD platforms that include some security testing capabilities and that make it easy to add more testing.
Some of the different test techniques and tools also build on each other:
• D
ynamic Application Security Testing (DAST)—We can run testing as a separate
testing stage (inside or outside of the build pipeline) or by proxying automated
functional tests (e.g., Selenium WebDriver test suites) through an attack scanner to
include passive and dynamic scanning of web interfaces. The coverage of these tests
relies on the functional tests (and the amount of time we allow the tests to run).
7
https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=29002
• D
evelopment teams—Static Application Security Testing (SAST) and SCA code
scanners (and container scanners) prove a natural fit provided that the tools are
fast and accurate. Automated unit testing is also a developer responsibility, although
security teams can help by identifying areas of code that need coverage and by
writing negative tests.
• S
ecurity teams—DAST and fuzz testing prove popular with security professionals,
who tend to think more like pen testers and less like developers.
This leaves testing technology like IAST in an awkward, in-between situation—one reason
why IAST represents a niche solution. Implementing IAST requires a higher level of
maturity on the part of DevOps teams. It also calls for cooperation between development,
operations, and security to set up the runtime, manage the tests, and own the results.
Who Is Responsible for Who is responsible for conducting security testing in your organization?
Security Testing? Select all that apply to your organization.
TAKEAWAY
The key to scaling security testing is to shift this work to development or DevOps teams. However, only 36% of
organizations have done this. The more that security teams understand the code, and the build and delivery
processes and technologies, the more they can help DevOps teams take ownership for testing their own code.
Figure 14.
When teams find serious vulnerabilities, they need 3–6 months 5.1%
to respond and patch quickly to close the window of 6 months to 1 year 2.0%
exposure. As Figure 15 shows, 71% of respondents said More than a year 0.0%
TAKEAWAY
To outrace attackers, organizations need to take advantage of the high-velocity delivery capabilities of modern Agile development
and DevOps teams, infrastructure in code, automated builds, and CI/CD pipelines to patch code and infrastructure faster and with high
confidence. Teams must also take advantage of visibility into code repos and configuration, and continuous vulnerability scanning at
multiple levels, including SCA for open source dependencies, container and image scanning, scanning applications and configuration
code, and cloud security posture management (CSPM), to catch vulnerabilities as early as possible.
Organizations should use virtual shielding—that is, use runtime protection solutions such as a web application firewall (WAF), next-
generation WAF (NGWAF), RASP, CSPM, or CWPP service—to help minimize the risk of exploits, especially those organizations that cannot
keep up with vulnerability patching.
Vulnerability management Table 1. Usefulness of Security Testing Practices/Tools and Position in Development Cycle
plays a vital role in security
Practice/Technique Very Useful Useful Not Useful Total Useful
programs, but Security as Security training for developers/engineers 29.3% 53.1% 7.8% 82.4%
Code involves much more. Upfront risk assessments before development starts 27.0% 54.3% 5.1% 81.3%
Automated scanning of code for security 27.7% 51.2% 10.2% 78.9%
vulnerabilities and other defects (SAST)
DevSecOps Tools Periodic vulnerability scanning 24.2% 48.0% 15.2% 72.3%
and Practices: What Open source/third-party dependency analysis 24.6% 46.5% 13.7% 71.1%
Works? Third-party penetration testing 25.0% 46.1% 13.3% 71.1%
Network detection and response (NDR)/ 21.9% 49.2% 11.7% 71.1%
Organizations can use a network traffic analysis (NTA)
wide range of security tools Manual code review 24.6% 45.7% 18.4% 70.3%
and practices to understand Threat modeling, attack surface analysis, 22.3% 48.0% 12.1% 70.3%
or architecture/design reviews
and manage risks, both Continuous vulnerability scanning 27.0% 43.0% 11.3% 69.9%
early in development and WAF 29.7% 39.5% 17.6% 69.1%
at runtime. We asked
9 Internal penetration testing 25.8% 41.4% 13.3% 67.2%
Container/image security scanning 25.4% 40.6% 12.5% 66.0%
respondents to identify
Compliance reviews or audits by a third party 19.5% 45.7% 17.6% 65.2%
which tools and techniques NGAF 23.8% 41.0% 10.5% 64.8%
they believe are most useful. File integrity monitoring/host-based intrusion 21.5% 43.4% 13.7% 64.8%
detection system (HIDS)
Table 1 shows the results.
Security stories, abuser stories, or evil-user stories 15.2% 47.3% 12.5% 62.5%
to inject security into requirements backlog
DAST 21.1% 40.2% 10.9% 61.3%
CSPM 17.6% 38.7% 10.9% 56.3%
Virtual patching 15.6% 40.2% 13.7% 55.9%
Fuzz testing 18.8% 35.5% 11.7% 54.3%
IAST 15.2% 38.7% 11.7% 53.9%
RASP 16.4% 35.9% 11.7% 52.3%
CWPPs 15.6% 35.9% 10.9% 51.6%
Bug bounties 16.0% 34.8% 14.5% 50.8%
Other 6.6% 12.1% 5.1% 18.8%
8
www.fireeye.com/blog/threat-research/2020/04/time-between-disclosure-patch-release-and-vulnerability-exploitation.html
9
ANS has mapped security practices and open source tools in a secure DevOps toolchain, found at
S
www.sans.org/security-resources/posters/cloud-security-devsecops-practices/200/download
Static Analysis (SAST) (79%) Organizations can perform automated code scanning at multiple
points in engineering workflows to catch common coding
mistakes and vulnerabilities:
Periodic Vulnerability Scanning Regular, periodic (e.g., monthly) automated vulnerability scans are
(72%) a fundamental part of vulnerability management programs. Like
10
https://infosec.mozilla.org/guidelines/risk/rapid_risk_assessment.html
11
F or a good overview of success factors in implementing SAST, see “How Google and Facebook do code analysis,”
https://techbeacon.com/devops/how-google-facebook-do-code-analysis
NDR/NTA (71%) Network detection and response (NDR) and network traffic
analysis (NTA) capabilities are important for understanding,
managing, and securing east-west network communications in
hybrid cloud architectures and container-based microservices.
They provide deep visibility into network traffic and use machine
learning to identify real-time threats and attacks. Public
cloud provider traffic-mirroring services have made it easy to
deploy these technologies, as part of a shift right approach to
operational security.
Manual Code Reviews (70%) Lightweight peer code reviews, done through pull requests, have
become a common practice in modern software development,
but their effectiveness in finding vulnerabilities depends on the
reviewers’ skills and knowledge, the time they have available,
and their priorities. Research at organizations like Microsoft12 and
Google shows that reviewers spend more time on readability
12
www.cabird.com/pubs/bacchelli2013eoc.pdf
WAF (70%) A WAF is a plug-in or appliance that filters out specific signatures
in HTTP traffic. The major cloud platforms offer native WAF
services that provide basic protection against common HTTP
attacks and DDoS.
Internal Penetration Internal testers are generally more familiar with the domain and
Testing (67%) environment, but most organizations lack the technical expertise
required for effective penetration testing.
Third-Party Compliance Audits and assessments of control programs such as SOC 2, ISO
Reviews (65%) 27001, and PCI are required for regulated industries. In DevOps
environments, these assessments present challenges around
continuous incremental change, CD, and “you build it, you run it,”
which can violate requirements for separation of responsibilities.
13
Container scanning at these different points could be included in CWPPs.
HIDS (65%) File integrity monitoring and host-based intrusion detection systems
such as Tripwire and OSSEC track changes to files and configuration
data. In rapidly changing Agile environments, this results in lots of
noise, making it difficult to separate out authorized changes from
suspicious activity.
Security Stories (63%) Developers can be asked to identify personas for “bad users” (e.g.,
fraudsters, hackers, insider threats) and write requirements (user
stories) from a negative perspective, to identify threats to the system
or service that need to be protected against. “As a hacker, I want to….”
A variation of standard Agile practices, this encourages development
teams to think outside of functional user stories and to address
security requirements and risks in design and development.
• Cloud Custodian:
https://github.com/cloud-custodian/cloud-custodian
• Prowler: https://github.com/toniblyx/prowler
• Cloudsploit: https://github.com/aquasecurity/cloudsploit
Virtual Patching (56%) Virtual patching refers to applying protection in WAFs, RASP, and CWPP
at runtime to block known attack signatures as a rapid response
to newly discovered vulnerabilities. Organizations can use virtual
patching as a temporary stopgap until they can apply and roll out a
patch to the software.
IAST (54%) IAST instruments the application runtime and detects application
vulnerabilities as the system or service runs. This passive testing
technique depends on other tests (e.g., functional tests) to exercise
the code.
RASP (54%) RASP instruments the application runtime (e.g., JVM or .NET CLR)
to provide operational visibility into attacks and to defend against
common application security attacks and language/framework-specific
vulnerabilities. RASP adds some runtime overhead and operational
complexity in return for runtime protection.
CWPP (52%) CWPPs provide runtime protection for containers and cloud instances.
This broad technology category covers services that offer different
levels and types of runtime shielding, including network segmentation,
system integrity protection, application control/whitelisting, behavioral
monitoring, host-based intrusion prevention, and optional anti-
malware protection. Open source examples include the following:
Bug Bounties (51%) In these wider-scale programs, organizations invited outside white
hat testers (security researchers, ethical hackers) to continuously test
systems and report vulnerabilities, on a reward basis. Bug bounty
programs at organizations like Google, Apple, Microsoft, and Facebook
attract a lot of attention, but they also require a lot of work to set up
and manage.
KPIs
What are the major KPIs you use to measure the success of your DevSecOps
Measurement and feedback loops, using data to activities? Select all that apply.
drive decisions, represent a fundamental part of
Number of open security
52.3%
DevSecOps. See Figure 16. vulnerabilities
Time-to-fix security vulnerabilities 37.4%
DevSecOps programs have two broad categories
False positive rates of
reported vulnerabilities 35.8%
of metrics:
Build time delay imposed by
security testing/reviews 35.0%
• V
ulnerability management—The number Number of builds failed due to
security vulnerabilities found 33.3%
of open vulnerabilities, how long they stay
Time-to-detect security vulnerabilities 31.3%
open, where vulnerabilities are found (early
in development and build, or later), false Automated test coverage 28.4%
Number of security vulnerabilities
positive rates, how long it takes to detect discovered after deployment 28.0%
Change lead time (cycle time to deploy
vulnerabilities, and how much it costs to fix code changes/fixes to production) 20.6%
them. Organizations rely on these metrics to Cost to remediate audit findings 8.6%
understand security risks and trends. Other 6.6%
• D
evOps delivery—How often builds are 0% 10% 20% 30% 40% 50%
delayed or fail due to security vulnerabilities, Figure 16. KPIs in Use to Measure
DevSecOps
automated test coverage, and change lead time for delivery. These metrics can
help the organization to understand the costs of their security program and how to
address security risks in DevOps.
TAKEAWAY
Optimizing DevOps efficiency and velocity not only reduces IT costs and improves an organization’s agility, it
also helps improve the organization’s security posture:
3 C
hange lead time/cycle time—The speed at which teams deliver changes is the heartbeat of DevOps. It also
determines the organization’s ability to push out security patches.
3 B
uild time delays caused by security testing and number of builds failed due to vulnerabilities found—
Organizations can use these to improve the effectiveness of security controls added to delivery (to find
vulnerabilities early) without degrading the team’s velocity of delivery.
3 F alse positive rates of reported vulnerabilities—This important measure of efficiency improves the fidelity
of scanning and reporting, minimizing noise, which allows security and DevOps teams to focus on real risks.
3 A
utomated test coverage—This involves identifying how much automated tests in the build pipeline protect
the code base (or not). As discussed earlier, this metric helps you understand where your blind spots are in
testing and compliance. Test coverage also determines the organization’s confidence in its ability to roll out
patches successfully and how challenging it will be to add security testing into build and delivery pipelines.
Organizational silos between While tools could be faster and more accurate and
development, operations, security 50.0%
Insufficient budget/funding for
easier to use, technology (that is, the capabilities
security programs and tools 48.8%
and speed of tools and the capabilities of cloud
Shortage of application
37.8%
security personnel/skills service providers) does not hold organizations
Continuously changing
36.6%
requirements and priorities back. As shown in Figure 17, the major challenges
Lack of developer/engineer buy-in 34.3% to implementing DevSecOps successfully continue
Lack of transparency into
development/operations 28.7% to be organizational: siloed specialties, insufficient
Shortage of cloud engineering funding for security programs, shortage of skills,
personnel/skills 28.3%
Shortage of cloud security
26.4% continuously changing priorities and requirements,
personnel/skills
Lack of management buy-in 25.2%
and lack of buy-in from the different stakeholders.
Inadequate/ineffective security
training for developers 24.4%
specialties, before you can get to the heavy-lifting 0% 10% 20% 30% 40% 50%
work: integrating automated testing into build Figure 18. DevSecOps Success Factors
chains, automating builds, and enforcing security
and compliance policies in code.
• S
ecurity in coding—Application security practices and techniques to secure the
SDLC, training developers on secure coding practices, building secure by default
frameworks and libraries, and integrating security checks inside the workflow and
build pipelines
• C
oding in security—Understanding the SDLC workflows and tools and how to use
them for security and compliance purposes, moving from guidelines and checklists
to guardrails and automated tests; as security teams mature, leveraging version
control and CI/CD to deploy detection, alerting, and response solutions
• S
ecuring the code—Treating the code repos and build and test toolchains and
infrastructure as part of the organization’s attack surface; securing the code and
toolchains and infrastructure from end to end; getting visibility and control over
what code is changing and who can change it
Putting security into code allows organizations to accelerate and scale. Organizations
can reuse policies and controls across services and teams (and even outside of the
organization). The communities built up around open source toolsets like semgrep,
CodeQL, and Open Policy Agent attest to their success.
To achieve this, security teams need to collaborate with developers and operations
engineers and share their tools and practices. Security engineers need to learn to think
and work like developers and apply the same Agile, incremental methods to continuously
improve the security program. Organizations must recognize and reconcile this
fundamental tension between agility and control.
With Security as Code, organizations face enormous challenges but will also benefit from
the associated potential to accelerate, learn, and scale.
Eric Johnson is Principal Security Engineer at Puma Security and Senior SANS Instructor
focusing on cloud security, DevSecOps automation, and building static analysis tools.
His experience includes cloud infrastructure and security automation, cloud security
assessment, static source code analysis, web and mobile application penetration testing,
security development lifecycle consulting, and secure code review assessments.
Frank Kim leads the management and software security curricula for SANS, developing
courses on strategic planning, leadership, and application security. He is also a SANS
certified instructor, helping to shape, develop, and support the next generation
of security leaders. Previously, Frank served as CISO at the SANS Institute, leading
its information risk function, and as executive director of cybersecurity at Kaiser
Permanente, where he built an innovative security program to serve one of the nation’s
largest not-for-profit health plans and integrated healthcare provider. Currently, as
founder of ThinkSec, a security consulting and CISO advisory firm, Frank helps leaders
develop business-driven security programs.
Sponsor