Skip to content

Commit 83a76f1

Browse files
authored
Merge pull request #973 from nexB/963-further-update-rtd-overview
Add further updates to overview page
2 parents 0e4d61f + a88f911 commit 83a76f1

File tree

1 file changed

+37
-39
lines changed

1 file changed

+37
-39
lines changed

docs/source/introduction.rst

Lines changed: 37 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,64 @@
11
.. _introduction:
22

33
VulnerableCode Overview
4-
========================
4+
=======================
55

66
*VulnerableCode* provides an open database of software packages that are affected
7-
by known security vulnerabilities aka. *"vulnerable packages"*.
7+
by known security vulnerabilities aka *"vulnerable packages"*.
88

99
VulnerableCode is also a free and open source software (FOSS) project that
1010
provides the tools to build this open database. The tools handle collecting,
1111
aggregating and correlating these vulnerabilities and relating them to a correct
1212
package version. Our project also supports a public cloud instance of this
13-
database - VulnerableCode.io.
13+
database - `VulnerableCode.io <https://public.vulnerablecode.io/>`__.
1414

1515

1616
What can I do with VulnerableCode?
17-
------------------------------------
17+
----------------------------------
1818

1919
**For security researchers and software developers, VulnerableCode offers a web
20-
UI and a JSON API to efficient find if the FOSS packages and dependencies that
21-
you use may be affected by known vulnerabilities and which version of a package
22-
you should upgrade to to fix this issue.**
20+
UI and a JSON API to efficiently find if the FOSS packages and dependencies that
21+
you use are affected by known vulnerabilities and to determine whether a later package version
22+
fixes those vulnerabilities.**
2323

2424

2525
- With the web UI, you can search by package using Package URLs or search by
26-
vulnerability like by CVE. From there you can navigate to the package
26+
vulnerability, e.g., by CVE. From there you can navigate to the package
2727
vulnerabilities and to the vulnerable packages.
2828

29-
- With the JSON API, you can perform package queries using Package URLs or query
30-
by vulnerability id. You can also query by CPEs and vulnerability aliases.
29+
- With the JSON API, you can perform package queries using Package URLs (`purl
30+
<https://github.com/package-url/purl-spec>`__) or query
31+
by vulnerability id ("VCID"). You can also query by CPEs and other vulnerability aliases.
3132
The API provides paginated index and detail endpoints and includes indexes
32-
of vulnerable CPEs and vulnerable Package URLs (purl).
33+
of vulnerable CPEs and vulnerable Package URLs.
3334

34-
You can also install VulnerableCode locally or use the provided publicly hosted instance,
35-
or host your own installation. You can also contact the VulnerableCode authors and team
35+
You can install VulnerableCode locally or use the provided publicly hosted instance,
36+
or host your own installation. You can contact the VulnerableCode team
3637
for special needs including commercial support.
3738

3839

3940
Why VulnerableCode?
4041
-------------------
4142

42-
VulnerableCode provides open correlated data and eventually does provide curated
43-
data. Our approach is to privilege upstream data sources and to merge multiple
43+
VulnerableCode provides open correlated data and will support curated
44+
data. Our approach is to prioritize upstream data sources and to merge multiple
4445
vulnerability data sources after comparison and correlation. The vulnerability
4546
data is keyed by Package URL ensuring quick and accurate lookup with minimal
46-
friction. We further continuously validate and refine the collected data for
47+
friction. We continuously validate and refine the collected data for
4748
quality, accuracy and consistency using "improver" jobs.
48-
An example of such improver can validate that a package version reported as
49-
vulnerable effectively exists (several do not exist); Or an improver can
50-
re-evaluate a vulnerable version ranges based on the latest releases of a
49+
An example is an improver that can validate that a package version reported as
50+
vulnerable actually exists (some do not exist). Another example is to re-evaluate
51+
vulnerable version ranges based on the latest releases of a
5152
package.
5253

53-
The benefits of our approach is that we will eventually provide better, more
54-
accurate vulnerability data, more efficiently related to actual packages scanned
55-
or reported in an SBOM. This should contribute to more efficient vulnerability
54+
The benefit of our approach is that we will eventually provide better, more
55+
accurate vulnerability data for packages reported in an SBOM.
56+
This should contribute to more efficient vulnerability
5657
management with less noise from false positives.
5758

58-
Furthermore, existing vulnerability database solutions are primarily commercial
59-
or proprietary which does not make sense because the bulk of the vulnerability
59+
Another key reason why we created VulnerableCode is that
60+
existing vulnerability database solutions are primarily commercial
61+
or proprietary. This does not make sense because the bulk of the vulnerability
6062
data is about FOSS.
6163

6264
The National Vulnerability Database, which is a primary centralized data
@@ -65,12 +67,12 @@ address FOSS security issues because:
6567

6668
1. It predates the explosion of FOSS software usage
6769
2. Its data format reflects a commercial vendor-centric point of view in part
68-
due to the usage of `CPE <https://nvd.nist.gov/products/cpe>`__ to map
70+
due to the usage of `CPEs <https://nvd.nist.gov/products/cpe>`__ to map
6971
vulnerabilities to existing packages.
70-
3. CPEs are not designed to map FOSS to vulnerabilities owing to their
72+
3. CPEs were not designed to map FOSS to vulnerabilities owing to their
7173
vendor-product centric semantics. This makes it really hard to answer the
72-
fundamental questions "Is package foo vulnerable" and "Is package foo
73-
vulnerable to vulnerability bar?"
74+
fundamental questions: "Is package *foo* vulnerable?" and "Is package *foo*
75+
vulnerable to vulnerability *bar*?"
7476

7577
How does it work?
7678
-----------------
@@ -87,10 +89,10 @@ representations of a package. Being specific increases the accuracy and validity
8789
of the data as the same version of an upstream package across different
8890
ecosystems may or may not be subject to the same vulnerability.
8991

90-
In VulnerableCode, packages are identified using Package URL `PURL
91-
<https://github.com/package-url/purl-spec>`__ as the primary identifier instead of
92-
a CPE. This makes answers to questions such as "Is package foo vulnerable
93-
to vulnerability bar?" more accurate and easier to interpret.
92+
In VulnerableCode, packages are identified using Package URL (`purl
93+
<https://github.com/package-url/purl-spec>`__) as the primary identifier instead of
94+
a CPE. This makes answers to questions such as "Is package *foo* vulnerable
95+
to vulnerability *bar*?" more accurate and easier to interpret.
9496

9597
The primary access to VulnerableCode data is through a REST API, but there
9698
is also a Web UI for searching and browsing vulnerabilities by package
@@ -99,17 +101,13 @@ read-only, but our longer-term goal is to enable community curation of
99101
the data including addition of new packages and vulnerabilities, and
100102
reviewing and updating their relationships.
101103

102-
*We also plan to mine for vulnerabilities that didn't receive any
103-
exposure due to various reasons like, but not limited to, the complicated
104-
procedure to obtain a CVE ID or not being able to classify a bug as a vulnerability.*
104+
We also plan to mine for vulnerabilities that have not received any
105+
exposure due to reasons such as the complicated
106+
procedure to obtain a CVE ID or not being able to classify a bug as a vulnerability.
105107

106108

107109
How can I contribute to VulnerableCode?
108110
---------------------------------------
109111

110112
Please get in touch on our `Gitter channel <https://gitter.im/aboutcode-org/vulnerablecode>`__.
111113
You can review or get the code and report issues at our `GitHub repo <https://github.com/nexB/vulnerablecode/issues>`__.
112-
113-
.. Some of this documentation is borrowed from the metaflow documentation and is also
114-
under Apache-2.0
115-
.. Copyright (c) Netflix

0 commit comments

Comments
 (0)