Skip to content

Commit 6efd714

Browse files
authored
Merge pull request #246 from sbs2001/new_readme
Use New README
2 parents f735f8a + 79bbf05 commit 6efd714

1 file changed

Lines changed: 38 additions & 37 deletions

File tree

README.md

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,42 @@
1-
# VulnerableCode
1+
2+
<div align="center">
3+
<h1>VulnerableCode</h1>
24

35
[![Build Status](https://travis-ci.org/nexB/vulnerablecode.svg?branch=develop)](https://travis-ci.org/nexB/vulnerablecode)
6+
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7+
[![Python 3.8](https://img.shields.io/badge/python-3.8-blue.svg)](https://www.python.org/downloads/release/python-360/)
8+
![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)
9+
[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/aboutcode-org/vulnerablecode)
10+
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
11+
12+
![zz_comp](https://user-images.githubusercontent.com/28975399/89056138-2c8a8300-d379-11ea-882e-f28f38789cdc.png)
13+
</div>
14+
15+
16+
17+
## The What
18+
19+
VulnerableCode is a FOSS database of vulnerabilities and the FOSS packages they impact. It is made by the FOSS community to improve and secure the open source software ecosystem.
20+
21+
## The Why
22+
23+
The existing solutions are commercial proprietary vulnerability databases, which in itself does not make sense because the data is about FOSS.
24+
25+
National Vulnerability Database which is the primary data source for all things security, is not particulary catered to address FOSS security issues, because:
26+
27+
1. It predates explosion of FOSS software usage
28+
2. It's data format reflects commercial vendor-centric point of view, this is due to the usage of [CPE](https://nvd.nist.gov/products/cpe) to map vulnerabilities and the packages.
29+
3. CPEs are just not designed to map FOSS to vulnerabilities owing to their vendor-product centric semantics. This makes it really hard to answer the fundamental question "Is package foo vulnerable to vulnerability bar?"
30+
31+
## The How
32+
33+
VulnerableCode independently aggregates many software vulnerability data sources that can easily be recreated in a decentralized fashion. These data sources include security advisories published by distros, package managers etc. Due to this the data obtained is not generalized to apply for other ecosystems. This increases the accuracy as the same version of a package across different distros may or may not be vulnerable to some vulnerability.
34+
35+
The packages are identified using [PURL](https://github.com/package-url/purl-spec) rather than CPEs. This makes it really easy to answer questions like "Is package foo vulnerable to vulnerability bar ? ".
36+
37+
The web interface enables community curation of data by enabling addition of new packages, vulnerabilities and modifying the relationships between them as shown in GIF. Along with the web interface the API allows seamless consumption of the data.
38+
39+
We also plan to mine for vulnerabilities which didn't receive any exposure due to various reasons like but not limited to the complicated procedure to receive CVE ID or not able to classify a bug as a security compromise. Check VulnerableCode at [Open Source Summit 2020](https://ossna2020.sched.com/event/c46p/why-is-there-no-free-software-vulnerability-database-philippe-ombredanne-aboutcodeorg-and-nexb-inc-michael-herzog-nexb-inc)
440

541
## Setup
642

@@ -110,39 +146,4 @@ In your browser access:
110146
```
111147
http://127.0.0.1:8000/api/
112148
http://127.0.0.1:8000/api/packages/?name=<package_name>
113-
```
114-
115-
## Deployment on Heroku
116-
117-
See https://devcenter.heroku.com/articles/django-app-configuration#creating-a-new-django-project
118-
https://devcenter.heroku.com/articles/deploying-python#how-to-keep-build-artifacts-out-of-git
119-
120-
1. Create an Heroku account
121-
122-
2. Download and install the Heroku CLI https://devcenter.heroku.com/articles/heroku-cli#download-and-install
123-
124-
3. Run a local webserver: `heroku local web`
125-
126-
4. Login: `heroku login`
127-
128-
5. Create Heroku app: `heroku create`
129-
130-
6. Generate a secret key and pass it as an environment variable: `heroku config:set SECRET_KEY=$(python -c "from django.core.management import utils; print(utils.get_random_secret_key())")`
131-
132-
7. Deploy: `git push heroku <branch>:master`
133-
134-
8. Migrate the database: `heroku run python manage.py migrate`
135-
136-
9. Load the data referring to chapter "Data import" above.
137-
138-
10. To check the logs: `heroku logs --tail`
139-
140-
### Periodic Data Import
141-
142-
Note: Running jobs with Heroku Scheduler might incur costs. If you haven't already, you need to add a credit card in your account (https://dashboard.heroku.com/account/billing).
143-
144-
1. Install the Scheduler add-on: `heroku addons:create scheduler:standard`
145-
146-
2. Open the Scheduler dashboard: `heroku addons:open scheduler`
147-
148-
3. Click on "Create job" and enter `python manage.py import --all` under "Run Command"
149+
```

0 commit comments

Comments
 (0)