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
Copy file name to clipboardExpand all lines: docs/contributing.md
+12-47Lines changed: 12 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,59 +1,24 @@
1
1
# How to contribute to project "KB"
2
2
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).
4
4
5
-
A structured process to create and share vulnerability data is work in progress.
5
+
## Kaybee
6
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.
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
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).
10
+
-[Development Setup](kaybee/dev_setup.md)
11
+
-[Contribution Guidelines](kaybee/guidelines.md)
13
12
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
19
14
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.
24
17
25
-
#### **Did you find a bug?**
18
+
-[Development Setup](prospector/dev_setup.md)
19
+
-[Contribution Guidelines](prospector/issues.md)
26
20
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?
57
22
58
23
You are most welcome to do so, project "KB" needs every one of you to succeed, every drop matters!
[](https://gitter.im/project-kb/help?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
10
10
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
13
13
open-source software.
14
14
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.
16
17
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
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).
33
34
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
38
36
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.
43
38
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.
45
42
46
-
(work in progress)
43
+
## Vulnerability data
47
44
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
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).
74
46
75
47
## Publications
76
48
@@ -96,57 +68,33 @@ If you use the dataset for your research work, please cite it as:
96
68
**MSR 2019 DATA SHOWCASE SUBMISSION**: please find [here the data and the
97
69
scripts described in that paper](MSR2019)
98
70
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.
102
72
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
125
74
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
128
76
129
-
## Known Issues
77
+
The development of Project KB is partially supported by the following projects:
## **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