Skip to content

Commit bf8bdad

Browse files
committed
docs: add a section about advisories and vulnerabilities
1 parent 4b6db1b commit bf8bdad

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

docs/book/modules/concepts/nav.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
* xref:concepts:index.adoc[Concepts]
2+
** xref:concepts:a_v.adoc[Advisories & vulnerabilities]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
= Advisories & vulnerabilities
2+
3+
Trustify learns about xref:index.adoc#vulnerability[Vulnerabilities] by ingesting advisories. During the ingestion
4+
process, Trustify extracts and aggregates vulnerability information, grouped by their vulnerability identifier.
5+
6+
Advisories can contain multiple vulnerabilities and can scope the application of statements the advisories make to
7+
certain packages. This means that Trustify has an aggregated set of information for a vulnerability, where information
8+
from the Common Vulnerabilities and Exposures (CVE) project supersedes information from more specific advisories.
9+
10+
Trustify also has "vulnerabilities belonging to an advisory", which contain specific vulnerability information,
11+
provided by that advisory.

docs/book/modules/concepts/pages/index.adoc

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
The following sections explain a few concepts of Trustify.
44

5-
== Entities
6-
7-
=== Vulnerability
5+
[#vulnerability]
6+
== Vulnerability
87

98
A vulnerability is mostly, primarily a *name* that is used to ensure all advisories are discussing the same thing.
109
Generally, to this point, most vulnerabilities come from the CVE Project, with the format of `CVE-2024-1234`.
@@ -13,7 +12,7 @@ Within the database, generally a vulnerability is added as a side effect of an a
1312

1413
A *CVE Record* from NIST/NVD is a low-value advisory that is generally the first discovered advisory that mentions a vulnerability.
1514

16-
=== Advisory
15+
== Advisory
1716

1817
An advisory is an opinion about a vulnerability.
1918

@@ -27,7 +26,7 @@ This may be simply in reference to the vulnerability *as it exists in source-cod
2726
Other, more-involved stakeholders (product vendors, upstream project owners) may issue *additional* advisories.
2827
These opinions may be in reference to *concrete* shipped products, contextualized to how the vulnerable code is *actually used*.
2928

30-
=== SBOM
29+
== SBOM
3130

3231
An SBOM is a source-of-someone's-truth about "what's inside it?", so
3332
everything in our DB is ultimately sourced from some
@@ -39,7 +38,7 @@ A1 + A97". So an SBOM is the entity to track the origin of the
3938
supposed "evidence" of assertional statements about products... about
4039
packages... about vulnerabilities...
4140

42-
=== Package
41+
== Package
4342

4443
A package is an atomic artifact or component.
4544
Packages may be addressed using pURLs.
@@ -48,15 +47,15 @@ A package may certainly contain other packages (e.g. shading one Java jar into a
4847
A package may also be the sole member of a Product (`UBI-8.0.13-x86.oci` may be the singular package within the "UBI 8.0.13-x86" product).
4948
A package is one step more abstract than an *artifact*.
5049

51-
==== pURL
50+
=== pURL
5251

5352
Package URLs (pURLs) are possibly ambiguous names applied to packages.
5453
A simple pURL such as `pkg:maven/org.apache/[email protected]` may or may not refer to a unique artifact.
5554
With additional qualifiers, it is possible to produce a URI that asserts uniqueness, such as `pkg:maven/org.apache/[email protected]?repository_url=repo.jboss.com`.
5655
Without additional qualifiers, the implicit aspects (such as `repository_url`) must be taken into account.
5756
For instance, an unqualified `pkg:maven` pURL *implies* "the jar from Maven Central, and none other".
5857

59-
=== Product
58+
== Product
6059

6160
A product is a *named collection of 1 or more packages* for a concrete shippable thing.
6261

@@ -68,7 +67,7 @@ NOTE: Given Red Hat ProdSec definitions, grouping of Products may need to occur
6867
`RHEL8` may be a *product stream*.
6968
`RHEL 8.2.03 PowerPC` may be a concrete *product* distinct from `RHEL 8.2.03 AArch64`.
7069

71-
==== CPE
70+
=== CPE
7271

7372
A CPE is a "Common Product Enumeration" from the NIST organization.
7473
CPEs are self-assigned but registered occasionally with NIST.
@@ -78,7 +77,7 @@ For instance, "All versions of RHEL 8.2.013, regardless of platform", or if more
7877

7978
NOTE: CPEs are somewhat contentious, and used enough for us to not ignore, but not used enough to be a pivotal definition of "product" for any users of Trustify.
8079

81-
=== Artifact
80+
== Artifact
8281

8382
For a given *package*, there may be zero or more instances of that package.
8483
Given `log4j-1.2.3.jar`, seventeen different people could compile the same source with the same arguments, and still end

0 commit comments

Comments
 (0)