Skip to content

Commit 6bd09eb

Browse files
matteogreekcopernico
authored andcommitted
Update MkDocs index and prospector pages
1 parent d18608c commit 6bd09eb

File tree

5 files changed

+60
-27
lines changed

5 files changed

+60
-27
lines changed

docs/contributing.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
# How to contribute to project "KB"
22

3-
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).
124

135
## Prospector
146

@@ -18,10 +10,18 @@ the following pages provide instructions on setting up the development environme
1810
- [Development Setup](prospector/dev_setup.md)
1911
- [Contribution Guidelines](prospector/issues.md)
2012

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+
2121
## Do you want to contribute to the documentation?
2222

2323
You are most welcome to do so, project "KB" needs every one of you to succeed, every drop matters!
2424

25-
Thanks! :heart: :heart: :heart:
25+
Thanks!
2626

2727
The project "KB" team

docs/index.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,13 @@ as well as set of tools to support the mining, curation and management of such d
1818
## Available Tools
1919
<div style="text-align: center;">
2020
<div style="display: inline-block; margin-right: 20px;">
21-
<a href="kaybee" class="md-button md-button--primary">Kaybee</a>
21+
<a href="prospector" class="md-button md-button--primary">Prospector</a>
2222
</div>
2323
<div style="display: inline-block;">
24-
<a href="prospector" class="md-button md-button--primary">Prospector</a>
24+
<a href="kaybee" class="md-button md-button--primary">Kaybee</a>
2525
</div>
2626
</div>
2727

28-
### Kaybee
29-
30-
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-
3528
### Prospector
3629

3730
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
4033
analyses them to produce a report in which commits are ranked
4134
according to the likelihood that they fix the vulnerability.
4235

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+
4344
## Vulnerability data
4445

4546
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).

docs/prospector.md

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Prospector is a research prototype,
55
currently under development: the instructions below are intended for development, testing and demonstration purposes only!
66

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.
88

99
Prospector is a tool to reduce the effort needed to find security fixes for
1010
*known* vulnerabilities in open source software repositories.
@@ -33,7 +33,34 @@ cd project-kb/prospector
3333
```
3434
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.
3535

36-
4. Try the following example:
36+
37+
| Option | Description |
38+
| ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
39+
| `vuln_id` | ID of the vulnerability to analyze |
40+
| `-h`, `--help` | Show help message and exit |
41+
| `--repository REPOSITORY` | Git repository URL |
42+
| `--preprocess-only` | Perform commit preprocessing only |
43+
| `--pub-date PUB_DATE` | Publication date of the advisory |
44+
| `--description DESCRIPTION` | Advisory description |
45+
| `--max-candidates MAX_CANDIDATES` | Maximum number of candidates to consider |
46+
| `--version-interval VERSION_INTERVAL` | Version or tag interval X:Y to consider |
47+
| `--modified-files MODIFIED_FILES` | Names (or partial names) comma-separated that the commits are supposed to modify |
48+
| `--filter-extensions FILTER_EXTENSIONS` | Filter out commits that do not modify at least one file with this extension |
49+
| `--keywords KEYWORDS` | Consider these specific keywords |
50+
| `--use-nvd`, `--no-use-nvd` | Get data from NVD or not |
51+
| `--fetch-references` | Fetch content of references linked from the advisory |
52+
| `--backend BACKEND` | URL of the backend server |
53+
| `--use-backend {always,never,optional}` | Use the backend server or not |
54+
| `--report {html,json,console,all}` | Format of the report (options: console, json, html, all) |
55+
| `--report-filename REPORT_FILENAME` | File to save the report |
56+
| `-c CONFIG`, `--config CONFIG` | Configuration file |
57+
| `-p`, `--ping` | Ping the server to check if it's online |
58+
| `-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}`, `--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}` | Set the logging level |
59+
| `--ignore-refs IGNORE_REFS` | Whether to ignore the fact that the fixing commit is reachable directly from the advisory |
60+
61+
62+
63+
1. Try the following example:
3764
```
3865
./run_prospector.sh CVE-2020-1925 --repository https://github.com/apache/olingo-odata4
3966
```
@@ -43,34 +70,38 @@ By default, Prospector saves the results in a HTML file named *prospector-report
4370
???+ success
4471
Open the *prospector-report.html* file in a web browser to view what Prospector was able to find!
4572

73+
<figure markdown>
74+
![Image title](report_casestudy_complete.png){ width="600" }
75+
<figcaption>Prospector Report for CVE-2020-1925</figcaption>
76+
</figure>
77+
4678
## Tool Demostration
4779

4880
### Video Recording
4981
<iframe width="560" height="315" src="https://www.youtube.com/<IDHERE>" frameborder="0" allowfullscreen></iframe>
5082

5183
A video recording of the tool demo is also available [here](https://zenodo.org/record/7974442)
5284

53-
### Outline of the Demo
5485
The steps shown in the video are the following:
5586

5687
1. Cloning the [project “KB”](https://github.com/SAP/project-kb) GitHub repository
5788
2. Execution of the script *run_prospector.sh* from the *prospector* subfolder. The script automatically builds and starts all the necessary docker containers
5889
3. The command line flags are shown on the screen; for the demo, we use the strictly
5990
required inputs only, which are: *(A)* a vulnerability identifier and *(B)* the URL of the source code
6091
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*
6293
repository. As the tool runs, we give a high-level explanation of the processing it performs
6394
(advisory record extraction, candidate commits retrieval and processing, rule application, report
6495
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
6697
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
6899
(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
70101
set of rules to each of them. The sum of the weights of the rules that match a commit determine
71102
its relevance. The list of commits shown in the report can be filtered by a applying a relevance
72103
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
74105
modifies a class that is mentioned in the textual description of the advisory.
75106

76107
## Contributing

docs/report_casestudy_complete.png

177 KB
Loading

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ markdown_extensions:
4343
custom_checkbox: true
4444
- pymdownx.tilde
4545
- attr_list
46+
- md_in_html
4647

4748

4849
# Customization

0 commit comments

Comments
 (0)