This integration focuses on Rapid7 InsightVM and is using Rapid7 InsightVM REST API for interacting with the InsightVM platform.
InsightVM is a self-hosted product and it has system requirements that are listed here.
The setup process consists of downloading InsightVM (Windows and Linux both supported), installation process and then accessing the security console.
As an alternative to installing InsightVM on your local machine, you can use the Docker setup described in console/README.md
To install a Rapid7 InsightVM account, please use the links from above. During the installation you'll be asked for admin account username and password that you'll later use to access the Security Console.
To set up a Rapid7 InsightVM account, please follow these steps:
- Visit the Rapid7 Try page - it is a 2 page/step form where you're first asked details about you and your organization and on the form you're able to select InsightVM as the product you want to sign up for.
- Make sure to select InsightVM on the second form page, it might be preselected by default, if not just select it manually.
- After creating the account you should receive an email titled "Your InsightVM License Key - Get Started" which will contain your one-time-use License-Key. You'll need it for the next step.
- Go to https://localhost:3780 (the default Security Console access uri), it might take some time before everything is initialized and you're able to see the login screen.
- Log in to the console using the admin username and password you choose during the installation procedure.
- After the first time login you'll be asked to do two things:
- enter the license key from the email that you received
- connect your account with the insight account using the console pairing key <- this step is described very well on this page.
- The provider account is now fully set up.
In order to use InsightVM REST API the requests must supply authorization credentials. This integration does it by including Authorization header using a Base64 of the InsightVM console account's "username:password".
Note: The admin account that got created during the installation process can be used for this, but you might want to create a separate user account instead. To do this, you'll need to navigate to Security Console's Administration section. Once there, you can create and manage user accounts.
If you want to create a new user, use the
create and fill out the form.
Important note: if the new user's role isn't "Global Administrator" this won't
work because that account doesn't have sufficient permissions for this integration
to do all of its requests.
Create a .env file at the root of this project, and set the variables to admin
credentials & host you've set up during the development. Also set
DISABLE_TLS_VERIFICATION
, assuming your development environment uses the
default self-signed certificates provided by the Rapid7 Nexpose Security
Console.
INSIGHT_HOST=localhost:3780
INSIGHT_CLIENT_USERNAME="admin-username"
INSIGHT_CLIENT_PASSWORD="admin-password"
DISABLE_TLS_VERIFICATION=true
After following the above steps, you should now be able to start contributing to
this integration. The integration will pull in the INSIGHT_CLIENT_USERNAME
,
INSIGHT_CLIENT_PASSWORD
, INSIGHT_HOST
, and DISABLE_TLS_VERIFICATION
variables from the .env
file and use them when making requests.
If you are using the docker setup described above and wish to get some data in the console to test this integration you can do the following:
Use host.docker.internal
as the site you wish to scan. This will be resolved
by docker as your laptops internal IP. This will be ingested as an asset. If you
need vulnerability data, do the next option instead.
DVWA (Damn Vulnerable Web App) is a web application that has many known vulnerabilities. This will ensure that the Rapid7 will return vulnerability results after scanning.
- Create docker network:
docker network create vulnerable-net
- Once Rapid7 container is running:
docker network connect vulnerable-net rapid7-vm-console-container
- Run DVWA and connect to network:
docker run --rm -it -p 80:80 --network vulnerable-net vulnerables/web-dvwa
Go to the DVWA app at localhost. Follow the directions and make sure that security is set to low. More info here
- Get DVWA IP:
docker network inspect vulnerable-web
This output will show the connected containers. Grab the IP of the DVWA container and use this to be scanned in the Rapid7 console.