Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design and implementation of the vulnerability-lookup #1

Open
adulau opened this issue Nov 30, 2022 · 6 comments
Open

Design and implementation of the vulnerability-lookup #1

adulau opened this issue Nov 30, 2022 · 6 comments
Assignees

Comments

@adulau
Copy link
Member

adulau commented Nov 30, 2022

vulnerability-lookup project

vulnerability-lookup is a cve-search rewrite to support the following functionalities. This project will be a new software project under the cve-search organisation.

Functionalities

Core

  • Use a key-value store (kvrocks) instead of the old MongoDB back-end to handle the fast lookup of cve.circl.lu (peak ~7000 req per second);
  • Import the actual NVD json file with some meta-data but keep the raw JSON import in a key;
  • Expose an API compatible with the original cve-search with minimal API such as the two following entry points: /api/cve/ and /browse/.
  • Allow the import of other vulnerabilities without CVE-ID assigned;
  • Import CPE from NVD or from additional sources;

Import

@Rafiot
Copy link
Collaborator

Rafiot commented May 19, 2023

Work in progress on that (branch framework):

  • Imports all CVEs individually straight into kvrocks (it takes 15 min and uses ~3G of ram to load the complete dataset)
  • Supports updates for individual CVEs by erasing the old one
  • API endpoint: /vulnerability/{vulnerability_id} - Reason: will support any ID, from NVD or not

@adulau
Copy link
Member Author

adulau commented May 29, 2023

Maybe starting with a new importer like the GSD source GSD-database would be a good example of a second ID and also how to map the existing CVE with the GSD source too.

@adulau
Copy link
Member Author

adulau commented Jul 7, 2023

New extensions

  • Allow to have a web interface similar to the original version cve-search
  • Allow to have an admin interface (also expose via the API) to easily create vulnerability with a minimal set of vulnerability fields
  • Allow to have a basic public or embargo/non-public vulnerability publishing system
  • Improving debug and monitoring on the import process in vulnerability-lookup (e.g. how to monitor if the NVD API is down or giving 500 errors)

@Rafiot
Copy link
Collaborator

Rafiot commented Sep 21, 2023

Some of the UI is implemented (search/list recent entries). Now let's discuss the system to create a new vulnerability.

This is the form to report an advisory via github:

image

Should it be similar to that? What is the minimal viable set of settings we want in the form?

Then, how to we identify the advisory before it is assigned a CVE? And do we do that? If yes, one way is to do something similar to github with something like that: GHSA-c647-pxm2-c52w

@Rafiot
Copy link
Collaborator

Rafiot commented Sep 26, 2023

As found by @adulau , we should use this interface for edit/submit:
https://github.com/Vulnogram/Vulnogram

And push it to vulnerability-lookup instead of CVE for the ones created by our constituants

@Rafiot
Copy link
Collaborator

Rafiot commented Nov 28, 2023

Open question regarding CVEList: it is more or less a duplicate of the NVD database, and it is not really possible to treat it as a new source.
For now, it will be imported as a meta for the CVE entries.

@Rafiot Rafiot mentioned this issue Apr 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants