Analysis

Analysis

Whether researching new components or tracking open-source in production, you can scan your applications throughout your software development lifecycle (SDLC) using the Sonatype Lifecycle evaluation process.

Sonatype Lifecycle Evaluation Process

  1. Evaluation using one of the Lifecycle integrations
  2. Scan all the file targets
  3. Search for dependencies found in the lock and manifest files
  4. Includes bill of materials (SBOMs) and modules.xml files
  5. Scans are sent through Lifecycle to the Sonatype Data Services for processing
  6. Component metadata and matches are returned to Lifecycle
  7. Lifecycle applies policies and any waivers to the raw results
  8. Violations and enforcement details are returned to the integration
  9. Notifications go out for new violations and webhooks are triggered
  10. The Lifecycle Reports UI is updated with the latest results

Advanced Binary Fingerprinting (ABF)

We examine binary fingerprints (similar to a truncated sha1 hash) of the files and not just the file names and manifests. ABF examines everything included in the application after the build, including any embedded dependencies. An ABF scan will not return false positives in its report. Sonatype data is tied to the component fingerprints of any files where the vulnerability is discovered. When a vulnerability is reported it is because the component fingerprint is in your application. Depending on the environment, there are a few points where this might be confusing.

  1. When the build includes development dependencies and clutter such as testing frameworks left in the source control repository. This can be corrected by rescoping the scan to only the artifacts deployed to production.
  2. Embedded dependencies that are renamed within the application. These cannot be detected by name matching or manifest scanning but will be caught by ABF.
  3. When vulnerable files are reused in other open-source components with completely different names. This secondary expansion of discovered vulnerabilities is unique to Sonatype Evaluations.
  4. Use ABF to track InnerSource Insight and apply policy to them.
  5. For Java applications, the ABF scanner uses an additional unique “partial matching” technology, which is capable of identifying when a component is “similar” but not “identical” to the cataloged version. Sometimes modifications to open source are made by development teams to 'fix' the vulnerabilities within the project. One major issue with this is that it introduces technical debt and potential risk to the application when those changes are not documented. Modifying open-source components will also trigger license risk for components with weak copyleft licenses.

Manifest Evaluation

Scans performed before the application has been built do not have open-source dependencies to fingerprint and must therefore leverage package-lock and manifest files to scan. This happens when directly analyzing the source control repositories or software bill of materials earlier in the development lifecycle. The Lifecycle scanners can use the lock or manifest files to get an idea of what should be in the final application. This will include any transitive dependencies if they are included in the lock file. Otherwise, it will report on only what is requested in the manifest.

Note
During Package Manifest scans, components that are not known to Sonatype (not present in Package Data Services) may still appear as an Exact Match with an identification source of Package Manifest.

In this case, the manifest file is treated as the source of truth, and the component is not validated against a public repository. No license or security intelligence is available beyond the coordinates declared in the manifest file.

Note
As a best practice, we recommend development teams include lock files with fixed versions with their project manifests. To guarantee a repeatable build, ranges are ignored.

Sonatype Lifecycle Data Analysis

Sonatype Lifecycle uses data derived from our automated vulnerability detection system — basically, a big funnel of sources (NVD, GitHub commits, OSS Index, Sonatype research, etc.) that is processed with automated techniques such as data filtering, aggregation, and machine learning algorithms.

Premium Capabilities

For most ecosystems, Sonatype researchers triage incoming data and determine if there is a vulnerability, creating a research ticket for further investigation when necessary. Tickets are prioritized and then entered into our human-curated research process. When research is complete, it goes into our data mart which feeds Sonatype Data Services. Data from the Sonatype Data Services is what you’ll then see in the Lifecycle Dashboard and Application Composition report after an application scan.

Standard Capabilities

For ecosystems with only Security/Identity data, we report any known security vulnerabilities but may not include in-depth research or license data.

Ecosystem Support

The table below lists the ecosystems (languages, package managers, etc.) that Sonatype Lifecycle supports.

Ecosystems that are supported by Sonatype Advanced Legal Pack are indicated as ALP.

Logo Language Package Manager Data Scan Type Data Capabilities
C++ Conan Security, Identity, License Manifest Standard
Conda Conda Security, Identity Manifest Standard
Dart and Flutter pub Security, Identity, License, ALP Manifest Premium
Go Go Modules Security, Identity, License, ALP Manifest Premium
Hugging Face Hugging Face Security, Identity, License ABF Standard
Java Maven, Gradle, Ivy Security, Identity, License, ALP ABF/Manifest Premium for Java (Maven)
Javascript npm, yarn Security, Identity, License, ALP ABF/Manifest Premium for Javascript (npm)
.NET NuGet Security, Identity, License, ALP ABF/Manifest Premium
Objective-C CocoaPods Security, Identity, License Manifest Standard
PHP Composer Security, Identity, License, ALP ABF/Manifest Standard
Python PyPi, Poetry, pipenv Security, Identity, License, ALP ABF/Manifest Premium
R (CRAN) CRAN Security, Identity ABF/Manifest Standard
RPM (Yum) Yum, Fedora EPEL repo Security, Identity, License, ALP ABF/Manifest Standard
Ruby RubyGems, Bundler Security, Identity, License, ALP ABF/Manifest Premium for Ruby (RubyGems)
Rust Cargo Security, Identity, License, ALP ABF/Manifest Standard
Swift Swift Security, Identity, License Manifest Standard

More on Analysis Examples Covered in this Section

The examples in this section use IQ Server CLI to scan components in Maven format.

For more examples on scanning components from other popular package managers/package formats refer to Referencing Package URL (purl) and Component Identifiers.