SlideShare a Scribd company logo
Source Code Analysis Made Easy

The AppSec How-To:
Choosing a SAST Tool
GIVEN THE WIDE RANGE OF SOURCE CODE ANALYSIS
TOOLS, SECURITY PROFESSIONALS, AUDITORS AND
DEVELOPERS ALIKE ARE FACED WITH THE QUESTION:
How to assess a Static Application Security Testing (SAST)
tool for deployment?
Choosing the right tool requires different considerations
during each stage of the SAST tool evaluation process.
Evaluation Preparation
The following qualifiers are required prior to testing the SAST tool in order to set initial
expectations:
1.

List of languages. Ensure that the SAST tool supports the languages in the development
environment.

2.

Access to source and binary files. Some SAST tools run only on the source code files
(pre-compilation scanning), while others run on the binaries (post-compilation scanning).
As opposed to scanning on the source code, post-compilation scanning requires all project
dependences in order to run the scan.

3.

Deployment. Confirm the SAST tool supports the preferred mode of operation - on premise
or on-demand.

4.

Parties within the organization responsible for code security. Define how code security is
managed within the organization. For example, one organization might prefer having a
dedicated team – such as code auditors or an application security team – which provides
the security services to the organization.
While another organization might decide that each development team has an individual
responsible for the security. Each of these management models influences the SAST tool
architectural setup- including licenses, deployment and tool’s usage.

1
www.checkmarx.com
Source Code Analysis Made Easy

STAGE

1

Installation

Ease of installation during this step includes:
1.

Resources. Evaluate whether installation of the SAST tool is manual or automated.
If manual, consider whether installation requires specialized knowledge as well as the
number of installation man-hours.

2.

Scalability. Client software installation requires developer down-time during installation
and additional installation time per endpoint. A centrally-managed installation is a
one-time only process where additional servers can be added without the need for system
duplication.

3.

Licenses. Some licensing schemes are distributed where each endpoint requires its own license.
In other cases, the license is centrally-managed and is on a per-user basis, eliminating the need
for multiple licenses.

STAGE

2

Set-up

Two measuring factors need to be considered:
1.

Effort and complexity
o
Simplicity. Scanning overhead should be kept to a minimum. Scanning source
code should not require the user to perform excessive operations to start
running the tool.
o
Scaling to other languages. Adding a new language should be seamless to the
environment and should not entail a new scanning setup to support the
language.

2.

Time Scanning – regardless of the SAST tool - takes time.
The point here is to consider the SAST features, or the different scanning methods, that
the SAST tool provides to speed up the scanning process. For example, being able to
scan portions of the code is particularly helpful when there are lots of developers and
code to scan.

2
www.checkmarx.com
STAGE

3

Source Code Analysis Made Easy

Scan capabilities

Scanning capabilities include:
1.
Range of supported languages. The SAST tool should not merely support the current
development languages (as specified when qualifying the tool). It should also support
emerging technologies as these may prove to be significant in the long run. For example,
mobile or updated development languages (e.g Android, Objective C, Ruby on Rails).
2.

Range of supported frameworks. Supporting the development’s framework allows the
SAST tool to identify coding vulnerabilities, as well as to eliminate any false reporting
that results from not recognizing the framework.

3.

Multiple scans. The ability to run simultaneous scans or support multi-chaining,
multi-threading or multi-core processing environments.

4.

Vulnerability coverage. There are different classes of vulnerabilities that
the SAST tool should address:
o
Technical security vulnerabilities. Detection of common vulnerabilities as identified
by different industry standards such as OWASP Top 10, SANS and CWE.
Since the vulnerability taxonomy and ratings differ by each SAST vendor, it is
necessary to receive from each SAST vendor their list and normalize them
one against the other for a true vulnerability coverage comparison.
o
Business logic flaws. These include authentication by-passing mechanisms, as well
as backdoors in the application.
o
Best coding practices. For example, error handling, elements usage and race conditions.

5.

Result accuracy. To ensure the accuracy of the results, the tool should scan and its output
compared against a test application for which the results are known a-priori.
One such common test bed is OWASP’s WebGoat project. However, the real test should be
against an in-house application- unknown to the tool – to prevent the tool from being tuned in
advanced to the testing environment.
Result accuracy is measured by:
o
Amount of True Positives (TPs). The percentage of results that have been correctly
identified as actual vulnerabilities.
o
Amount of False Positives (FPs). Although there is no such SAST tool today that
will output a totally FP-free scan, the ideal is to achieve a minimal amount
– up until a handful of these.

6.

Customizability. The ability to adapt the scan results to the specific software frameworks
and business logic of the organization. Each organization uses its' own framework for
accessing databases and sanitizing input data and so the SAST tool must be customizable
to the proprietary code. This capability also eliminates false positives that occur due to the
custom code and the organization’s business logic.

3
www.checkmarx.com
Source Code Analysis Made Easy

7.

Ability to aggregate scans. Aggregation allows all the scans of the project to be displayed as a
whole.

STAGE

4

Results Management

Scan results need to be presented in a clear manner to enable convenient and quick fixing.
1.

Results analysis and management tools. Results analysis should provide the user with the
relevant security intelligence and tools to remediate flaws in virtually zero-time.
o
Vulnerability flow. Visibility into the code flow down to the exact line
of the vulnerable
code helps developers to understand the vulnerability flow and its meaning.
o
Best fix locations. Optimal vulnerability remediation can be presented in textual or visual
formats. For example, the ability to pinpoint the precise vulnerability which- if
fixed-eliminates all vulnerabilities that depend on that particular code flaw.
o
Tagging and filtering capabilities. Users should be able to group results according to
policies, and prioritize results from highly important to un-exploitable. Further, the tools
should provide the ability to filter out results as in the case of a test directory.
o
Ability to track projects. The scan tool should be able to keep the status of vulnerabilities
between scans for tracking purposes.
o
Scan comparison. The SAST tool should enable the comparison of results from one scan
to another to monitor the state of vulnerabilities.

2.

Reports. The tool should provide multiple layers of reporting.
o
Dashboard. Provides a typical executive summary section with a high-level overview
of the state of the application’s code.
o
Reports per policy. The ability to configure a report to present only relevant information.
For example, PCI.

STAGE

5

Integration into the SDLC

There are both logical and technological aspects when integrating source code analysis within
the Software Development Life Cycle (SDLC):
1.

SDLC model. Measurements include:
o
Early-stage scanning. Scanning early supports SDLC’s fundamental concept of fixing
code flaws – including security vulnerabilities - as early as possible within the
development process. Various SAST tools provide the ability to scan code prior to
code compilation, or before the code’s check-in.
4
www.checkmarx.com
Source Code Analysis Made Easy

Support for secure Agile development and Continuous Deployment environments.
Agile and Continuous Deployment (aka DevOps) mandate that scanning must be
done within minutes, and cannot tolerate any latency due to excessive processing,
scanning overhead and fixing. Accordingly, the SAST tool should enable the
developers to perform ad-hoc scanning from within their development
environments.
Rescanning. Rescanning a project should not require the redundant scanning of
files previously analyzed. For example, SAST tools with incremental scanning features
scan only the code – and its dependencies – that were modified from the previous scan.

o

o

2.

SDLC tools. The SAST tool should be able to incorporate, as-if naturally, within the enterprise
systems without requiring extra tuning or configuration. The point here is not only to save
developer time but also making security part of the development process.
Suggested integration points include:
o
Development environment. The SAST tool needs to seamlessly fit into the
development environment – regardless of language and compiler versions.
This also includes integration within the IDE-development tool (e.g. Visual Studio,
Eclipse, IntelliJ).
o
Build management tools. e.g. TeamCity, Bamboo, Jenkins, Maven and Ant.
o
Source-code repositories. e.g. GIT, SVN, TFS, Mercurial, ClearCase. Several SAST tools
can run within the source code repository, without even requiring a build management
system.
o
Bug-tracking system. The SAST tool should be able to inject results of the scan into bug
tracking systems to prioritize vulnerability fixing according to release schedule, time
to fix, vulnerability impact, and how it fits with other tasks.

STAGE

6

Responsiveness and Support of Vendor

Last but not least, a SAST purchase is an ongoing process. Just like any tool, there may be questions
regarding its usage, best practices and of course, customizability aspects. Consider the following
services from the vendor:
-

Implementation of customized SAST queries (aka rules) and policies for your
proprietary code
Engineer support and training for the SAST tool users
Account manager to accompany your organization throughout the lifetime of
the SAST tool
Availability and responsiveness to inquiries throughout the lifetime of the SAST tool

5
www.checkmarx.com

More Related Content

What's hot (20)

PPTX
Myths of validation
Jeff Thomas
 
PDF
Towards new shores with cross-system SoD analyses. [Webinar]
akquinet enterprise solutions GmbH
 
PDF
System Analysis and Design Program
Flevy.com Best Practices
 
PDF
Internal Audit Solution
MetricStream Inc
 
PDF
Challenges in Assessing Technical Debt based on Dynamic Runtime Data
QAware GmbH
 
PDF
SAP Security & Compliance Audits. Find your vulnerabilities before you get hu...
akquinet enterprise solutions GmbH
 
PDF
Data Security Service Offering-v3
Abe Newton
 
PDF
CAST Architecture Checker
CAST
 
PPT
Fisma FedRAMP Drupal
Mike Lemire
 
PDF
Secerno SQLagile datasheet
Paul Tompsett
 
PPTX
Network Security Offering by GSS America
Gss America
 
PPT
Case In Point
Daniel Boisvert
 
PDF
ISACA Complied Arabic English Glossary for use in Governance applications and...
Tamer Shoukry
 
PDF
RMF Step 4: ASSESS (NIST SP 800-53A Rev.1)
James W. De Rienzo
 
PDF
Clinical Trial Management System Implementation Guide
Perficient, Inc.
 
PDF
FedRAMP - Federal Agencies & Cloud Service Providers meet FISMA 2.0
Valdez Ladd MBA, CISSP, CISA,
 
PDF
Cometari Dedicated Solutions General Offer
Jakub Hajek
 
PDF
Gigamon U - Net Scouts Honor, Integrated Performance Monitoring & Forensic An...
Grant Swanson
 
PDF
Real-time QC for Factories Whitepaper
Chang Phui-Hock
 
PDF
End to-end root cause analysis minimize the time to incident resolution
Cleo Filho
 
Myths of validation
Jeff Thomas
 
Towards new shores with cross-system SoD analyses. [Webinar]
akquinet enterprise solutions GmbH
 
System Analysis and Design Program
Flevy.com Best Practices
 
Internal Audit Solution
MetricStream Inc
 
Challenges in Assessing Technical Debt based on Dynamic Runtime Data
QAware GmbH
 
SAP Security & Compliance Audits. Find your vulnerabilities before you get hu...
akquinet enterprise solutions GmbH
 
Data Security Service Offering-v3
Abe Newton
 
CAST Architecture Checker
CAST
 
Fisma FedRAMP Drupal
Mike Lemire
 
Secerno SQLagile datasheet
Paul Tompsett
 
Network Security Offering by GSS America
Gss America
 
Case In Point
Daniel Boisvert
 
ISACA Complied Arabic English Glossary for use in Governance applications and...
Tamer Shoukry
 
RMF Step 4: ASSESS (NIST SP 800-53A Rev.1)
James W. De Rienzo
 
Clinical Trial Management System Implementation Guide
Perficient, Inc.
 
FedRAMP - Federal Agencies & Cloud Service Providers meet FISMA 2.0
Valdez Ladd MBA, CISSP, CISA,
 
Cometari Dedicated Solutions General Offer
Jakub Hajek
 
Gigamon U - Net Scouts Honor, Integrated Performance Monitoring & Forensic An...
Grant Swanson
 
Real-time QC for Factories Whitepaper
Chang Phui-Hock
 
End to-end root cause analysis minimize the time to incident resolution
Cleo Filho
 

Viewers also liked (20)

PPT
Master's Thesis Defense
lqi
 
ODP
Static Analysis in IDEA
HamletDRC
 
PPTX
Fortify technology
Imad Nom de famille
 
PPTX
200 Open Source Projects Later: Source Code Static Analysis Experience
Andrey Karpov
 
PPTX
Static code analysis
Rune Sundling
 
PPT
use case point estimation
عبدالغني الهجار
 
PPT
Source Code Scanners
Pawel Krawczyk
 
PPTX
Static code analysis
mashaathukorala
 
PDF
Best Practices of Static Code Analysis in the SDLC
Parasoft_Mitchell
 
PPTX
Poster Analysis Source Code
kirstysals
 
PDF
Static Analysis and Code Optimizations in Glasgow Haskell Compiler
Ilya Sergey
 
PDF
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
Šumadin Šumić
 
PPTX
Fortify dev ops (002)
Madhavan Marimuthu
 
PPTX
Hp Fortify Pillar
Ed Wong
 
PDF
Static Code Analysis
Annyce Davis
 
PPTX
Hp fortify source code analyzer(sca)
Nagaraju Repala
 
PPTX
Java Code Quality Tools
Orest Ivasiv
 
PPTX
Fortify - Source Code Analyzer
n|u - The Open Security Community
 
PPTX
Hp Fortify Mobile Application Security
Ed Wong
 
PDF
static ABAP code analyzers
Markus Theilen
 
Master's Thesis Defense
lqi
 
Static Analysis in IDEA
HamletDRC
 
Fortify technology
Imad Nom de famille
 
200 Open Source Projects Later: Source Code Static Analysis Experience
Andrey Karpov
 
Static code analysis
Rune Sundling
 
use case point estimation
عبدالغني الهجار
 
Source Code Scanners
Pawel Krawczyk
 
Static code analysis
mashaathukorala
 
Best Practices of Static Code Analysis in the SDLC
Parasoft_Mitchell
 
Poster Analysis Source Code
kirstysals
 
Static Analysis and Code Optimizations in Glasgow Haskell Compiler
Ilya Sergey
 
685163main 2 4-a-swat_extendingbenefitsofstaticcodeanalysistools_final
Šumadin Šumić
 
Fortify dev ops (002)
Madhavan Marimuthu
 
Hp Fortify Pillar
Ed Wong
 
Static Code Analysis
Annyce Davis
 
Hp fortify source code analyzer(sca)
Nagaraju Repala
 
Java Code Quality Tools
Orest Ivasiv
 
Fortify - Source Code Analyzer
n|u - The Open Security Community
 
Hp Fortify Mobile Application Security
Ed Wong
 
static ABAP code analyzers
Markus Theilen
 
Ad

Similar to The App Sec How-To: Choosing a SAST Tool (20)

PDF
A Successful SAST Tool Implementation
Checkmarx
 
PPTX
5 things i wish i knew about sast (DSO-LG July 2021)
Michael Man
 
PPTX
Top 10 static code analysis tool
scmGalaxy Inc
 
PDF
Static code analysis
Prancer Io
 
PPTX
How to Use Static Application Security Testing for Web Applications.pptx
Dev Software
 
PPTX
How to Use Static Application Security Testing for Web Applications
Dev Software
 
PDF
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Denim Group
 
PPTX
What Good is this Tool? A Guide to Choosing the Right Application Security Te...
Kevin Fealey
 
PDF
Standardizing Source Code Security Audits
ijseajournal
 
PPTX
Static Application Security Testing Strategies for Automation and Continuous ...
Kevin Fealey
 
PPTX
Static Code Analysis
Obika Gellineau
 
PDF
Presentation on vulnerability analysis
Asif Anik
 
PPTX
Static Analysis Security Testing for Dummies... and You
Kevin Fealey
 
PPTX
How to Avoid Continuously Delivering Faulty Software
Perforce
 
PPTX
Static Analysis Tools and Frameworks: Overcoming a Dangerous Blind Spot
Cigital
 
PDF
Analyst Resources for Chief Information Security Officers (CISOs)
Synopsys Software Integrity Group
 
PDF
Why Don't Software Developers Use Static Analysis Tools to Find Bugs?
PVS-Studio
 
PPTX
[OPD 2019] AST Platform and the importance of multi-layered application secu...
OWASP
 
PPTX
Software Analytics: Towards Software Mining that Matters (2014)
Tao Xie
 
PDF
Adobe XD Crack Version Free Download 2025 ?
bantelyg
 
A Successful SAST Tool Implementation
Checkmarx
 
5 things i wish i knew about sast (DSO-LG July 2021)
Michael Man
 
Top 10 static code analysis tool
scmGalaxy Inc
 
Static code analysis
Prancer Io
 
How to Use Static Application Security Testing for Web Applications.pptx
Dev Software
 
How to Use Static Application Security Testing for Web Applications
Dev Software
 
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Denim Group
 
What Good is this Tool? A Guide to Choosing the Right Application Security Te...
Kevin Fealey
 
Standardizing Source Code Security Audits
ijseajournal
 
Static Application Security Testing Strategies for Automation and Continuous ...
Kevin Fealey
 
Static Code Analysis
Obika Gellineau
 
Presentation on vulnerability analysis
Asif Anik
 
Static Analysis Security Testing for Dummies... and You
Kevin Fealey
 
How to Avoid Continuously Delivering Faulty Software
Perforce
 
Static Analysis Tools and Frameworks: Overcoming a Dangerous Blind Spot
Cigital
 
Analyst Resources for Chief Information Security Officers (CISOs)
Synopsys Software Integrity Group
 
Why Don't Software Developers Use Static Analysis Tools to Find Bugs?
PVS-Studio
 
[OPD 2019] AST Platform and the importance of multi-layered application secu...
OWASP
 
Software Analytics: Towards Software Mining that Matters (2014)
Tao Xie
 
Adobe XD Crack Version Free Download 2025 ?
bantelyg
 
Ad

More from Checkmarx (13)

PDF
Application Security Guide for Beginners
Checkmarx
 
PDF
The Web AppSec How-To: The Defender's Toolbox
Checkmarx
 
PDF
10 Tips to Keep Your Software a Step Ahead of the Hackers
Checkmarx
 
PDF
The 5 Biggest Benefits of Source Code Analysis
Checkmarx
 
PDF
A Platform for Application Risk Intelligence
Checkmarx
 
PDF
How Virtual Compilation Transforms Static Code Analysis
Checkmarx
 
PDF
Source Code vs. Binary Code Analysis
Checkmarx
 
PPTX
DevOps & Security: Here & Now
Checkmarx
 
PDF
AppSec How-To: Achieving Security in DevOps
Checkmarx
 
PDF
The Security State of The Most Popular WordPress Plug-Ins
Checkmarx
 
PDF
10 Steps To Secure Agile Development
Checkmarx
 
PPTX
Graph Visualization - OWASP NYC Chapter
Checkmarx
 
PDF
Happy New Year!
Checkmarx
 
Application Security Guide for Beginners
Checkmarx
 
The Web AppSec How-To: The Defender's Toolbox
Checkmarx
 
10 Tips to Keep Your Software a Step Ahead of the Hackers
Checkmarx
 
The 5 Biggest Benefits of Source Code Analysis
Checkmarx
 
A Platform for Application Risk Intelligence
Checkmarx
 
How Virtual Compilation Transforms Static Code Analysis
Checkmarx
 
Source Code vs. Binary Code Analysis
Checkmarx
 
DevOps & Security: Here & Now
Checkmarx
 
AppSec How-To: Achieving Security in DevOps
Checkmarx
 
The Security State of The Most Popular WordPress Plug-Ins
Checkmarx
 
10 Steps To Secure Agile Development
Checkmarx
 
Graph Visualization - OWASP NYC Chapter
Checkmarx
 
Happy New Year!
Checkmarx
 

Recently uploaded (20)

PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 

The App Sec How-To: Choosing a SAST Tool

  • 1. Source Code Analysis Made Easy The AppSec How-To: Choosing a SAST Tool GIVEN THE WIDE RANGE OF SOURCE CODE ANALYSIS TOOLS, SECURITY PROFESSIONALS, AUDITORS AND DEVELOPERS ALIKE ARE FACED WITH THE QUESTION: How to assess a Static Application Security Testing (SAST) tool for deployment? Choosing the right tool requires different considerations during each stage of the SAST tool evaluation process. Evaluation Preparation The following qualifiers are required prior to testing the SAST tool in order to set initial expectations: 1. List of languages. Ensure that the SAST tool supports the languages in the development environment. 2. Access to source and binary files. Some SAST tools run only on the source code files (pre-compilation scanning), while others run on the binaries (post-compilation scanning). As opposed to scanning on the source code, post-compilation scanning requires all project dependences in order to run the scan. 3. Deployment. Confirm the SAST tool supports the preferred mode of operation - on premise or on-demand. 4. Parties within the organization responsible for code security. Define how code security is managed within the organization. For example, one organization might prefer having a dedicated team – such as code auditors or an application security team – which provides the security services to the organization. While another organization might decide that each development team has an individual responsible for the security. Each of these management models influences the SAST tool architectural setup- including licenses, deployment and tool’s usage. 1 www.checkmarx.com
  • 2. Source Code Analysis Made Easy STAGE 1 Installation Ease of installation during this step includes: 1. Resources. Evaluate whether installation of the SAST tool is manual or automated. If manual, consider whether installation requires specialized knowledge as well as the number of installation man-hours. 2. Scalability. Client software installation requires developer down-time during installation and additional installation time per endpoint. A centrally-managed installation is a one-time only process where additional servers can be added without the need for system duplication. 3. Licenses. Some licensing schemes are distributed where each endpoint requires its own license. In other cases, the license is centrally-managed and is on a per-user basis, eliminating the need for multiple licenses. STAGE 2 Set-up Two measuring factors need to be considered: 1. Effort and complexity o Simplicity. Scanning overhead should be kept to a minimum. Scanning source code should not require the user to perform excessive operations to start running the tool. o Scaling to other languages. Adding a new language should be seamless to the environment and should not entail a new scanning setup to support the language. 2. Time Scanning – regardless of the SAST tool - takes time. The point here is to consider the SAST features, or the different scanning methods, that the SAST tool provides to speed up the scanning process. For example, being able to scan portions of the code is particularly helpful when there are lots of developers and code to scan. 2 www.checkmarx.com
  • 3. STAGE 3 Source Code Analysis Made Easy Scan capabilities Scanning capabilities include: 1. Range of supported languages. The SAST tool should not merely support the current development languages (as specified when qualifying the tool). It should also support emerging technologies as these may prove to be significant in the long run. For example, mobile or updated development languages (e.g Android, Objective C, Ruby on Rails). 2. Range of supported frameworks. Supporting the development’s framework allows the SAST tool to identify coding vulnerabilities, as well as to eliminate any false reporting that results from not recognizing the framework. 3. Multiple scans. The ability to run simultaneous scans or support multi-chaining, multi-threading or multi-core processing environments. 4. Vulnerability coverage. There are different classes of vulnerabilities that the SAST tool should address: o Technical security vulnerabilities. Detection of common vulnerabilities as identified by different industry standards such as OWASP Top 10, SANS and CWE. Since the vulnerability taxonomy and ratings differ by each SAST vendor, it is necessary to receive from each SAST vendor their list and normalize them one against the other for a true vulnerability coverage comparison. o Business logic flaws. These include authentication by-passing mechanisms, as well as backdoors in the application. o Best coding practices. For example, error handling, elements usage and race conditions. 5. Result accuracy. To ensure the accuracy of the results, the tool should scan and its output compared against a test application for which the results are known a-priori. One such common test bed is OWASP’s WebGoat project. However, the real test should be against an in-house application- unknown to the tool – to prevent the tool from being tuned in advanced to the testing environment. Result accuracy is measured by: o Amount of True Positives (TPs). The percentage of results that have been correctly identified as actual vulnerabilities. o Amount of False Positives (FPs). Although there is no such SAST tool today that will output a totally FP-free scan, the ideal is to achieve a minimal amount – up until a handful of these. 6. Customizability. The ability to adapt the scan results to the specific software frameworks and business logic of the organization. Each organization uses its' own framework for accessing databases and sanitizing input data and so the SAST tool must be customizable to the proprietary code. This capability also eliminates false positives that occur due to the custom code and the organization’s business logic. 3 www.checkmarx.com
  • 4. Source Code Analysis Made Easy 7. Ability to aggregate scans. Aggregation allows all the scans of the project to be displayed as a whole. STAGE 4 Results Management Scan results need to be presented in a clear manner to enable convenient and quick fixing. 1. Results analysis and management tools. Results analysis should provide the user with the relevant security intelligence and tools to remediate flaws in virtually zero-time. o Vulnerability flow. Visibility into the code flow down to the exact line of the vulnerable code helps developers to understand the vulnerability flow and its meaning. o Best fix locations. Optimal vulnerability remediation can be presented in textual or visual formats. For example, the ability to pinpoint the precise vulnerability which- if fixed-eliminates all vulnerabilities that depend on that particular code flaw. o Tagging and filtering capabilities. Users should be able to group results according to policies, and prioritize results from highly important to un-exploitable. Further, the tools should provide the ability to filter out results as in the case of a test directory. o Ability to track projects. The scan tool should be able to keep the status of vulnerabilities between scans for tracking purposes. o Scan comparison. The SAST tool should enable the comparison of results from one scan to another to monitor the state of vulnerabilities. 2. Reports. The tool should provide multiple layers of reporting. o Dashboard. Provides a typical executive summary section with a high-level overview of the state of the application’s code. o Reports per policy. The ability to configure a report to present only relevant information. For example, PCI. STAGE 5 Integration into the SDLC There are both logical and technological aspects when integrating source code analysis within the Software Development Life Cycle (SDLC): 1. SDLC model. Measurements include: o Early-stage scanning. Scanning early supports SDLC’s fundamental concept of fixing code flaws – including security vulnerabilities - as early as possible within the development process. Various SAST tools provide the ability to scan code prior to code compilation, or before the code’s check-in. 4 www.checkmarx.com
  • 5. Source Code Analysis Made Easy Support for secure Agile development and Continuous Deployment environments. Agile and Continuous Deployment (aka DevOps) mandate that scanning must be done within minutes, and cannot tolerate any latency due to excessive processing, scanning overhead and fixing. Accordingly, the SAST tool should enable the developers to perform ad-hoc scanning from within their development environments. Rescanning. Rescanning a project should not require the redundant scanning of files previously analyzed. For example, SAST tools with incremental scanning features scan only the code – and its dependencies – that were modified from the previous scan. o o 2. SDLC tools. The SAST tool should be able to incorporate, as-if naturally, within the enterprise systems without requiring extra tuning or configuration. The point here is not only to save developer time but also making security part of the development process. Suggested integration points include: o Development environment. The SAST tool needs to seamlessly fit into the development environment – regardless of language and compiler versions. This also includes integration within the IDE-development tool (e.g. Visual Studio, Eclipse, IntelliJ). o Build management tools. e.g. TeamCity, Bamboo, Jenkins, Maven and Ant. o Source-code repositories. e.g. GIT, SVN, TFS, Mercurial, ClearCase. Several SAST tools can run within the source code repository, without even requiring a build management system. o Bug-tracking system. The SAST tool should be able to inject results of the scan into bug tracking systems to prioritize vulnerability fixing according to release schedule, time to fix, vulnerability impact, and how it fits with other tasks. STAGE 6 Responsiveness and Support of Vendor Last but not least, a SAST purchase is an ongoing process. Just like any tool, there may be questions regarding its usage, best practices and of course, customizability aspects. Consider the following services from the vendor: - Implementation of customized SAST queries (aka rules) and policies for your proprietary code Engineer support and training for the SAST tool users Account manager to accompany your organization throughout the lifetime of the SAST tool Availability and responsiveness to inquiries throughout the lifetime of the SAST tool 5 www.checkmarx.com