Skip to content

Commit cc1577a

Browse files
committed
[GR-59202] Update Command-Line Scanning for vulnerabilities in application dependencies.
PullRequest: graal/20236
2 parents df5bf48 + 7733216 commit cc1577a

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

docs/security/SBOM.md

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -69,32 +69,39 @@ It outputs the SBOM in the following format:
6969
}
7070
```
7171

72-
## Vulnerability Scanning
72+
## Enabling Security Scanning
7373

74-
To scan for vulnerable libraries, use either the [GraalVM GitHub Action](https://github.com/marketplace/actions/github-action-for-graalvm) for automated scanning, or submit the SBOM to a vulnerability scanner directly.
74+
You can leverage the generated SBOM to integrate with security scanning solutions.
75+
There are a variety of tools to help detect and mitigate security vulnerabilities in your application dependencies.
7576

76-
### GitHub Integration
77+
One example is [Application Dependency Management (ADM)](https://docs.oracle.com/iaas/Content/application-dependency-management/concepts/adm_overview.htm){:target="_blank"} from Oracle.
78+
When submitting your SBOM to the ADM vulnerability scanner, it identifies application dependencies and flags those containing known security vulnerabilities.
79+
ADM relies on vulnerability reports from community sources, including the National Vulnerability Database (NVD).
80+
It also integrates with GitHub Actions, GitLab, and Jenkins Pipelines.
7781

78-
When using the [GraalVM GitHub Action](https://github.com/marketplace/actions/github-action-for-graalvm), the SBOM can be automatically generated and submitted to GitHub's dependency submission API for continuous scanning.
79-
This enables:
80-
- Vulnerability tracking with GitHub's Dependabot.
81-
- Dependency tracking with GitHub's Dependency Graph.
82-
83-
If you use GitHub, this integration offers you the simplest setup and powerful security tooling.
84-
85-
### Command-Line Scanning
86-
87-
The popular [Anchore software supply chain management platform](https://anchore.com/) makes the `grype` scanner available for free.
88-
You can check whether the libraries given in your SBOMs have known vulnerabilities documented in Anchore's database.
89-
For this purpose, the output of the tool can be fed directly to the `grype` scanner to check for vulnerable libraries, using the command `$JAVA_HOME/bin/native-image-inspect --sbom <path_to_binary> | grype` which produces the following output:
82+
Another popular command-line scanner is `grype`, part of the [Anchore software supply chain management platform](https://anchore.com/){:target="_blank"}.
83+
With `grype`, you can check whether the libraries listed in your SBOMs have known vulnerabilities documented in Anchore's database.
84+
The output of the `native-image-inspect` tool can be fed directly into `grype` to scan for vulnerable libraries using the following command:
85+
```bash
86+
$JAVA_HOME/bin/native-image-inspect --sbom <path_to_binary> | grype
87+
```
88+
It produces the following output:
9089
```shell
9190
NAME INSTALLED VULNERABILITY SEVERITY
9291
netty-codec-http2 4.1.76.Final CVE-2022-24823 Medium
9392
```
9493

95-
You can then use this report to update any vulnerable dependencies found in your executable.
94+
The generated report can then be used to update any vulnerable dependencies in your executable.
95+
96+
### Automated Scanning
97+
98+
Integrating security scanning into your CI/CD workflows has never been easier.
99+
With SBOM support available in the [GraalVM GitHub Action](https://github.com/marketplace/actions/github-action-for-graalvm){:target="_blank"}, your generated SBOM can be automatically submitted and analyzed using [GitHub’s dependency submission API](https://docs.github.com/en/rest/dependency-graph/dependency-submission){:target="_blank"}.
100+
It enables:
101+
- Vulnerability tracking with GitHub's Dependabot.
102+
- Dependency tracking with GitHub's Dependency Graph.
96103

97-
> Note: Running `native-image-inspect` without `--sbom` executes code from the native binary to extract class information. **Do not use it on untrusted binaries.** This extraction method is deprecated—use [class-level SBOMs](#including-class-level-metadata-in-the-sbom) instead.
104+
This integration helps ensure that your application is continuously monitored for vulnerabilities throughout the development lifecycle.
98105

99106
## Dependency Tree
100107

@@ -128,7 +135,7 @@ This information can be useful for:
128135
129136
### Data Format
130137

131-
The [CycloneDX specification](https://cyclonedx.org/docs/1.5/json/) allows the use of a hierarchical representation by nesting components that have a parent-child relationship.
138+
The [CycloneDX specification](https://cyclonedx.org/docs/1.5/json/){:target="_blank"} allows the use of a hierarchical representation by nesting components that have a parent-child relationship.
132139
It is used to embed class-level information in SBOM components in the following way:
133140
```
134141
[component] SBOM Component

0 commit comments

Comments
 (0)