‘Shifting security left’ has become an important characteristic in modern software development. This allows for application security testing to be performed in the early stages of the development lifecycle, ensuring that security vulnerabilities are detected early before an application hits the production environment.
Four main stages of application security testing in CI/CD are Software Composition Analysis (SCA), Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), and Interactive Application Security Testing(IAST).
To get the best value when implementing security testing, the following points should be taken into consideration:
Here are some considerations important for introducing security testing in your CI pipelines.
Some important criteria used in selecting a tool may include:
Here are some example security testing tools which will include at least one open-source tool in each category.
OWASP Dependency-Check analyzes software dependencies by generating a report of Common Vulnerabilities and Exposures (CVEs) for each dependency using its Common Platform Enumeration (CPE). It can be used as a command-line tool or integrated directly as a project plugin.
OWASP Dependency Track is a software supply chain risk analysis tool that uses a Software Bill of Materials (SBOM) for vulnerability detection which offers capabilities that traditional SCA tools cannot provide. It can be deployed on a server or Kubernetes cluster.
Snyk provides useful integrations with IDEs, SCMs for identifying vulnerable software packages. Snyk offers both open-source and commercial options.
Sonarqube offers continuous code inspection with automatic reviews to identify security vulnerabilities as well as bugs, code smells with support for up to 20 programming languages.
Snyk code provides efficient and actionable static application security testing with SCM and IDE plugin integrations to identify security vulnerabilities in real-time.
Veracode Static Analysis allows development teams to code securely by offering SDLC and IDE integrations, sandbox environments for testing and fixing code.
Mobile Security Framework is an open-source all-in-one mobile application security evaluation tool that can carry out dynamic and static analysis. Its API allows for easy integration with CI/CD pipelines.
Veracode Dynamic Analysis provides a solution that allows automated scanning of web applications to discover weaknesses that can be exploited by a bad actor and tackle the threat immediately. This ability to test thousands of applications concomitantly with faultless outcomes can reduce the risk of exposure
Gitlab DAST which is built on the open-source OWASP ZAP tool makes it possible for GitLab users to configure and implement security testing on their applications within the CI/CD pipeline.
Zed Attack Proxy (ZAP) is an open-source application security testing tool. ZAP is developed especially for scanning web applications providing several options for automation and use in CI/CD pipelines.
Synopsis Managed DAST helps you identify common to critical software security vulnerabilities in your running application by using automated testing tools with limited manual testing.
Some other DAST solutions are:
Contrast Assess analyzes code through instrumentation techniques in real-time from within the application. Contrast Assess then uses the intelligence gathered within the application to confirm vulnerabilities in code.
Synopsis seeker uses instrumentation techniques to identify and determine the exploitability of vulnerabilities within running applications. It also offers integration into CI/CD workflows.
Hdiv uses runtime dataflow technique to expose flaws in the source code before they are exploited by reporting the file and line number of the vulnerability
Openrasp-iast is a gray box scanning tool that combines accurate detection of
vulnerabilities with internal hook point information.
Some other IAST solutions are:
In the next part of this series, we will look at common implementations and workflows when using some of the tools mentioned above. This will allow you to understand the possibilities in each phase of security testing and decide on the best approach for your organization.
Notes
Share Article: