You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Welcome to the contribution guidelines for project "KB". This webpage provides information on how to contribute to our two different tools: [KayBee](kaybee.md) and [Prospector](prospector.md).
4
-
5
-
## Kaybee
6
-
7
-
If you're interested in contributing to the development of Kaybee,
8
-
the following pages provide instructions on setting up the development environment and how to contribute to our project.
9
-
10
-
-[Development Setup](kaybee/dev_setup.md)
11
-
-[Contribution Guidelines](kaybee/guidelines.md)
3
+
Welcome to the contribution guidelines for project "KB". This webpage provides information on how to contribute to our two different tools: [Prospector](prospector.md) and [KayBee](kaybee.md).
12
4
13
5
## Prospector
14
6
@@ -18,10 +10,18 @@ the following pages provide instructions on setting up the development environme
18
10
-[Development Setup](prospector/dev_setup.md)
19
11
-[Contribution Guidelines](prospector/issues.md)
20
12
13
+
## Kaybee
14
+
15
+
If you're interested in contributing to the development of Kaybee,
16
+
the following pages provide instructions on setting up the development environment and how to contribute to our project.
17
+
18
+
-[Development Setup](kaybee/dev_setup.md)
19
+
-[Contribution Guidelines](kaybee/guidelines.md)
20
+
21
21
## Do you want to contribute to the documentation?
22
22
23
23
You are most welcome to do so, project "KB" needs every one of you to succeed, every drop matters!
KayBee is a vulnerability data management tool, it makes possible to fetch the vulnerability statements from this
31
-
repository (or from any other repository) and export them to a number of
32
-
formats, including a script to import them to a [Steady
33
-
backend](https://github.com/eclipse/steady).
34
-
35
28
### Prospector
36
29
37
30
Prospector is a vulnerability data mining tool that aims at reducing the effort needed to find security fixes for known vulnerabilities in open source software repositories.
@@ -40,6 +33,14 @@ Given a vulnerability advisory and a software repository, it
40
33
analyses them to produce a report in which commits are ranked
41
34
according to the likelihood that they fix the vulnerability.
42
35
36
+
### Kaybee
37
+
38
+
KayBee is a vulnerability data management tool, it makes possible to fetch the vulnerability statements from this
39
+
repository (or from any other repository) and export them to a number of
40
+
formats, including a script to import them to a [Steady
41
+
backend](https://github.com/eclipse/steady).
42
+
43
+
43
44
## Vulnerability data
44
45
45
46
The vulnerability data of Project KB are stored in textual form as a set of YAML files, in the [vulnerability-data branch](https://github.com/SAP/project-kb/tree/vulnerability-data).
Copy file name to clipboardExpand all lines: docs/prospector.md
+39-8Lines changed: 39 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
Prospector is a research prototype,
5
5
currently under development: the instructions below are intended for development, testing and demonstration purposes only!
6
6
7
-
:exclamation: Please note that **Windows is not supported** while WSL and WSL2 are fine.
7
+
Please note that **Windows is not supported** while WSL and WSL2 are fine.
8
8
9
9
Prospector is a tool to reduce the effort needed to find security fixes for
10
10
*known* vulnerabilities in open source software repositories.
@@ -33,7 +33,34 @@ cd project-kb/prospector
33
33
```
34
34
The bash script builds and starts the required Docker containers. Once the building step is completed, the script will show the list of available options.
A video recording of the tool demo is also available [here](https://zenodo.org/record/7974442)
52
84
53
-
### Outline of the Demo
54
85
The steps shown in the video are the following:
55
86
56
87
1. Cloning the [project “KB”](https://github.com/SAP/project-kb) GitHub repository
57
88
2. Execution of the script *run_prospector.sh* from the *prospector* subfolder. The script automatically builds and starts all the necessary docker containers
58
89
3. The command line flags are shown on the screen; for the demo, we use the strictly
59
90
required inputs only, which are: *(A)* a vulnerability identifier and *(B)* the URL of the source code
60
91
repository of the project affected by the vulnerability
61
-
4. As illustrative example, Prospector is executed on *CVE-2020-1925* and the *Apache Olingo*
92
+
1. As illustrative example, Prospector is executed on *CVE-2020-1925* and the *Apache Olingo*
62
93
repository. As the tool runs, we give a high-level explanation of the processing it performs
63
94
(advisory record extraction, candidate commits retrieval and processing, rule application, report
64
95
generation).
65
-
5. The report generated at the end of the previous step is shown and its key elements are
96
+
1. The report generated at the end of the previous step is shown and its key elements are
66
97
described.
67
-
6. We highlight the fact that the advisory content is processed to extract important tokens
98
+
1. We highlight the fact that the advisory content is processed to extract important tokens
68
99
(keywords, file names, etc.).
69
-
7. We explain that commits are ranked by their relevance, which is computed by applying a
100
+
1. We explain that commits are ranked by their relevance, which is computed by applying a
70
101
set of rules to each of them. The sum of the weights of the rules that match a commit determine
71
102
its relevance. The list of commits shown in the report can be filtered by a applying a relevance
72
103
threshold using a slider.
73
-
8. As a concrete example, we point out that the tool detected that the first commit in the list
104
+
1. As a concrete example, we point out that the tool detected that the first commit in the list
74
105
modifies a class that is mentioned in the textual description of the advisory.
0 commit comments