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

Implemented pipeline for automated vulnerability fetching and processing #380

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

matteogreek
Copy link
Collaborator

Objective

This PR aims to introduce a new feature that leverages the NVD to retrieve and analyze newly released CVEs. By fetching NVD data, filtering out undesired entries, and using a parallel approach for processing vulnerabilities, we enhance the tool's ability to find fixes for vulnerabilities automatically.

Key Changes

  • Filtering: We have implemented a filtering mechanism to ensure that Prospector processes only vulnerabilities linked to OSS products. This involves extracting the product name from the vulnerability description and matching it with a previously mapped list of projects. This list includes additional metadata like the corresponding GitHub repository for each product.

  • Parallel Processing: To improve processing, we've introduced parallel execution using a worker-based architecture. Tasks are distributed across multiple workers managed by a Redis queue.

  • Database Storage: We have implemented a database system to store the outcomes of CVE analysis. The db contains both raw and processed vulnerability data, allowing for easier management via SQL queries. Furthermore, the database simplifies future studies on pipeline coverage as well as Prospector capabilities.

  • REST API and Frontend: REST API endpoints have been developed to provide access to the database, fetch new CVEs from NVD by specifying a time range, filter and analyse them, and view the results. Additionally, a simple webpage has been created to facilitate interaction with the APIs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant