Security Console Best PracticesCopy link

To help you be successful with the Security Console and its improvements and updates, we have provided the following recommendations.

System RequirementsCopy link

When considering the system requirements for the Security Console, it is beneficial to plan for future growth instead of only the current environment. Configure the server resources for the Security Console at the higher end of system requirements whenever possible to ensure that your Security Console server is more resilient as your vulnerability program scales.

Network CommunicationCopy link

The Security Console requires communication with the Rapid7update server to receive product updates and vulnerability content:updates.rapid7.comover TCP port 443.

Additionally, you must configure communication with the Command Platform (Insight Platform) to send and receive vulnerability findings.

To ensure uninterrupted communication, read our documentation on allowlisting the Rapid7 Servers:

Add all required network addresses on firewalls and endpoint protection to the allowlist. Also, we recommend checking to confirm if there is any SSL/TLS packet inspection occurring as this can interfere with connectivity to the Platform and product updates if not appropriately allowlisted.

Adjust Administration SettingsCopy link

There are several Vulnerability Management (InsightVM) settings that can be optimized out of the box for increased Security Console performance.

Adjust Data retention policies in Administration > Vulnerability Management > Backup and Retention.

Protect your private keysCopy link

By default, private keys are stored in a keystore file that is encrypted with a passphrase. Keystore files are stored on a file system that doesn't have any extra security protection unless you choose to implement it. Private keys are stored this way so that server applications can use them with minimal friction – in other words, they eliminate the need for a user to enter a password manually every time the Security Console restarts. This method of private key storage also simplifies monitoring, because the monitoring process targets only a small number of files.

Monitoring can be directed at individual keystore files, including nscweb.ks, which is created during the configuration of aCA-signed HTTPS certificate.

Thensc.ks keystore file is located by default in the keystores directory (for example, at /opt/rapid7/nexpose/nsc/keystores), and contains the private key that is used to decrypt scan credentials in the database and identify the Security Console with distributed or remote scan engines. The file also contains the private key used for the web interface, however this can be overwritten by creating a custom private key - to do so, follow the steps to use ause a CA-signed certificate.

The keystore file is encrypted and the encryption key is stored in the creds.kspw file in the /opt/rapid7/nexpose/shared/conf directory. To ensure these private keys are kept secure, you can optionally undertake these measures:

Some environments do not have any encrypted credentials in the database that a private key in the keystore is used to decrypt. For example, environments that:

  • Only use the Rapid7 Agent
  • Don't have authenticated scans configured
  • Don't use Discovery connections

However, the keystore still contains the private key for the web interface (if you didn't create a custom private key to use a CA-signed certificate), so extra security measures are advised.

Backups contain sensitive data

The keystore file is included in backups and could be used to decrypt credentials if:

The creds.kspw file is obtained by an attacker.

The attacker successfully figures out the password without access to the creds.kspw file, which can be mitigated by using a long password or passphrase.

Therefore, it is important that you treat backups as sensitive, since they not only contain the keystore file, but all of your environment data.

By contrast, thecreds.kspwfile is not stored in a backup and you must note the password to your private key, as advised in thePre-Backup and Restore Checklist.

Reducing expensive calculations and administrative overheadCopy link

You can reduce expensive calculations and administrative overhead by organizing sites, ensuring you are efficiently running reports and pulling data, and asset tagging.

Configuring Shared Credentials (Authentication)Copy link

For best results it is critical that credentials are granted with root/administrator level access to fully and properly assess assets.

Elevated permissions

There is a difference between credentials and permissions. Credentials are typically username/password login that allows us to authenticate to a server or workstation. Permissions or Elevated Permissions are what control what we can "access" on the server. In order to properly assess an asset we need root/administrator level permissions.

Configuring a service account with the right level of permissions can be time consuming, Rapid7 offers multiple solutions for credential concerns:

  • Rapid7Agents : Agents are installed on each endpoint and assessment occurs automatically every 6 hours, collected results are sent to the Vulnerability Management (InsightVM) platform, and then sent down to the Vulnerability Management(InsightVM) Security Console. Agents cannot perform unauthenticated (remote) vulnerability assessments. For the most accurate view of your environment, we recommend using Agent assessments for authenticated (local) assets and unauthenticated engine scans for unauthenticated (remote) assets. Seescan capability comparison for more information on the functionality provided by the Agent and Scan Engine.
  • Scan Assistant: The Scan Assistant achieves the same results as a credential scan without the need for administrative credential management and provides accurate, granular vulnerability fingerprinting and assessment for assets. The Scan Assistant allows the Scan Engine to connect directly to an endpoint in order to collect data without the need for additional credentials. A secure connection is created between the Scan Engine and the Scan Assistant by using elliptic curve asymmetric encryption (ECDSA) and advanced encryption standard (AES).

Updating the Security ConsoleCopy link

Vulnerability Management (InsightVM) product updates are usually weekly on Monday. To stay on the latest version, make sure the automatic updates are enabled, and follow the update frequency guidance mentioned above. If the Security Console does not update you may want to restart before contacting Rapid7 Support for assistance.

The Vulnerability Management (InsightVM) content updates include new or modified vulnerabilities. Content updates are checked every two hours and don't require a system reboot.

Make sure your Scan Engines are properly updated. As long as the Scan Engine has enough storage space and can reach the Vulnerability Management (InsightVM) Security Console, it should automatically update whenever it is not running a scan.

Unless you are on a Rapid7 hosted Security Console, you are also responsible for updating the underlying operating system, including applying the latest security patch and ensuring the OS version itself is still supported. This ensures you continue to receive the latest Vulnerability Management (InsightVM) versions.

Ensure you're running the latest version of the Vulnerability Management(InsightVM)PostgreSQL database. Running an older version can cause some potential issues with the database as well as general slowdown for the console and reports.

Vulnerability Management (InsightVM) Database MaintenanceCopy link

Vulnerability Management (InsightVM) includes a PostgreSQL database, to ensure optimal performance it will automatically run Auto-Vacuum. You can learn more about Auto-Vacuum on the PostgreSQL page at https://www.postgresql.org/docs/15/routine-vacuuming.html .

If you have an environment with over 50,000 assets that also has a lot of frequent changes, such as adding or removing large numbers of assets, and are noticing slower console performance, you should consider running a manual database maintenance quarterly; frequency can be lowered as performance issues are resolved.

In Administration under the Database header, click Maintenance > Run Manual Maintenance. This executes a "Vacuum Full Analyze" on the PostgreSQL database.

Tune the PostgreSQL DatabaseCopy link

Vulnerability Management (InsightVM) has a feature called Tune Assistant that performs database auto tuning such as automatically tuning based on the amount of RAM on the Security Console server. The database will be automatically tuned upon install, but if you increase the Security Console resources after install, you will want to manually run the auto tune.

To activate it, go to Administration > Vulnerability Management > Run and then run the command "tune assistant" to view how the database will be tuned, and then run "tune assistant apply". The tune will then be applied upon the next system reboot. This will have a greater impact if you have 64GB RAM or above.

You can also reviewthis additional guidance on tuning the PostgreSQL database for more details. We recommend contactingRapid7 Support for assistance with tuning PostgreSQL if you are utilizing memory based storage (SSD, NVMe) or if you are assessing over 75,000 assets in your environment.