Rapid7 InsightVM Response Integration via API

Purpose

This guide explains how to connect Rapid7 InsightVM to Logsign as a Response integration, so an analyst can query asset, vulnerability, site and scan data from InsightVM, and trigger or control scans, directly from a Logsign Incident. This is a query/action integration, not a log collection poller: it does not pull InsightVM logs into Logsign on a schedule. It only runs when an analyst (or, for the read-only methods, a correlation rule) calls one of its methods from Settings > Integrations > Responses.

InsightVM is Rapid7's on-premises vulnerability management console (the product is sometimes confused with an EDR/endpoint detection tool because of how it is labeled in some older Logsign builds; it is not an EDR, it is a vulnerability scanner and asset risk platform). The integration talks to your own Security Console over its REST API, so there is no Rapid7 cloud tenant or region to select: the host is whatever address your organization uses to reach its Security Console.

Based on the current integration manifest in the Logsign codebase, this integration is registered with disable_action_rule: true, which means it is filtered out of the automated Action Rules (correlation-triggered playbook) list in the Logsign UI. In practice this integration is available as a manual, analyst-triggered Response from inside an Incident, not as something a correlation rule fires on its own. If your build behaves differently, treat this as the current source-level behavior rather than a guarantee, since it was not confirmed against a live UI screenshot for this guide.

Prerequisites

You need network reachability from your Logsign instance to the InsightVM Security Console on its HTTPS management port (3780 by default for on-premises Security Consoles). You also need a Security Console user account dedicated to this integration; Step 1 below covers how to scope that account down from a full administrator. The exact minimum Logsign version that ships this integration was not found in release notes for this guide; the underlying code has been present in the Logsign repository since 2022, so any reasonably current Logsign 6.x build should include it, but confirm with Logsign support if you are on an older build and do not see Rapid7 InsightVM listed under Settings > Integrations > Responses.

One authentication detail to plan around: the integration authenticates with HTTP Basic Authorization (username and password) only. It does not send an InsightVM two-factor authentication token on any request. If two-factor authentication is enforced for the account you create in Step 1, every call this integration makes will fail with a 401, even with a correct username and password. Use an account that is exempt from 2FA enforcement, or disable 2FA specifically for the service account if your organization's policy allows it.

Step 1: Create a least-privilege API user on the InsightVM Security Console

Do not point this integration at a personal administrator login. Create a dedicated service account instead, scoped to only what the methods you intend to use actually require.

  1. Sign in to the Security Console as a Global Administrator, open Administration > Users, and create a new user (a dedicated service account, for example svc-logsign-insightvm).
  2. When choosing a role, avoid the built-in Global Administrator preset unless you specifically need the site-creation and site-deletion methods described below. Instead, create a custom role.
  3. For the read and query methods (listing sites, assets, asset groups, scans, scan engines, scan templates, and vulnerabilities), grant the custom role View Site Asset Data and View Group Asset Data, then explicitly assign that user access to the specific sites and/or asset groups you want Logsign to be able to query. A custom role with no site or asset group access attached will authenticate successfully but return empty results.
  4. For start_site_scan and change_scan_status, also grant the site-level permission Start Unscheduled Scans (and, if you want scheduled scans to remain adjustable through this account, Schedule Automatic Scans) on the sites this account can access.
  5. For create_new_site and delete_site_by_id: according to Rapid7's published documentation, site creation and deletion (the "Manage Sites" capability) is restricted to the Global Administrator role and cannot be granted through a custom role. If you need Logsign to be able to create or delete sites through this integration, the service account has to be a Global Administrator; there is no scoped middle ground on the Rapid7 side for this specific capability. If you only need the read/query and scan-control methods, skip this and keep the account scoped as a custom role.
  6. Save the user, then use the same username and password when configuring the integration in Logsign in Step 2. InsightVM's API v3 does not use a separate API key; it authenticates with the console login credentials over Basic Auth.

The exact wording and location of these permission checkboxes can shift slightly between InsightVM releases, and this guide's permission names were taken from Rapid7's published user-management documentation rather than a live custom-role screen, so treat the permission names above as a strong starting point and confirm them against your own console version if anything is missing.

Step 2: Configure the integration in Logsign

In Logsign, go to Settings > Integrations > Responses, search for Rapid7 InsightVM, click Configure, then +Device.

FieldRequiredValue / Notes
HostYesThe full base URL of your Security Console, including the scheme and port, for example https://insightvm.yourcompany.local:3780. Unlike some other Logsign integrations, this field needs the https:// prefix; the integration passes it straight into an HTTP client that requires a scheme to build valid request URLs. Do not include the API path here, that is a separate field below. There is no fixed list of regional or cloud hosts for this integration since it always points at your own on-premises console.
API PathYesThe base path segment appended after the host, typically /api/3 for InsightVM's current REST API. This field must start with a leading slash. If you omit the leading slash, the integration concatenates the host and path with nothing in between and produces a broken URL (for example https://insightvm.yourcompany.localapi/3/sites instead of https://insightvm.yourcompany.local/api/3/sites). A trailing slash is tolerated and stripped automatically, so /api/3 and /api/3/ both work.
UsernameYesThe service account created in Step 1.
PasswordYesThe service account's password. Stored encrypted by Logsign.
Insecure Skip VerifyYesBoolean, defaults to true (TLS certificate validation is skipped). This default is convenient for consoles running a self-signed certificate, which is common for on-premises InsightVM installs, but it also means a man-in-the-middle between Logsign and the console would go undetected. If your Security Console has a certificate issued by a CA that Logsign already trusts, set this to false.

Save the device. There is no dedicated "Test Connection" method exposed in the method list; the integration does have an internal connectivity check that calls GET /sites against your configured host and path, but it runs as part of Logsign's own device-save flow rather than as something you invoke separately.

Available Methods

Every method below is invoked from within an Incident's Responses panel by selecting the configured Rapid7 InsightVM device and the method name. Parameters marked "functionally required" are not enforced by the underlying schema (so the form will let you submit them blank), but the call will fail or return an unhelpful result without them.

get_sites

Lists sites configured in InsightVM, with asset counts, risk score and vulnerability summary per site.

ParameterTypeRequiredNotes
pagestring (numeric)No, default 0Zero-indexed page number.
sizestring (numeric)No, default 10Results per page.
sortstring, enum ASC / DESCNo, default ASC

create_new_site

Creates a new InsightVM site. Requires the Global Administrator-level account described in Step 1.

ParameterTypeRequiredNotes
namestringYesSite name.
connectionIDintegerYesID of the scan engine connection to use for the site's initial scan configuration.
engineIdintegerNoScan engine to assign the site to.
descriptionstringNo
importancestring, enum very_low / low / normal / high / very_highNo, default normal
scanTemplateIdstringNoID of the scan template to associate with the site.
includedTargets, excludedTargetsobject (address list)NoIP addresses or ranges to include or exclude from the site.
includedAssetGroups, excludedAssetGroupsobject (asset group ID list)NoExisting asset groups to include or exclude from the site.

delete_site_by_id

Deletes a site by ID. Requires the Global Administrator-level account described in Step 1. This is destructive and not reversible from InsightVM's side; the historical scan and asset data tied to the site is removed with it.

ParameterTypeRequiredNotes
idintegerFunctionally requiredSite ID, as returned by get_sites.

get_assets

Lists assets known to InsightVM, with host names, IP/MAC addresses, OS fingerprint and vulnerability counts.

ParameterTypeRequiredNotes
pagestring (numeric)No, default 0
sizestring (numeric)No, default 10
sortstring, enum ASC / DESCNo, default ASC

get_asset_detail_by_asset_id

Returns the full asset record for a single asset: services, software inventory, users, groups, OS fingerprint and vulnerability totals. This is typically the first call an analyst makes when pivoting from an IP or hostname in an alarm to InsightVM's view of that host.

ParameterTypeRequiredNotes
idintegerFunctionally requiredAsset ID. InsightVM's asset ID is an internal numeric identifier, not an IP address; use asset_search or get_assets first if you only have an IP or hostname.

asset_search

Searches assets by a single filter condition (field, operator, value or value range) combined with a match mode.

ParameterTypeRequiredNotes
fieldstringNoInsightVM asset search field name, for example ip-address or host-name.
operatorstringNoInsightVM search operator, for example is or contains.
valuestringNoSingle comparison value.
lower, upperstringNoUsed with range-style operators.
matchstring, enum any / allNoWhether multiple filters must all match or any one match.
valuesarray of stringNoIntended for operators that take multiple values (for example "in"). Based on a source-code review, the current implementation does not read this array correctly, so multi-value filters may not behave as expected; single-value filters (field/operator/value) are unaffected. This was not confirmed against a live console for this guide.
page, size, sortstring / enumNoSame paging parameters as get_assets.

Note: InsightVM's own API documents asset search as a POST request. Based on a source-code review, this integration issues the request as an HTTP GET with a body instead. Most HTTP clients and proxies tolerate this, but if your environment has anything in the path that strips bodies from GET requests, this method may return unexpected results. This was not confirmed against a live console for this guide.

get_asset_groups

Lists asset groups with asset counts, risk score and vulnerability summary per group. No parameters.

create_asset_group

Creates a static or dynamic (search-based) asset group.

ParameterTypeRequiredNotes
namestringYes
assetTypestring, enum static / dynamicYesDynamic groups use the search filter fields below; static groups do not.
descriptionstringNo
field, operator, value, lower, upper, match, valuesstring / arrayNoSame search-filter fields as asset_search, used only when assetType is dynamic. The same values-array caveat noted for asset_search applies here.

Note: the same GET-instead-of-POST behavior noted for asset_search applies to create_asset_group; based on source-code review this method also sends its request as an HTTP GET rather than the POST that InsightVM's API documents for group creation. Not confirmed against a live console for this guide.

delete_asset_group

ParameterTypeRequiredNotes
idintegerFunctionally requiredAsset group ID.

get_scans

Lists scans, active or historical, with status, timing and vulnerability counts.

ParameterTypeRequiredNotes
pagestring (numeric)No, default 0
sizestring (numeric)No, default 10
sortstring, enum ASC / DESCNo, default ASC
activeboolean, enum true / falseNo, default falseFilter to currently running scans only.

get_scan_by_id

ParameterTypeRequiredNotes
idintegerFunctionally requiredScan ID, as returned by get_scans or start_site_scan.

change_scan_status

Pauses, stops or resumes a running scan.

ParameterTypeRequiredNotes
idintegerFunctionally requiredScan ID.
statusstring, enum pause / stop / resumeFunctionally required

start_site_scan

Starts a new scan against a site, optionally limited to a specific list of hosts within it. This is typically used to trigger an on-demand rescan of a host that just triggered an alarm.

ParameterTypeRequiredNotes
idintegerFunctionally requiredSite ID to scan.
engineIdintegerNoOverrides the site's default scan engine.
templateIdstringNoOverrides the site's default scan template.
namestringNoOptional label for the scan.
hostsarray of stringNoLimit the scan to specific IP addresses or hostnames within the site instead of scanning the whole site.

get_scan_engines

Lists configured scan engines with address, port and status. No parameters.

get_scan_templates

Lists available scan templates with their discovery, performance and check configuration. No parameters.

get_asset_vulnerabilities

Lists the vulnerabilities found on a specific asset, with per-vulnerability status and instance count.

ParameterTypeRequiredNotes
idintegerFunctionally requiredAsset ID.
pagestring (numeric)No, default 0
sizestring (numeric)No, default 10
sortstring, enum ASC / DESCNo, default ASC

get_vulnerability_detail_by_asset

Returns detail for a single vulnerability on a single asset, including per-port/protocol proof and status.

ParameterTypeRequiredNotes
assetIDintegerFunctionally requiredAsset ID.
vulnIDintegerFunctionally requiredVulnerability ID, as returned by get_asset_vulnerabilities.

Based on a source-code review, the current implementation reads both the asset and vulnerability identifiers from the same internal field, so the two values shown as separate fields in the Logsign form may not both be honored by the underlying request; in practice this can return the wrong vulnerability, or the same vulnerability regardless of which ID you enter. This was not confirmed against a live console for this guide. If you rely on this method, verify the returned result matches the vulnerability you expected before acting on it, and consider reporting this to Logsign support if you confirm the mismatch.

Notes and Limits

  • This is a query/action integration, not a log collector. It does not ingest InsightVM scan results or vulnerability data into Logsign's event store on its own; each method call returns data only for the specific request an analyst (or a correlation rule, for read-only methods) makes at that moment.
  • Authentication is HTTP Basic (username and password) against the Security Console's own login. There is no separate API key concept for this integration, and no support for supplying an InsightVM two-factor authentication token, so the service account must not have 2FA enforced.
  • Site and scan creation/deletion require Global Administrator on the InsightVM side; the read/query methods and scan start/pause/stop/resume can run with a scoped custom role that only has visibility into specific sites or asset groups. See Step 1 for the split.
  • Based on a source-code review, asset_search and create_asset_group issue their requests as HTTP GET rather than the POST that InsightVM's API documents for these operations, and both methods' multi-value filter (the "values" array) is not read correctly by the current code. None of this was confirmed against a live console for this guide; if you plan to depend on multi-value asset search filters or on group creation from Logsign, test against your own console first.
  • get_vulnerability_detail_by_asset appears, from source-code review, to conflate its Asset ID and Vulnerability ID parameters. Treat results from this specific method with extra caution until verified against your own console.
  • InsightVM's on-premises Security Console API does not document a rate limit (no 429 response is defined in Rapid7's published API v3 specification), unlike Rapid7's cloud APIs which do enforce one. That said, a busy console under heavy scan load may respond slowly to API calls regardless.
  • The TLS verification setting (Insecure Skip Verify) defaults to true, which skips certificate validation. This is a sensible default for a self-signed on-premises console but is worth revisiting if your console has a certificate from a CA your organization already trusts.

Troubleshooting

Symptom / CodeLikely CauseWhat to Check
401 UnauthorizedWrong username or password, or the service account has two-factor authentication enforced (this integration cannot supply a 2FA token).Re-enter the credentials in the Logsign device configuration. Confirm the account can log in to the Security Console web UI with the same credentials, and that 2FA is not required for it.
403 ForbiddenThe account authenticated successfully but lacks the specific permission for the method called, most commonly site creation/deletion attempted with a non-Global-Administrator account.Check the account's role and, for create_new_site/delete_site_by_id, confirm it is a Global Administrator as described in Step 1. For other methods, confirm the relevant site/asset group permission and access assignment.
404 Not FoundThe site, asset, scan, asset group or vulnerability ID does not exist, or it exists but the service account has not been granted access to the site/asset group it belongs to. Rapid7's API returns 404, not 403, when a resource exists but the authenticated user is not permitted to see it, so a 404 does not always mean the ID is wrong.Verify the ID with get_sites / get_assets / get_scans first. If the ID is confirmed correct, check whether the service account has been granted access to that specific site or asset group in Step 1.
Connection refused / timeoutWrong host or port, or a firewall between Logsign and the Security Console is blocking port 3780 (or whatever port your console uses).Confirm the Host field includes the correct scheme and port, and that the Logsign server can reach the console over HTTPS on that port.
TLS / certificate errorInsecure Skip Verify was set to false against a console using a self-signed or internally issued certificate that Logsign does not trust.Either set Insecure Skip Verify back to true, or import the console's CA certificate into Logsign's trust store.
Broken URL in logs (host and path run together with no slash)The API Path field was entered without a leading slash.Confirm API Path starts with a slash, for example /api/3, not api/3.
429 Too Many RequestsNot documented for the on-premises Security Console API as of this guide, but a heavily loaded console under active scanning may still respond slowly or intermittently error under load.Retry after a short delay and check console health/CPU if it recurs.
Empty results from a read methodThe service account has no site or asset group access assigned, even though the credentials themselves are valid.Confirm Site Access / Asset Group Access is explicitly assigned to the service account in InsightVM, not just a role with the View permission.
Was this article helpful?
0 out of 0 found this helpful

Articles in this section

See more
Become a Certified Logsign User/Administrator
Sign-up for Logsign Academy and take the courses to learn about Logsign USO Platform in detail. Enjoy the courses, and get your badges and certificates. In these courses, you'll learn how to use Logsign in your work and add value to your career.
Visit Our Blog
Our Logsign USO Platform illustrate our expertise. So do the blog. Through our blog posts, deepen your knowledge on various SecOps topics or get updated about important news & modern approaches for cybersecurity. Get into the habit of reading valuable information provided by Logsign. Be a step ahead.