fcf30da5fc
Qualys API v2 (XML), 6 commands: host list, host detections, knowledge-base vulnerability details, scan list, launch scan. HTTP Basic auth, stdlib-only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
89 lines
3.4 KiB
YAML
89 lines
3.4 KiB
YAML
id: qualys
|
|
name: Qualys VMDR
|
|
version: 1.0.0
|
|
description: "Qualys Vulnerability Management (API v2) — asset and vulnerability context: list hosts, list host vulnerability detections, look up vulnerability (QID) knowledge-base details, and list/launch VM scans. HTTP Basic authentication; stdlib-only, no extra Python dependencies."
|
|
changelog: "1.0.0 — Initial release: host list, host detections, knowledge-base vulnerability details, scan list, launch scan."
|
|
category: vulnerability
|
|
|
|
# Per-instance configuration. HTTP Basic auth against the Qualys API server
|
|
# (regional, e.g. https://qualysapi.qg2.apps.qualys.com). All requests send the
|
|
# required 'X-Requested-With' header. Responses are XML.
|
|
config_schema:
|
|
properties:
|
|
base_url:
|
|
type: string
|
|
description: "Qualys API server URL (e.g. https://qualysapi.qualys.com)"
|
|
username:
|
|
type: string
|
|
description: "Qualys username"
|
|
password:
|
|
type: string
|
|
description: "Qualys password"
|
|
x-soar-sensitive: true
|
|
required:
|
|
- base_url
|
|
- username
|
|
- password
|
|
|
|
commands:
|
|
- id: host_list
|
|
name: qualys-host-list
|
|
description: "List scanned hosts (optionally filtered by IP range)."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
ips: { type: string, description: "Optional IP/range filter (e.g. 10.0.0.1-10.0.0.50)" }
|
|
truncation_limit: { type: number, description: "Max hosts (default 100)" }
|
|
required: []
|
|
outputs_schema: { properties: {} }
|
|
- id: host_detections
|
|
name: qualys-host-detections
|
|
description: "List vulnerability detections on hosts (optionally filtered by IP and severity)."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
ips: { type: string, description: "Optional IP/range filter" }
|
|
severities: { type: string, description: "Optional severity filter (e.g. 4,5)" }
|
|
truncation_limit: { type: number, description: "Max hosts (default 100)" }
|
|
required: []
|
|
outputs_schema: { properties: {} }
|
|
- id: vuln_details
|
|
name: qualys-vuln-details
|
|
description: "Get knowledge-base details for one or more vulnerabilities by QID."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
qids: { type: string, description: "Comma-separated QIDs" }
|
|
required: [qids]
|
|
outputs_schema: { properties: {} }
|
|
- id: list_scans
|
|
name: qualys-list-scans
|
|
description: "List VM scans."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
state: { type: string, description: "Optional state filter (Running, Finished, Canceled, ...)" }
|
|
required: []
|
|
outputs_schema: { properties: {} }
|
|
- id: launch_scan
|
|
name: qualys-launch-scan
|
|
description: "Launch a VM scan against a set of IPs."
|
|
inputs_schema:
|
|
properties:
|
|
scan_title: { type: string, description: "Title for the scan" }
|
|
ip: { type: string, description: "Comma-separated target IPs/ranges" }
|
|
option_title: { type: string, description: "Option profile title (provide this or option_id)" }
|
|
option_id: { type: string, description: "Option profile ID (provide this or option_title)" }
|
|
iscanner_name: { type: string, description: "Scanner appliance name (optional)" }
|
|
required: [ip]
|
|
outputs_schema: { properties: {} }
|
|
|
|
- id: test_connection
|
|
name: qualys-test-connection
|
|
description: "Verify connectivity and credentials (used by the Test button)."
|
|
risk: read
|
|
inputs_schema:
|
|
properties: {}
|
|
required: []
|
|
outputs_schema: { properties: {} }
|