We believe security scanning should be done continuously. Not daily, weekly, monthly, or quarterly.
The benefit of running security scanning contiuously can be any of the following:
NERVE was created to address this problem. Commercial tools are great, but they are also heavy, not easily extensible, and cost money.
NERVE is a vulnerability scanner tailored to find low-hanging fruit level vulnerabilities, in specific application configurations, network services, and unpatched services.
Example of some of NERVE's detection capabilities:
It is not a replacement for Qualys, Nessus, or OpenVAS. It does not do authenticated scans, and operates in black-box mode only.
NERVE offers the following features:
We put together the Graphical User Interface primarily for ease of use, but we will be putting more emphasis on detections and new signatures than creating a full blown user interface.
NERVE will install all the prerequisites for you automatically if you choose the Server installation (CentOS 7.x and Ubuntu 18.x were tested) (by using install/setup.sh
script). It also comes with a Dockerfile for your convenience.
Keep in mind, NERVE requires root access for the initial setup on bare metal (package installation, etc).
Services and Packages required for NERVE to run:
The installation script takes care of everything for you, but if you want to install it by yourself, keep in mind these are required.
The best way to deploy it, is to run it against your infrastructure from multiple regions (e.g. multiple instances of NERVE, in multiple countries), and toggle continuous mode so that you can catch short-lived vulnerabilities in dynamic environments/cloud.
We typically recommend not to whitelist the IP addresses where NERVE will be initiating the scans from, to truly test your infrastructure from an attacker standpoint.
To make NERVE fairly lightweight, there's no use of a database other than Redis.
If you want to store your vulnerabilities long term, we recommend using the Web hook feature. At the end of each scan cycle, NERVE will dispatch a JSON payload to an endpoint of your choice, and you can then store it in a database for further analysis.
Here are the high level steps we recommend to get the most optimal results:
POST /api/scan/submit
) and schedule a scan using the assets you gathered in step #2.git clone git@github.com:PaytmLabs/nerve.git && cd nerve
docker build -t nerve .
docker run -e username="YOUR_USER" -e password="YOUR_PASSWORD" -d -p 80:8080 nerve
In your browser, navigate to http://ip.add.re.ss:80 and login with the credentials you specified to in the previous command.
cd /opt/
git clone git@github.com:PaytmLabs/nerve.git && cd nerve
bash install/setup.sh
systemctl status nerve
In your browser, navigate to http://ip.add.re.ss:8080 and use the credentials printed in your terminal.
If you want to install NERVE in a multi-node deployment, you can follow the normal bare metal installation process, afterwards:
RDS_HOST
to point to a central Redis server that all NERVE instances will report to.service nerve restart
or systemctl restart nerve
to reload the configurationapt-get remove redis
/ yum remove redis
(Depending on the Linux Distribution) since you will no longer need each instance to report to itself.
Don't forget to allow port 3769 inbound on the Redis instance, so that the NERVE instances can communicate with it.If you want to upgrade your platform, the fastest way is to simply git clone and overwrite all the files while keeping key files such as configurations.
config.py
if you wish to save your configurations/opt/nerve
and git clone it again.config.py
file back into /opt/nerve
systemctl restart nerve
.You could set up a cron task to auto-upgrade NERVE. There's an API endpoint to check whether you have the latest version or not that you could use for this purpose: GET /api/update/platform
There are a few security mechanisms implemented into NERVE you need to be aware of.
If you identify a security vulnerability, please submit a bug to us on GitHub.
We recommend to take the following steps before and after installation
To learn about NERVE (GUI, API, etc.) we advise you to check out the documentation available to you via the platform. Once you deploy it, authenticate and on the left sidebar you will find a documentation link for API and GUI usage.
It is distributed under the MIT License. See LICENSE for more information.
:trophy: NERVE has been mentioned in various places so far, here are a few links.