<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=521127644762074&amp;ev=PageView&amp;noscript=1">

Open Source Vulnerability Scanning

Open source vulnerability scanners are used to detect open source components in software applications. Some scanners are referred to as software composition analysis (SCA) tools, and it’s basically an automated process that identifies all of the open source components that exist in any codebase, whether it’s for an open source or commercially available application.

This article explores:

  • How open source vulnerability scanning works
  • Vulnerabilities in open source components
  • Benefits of using an open source vulnerability scanner
  • Why you need a vulnerability scanner if you use Kubernetes
  • Recommended tools for open source vulnerability scanning

How does open source vulnerability scanning work?

Software composition analysis is an open source vulnerability scanning solution that performs analysis that evaluates security, open source license compliance, and code quality. By inspecting package managers, manifest files, source code, binary files, container images, and other types of files to identify open source components, these tools create a list (sometimes called an open source bill of materials) of all open source components in an application. Then open source vulnerability scanning solutions compare the list of identified open source against a variety of databases, such as the one from the National Institute of Standards and Technology (NIST), the National Vulnerability Database (NVD). The NVD is the United States government’s repository of standards based vulnerability management data, and it includes databases of security checklist references, security-related software flaws, misconfigurations, product names, and impact metrics.

Vulnerabilities in open source components

The NVD uses the Common Vulnerability Scoring System (CVSS), which is an open framework used to communicate the characteristics and severity of software vulnerabilities. The Common Vulnerabilities and Exposures (CVE) system assigns unique, common identifiers for publicly known information security vulnerabilities, and CVEs are assigned by a CVE Numbering Authority (CNA). There are three primary types of CVE number assignments:

  1. The Mitre Corporation, which functions as Editor and Primary CNA
  2. Some CNAs assign CVE numbers for their own products, such as Microsoft, Oracle, HP, Red Hat, and so on
  3. Third-party coordinators, such as the CERT Coordination Center, may assign CVE numbers for products not covered by other CNAs

CVEs ensure that there are consistent descriptions of vulnerabilities, and information technology and cybersecurity professionals rely on CVE records to prioritize and address vulnerabilities. CVEs provide a standardized identifier for any specific vulnerability or exposure, which helps you assess information about the problem using multiple sources, and the CVSS assigns scores based on a variety of factors.

Common Vulnerability Scoring System Version 3.1 CalculatorSource: Common Vulnerability Scoring System Version 3.1 Calculator

These scores are based on base metrics for exploitability and impact; what they call the temporal metric group, which includes exploit code maturity, remediation level, and report confidence; and the environmental metric group, which includes modified base metrics and confidentiality, integrity, and availability requirements. The CVSS scores aren’t the only consideration, of course. You also need to think about the impact the vulnerability may have on application Confidentiality, Integrity, Availability (CIA) and how difficult it would be for an attacker to exploit the vulnerability.

Known open source vulnerabilities are popular with attackers, because there’s often a known exploit available, which enables the black hat hackers to try the attack against multiple targets. All they need is to find a few that haven’t patched the vulnerability, allowing unwanted access into your systems.

Benefits of using an open source vulnerability scanner

Today, open source software is an essential part of most applications. Developers today use open source today for many reasons:

  • Open source encourages collaboration
  • Open source allows you to reuse common code, so you can focus on your differentiators
  • Open source allows others to adopt and build on top of your projects
  • Open source encourages innovation

Some companies, including Fairwinds, use open source to provide Kubernetes support and help the community to build the right Kubernetes architecture and deployment environments. Our Polaris offering runs checks to find misconfigurations and help resolve them, while RBAC Manager helps with role management and authorization. Open source projects and solutions offer a great deal of value, but also present some risk. Open source vulnerability scanners help organizations mitigate that risk by finding open source in your code base and comparing it against an open source vulnerability database to determine whether there are any vulnerable components in your code. Visibility into your open source vulnerabilities helps you keep your applications secure, an essential consideration as organizations face evolving risks.

Why you need a vulnerability scanner if you use Kubernetes

Scanning for open source vulnerabilities using a vulnerability scanner is essential for any organization, and certainly also necessary for those adopting Kubernetes. Most application software relies on open source packages, libraries, and other third party components, and applications running on Kubernetes are no exception. To improve the security posture of your Kubernetes applications, you need to consider vulnerability scanning, including scanning container images for open source vulnerabilities.

Automating scanning early in the software development lifecycle and continuously scanning your containers and Kubernetes helps you to find and prioritize risks, and remediate vulnerabilities as they are discovered. Without continuous scanning, you put your organization at risk, as new CVEs are discovered and disclosed regularly. Cyber attackers are continuously seeking ways to steal data, tamper your deployment, and otherwise cause harm.

Kubernetes is the de facto standard for container orchestration, and itself an open source project. Kubernetes is central to the cloud-native movement, and an increase in cloud applications means that this trend is likely to continue. Linux containers are an integral part of any Kubernetes deployment, so scanning these containers for open source security vulnerabilities is essential for maintaining a secure environment. Container images come from a variety of sources, such as Docker Hub and other public repositories, and are based on different Linux distributions, such as Ubuntu, Amazon Linux, Debian, and Alpine. Choosing the right vulnerability scanning solution means picking one that references the NVD and distribution-specific security advisories, supports the package manager in use at your organization, and provides language support for any language-specific dependencies and libraries in use in your applications. Automated and integrated vulnerabilities scanning ensures that you stay up to date with all vulnerabilities, whether your applications are deployed or not.

Recommended tools for vulnerability scanning

There are several vulnerability assessment, or vulnerability scanning, tools available, including commercial, free, and open source solutions. Regardless of which tools you choose, be sure that you get the information you need to track the open source code in your code from development through deployment. Learn more about a few of the options available:

Black Duck

Synopsys’s Black Duck software composition analysis creates an accurate Bill of Materials (BOM) for applications and containers, detecting open source through dependency analysis, codeprint analysis, binary analysis, and snippet analysis. This type of vulnerability assessment also allows you to define policies for open source use, security risk, and license compliance and automates policy enforcement and DevOps integrations.

Arachni

Arachni is a free web application security scanner framework, developed in Ruby. Its source code is public and available for review. Arachni supports all major operating systems: Microsoft Windows, Mac OS X, and Linux. It’s distributed via portable packages and provides vulnerability detection for modern web application technologies. Arachni is free for most use cases, including scanning open source projects.

Anchore

Anchore Engine is an open source Docker container policy compliance and static analysis solution. It performs image inspection, analysis, and evaluation of the code in containers automatically. Anchor also provides a policy evaluation for each image, integrates with container registries and CI/CD tools, and finds known vulnerabilities in containers.

OpenVAS

OpenVAS is an open vulnerability assessment scanner that provides un-authenticated and authenticated testing, high-level and low-level internet and industrial protocols, performance tuning for large-scale scans, and an internal programming language to implement any type of vulnerability test.

Trivy

Trivy is an open source vulnerability assessment tool from Aqua Security that detects vulnerabilities in open source software. Triivy also provides a short explanation of risk, which helps developers decide which components they want to use. Trivy merges vulnerability scanning into the Integrated Development Environment (IDE). Open source contributors continue to create integrations and add-ons for Trivy, including a Prometheus exporter for extracting vulnerability metrics, and a Helm chart for installing Trivy into a Kubernetes cluster. Fairwinds Insights integrates Trivy into its platform to enable open source scanning throughout the development lifecycle.

Scan for Open Source Vulnerabilities

Regardless of which tools you use to secure your software, conducting a vulnerability assessment to scan for open source vulnerabilities is an important step in securing your applications. Open source vulnerabilities can pose significant risks in your Kubernetes environment, and scanning for vulnerabilities using a vulnerability assessment tool throughout your development lifecycle can help you identify risks early and fix newly discovered vulnerabilities quickly. Fairwinds Insights integrates tightly into your CI/CD pipeline, helping your DevOps teams to prevent misconfigurations and remediate vulnerabilities more easily. Learn how Fairwinds can help you deploy applications and services running in Kubernetes environments with confidence, with built in vulnerability assessment tools that help you find open source vulnerabilities and misconfiguration issues quickly.

Start a Fairwinds Insights Trial. Learn More