A Practical Approach to Shifting Security Left
February 23, 2021

Walter Capitani
GrammaTech

There are two important considerations when adding security to an existing DevOps pipeline. The first is security in code, which means, when code is developed, the security of the code itself should be continuously reviewed and assessed. The second is security as code, in other words, security requirements need to be part of the process from the beginning. Let's look at both of these concepts in a bit more detail.

Security in Code

Many teams start their path to security off by adopting coding guidelines or standards such as MISRA, OWASP, or the CERT guidelines, which is a great start, it improves code security from the get-go. However, just following a coding standard by itself does not necessarily avoid complex security vulnerabilities. According to a recent study by Microsoft, 70% of today's security vulnerabilities are caused by memory access errors.

Memory vulnerabilities here could be caused by a simple miscalculation, which led to a buffer-overrun-write, or a more complex path where a variable is tainted through input from the outside that is used without being sanitized. To find these problems in the code, more sophisticated analysis is needed such as dataflow analysis and abstract execution provided by advanced static application security testing (SAST) tools.

Equally important is understanding the security implications of the software components your products depend on such as open source, internal reused code and commercial software. Without this, your best efforts will be for naught if vulnerabilities exist in third-party code included in your application.

Software composition analysis (SCA) tools provide a continuous software bill of materials (SBOM) that itemizes all the software libraries in your dependencies and associated known vulnerabilities. This SBOM is established early on in development and is updated continuously as dependencies evolve both from updates and newly discovered vulnerabilities.

Security as Code

An interesting approach that has come out of DevSecOps practice is the concept of treating security in the same ways as code is; guided by requirements, which leads to implementation of security controls, then to validation through testing, and of course, documentation. It's one of the key ways to integrate security into DevOps and a good way to build security into the development culture and have software teams communicate using a familiar language.

Certainly, security implementations that end up as actual code with associated tests can be automated in the same fashion as other code. Automation tools apply here as would any tool that works with requirements, tests, documentation, etc.

Each iteration through a continuous process requires a review which includes the backlog of security issues but also important data on changes needed to security controls and requirements. This feedback into the process is a key and important part of making DevSecOps success — repeat, review and refine.

Integrating SAST and SCA to Shift Left Security

Automation is one of the main tenets of DevOps. Nothing should be dependent on manual steps as they can be easily overlooked, either by accident or by malicious intent. SCA tools can be used immediately to establish a baseline SBOM for the application. Without first understanding the vulnerabilities and risks associated with your software stack, other measures will be in vain.

It's equally important to keep this SBOM up-to-date with each iteration since the threat landscape can change over time as does the composition of the dependencies. Tools that can analyze third-party binaries even if source isn't available, can limit exposures.

SAST is used as soon as code is available in a project and automates the coding compliance and automatic detection of defects and vulnerabilities. In fact, as soon as it's been typed in by a developer — the sooner the better. SAST tools that integrate with popular IDEs can provide immediate feedback in the developer's environment, before it gets committed to the source repository.

SAST comes in all types of shapes and sizes, some focus on coding standards, some, more advanced tools, step beyond the coding standards and explore data flow, control flow and abstract execution techniques to find defects in the source code that arise from programming or logic mistakes. The latter help achieve security in code and assist in creating security as code — by covering coding standards, security control enforcement and vulnerability detection.

Continuous integration and deployment processes rely on automation to realize their promised benefits. Without efficient progress through the cycle, the continuous nature of the processes amplifies inefficiencies. All new code has vulnerabilities, the challenge teams face is to remove these as early as possible with as little effort as possible. SCA ensures the software stack is secure while SAST improves custom code security and quality early in the process and helps developers do this as easily as possible, ideally, integrated into their development environment.

Summary

SAST and SCA tools are an important part of shifting security left because they are used immediately at the early stages of a project. They are also instrumental in helping enforce security controls and coding standards required for the application meanwhile detecting new, possibly complex, security vulnerabilities as they arise. SCA tools ensure the software stack is accounted for with a software bill of materials that show both contents and existing security vulnerabilities in your software dependencies. Over time, these tools are part of the regular part of the team's workflow providing better code but critical data on general progress.

The move to integrating security into an existing DevOps pipeline starts with introducing best practices early in the development lifecycle. SCA and SAST tools are ideal for facilitating this transition. In addition, the feedback to developers and management is crucial in both improving security, and improving the DevOps process in general.

Walter Capitani is Director of Technical Product Management for GrammaTech
Share this

Industry News

July 25, 2024

Backslash Security introduced its Fix Simulation and AI-powered Attack Path Remediation capabilities.

July 25, 2024

Check Point® Software Technologies Ltd. announced the appointment of Nadav Zafrir as Check Point Chief Executive Officer.

July 25, 2024

Sonatype announced that Sonatype SBOM Manager, its Enterprise-Class Software Bill of Materials (SBOM) solution, and its artifact repository manager, Nexus Repository, are now available in AWS Marketplace, a digital catalog with thousands of software listings from independent software vendors that make it easy to find, test, buy, and deploy software that runs on Amazon Web Services (AWS).

July 24, 2024

Broadcom unveiled the latest updates to VMware Cloud Foundation (VCF), the company’s flagship private cloud platform.

July 24, 2024

CAST launched CAST SBOM Manager, a new freemium product designed for product owners, release managers, and compliance specialists.

July 24, 2024

Zesty announced the launch of its Insights and Automation Platform.

July 23, 2024

Progress announced the availability of Progress® MarkLogic® FastTrack™, a UI toolkit for building data- and search-driven applications to visually explore complex connected data stored in Progress® MarkLogic® platform.

July 23, 2024

Snowflake will host the Llama 3.1 collection of multilingual open source large language models (LLMs) in Snowflake Cortex AI for enterprises to easily harness and build powerful AI applications at scale.

July 23, 2024

Secure Code Warrior announced the availability of SCW Trust Agent – a solution that assesses the specific security competencies of developers for every code commit.

July 23, 2024

GFT launched AI Impact, a new solution that leverages artificial intelligence to eliminate technical debt, increase developer efficiency and automate critical software development processes.

July 23, 2024

Code Metal announced a $13M seed, led by Shield Capital.

July 22, 2024

Atlassian Corporation has achieved Federal Risk and Authorization Management Program (FedRAMP) “In Process” status and is now listed on the FedRAMP marketplace.

July 18, 2024

Mission Cloud announced the launch of Mission Cloud Engagements - DevOps, a platform designed to transform how businesses manage and execute their AWS DevOps projects.

July 18, 2024

Accelario announces the release of its free TDM solution, including database virtualization and data anonymization.