SAST vs DAST: What is the right choice for application security testing?

by | May 25, 2019 | AppSec Classroom, Tool Studies

Share This Story, Choose Your Platform

The number of acronyms to keep track of today continues to grow at a rapid pace, especially in the AppSec industry. For software developers and security testers, SAST and DAST are two commonly used acronyms in the application security testing world, but are often misunderstood.

What is the difference between SAST and DAST tools? Do you need to use both, or is one of each enough? We answer these questions and more, so you can be confident you’re properly carry out application security testing.

Understanding Static Application Security Testing (SAST)

Static Application Security Testing (SAST) tools are used early in the software development process to test the application from the inside out (white-box testing tools). They do not require a running system to perform the evaluations. These tools test the source code, the byte code, or the binaries line-by-line, to expose weaknesses in the software before it is deployed. By detecting the flaws in the code early on, weaknesses can be fixed before attackers detect them and they become true vulnerabilities for an organization.

Other benefits of SAST tools include:

  • They find theoretical issues, looking for known patterns of vulnerability that developers may not be aware of
  • You can automate the testing process
  • They are scalable
  • They are ideal for problems that can be found automatically with high confidence, such as SQL Injection Flaws
  • The output is easily digested by developers, since these tools identify the exact location in the code where problems exist

SAST tools are not perfect, however, and they do present a fair share of challenges. They tend to be complex, difficult to use, and don’t work well together; they also require access to the source code, byte code, or binaries, which some organizations or individuals may be apprehensive to give up to application testers.  

SAST tools are also not able to identify vulnerabilities outside the application code, such as those defects that might be found in third-party interfaces. Furthermore, each SAST tool tends to only focus on a subset of potential weaknesses.  

A benchmarking study by the National Security Agency (NSA) Center for Assured Software found that the average SAST tool covers only eight out of 13 weakness classes and finds only 22 percent of the flaws in each weakness class. Based on these numbers, the average SAST tool is likely to find only 14 percent of the vulnerabilities in an application’s code. Typically, each tool tends to find different classes of weaknesses, resulting in little overlap between the results of different SAST tools. Leveraging multiple SAST tools is an industry best practice, but this approach can be costly and expensive.

SAST tools have their time and place, and we certainly recommend using them. Ideally, software developers would use multiple SAST tools during the development of an application in order to detect weaknesses before they become security risks for end users. Some of the major players in the SAST space include CodeSonar, VeraCode, and Checkmarx.

An overview of Dynamic Application Security Testing (DAST)

The key difference between SAST and Dynamic Application Security Testing (DAST) is that DAST is done from the outside looking in. It is a process that takes place while the application is running. Attempts are made to penetrate the application in a variety of ways to identify potential vulnerabilities, including those outside the code and in third-party interfaces. Source code, byte code, and binaries are not required with DAST, and it is easier to use and less expensive than SAST tools.

On the other hand, DAST tools are unable to isolate the exact site of a weakness in the code and have difficulty following coding guidelines. Since these tools require a running application, you cannot use them until later in the development process. These tools may not also sufficiently mimic an attack by someone who has internal knowledge about the application (as may be the case with an advanced attacker).

By providing the outside in perspective, DAST tools can provide valuable insight and are ideal to be used before an application goes live and when source code is not available to be tested. There are both commercial and open source DAST tools, including BurpSuite, OWASP ZAP, and AppScan.

Minimizing risks by combining application security testing tools

Both types of testing tools come with their advantages and disadvantages and can complement each other—one type being used earlier in the software development process and one later. For the most comprehensive coverage, multiple SAST and DAST tools should be used to detect potential vulnerabilities. This combination of SAST and DAST is referred to as Hybrid Analysis or Hybrid Application Security Testing (HAST)—an approach many penetration testers are leveraging today.

When using multiple tools, the challenge is that each tool produces reports using different naming conventions and severity ratings. This makes it difficult to combine and compare the vulnerabilities discovered.

Code Dx is the answer to this increasingly common issue experienced by software developers and security testers. It combines the results of multiple static and dynamic analysis tools and normalizes those results, enabling users to compare them on a common severity scale. Developers and security professionals can see which weaknesses were found by multiple tools, as opposed to those found only by one.

Additionally, by cross-referencing results from SAST and DAST tools, you can identify which potential vulnerabilities (identified by SAST tools) are actually exploitable (identified by DAST tools). Only then can you fully understand the true threats to your application and determine which vulnerabilities present the most severe threats. These high-risk issues demand your immediate attention.

When it comes to SAST vs. DAST, there is no clear winner. In fact, a winning approach is to make use of both types of tools (and more than one of each type) to make sure your application is secure. While this may seem like a daunting task, it is well worth the time and effort so you don’t have to deal with the tarnished reputation and lost revenue that comes with a security breach. And with tools available to streamline the AppSec process, there really is no excuse for cutting corners.

Share This Story, Choose Your Platform