Purpose
This guide explains how to connect Qualys VMDR to Logsign as a Response integration, so an analyst can pull host vulnerability detection data for a specific IP address directly into a Logsign Incident. This is a query integration, not a log collection poller: it does not pull Qualys logs into Logsign on a schedule. It only runs when an analyst (or a correlation rule) calls its method from Settings > Integrations > Responses.
Do not confuse this with Logsign's separate Qualys VMDR data collection poller, which ingests appliance and scan data on its own schedule and is documented in a different article. The two integrations share the same underlying Qualys account and platform concepts (base URL, API user, roles), but they are configured and used independently, and this guide only covers the Response/Action side.
Prerequisites
You need an account with Administration privileges in Qualys to create the dedicated API user described in Step 1. You also need to know which Qualys platform (region/shard) your subscription runs on, since Qualys does not use a single global API address; see Step 1 for how to identify it.
Authentication is HTTP Basic (username and password) against the Qualys VM API. There is no OAuth flow and no separate API key or token for this integration; whatever username and password you configure are the same credentials the API user would use to authenticate against Qualys directly.
Step 1: Identify your Qualys platform and create a least-privilege API user
Identify your platform first. Qualys operates several separate platform instances (sometimes called shards), each with its own hostname for both the web console and the API. Your subscription lives on exactly one of them, and pointing the integration at the wrong one will fail authentication even with correct credentials, because the account simply does not exist on that platform. The most reliable way to confirm yours is to log in to your Qualys console and check Help > About, which shows your current platform under Security Operations Center (SOC). Qualys also publishes a platform identification lookup at qualys.com if you only know your login URL.
The table below lists the current published API server URLs by platform, sourced from Qualys's own platform identification page. Confirm against Help > About in your own console before relying on it, since Qualys occasionally adds new platforms.
| Platform | API Server URL (use this as Host) | Web Console Login URL (do not use this one) |
|---|---|---|
| US1 | https://qualysapi.qualys.com | https://qualysguard.qualys.com |
| US2 | https://qualysapi.qg2.apps.qualys.com | https://qualysguard.qg2.apps.qualys.com |
| US3 | https://qualysapi.qg3.apps.qualys.com | https://qualysguard.qg3.apps.qualys.com |
| US4 | https://qualysapi.qg4.apps.qualys.com | https://qualysguard.qg4.apps.qualys.com |
| EU1 | https://qualysapi.qualys.eu | https://qualysguard.qualys.eu |
| EU2 | https://qualysapi.qg2.apps.qualys.eu | https://qualysguard.qg2.apps.qualys.eu |
| EU3 | https://qualysapi.qg3.apps.qualys.it | https://qualysguard.qg3.apps.qualys.it |
| IN1 (India) | https://qualysapi.qg1.apps.qualys.in | https://qualysguard.qg1.apps.qualys.in |
| CA1 (Canada) | https://qualysapi.qg1.apps.qualys.ca | https://qualysguard.qg1.apps.qualys.ca |
| UK1 | https://qualysapi.qg1.apps.qualys.co.uk | https://qualysguard.qg1.apps.qualys.co.uk |
| AU1 | https://qualysapi.qg1.apps.qualys.com.au | https://qualysguard.qg1.apps.qualys.com.au |
| AE1 | https://qualysapi.qg1.apps.qualys.ae | https://qualysguard.qg1.apps.qualys.ae |
| KSA1 (Saudi Arabia) | https://qualysapi.qg1.apps.qualysksa.com | https://qualysguard.qg1.apps.qualysksa.com |
| GOV1 | https://qualysapi.gov1.qualys.us | https://qualysguard.gov1.qualys.us |
| Private Cloud Platform | https://qualysapi.<your-customer-base-url> | https://qualysguard.<your-customer-base-url> |
Important: the qualysapi.* hostname is the one to use for this integration's Host field. The qualysguard.* hostname is where you log in to the web console in a browser; it is a different service and will not accept the API calls this integration makes. Logsign's separately published Qualys VMDR data collection (poller) article currently lists qualysguard.* addresses as "Common Examples" for its API host field, which is inconsistent with Qualys's own documentation on this point; that discrepancy is tracked separately and is not corrected here, but for this Response integration use the qualysapi.* address for your platform.
Create the API user with least privilege. Do not point this integration at a personal administrator login.
- Log in to Qualys with Admin privileges and go to Administration > Role Management.
- Either reuse the built-in Unit Manager role (with API Access enabled), or create a new custom role scoped to only what this integration needs.
- On the role, enable API Access. Qualys's Reader role commonly returns 401/unauthorized on API calls even when it can browse the console UI fine, so Reader alone is not sufficient here; this matches what Logsign's own published Qualys VMDR poller documentation already notes for the same account.
- Grant read access to host vulnerability detection data (the VM module's Host Assets / Scan Results read permission) and to the KnowledgeBase module, since this integration's single method calls both. If you narrow the role to a specific Business Unit or set of asset groups, only IPs within that scope will return results; queries for IPs outside the account's scope will come back empty rather than with a permission error (see Notes and Limits).
- Go to Administration > Create User, create a dedicated service account (for example
svc-logsign-qualys), assign it the role from the previous steps, and enable both API Access and GUI Access on the user itself. Complete the email verification/activation flow so the account is active.
Qualys's own role and permission screen names can shift slightly between console versions and are managed per subscription; the specific "Host Assets read" / "KnowledgeBase read" permission checkbox names above were not confirmed against a live Role Management screen for this guide. Treat them as a starting point and adjust to match what your console actually shows.
Step 2: Configure the integration in Logsign
In Logsign, go to Settings > Integrations > Responses, search for Qualys VMDR, click Configure, then +Device.
| Field | Required | Value / Notes |
|---|---|---|
| Device Name | Yes | A friendly name for this configuration, used when selecting the device from an Incident's Responses panel. |
| Host | Yes | The qualysapi.* base URL for your platform from Step 1, for example https://qualysapi.qualys.com. Include the https:// scheme; based on source-code review, this value is passed directly into an HTTP client's base URL setting, which needs a scheme to build valid request URLs. Do not add a trailing slash: the integration appends paths starting with a leading slash (for example /api/2.0/fo/...), and a trailing slash on the Host value would produce a double slash in the resulting request URL. This was not confirmed against a live test call for this guide. |
| Username | Yes | The service account created in Step 1. Not a personal login. |
| Password | Yes | The service account's password. Stored encrypted by Logsign. |
| Insecure Skip Verify | No, defaults to true | Boolean. Based on source-code review of the integration's configuration schema, this defaults to true, meaning TLS certificate validation is skipped by default. Qualys's cloud API endpoints use publicly trusted CA certificates, so there is normally no reason to leave this enabled for a standard Qualys VMDR connection; consider setting it to false unless you are routing through a proxy or gateway with its own certificate. Whether this field is actually exposed as a toggle in the Logsign UI form was not confirmed for this guide. |
Based on source-code review, the integration's underlying configuration also defines an optional outbound proxy URL field, but it is not listed in the integration's manifest (the schema the Logsign UI form is generated from), so it is likely not configurable from the UI at this time. This was not confirmed against a live device-creation screen for this guide.
Save the device. Logsign performs a connectivity check when the device is saved (or when using a Test action, if your build exposes one in the UI): it calls the Qualys VM API with a dummy IP address and checks that the response contains a valid <HOST_LIST_OUTPUT> XML root element. This confirms the Host, Username and Password combination can reach Qualys's VM API and authenticate successfully, but it does not confirm KnowledgeBase access; it is possible to pass this check and still get a 401 or an empty result from the method below if the account lacks KnowledgeBase permission. This detail was derived from source-code review and not confirmed against a live UI screenshot.
Available Methods
This integration exposes a single method from within an Incident's Responses panel.
get_host_detections
Looks up an IP address in Qualys VMDR and returns the vulnerabilities Qualys has detected on that host. This is typically used to pivot from an IP that appears in a Logsign alarm or Incident straight into Qualys's vulnerability data for that host, without leaving Logsign.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ip_address | string (IP format) | Yes | The IP address to look up, as recorded in Qualys's host asset inventory. Only a single IP address is supported per call; there is no bulk/CIDR lookup. |
Behind the scenes, a single call to this method makes two separate sequential Qualys API requests: first a host detection list call against the VM API's host detection endpoint to collect the QIDs (Qualys's internal vulnerability identifiers) currently detected on that IP, then a KnowledgeBase lookup to fetch the full details for those QIDs. Both requests count separately against your subscription's concurrency and rate limits (see Notes and Limits).
The result returned to the Incident timeline is a list of records with the following fields, taken directly from the integration's response schema and matching what the Logsign incident timeline card displays for this method:
| Field | Description |
|---|---|
| QID | Qualys's internal vulnerability identifier for this detection. |
| Title | Vulnerability title from the Qualys KnowledgeBase. |
| VulnType | Qualys's vulnerability type classification (for example, confirmed vulnerability vs. potential vulnerability). |
| Category | Qualys KnowledgeBase category for the vulnerability. |
| CVEList | A CVE ID associated with the vulnerability. Based on source-code review, this field only returns the first CVE ID when a QID has multiple associated CVEs in Qualys's KnowledgeBase; it is not a full list despite the field name. This is a known limitation of the current integration code, not a Qualys API limitation. |
| Patchable | Yes/No, whether Qualys reports a patch is available. |
| PCIFlag | Yes/No, whether the vulnerability is flagged as relevant to PCI compliance scanning. |
| PublishedDate | Date the vulnerability was published to Qualys's KnowledgeBase. |
| LastServiceModificationDate | Date Qualys last updated this KnowledgeBase entry. |
If Qualys has no detections on record for the IP you query, the method returns no result rather than an error; the Incident timeline card shows an empty table in this case. This can mean the host genuinely has no open vulnerabilities, but it can equally mean the IP has never been scanned, has not been re-scanned recently, or falls outside the API user's Business Unit/asset group scope, none of which are distinguishable from the response alone.
Notes and Limits
- This is a query integration, not a log collector. It does not ingest Qualys scan results into Logsign's event store on its own; each call returns data only for the specific IP an analyst (or a correlation rule) queries at that moment.
- Authentication is HTTP Basic against Qualys's own VM API login, with no support for any Qualys multi-factor/token step. If your organization enforces MFA at the account level for all Qualys logins, confirm with Qualys support whether that applies to Basic Auth API calls for the service account, since a blanket MFA policy could make this integration unusable regardless of correct credentials. This was not verified against a live Qualys account for this guide.
Qualys enforces both a concurrency limit and a rate limit per subscription, per API, and returns HTTP 409 Conflict (not 429) when either is exceeded. Qualys's own published limits, as of the last update to their reference document, are summarized below. Confirm your subscription's actual service level with Qualys, since these can be customized per subscription:
Service Level Concurrency Limit (per API) Rate Limit (per API) Express/Consultant 1 concurrent call 50 calls per day Standard 2 concurrent calls 300 calls per hour Enterprise 5 concurrent calls 750 calls per hour Premium 10 concurrent calls 2000 calls per hour Because each
get_host_detectionscall makes two Qualys API requests (one to the host detection endpoint, one to the KnowledgeBase endpoint), a burst of lookups from Logsign consumes the quota roughly twice as fast as the call count from an analyst's perspective would suggest. On a Standard subscription, more than 2 near-simultaneous lookups from different analysts (or a correlation rule firing repeatedly) can trigger a concurrency-limit 409.- Qualys exposes current quota usage in every API response's HTTP headers (
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-ToWait-Sec,X-ConcurrencyLimit-Limit,X-ConcurrencyLimit-Running). This integration does not currently surface those headers to the Logsign UI; if you need to monitor quota consumption, check the Activity Log in the Qualys console instead (Users > Activity Log, search Details for "API"), which records blocked calls as "API blocked (concurrency): ..." or "API blocked (rate): ...". - Insecure Skip Verify defaults to true (TLS certificate validation skipped). See Step 2 for guidance on when it is safe to disable.
- Only IPs already known to Qualys as an asset, and within the API user's Business Unit/asset group scope, return data. There is no way for this integration to trigger a new Qualys scan or add a new asset; it is read-only against existing detection data.
Troubleshooting
| Symptom / Code | Likely Cause | What to Check |
|---|---|---|
| 401 Unauthorized | Wrong username or password, or the account's role does not have API Access enabled (Qualys's Reader role commonly falls into this even with correct credentials). | Re-enter the credentials in the Logsign device configuration. In Qualys, confirm the user's role has API Access enabled under Administration > Role Management, as described in Step 1. |
| 401/403 only on get_host_detections, not on save/test | The connectivity check performed on device save only exercises the host detection endpoint, not the KnowledgeBase endpoint that the same method also calls internally. The account may have Host Assets read access but lack KnowledgeBase read access, or vice versa. | In Qualys, confirm the role has read access to both the VM host/asset detection data and the KnowledgeBase module, not just one of the two. |
| 409 Conflict | Qualys's concurrency limit or rate limit for your subscription's service level has been exceeded (Qualys uses 409, not 429, for this). See Notes and Limits for the default limits by service level. | Wait for the period Qualys's response indicates, or space out lookups. Check the Qualys Activity Log for "API blocked (concurrency)" or "API blocked (rate)" entries to confirm which limit was hit. |
| Connection refused / timeout / wrong-platform errors | The Host field points at the wrong Qualys platform for your subscription, or at the qualysguard.* web console hostname instead of the qualysapi.* API hostname. | Re-check your platform under Help > About in the Qualys console and compare against the table in Step 1. Make sure you used the qualysapi.* row, not the qualysguard.* one. |
| Empty result for an IP you know has vulnerabilities in Qualys | The IP is outside the API user's Business Unit or asset group scope, the host has not been scanned recently (or at all) by Qualys, or the IP simply is not registered as an asset under that exact address in Qualys. | Log in to Qualys directly with the same service account and search for the IP under Assets to confirm it is visible to that account and has detection data. |
| TLS / certificate error | Insecure Skip Verify was set to false, and something between Logsign and Qualys (for example a corporate TLS-inspecting proxy) is presenting a certificate Logsign does not trust. | Confirm you are reaching Qualys's public endpoint directly. If a proxy is in the path, either trust its CA certificate or set Insecure Skip Verify back to true as a last resort, understanding that this disables certificate validation entirely. |
| Result only shows one CVE for a vulnerability you know has several | Known code limitation, not a configuration issue: the CVEList field currently returns only the first associated CVE ID for a QID. | Cross-reference the QID directly in the Qualys KnowledgeBase for the full CVE list. See Available Methods above. |