Skip to content

Commit d18608c

Browse files
matteogreekcopernico
authored andcommitted
Update README.md and MkDocs
1 parent 141a98e commit d18608c

File tree

13 files changed

+344
-163
lines changed

13 files changed

+344
-163
lines changed

docs/contributing.md

Lines changed: 12 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,24 @@
11
# How to contribute to project "KB"
22

3-
#### **Do you intend to contribute with new vulnerability data?**
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).
44

5-
A structured process to create and share vulnerability data is work in progress.
5+
## Kaybee
66

7-
For the time being, you can use `kaybee create <VULN.ID>` to generate a skeleton
8-
statement that you can then edit with a normal text editor.
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.
99

10-
You can then create pull requests against the `vulnerability-data` branch in this repository
11-
or you can host the statements in your own repository (please do let us know if you choose
12-
this option so that we can benefit from your work by pulling your statements).
10+
- [Development Setup](kaybee/dev_setup.md)
11+
- [Contribution Guidelines](kaybee/guidelines.md)
1312

14-
You will need to dedicate a branch to the statements: the branch must contain a
15-
top-level `statements` folder in which you can store your statements. You can
16-
refer to the [`vulnerability-data` branch in this
17-
repository](https://github.com/SAP/project-kb/tree/vulnerability-data) to see
18-
what is the expected structure.
13+
## Prospector
1914

20-
Your statement should provide, at least, a vulnerability identifier (use the CVE
21-
identifier if it exists), the URL of the source code repository of the affected
22-
component and one or more identifiers of the commits used to fix the
23-
vulnerability.
15+
If you're interested in contributing to the development of Prospector,
16+
the following pages provide instructions on setting up the development environment and how to contribute to our project.
2417

25-
#### **Did you find a bug?**
18+
- [Development Setup](prospector/dev_setup.md)
19+
- [Contribution Guidelines](prospector/issues.md)
2620

27-
* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/sap/project-kb/issues).
28-
29-
* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/sap/project-kb/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
30-
31-
32-
#### **Did you write a patch that fixes a bug?**
33-
34-
* Open a new GitHub pull request with the patch.
35-
* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
36-
* Add one or more test cases as appropriate
37-
* Make sure all other tests and checks still pass (that is, run `make check` in the `kaybee` folder; it should succeed)
38-
39-
#### **Did you fix whitespace, format code, or make a purely cosmetic patch?**
40-
41-
Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability are accepted at this time.
42-
43-
#### **Do you intend to add a new feature or change an existing one?**
44-
45-
* Suggest your change by creating an issue and start writing code in your own fork and make a PR when ready.
46-
Please make sure you provide tests for your code, and ensure you can successfully execute `make check` (in the `kaybee` folder)
47-
with no errors and that you include adequate documentation in your code.
48-
49-
50-
51-
52-
#### **Do you have questions about the source code?**
53-
54-
* For now, file an issue (we consider that the need of clarifications at this stage indicates missing or inadequate documentation).
55-
56-
#### **Do you want to contribute to the documentation?**
21+
## Do you want to contribute to the documentation?
5722

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

docs/css/buttons.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/*.md-button .md-button--primary {
2+
background-color: green;
3+
color: #ffffff;
4+
margin-right: 50px;
5+
}*/

docs/css/faq.css

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
1-
margin: 1.6rem 0;
2-
span.toctitle {
1+
/*margin: 1.6rem 0;*/
2+
3+
span.toctitle {
34
font-size: 1.8rem;
45
font-weight: 600;
56
letter-spacing: -0.01em;
67
}
78

8-
div.toc > ul {
9+
div.toc>ul {
910
margin: 0;
1011
}
1112

12-
div.toc > ul > li {
13+
div.toc>ul>li {
1314
margin: 10px;
1415
list-style: none;
1516
font-weight: 800;
1617
}
1718

18-
div.toc > ul > li > ul> li {
19+
div.toc>ul>li>ul>li {
1920
list-style: none;
2021
font-weight: 400;
2122
}
2223

23-
div.toc > ul > li > ul> li:before {
24+
div.toc>ul>li>ul>li:before {
2425
content: "-";
2526
font-weight: 600;
2627
display: block;
@@ -31,4 +32,4 @@ div.toc > ul > li > ul> li:before {
3132

3233
/* div.md-sidebar--secondary {
3334
/* display: none; */
34-
} */
35+
/*} */

docs/dev_docs.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/index.md

Lines changed: 42 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -8,69 +8,41 @@
88
[![REUSE status](https://api.reuse.software/badge/github.com/sap/project-kb)](https://api.reuse.software/info/github.com/sap/project-kb)
99
[![Join the chat at https://gitter.im/project-kb/help](https://badges.gitter.im/project-kb/help.svg)](https://gitter.im/project-kb/help?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1010

11-
`project KB` supports the creation, management and aggregation of a
12-
distributed, collaborative knowledge base of vulnerabilities that affect
11+
The goal of `Project KB` is to enable the creation, management and aggregation of a
12+
distributed, collaborative knowledge base of vulnerabilities affecting
1313
open-source software.
1414

15-
This repository contains both a [tool](kaybee) and [vulnerability data](https://github.com/SAP/project-kb/tree/master/vulnerability-data).
15+
`Project KB` consists of [vulnerability data](https://github.com/SAP/project-kb/tree/main/vulnerability-data)
16+
as well as set of tools to support the mining, curation and management of such data.
1617

17-
Additionally, the [MSR2019](https://github.com/SAP/project-kb/tree/master/MSR2019) folder contains the package associated with
18-
the paper we published at the Mining Software Repository conference in 2019 (see
19-
below).
18+
## Available Tools
19+
<div style="text-align: center;">
20+
<div style="display: inline-block; margin-right: 20px;">
21+
<a href="kaybee" class="md-button md-button--primary">Kaybee</a>
22+
</div>
23+
<div style="display: inline-block;">
24+
<a href="prospector" class="md-button md-button--primary">Prospector</a>
25+
</div>
26+
</div>
2027

21-
## Why this project
28+
### Kaybee
2229

23-
In order to feed [Eclipse Steady](https://github.com/eclipse/steady/) with fresh
24-
data, we have spent a considerable amount of time, in the past few years, mining
25-
and curating a knowledge base of vulnerabilities that affect open-source
26-
components. We know that other parties have been doing the same, in academia as
27-
well as in the industry. From this experience, we have learnt that with the
28-
growing size of open source ecosystems and the pace at which new vulnerabilities
29-
are discovered, the _old approach_ cannot scale. We are also more and more
30-
convinced that vulnerability knowledge-bases about open-source should be
31-
open-source themselves and adopt the same community-oriented model that governs
32-
the rest of the open-source ecosystem.
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).
3334

34-
These considerations have pushed us to release our vulnerability knowledge base
35-
in early 2019. In June 2020, we made a further step releasing tool support to
36-
make the creation, aggregation, and consumption of vulnerability data much
37-
easier.
35+
### Prospector
3836

39-
We hope this will encourage more contributors to join our efforts to build a
40-
collaborative, comprehensive knowledge base where each party remains in control
41-
of the data they produce and of how they aggregate and consume data from the
42-
other sources.
37+
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.
4338

44-
### What can project "KB" be used for, in practice
39+
Given a vulnerability advisory and a software repository, it
40+
analyses them to produce a report in which commits are ranked
41+
according to the likelihood that they fix the vulnerability.
4542

46-
(work in progress)
43+
## Vulnerability data
4744

48-
Project "KB" consists essentially of two things: a tool and a knowledge base.
49-
50-
The **tool** (`kaybee`) allows users to do the following:
51-
52-
- create vulnerability statements; a vulnerability statement is a plain-text file in yaml format
53-
that contains data about a given vulnerability, such as the commits that provide a fix for it,
54-
a set of notes and references to related Web pages, a list of open-source components that
55-
are directly affected by the vulnerability at hand, and so on.
56-
- fetch vulnerability statements from one or more remote sources (git repositories)
57-
- merge the content of multiple sources of statements, based on a conflict resolution policy
58-
- export the result of the merge operation to a variety of different formats
59-
60-
The **knowledge base**, offers a set of vulnerability statements that can be consumed using the `kaybee` tool.
61-
It contents are kept in the dedicated branch `vulnerability-data`.
62-
63-
## Getting started
64-
65-
### Installing the `kaybee` tool
66-
67-
### Importing vulnerability data in Eclipse Steady
68-
69-
The steps that are required to import the knowledge base in [Eclipse
70-
Steady](https://github.com/eclipse/steady/) are described in [this
71-
tutorial](https://eclipse.github.io/steady/vuln_db/tutorials/vuln_db_tutorial/).
72-
Further information can be found
73-
[here](https://eclipse.github.io/steady/vuln_db/).
45+
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).
7446

7547
## Publications
7648

@@ -96,57 +68,33 @@ If you use the dataset for your research work, please cite it as:
9668
**MSR 2019 DATA SHOWCASE SUBMISSION**: please find [here the data and the
9769
scripts described in that paper](MSR2019)
9870

99-
## Credits
100-
101-
### Sparta project
71+
> If you wrote a paper that uses the data or the tools from this repository, please let us know (through an issue) and we'll add it to this list.
10272
103-
The development of Project KB is partly supported by [EU-funded project Sparta](https://www.sparta.eu/).
104-
105-
### 3rd party vulnerability data sources
106-
107-
3rd party information from NVD and MITRE might have been used as input
108-
for compiling parts of this knowledge base. See MITRE's [Terms of
109-
Use](http://cve.mitre.org/about/termsofuse.html) for more information.
110-
See also [this notice](https://github.com/SAP/project-kb/tree/master/NOTICE.txt).
111-
112-
113-
## Features
114-
115-
- Creation of vulnerability statements
116-
- Retrieval and reconciliation of statement from multiple repositories, based on
117-
user-specified policies
118-
119-
## Requirements
120-
121-
None, the `kaybee` binary is self-contained. Binary versions for Windows, Linux,
122-
MacOS are available for [download](https://github.com/SAP/project-kb/releases).
123-
124-
## Limitations
73+
## Credits
12574

126-
This project is work-in-progress. The vulnerability knowledge base only contains
127-
information about vulnerabilities in Java and Python open source components.
75+
### EU-funded research projects
12876

129-
## Known Issues
77+
The development of Project KB is partially supported by the following projects:
13078

131-
The list of current issues is available
132-
[here](https://github.com/SAP/project-kb/issues).
79+
* [AssureMOSS](https://assuremoss.eu) (Grant No.952647).
80+
* [Sparta](https://www.sparta.eu/) (Grant No.830892).
13381

134-
Feel free to open a new issue if you think you found a bug or if you have a
135-
feature request.
82+
### Vulnerability data sources
13683

137-
## How to obtain support
84+
Vulnerability information from NVD and MITRE might have been used as input
85+
for building parts of this knowledge base. See MITRE's [CVE Usage license](http://cve.mitre.org/about/termsofuse.html) for more information.
13886

139-
First, take a look at our documentation.
87+
## Limitations and Known Issues
14088

141-
If you cannot find the answer to your questions, you may want to ask for help
142-
on this [Gitter channel](https://gitter.im/project-kb/help).
89+
This project is **work-in-progress**, you can find the list of known issues [here](https://github.com/SAP/project-kb/issues).
14390

144-
If you think you found a bug, please create an [issue](https://github.com/SAP/project-kb/issues).
91+
Currently the vulnerability knowledge base only contains information about vulnerabilities in Java and Python open source components.
14592

93+
## Support
14694

147-
## License
95+
For the time being, please use [GitHub
96+
issues](https://github.com/SAP/project-kb/issues) to report bugs, request new features and ask for support.
14897

149-
Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved.
98+
## Contributing
15099

151-
This project is licensed under the Apache Software License, v.2 except as noted
152-
otherwise in the [LICENSE file](https://github.com/SAP/project-kb/blob/master/LICENSE.txt).
100+
See [How to contribute](contributing.md).

docs/getting_started.md renamed to docs/kaybee.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Getting started with project "KB"
1+
# KayBee
22

33
## Installation
44

@@ -51,6 +51,8 @@ as in this example:
5151
branch: vulnerability-data
5252
rank: 10
5353

54+
Please refer to the output of `kaybee help` and `kaybee <command> help` to
55+
know what flags and options are available.
5456

5557
## Retrieving vulnerability data
5658

@@ -143,3 +145,6 @@ will probably come later on.
143145
## Publishing
144146

145147
*To be written....*
148+
149+
## Contributing
150+
* [How to contribute](contributing.md)

docs/kaybee/dev_setup.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Development Setup
2+
Coming soon...

docs/kaybee/guidelines.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Contribution Guidelines
2+
3+
## **Do you intend to contribute with new vulnerability data?**
4+
5+
A structured process to create and share vulnerability data is work in progress.
6+
7+
For the time being, you can use `kaybee create <VULN.ID>` to generate a skeleton
8+
statement that you can then edit with a normal text editor.
9+
10+
You can then create pull requests against the `vulnerability-data` branch in this repository
11+
or you can host the statements in your own repository (please do let us know if you choose
12+
this option so that we can benefit from your work by pulling your statements).
13+
14+
You will need to dedicate a branch to the statements: the branch must contain a
15+
top-level `statements` folder in which you can store your statements. You can
16+
refer to the [`vulnerability-data` branch in this
17+
repository](https://github.com/SAP/project-kb/tree/vulnerability-data) to see
18+
what is the expected structure.
19+
20+
Your statement should provide, at least, a vulnerability identifier (use the CVE
21+
identifier if it exists), the URL of the source code repository of the affected
22+
component and one or more identifiers of the commits used to fix the
23+
vulnerability.
24+
25+
## **Did you find a bug?**
26+
27+
* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/sap/project-kb/issues).
28+
29+
* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/sap/project-kb/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
30+
31+
32+
## **Did you write a patch that fixes a bug?**
33+
34+
* Open a new GitHub pull request with the patch.
35+
* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
36+
* Add one or more test cases as appropriate
37+
* Make sure all other tests and checks still pass (that is, run `make check` in the `kaybee` folder; it should succeed)
38+
39+
## **Did you fix whitespace, format code, or make a purely cosmetic patch?**
40+
41+
Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability are accepted at this time.
42+
43+
## **Do you intend to add a new feature or change an existing one?**
44+
45+
Suggest your change by creating an issue and start writing code in your own fork and make a PR when ready.
46+
Please make sure you provide tests for your code, and ensure you can successfully execute `make check` (in the `kaybee` folder)
47+
with no errors and that you include adequate documentation in your code.
48+
49+
## **Do you have questions about the source code?**
50+
51+
For now, file an issue (we consider that the need of clarifications at this stage indicates missing or inadequate documentation).

0 commit comments

Comments
 (0)