SoftwareDesignLab / nvip-crawler

Crawler project for National Vulnerability Integlligence Platform
MIT License
0 stars 0 forks source link

NVIP - The Backend System

The NVIP back end system is scheduled to run periodically to find CVEs as soon as they are disclosed at CVE Numbering Authority(CNA) web pages. It scrapes disclosed CVEs, scores/characterizes them automatically and stores them into the database.

System Requirements

Summary of Open Source Technologies/Systems Used

Installation and Setup Guide (w/ Docker)

1. Download & Install MySQL, Create the Database

2. Create Database (via MySQL Workbench)

liquibase --changeLogFile=db.init.xml --classpath=./mysql-connector-j-8.0.33.jar --url="jdbc:mysql://localhost:3306/DB Name" --username=USERNAME --password=PASSWORD update

3. Build & Package

Make sure you can build the project before setting it up with docker From the root directory, run the following command via cmd line to install dependencies:

$ mvn clean install

If successful, run the following command to package the Maven project into a jar file

$ mvn package -DskipTests`

You can also run unit tests separately with the Maven test command:

$ mvn test

After the build process, the output jar will be located under the "target" directory of the project root. This is the Jar file that Docker will use to run the application. If you're using Docker (which is the prefferred way of running it), you don't have to worry about the jar file as long as it builds.

4. Install Docker and Build via Docker CLI

Running the Crawler

docker run -d --rm --memory=10g --env-file=./nvip.env --volume=./crawler-output:/usr/local/lib/output --volume=exploit-repo:/usr/local/lib/nvip_data/exploit-repo --volume=mitre-cve:/usr/local/lib/nvip_data/mitre-cve --name=nvip-crawler ghcr.io/softwaredesignlab/nvip-crawler:latest

Running the Reconciler

docker run -d --env-file=./nvip.env --name=nvip-reconciler ghcr.io/softwaredesignlab/nvip-reconciler:latest

Running the Product Name Extractor

docker run -d --env-file=./nvip.env --name=nvip-productnameextractor ghcr.io/softwaredesignlab/nvip-productnameextractor:latest

Running the Patchfinder

docker run -d --env-file=./nvip.env --name=nvip-patchfinder ghcr.io/softwaredesignlab/nvip-patchfinder:latest

Component Documentation

Overview

This project consists of 6 main components.

Project Team