Qualys API VMPC User Guide
Qualys API VMPC User Guide
(VM, PC)
User Guide
Version 8.22
Chapter 3 - Scans.......................................................................................... 24
VM Scans ................................................................................................................................ 25
VM Scan List .................................................................................................................... 25
Launch VM Scan ............................................................................................................. 28
Launch VM Scan on EC2 assets ..................................................................................... 30
Manage VM Scans ........................................................................................................... 32
Compliance Scans ................................................................................................................. 34
Compliance Scan List ..................................................................................................... 35
SCAP Scan List................................................................................................................. 36
Launch Compliance Scan............................................................................................... 38
Launch Compliance Scan on EC2 assets ...................................................................... 39
Manage Compliance Scans ............................................................................................ 41
Cloud Perimeter Scans .......................................................................................................... 44
VM Scan Schedules ............................................................................................................... 47
PC Scan Schedules................................................................................................................. 58
Scan List Parameters............................................................................................................. 67
Scan Parameters .................................................................................................................... 69
Cloud Perimeter Scan Parameters ....................................................................................... 74
Scan Schedule Parameters ................................................................................................... 77
VM Scan Statistics ................................................................................................................. 81
VM Scan Summary................................................................................................................ 84
Scanner Details...................................................................................................................... 87
3
Share PCI Scan ....................................................................................................................... 89
Discovery Scans (maps) ........................................................................................................ 93
4
Vault Definition ................................................................................................................... 327
List Vaults............................................................................................................................. 334
Manage Vaults ..................................................................................................................... 337
5
Chapter 11 - VM Report Templates ......................................................... 474
API Support for Report Templates..................................................................................... 474
Scan Template ..................................................................................................................... 475
PCI Scan Template .............................................................................................................. 487
Patch Template.................................................................................................................... 489
Map Template ...................................................................................................................... 493
6
Preface
Preface
Using the Qualys API, third parties can integrate their own applications with Qualys cloud
security and compliance solutions using an extensible XML interface. The APIs described
in this guide are available to customers using Qualys Cloud Platform (VM, PC).
About Qualys
Qualys, Inc. (NASDAQ: QLYS) is a pioneer and leading provider of cloud-based security and
compliance solutions. The Qualys Cloud Platform and its integrated apps help businesses
simplify security operations and lower the cost of compliance by delivering critical
security intelligence on demand and automating the full spectrum of auditing,
compliance and protection for IT systems and web applications.
Founded in 1999, Qualys has established strategic partnerships with leading managed
service providers and consulting organizations including Accenture, BT, Cognizant
Technology Solutions, Deutsche Telekom, Fujitsu, HCL, HP Enterprise, IBM, Infosys, NTT,
Optiv, SecureWorks, Tata Communications, Verizon and Wipro. The company is also a
founding member of the Cloud Security Alliance (CSA). For more information, please visit
www.qualys.com.
7
Chapter 1 - Welcome
API Conventions
Chapter 1 - Welcome
The Qualys API allows third parties to integrate their own applications with Qualys cloud
security and compliance solutions using an extensible XML interface. APIs in this user
guide are supported using Qualys Cloud Platform (VM, PC).
We recommend you join our Community and subscribe to our API Notifications RSS Feeds
for announcements and discussions.
API Conventions
Qualys User Account
Authentication with valid Qualys user account credentials is required for making Qualys
API requests to the Qualys API servers. These servers are hosted at the Qualys platform,
also referred to as the Security Operations Center (SOC), where your account is located. If
you need assistance with obtaining a Qualys account, please contact your Qualys account
representative.
Users with a Qualys user account may access the API functions. When a subscription has
multiple users, all users with any user role (except Contact) can use the Qualys API. Each
user’s permissions correspond to their assigned user role.
Qualys user accounts that have been enabled with VIP two-factor authentication can be
used with the Qualys API, however two-factor authentication will not be used when
making API requests. Two-factor authentication is only supported when logging into the
Qualys GUI.
8
Chapter 1 - Welcome
Qualys API Server URL
9
Chapter 1 - Welcome
Making API requests
Parameters in URLs
API parameters, as documented in this user guide, should be specified one time for each
URL. In the case where the same parameter is specified multiple times in a single URL, the
last parameter takes effect and the previous instances are silently ignored.
UTF-8 Encoding
The Qualys API uses UTF-8 encoding. The encoding is specified in the XML output header
as shown below.
<?xml version="1.0" encoding="UTF-8" ?>
10
Chapter 1 - Welcome
API Limits
The sample URL below is incorrect and will not return the specified scan report because
the parameter name “Ref” appears in mixed-case characters:
https://qualysapi.qualys.com/msp/scan_report.php?
Ref=scan/987659876.19876
API Limits
Qualys Cloud Platform enforces limits on the API calls subscription users can make. The
limits apply to the use of all APIs, except “session” API (session login/logout).
API controls are applied per subscription based on your subscription’s service level.
Default settings are provided and these may be customized per subscription by Qualys
Support.
There’s 2 controls defined per subscription:
- Concurrency Limit per Subscription (per API). The maximum number of API calls allowed
within the subscription during the configured rate limit period (as per service level).
11
Chapter 1 - Welcome
Tracking API usage by user
- Rate Limit per Subscription (per API). The period of time that defines a window when API
calls are counted within the subscription for each API. The window starts from the
moment each API call is received by the service and extends backwards 1 hour or 1 day.
Individual rate and count settings are applied (as per service level).
Click here to learn more about the controls and settings per service level.
How it works - Qualys checks the concurrency limit and rate limit each time an API
request is received. In a case where an API call is received and our service determines a
limit has been exceeded, the API call is blocked and an error is returned (the concurrency
limit error takes precedence).
12
Chapter 1 - Welcome
HTTP Response Headers
Header Description
X-Concurrency-Limit- Number of API calls that are running right now
Running (including the one identified in the current HTTP
response header).
X-Powered-By This header is only returned when the X-Powered-By
header is enabled for your subscription. It includes a
unique ID generated for each subscription and a
unique ID generated for each user. Click here to learn
more.
13
Chapter 1 - Welcome
HTTP Response Headers
In case where the concurrency limit has been reached, no information about rate limits
will appear in the HTTP headers.
14
Chapter 1 - Welcome
Activity Log
Activity Log
You can view the Activity Log using the Qualys user interface and the Activity Log API
(/api/2.0/fo/activity_log). The Activity Log shows details about user actions taken.
To view the Activity Log, log into your Qualys account. Go to Users and click the Activity
Log tab. Select Filters > Recent API Calls. You’ll see the API Processes list showing the API
calls subject to the API limits (all APIs except “session” API) made by subscription users
and/or updated by the service in the past week.
Tip - You can search the processes list to find API processes. You can search by process
state (Queued, Running, Expired, Finished and/or Blocked), by submitted date and by last
updated date. You can search for API processes that were blocked due to exceeding the API
rate limit and/or the API concurrency limit.
15
Chapter 2 - Authentication to your account
What do I need to know?
Specifying the required “X-Requested-With” parameter helps to protect Qualys API users
from cross-site request forgery (CSRF) attacks.
16
Chapter 2 - Authentication to your account
Using Session Based Authentication
17
Chapter 2 - Authentication to your account
Using Session Based Authentication
The request URL has several elements. The following elements appear in every request
URL based on the API V2 architecture.
URL element Description
qualysapi.qualys.com:443 FQDN of the Qualys API server and option port (443 if
specified).
api Qualys Application component name.
2.0 Qualys API version number.
fo Qualys interface component name.
session|scan|report or other Qualys API resource name, i.e. session or some other
component name component like scan or report etc.
action={value} Qualys API resource-specific action. In the sample session
login URL above, the action is “login”.
If you do not wish to store this information in the “headers” file, you can save the HTTP
header in a cookie as shown below:
curl -H "X-Requested-With: Curl Sample" -c cookie.txt
-d "action=login&username=acme_ab12&password=passwd"
"https://qualysapi.qualys.com/api/2.0/fo/session/"
Upon success, the sample Qualys API call returns an XML response with the message
“Logged in” and the Qualys API session ID in the Set-Cookie HTTP header. See “HTTP
Response Headers” for further information.
Resource Requests
When session based authentication is used, the session cookie returned in the XML
response from the session login request must be included in the cookie header of
subsequent API requests. Multiple API requests can be made using the same session
cookie (this is supported using V2 API requests).
The resource request includes the Qualys user login credentials, the Qualys API session ID,
the request URL, and the location where the HTTP response headers are saved.
The sample API request below is used to request a list of reports in the user’s Report Share
storage space. You’ll notice the session cookie (QualysSession) was extracted from the
“headers” file contents returned from the session login API call.
18
Chapter 2 - Authentication to your account
Using Session Based Authentication
If you saved the HTTP response headers (from the session login request) in a cookie file,
make an API request to obtain the cookie from the cookie file as shown below:
curl -H "X-Requested-With: Curl Sample"
-d "action=list"
-b "cookie.txt" "https://qualysapi.qualys.com/api/2.0/fo/report/"
Upon success, the sample report list API call returns an XML response listing the reports in
the user’s Report Share. In progress and completed reports are included.
Sample XML output showing HTML response headers returned from a fetch (download)
report request, where the report format is HTML:
HTTP/1.1 200 OK
Date: Wed, 20 Jun 2007 16:36:42 GMT
Server: qweb/3.3h
Expires: Mon, 24 Oct 1970 07:30:00 GMT
Cache-Control: post-check=0,pre-check=0
Pragma: no-cache
Content-Disposition: attachment;
filename=scan_report__1182357402.zip
Content-length: 98280
Connection: close
19
Chapter 2 - Authentication to your account
Session Login
Content-Type: application/zip
Expires HTTP Header - For the Expires header, Qualys complies with RFC #2109 and sets
the Expires date to an old date (a date long in the past). Currently Qualys sets the Expires
date to “Mon, 24 Oct 1970 07:30:00 GMT”. Note that Qualys cookie expiration is managed
on the server side, and Qualys does not rely on clients to drop their expired cookies.
Session Timeout
Every Qualys user account has a session timeout setting. This setting is configurable at
the subscription level by Manager users in the Qualys user interface (go to Users > Setup >
Security). For a new subscription, this is set to 60 minutes.
The session timeout applies to sessions started using the user interface and sessions
started using the Qualys APIs, including APIs based on the new API architecture.
When you launch a scan or report (using Report Share), the task is launched in the
background, and processing does not timeout until the task has completed.
Session Login
/api/2.0/fo/session/?action=login
[POST]
Input Parameters
Parameter Description
action=login (Required) A flag used to make a session login request.
username (Required) The user name (login) of a Qualys user account.
20
Chapter 2 - Authentication to your account
Session Login
Parameter Description
password (Required) The password of a Qualys user account.
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When
not specified, parameters are not included in the XML
output. Specify 1 to view parameters in the XML output.
A sample session login request (POST method) is shown below. Upon success, the sample
Qualys API call returns an XML response with the message “Logged in” and the Qualys API
session ID as shown.
curl -H "X-Requested-With: Curl Sample" -D headers.4
-d "action=login&username=acme_ab12&password=passwd"
"https://qualysapi.qualys.com/api/2.0/fo/session/"
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2007-06-20T16:21:04Z</DATETIME>
<TEXT>Logged in</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
cat headers.4
HTTP/1.1 200 OK
Date: Wed, 20 Jun 2007 16:21:03 GMT
Server: qweb/3.3h
Set-Cookie: QualysSession=71e6cda2a35d2cd404cddaf305ea0208;
path=/api; secure
Expires: Mon, 24 Oct 1970 07:30:00 GMT
Cache-Control: post-check=0,pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/xml
21
Chapter 2 - Authentication to your account
Session Logout
Session Logout
/api/2.0/fo/session/?action=logout
[POST]
Input Parameters
Parameter Description
action=logout (Required) A flag used to make a session logout request.
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When
not specified, parameters are not included in the XML
output. Specify 1 to view parameters in the XML output.
A sample session logout request (POST method) is shown below. Upon success, the sample
Qualys API call returns an XML response with the message “Logged out” as shown.
curl -H "X-Requested-With: Curl Sample"
-d "action=logout"
-b "QualysSession=71e6cda2a35d2cd404cddaf305ea0208; path=/api;
secure" "https://qualysapi.qualys.com/api/2.0/fo/session/"
cat headers.18
HTTP/1.1 200 OK
Date: Wed, 20 Jun 2007 21:50:36 GMT
Server: qweb/3.3h
Expires: Mon, 24 Oct 1970 07:30:00 GMT
Cache-Control: post-check=0,pre-check=0
Pragma: no-cache
22
Chapter 2 - Authentication to your account
Session Logout
Set-Cookie: QualysSession=71e6cda2a35d2cd404cddaf305ea0208;
expires=Wed, 13-Jun-2007 21:50:37 GMT; path=/fo
Connection: close
Transfer-Encoding: chunked
Content-Type: text/xml
23
Chapter 3 - Scans
Chapter 3 - Scans
Launch and manage vulnerability scans, compliance scans, discovery scans (maps).
VM Scans | Compliance Scans | Cloud Perimeter Scans
VM Scan Schedules | PC Scan Schedules
Scan List Parameters | Scan Parameters | Cloud Perimeter Scan Parameters | Scan
Schedule Parameters
VM Scan Statistics
VM Scan Summary
Scanner Details
Share PCI Scan
Discovery Scans (maps) | Domain List | Add/Edit Domain
24
Chapter 3 - Scans
VM Scans
VM Scans
The VM Scan API (/api/2.0/fo/scan/) is used to obtain a list of vulnerability scans in your
account and to take actions on them like cancel, pause, resume, and fetch (download)
finished results.
Express Lite: This API is available to Express Lite users.
Permissions
User Role Permissions
Manager Manage scans on all IPs in the subscription.
Unit Manager Launch, list and fetch scans on IPs in the user’s business
unit. And take actions on scans launched by users in the
same business unit (cancel, pause, resume and delete).
Scanner Launch, list and fetch scans on IPs in the user’s account.
And take actions on scans that the user owns (cancel,
pause, resume and delete).
Reader View scans with targets containing IPs in the user’s
account. Download scan results when the target includes
at least one IP in the user’s account.
Auditor No permissions.
VM Scan List
/api/2.0/fo/scan/?action=list
[GET] [POST]
List vulnerability scans in the user’s account. By default the XML output lists scans
launched in the past 30 days.
Input Parameters
The input parameters for requesting a VM scan list are shown below. See Scan List
Parameters for complete details.
Type Parameter List
Request action=list (required), echo_request
Scan List Filters scan_ref, state, processed, type, target, user_login,
launched_after_datetime, launched_before_datetime,
scan_type=certview, scan_type=ec2certview, client_id and
client_name (only for Consultant type subscriptions)
Show/Hide Information show_ags, show_op, show_status, show_last, ignore_target
25
Chapter 3 - Scans
VM Scans
Samples
List all scans in the user account.
curl -H "X-Requested-With: Curl Sample"
-b "QualysSession=71e6cda2a35d2cd404cddaf305ea0208; path=/api;
secure" "https://qualysapi.qualys.com/api/2.0/fo/scan/
?action=list&echo_request=1&show_ags=1&show_op=1"
26
Chapter 3 - Scans
VM Scans
<DURATION>00:05:16</DURATION>
<PROCESSED>1</PROCESSED>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
<TARGET><![CDATA[10.10.10.10-10.10.10.113]]></TARGET>
<OPTION_PROFILE>
<TITLE><![CDATA[Initial Options]]></TITLE>
<DEFAULT_FLAG>1</DEFAULT_FLAG>
</OPTION_PROFILE>
</SCAN>
<SCAN>
<REF>scan/1169604974.6553</REF>
<TYPE>Scheduled</TYPE>
<TITLE><![CDATA[Web Servers]]></TITLE>
<USER_LOGIN>acme_sb3</USER_LOGIN>
<LAUNCH_DATETIME>2018-05-24T15:40:02Z</LAUNCH_DATETIME>
<DURATION>00:05:16</DURATION>
<PROCESSED>0</PROCESSED>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
<TARGET><![CDATA[10.10.10.10-10.10.10.113]]></TARGET>
<OPTION_PROFILE>
<TITLE><![CDATA[Initial Options]]></TITLE>
<DEFAULT_FLAG>1</DEFAULT_FLAG>
</OPTION_PROFILE>
</SCAN>
</SCAN_LIST>
</RESPONSE>
</SCAN_LIST_OUTPUT>
...
List all running scans that were launched by the user with the login ID “acme_ab”:
curl -H "X-Requested-With: Curl Sample"
-b "QualysSession=71e6cda2a35d2cd404cddaf305ea0208; path=/api;
secure" "https://qualysapi.qualys.com/api/2.0/fo/scan/
?action=list&state=Running&user_login=acme_ab"
List all scheduled scans that were launched after June 5, 2018.
curl -H "X-Requested-With: Curl Sample"
-b "QualysSession=71e6cda2a35d2cd404cddaf305ea0208; path=/api;
secure" "https://qualysapi.qualys.com/api/2.0/fo/scan/
?action=list&type=Scheduled&launched_after_datetime=2018-06-05"
27
Chapter 3 - Scans
VM Scans
List all scans for AFCO Company client (only for Consultant type subscriptions).
curl -u "USERNAME:PASSWORD" -H "content-type:
text/xml""https://qualysapi.qualys.com/api/2.0/fo/scan/?action=lis
t&client_name=AFCO Company"
DTD
<platform API server>/api/2.0/fo/scan/scan_list_output.dtd
Launch VM Scan
/api/2.0/fo/scan/?action=launch
[POST]
Launch vulnerability scan in the user’s account.
The Launch Scan API is asynchronous. When you make a request to launch a scan using
this API, the service will return a scan reference ID right away and the call will quit
without waiting for the complete scan results.
Using networks? Choose the Global Default Network to scan IPs on your network
perimeter.
Input Parameters
The input parameters for launching a VM scan are shown below. See Scan Parameters for
complete details.
Type Parameter List
Request action=launch (required), echo_request,
runtime_http_header
Scan Title scan_title
Option Profile option_id or option_title
Scanner Appliance iscanner_id or iscanner_name, ec2_instance_ids
Processing Priority priority
Asset IPs/Groups ip, asset_group_ids, asset_groups, exclude_ip_per_scan,
default_scanner, scanners_in_ag
Asset Tags target_from=tags, use_ip_nt_range_tags,
tag_include_selector,
tag_exclude_selector, tag_set_by, tag_set_exclude,
tag_set_include
Network ip_network_id (when the Network Support feature is
enabled)
Client client_id and client_name (only for Consultant type
subscriptions)
28
Chapter 3 - Scans
VM Scans
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2013-01-15T21:32:40Z</DATETIME>
<TEXT>New vm scan launched</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
<ITEM>
<KEY>REFERENCE</KEY>
<VALUE>scan/1358285558.36992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
29
Chapter 3 - Scans
VM Scans
Input Parameters
The input parameters for launching an EC2 scan are shown below. See Scan Parameters
for complete details.
Type Parameter List
Request action=launch (required), echo_request
Scan Title scan_title
EC2 environment connector_name (required), ec2_endpoint (required)
Option Profile option_id or option_title
Scanner Appliance iscanner_id or iscanner_name
Processing Priority priority
Target Hosts target_from=tags
Use tags to select the EC2 hosts you want to scan.
Note: You can use either
use_ip_nt_range_tags=0
ec2_instance_ids or tags
The default setting is “0”. Important - This cannot be set to
parameter or both
“1” for EC2 scanning.
These tag parameters are used to select tags:
tag_set_include={tag1,tag2,...} (required)
tag_set_exclude={tag1,tag2,...} (optional)
tag_include_selector={any|all} (default in bold)
tag_exclude_selector={any|all} (default in bold)
tag_set_by={id|name} (default in bold)
ec2_instance_ids={value}
The ID of the target EC2 instance to launch the VM or
compliance scan. Multiple ec2 instance ids are comma
separated. You can add up to maximum 10 instance Ids.
30
Chapter 3 - Scans
VM Scans
API request:
curl -H "X-Requested-With: Curl" -u "USERNAME:PASSWD" -X "POST" -d
"action=launch&scan_title=My+EC2+Scan&connector_name=EC2_Connector
&ec2_endpoint=us-east-1&target_from=tags&use_ip_nt_range_tags=0
&tag_include_selector=any&tag_set_by=id&tag_set_include=1558997,15
59222&option_id=43165&iscanner_name=EC2-1"
"https://qualysapi.qualys.com/api/2.0/fo/scan/" > outputfile.txt
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-02-25T21:32:40Z</DATETIME>
<TEXT>New vm scan launched</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
<ITEM>
<KEY>REFERENCE</KEY>
<VALUE>scan/1358285558.36992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
31
Chapter 3 - Scans
VM Scans
Manage VM Scans
/api/2.0/fo/scan/?action={action}
Take actions on vulnerability scans in their account, like cancel, pause, resume, delete
and fetch completed scan results.
Parameter Description
action={action} (Required) One action required for the request:
cancel - Stop a scan in progress (POST method)
pause - Stop a scan in progress and change status to “Paused”
(POST method)
resume - Restart a scan that has been paused (POST method)
delete - Delete a scan in your account (POST method)
fetch - Download scan results for a scan with status of
“Finished”, “Canceled”, “Paused” or “Error” (GET or POST method)
echo_request={0|1} (Optional) Specify 1 to echo the input parameters in the XML
output. When unspecified, parameters are not listed in the XML
output.
scan_ref={value} (Required) The scan reference for a vulnerability scan. This will
have the format: scan/nnnnnnnnnn.nnnnn
Input Parameters
Parameter Description
action={action} (Required) An action for the request:
cancel - stop a scan in progress, “Running” or “Paused”
pause - stop a scan in progress and change status to “Paused”
resume - restart a scan that has been paused
fetch - download scan results for a scan with the status
“Finished”, “Canceled”, “Paused” or “Error”.
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When not
specified, parameters are not included in the XML output.
Specify 1 to view parameters in the XML output.
scan_ref={value} (Required) Specifies a scan reference. A scan reference has the
format “scan/987659876.19876”.
ips={value} (Optional for a fetch request) Show only certain IP
addresses/ranges in the scan results. One or more IPs/ranges
may be specified. A range entry is specified using a hyphen (for
example, 10.10.10.1-10.10.10.20). Multiple entries are comma
separated.
32
Chapter 3 - Scans
VM Scans
Parameter Description
mode={brief|extended} (Optional for fetch request) The verbosity of the scan results
details: brief (the default) or extended. The brief output includes
this information: IP address, DNS hostname, NetBIOS hostname,
QID and scan test results if applicable. The extended output
includes the brief output plus this extended information:
protocol, port, an SSL flag (“yes” is returned when SSL was used
for the detection, “no” is returned when SSL was not used), and
FQDN if applicable.
output_format={csv|json| (Optional for fetch request) The output format of the
csv_extended| vulnerability scan results. A valid value is: csv (the default), json
json_extended} (for JavaScript Object Notation(), csv_extended, json_extended.
Click here for information on Scan Results JSON
client_id={value} (Optional for fetch request) Id assigned to the client (Consultant
type subscription only). Parameter client_id or client_name may
be specified for the same request.
client_name={value} (Optional for fetch request) Name of the client (Consultant type
subscription only). Parameter client_id or client_name may be
specified for the same request.
33
Chapter 3 - Scans
Compliance Scans
DTD
<platform API server>/api/2.0/simple_return.dtd
Compliance Scans
The Compliance Scan API (/api/2.0/fo/scan/compliance/) is used to launch compliance
scans, get a list of compliance scans in your account and manage them. The SCAP Scan
API (/api/2.0/fo/scan/scap/) is used to get a list of SCAP scans in your account.
Permissions
To use this API, these options must be enabled in the user’s subscription: Policy
Compliance (PC) module and New Scanner Services. Role-based user permissions are
described below.
User Role Permissions
Manager Manage compliance scans on all compliance IPs in the
subscription.
Unit Manager When the "Manage compliance" permission is enabled in the
user’s account settings: 1) ability to launch, list and fetch
compliance scans on IPs in the user’s business unit, 2) ability to
take actions on scans launched by users in the same business
unit (cancel, pause, resume and delete).
Scanner When the "Manage compliance" permission is enabled in the
user’s account settings: 1) ability to launch, list and fetch
compliance scans on IPs in the user’s account, 2) ability to take
actions on scans that the user owns (cancel, pause, resume and
delete).
Reader No permissions to manage compliance scans.
Auditor No permissions to manage compliance scans.
34
Chapter 3 - Scans
Compliance Scans
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d
"action=list&state=Finished&scan_ref=compliance/1344842952.1340"
"https://qualysapi.qualys.com/api/2.0/fo/scan/compliance/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCAN_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/scan/scan_list_output.dtd
">
<SCAN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-06-12T07:28:46Z</DATETIME>
<SCAN_LIST>
<SCAN>
<ID>3332486</ID>
<REF>compliance/1344842952.1340</REF>
<TYPE>Scheduled</TYPE>
<TITLE><![CDATA[MY PC Scan]]></TITLE>
<USER_LOGIN>USERNAME</USER_LOGIN>
<LAUNCH_DATETIME>2018-05-13T07:30:09Z</LAUNCH_DATETIME>
<DURATION>00:06:29</DURATION>
<PROCESSED>1</PROCESSED>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
35
Chapter 3 - Scans
Compliance Scans
<TARGET><![CDATA[10.10.25.50]]></TARGET>
</SCAN>
</SCAN_LIST>
</RESPONSE>
</SCAN_LIST_OUTPUT>
DTD:
<platform API server>/api/2.0/fo/scan/scan_list_output.dtd
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCAN_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/scan/scap/qscap_scan_list
36
Chapter 3 - Scans
Compliance Scans
_output.dtd">
<SCAN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-06-13T22:56:19Z</DATETIME>
<SCAN_LIST>
<SCAN>
<ID>6980366</ID>
<REF>qscap/1402694682.80366</REF>
<TYPE>On-Demand</TYPE>
<TITLE><![CDATA[<IMG
SRC="http://www.google.com/images/logos/ps_logo2.png">]]></TITLE>
<POLICY>
<ID>39298</ID>
<TITLE><![CDATA[Policy A]]></TITLE>
</POLICY>
<USER_LOGIN>acme_ab</USER_LOGIN>
<LAUNCH_DATETIME>2018-06-13T21:24:42Z</LAUNCH_DATETIME>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
<TARGET><![CDATA[10.10.30.244, 10.10.34.222]]></TARGET>
...
</SCAN_LIST>
</RESPONSE>
</SCAN_LIST_OUTPUT>
DTD:
<platform API server>/api/2.0/fo/scan/qscap_scan_list_output.dtd
37
Chapter 3 - Scans
Compliance Scans
Input Parameters
The input parameters for launching a compliance scan are shown below. See Securing
Amazon Web Services with Qualys
Type Parameter List
Request action=launch (required), echo_request,
runtime_http_header
Scan Title scan_title
Option Profile option_id or option_title
Scanner Appliance iscanner_id or iscanner_name
Asset IPs/Groups ip, asset_group_ids, asset_groups, exclude_ip_per_scan,
default_scanner, scanners_in_ag
Asset Tags target_from=tags, use_ip_nt_range_tags,
tag_include_selector,
tag_exclude_selector, tag_set_by, tag_set_exclude,
tag_set_include
Network ip_network_id (when the Network Support feature is
enabled)
Client client_id and client_name (only for Consultant type
subscriptions)
38
Chapter 3 - Scans
Compliance Scans
=12807913&scanners_in_network=1&ip=10.10.10.10,10.10.10.11"
"https://qualysapi.qualys.com/api/2.0/fo/scan/compliance/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-06-15T21:55:36Z</DATETIME>
<TEXT>New compliance scan launched</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>18198</VALUE>
</ITEM>
<ITEM>
<KEY>REFERENCE</KEY>
<VALUE>compliance/1473976536.18198</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
39
Chapter 3 - Scans
Compliance Scans
Input Parameters
The input parameters for launching an EC2 scan are shown below. Please see Scan
Parameters for complete details.
Type Parameter List
Request action=launch (required), echo_request
Scan Title scan_title
EC2 environment connector_name (required), ec2_endpoint (required)
Option Profile option_id or option_title
Scanner Appliance iscanner_id or iscanner_name
Target Hosts target_from=tags (required)
Use tags to select the EC2 hosts you want to scan.
use_ip_nt_range_tags=0
The default setting is “0”. Important - This cannot be set to
“1” for EC2 scanning.
These tag parameters are used to select tags:
tag_set_include={tag1,tag2,...} (required)
tag_set_exclude={tag1,tag2,...} (optional)
tag_include_selector={any|all} (default in bold)
tag_exclude_selector={any|all} (default in bold)
tag_set_by={id|name} (default in bold)
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<REQUEST>
<DATETIME>2018-06-24T10:10:51Z</DATETIME>
<USER_LOGIN>USERNAME</USER_LOGIN>
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/scan/compliance/
</RESOURCE>
</REQUEST>
<RESPONSE>
40
Chapter 3 - Scans
Compliance Scans
<DATETIME>2018-06-24T10:10:57Z</DATETIME>
<TEXT>New compliance scan launched</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>2222345</VALUE>
</ITEM>
<ITEM>
<KEY>REFERENCE</KEY>
<VALUE>compliance/1347771234.36444</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
41
Chapter 3 - Scans
Compliance Scans
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE COMPLIANCE_SCAN_RESULT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/scan/compliance/complianc
e_scan_result_output.dtd">
<COMPLIANCE_SCAN_RESULT_OUTPUT>
<RESPONSE>
<DATETIME>2018-06-17T10:23:53Z</DATETIME>
<COMPLIANCE_SCAN>
<HEADER>
<NAME><![CDATA[Compliance Scan Results]]></NAME>
<GENERATION_DATETIME>2012-09-
17T10:23:53Z</GENERATION_DATETIME>
<COMPANY_INFO>
<NAME><![CDATA[Qualys]]></NAME>
<ADDRESS><![CDATA[1600 Bridge Parkway]]></ADDRESS>
<CITY><![CDATA[Redwood Shores]]></CITY>
<STATE><![CDATA[California]]></STATE>
<COUNTRY><![CDATA[United States]]></COUNTRY>
<ZIP_CODE><![CDATA[94065]]></ZIP_CODE>
</COMPANY_INFO>
<USER_INFO>
<NAME><![CDATA[NAME]]></NAME>
<USERNAME>USERNAME</USERNAME>
<ROLE>Manager</ROLE>
</USER_INFO>
<KEY value="USERNAME">USERNAME</KEY>
<KEY value="COMPANY"><![CDATA[Qualys]]></KEY>
<KEY value="DATE">2018-06-15T11:49:08Z</KEY>
<KEY value="TITLE"><![CDATA[My PC Scan]]></KEY>
<KEY value="TARGET">10.10.10.29</KEY>
<KEY value="EXCLUDED_TARGET"><![CDATA[N/A]]></KEY>
<KEY value="DURATION">00:01:00</KEY>
<KEY value="SCAN_HOST">10.10.21.122 (Scanner 6.6.28-1,
Vulnerability Signatures 2.2.215-2)</KEY>
<KEY value="NBHOST_ALIVE">1</KEY>
<KEY value="NBHOST_TOTAL">1</KEY>
<KEY value="REPORT_TYPE">Scheduled</KEY>
<KEY value="OPTIONS">File Integrity Monitoring: Enabled,
Scanned Ports: Standard Scan, Hosts to Scan in Parallel - External
Scanners: 15, Hosts to Scan in Parallel - Scanner Appliances: 30,
Total Processes to Run in Parallel: 10, HTTP Processes to Run in
Parallel: 10,
42
Chapter 3 - Scans
Compliance Scans
43
Chapter 3 - Scans
Cloud Perimeter Scans
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl"
"action=create&tag_set_by=name&tag_include_selector=any&tag_set_in
clude=ec2-Virginia,Unassigned Business
Unit&connector_name=conn1®ion_code=us-east-
1&active=1&option_title=Initial
Options&module=vm&schedule=now&cloud_provider=aws&platform_type=cl
assic&&after_notify=1&after_notify_message=Scan Finished"
"https://qualysapi.qualys.com/api/2.0/fo/scan/cloud/perimeter/job/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-11T04:06:01Z</DATETIME>
<TEXT>Scan has been created successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>1352070</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
44
Chapter 3 - Scans
Cloud Perimeter Scans
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-11T05:01:42Z</DATETIME>
<TEXT>Scan has been created successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>1352071</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-11T05:05:35Z</DATETIME>
45
Chapter 3 - Scans
Cloud Perimeter Scans
DTD:
<platform API server>/api/2.0/fo/scan/simple_return.dtd
46
Chapter 3 - Scans
VM Scan Schedules
VM Scan Schedules
The Schedule Scan API (/api/2.0/fo/schedule/scan/) is used to define schedules for
vulnerability scans in the user’s account.
Permissions
User Role Permissions
Manager Create scan schedules for all assets in the subscription
Remove all scan schedules
View all scan schedules in the subscription
Unit Manager Create scan schedules for assets in user’s business unit
Remove scan schedules in user’s business unit.
View scan schedules in the subscription*
Scanner Create scan schedules for assets in user’s account.
Remove user’s scan schedules
View scan schedules in the subscription*
Readers No permission to create or remove scan schedules
View scan schedules in the subscription*
* Qualys includes an account permission setting that restricts Unit Managers, Scanners,
and Readers from viewing scheduled tasks on unassigned assets.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Specify 1 to echo the request’s input parameters
(names and values) in the XML output. Otherwise parameters are
not displayed in the output.
id={value} (Optional) The ID of the scan schedule you want to display.
active={0|1} (Optional) Specify 1 for active schedules only, or 0 for deactivated
schedules only.
show_notifications={0|1} (Optional) Specify 1 to include the notification settings for each
schedule in the XML output.
scan_type=certview (Optional) Launch a CertView type VM scan. This option will be
supported when CertView GA is released and enabled for your
account.
scan_type=ec2certview (Optional) Launch a CertView type VM scan for EC2 assets.
47
Chapter 3 - Scans
VM Scan Schedules
Parameter Description
fqdn={value} (Optional) The target FQDN for a CertView type VM scan. For a
CertView type scan you must specify at least one target i.e. IPs,
asset groups or FQDNs. Multiple values are comma separated.
This option will be supported when CertView GA is released and
enabled for your account.
show_cloud_details={0|1} (Optional) Set to 1 to display the cloud details (Provider,
Connector, Scan Type and Cloud Target) in the XML output.
Otherwise the details are not displayed in the output.
client_id={value} (Optional) Id assigned to the client (Consultant type subscription
only). Parameter client_id or client_name may be specified for
the same request.
client_name={value} (Optional) Name of the client (Consultant type subscription
only). Parameter client_id or client_name may be specified for
the same request.
scan_type=perimeter (Optional) List cloud perimeter scans only. This option will be
supported for Cloud Perimeter Scans in future release.
show_cloud_details={0|1} (Optional) Set to 1 to display cloud details in the XML output. The
cloud details will show scan type "Cloud Perimeter" for cloud
perimeter scans.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl"
"https://qualysapi.qualys.com/api/2.0/fo/schedule/scan/?action=lis
t&id=160642&show_notifications=1"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCHEDULE_SCAN_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/schedule/scan/schedule_sc
an_list_output.dtd">
<SCHEDULE_SCAN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-12-01T19:26:50Z</DATETIME>
<SCHEDULE_SCAN_LIST>
<SCAN>
<ID>160642</ID>
<ACTIVE>1</ACTIVE>
<TITLE><![CDATA[My Daily Scan]]></TITLE>
<USER_LOGIN>qualys_ps</USER_LOGIN>
<TARGET><![CDATA[10.10.10.10-10.10.10.20]]></TARGET>
<NETWORK_ID><![CDATA[0]]></NETWORK_ID>
<ISCANNER_NAME><![CDATA[External
Scanner]]></ISCANNER_NAME>
<USER_ENTERED_IPS>
48
Chapter 3 - Scans
VM Scan Schedules
<RANGE>
<START>10.10.10.10</START>
<END>10.10.10.20</END>
</RANGE>
</USER_ENTERED_IPS>
<OPTION_PROFILE>
<TITLE><![CDATA[Initial Options]]></TITLE>
<DEFAULT_FLAG>1</DEFAULT_FLAG>
</OPTION_PROFILE>
<PROCESSING_PRIORITY>0 - No Priority</PROCESSING_PRIORITY>
<SCHEDULE>
<DAILY frequency_days="1" />
<START_DATE_UTC>2017-11-30T00:30:00Z</START_DATE_UTC>
<START_HOUR>16</START_HOUR>
<START_MINUTE>30</START_MINUTE>
<NEXTLAUNCH_UTC>2017-12-02T00:30:00</NEXTLAUNCH_UTC>
<TIME_ZONE>
<TIME_ZONE_CODE>US-CA</TIME_ZONE_CODE>
<TIME_ZONE_DETAILS>(GMT-0800) United States:
America/Los_Angeles</TIME_ZONE_DETAILS>
</TIME_ZONE>
<DST_SELECTED>1</DST_SELECTED>
</SCHEDULE>
<NOTIFICATIONS>
<BEFORE_LAUNCH>
<TIME>30</TIME>
<UNIT><![CDATA[minutes]]></UNIT>
<MESSAGE><![CDATA[This is my custom before scan email
message.]]></MESSAGE>
</BEFORE_LAUNCH>
<AFTER_COMPLETE>
<MESSAGE><![CDATA[This is my custom after scan email
message.]]></MESSAGE>
</AFTER_COMPLETE>
</NOTIFICATIONS>
</SCAN>
</SCHEDULE_SCAN_LIST>
</RESPONSE>
</SCHEDULE_SCAN_LIST_OUTPUT>
49
Chapter 3 - Scans
VM Scan Schedules
Example: Users can filter the schedule scan list to only show cloud perimeter scan jobs.
Also, when you include cloud details in the output, we’ll show scan type "Cloud
Perimeter".
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl"
"https://qualysapi.qualys.com/api/2.0/fo/schedule/scan/?action=lis
t&id=1340788&scan_type=perimeter&show_cloud_details=1"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCHEDULE_SCAN_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/schedule/scan/schedule_sc
an_list_output.dtd">
<SCHEDULE_SCAN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-12T12:57:03Z</DATETIME>
<SCHEDULE_SCAN_LIST>
<SCAN>
<ID>1340788</ID>
<ACTIVE></ACTIVE>
<TITLE><![CDATA[My_External_Scan]]></TITLE>
<USER_LOGIN>utwrx_mp</USER_LOGIN>
<TARGET><![CDATA[Asset Tags Included]]></TARGET>
<ISCANNER_NAME><![CDATA[External Scanner]]></ISCANNER_NAME>
<EC2_INSTANCE>
<CONNECTOR_UUID><![CDATA[8047abce-c3ac-42e0-ad49-
be4181d22c84]]></CONNECTOR_UUID>
<EC2_ENDPOINT><![CDATA[1507b6c1-07a7-4d88-acf2-
8c6b63e749c4]]></EC2_ENDPOINT>
<EC2_ONLY_CLASSIC><![CDATA[1]]></EC2_ONLY_CLASSIC>
</EC2_INSTANCE>
<CLOUD_DETAILS>
<PROVIDER>AWS</PROVIDER>
<CONNECTOR>
<ID>37361</ID>
<UUID>8047abce-c3ac-42e0-ad49-be4181d22c84</UUID>
<NAME><![CDATA[EC2 Connector]]></NAME>
</CONNECTOR>
<SCAN_TYPE>Cloud Perimeter</SCAN_TYPE>
<CLOUD_TARGET>
<PLATFORM>Classic</PLATFORM>
<REGION>
<UUID>1507b6c1-07a7-4d88-acf2-8c6b63e749c4</UUID>
<CODE>us-east-1</CODE>
<NAME><![CDATA[US East (N. Virginia)]]></NAME>
50
Chapter 3 - Scans
VM Scan Schedules
</REGION>
<VPC_SCOPE>None</VPC_SCOPE>
</CLOUD_TARGET>
</CLOUD_DETAILS>
<ASSET_TAGS>
<TAG_INCLUDE_SELECTOR>any</TAG_INCLUDE_SELECTOR>
<TAG_SET_INCLUDE><![CDATA[EC2_Targets]]></TAG_SET_INCLUDE>
<TAG_EXCLUDE_SELECTOR>any</TAG_EXCLUDE_SELECTOR>
<TAG_SET_EXCLUDE><![CDATA[EC2_Test]]></TAG_SET_EXCLUDE>
<USE_IP_NT_RANGE_TAGS>0</USE_IP_NT_RANGE_TAGS>
</ASSET_TAGS>
<ELB_DNS>
<DNS><![CDATA[abc.com]]></DNS>
<DNS><![CDATA[abc123.com]]></DNS>
</ELB_DNS>
<OPTION_PROFILE>
<TITLE><![CDATA[Initial Options]]></TITLE>
<DEFAULT_FLAG>1</DEFAULT_FLAG>
</OPTION_PROFILE>
<PROCESSING_PRIORITY>0 - No Priority</PROCESSING_PRIORITY>
<SCHEDULE>
<DAILY frequency_days="364" />
<START_DATE_UTC>2018-04-02T05:00:00Z</START_DATE_UTC>
<START_HOUR>10</START_HOUR>
<START_MINUTE>30</START_MINUTE>
<TIME_ZONE>
<TIME_ZONE_CODE>IN</TIME_ZONE_CODE>
<TIME_ZONE_DETAILS>(GMT+0530) India:
Asia/Calcutta</TIME_ZONE_DETAILS>
</TIME_ZONE>
<DST_SELECTED>0</DST_SELECTED>
</SCHEDULE>
</SCAN>
</SCHEDULE_SCAN_LIST>
</RESPONSE>
</SCHEDULE_SCAN_LIST_OUTPUT>
DTD:
<platform API server>/api/2.0/fo/schedule/scan/schedule_scan_list_output.dtd
51
Chapter 3 - Scans
VM Scan Schedules
Input Parameters
The input parameters for creating a scan schedule are below. For complete details see
Scan Parameters and Scan Schedule Parameters.
Type Parameter List
Request action=create (required), echo_request
Scan scan_title (required), active=0|1 (required)
Option Profile option_id or option_profile (one is required)
Scanner Appliance iscanner_id or iscanner_name
Processing Priority priority
Asset IPs/Groups ip, asset_group_ids, asset_groups, exclude_ip_per_scan,
default_scanner, scanners_in_ag
Asset Tags target_from=tags, tag_include_selector,
tag_exclude_selector, tag_set_by, tag_set_exclude,
tag_set_include, use_ip_nt_range_tags
Network ip_network_id to filter IPs/ranges in “ip” parameter (valid
when the networks feature is enabled)
EC2 Hosts target_from=tags (required)
use_ip_nt_range_tags=0 (optional)
tag_set_include (required)
More Asset Tags parameters (optional)
EC2 Environment connector_name or connector_uuid (one is required)
ec2_endpoint (required)
Scheduling start_date (current date by default)
start_hour, start_minute, time_zone_code, occurrence
(required)
observe_dst, recurrence, end_after, pause_after_hours,
resume_in_days
Daily Scan occurrence=daily, frequency_days (required)
Weekly Scan occurrence=weekly, frequency_weeks, weeks (required)
Monthly Scan occurrence=monthly, frequency_months (required)
Nth day of month: day_of_month (required)
Day in Nth week: day_of_week, week_of_month (required)
Notifications before_notify, before_notify_unit, before_notify_time,
before_notify_message, after_notify, after_notify_message,
recipient_group_ids
52
Chapter 3 - Scans
VM Scan Schedules
XML output:
?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-01-02T21:32:40Z</DATETIME>
<TEXT>New scan scheduled successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
53
Chapter 3 - Scans
VM Scan Schedules
0&start_minute=00&start_hour=22&time_zone_code=IN&observe_dst=no&p
ause_after_hours=3&resume_in_days=4&recurrence=5&start_date=08/20/
2016&active=1"
"https://qualysapi.qualys.com/api/2.0/fo/schedule/scan/"
XML output:
?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-20T21:32:40Z</DATETIME>
<TEXT>New scan scheduled successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Input Parameters
The input parameters for updating a scan schedule are below. For complete details see
Scan Parameters and Scan Schedule Parameters.
Type Parameter List
Request action=update (required), id (required), echo_request
Scan Title scan_title
Status active=0|1
Option Profile option_id or option_title
Scanner Appliance iscanner_id, iscanner_name, default_scanner,
scanners_in_ag, scanners_in_network, scanners_in_tagset
Processing Priority priority
Asset IPs/Groups ip, asset_group_ids or asset_groups, exclude_ip_per_scan
54
Chapter 3 - Scans
VM Scan Schedules
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-01-14T11:57:42Z</DATETIME>
<TEXT>Edit scheduled Scan Completed successfully</TEXT>
55
Chapter 3 - Scans
VM Scan Schedules
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>146754</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Input Parameters
Parameter Description
action=delete (Required)
echo_request={0|1} (Optional) Specify 1 to echo the request’s input parameters
(names and values) in the XML output. Otherwise parameters are
not displayed in the output.
id={value} (Optional) The ID of the scan schedule you want to delete.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-05-30T21:32:40Z</DATETIME>
<TEXT>Schedule scan deleted successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>123456</VALUE>
</ITEM>
56
Chapter 3 - Scans
VM Scan Schedules
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
57
Chapter 3 - Scans
PC Scan Schedules
PC Scan Schedules
The PC Schedule Scan API (/api/2.0/fo/schedule/scan/compliance) allows you to create,
update, list, and delete schedule scans for Policy Compliance.
Permissions
User Role Permissions
Manager Create scan schedules for all assets in the subscription
Remove all scan schedules
View all scan schedules in the subscription
Unit Manager Create scan schedules for assets in user’s business unit
Remove scan schedules in user’s business unit.
View scan schedules in the subscription*
Scanner Create scan schedules for assets in user’s account.
Remove user’s scan schedules
View scan schedules in the subscription*
Readers No permission to create or remove scan schedules
View scan schedules in the subscription*
*Qualys includes an account permission setting that restricts Unit Managers, Scanners,
and Readers from viewing scheduled tasks on unassigned assets.
58
Chapter 3 - Scans
PC Scan Schedules
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Specify 1 to echo the request’s input parameters
(names and values) in the XML output. Otherwise parameters are
not displayed in the output.
id={value} (Optional) The ID of the scan schedule you want to display.
active={0|1} (Optional) Specify 1 for active schedules only, or 0 for deactivated
schedules only.
show_notifications={0|1} (Optional) Specify 1 to include the notification settings for each
schedule in the XML output.
show_cloud_details={0|1} (Optional) Set to 1 to display the cloud details (Provider,
Connector, Scan Type and Cloud Target) in the XML output.
Otherwise the details are not displayed in the output.
client_id={value} (Optional) Id assigned to the client (Consultant type subscription
only). Parameter client_id or client_name may be specified for
the same request.
client_name={value} (Optional) Name of the client (Consultant type subscription
only). Parameter client_id or client_name may be specified for
the same request.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl"
"https://qualysapi.qualys.com/api/2.0/fo/schedule/scan/compliance?
action=list"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE COMPLIANCE_SCHEDULE_SCAN_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/schedule/scan/compliance/
compliance_schedule_scan_list_output.dtd">
<COMPLIANCE_SCHEDULE_SCAN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-11-19T10:10:58Z</DATETIME>
<COMPLIANCE_SCHEDULE_SCAN_LIST>
<SCAN>
<ID>57363</ID>
<ACTIVE>1</ACTIVE>
<TITLE>
59
Chapter 3 - Scans
PC Scan Schedules
60
Chapter 3 - Scans
PC Scan Schedules
DTD:
<platform API server>/api/2.0/fo/schedule/scan/compliance/
compliance_schedule_scan_list_output.dtd"
Input Parameters
The input parameters for creating a scan schedule are below. For complete details see
Scan Parameters and Scan Schedule Parameters.
Type Parameter List
Request action=create (required),
echo_request={0|1} (Optional) Specify 1 to echo the request’s input parameters
(names and values) in the XML output. Otherwise
parameters are not displayed in the output.
Scan scan_title (required), active=0|1 (required)
Compliance Profile option_id or option_profile (one is required)
Scanner Appliance iscanner_id or iscanner_name
Asset IPs/Groups ip, asset_group_ids, asset_groups, exclude_ip_per_scan,
default_scanner, scanners_in_ag
Asset Tags target_from=tags, tag_include_selector,
tag_exclude_selector, tag_set_by, tag_set_exclude,
tag_set_include, use_ip_nt_range_tags
Network ip_network_id to filter IPs/ranges in “ip” parameter (valid
when the networks feature is enabled)
Scheduling start_date (current date by default)
start_hour, start_minute, time_zone_code, occurrence
(required)
observe_dst, recurrence, end_after, pause_after_hours,
resume_in_days
Daily Scan occurrence=daily, frequency_days (required)
Weekly Scan occurrence=weekly, frequency_weeks, weeks (required)
Monthly Scan occurrence=monthly, frequency_months (required)
Nth day of month: day_of_month (required)
Day in Nth week: day_of_week, week_of_month (required)
Notifications before_notify, before_notify_unit, before_notify_time,
before_notify_message, after_notify, after_notify_message,
recipient_group_ids
61
Chapter 3 - Scans
PC Scan Schedules
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-11-19T11:14:19Z</DATETIME>
<TEXT>New compliance scan scheduled successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>57368</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-11-21T08:06:49Z</DATETIME>
<TEXT>New compliance scan scheduled successfully</TEXT>
<ITEM_LIST>
<ITEM>
62
Chapter 3 - Scans
PC Scan Schedules
<KEY>ID</KEY>
<VALUE>57369</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-11-21T08:26:00Z</DATETIME>
<TEXT>New compliance scan scheduled successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>57370</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
63
Chapter 3 - Scans
PC Scan Schedules
Input Parameters
The input parameters for updating a scan schedule are below. For complete details see
Scan Parameters and Scan Schedule Parameters.
Type Parameter List
Request action=update (required)
echo_request={0|1} (Optional) Specify 1 to echo the request’s input parameters
(names and values) in the XML output. Otherwise
parameters are not displayed in the output.
Scan Title scan_title
id={value} (Required)The ID of the scan schedule you want to update.
Status active=0|1
Compliance Profile option_id or option_title
Scanner Appliance iscanner_id, iscanner_name, default_scanner,
scanners_in_ag, scanners_in_network, scanners_in_tagset
Asset IPs/Groups ip, asset_group_ids or asset_groups, exclude_ip_per_scan
Asset Tags target_from=tags, use_ip_nt_range_tags,
tag_include_selector,
tag_exclude_selector, tag_set_by, tag_set_exclude,
tag_set_include
Network ip_network_id (when the Network Support feature is
enabled)
Start Time Must be specified together:
set_start_time=1, start_date, start_hour, start_minute,
time_zone_code, observe_dst
recurrence={value} (Optional) The number of times the scan will be run before
it is deactivated. For example, if you set recurrence=2, the
scan schedule will be deactivated after it runs 2 times. By
default no value is set. A valid value is an integer from 1 to
99.
Daily Scan Must be specified together:
occurrence=daily, frequency_days
Weekly Scan Must be specified together:
occurrence=weekly, frequency_weeks, weekdays
Monthly Scan Must be specified together:
occurrence=monthly, frequency_months,
Nth day of month: day_of_month,
Day in Nth week: day_of_week, week_of_month
64
Chapter 3 - Scans
PC Scan Schedules
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-11-19T12:04:44Z</DATETIME>
<TEXT>Edit scheduled Scan Completed successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>57360</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
65
Chapter 3 - Scans
PC Scan Schedules
Input Parameters
Parameter Description
action=delete (Required)
id={value} (Required) The ID of the scan schedule you want to delete.
echo_request={0|1} (Optional) Specify 1 to echo the request’s input parameters
(names and values) in the XML output. Otherwise parameters are
not displayed in the output.
66
Chapter 3 - Scans
Scan List Parameters
Filters - Several parameters allow you to set filters to restrict the scan list output. When
no filters are specified, the service returns all scans launched by all users within the past
30 days.
Parameter Description
scan_ref={value} (Optional) Show only a scan with a certain scan reference code.
When unspecified, the scan list is not restricted to a certain scan.
For a vulnerability scan, the format is:
scan/987659876.19876
For a compliance scan the format is:
compliance/98765456.12345
For a SCAP scan the format is:
qscap/987659999.22222
scan_id={value} (Optional) Show only a scan with a certain compliance scan ID.
state={value} (Optional) Show only one or more scan states. By default, the
scan list is not restricted to certain states. A valid value is:
Running, Paused, Canceled, Finished, Error, Queued (scan job is
waiting to be distributed to scanner(s)), or Loading (scanner(s) are
finished and scan results are being loaded onto the platform).
Multiple values are comma separated.
processed={0|1} (Optional) Specify 0 to show only scans that are not processed.
Specify 1 to show only scans that have been processed. When not
specified, the scan list output is not filtered based on the
processed status.
type={value} (Optional) Show only a certain scan type. By default, the scan list
is not restricted to a certain scan type. A valid value is:
On-Demand, Scheduled, or API.
target={value} (Optional) Show only one or more target IP addresses. By default,
the scan list includes all scans on all IP addresses. Multiple IP
addresses and/or ranges may be entered. Multiple entries are
comma separated. You may enter an IP address range using the
hyphen (-) to separate the start and end IP address, as in:
10.10.10.1-10.10.10.2
user_login={value} (Optional) Show only a certain user login. The user login
identifies a user who launched scans. By default, the scan list is
not restricted to scans launched by a particular user. Enter the
login name for a valid Qualys user account.
67
Chapter 3 - Scans
Scan List Parameters
Parameter Description
launched_after_datetime= (Optional) Show only scans launched after a certain date and
{date} time (optional). The date/time is specified in YYYY-MM-
DD[THH:MM:SSZ] format (UTC/GMT), like “2007-07-01” or “2007-
01-25T23:12:00Z”.
Show/Hide - These parameters specify whether certain information will be shown in the
XML output.
Parameter Description
show_ags={0|1} (Optional) Specify 1 to show asset group information for each
scan in the XML output. By default, asset group information is
not shown.
show_op={0|1} (Optional) Specify 1 to show option profile information for each
scan in the XML output. By default, option profile information is
not shown.
show_status={0|1} (Optional) Specify 0 to not show scan status for each scan in the
XML output. By default, scan status is shown.
show_last={0|1} (Optional) Specify 1 to show only the most recent scan (which
meets all other search filters in the request) in the XML output.
By default, all scans are shown in the XML output.
68
Chapter 3 - Scans
Scan Parameters
Parameter Description
pci_only={0|1} (Optional) Specify 1 to show only external PCI scans in the XML
output. External PCI scans are vulnerability scans run with the
option profile “Payment Card Industry (PCI) Options”. When
pci_only=1 is specified, the XML output will not include other
types of scans run with other option profiles.
ignore_target={0|1} (Optional) Specify 1 to hide target information from the scan list.
Specify 0 to display the target information.
Scan Parameters
Input parameters used to launch a VM or PC scan are below.
Parameter Description
action={launch} (Required) Specify “launch” to launch a new scan.
echo_request={0|1} (Optional) Specify 1 to list the input parameters in the XML
output. When unspecified, parameters are not listed in the XML
output.
scan_title={value} (Optional) The scan title. This can be a maximum of 2000
characters (ascii).
target_from={assets|tags} (Optional) Specify “assets” (the default) when your scan target
will include IP addresses/ranges and/or asset groups. Specify
“tags” when your scan target will include asset tags.
ip={value} (Optional) The IP addresses to be scanned. You may enter
individual IP addresses and/or ranges. Multiple entries are
comma separated. One of these parameters is required: ip,
asset_groups or asset_group_ids.
ip is valid only when target_from=assets is specified.
asset_groups={value} (Optional) The titles of asset groups containing the hosts to be
scanned. Multiple titles are comma separated. One of these
parameters is required: ip, asset_groups or asset_group_ids.
asset_groups is valid only when target_from=assets is specified.
69
Chapter 3 - Scans
Scan Parameters
Parameter Description
exclude_ip_per_scan={valu (Optional) The IP addresses to be excluded from the scan when
e} the scan target is specified as IP addresses (not asset tags). You
may enter individual IP addresses and/or ranges. Multiple entries
are comma separated.
exclude_ip_per_scan is valid only when target_from=assets is
specified.
tag_include_selector= (Optional) Select “any” (the default) to include hosts that match
{all|any} at least one of the selected tags. Select “all” to include hosts that
match all of the selected tags.
tag_include_selector is valid only when target_from=tags is
specified.
tag_exclude_selector= (Optional) Select “any” (the default) to exclude hosts that match
{all|any} at least one of the selected tags. Select “all” to exclude hosts that
match all of the selected tags.
tag_exclude_selector is valid only when target_from=tags is
specified.
tag_set_by={id|name} (Optional) Specify “id” (the default) to select a tag set by
providing tag IDs. Specify “name” to select a tag set by providing
tag names.
tag_set_by is valid only when target_from=tags is specified.
tag_set_include={value} (Optional) Specify a tag set to include. Hosts that match these
tags will be included. You identify the tag set by providing tag
name or IDs. Multiple entries are comma separated.
tag_set_include is valid only when target_from=tags is specified.
tag_set_exclude={value} (Optional) Specify a tag set to exclude. Hosts that match these
tags will be excluded. You identify the tag set by providing tag
name or IDs. Multiple entries are comma separated.
tag_set_exclude is valid only when target_from=tags is specified.
use_ip_nt_range_tags={0|1} (Optional) Specify “0” (the default) to select from all tags (tags
with any tag rule). Specify “1” to scan all IP addresses defined in
tags. When this is specified, only tags with the dynamic IP
address rule called “IP address in Network Range(s)” can be
selected.
use_ip_nt_range_tags is valid only when target_from=tags is
specified.
70
Chapter 3 - Scans
Scan Parameters
Parameter Description
iscanner_id={value} (Optional) The IDs of the scanner appliances to be used. Multiple
entries are comma separated. For an Express Lite user, Internal
Scanning must be enabled in the user’s account.
One of these parameters must be specified in a request:
iscanner_name, iscanner_id, default_scanner, scanners_in_ag,
scanners_in_tagset. When none of these are specified, External
scanners are used.
71
Chapter 3 - Scans
Scan Parameters
Parameter Description
scanners_in_tagset={0|1} (Optional) Specify 1 to distribute the scan to scanner appliances
that match the asset tags specified for the scan target.
One of these parameters must be specified in a request for an
internal scan: iscanner_name, iscanner_id, default_scanner,
scanners_in_ag, scanners_in_tagset. When none of these are
specified, External scanners are used.
72
Chapter 3 - Scans
Scan Parameters
Parameter Description
ip_network_id={value} (Optional, and valid only when the Network Support feature is
enabled for the user’s account)
The ID of a network used to filter the IPs/ranges specified in
the“ip” parameter. Set to a custom network ID (note this does not
filter IPs/ranges specified in “asset_groups” or “asset_group_ids”).
Or set to “0” (the default) for the Global Default Network - this is
used to scan hosts outside of your custom networks.
runtime_http_header= (Optional) Set a custom value in order to drop defenses (such as
{value} logging, IPs, etc) when an authorized scan is being run. The value
you enter will be used in the “Qualys-Scan:” header that will be
set for many CGI and web application fingerprinting checks.
Some discovery and web server fingerprinting checks will not use
this header.
scan_type= (Optional) (VM scan only) Launch a CertView type scan. This
certview option will be supported when CertView GA is released and
enabled for your account.
fqdn={value} (Optional) (VM scan only) The target FQDN for a CertView type
VM scan. For a this scan you must specify at least one target i.e.
IPs, asset groups or FQDNs. Multiple values are comma
separated. This option will be supported when CertView GA is
released and enabled for your account.
client_id={value} (Optional) Id assigned to the client (Consultant type
subscriptions).
client_name={value} (Optional) Name of the client (Consultant type subscriptions).
Note: The client_id and client_name parameters are mutually
exclusive and cannot be specified together in the same request.
include_agent_targets={0|1} (Optional) Specify 1 when your scan target includes agent hosts.
This lets you scan private IPs where agents are installed when
these IPs are not in your VM/PC license.
Supported capabilities
- This parameter is supported for internal scans using scanner
appliance(s). This option is not supported for scans using
External scanners.
- This parameter is supported when launching on demand scans
only. It is not supported for scheduled scans.
73
Chapter 3 - Scans
Cloud Perimeter Scan Parameters
74
Chapter 3 - Scans
Cloud Perimeter Scan Parameters
Parameter Description
priority={value} (Optional) Specify a value of 0 - 9 to set a processing
priority level for the scan. When not specified, a value of 0
(no priority) is used. Valid values are:
0 = No Priority (the default)
1 = Emergency
2 = Ultimate
3 = Critical
4 = Major
5 = High
6 = Standard
7 = Medium
8 = Minor
9 = Low
iscanner_id={value} (Optional, only valid when your account is configured to
allow internal scanners) The IDs of the scanner appliances
to be used. Specify "0" for external scanners. Multiple
entries are comma separated.
These parameters cannot be specified in the same request:
iscanner_id and iscanner_name.
iscanner_name={value} (Optional, only valid when your account is configured to
allow internal scanners) The friendly names of the scanner
appliances to be used or "External" for external scanners.
Multiple entries are comma separated.
These parameters cannot be specified in the same request:
iscanner_id and iscanner_name.
platform_type={value} (Optional) The platform type. Valid values are: classic,
vpc_peered or selected_vpc.
region_code={value} (Optional) The EC2 region code. Valid values are:
ap-northeast-1, ap-southeast-1, ap-southeast-2, eu-west-1,
sa-east-1, us-east-1, us-west-1 and us-west-2.
One of these parameters must be specified in the request:
region_code or vpc_id. These are mutually exclusive and
cannot be specified in the same request.
vpc_id={value} (Optional) The ID of the Virtual Private Cloud (VPC) zone.
The ID value must start with vpc%
One of these parameters must be specified in the request:
region_code or vpc_id. These are mutually exclusive and
cannot be specified in the same request.
75
Chapter 3 - Scans
Cloud Perimeter Scan Parameters
Parameter Description
include_micro_nano_instan (Optional) Specify 1 to include EC2 assets with instance
ces={0|1} types t2.nano, t3.nano, t1.micro and m1.small in the scan
job. By default, this parameter value is set to 0.
Warning
AWS EC2 assets with instance types t2.nano, t3.nano,
t1.micro and m1.small have very limited CPU. When
scanning these instance types we recommend you choose
an option profile with Light port scanning and no
authentication. Alternatively, use Qualys Cloud Agent to
perform the equivalent of authenticated scanning for the
least performance impact for these instance types.
tag_include_selector= (Optional) Select “any” (the default) to include hosts that
{all|any} match at least one of the selected tags. Select “all” to
include hosts that match all of the selected tags.
tag_exclude_selector= (Optional) Select “any” (the default) to exclude hosts that
{all|any} match at least one of the selected tags. Select “all” to
exclude hosts that match all of the selected tags.
tag_set_by={id|name} (Optional) Specify “id” (the default) to select a tag set by
providing tag IDs. Specify “name” to select a tag set by
providing tag names.
tag_set_include={value} (Optional) Specify a tag set to include. Hosts that match
these tags will be included. You identify the tag set by
providing tag name or IDs. Multiple entries are comma
separated.
tag_set_exclude={value} (Optional) Specify a tag set to exclude. Hosts that match
these tags will be excluded. You identify the tag set by
providing tag name or IDs. Multiple entries are comma
separated.
include_lb_from_connector (Optional) Specify 1 to include public load balancers from
={0|1} the selected connector in the scan job. By default, this
parameter value is set to 0.
elb_dns={value} (Optional) One or more load balancer DNS names to
include in the scan job. Multiple values are comma-
separated.
schedule={value} (Required for Create request) Specify "now" to schedule the
scan job for now. Specify "recurring" to schedule the scan
job to start at a later time or on a recurring basis. See
Scheduling Parameters in the next section.
76
Chapter 3 - Scans
Scan Schedule Parameters
77
Chapter 3 - Scans
Scan Schedule Parameters
Parameter Description
recurrence={value} (Optional) The number of times the scan will be run before it is
deactivated. For example, if you set recurrence=2, the scan
schedule will be deactivated after it runs 2 times. By default no
value is set. A valid value is an integer from 1 to 99.
end_after={value} (Optional) End a scan after some number of hours. A valid value
is from 0 to 119.
end_after_mins={value} (Optional) End a scan after some number of minutes. A valid
value is an integer from 0 to 59.
Must be specified with end_after. For example, to end the scan
after 2 hours and 30 minutes, you would specify end_after=2 and
end_after_mins=30.
When end_after is set to 0, the minimum value for
end_after_mins is 15.
pause_after_hours={value} (Optional) Pause a scan after some number of hours if the scan
has not finished by then. A valid value is an integer from 0 to 119.
pause_after_mins={value} (Optional) Pause a scan after some number of minutes if the scan
has not finished by then. A valid value is an integer from 0-59.
Must be specified with pause_after_hours. For example, to pause
the scan after 2 hours and 30 minutes, you would specify
pause_after_hours=2 and pause_after_mins=30.
When pause_after_hours is set to 0, the minimum value for
pause_after_mins is 15.
resume_in_days={value} (Optional) Resume a paused scan in some number of days. A
valid value is an integer from 0 to 9 or Manually.
resume_in_hours={value} (Optional) Resume a paused scan in some number of hours. A
valid value is an integer from 0-23.
Must be specified with pause_after_hours and resume_in_days.
For example, to resume your scan in 5 hours, specify
resume_in_days=0 and resume_in_hours=5. To resume your scan
in 1 day and 12 hours, specify resume_in_days=1 and
resume_in_hours=12.
Note - The value you set for pause will determine the minimum
value for resume. For example, if you set the scan to pause after
1 hour then you can set it to resume in 2 or more hours. If you set
the scan to pause between 1-2 hours (from 1hr, 1min to 1 hr,
59min) then you can set it to resume in 3 hours or more.
set_start_time={0|1} (Optional for Update only) Specify set_start_time=1 to update
any of the start time parameters.
Must be specified with all start time parameters together:
start_date, start_hour, start_minute, time_zone_code,
observe_dst
78
Chapter 3 - Scans
Scan Schedule Parameters
79
Chapter 3 - Scans
Scan Schedule Parameters
Parameter Description
recipient_group_ids={value} (Optional) The notification recipients in the form of one or more
valid distribution group IDs. When not specified during a create
request, only the task owner will be notified.
For update requests:
- When not specified we keep the previous setting.
- Specify an empty string to delete the list of IDs.
- If both notifications are disabled (before_notify=0 and
after_notify=0) we will delete the list of IDs.
This parameter is only valid when before_notify=1 or
after_notify=1 is specified in the same request.
80
Chapter 3 - Scans
VM Scan Statistics
VM Scan Statistics
/api/2.0/fo/scan/stats/?action=list
[GET] [POST]
List details about vulnerability scans and assets that are waiting to be processed.
Permissions - Manager role is required.
You’ll see these sections in the XML output:
UNPROCESSED SCANS - The total number of scans that are not processed, including scans
that are queued, running, loading, finished, etc.
VM RECRYPT BACKLOG - The total number of assets across your finished scans that are
waiting to be processed.
VM RECRYPT BACKLOG BY SCAN - Scan details for vulnerability scans that are waiting to
be processed. For each scan, you’ll see the scan ID, scan title, scan status, processing
priority and number of hosts that the scan finished but not processed.
VM RECRYPT BACKLOG BY TASK - Processing task details for vulnerability scans that are
waiting to be processed. For each task, you’ll see the same scan details as VM RECRYPT
BACKLOG BY SCAN plus additional information like the total hosts alive for the scan, the
number of hosts from the scan that have been processed, the number of hosts waiting to
be processed, the scan start date, the task type and task status.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE TASK_PROCESSING SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/scan/stats/vm_recrypt_res
ults.dtd">
<TASK_PROCESSING>
<UNPROCESSED_SCANS><![CDATA[366]]></UNPROCESSED_SCANS>
<VM_RECRYPT_BACKLOG><![CDATA[116]]></VM_RECRYPT_BACKLOG>
<VM_RECRYPT_BACKLOG_BY_SCAN>
<SCAN>
<ID><![CDATA[189275]]></ID>
<TITLE><![CDATA[API_V2_IP_Scan_1511513769]]></TITLE>
<STATUS><![CDATA[Loading]]></STATUS>
<PROCESSING_PRIORITY><![CDATA[None]]></PROCESSING_PRIORITY>
<COUNT><![CDATA[2]]></COUNT>
81
Chapter 3 - Scans
VM Scan Statistics
</SCAN>
<SCAN>
<ID><![CDATA[189281]]></ID>
<TITLE><![CDATA[API_V2_AG_Scan_1511513846]]></TITLE>
<STATUS><![CDATA[Loading]]></STATUS>
<PROCESSING_PRIORITY><![CDATA[None]]></PROCESSING_PRIORITY>
<COUNT><![CDATA[2]]></COUNT>
</SCAN>
<SCAN>
<ID><![CDATA[190773]]></ID>
<TITLE><![CDATA[API_V2_IP_Scan_]]></TITLE>
<STATUS><![CDATA[Finished]]></STATUS>
<PROCESSING_PRIORITY><![CDATA[None]]></PROCESSING_PRIORITY>
<COUNT><![CDATA[2]]></COUNT>
</SCAN>
<SCAN>
<ID><![CDATA[190775]]></ID>
<TITLE><![CDATA[API_V2_IP_Scan_]]></TITLE>
<STATUS><![CDATA[Finished]]></STATUS>
<PROCESSING_PRIORITY><![CDATA[None]]></PROCESSING_PRIORITY>
<COUNT><![CDATA[2]]></COUNT>
</SCAN>
...
</VM_RECRYPT_BACKLOG_BY_SCAN>
<VM_RECRYPT_BACKLOG_BY_TASK>
<SCAN>
<ID><![CDATA[210337]]></ID>
<TITLE><![CDATA[API_V2_AG_Scan_1515055579]]></TITLE>
<STATUS><![CDATA[Loading]]></STATUS>
<PROCESSING_PRIORITY><![CDATA[None]]></PROCESSING_PRIORITY>
<NBHOST><![CDATA[]]></NBHOST>
<TO_PROCESS><![CDATA[3]]></TO_PROCESS>
<PROCESSED><![CDATA[0]]></PROCESSED>
<SCAN_DATE><![CDATA[2018-01-04T08:46:13Z]]></SCAN_DATE>
<SCAN_UPDATED_DATE><![CDATA[2018-01-
04T08:58:05Z]]></SCAN_UPDATED_DATE>
<TASK_TYPE><![CDATA[VM Scan Processing]]></TASK_TYPE>
<TASK_STATUS><![CDATA[Queued]]></TASK_STATUS>
<TASK_UPDATED_DATE><![CDATA[2018-01-
12T08:17:09Z]]></TASK_UPDATED_DATE>
</SCAN>
<SCAN>
82
Chapter 3 - Scans
VM Scan Statistics
<ID><![CDATA[215356]]></ID>
<TITLE><![CDATA[API_V2_AG_Scan_1515742250]]></TITLE>
<STATUS><![CDATA[Running]]></STATUS>
<PROCESSING_PRIORITY><![CDATA[None]]></PROCESSING_PRIORITY>
<NBHOST><![CDATA[]]></NBHOST>
<TO_PROCESS><![CDATA[0]]></TO_PROCESS>
<PROCESSED><![CDATA[0]]></PROCESSED>
<SCAN_DATE><![CDATA[2018-01-12T07:30:42Z]]></SCAN_DATE>
<SCAN_UPDATED_DATE><![CDATA[2018-01-
12T08:01:10Z]]></SCAN_UPDATED_DATE>
<TASK_TYPE><![CDATA[VM Scan Processing]]></TASK_TYPE>
<TASK_STATUS><![CDATA[Queued]]></TASK_STATUS>
<TASK_UPDATED_DATE><![CDATA[2018-01-
12T08:17:11Z]]></TASK_UPDATED_DATE>
</SCAN>
<SCAN>
<ID><![CDATA[215357]]></ID>
<TITLE><![CDATA[API_V2_AG_Scan_1515742265]]></TITLE>
<STATUS><![CDATA[Loading]]></STATUS>
<PROCESSING_PRIORITY><![CDATA[None]]></PROCESSING_PRIORITY>
<NBHOST><![CDATA[]]></NBHOST>
<TO_PROCESS><![CDATA[0]]></TO_PROCESS>
<PROCESSED><![CDATA[0]]></PROCESSED>
<SCAN_DATE><![CDATA[2018-01-12T07:30:58Z]]></SCAN_DATE>
<SCAN_UPDATED_DATE><![CDATA[2018-01-
12T08:14:45Z]]></SCAN_UPDATED_DATE>
<TASK_TYPE><![CDATA[VM Scan Processing]]></TASK_TYPE>
<TASK_STATUS><![CDATA[Queued]]></TASK_STATUS>
<TASK_UPDATED_DATE><![CDATA[2018-01-
12T08:17:11Z]]></TASK_UPDATED_DATE>
</SCAN>
...
</VM_RECRYPT_BACKLOG_BY_TASK>
</TASK_PROCESSING>
DTD
<platform API server>/api/2.0/fo/scan/stats/vm_recrypt_results.dtd
83
Chapter 3 - Scans
VM Scan Summary
VM Scan Summary
/api/2.0/fo/scan/summary/
[GET] [POST]
Input Parameters
Parameter Description
action=list (Required)
scan_date_since={value} (Required) Include scans started since a certain date. Specify the
date in YYYY-MM-DD format. The date must be less than or
equal to today’s date.
84
Chapter 3 - Scans
VM Scan Summary
Parameter Description
scan_date_to={value} (Optional) Include scans started up to a certain date. Specify the
date in YYYY-MM-DD format. The date must be more than or
equal to scan_date_since, and less than or equal to today’s date.
output_format={value} (Optional) The output format: XML (the default), CSV or JSON.
tracking_method={value} (Optional) By default hosts with any tracking method will be
returned in the output. Use this option to only include hosts with
a certain tracking method. Valid values are: IP, DNS, NETBIOS.
include_dead={0|1} (Optional) Set to 0 if you do not want to include dead hosts in the
output. Dead hosts are included by default.
include_excluded={0|1} (Optional) Set to 1 to include hosts that were excluded from a
scan in the output. Excluded hosts are not included by default.
include_unresolved={0|1} (Optional) Set to 1 to include unresolved hosts in the output.
Unresolved hosts are not included by default.
include_cancelled={0|1} (Optional) Set to 1 to include cancelled hosts in the output.
Cancelled hosts are not included by default.
include_notvuln={0|1} (Optional) Set to 1 to include hosts that are not vulnerable in the
output. Not vulnerable hosts are not included by default.
include_blocked={0|1} (Optional) Set to 1 to include blocked hosts in the output. Blocked
hosts are not included by default.
include_duplicate={0|1} (Optional) Set to 1 to include duplicate hosts in the output.
Duplicate hosts are not included by default.
include_aborted={0|1} (Optional) Set to 1 to include aborted hosts in the output. Aborted
hosts are not included by default.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCAN_SUMMARY_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/scan/summary/scan_summary
_output.dtd">
<SCAN_SUMMARY_OUTPUT>
<RESPONSE>
<DATETIME>2018-05-02T10:45:40Z</DATETIME>
<SCAN_SUMMARY_LIST>
<SCAN_SUMMARY>
85
Chapter 3 - Scans
VM Scan Summary
<SCAN_REF>scan/1525251885.92469</SCAN_REF>
<SCAN_DATE>2018-05-02T09:04:34Z</SCAN_DATE>
<HOST_SUMMARY category="notvuln" tracking="IP">10.10.10.10-
10.10.10.15,10.10.10.17</HOST_SUMMARY>
<HOST_SUMMARY category="notvuln" tracking="DNS">gfi-31-
1.caac125.qualys.com,gfi-31-2.caac125.qualys.com</HOST_SUMMARY>
<HOST_SUMMARY category="notvuln" tracking="NETBIOS">gfi-31-
3,gfi-31-4</HOST_SUMMARY>
<HOST_SUMMARY category="cancelled"
tracking="IP">10.10.10.20,10.10.10.22</HOST_SUMMARY>
<HOST_SUMMARY category="cancelled" tracking="DNS">gfi-31-
5.caac125.qualys.com,gfi-31-6.caac125.qualys.com</HOST_SUMMARY>
<HOST_SUMMARY category="dead"
tracking="IP">10.10.10.25</HOST_SUMMARY>
<HOST_SUMMARY category="dead" tracking="NETBIOS">gfi-31-
10,gfi-31-11</HOST_SUMMARY>
<HOST_SUMMARY category="excluded"
tracking="IP">10.10.10.26</HOST_SUMMARY>
<HOST_SUMMARY category="unresolved" tracking="NETBIOS">gfi-
31-13</HOST_SUMMARY>
<HOST_SUMMARY category="duplicate"
tracking="IP">10.10.10.27</HOST_SUMMARY>
<HOST_SUMMARY category="duplicate" tracking="DNS">gfi-31-
14.caac125.qualys.com</HOST_SUMMARY>
</SCAN_SUMMARY>
</SCAN_SUMMARY_LIST>
</RESPONSE>
</SCAN_SUMMARY_OUTPUT>
DTD
<platform API server>/api/2.0/fo/scan/summary/scan_summary_output.dtd
86
Chapter 3 - Scans
Scanner Details
Scanner Details
/api/2.0/fo/scan/scanner
[GET] [POST]
Input Parameters
Parameter Description
action=list (Required)
scan_date_since={value} (Required) Include scans started since a certain date. Specify the
date in YYYY-MM-DD format. The date must be less than or
equal to today’s date.
scan_date_to={value} (Optional) Include scans started up to a certain date. Specify the
date in YYYY-MM-DD format. The date must be later than or
equal to scan_date_since, and less than or equal to today’s
date.
ips={value} (Required) The IP addresses you want scanner details for. You
may enter a combination of IPs and ranges. Multiple entries are
comma separated.
output_format=XML (Optional) The output format: XML (the default).
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE IP_SCANNERS_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/scan/scanner/scanner_list
_output.dtd">
87
Chapter 3 - Scans
Scanner Details
<IP_SCANNERS_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-11-08T21:49:51Z</DATETIME>
<IP_SCANNERS_OUTPUT>
<IP_SCANNED>
<IP>10.10.10.7</IP>
<SCAN_REF>scan/1527197914.13102</SCAN_REF>
<SCAN_DATE>2018-05-24T21:39:08Z</SCAN_DATE>
<SCANNER_IDENTIFIER>external scanner</SCANNER_IDENTIFIER>
<SCANNER_TYPE>extranet</SCANNER_TYPE>
<ML_VERSION>ML-9.7.20-1</ML_VERSION>
<VULNSIGS_VERSION>VULNSIGS-2.4.182-2</VULNSIGS_VERSION>
</IP_SCANNED>
<IP_SCANNED>
<IP>10.10.10.7</IP>
<SCAN_REF>scan/1538093810.64913</SCAN_REF>
<SCAN_DATE>2018-09-28T00:19:25Z</SCAN_DATE>
<SCANNER_IDENTIFIER>Esxi_4_Network</SCANNER_IDENTIFIER>
<SCANNER_TYPE>appliance</SCANNER_TYPE>
<ML_VERSION>ML-9.10.21-1</ML_VERSION>
<VULNSIGS_VERSION>VULNSIGS-2.4.284-2</VULNSIGS_VERSION>
</IP_SCANNED>
<IP_SCANNED>
<IP>10.10.10.10</IP>
<SCAN_REF>scan/1538093810.64913</SCAN_REF>
<SCAN_DATE>2018-09-28T00:19:25Z</SCAN_DATE>
<SCANNER_IDENTIFIER>Esxi_4_Network</SCANNER_IDENTIFIER>
<SCANNER_TYPE>appliance</SCANNER_TYPE>
<ML_VERSION>ML-9.10.21-1</ML_VERSION>
<VULNSIGS_VERSION>VULNSIGS-2.4.284-2</VULNSIGS_VERSION>
</IP_SCANNED>
</IP_SCANNERS_OUTPUT>
</RESPONSE>
</IP_SCANNERS_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/scan/scanner/scanner_list_output.dtd
88
Chapter 3 - Scans
Share PCI Scan
Input Parameters
Parameter Description
action=share (Required) Specify “share” to share a PCI scan.
echo_request={0|1} (Optional) Specify 1 to view parameters in the XML output. When
unspecified, parameters are not included in the XML output.
scan_ref={value} (Required) The scan reference of a finished PCI scan. The scan
status of this scan must be “Finished”.
merchant_username= (Required) The user name of the PCI Merchant account that the
{value} PCI scan will be exported to. The API user’s Qualys account must
have a PCI account link already defined for this target PCI
Merchant account.
89
Chapter 3 - Scans
Share PCI Scan
90
Chapter 3 - Scans
Share PCI Scan
Get the share status of a PCI scan that has already been shared with a PCI merchant
account.
Input Parameters
Parameter Description
action=status (Required)
echo_request={0|1} (Optional) Specify 1 to view parameters in the XML output. When
unspecified, parameters are not included in the XML output.
scan_ref={value} (Required) The scan reference of the shared scan that you want
to check the export status for.
merchant_username= (Required) The username of the PCI account which the scan was
{value} shared with.
XML output:
The XML response for a status requests identifies the share status: Queued (request was
received and not started yet), In Progress, Finished (scan was exported to PCI account
successfully), or Error.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE PCI_SCAN_SHARE_STATUS SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/scan/pci/pci_scan_share_s
tatus.dtd">
<PCI_SCAN_SHARE_STATUS>
<RESPONSE>
<SCAN>
<MERCHANT_USERNAME>asmith@hq</MERCHANT_USERNAME>
<SCAN_REF>scan/1531755831.21639</SCAN_REF>
91
Chapter 3 - Scans
Share PCI Scan
<STATUS>In Progress</STATUS>
<LAST_SHARED>2018-07-19T05:05:58Z</LAST_SHARED>
</SCAN>
</RESPONSE>
</PCI_SCAN_SHARE_STATUS>
DTD
<platform API server>/api/2.0/fo/scan/pci/pci_scan_share_status.dtd
92
Chapter 3 - Scans
Discovery Scans (maps)
Launch Map
/msp/map-2.php
[GET] [POST]
Launch a Qualys network map for one or more domains, initiating network discovery. The
map target may include asset groups and the default scanner option may be enabled for
distributed mapping across multiple scanner appliances.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
A map request for multiple domains issued using the map-2.php API, runs one map at a
time, one domain at a time. If you cancel a running map for a domain using the
scan_cancel.php function and there are multiple domains in the map target, the service
cancels the maps for any remaining, undiscovered domains in the same map target.
For a map request with multiple domains, the XML map report returned by the map-2.php
function includes all domains that were successfully discovered. When you view the map
results for this request using the map_report.php function or the Qualys user interface,
each map report includes map results for one domain. Also, if the map summary
notification is enabled in your account, there is a separate notification for each target
domain.
Permissions - Managers can map all domains in the subscription. Unit Managers can map
domains in the user’s same business unit. Scanners can map domains in their own
account.
93
Chapter 3 - Scans
Discovery Scans (maps)
Input Parameters
Parameter Description
map_title={title} (Optional) Specifies a title for the map. The map title can have a
maximum of 2,000 characters. When specified, the map title
appears in the header section of the map results. When
unspecified, the API returns a standard, descriptive title in the
header section.
domain={target} (Optional) Specifies one or more domain names for the map
target. Multiple entries are comma separated. (Target may
include domain names and/or asset groups)
For each domain, include the domain name only; do not enter
“www.” at the start of the domain name. Netblocks may be
specified with each domain name to extend the scope of the
map. Multiple domains must be comma separated.
94
Chapter 3 - Scans
Discovery Scans (maps)
Parameter Description
option={title} (Optional) Specifies the title of an option profile to be applied to
the map. The profile title must be defined in the user account,
and it can have a maximum of 64 characters. If unspecified, the
default option profile in the user account is applied.
save_report=yes (Optional) Saves a map report for each target domain on the
Qualys server for later use. A valid value is “yes” to save a map
report for each target domain, or “no” (the default) to not save
the report.
If set to “yes”, you can close the HTTP connection when the map
is in progress, without cancelling the map. When the map
completes the resulting map report is saved on the Qualys
platform, and a map summary email notification is sent (if this
option is enabled in your user account).
Request a map of the domain “www.mycompany.com” using the external scanners, save
map report on the Qualys platform:
https://qualysapi.qualys.com/msp/map-2.php?domain=mycompany.com
&save_report=yes
Request a map for the following domain/netblock pair using the scanner appliance “Hong
Kong” and custom domain mycompany:
https://qualysapi.qualys.com/msp/map-2.php?domain=mycompany.com:19
2.168.0.1-192.168.0.254&iscanner_name=Hong+Kong
Request a map for this domain/netblock pair using the scanner appliance “San Francisco”
and none domain:
https://qualysapi.qualys.com/msp/map-2.php?domain=none:192.168.0.1
-192.168.0.254&iscanner_name=San+Franscisco
DTD
<platform API server>/map-2.dtd
95
Chapter 3 - Scans
Discovery Scans (maps)
List saved map reports in the user’s account. Each entry in the map report list identifies a
saved map report for a specific domain. There is a separate saved map report for each
domain in the map target.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Permissions - Managers can view all saved map reports in the subscription. Unit Managers
can view saved map reports for domains in user’s business unit. Scanners and Readers
can view saved map reports for domains in user’s account.
Input Parameters
Parameter Description
last=yes (Optional) Used to retrieve information only about the last saved
map report. A valid value is “yes” to retrieve the last saved map
report, or “no” (the default) to retrieve all map reports.
domain={target} (Optional) Used to receive a list of all saved map reports for the
specified target domain. If both parameters domain={target} and
last=yes are specified, you will receive information about the last
saved map for the target domain.
Sample
Receive information about the last saved map for the domain “www.companyabc.com”:
https://qualysapi.qualys.com/msp/map_report_list.php?
domain=www.companyabc.com&last=yes
DTD
<platform API server>/map_report_list.dtd
96
Chapter 3 - Scans
Discovery Scans (maps)
List maps and scans that are currently running in the user's account. If you're interested
in listing scans only (not maps), we recommend using VM Scan List (/api/2.0/fo/scan/)
instead.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Permissions - Managers can view all running maps/scans in the subscription. Unit
Managers can view running maps/scans on assets in the user’s business unit. Scanners
and Readers can view running maps/scans on assets their account.
DTD
<platform API server>/scan_running_list.dtd
Cancel a map in progress. It’s not possible to cancel a map when it has the scan status
“Loading”.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Permissions - Managers can cancel all running maps in the subscription. Unit Managers
can cancel running maps launched by users in their same business unit. Scanners can
cancel running maps they have launched.
Input Parameter
Parameter Description
ref={value} (Required) Specifies the map reference for the map to be
cancelled (or a scan reference for the scan to be cancelled). A
map reference starts with “map/”.
97
Chapter 3 - Scans
Discovery Scans (maps)
DTD
<platform API server>/generic_return.dtd
Download a saved map in the user’s account, when the map has the scan status
“Finished”. Each saved map report identifies map results for a specific domain. If you issue
a map request for multiple domains using the map-2.php API, there is a separate saved
map report for each domain in the map target.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Permissions - Managers can download all saved map reports in subscription. Unit
Managers can download saved map report for domain in user’s business unit. Scanners
and Readers can download saved map report for domain in user’s account.
Input Parameter
Parameter Description
ref={value} (Required) Specifies the map reference for the scan you want to
download. A map reference starts with “map/”.
DTD
<platform API server>/map.dtd
98
Chapter 3 - Scans
Discovery Scans (maps)
Delete a previously saved network map or scan report, when the scan status is “Finished”.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Permissions - Managers can delete saved map reports in the subscription. Unit Managers
can delete saved map reports for domains in the user’s business unit, including the user’s
own maps and maps run by other users in the same business unit. Scanners can delete
saved map reports in user’s account.
Input Parameter
Parameter Description
ref={value} (Required) Specifies the map reference for the map to be deleted.
A map reference starts with “map/”.
DTD
<platform API server>/generic_return.dtd
99
Chapter 3 - Scans
Discovery Scans (maps)
Domain List
/msp/asset_domain_list.php
[GET] [POST]
DTD
<platform API server>/domain_list.dtd
Add/Edit Domain
/msp/asset_domain.php
[GET] [POST]
Add and edit domains and related netblocks in the subscription. The domains defined
may be used as targets for network scans (maps).
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Permissions - Manager user role is required.
Input Parameter
Parameter Description
action={add | edit} (Required)
100
Chapter 3 - Scans
Discovery Scans (maps)
Parameter Description
domain={domain} (Required) Specifies the domain name to add or edit. Include the
domain name only; do not enter “www.” at the start of the domain
name.
netblock={ranges} (Optional for add request, and Required for an edit request)
For an edit request, it’s not possible to add or remove netblocks for
a domain. To clear associated netblocks for an existing domain,
specify netblock=
DTD
<platform API server>/generic_return.dtd
101
Chapter 4 - Scan Configuration
102
Chapter 4 - Scan Configuration
Scanner Appliance List
List scanner appliances in your account with their configurations. The list output is shown
in “brief” mode by default. Specify output_mode=full to include full output (the same
information available within the Qualys user interface).
Permissions - Managers can view all scanner appliances in the subscription. Unit
Managers can view appliances in the user’s own business unit. Scanners and Readers can
view appliances in their own account.
Express Lite - This API is available to Express Lite users when Internal Scanning is enabled
in the user’s account.
Input Parameters
Parameter Description
action=list (Required) A flag used to make a request for a list of scanner
appliances. The GET or POST method may be used for a list
request.
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When not
specified, parameters are not included in the XML output.
Specify 1 to view parameters in the XML output.
output_mode={brief|full} (Optional) The amount of detail provided for each scanner
appliance in the output: brief (default) or full.
103
Chapter 4 - Scan Configuration
Scanner Appliance List
Parameter Description
busy={0|1} (Optional) By default all scanner appliances in the user account
are shown. Set to 0 to show only appliances which are not
currently running scans. Set to 1 (default) to show only
appliances which are currently running scans.
scan_ref={value} (Optional) Specify a scan reference code to show only the
scanner appliances running a particular scan.You may enter a
valid scan reference code for a currently running scan.
The scan reference code starts with a string that identifies the
scan type: “scan/” for a vulnerability scan, “compliance/” for a
compliance scan, “was/” for a web application scan, “qscap/” for
an FDCC scan, or “map/” for a network map.
name={string} (Optional) List only scanner appliances (physical and virtual)
that have names matching the string provided. Tip - Substring
match is supported. For example, if you have 2 appliances
named “myscanner” and “anotherscanner” and you supply the
string “name=scan” both appliance both appliances will be
returned in the XML output.
ids={id1,id2,..} (Optional) List only scanner appliances (physical and virtual)
that have certain IDs. Multiple IDs are comma separated.
include_license_info={0|1} (Optional) Set to 1 to return virtual scanner license information
in the XML output. This tells you the number of licenses you
have and the number used. This information is not returned by
default. When specified the XML output will include the
LICENSE_INFO element.
type={physical | virtual | (Optional) Type of scanner appliances: physical, virtual, offline.
offline} Appears when output_mode=full is specified in API request.
platform_provider (Optional) Specify a platform to show scanners deployed on
that platform. The valid values are: ec2, ec2_compat, gce,
azure, vCenter.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -d
"action=list&echo_request=1&ids=777,1127,1131&include_license_info
=1" "https://qualysapi.qualys.com/api/2.0/fo/appliance/"
104
Chapter 4 - Scan Configuration
Scanner Appliance List
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE APPLIANCE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/appliance/appliance_list_
output.dtd">
<APPLIANCE_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2014-01-02T09:26:01Z</DATETIME>
<APPLIANCE_LIST>
<APPLIANCE>
<ID>777</ID>
<NAME>scanner1</NAME>
<SOFTWARE_VERSION>2.6</SOFTWARE_VERSION>
<RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
<STATUS>Online</STATUS>
</APPLIANCE>
<APPLIANCE>
<ID>1127</ID>
<NAME>scanner2</NAME>
<SOFTWARE_VERSION>2.6</SOFTWARE_VERSION>
<RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
<STATUS>Online</STATUS>
</APPLIANCE>
<APPLIANCE>
<ID>1131</ID>
<NAME>scanner3</NAME>
<SOFTWARE_VERSION>2.6</SOFTWARE_VERSION>
<RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
<STATUS>Offline</STATUS>
</APPLIANCE>
</APPLIANCE_LIST>
<LICENSE_INFO>
<QVSA_LICENSES_COUNT>10</QVSA_LICENSES_COUNT>
<QVSA_LICENSES_USED>3</QVSA_LICENSES_USED>
</LICENSE_INFO>
</RESPONSE>
</APPLIANCE_LIST_OUTPUT>
105
Chapter 4 - Scan Configuration
Scanner Appliance List
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -d
"action=list&type=virtual&platform_provider=ec2&include_cloud_info
=1&output_mode=full"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/"
XML output:
Sample shows Cloud Info for Amazon EC2.
...
<IS_CLOUD_DEPLOYED>1</IS_CLOUD_DEPLOYED>
<CLOUD_INFO>
<PLATFORM_PROVIDER>ec2</PLATFORM_PROVIDER>
<EC2_INFO>
<INSTANCE_ID>i-02441120f4e14e32c</INSTANCE_ID>
<INSTANCE_TYPE>m3.medium</INSTANCE_TYPE>
<AMI_ID>ami-2d4ed53a</AMI_ID>
<ACCOUNT_ID>205767712438</ACCOUNT_ID>
<INSTANCE_REGION>US East (N.
Virginia)</INSTANCE_REGION>
<INSTANCE_AVAILABILITY_ZONE>us-east-
1c</INSTANCE_AVAILABILITY_ZONE>
<INSTANCE_ZONE_TYPE>Classic</INSTANCE_ZONE_TYPE>
<IP_ADDRESS_PRIVATE>10.181.43.219</IP_ADDRESS_PRIVATE>
<HOSTNAME_PRIVATE>ip-10-181-43-
219.ec2.internal</HOSTNAME_PRIVATE>
<API_PROXY_SETTINGS>
<SETTING>Enabled</SETTING>
<PROXY>
<PROTOCOL>http</PROTOCOL>
<IP_ADDRESS>1.1.1.1</IP_ADDRESS>
<HOSTNAME>test_hostname.com</HOSTNAME>
<PORT>234</PORT>
<USER>*****</USER>
</PROXY>
</API_PROXY_SETTINGS>
</EC2_INFO>
...
106
Chapter 4 - Scan Configuration
Scanner Appliance List
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -d
"action=list&output_mode=full"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/"
XML output:
Sample shows type of scanner appliance.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE APPLIANCE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/appliance/appliance_list_
output.dtd">
<APPLIANCE_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-08-31T09:14:49Z</DATETIME>
<APPLIANCE_LIST>
<APPLIANCE>
<ID>132455</ID>
<UUID>6ae4efce-0c5e-e227-82e0-1b7f55f1b98b</UUID>
<NAME>VS_ND_1</NAME>
<SOFTWARE_VERSION>2.6</SOFTWARE_VERSION>
<RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
<RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
<STATUS>Offline</STATUS>
<MODEL_NUMBER>cvscanner</MODEL_NUMBER>
<TYPE>Virtual</TYPE>
<SERIAL_NUMBER>0</SERIAL_NUMBER>
<ACTIVATION_CODE>15440265032293</ACTIVATION_CODE>
<INTERFACE_SETTINGS>
<INTERFACE>lan</INTERFACE>
<IP_ADDRESS>1.1.1.1</IP_ADDRESS>
<NETMASK>128.0.0.0</NETMASK>
<GATEWAY>128.0.0.0</GATEWAY>
<LEASE>Static</LEASE>
<IPV6_ADDRESS></IPV6_ADDRESS>
<SPEED></SPEED>
<DUPLEX>Unknown</DUPLEX>
<DNS>
<DOMAIN></DOMAIN>
<PRIMARY>128.0.0.0</PRIMARY>
<SECONDARY>128.0.0.0</SECONDARY>
</DNS>
</INTERFACE_SETTINGS>
DTD:
<platform API server>/api/2.0/fo/appliance/appliance_list_output.dtd
107
Chapter 4 - Scan Configuration
Manage Virtual Scanner Appliances
Input Parameters
Parameter Description
action=create (Required)
name={string} (Required) The friendly name. This name can’t already be
assigned to an appliance in your account. It can be a maximum
of 15 characters, spaces are not allowed.
polling_interval={value} (Optional) The polling interval, in seconds. A valid value is 60 to
3600 (we recommend 180 which is the default). This is the
frequency that the virtual scanner will attempt to connect to our
Cloud Security Platform. The appliance calls home to provide
health updates/heartbeats to the platform, to get software
updates from the platform, to learn if new scan jobs have been
requested by users, and to upload scan results data to the
platform, if applicable.
asset_group_id={value} (Required for Unit Managers and Scanners for Create request)
The ID of an asset group the virtual scanner will be assigned to.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d "action=create&echo_request=1&name=scanner1"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/"
108
Chapter 4 - Scan Configuration
Manage Virtual Scanner Appliances
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE APPLIANCE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/appliance/appliance_creat
e_output.dtd">
<APPLIANCE_CREATE_OUTPUT>
<RESPONSE>
<DATETIME>2014-01-02T09:26:01Z</DATETIME>
<ID>777</ID>
<NAME>scanner1</NAME>
<ACTIVATION CODE>ACTIVATION-CODE</ACTIVATION CODE>
<REMAINING_QVSA_LICENSES>4</REMAINING_QVSA_LICENSES>
</RESPONSE>
</APPLIANCE_CREATE_OUTPUT>
DTD:
<platform API server>/api/2.0/fo/appliance/appliance_create_output.dtd
Update a virtual scanner appliance in your account. You can add tags, remove and reset
tags for your scanner appliances.
Permissions - Managers can update a virtual scanner appliance. Unit Managers and
Scanners must have the “Manage virtual scanner appliances” permission. This permission
is only available to Scanner users when your subscription is configured to allow it.
Input Parameters
Parameter Description
action=update (Required)
id={id} (Required) A valid ID of a virtual scanner.
name={string} (Optional) The friendly name. This name can’t already be
assigned to an appliance in your account. It can be a maximum
of 15 characters, spaces are not allowed.
109
Chapter 4 - Scan Configuration
Manage Virtual Scanner Appliances
Parameter Description
polling_interval={value} (Optional) The polling interval, in seconds. A valid value is 60 to
3600 (we recommend 180 which is the default). This is the
frequency that the virtual scanner will attempt to connect to our
Cloud Security Platform. The appliance calls home to provide
health updates/heartbeats to the platform, to get software
updates from the platform, to learn if new scan jobs have been
requested by users, and to upload scan results data to the
platform, if applicable.
comment={value} (Optional) User-defined comments.
set_tags={value} (Optional) Specify tag to be assigned to the scanner appliance.
Both virtual and physical scanners can be tagged.
These parameters are mutually exclusive and cannot be
specified in the same request: set_tags and add_tags,
remove_tags.
add_tags={value} (Optional) Specify tag to be added to the existing list of tags
assigned to the scanner. Multiple entries are comma separated.
These parameters are mutually exclusive and cannot be
specified in the same request: set_tags and add_tags,
remove_tags.
remove_tags={value} (Optional) Specify tag to be removed from the existing list of tags
assigned to scanner. Multiple tags are comma separated.
These parameters are mutually exclusive and cannot be
specified in the same request: set_tags and add_tags,
remove_tags.
tag_set_by={id|name} (Optional) Specify “id” (the default) to select a tag set by providing
tag IDs. Specify “name” to select a tag set by providing tag names.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-04-03T12:12:45Z</DATETIME>
<TEXT>Virtual scanner updated successfully</TEXT>
<ITEM_LIST>
<ITEM>
110
Chapter 4 - Scan Configuration
Manage Virtual Scanner Appliances
<KEY>ID</KEY>
<VALUE>17110</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Sample - Add tags for windows agent, remove tags for linux agents
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: curl" -X POST -d
"action=update&id=3105&tag_set_by=name&add_tags=windows_agent&remo
ve_tags=linux_agents"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2016-09-15T19:44:35Z</DATETIME>
<TEXT>Virtual scanner updated successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>3105</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2016-09-15T19:47:37Z</DATETIME>
111
Chapter 4 - Scan Configuration
Manage Virtual Scanner Appliances
Input Parameters
Parameter Description
action=delete (Required)
id={id} (Required) A valid ID of a virtual scanner.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d "action=delete&echo_request=1&id=12345"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/"
XML output:
The XML output uses the simple return (/api/2.0/simple_return.dtd).
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE APPLIANCE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
112
Chapter 4 - Scan Configuration
Update Physical Scanner Appliance
<DATETIME>2014-01-02T09:26:01Z</DATETIME>
<TEXT>Virtual scanner deleted successfully</ID>
<ITEM_LIST>
<ITEM>
<KEY>ID<KEY>
<VALUE>115<VALUE>
</ITEM>
<ITEM>
<KEY>DEACTIVATED_SCHEDULED_SCANS<KEY>
<VALUE>None<VALUE>
</ITEM>
<ITEM>
<KEY>AFFECTED_ASSET_GROUPS<KEY>
<VALUE>None<VALUE>
</ITEM>
<ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Input Parameters
Parameter Description
action=update (Required)
id={id} (Required) A valid ID of a physical scanner.
name={string} (Optional) The friendly name. This name can’t already be
assigned to an appliance in your account. It can be a maximum
of 15 characters, spaces are not allowed.
polling_interval={value} (Optional) The polling interval, in seconds. A valid value is 60 to
3600 (we recommend 180 which is the default). This is the
frequency that the physical scanner will attempt to connect to
our Cloud Security Platform. The appliance calls home to provide
health updates/heartbeats to the platform, to get software
updates from the platform, to learn if new scan jobs have been
requested by users, and to upload scan results data to the
platform, if applicable.
113
Chapter 4 - Scan Configuration
Update Physical Scanner Appliance
Parameter Description
set_vlans={value} Use this parameter to specify one or more VLANs for scanner. See
Manage Virtual Scanner Appliances.
set_tags= {value} (Optional) Specify tag to be assigned to the scanner appliance.
Both virtual and physical scanners can be tagged.
These parameters are mutually exclusive and cannot be
specified in the same request: set_tags and add_tags,
remove_tags.
add_tags= {value} (Optional) Specify tag to be added to the existing list of tags
assigned to the scanner. Multiple entries are comma
separated.
These parameters are mutually exclusive and cannot be
specified in the same request: set_tags and add_tags,
remove_tags.
remove_tags= {value} (Optional) Specify tag to be removed from the existing list of tags
assigned to scanner. Multiple entries are comma
separated.
These parameters are mutually exclusive and cannot be
specified in the same request: set_tags and add_tags,
remove_tags.
tag_set_by= {id|name} (Optional) Specify “id” (the default) to select a tag set by providing
tag IDs. Specify “name” to select a tag set by providing tag names.
set_routes={value} Use this parameter to specify one or more routes for scanner. See
Manage Virtual Scanner Appliances
comment={value} (Optional) User-defined comments.
Sample 1
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d "action=update&id=5115&comment=Hello"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/physical/"
Sample 2
Add VLAN and routes with Name, Polling interval and comments to Physical scanner:
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X POST -d
"action=update&id=5115&name=physcanner&polling_interval=360&set_ro
utes=10.10.10.10|255.255.255.0|10.10.10.10|routes1&set_vlans=1|10.
2.0.2|255.255.255.0|Testvlan1&comment=Update_scanner"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/physical/"
114
Chapter 4 - Scan Configuration
Update Physical Scanner Appliance
Sample 3
Update physical scanner using tag_set_by and add_tags parameters:
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d "action=update&id=5115&tag_set_by=id&add_tags=7691422"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/physical/"
Sample 4
Update physical scanner using tag_set_by and set_tags parameters:
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d "action=update&id=5115&tag_set_by=id&set_tags=7691422"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/physical/"
Sample 5
Update physical scanner using tag_set_by and remove_tags parameters:
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d "action=update&id=5115&tag_set_by=id&remove_tags=7691422"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/physical/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-10-01T00:12:29Z</DATETIME>
<TEXT>Physical scanner updated successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>5115</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
115
Chapter 4 - Scan Configuration
Replace Scanner Appliance
Input Parameters
Parameter Description
action=replace (Required)
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When not
specified, parameters are not included in the XML output. Specify
1 to view parameters in the XML output.
old_scanner_name={value} (Required) The name of the scanner you want to replace.
new_scanner_name={value} (Required) The name of the scanner you want to use.
do_not_copy_settings={0|1} (Optional) When not specified, we will transfer settings from the
old scanner to the new scanner for you. Specify 1 if you do not
want us to transfer appliance settings. Settings include the
polling interval, heartbeat checks, scanning options, VLANs and
static routes, associated asset groups, schedules and network, if
applicable.
do_not_remove_new_scann (Optional) When not specified, we will remove the new appliance
er_from_objects={0|1} from business objects (asset groups and schedules) that it’s
already associated with. Specify 1 if you do not want us to
remove the new appliance from business objects.
This parameter cannot be set for EC2 scanners.
116
Chapter 4 - Scan Configuration
Replace Scanner Appliance
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCANNER_REPLACE_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/appliance/replace_iscanne
r/replace_iscanner_output.dtd">
<SCANNER_REPLACE_OUTPUT>
<REQUEST>
<DATETIME>2018-01-16T06:52:53Z</DATETIME>
<USER_LOGIN>abcd</USER_LOGIN>
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/appliance/replac
e_iscanner/</RESOURCE>
<PARAM_LIST>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>old_scanner_name</KEY>
<VALUE>scanner1</VALUE>
</PARAM>
<PARAM>
<KEY>new_scanner_name</KEY>
<VALUE>scanner2</VALUE>
</PARAM>
<PARAM>
<KEY>do_not_copy_settings</KEY>
<VALUE>0</VALUE>
</PARAM>
<PARAM>
<KEY>do_not_remove_new_scanner_from_objects</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>action</KEY>
<VALUE>replace</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<RESPONSE>
<DATETIME>2018-01-16T06:52:53Z</DATETIME>
<NEW_SETTINGS>POLLING_INTERVAL: 180, HEARTBEAT:
1</NEW_SETTINGS>
<SCHEDULED_SCANS>Scheduled-Scan1, Scheduled-
Scan2</SCHEDULED_SCANS>
<ASSET_GROUPS>AG123, AG456</ASSET_GROUPS>
117
Chapter 4 - Scan Configuration
Scanner Appliance VLANs and Static Routes
DTD
A replace scanner appliance API request uses this DTD:
<platform API server>/api/2.0/fo/appliance/replace_iscanner/
replace_iscanner_output.dtd
Manage your VLANs and static routes for virtual and physical scanner appliances using
the Virtual Scanner Appliance API () or Physical Scanner Appliance API
(/api/2.0/fo/appliance/physical/?action=update). Use the parameters “set_vlans” and
“set_routes” to add, update and remove these settings.
What do I need? Your Qualys account must have the VLANs and Static Routes feature
enabled. Please contact our Support Team or your Qualys TAM if you would like us to
enable this feature for you.
Permissions - Managers can add/remove VLANs and static routes for all scanner
appliances in the subscription. Unit Managers can add/remove VLANs and static routes in
the user’s same business unit.
118
Chapter 4 - Scan Configuration
Scanner Appliance VLANs and Static Routes
Attribute Description
NAME A valid name (can be empty). The name can be a maximum of
256 ASCII characters. The character : (colon) is permitted. These
characters are not permitted: , (comma), < (less than), > (greater
than), " (double quote), & (ampersand), |(pipe), = (equals).
ipv6_static or ipv6_auto Specify ipv6_static to provide a static IPv6 address. Specify
ipv6_auto to auto-configure IPv6 using SLAAC on the VLAN.
IPv6_ADDRESS A valid IPv6 address is required when ipv6_static is specified,
such as fdd1:0:1:107::500. Leave empty when ipv6_auto is
specified.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-07-09T08:46:54Z</DATETIME>
<TEXT>Virtual scanner updated successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>43463</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
119
Chapter 4 - Scan Configuration
Scanner Appliance VLANs and Static Routes
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
120
Chapter 4 - Scan Configuration
Scanner Appliance VLANs and Static Routes
<DATETIME>2014-07-09T08:49:18Z</DATETIME>
<TEXT>Virtual scanner updated successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>43463</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
...
<VLANS>
<SETTING>Enabled</SETTING>
<VLAN>
<ID>0</ID>
<NAME>vlan1</NAME>
<IP_ADDRESS>10.10.10.1</IP_ADDRESS>
<NETMASK>255.255.255.0</NETMASK>
</VLAN>
</VLANS>
<STATIC_ROUTES>
<ROUTE>
<NAME>Route1</NAME>
<IP_ADDRESS>10.10.25.0</IP_ADDRESS>
<NETMASK>255.255.255.0</NETMASK>
<GATEWAY>10.10.25.255</GATEWAY>
</ROUTE>
<ROUTE>
<NAME>Route2</NAME>
<IP_ADDRESS>10.10.26.0</IP_ADDRESS>
<NETMASK>255.255.255.0</NETMASK>
<GATEWAY>10.10.26.255</GATEWAY>
</ROUTE>
</STATIC_ROUTES>
...
121
Chapter 4 - Scan Configuration
Scanner Appliance VLANs and Static Routes
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-07-09T08:49:18Z</DATETIME>
<TEXT>Virtual scanner updated successfully</TEXT>
...
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-07-09T08:49:18Z</DATETIME>
<TEXT>Virtual scanner updated successfully</TEXT>
...
122
Chapter 4 - Scan Configuration
Option Profile Export
Export one option profile or all option profiles in the subscription to an XML file. Manager
user role is required.
Permissions - The API user must have the Manager role.
Input Parameters
Parameter Description
action=export (Required)
output_format={XML} (Optional) XML format is supported. When unspecified, output
format is XML.
option_profile_id={value} (Optional) By default all option profiles will be exported. Specify
an option profile ID and we’ll export the option profile matching
this ID only.
option_profile_title={value} (Optional) By default all option profiles will be exported. Specify
a title and we’ll export the option profile matching this title only
- exact match is required.
option_profile_type={value} (Optional) Option profile group name/type, e.g. user (for user
defined), compliance (for compliance profile), pci (for PCI
vulnerabilities profile).
Note: “option_profile_type” parameter can be specified with
“option_profile_id” or “option_profile_title”.
include_system_option_profiles (Optional) When unspecified or set to 0, system option profiles
={0|1} are not included in the output. Specify 1 to include system option
profiles in the output.
DTD
<platform API server>/api/2.0/fo/subscription/option_profile/option_profile_info.dtd
123
Chapter 4 - Scan Configuration
Option Profile Export
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/subscription/option_profi
le/option_profile_info.dtd">
<OPTION_PROFILES>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>111186</ID>
<GROUP_NAME><![CDATA[OP-SCAN]]></GROUP_NAME>
<GROUP_TYPE>user</GROUP_TYPE>
<USER_ID><![CDATA[John Doe(john_doe)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>44</SUBSCRIPTION_ID>
<IS_DEFAULT>0</IS_DEFAULT>
<IS_GLOBAL>1</IS_GLOBAL>
<IS_OFFLINE_SYNCABLE>0</IS_OFFLINE_SYNCABLE>
<UPDATE_DATE>N/A</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<PORTS>
<TCP_PORTS>
<TCP_PORTS_TYPE>full</TCP_PORTS_TYPE>
<THREE_WAY_HANDSHAKE>1</THREE_WAY_HANDSHAKE>
</TCP_PORTS>
<UDP_PORTS>
<UDP_PORTS_TYPE>none</UDP_PORTS_TYPE>
<UDP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1-1024,8080,8181</ADDITIONAL_PORTS>
</UDP_PORTS_ADDITIONAL>
</UDP_PORTS>
<AUTHORITATIVE_OPTION>1</AUTHORITATIVE_OPTION>
</PORTS>
<SCAN_DEAD_HOSTS>1</SCAN_DEAD_HOSTS>
<CLOSE_VULNERABILITIES>
<HAS_CLOSE_VULNERABILITIES>1</HAS_CLOSE_VULNERABILITIES>
<HOST_NOT_FOUND_ALIVE>7</HOST_NOT_FOUND_ALIVE>
</CLOSE_VULNERABILITIES>
<PURGE_OLD_HOST_OS_CHANGED>1</PURGE_OLD_HOST_OS_CHANGED>
<PERFORMANCE>
<PARALLEL_SCALING>1</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>Custom</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>30</EXTERNAL_SCANNERS>
124
Chapter 4 - Scan Configuration
Option Profile Export
<SCANNER_APPLIANCES>48</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>18</TOTAL_PROCESSES>
<HTTP_PROCESSES>18</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Minimum</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Minimum</PORT_SCANNING_AND_HOST_
DISCOVERY>
</PERFORMANCE>
<LOAD_BALANCER_DETECTION>1</LOAD_BALANCER_DETECTION>
<PASSWORD_BRUTE_FORCING>
<SYSTEM>
<HAS_SYSTEM>1</HAS_SYSTEM>
<SYSTEM_LEVEL>Standard</SYSTEM_LEVEL>
</SYSTEM>
<CUSTOM_LIST>
<CUSTOM>
<ID>3001</ID>
<TITLE><![CDATA[123]]></TITLE>
<TYPE>FTP</TYPE>
<LOGIN_PASSWORD><![CDATA[L:temp,P:123123123]]></LOGIN_PASSWORD>
</CUSTOM>
</CUSTOM_LIST>
</PASSWORD_BRUTE_FORCING>
<VULNERABILITY_DETECTION>
<CUSTOM_LIST>
<CUSTOM>
<ID>2094</ID>
<TITLE><![CDATA[Option Profile: Qualys Top 20
Options]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>2095</ID>
<TITLE><![CDATA[Option Profile: 2008 SANS20
Options]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>2096</ID>
<TITLE><![CDATA[Scan Report Template: High Severity
Report]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>5230</ID>
<TITLE><![CDATA[118960]]></TITLE>
</CUSTOM>
125
Chapter 4 - Scan Configuration
Option Profile Export
<CUSTOM>
<ID>87936</ID>
<TITLE><![CDATA[Bash Shellshock Detection]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87937</ID>
<TITLE><![CDATA[Heartbleed Detection]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87938</ID>
<TITLE><![CDATA[Windows Authentication Results
v.1]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87939</ID>
<TITLE><![CDATA[Unix Authentication Results
v.1]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87940</ID>
<TITLE><![CDATA[Inventory Results v.1]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87941</ID>
<TITLE><![CDATA[SSL Certificates]]></TITLE>
</CUSTOM>
</CUSTOM_LIST>
<DETECTION_INCLUDE>
<BASIC_HOST_INFO_CHECKS>1</BASIC_HOST_INFO_CHECKS>
<OVAL_CHECKS>1</OVAL_CHECKS>
</DETECTION_INCLUDE>
<DETECTION_EXCLUDE>
<CUSTOM_LIST>
<CUSTOM>
<ID>2099</ID>
<TITLE><![CDATA[DL]]></TITLE>
</CUSTOM>
</CUSTOM_LIST>
</DETECTION_EXCLUDE>
</VULNERABILITY_DETECTION>
<AUTHENTICATION><![CDATA[Windows,Unix,Oracle,Oracle
Listener,SNMP,VMware,DB2,HTTP,MySQL,Sybase]]></AUTHENTICATION>
<ADDL_CERT_DETECTION>1</ADDL_CERT_DETECTION>
<DISSOLVABLE_AGENT>
<DISSOLVABLE_AGENT_ENABLE>1</DISSOLVABLE_AGENT_ENABLE>
126
Chapter 4 - Scan Configuration
Option Profile Export
<WINDOWS_SHARE_ENUMERATION_ENABLE>1</WINDOWS_SHARE_ENUMERATION_ENA
BLE>
</DISSOLVABLE_AGENT>
<LITE_OS_SCAN>1</LITE_OS_SCAN>
<CUSTOM_HTTP_HEADER>
<VALUE>AFCD</VALUE>
</CUSTOM_HTTP_HEADER>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>1</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
<DO_NOT_OVERWRITE_OS>1</DO_NOT_OVERWRITE_OS>
</SCAN>
<MAP>
<BASIC_INFO_GATHERING_ON>netblockonly</BASIC_INFO_GATHERING_ON>
<TCP_PORTS>
<TCP_PORTS_STANDARD_SCAN>1</TCP_PORTS_STANDARD_SCAN>
<TCP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1,2,3,80</ADDITIONAL_PORTS>
</TCP_PORTS_ADDITIONAL>
</TCP_PORTS>
<UDP_PORTS>
<UDP_PORTS_STANDARD_SCAN>1</UDP_PORTS_STANDARD_SCAN>
<UDP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>4,5,6,8181</ADDITIONAL_PORTS>
</UDP_PORTS_ADDITIONAL>
</UDP_PORTS>
<MAP_OPTIONS>
<PERFORM_LIVE_HOST_SWEEP>1</PERFORM_LIVE_HOST_SWEEP>
<DISABLE_DNS_TRAFFIC>1</DISABLE_DNS_TRAFFIC>
</MAP_OPTIONS>
<MAP_PERFORMANCE>
<OVERALL_PERFORMANCE>Custom</OVERALL_PERFORMANCE>
<MAP_PARALLEL>
<EXTERNAL_SCANNERS>16</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>14</SCANNER_APPLIANCES>
<NETBLOCK_SIZE>64</NETBLOCK_SIZE>
</MAP_PARALLEL>
<PACKET_DELAY>Maximum</PACKET_DELAY>
</MAP_PERFORMANCE>
<MAP_AUTHENTICATION>VMware</MAP_AUTHENTICATION>
</MAP>
<ADDITIONAL>
<HOST_DISCOVERY>
127
Chapter 4 - Scan Configuration
Option Profile Export
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1-6,1024</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
<UDP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<BLOCK_RESOURCES>
<WATCHGUARD_DEFAULT_BLOCKED_PORTS>1</WATCHGUARD_DEFAULT_BLOCKED_PO
RTS>
<ALL_REGISTERED_IPS>1</ALL_REGISTERED_IPS>
</BLOCK_RESOURCES>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>1</IGNORE_FIREWALL_GENERATED_TC
P_RST>
<IGNORE_ALL_TCP_RST>1</IGNORE_ALL_TCP_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>1</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>1</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/subscription/option_profi
le/option_profile_info.dtd">
<OPTION_PROFILES>
128
Chapter 4 - Scan Configuration
Option Profile Export
<OPTION_PROFILE>
<BASIC_INFO>
<ID>111235</ID>
<GROUP_NAME><![CDATA[OP-COMP]]></GROUP_NAME>
<GROUP_TYPE>compliance</GROUP_TYPE>
<USER_ID><![CDATA[John Doe (john_doe)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>44</SUBSCRIPTION_ID>
<IS_GLOBAL>0</IS_GLOBAL>
<UPDATE_DATE>N/A</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<PORTS>
<TARGETED_SCAN>1</TARGETED_SCAN>
</PORTS>
<PERFORMANCE>
<PARALLEL_SCALING>0</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>Normal</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>5</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>30</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>10</TOTAL_PROCESSES>
<HTTP_PROCESSES>10</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Short</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Minimum</PORT_SCANNING_AND_HOST_
DISCOVERY>
</PERFORMANCE>
<DISSOLVABLE_AGENT>
<DISSOLVABLE_AGENT_ENABLE>1</DISSOLVABLE_AGENT_ENABLE>
<PASSWORD_AUDITING_ENABLE>
<HAS_PASSWORD_AUDITING_ENABLE>1</HAS_PASSWORD_AUDITING_ENABLE>
<CUSTOM_PASSWORD_DICTIONARY>asdf</CUSTOM_PASSWORD_DICTIONARY>
</PASSWORD_AUDITING_ENABLE>
<WINDOWS_SHARE_ENUMERATION_ENABLE>1</WINDOWS_SHARE_ENUMERATION_ENA
BLE>
<WINDOWS_DIRECTORY_SEARCH_ENABLE>1</WINDOWS_DIRECTORY_SEARCH_ENABL
E>
</DISSOLVABLE_AGENT>
<CONTROL_TYPES>
<FIM_CONTROLS_ENABLED>1</FIM_CONTROLS_ENABLED>
<CUSTOM_WMI_QUERY_CHECKS>1</CUSTOM_WMI_QUERY_CHECKS>
</CONTROL_TYPES>
<TEST_AUTHENTICATION>1</TEST_AUTHENTICATION>
129
Chapter 4 - Scan Configuration
Option Profile Export
</SCAN>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</TCP_PORTS>
<UDP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<BLOCK_RESOURCES>
<WATCHGUARD_DEFAULT_BLOCKED_PORTS>1</WATCHGUARD_DEFAULT_BLOCKED_PO
RTS>
<ALL_REGISTERED_IPS>1</ALL_REGISTERED_IPS>
</BLOCK_RESOURCES>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>1</IGNORE_FIREWALL_GENERATED_TC
P_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>1</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>1</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/subscription/option_profi
le/option_profile_info.dtd">
<OPTION_PROFILES>
<OPTION_PROFILE>
<BASIC_INFO>
130
Chapter 4 - Scan Configuration
Option Profile Export
<ID>111223</ID>
<GROUP_NAME><![CDATA[PCI-Example]]></GROUP_NAME>
<GROUP_TYPE>pci</GROUP_TYPE>
<USER_ID><![CDATA[John Doe (john_doe)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>44</SUBSCRIPTION_ID>
<IS_GLOBAL>1</IS_GLOBAL>
<IS_OFFLINE_SYNCABLE>0</IS_OFFLINE_SYNCABLE>
<UPDATE_DATE>N/A</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<SCAN_DEAD_HOSTS>1</SCAN_DEAD_HOSTS>
<CLOSE_VULNERABILITIES>
<HAS_CLOSE_VULNERABILITIES>1</HAS_CLOSE_VULNERABILITIES>
<HOST_NOT_FOUND_ALIVE>4</HOST_NOT_FOUND_ALIVE>
</CLOSE_VULNERABILITIES>
<PURGE_OLD_HOST_OS_CHANGED>1</PURGE_OLD_HOST_OS_CHANGED>
<PERFORMANCE>
<PARALLEL_SCALING>1</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>Low</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>5</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>10</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>4</TOTAL_PROCESSES>
<HTTP_PROCESSES>2</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Long</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Minimum</PORT_SCANNING_AND_HOST_
DISCOVERY>
</PERFORMANCE>
</SCAN>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1-6,1024</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
</HOST_DISCOVERY>
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
131
Chapter 4 - Scan Configuration
Option Profile Import
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/subscription/option_profile/opti
on_profile_info.dtd">
<OPTION_PROFILES>
<OPTION_PROFILE>
<...
</POLICY>
</SCAN_BY_POLICY>
</SCAN_RESTRICTION>
<DATABASE_PREFERENCE_KEY>
<MSSQL>
<DB_UDC_RESTRICTION>1</DB_UDC_RESTRICTION>
<DB_UDC_LIMIT>250</DB_UDC_LIMIT>
</MSSQL>
<ORACLE>
<DB_UDC_RESTRICTION>1</DB_UDC_RESTRICTION>
<DB_UDC_LIMIT>10</DB_UDC_LIMIT>
</ORACLE>
</DATABASE_PREFERENCE_KEY>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>0</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
...
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
132
Chapter 4 - Scan Configuration
Option Profile Import
When calling the Import Option Profile API the user needs to pass the proper XML with
Content-Type XML. This will create option profiles in that user’s subscription. All
validations are applied as in the Qualys portal UI while creating option profiles using the
Import Option Profile API.
Validations and Constraints:
1) The Option Profile DTD file is used to validate a generated/exported Option Profile XML
file.
2) An XSD file is used to validate a proper format and required elements of the option
profile XML file when importing this file.
3) While importing, any Search Lists defined for Vulnerability Detection, Custom and/or
Excluded Lists, must be created in the user’s subscription before making an Import Option
Profile call. At import time we try to match the Search List “title” to a search list title in the
user’s subscription. If a match is found the search list is used, otherwise “Complete”
Vulnerability Detection is assigned.
4) Password Brute Force Lists are not imported and will always be empty assigned,
regardless of Option Profile XML content.
5) Policies defined for the PC Scan Restriction feature are not imported and will be empty
assigned, regardless of Option Profile XML content.
Input Parameter
Parameter Description
action=import (Required)
Sample - Import option profiles in the input file into the user’s account
API request:
curl -u "USERNAME:PASSWORD" -H "content-type: text/xml"-X "POST"
--data-binary @Export_OP.xml
"https://qualysapi.qualys.com/api/2.0/fo/subscription/option_profi
le/?action=import"
133
Chapter 4 - Scan Configuration
Option Profile Import
134
Chapter 4 - Scan Configuration
Option Profile Import
<SYSTEM>
<HAS_SYSTEM>1</HAS_SYSTEM>
<SYSTEM_LEVEL>Standard</SYSTEM_LEVEL>
</SYSTEM>
<CUSTOM_LIST>
<CUSTOM>
<ID>3001</ID>
<TITLE><![CDATA[123]]></TITLE>
<TYPE>FTP</TYPE>
<LOGIN_PASSWORD><![CDATA[L:temp,P:123123123]]></LOGIN_PASSWORD>
</CUSTOM>
</CUSTOM_LIST>
</PASSWORD_BRUTE_FORCING>
<VULNERABILITY_DETECTION>
<CUSTOM_LIST>
<CUSTOM>
<ID>2094</ID>
<TITLE><![CDATA[Option Profile: Qualys Top 20
Options]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>2095</ID>
<TITLE><![CDATA[Option Profile: 2008 SANS20
Options]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>2096</ID>
<TITLE><![CDATA[Scan Report Template: High Severity
Report]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>5230</ID>
<TITLE><![CDATA[118960]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87936</ID>
<TITLE><![CDATA[Bash Shellshock Detection]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87937</ID>
<TITLE><![CDATA[Heartbleed Detection]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87938</ID>
<TITLE><![CDATA[Windows Authentication Results
v.1]]></TITLE>
135
Chapter 4 - Scan Configuration
Option Profile Import
</CUSTOM>
<CUSTOM>
<ID>87939</ID>
<TITLE><![CDATA[Unix Authentication Results
v.1]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87940</ID>
<TITLE><![CDATA[Inventory Results v.1]]></TITLE>
</CUSTOM>
<CUSTOM>
<ID>87941</ID>
<TITLE><![CDATA[SSL Certificates]]></TITLE>
</CUSTOM>
</CUSTOM_LIST>
<DETECTION_INCLUDE>
<BASIC_HOST_INFO_CHECKS>1</BASIC_HOST_INFO_CHECKS>
<OVAL_CHECKS>1</OVAL_CHECKS>
</DETECTION_INCLUDE>
<DETECTION_EXCLUDE>
<CUSTOM_LIST>
<CUSTOM>
<ID>2099</ID>
<TITLE><![CDATA[DL]]></TITLE>
</CUSTOM>
</CUSTOM_LIST>
</DETECTION_EXCLUDE>
</VULNERABILITY_DETECTION>
<AUTHENTICATION><![CDATA[Windows,Unix,Oracle,Oracle
Listener,SNMP,VMware,DB2,HTTP,MySQL,Sybase]]></AUTHENTICATION>
<ADDL_CERT_DETECTION>1</ADDL_CERT_DETECTION>
<DISSOLVABLE_AGENT>
<DISSOLVABLE_AGENT_ENABLE>1</DISSOLVABLE_AGENT_ENABLE>
<WINDOWS_SHARE_ENUMERATION_ENABLE>1</WINDOWS_SHARE_ENUMERATION_ENA
BLE>
</DISSOLVABLE_AGENT>
<LITE_OS_SCAN>1</LITE_OS_SCAN>
<CUSTOM_HTTP_HEADER>
<VALUE>AFCD</VALUE>
</CUSTOM_HTTP_HEADER>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>1</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
<DO_NOT_OVERWRITE_OS>1</DO_NOT_OVERWRITE_OS>
</SCAN>
<MAP>
136
Chapter 4 - Scan Configuration
Option Profile Import
<BASIC_INFO_GATHERING_ON>netblockonly</BASIC_INFO_GATHERING_ON>
<TCP_PORTS>
<TCP_PORTS_STANDARD_SCAN>1</TCP_PORTS_STANDARD_SCAN>
<TCP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1,2,3,80</ADDITIONAL_PORTS>
</TCP_PORTS_ADDITIONAL>
</TCP_PORTS>
<UDP_PORTS>
<UDP_PORTS_STANDARD_SCAN>1</UDP_PORTS_STANDARD_SCAN>
<UDP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>4,5,6,8181</ADDITIONAL_PORTS>
</UDP_PORTS_ADDITIONAL>
</UDP_PORTS>
<MAP_OPTIONS>
<PERFORM_LIVE_HOST_SWEEP>1</PERFORM_LIVE_HOST_SWEEP>
<DISABLE_DNS_TRAFFIC>1</DISABLE_DNS_TRAFFIC>
</MAP_OPTIONS>
<MAP_PERFORMANCE>
<OVERALL_PERFORMANCE>Custom</OVERALL_PERFORMANCE>
<MAP_PARALLEL>
<EXTERNAL_SCANNERS>16</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>14</SCANNER_APPLIANCES>
<NETBLOCK_SIZE>64</NETBLOCK_SIZE>
</MAP_PARALLEL>
<PACKET_DELAY>Medium</PACKET_DELAY>
</MAP_PERFORMANCE>
<MAP_AUTHENTICATION>VMware</MAP_AUTHENTICATION>
</MAP>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1-6,1024</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
<UDP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<BLOCK_RESOURCES>
137
Chapter 4 - Scan Configuration
Option Profiles for VM
<WATCHGUARD_DEFAULT_BLOCKED_PORTS>1</WATCHGUARD_DEFAULT_BLOCKED_PO
RTS>
<ALL_REGISTERED_IPS>1</ALL_REGISTERED_IPS>
</BLOCK_RESOURCES>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>1</IGNORE_FIREWALL_GENERATED_TC
P_RST>
<IGNORE_ALL_TCP_RST>1</IGNORE_ALL_TCP_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>1</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>1</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-04-03T11:17:43Z</DATETIME>
<TEXT>Successfully imported Option profile for the subscription
Id 76084</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>111234</KEY>
<VALUE>PCI-John</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
138
Chapter 4 - Scan Configuration
Option Profiles for VM
Input Parameters
Parameter Description
action=create (Required)
title={value} (Required) A title for easy identification.
owner={value} (Optional) The owner of the option profile(s), or the user who
created the option profile.
default={0|1} (Optional) Make this profile the default for all scans and maps.
Specify 1 to make default. There can only be one default profile
for the subscription.
global={0|1} (Optional) Share this profile with other users by making it global.
Are you a Manager? This profile will be available to all users.
Are you a Unit Manager? This profile will be available to all users
in your business unit.
Specify 1 to make global.
offline_scanner={0|1} (Optional) Specify to 1 to download this profile to your offline
scanners during the next sync.
scan_tcp_ports={none|full| (Required) We use ports to send packets to the host in order to
standard|light} determine whether the host is alive and also to do fingerprinting
for the discovery of services. Specify “full” to scan all ports,
“standard” to scan standard ports or “light” to scan fewer ports.
See Appendix B - Ports used for scanning for a list of ports
used for standard or light scan. We will scan the standard list of
ports unless you choose a different option in the profile.
scan_tcp_ports_additional= (Optional) Specify additional ports to scan (up to 12500 ports).
{port1,port2}
3_way_handshake={0|1} (Optional) Specify 1 to let the scanning engine perform a 3-way
handshake with target hosts. After a connection between the
service and the target host is established, the connection will be
closed. This option should be enabled only if you have a
configuration that does not allow an SYN packet to be followed
by an RST packet. Also, when this is enabled, TCP based OS
detection is not performed on target hosts. Without TCP based
OS detection, the service may not be able to identify the
operating system installed on target hosts and perform OS-
specific vulnerability checks
Scan
scan_udp_ports={none|full| (Required) Specify “full” to scan all ports, “standard” to scan
standard|light} standard ports or “light” to scan fewer ports. See Appendix B -
Ports used for scanning for a list of UDP ports used for standard
or light scan. We will scan the standard list of ports unless you
choose a different option in the profile.
139
Chapter 4 - Scan Configuration
Option Profiles for VM
Parameter Description
vulnerability_detection= (Required) With a "complete" scan we'll scan for all
{complete|custom|runtime} vulnerabilities (QIDs) in the KnowledgeBase applicable to each
host being scanned. Specify "custom" to limit the scan to
specified QIDs only. Then add the QIDs you want to scan. Specify
“runtime” to scan QIDs at runtime.
scan_udp_ports_additional (Optional) Specify additional ports to scan (up to 20500 ports).
={port1,port2}
authoritative_option={0|1} (Optional) Specify 1 to enable Authoritative Scan Option. By
enabling the authoritative scan option your light scan will work
like a full or standard scan. We will update the vulnerability
status for all vulnerabilities found, regardless of which ports they
were detected on.
scan_dead_hosts={0|1} (Optional) Specify 1 to enable scanning dead hosts. A dead host is
a host that is unreachable - it didn't respond to any pings. Your
scan may run longer if you choose to scan dead hosts.
close_vuln_on_dead_hosts= (Optional) Specify 1 to quickly close vulnerabilities for hosts that
{0|1} are not found alive after a set number of scans. When enabled,
we'll mark existing tickets associated with dead hosts as
Closed/Fixed and update the vulnerability status to Fixed.
not_found_alive_times= (Optional) Specify the number of times the host is not found alive
{value} after which the vulnerability should be closed. This setting is
available only when close_vuln_on_dead_hosts=1.
purge_host_data={0|1} (Optional) Specify 1 to purge host data. This option is especially
useful if you have systems that are regularly decommissioned or
replaced. By specifying this option you’re telling us you want to
purge the host if we detect a change in the host's Operating
System (OS) vendor at scan time, for example the OS changed
from Linux to Windows or Debian to Ubuntu. We will not purge
the host for an OS version change like Linux 2.8.13 to Linux 2.9.4.
external_scanners_use= (Optional) Specify the maximum number of external scanners to
{value} use for scanning perimeter assets. (This option is available when
your subscription is configured with multiple external scanners).
scan_parallel_scaling={0|1} (Optional) Specify 1 to enable parallel scaling. This setting can be
useful in subscriptions which have physical and virtual scanner
appliances with different performance characteristics (e.g., CPU,
RAM).
Specify this option to dynamically scale up the number of hosts
to scan in parallel (at scan time) to a calculated value which is
based upon the computing resources available on each
appliance. Note that the number of hosts to scan in parallel
value determines how many hosts each appliance will target
concurrently, not how many appliances will be used for the scan.
140
Chapter 4 - Scan Configuration
Option Profiles for VM
Parameter Description
scan_overall_performance= (Optional) The profile “normal” is recommended in most cases.
{high|normal|low|custom} The settings for scan_external_scanners,
scan_scanner_appliances, scan_total_process,
scan_http_process, scan_packet_delay, and scan_intensity
change as per the specified profile.
Normal - Well balanced between intensity and speed.
High - Recommended only when scanning a single IP or a small
number of IPs. Optimized for speed and shorter scan times.
Low - Recommended if responsiveness for individual hosts and
services is low. Optimized for low bandwidth network
connections and highly utilized networks. May take longer to
complete.
scan_external_scanners= (Optional) Specify the number of external scanners to be used for
{value} associated scans. This setting is available only if you have
multiple external scanners in your subscription. For example, if
you have 10 external scanners in your subscription, you can
configure this setting to any number between 1 to 10.
scan_scanner_appliances= (Optional) Specify the number of scanner appliances to scan at
{value} the same time (per scan task). Launching several concurrent
scans on the same scanner appliance has a multiplying effect on
bandwidth usage and may exceed available scanner resources.
Don't have scanner appliances? Disregard the Scanner Appliance
setting.
scan_total_process={value} (Optional) Specify the maximum number of processes to run at
the same time per host.
Note that the total number of processes includes the HTTP
processes.
scan_http_process={value} (Optional) Specify the maximum number of HTTP processes to
run at the same time.
scan_packet_delay= (Optional) Specify the delay between groups of packets sent to
{minimum|short|medium| each host during a scan. With a short delay, packets are sent
long|maximum} more frequently. With a long delay, packets are sent less
frequently.
scan_intensity={normal| (Optional) This setting determines the aggressiveness
medium|low|minimum} (parallelism) of port scanning and host
discovery at the port level. Lowering the intensity level has the
effect of serializing port scanning and host discovery. This is
useful for certain network conditions like cascading firewalls and
lower scan prioritization on the network. Tip - If you are scanning
through a firewall we recommended you reduce the intensity
level. Unauthenticated scans see more of a performance
difference using this option.
load_balancer={0|1} (Optional) Specify 1 to check each target host to determine if it's
a load balancer.
When a load balancer is detected, we determine the number of
Web servers behind it and report QID 86189 "Presence of a Load-
Balancing Device Detected" in your results.
141
Chapter 4 - Scan Configuration
Option Profiles for VM
Parameter Description
password_brute_forcing_ (Optional) How vulnerable are your hosts to password-cracking
system={minimal|limited| techniques? we'll attempt to guess the password for each
standard|exhaustive} detected login ID on each target host scanned. Specify the level
of brute forcing you prefer ("minimal" to "exhaustive").
password_brute_forcing_ (Optional) Specify titles of the login/password pairs you create
custom={value1,value2} for password brute forcing on the Qualys Cloud Platform UI.
custom_search_list_ids= (Optional) Specify ids of search lists you want to use in your scan.
{value1, value2}
custom_search_list_title= (Optional) Specify titles of search lists you want to use in your
{value1, value2} scan.
basic_host_information_ (Optional) Adds basic host information checks (hostname, OS,
checks={0|1} etc) to your Custom scans. These are already included in
Complete scans. This setting is enabled by default.
oval_checks={0|1} (Optional) Specify 1 to add a search list with QID 105186 (a
diagnostic check for OVAL).
all_qrdi_checks={0|1} (Optional) Specify 1 to scan target assets for all QRDI
vulnerabilities in your subscription, i.e. all custom vulnerability
checks defined with QRDI (Qualys Remote Detection Interface).
exclude_search_list_ids= (Optional) Specify ids of search lists you want to exclude from
{value1, value2} your scan.
authentication={value1, (Optional) Want to run authenticated scans? When you use
value2} authentication we'll perform a more in-depth assessment and
get you the most accurate results with fewer false positives.
Specify one or more technologies for the hosts you want to scan.
Be sure you've configured authentication records (under Scans >
Authentication) before running your scan.
The following options are available:
- Windows
- Unix
- Oracle
- Oracle Listener
- SNMP
- VMware
- DB2
- HTTP
- MySQL
- MongoDB
- Tomcat Server
- Palo Alto Networks Firewall
- Sybase
enable_additional_certificat (Optional) Want to detect additional certificates beyond ports?
e_detection={0|1} You need to enable authentication and then run new
vulnerability scans. Specify 1 to enable this option before
scanning and see additional certificate records (under Assets >
Certificates).
142
Chapter 4 - Scan Configuration
Option Profiles for VM
Parameter Description
enable_dissolvable_agent (Optional) Specify 1 to enable dissolvable agent. This is required
={0|1} for certain scan features like Windows Share Enumeration. How
does it work? At scan time the Agent is installed on Windows
devices to collect data, and once the scan is complete it removes
itself completely from target systems.
enable_windows_share_ (Optional) Specify 1 to use Windows Share Enumeration to find
enumeration={0|1} and report details about Windows shares that are readable by
everyone. This test is performed using QID 90635. Make sure 1)
the Dissolvable Agent is enabled, 2) QID 90635 is included in the
Vulnerability Detection section, and 3) a Windows authentication
record is defined.
enable_lite_os_scan={0|1} (Optional) Only interested in OS detection? Specify 1 to include
QID 45017 in the scan (under Vulnerability Detection).
custom_http_header= (Optional) Specify a custom value in order to drop defenses (such
{value} as logging, IPs, etc) when authorized scans are being run.
custom_http_definition_ke (Optional) Specify a custom HTTP header definition key
y={value}
custom_http_definition_ (Optional) Specify a value for the custom HTTP header definition
header={value} key defined in custom_http_definition_key.
host_alive_testing={0|1} (Optional) Specify 1 to run a quick scan to determine which of
your target hosts are alive without also performing other scan
tests. The Appendix section of your Scan Results report will list
the hosts that are alive and hosts that are not alive. You may see
some Information Gathered QIDs in the results for hosts found
alive.
not_overwrite_os={0|1} (Optional) Specify 1 if you're running a light or custom scan and
you don't want to overwrite the OS detected by a previous scan.
test_authentication={0|1} (Optional) Specify 1 to test authentication to target hosts.
Map
basic_information_gatherin (Required) Perform basic information gathering on:
g=[all|register|netblockonl All: All Hosts (hosts detected by the map),
y|none] Register: Registered Hosts (hosts in your account),
Netblockonly: Netblock Hosts (hosts added by a user to the
netblock for the target domain) or None.
map_tcp_ports_standard_ (Optional) Specify 1 to enable standard scan of TCP ports.
scan={0|1} Standard Scan includes 13 ports: 21-23, 25, 53, 80, 88, 110-111,
135, 139, 443, 445.
map_tcp_ports_additional= (Optional) Specify additional TCP ports to scan. You can specify
{value1,value2} up to 20 ports including the standard scan ports.
map_udp_ports_standard_ (Optional) Specify 1 to enable standard scan of UDP ports.
scan={0|1} Standard Scan includes 6 ports: 53, 111, 135, 137, 161, 500.
map_udp_ports_additional (Optional) Specify additional UDP ports to scan. You can specify
={value1,value2} up to 10 ports including the standard scan ports.
143
Chapter 4 - Scan Configuration
Option Profiles for VM
Parameter Description
perform_live_host_sweep= (Optional) Default setting is 1. Specify 0 to only discover devices
{0|1} using DNS discovery methods (DNS, Reverse DNS and DNS Zone
Transfer.) Active probes will not be sent. As a result, we may not
be able to detect all hosts in the netblock, and undetected hosts
will not be analyzed.
disable_dns_traffic={0|1} (Optional) Specify 1 if you want to disable DNS traffic for maps.
This is valid only when the target domain name includes one or
more netblocks, e.g. none:[10.10.10.2-10.10.10.100].
We'll perform network discovery only for the IP addresses in the
netblocks. No forward or reverse DNS lookups, DNS zone
transfers or DNS guessing/bruteforcing will be made, and DNS
information will not be included in map results.
map_overall_performance= (Optional) The profile “normal” is recommended in most cases.
{high|normal|low|custom} The settings for map_external_scanners,
map_scanner_appliances, map_netblock_size, and
map_packet_delay change as per the specified profile.
Normal - Well balanced between intensity and speed.
High - Optimized for speed. May be faster to complete but may
overload firewalls and other networking devices.
Low - Optimized for low bandwidth network connections. May
take longer to complete.
map_external_scanners= (Optional) Specify the number of external scanners for netblocks
{value} to map at the same time per scanner. This setting is available
only if you have multiple external scanners in your subscription.
For example, if you have 10 external scanners in your
subscription, you can configure this setting to any number
between 1 to 10.
map_scanner_appliances= (Optional) Specify the number of scanner appliances for
{value} netblocks to map at the same time per scanner. Launching
several concurrent scans on the same scanner appliance has a
multiplying effect on bandwidth usage and may exceed available
scanner resources. Don't have scanner appliances? Disregard the
Scanner Appliance setting.
map_netblock_size={1024 (Optional) Specify the max number of IPs per netblock being
IPs|4096 IPs|8192 IPs|16384 mapped. The netblock specified for the domain is broken into
IPs|32768 IPs|65536 IPs} smaller netblocks for processing. Each of these smaller netblocks
equals a single map process. Use this setting to define how many
IPs should be included in each process.
map_packet_delay= (Optional) This is the delay between groups of packets sent to the
{minimum|short|medium| netblocks being mapped. With a short delay, packets are sent
long|maximum} more frequently, resulting in more bandwidth utilization and a
shorter mapping time. With a long delay, packets are sent less
frequently, resulting in less bandwidth utilization and a longer
mapping time.
map_authentication= (Optional) Authentication enables the scanner to log into hosts
{VMware} at scan time to extend detection capabilities. See the online help
to learn how to configure this option.
Additional
144
Chapter 4 - Scan Configuration
Option Profiles for VM
Parameter Description
additional_tcp_ports={0|1} (Optional) Specify 1 to enable host discovery on additional TCP
ports. Default setting is 1.
additional_tcp_ports_ (Optional) Specify 1 to enable standard scan of additional TCP
standard_scan={0|1} ports. Standard Scan includes 13 ports: 21-23, 25, 53, 80, 88, 110-
111, 135, 139, 443, 445. Default setting is 1.
additional_tcp_ports_ (Optional) Specify additional TCP ports to scan. You can specify
additional={value1,value2} up to 20 ports including the standard scan ports.
additional_udp_ports={0|1} (Optional) Specify 1 to enable host discovery on additional UDP
ports. Default setting is 1.
additional_udp_ports_type= (Optional) Specify “standard” to enable standard scan of
{standard|custom} additional UDP ports. Standard Scan includes 6 ports: 53, 111,
135, 137, 161, 500. Default is “standard”.
Specify “custom” to provide a custom list of ports using
additional_udp_ports_custom.
additional_udp_ports_ (Optional) Specify additional UDP ports to scan. You can specify
custom={value1,value2} up to 10 ports including the standard scan ports.
icmp={0|1} (Optional) Specify 1 to only discover live hosts that respond to an
ICMP ping. Default setting is 1.
blocked_resources={0|1} (Optional) Specify 1 in order to add ports protected by your
firewall/IDS to prevent them from being scanned.
protected_ports={default| (Optional) Ports protected by your firewall/IDS. Specify “default”
custom} to provide a list of default blocked ports: 0-1, 111, 513-514, 2049,
4100, 6000-6005, 7100, 8000. Default setting is “default”.
Specify “custom” to provide a custom list of protected ports using
protected_ports_custom.
protected_ports_custom= (Optional) Specify a custom list of protected ports.
{value1,value2}
protected_ips={all|custom} (Optional) IP addresses and ranges protected by your
firewall/IDS. Default is “all”.
protected_ips_custom= (Optional) Specify a custom list of IP addresses and ranges
{value1,value2} protected by your firewall/IDS.
ignore_firewall_generated_ (Optional) Specify 1 to identify firewall-generated TCP RESET
tcp_rst_packets={0|1} packets and ignore them.
ignore_all_tcp_rst_packets= (Optional) Specify 1 to ignore all TCP RESET packets - firewall-
{0|1} generated and live-host-generated.
ignore_firewall_generated_ (Optional) Specify 1 to determine if TCP SYN-ACK packets are
tcp_syn_ack_packets={0|1} generated by a filtering device and ignore packets that appear to
originate from such devices.
not_send_tcp_ack_or_syn_ (Optional) Specify 1 if you do not want to send TCP ACK or SYN-
ack_packets_during_host_ ACK packets. Out of state TCP packets are not SYN packets and
discovery={0|1} do not belong to an existing TCP session.
API request:
145
Chapter 4 - Scan Configuration
Option Profiles for VM
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-26T06:40:03Z</DATETIME>
<TEXT>Option profile successfully added.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>32112</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Input Parameters
Parameter Description
action=update (Required)
id={value} (Required) The ID of the option profile.
For a list of optional parameters, see Input Parameters for Create VM Option Profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=update&title=33jj&id=25121"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/vm/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
146
Chapter 4 - Scan Configuration
Option Profiles for VM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-26T09:51:15Z</DATETIME>
<TEXT>Option profile successfully updated.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>25121</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
147
Chapter 4 - Scan Configuration
Option Profiles for VM
Input Parameters
All option profiles are fetched if no parameters are given. To fetch a specific option profile,
provide the “id” or “title” parameter with the option profile id or title of interest.
Optionally, you can filter the results by using optional parameters listed under Input
Parameters for Create VM Option Profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X GET
"action=list"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/vm/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/option_profile_info.dtd">
<OPTION_PROFILES>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>51451401</ID>
<GROUP_NAME><![CDATA[user op - 1]]></GROUP_NAME>
<GROUP_TYPE>user</GROUP_TYPE>
<USER_ID><![CDATA[John smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_DEFAULT>0</IS_DEFAULT>
<IS_GLOBAL>1</IS_GLOBAL>
<IS_OFFLINE_SYNCABLE>1</IS_OFFLINE_SYNCABLE>
<UPDATE_DATE>2018-04-10T13:39:41Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<PORTS>
<TCP_PORTS>
<TCP_PORTS_TYPE>standard</TCP_PORTS_TYPE>
<TCP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1024</ADDITIONAL_PORTS>
</TCP_PORTS_ADDITIONAL>
<THREE_WAY_HANDSHAKE>1</THREE_WAY_HANDSHAKE>
</TCP_PORTS>
148
Chapter 4 - Scan Configuration
Option Profiles for VM
<UDP_PORTS>
<UDP_PORTS_TYPE>light</UDP_PORTS_TYPE>
<UDP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>8080</ADDITIONAL_PORTS>
</UDP_PORTS_ADDITIONAL>
</UDP_PORTS>
<AUTHORITATIVE_OPTION>1</AUTHORITATIVE_OPTION>
</PORTS>
<SCAN_DEAD_HOSTS>1</SCAN_DEAD_HOSTS>
<CLOSE_VULNERABILITIES>
<HAS_CLOSE_VULNERABILITIES>1</HAS_CLOSE_VULNERABILITIES>
<HOST_NOT_FOUND_ALIVE>10</HOST_NOT_FOUND_ALIVE>
</CLOSE_VULNERABILITIES>
<PURGE_OLD_HOST_OS_CHANGED>1</PURGE_OLD_HOST_OS_CHANGED>
<PERFORMANCE>
<PARALLEL_SCALING>1</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>Normal</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>10</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>30</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>10</TOTAL_PROCESSES>
<HTTP_PROCESSES>10</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Medium</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Normal</PORT_SCANNING_AND_HOST_D
ISCOVERY>
</PERFORMANCE>
<LOAD_BALANCER_DETECTION>1</LOAD_BALANCER_DETECTION>
<PASSWORD_BRUTE_FORCING>
<SYSTEM>
<HAS_SYSTEM>1</HAS_SYSTEM>
<SYSTEM_LEVEL>Standard</SYSTEM_LEVEL>
</SYSTEM>
<CUSTOM_LIST>
<CUSTOM>
<ID>1001</ID>
<TITLE><![CDATA[ftp - 1]]></TITLE>
<TYPE>FTP</TYPE>
<LOGIN_PASSWORD><![CDATA[L:Guest,P:temp]]></LOGIN_PASSWORD>
</CUSTOM>
<CUSTOM>
149
Chapter 4 - Scan Configuration
Option Profiles for VM
<ID>1002</ID>
<TITLE><![CDATA[ssh - 1]]></TITLE>
<TYPE>SSH</TYPE>
<LOGIN_PASSWORD><![CDATA[L:Guest,P:temp]]></LOGIN_PASSWORD>
</CUSTOM>
<CUSTOM>
<ID>1003</ID>
<TITLE><![CDATA[window - 1]]></TITLE>
<TYPE>Windows</TYPE>
<LOGIN_PASSWORD><![CDATA[L:Guest,P:temp]]></LOGIN_PASSWORD>
</CUSTOM>
</CUSTOM_LIST>
</PASSWORD_BRUTE_FORCING>
<VULNERABILITY_DETECTION>
<COMPLETE><![CDATA[complete]]></COMPLETE>
<DETECTION_INCLUDE>
<BASIC_HOST_INFO_CHECKS>0</BASIC_HOST_INFO_CHECKS>
<OVAL_CHECKS>1</OVAL_CHECKS>
</DETECTION_INCLUDE>
</VULNERABILITY_DETECTION>
<AUTHENTICATION><![CDATA[Windows,Unix,Oracle,Oracle
Listener,SNMP,VMware,DB2,HTTP,MySQL,Sybase]]></AUTHENTICATION>
<ADDL_CERT_DETECTION>1</ADDL_CERT_DETECTION>
<DISSOLVABLE_AGENT>
<DISSOLVABLE_AGENT_ENABLE>1</DISSOLVABLE_AGENT_ENABLE>
<WINDOWS_SHARE_ENUMERATION_ENABLE>1</WINDOWS_SHARE_ENUMERATION_ENA
BLE>
</DISSOLVABLE_AGENT>
<LITE_OS_SCAN>1</LITE_OS_SCAN>
<CUSTOM_HTTP_HEADER>
<VALUE>sdfdsf</VALUE>
<DEFINITION_KEY>abc</DEFINITION_KEY>
<DEFINITION_VALUE>xyz</DEFINITION_VALUE>
</CUSTOM_HTTP_HEADER>
</SCAN>
<MAP>
<BASIC_INFO_GATHERING_ON>all</BASIC_INFO_GATHERING_ON>
<TCP_PORTS>
<TCP_PORTS_STANDARD_SCAN>1</TCP_PORTS_STANDARD_SCAN>
<TCP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>2</ADDITIONAL_PORTS>
</TCP_PORTS_ADDITIONAL>
150
Chapter 4 - Scan Configuration
Option Profiles for VM
</TCP_PORTS>
<UDP_PORTS>
<UDP_PORTS_STANDARD_SCAN>1</UDP_PORTS_STANDARD_SCAN>
<UDP_PORTS_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>9</ADDITIONAL_PORTS>
</UDP_PORTS_ADDITIONAL>
</UDP_PORTS>
<MAP_OPTIONS>
<PERFORM_LIVE_HOST_SWEEP>1</PERFORM_LIVE_HOST_SWEEP>
<DISABLE_DNS_TRAFFIC>1</DISABLE_DNS_TRAFFIC>
</MAP_OPTIONS>
<MAP_PERFORMANCE>
<OVERALL_PERFORMANCE>Custom</OVERALL_PERFORMANCE>
<MAP_PARALLEL>
<EXTERNAL_SCANNERS>10</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>12</SCANNER_APPLIANCES>
<NETBLOCK_SIZE>8192 IPs</NETBLOCK_SIZE>
</MAP_PARALLEL>
<PACKET_DELAY>Medium</PACKET_DELAY>
</MAP_PERFORMANCE>
<MAP_AUTHENTICATION>VMware</MAP_AUTHENTICATION>
</MAP>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1024</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
<UDP_PORTS>
<CUSTOM_PORT><![CDATA[69,111]]></CUSTOM_PORT>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<BLOCK_RESOURCES>
<WATCHGUARD_DEFAULT_BLOCKED_PORTS>1</WATCHGUARD_DEFAULT_BLOCKED_PO
RTS>
<ALL_REGISTERED_IPS>1</ALL_REGISTERED_IPS>
</BLOCK_RESOURCES>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>1</IGNORE_FIREWALL_GENERATED_TC
151
Chapter 4 - Scan Configuration
Option Profiles for VM
P_RST>
<IGNORE_ALL_TCP_RST>1</IGNORE_ALL_TCP_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>1</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>1</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
DTD
<platform API server>/api/2.0/fo/subscription/option_profile/
option_profile_info.dtd
Input Parameters
Parameter Description
action=delete (Required)
id={value} (Required) The ID of the option profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=delete&id=25121"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/vm/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-26T10:58:06Z</DATETIME>
<TEXT>Option Profile Deleted Successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>25121</VALUE>
152
Chapter 4 - Scan Configuration
Option Profiles for VM
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
153
Chapter 4 - Scan Configuration
Option Profiles for PCI
Input Parameters
Parameter Description
action=create (Required)
title={value} (Required) A title for easy identification.
owner={value} (Optional) The owner of the option profile(s), or the user who
created the option profile.
global={0|1} (Optional) Share this profile with other users by making it global.
Are you a Manager? This profile will be available to all users.
Are you a Unit Manager? This profile will be available to all users
in your business unit.
Specify 1 to make global.
offline_scanner={0|1} (Optional) Specify to 1 to download this profile to your offline
scanners during the next sync.
scan_parallel_scaling={0|1} (Optional) Specify 1 to enable parallel scaling. This setting can be
useful in subscriptions which have physical and virtual scanner
appliances with different performance characteristics (e.g., CPU,
RAM).
Specify this option to dynamically scale up the number of hosts
to scan in parallel (at scan time) to a calculated value which is
based upon the computing resources available on each
appliance. Note that the number of hosts to scan in parallel
value determines how many hosts each appliance will target
concurrently, not how many appliances will be used for the scan.
154
Chapter 4 - Scan Configuration
Option Profiles for PCI
Parameter Description
Scan
scan_overall_performance= (Optional) The profile “normal” is recommended in most cases.
{high|normal|low|custom} The settings for scan_external_scanners,
scan_scanner_appliances, scan_total_process,
scan_http_process, scan_packet_delay, and scan_intensity
change as per the specified profile.
Normal - Well balanced between intensity and speed.
High - Recommended only when scanning a single IP or a small
number of IPs. Optimized for speed and shorter scan times.
Low - Recommended if responsiveness for individual hosts and
services is low. Optimized for low bandwidth network
connections and highly utilized networks. May take longer to
complete.
scan_external_scanners= (Optional) Specify the number of external scanners to be used for
{value} associated scans. This setting is available only if you have
multiple external scanners in your subscription. For example, if
you have 10 external scanners in your subscription, you can
configure this setting to any number between 1 to 10.
scan_scanner_appliances= (Optional) Specify the number of scanner appliances to scan at
{value} the same time (per scan task). Launching several concurrent
scans on the same scanner appliance has a multiplying effect on
bandwidth usage and may exceed available scanner resources.
Don't have scanner appliances? Disregard the Scanner Appliance
setting.
scan_total_process={value} (Optional) Specify the maximum number of processes to run at
the same time per host.
Note that the total number of processes includes the HTTP
processes.
scan_http_process={value} (Optional) Specify the maximum number of HTTP processes to
run at the same time.
scan_packet_delay= (Optional) Specify the delay between groups of packets sent to
{minimum|short|medium| each host during a scan. With a short delay, packets are sent
long|maximum} more frequently. With a long delay, packets are sent less
frequently.
scan_intensity={normal| (Optional) This setting determines the aggressiveness
medium|low|minimum} (parallelism) of port scanning and host discovery at the port
level. Lowering the intensity level has the effect of serializing
port scanning and host discovery. This is useful for certain
network conditions like cascading firewalls and lower scan
prioritization on the network. Tip - If you are scanning through a
firewall we recommended you reduce the intensity level.
Unauthenticated scans see more of a performance difference
using this option.
scan_dead_hosts={0|1} (Optional) Specify 1 to enable scanning dead hosts. A dead host is
a host that is unreachable - it didn't respond to any pings. Your
scan may run longer if you choose to scan dead hosts.
155
Chapter 4 - Scan Configuration
Option Profiles for PCI
Parameter Description
close_vuln_on_dead_hosts= (Optional) Specify 1 to quickly close vulnerabilities for hosts that
{0|1} are not found alive after a set number of scans. When enabled,
we'll mark existing tickets associated with dead hosts as
Closed/Fixed and update the vulnerability status to Fixed.
not_found_alive_times= (Optional) Specify the number of times the host is not found alive
{value} after which the vulnerability should be closed. This setting is
available only when close_vuln_on_dead_hosts=1.
purge_host_data={0|1} (Optional) Specify 1 to purge host data. This option is especially
useful if you have systems that are regularly decommissioned or
replaced. By specifying this option you’re telling us you want to
purge the host if we detect a change in the host's Operating
System (OS) vendor at scan time, for example the OS changed
from Linux to Windows or Debian to Ubuntu. We will not purge
the host for an OS version change like Linux 2.8.13 to Linux 2.9.4.
Additional
additional_tcp_ports_ (Optional) Specify additional TCP ports to scan. You can specify
additional={value1,value2} up to 7 additional ports apart from the 13 standard scan ports
used by default: 21-23, 25, 53, 80, 88, 110-111, 135, 139, 443, 445.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=create&title=jp pci
333&global=1&offline_scanner=1&external_scanners_use=3&scan_parall
el_scaling=1&scan_overall_performance=high&additional_tcp_ports_ad
ditional=80,35"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pci/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-26T13:04:21Z</DATETIME>
<TEXT>Option profile successfully added.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>32113</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
156
Chapter 4 - Scan Configuration
Option Profiles for PCI
Input Parameters
Parameter Description
action=update (Required)
id={value} (Required) The ID of the option profile.
For a list of optional parameters, see Input Parameters for Create PCI Option Profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=update&id=31102&title=jp pci2"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pci/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-10T10:32:50Z</DATETIME>
<TEXT>Option profile successfully updated.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>31102</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
157
Chapter 4 - Scan Configuration
Option Profiles for PCI
Input Parameters
All option profiles are fetched if no parameters are given. To fetch a specific option profile,
provide the “id” or “title” parameter with the option profile id or title of interest.
Optionally, you can filter the results by using optional parameters listed under Input
Parameters for Create PCI Option Profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X GET
"action=list"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pci/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/option_profile_info.dtd">
<OPTION_PROFILES>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>31102</ID>
<GROUP_NAME><![CDATA[jp pci 11]]></GROUP_NAME>
<GROUP_TYPE>pci</GROUP_TYPE>
<USER_ID><![CDATA[John Smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_GLOBAL>1</IS_GLOBAL>
<IS_OFFLINE_SYNCABLE>0</IS_OFFLINE_SYNCABLE>
<UPDATE_DATE>2018-04-10T10:32:50Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<SCAN_DEAD_HOSTS>0</SCAN_DEAD_HOSTS>
<PURGE_OLD_HOST_OS_CHANGED>0</PURGE_OLD_HOST_OS_CHANGED>
<PERFORMANCE>
<PARALLEL_SCALING>0</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>high</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>20</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>40</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
158
Chapter 4 - Scan Configuration
Option Profiles for PCI
<TOTAL_PROCESSES>15</TOTAL_PROCESSES>
<HTTP_PROCESSES>15</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Short</PACKET_DELAY>
</PERFORMANCE>
</SCAN>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>80,35</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
</HOST_DISCOVERY>
</ADDITIONAL>
</OPTION_PROFILE>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>32113</ID>
<GROUP_NAME><![CDATA[jp pci 333]]></GROUP_NAME>
<GROUP_TYPE>pci</GROUP_TYPE>
<USER_ID><![CDATA[John Smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_GLOBAL>1</IS_GLOBAL>
<IS_OFFLINE_SYNCABLE>1</IS_OFFLINE_SYNCABLE>
<UPDATE_DATE>2018-04-10T10:32:50Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<SCAN_DEAD_HOSTS>0</SCAN_DEAD_HOSTS>
<PURGE_OLD_HOST_OS_CHANGED>0</PURGE_OLD_HOST_OS_CHANGED>
<PERFORMANCE>
<PARALLEL_SCALING>1</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>High</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>20</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>40</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>15</TOTAL_PROCESSES>
<HTTP_PROCESSES>15</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Short</PACKET_DELAY>
159
Chapter 4 - Scan Configuration
Option Profiles for PCI
</PERFORMANCE>
</SCAN>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>80,35</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
</HOST_DISCOVERY>
</ADDITIONAL>
</OPTION_PROFILE>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>51471401</ID>
<GROUP_NAME><![CDATA[pci op - 1]]></GROUP_NAME>
<GROUP_TYPE>pci</GROUP_TYPE>
<USER_ID><![CDATA[John Smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_GLOBAL>0</IS_GLOBAL>
<IS_OFFLINE_SYNCABLE>0</IS_OFFLINE_SYNCABLE>
<UPDATE_DATE>2018-04-10T10:32:50Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<SCAN_DEAD_HOSTS>1</SCAN_DEAD_HOSTS>
<PURGE_OLD_HOST_OS_CHANGED>0</PURGE_OLD_HOST_OS_CHANGED>
<PERFORMANCE>
<PARALLEL_SCALING>1</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>High</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>20</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>40</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>15</TOTAL_PROCESSES>
<HTTP_PROCESSES>15</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Short</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Normal</PORT_SCANNING_AND_HOST_D
ISCOVERY>
</PERFORMANCE>
</SCAN>
160
Chapter 4 - Scan Configuration
Option Profiles for PCI
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1024</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
</HOST_DISCOVERY>
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
DTD
<platform API server>/api/2.0/fo/subscription/option_profile/
option_profile_info.dtd
Input Parameters
Parameter Description
action=delete (Required)
id={value} (Required) The ID of the option profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=delete&id=51471401"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pci/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-10T10:32:50Z</DATETIME>
<TEXT>Option Profile Deleted Successfully</TEXT>
<ITEM_LIST>
161
Chapter 4 - Scan Configuration
Option Profiles for Compliance
<ITEM>
<KEY>ID</KEY>
<VALUE>51471401</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Input Parameters
Parameter Description
action=create (Required)
title={value} (Required) The title for the option profile.
owner={value} (Optional) The owner of the option profile(s), or the user who
created the option profile.
global={0|1} (Optional) Share this profile with other users by making it global.
Are you a Manager? This profile will be available to all users.
Are you a Unit Manager? This profile will be available to all users
in your business unit.
Specify 1 to make global.
scan_parallel_scaling={0|1} (Optional) Specify 1 to enable parallel scaling. This setting can be
useful in subscriptions which have physical and virtual scanner
appliances with different performance characteristics (e.g., CPU,
RAM).
Specify this option to dynamically scale up the number of hosts
to scan in parallel (at scan time) to a calculated value which is
based upon the computing resources available on each
appliance. Note that the number of hosts to scan in parallel
value determines how many hosts each appliance will target
concurrently, not how many appliances will be used for the scan.
162
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Parameter Description
Scan
scan_overall_performance= (Required) The profile “normal” is recommended in most cases.
{high|normal|low|custom} The settings for scan_external_scanners,
scan_scanner_appliances, scan_total_process,
scan_http_process, scan_packet_delay, and scan_intensity
change as per the specified profile.
Normal - Well balanced between intensity and speed.
High - Recommended only when scanning a single IP or a small
number of IPs. Optimized for speed and shorter scan times.
Low - Recommended if responsiveness for individual hosts and
services is low. Optimized for low bandwidth network
connections and highly utilized networks. May take longer to
complete.
scan_external_scanners= (Optional) Specify the number of external scanners to be used for
{value} associated scans. This setting is available only if you have
multiple external scanners in your subscription. For example, if
you have 10 external scanners in your subscription, you can
configure this setting to any number between 1 to 10.
scan_scanner_appliances= (Optional) Specify the number of scanner appliances to scan at
{value} the same time (per scan task). Launching several concurrent
scans on the same scanner appliance has a multiplying effect on
bandwidth usage and may exceed available scanner resources.
Don't have scanner appliances? Disregard the Scanner Appliance
setting.
scan_total_process={value} (Optional) Specify the maximum number of processes to run at
the same time per host.
Note that the total number of processes includes the HTTP
processes.
scan_http_process={value} (Optional) Specify the maximum number of HTTP processes to
run at the same time.
scan_packet_delay= (Optional) Specify the delay between groups of packets sent to
{minimum|short|medium| each host during a scan. With a short delay, packets are sent
long|maximum} more frequently. With a long delay, packets are sent less
frequently.
scan_intensity={normal| (Optional) This setting determines the aggressiveness
medium|low|minimum} (parallelism) of port scanning and host discovery at the port
level. Lowering the intensity level has the effect of serializing
port scanning and host discovery. This is useful for certain
network conditions like cascading firewalls and lower scan
prioritization on the network. Tip - If you are scanning through a
firewall we recommended you reduce the intensity level.
Unauthenticated scans see more of a performance difference
using this option.
163
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Parameter Description
scan_by_policy={0|1} (Optional) Specify 1 to enable scan by policy. The Scan by Policy
option allows you to restrict your scans to the controls in
specified policies. You can choose up to 20 policies, one policy at
a time. Once you've specified a policy, all controls in that policy
will be scanned including any special control types in the policy.
This is regardless of the Control Types settings in the profile.
policy_names={value1, (Optional) Specify policy names to scan by policy.
value2}
policy_ids={value1,value2} (Optional) Specify policy IDs to scan by policy.
auto_update_expected_value (Optional) Specify 1 to update the control expected value used
={0|1} for posture evaluation with the actual value returned by the
scan.
fim_controls_enabled={0|1} (Optional) Specify 1 to perform file integrity monitoring based on
user defined file integrity checks. A file integrity check is a user
defined control that checks for changes to a specific file. You
should set auto_update_expected_value=1 in order to use this
parameter.
custom_wmi_query_checks={ (Optional) Specify 1 to run Windows WMI query checks. When
0|1} enabled, WMI query checks will be performed for user defined
WMI Query Check controls.
enable_dissolvable_agent= (Optional) Specify 1 to enable dissolvable agent. This is required
{0|1} for certain scan features like Windows Share Enumeration. How
does it work? At scan time the Agent is installed on Windows
devices to collect data, and once the scan is complete it removes
itself completely from target systems.
enable_password_auditing= (Optional) Specify 1 to check for service provided password
{0|1} auditing controls (control IDs 3893, 3894 and 3895). These
controls are used to identify 1) user accounts with empty
passwords, 2) user accounts with the password equal to the user
name, and 3) user accounts with passwords equal to an entry in
a user-defined password dictionary. This setting is available only
if enable_dissolvable_agent=1.
custom_password_dictionary (Optional) Specify passwords in order to create a password
={value1,value2} dictionary. This is used when evaluating control ID 3895, which
identifies user accounts where the password is equal to an entry
in the password dictionary.
enable_windows_share_ (Optional) Specify 1 to use Windows Share Enumeration to find
enumeration={0|1} and report details about Windows shares that are readable by
everyone. This test is performed using QID 90635. Make sure 1)
the Dissolvable Agent is enabled, 2) QID 90635 is included in the
Vulnerability Detection section, and 3) a Windows authentication
record is defined.
enable_windows_directory_ (Optional) Specify 1 if you've set up Windows Directory Search
search={0|1} controls and want to include them in the scan. This custom
control allows you to search for files/directories based on various
criteria like file name and user access permissions.
164
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Parameter Description
scan_ports={standard| (Required) Specify “standard” to enable standard scan of TCP
targeted} ports. See Appendix B - Ports used for scanning for a list of ports
used for standard scan.
Specify “targeted” to perform a targeted scan.
Which ports are included in a targeted scan?
For Unix hosts, these well known ports are scanned: 22 (SSH), 23
(telnet) and 513 (rlogin). Any one of these services is sufficient for
authentication. If services (SSH, telnet, rlogin) are not running on
these well known ports for the hosts you will be scanning,
specify this option and define a custom ports list in the Unix
authentication record. Note: The actual ports scanned also
depends on the Ports setting in the Unix authentication record.
For Windows hosts, the service scans a fixed set of required
Windows ports (a service defined, internal list).
mssql_db_udc_restriction={0| (Optional) Set value to 1 if you want to specify a limit on the
1} number of rows to be returned per scan for custom MS SQL
Database checks.
mssql_db_udc_limit={value} (Optional) Provide a value to define the number of rows to be
returned per scan (default is 256).
oracle_db_udc_restriction={0| (Optional) Set value to 1 if you want to specify a limit on the
1} number of rows to be returned per scan for custom Oracle
Database checks.
oracle_db_udc_limit={value} (Optional) Provide a value to define the number of rows to be
returned per scan (default is 5000).
enable_auth_instance_disc (Optional to create or update option profile record) Specify
overy={0|1} enable_auth_instance_discovery=1 to enable auto discover
instances and system record creation for the chosen auth types.
When unspecified (enable_auth_instance_discovery=0), we will
not scan to auto discover instances. The parameters
enable_auth_instance_discovery, scan_by_policy and
include_system_auth are mutually exclusive and cannot be
specified together in the same request.
In UI, this parameter is a check box and referred to "Allow
instance discovery..." in the System Authentication Records
section in the Scan tab on the New/Edit Compliance Profile page.
auto_auth_types (Optional to create or update option profile record) Specify the
technologies for which you want to enable auto discover
instances and system record creation. The valid values are:
Apache Web Server, IBM WebSphere App Server, Jboss Server and
Tomcat Server. Multiple technologies are specified as comma
separated values. This parameter can only be specified if
enable_auth_instance_discovery=1 .
165
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Parameter Description
include_system_auth={0|1} (Optional to create or update option profile record) Specify
include_system_auth=1 if you have a system created auth record
and user created auth record for the same instance configuration
and choose which one to include for scans. When unspecified
(include_system_auth=0), user record will be selected for scan by
default.
When include_system_auth=1, one of these parameters should
be enabled: use_system_auth_on_duplicate or
use_user_auth_on_duplicate.
In UI, this parameter is a check box and referred to "Use System
Authentication Records" in the System Authentication Records
section in the Scan tab on the New/Edit Compliance Profile page.
use_system_auth_on_dupli (Optional to create or update option profile record) Specify
cate={0|1} use_system_auth_on_duplicate=1 to include system created
auth record if you have a system record and user record for the
same instance configuration.
The parameters use_system_auth_on_duplicate and
use_user_auth_on_duplicate are mutually exclusive and can
only be specified if "include_system_auth=1".
use_user_auth_on_duplicat (Optional to create or update option profile record) Specify
e={0|1} use_user_auth_on_duplicate=1 to include user created
authentication record if you have a system record and user
record for the same instance.
The parameters use_system_auth_on_duplicate and
use_user_auth_on_duplicate are mutually exclusive and can
only be specified if "include_system_auth=1".
Additional
additional_tcp_ports={0|1} (Optional) Specify 1 to enable host discovery on additional TCP
ports. Default setting is 1.
additional_tcp_ports_ (Optional) Specify 1 to enable standard scan of additional TCP
standard_scan={0|1} ports. Standard Scan includes 13 ports: 21-23, 25, 53, 80, 88, 110-
111, 135, 139, 443, 445. Default setting is 1.
additional_tcp_ports_ (Optional) Specify additional TCP ports to scan. You can specify
additional={value1,value2} up to 20 ports including the standard scan ports.
additional_udp_ports={0|1} (Optional) Specify 1 to enable host discovery on additional UDP
ports. Default setting is 1.
additional_udp_ports_type= (Optional) Specify “standard” to enable standard scan of
{standard|custom} additional UDP ports. Standard Scan includes 6 ports: 53, 111,
135, 137, 161, 500. Default is “standard”.
Specify “custom” to provide a custom list of ports using
additional_udp_ports_custom.
additional_udp_ports_ (Optional) Specify additional UDP ports to scan. You can specify
custom={value1,value2} up to 10 ports including the standard scan ports.
icmp={0|1} (Optional) Specify 1 to only discover live hosts that respond to an
ICMP ping. Default setting is 1.
166
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Parameter Description
blocked_resources={0|1} (Optional) Specify 1 in order to add ports protected by your
firewall/IDS to prevent them from being scanned.
protected_ports={default| (Optional) Ports protected by your firewall/IDS. Specify “default”
custom} to provide a list of default blocked ports: 0-1, 111, 513-514, 2049,
4100, 6000-6005, 7100, 8000. Default setting is “default”.
Specify custom to provide a custom list of protected ports using
protected_ports_custom.
protected_ports_custom= (Optional) Specify a custom list of protected ports.
{value1,value2}
protected_ips={all|custom} (Optional) IP addresses and ranges protected by your
firewall/IDS. Default is “all”.
protected_ips_custom= (Optional) Specify a custom list of IP addresses and ranges
{value1,value2} protected by your firewall/IDS.
ignore_rst_packets={0|1} (Optional) Specify 1 to ignore all TCP RESET packets - firewall-
generated and live-host-generated.
ignore_firewall_generated_ (Optional) Specify 1 to determine if TCP SYN-ACK packets are
syn_ack_packets={0|1} generated by a filtering device and ignore packets that appear to
originate from such devices.
not_send_ack_or_syn_ack_ (Optional) Specify 1 if you do not want to send TCP ACK or SYN-
packets_during_host_ ACK packets. Out of state TCP packets are not SYN packets and
discovery={0|1} do not belong to an existing TCP session.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=create&title=pcjp&global=1&scan_parallel_scaling=1&scan_ov
erall_performance=high&scan_by_policy=1&policy_names=jp2&auto_upda
te_expected_value=1&scan_ports=standard&additional_tcp_ports=1¬
_send_ack_or_syn_ack_packets_during_host_discovery=1"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pc/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-10T11:10:36Z</DATETIME>
<TEXT>Compliance Option profile successfully added.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>39044</VALUE>
</ITEM>
167
Chapter 4 - Scan Configuration
Option Profiles for Compliance
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-05-20T19:16:41Z</DATETIME>
<TEXT>Compliance Option profile successfully added.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>1710286</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
168
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Input Parameters
Parameter Description
action=update (Required)
id={value} (Required) The ID of the option profile.
For a list of optional parameters, see Input Parameters for Create PC Option Profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=update&title=pc-jp&id=51491401"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pc/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-10T11:10:36Z</DATETIME>
<TEXT>Compliance Option profile successfully updated.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>51491401</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
169
Chapter 4 - Scan Configuration
Option Profiles for Compliance
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-05-20T06:45:00Z</DATETIME>
<TEXT>Compliance Option profile successfully updated.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>1709710</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
170
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Input Parameters
All option profiles are fetched if no parameters are given. To fetch a specific option profile,
provide the “id” or “title” parameter with the option profile id or title of interest.
Optionally, you can filter the results by using optional parameters listed under Input
Parameters for Create PC Option Profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X GET
"action=list"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pc/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/option_profile_info.dtd">
<OPTION_PROFILES>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>19026</ID>
<GROUP_NAME><![CDATA[Initial PC Options 2]]></GROUP_NAME>
<GROUP_TYPE>compliance</GROUP_TYPE>
<USER_ID><![CDATA[John Smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_GLOBAL>1</IS_GLOBAL>
<UPDATE_DATE>2018-04-10T11:10:36Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<PORTS>
<TARGETED_SCAN>1</TARGETED_SCAN>
</PORTS>
<PERFORMANCE>
<PARALLEL_SCALING>0</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>Normal</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>10</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>30</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
171
Chapter 4 - Scan Configuration
Option Profiles for Compliance
<TOTAL_PROCESSES>10</TOTAL_PROCESSES>
<HTTP_PROCESSES>10</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Medium</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Normal</PORT_SCANNING_AND_HOST_D
ISCOVERY>
</PERFORMANCE>
<DISSOLVABLE_AGENT>
<DISSOLVABLE_AGENT_ENABLE>0</DISSOLVABLE_AGENT_ENABLE>
<PASSWORD_AUDITING_ENABLE>
<HAS_PASSWORD_AUDITING_ENABLE>0</HAS_PASSWORD_AUDITING_ENABLE>
</PASSWORD_AUDITING_ENABLE>
<WINDOWS_SHARE_ENUMERATION_ENABLE>0</WINDOWS_SHARE_ENUMERATION_ENA
BLE>
<WINDOWS_DIRECTORY_SEARCH_ENABLE>0</WINDOWS_DIRECTORY_SEARCH_ENABL
E>
</DISSOLVABLE_AGENT>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>1</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
<CONTROL_TYPES>
<FIM_CONTROLS_ENABLED>0</FIM_CONTROLS_ENABLED>
<CUSTOM_WMI_QUERY_CHECKS>0</CUSTOM_WMI_QUERY_CHECKS>
</CONTROL_TYPES>
</SCAN>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</TCP_PORTS>
<UDP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>0</IGNORE_FIREWALL_GENERATED_TC
P_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>0</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
172
Chapter 4 - Scan Configuration
Option Profiles for Compliance
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>0</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>31118</ID>
<GROUP_NAME><![CDATA[pc 55]]></GROUP_NAME>
<GROUP_TYPE>compliance</GROUP_TYPE>
<USER_ID><![CDATA[John Smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_GLOBAL>0</IS_GLOBAL>
<UPDATE_DATE>2018-04-10T11:10:36Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<PORTS>
<TARGETED_SCAN>1</TARGETED_SCAN>
</PORTS>
<PERFORMANCE>
<PARALLEL_SCALING>0</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>High</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>20</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>40</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>15</TOTAL_PROCESSES>
<HTTP_PROCESSES>15</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Short</PACKET_DELAY>
</PERFORMANCE>
<SCAN_RESTRICTION>
<SCAN_BY_POLICY>
<POLICY>
<ID>10472</ID>
<TITLE><![CDATA[jp]]></TITLE>
</POLICY>
</SCAN_BY_POLICY>
</SCAN_RESTRICTION>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>1</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
</SCAN>
173
Chapter 4 - Scan Configuration
Option Profiles for Compliance
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>80,35</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
<UDP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<BLOCK_RESOURCES>
<WATCHGUARD_DEFAULT_BLOCKED_PORTS>1</WATCHGUARD_DEFAULT_BLOCKED_PO
RTS>
<ALL_REGISTERED_IPS>1</ALL_REGISTERED_IPS>
</BLOCK_RESOURCES>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>1</IGNORE_FIREWALL_GENERATED_TC
P_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>1</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>1</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>51481401</ID>
<GROUP_NAME><![CDATA[pc op - 1]]></GROUP_NAME>
<GROUP_TYPE>compliance</GROUP_TYPE>
<USER_ID><![CDATA[John Smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_GLOBAL>0</IS_GLOBAL>
<UPDATE_DATE>2018-04-10T11:10:36Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<PORTS>
174
Chapter 4 - Scan Configuration
Option Profiles for Compliance
<TARGETED_SCAN>1</TARGETED_SCAN>
</PORTS>
<PERFORMANCE>
<PARALLEL_SCALING>1</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>High</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>20</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>40</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>15</TOTAL_PROCESSES>
<HTTP_PROCESSES>15</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Short</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Normal</PORT_SCANNING_AND_HOST_D
ISCOVERY>
</PERFORMANCE>
<SCAN_RESTRICTION>
<SCAN_BY_POLICY>
<POLICY>
<ID>14487</ID>
<TITLE><![CDATA[jp2]]></TITLE>
</POLICY>
</SCAN_BY_POLICY>
</SCAN_RESTRICTION>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>0</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
</SCAN>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
<TCP_ADDITIONAL>
<HAS_ADDITIONAL>1</HAS_ADDITIONAL>
<ADDITIONAL_PORTS>1</ADDITIONAL_PORTS>
</TCP_ADDITIONAL>
</TCP_PORTS>
<UDP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<BLOCK_RESOURCES>
175
Chapter 4 - Scan Configuration
Option Profiles for Compliance
<WATCHGUARD_DEFAULT_BLOCKED_PORTS>1</WATCHGUARD_DEFAULT_BLOCKED_PO
RTS>
<ALL_REGISTERED_IPS>1</ALL_REGISTERED_IPS>
</BLOCK_RESOURCES>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>1</IGNORE_FIREWALL_GENERATED_TC
P_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>1</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>1</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>51491401</ID>
<GROUP_NAME><![CDATA[pc op - 2]]></GROUP_NAME>
<GROUP_TYPE>compliance</GROUP_TYPE>
<USER_ID><![CDATA[John Smith (jsmith_ap)]]></USER_ID>
<UNIT_ID>0</UNIT_ID>
<SUBSCRIPTION_ID>10421401</SUBSCRIPTION_ID>
<IS_GLOBAL>0</IS_GLOBAL>
<UPDATE_DATE>2018-04-10T11:10:36Z</UPDATE_DATE>
</BASIC_INFO>
<SCAN>
<PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</PORTS>
<PERFORMANCE>
<PARALLEL_SCALING>0</PARALLEL_SCALING>
<OVERALL_PERFORMANCE>Normal</OVERALL_PERFORMANCE>
<HOSTS_TO_SCAN>
<EXTERNAL_SCANNERS>10</EXTERNAL_SCANNERS>
<SCANNER_APPLIANCES>30</SCANNER_APPLIANCES>
</HOSTS_TO_SCAN>
<PROCESSES_TO_RUN>
<TOTAL_PROCESSES>10</TOTAL_PROCESSES>
<HTTP_PROCESSES>10</HTTP_PROCESSES>
</PROCESSES_TO_RUN>
<PACKET_DELAY>Medium</PACKET_DELAY>
<PORT_SCANNING_AND_HOST_DISCOVERY>Normal</PORT_SCANNING_AND_HOST_D
176
Chapter 4 - Scan Configuration
Option Profiles for Compliance
ISCOVERY>
</PERFORMANCE>
<SCAN_RESTRICTION>
<SCAN_BY_POLICY>
<POLICY>
<ID>14661401</ID>
<TITLE><![CDATA[policy - 2]]></TITLE>
</POLICY>
<POLICY>
<ID>14651401</ID>
<TITLE><![CDATA[policy - 1]]></TITLE>
</POLICY>
</SCAN_BY_POLICY>
</SCAN_RESTRICTION>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>0</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
</SCAN>
<ADDITIONAL>
<HOST_DISCOVERY>
<TCP_PORTS>
<STANDARD_SCAN>1</STANDARD_SCAN>
</TCP_PORTS>
<UDP_PORTS>
<CUSTOM_PORT><![CDATA[37,53,68,69,111]]></CUSTOM_PORT>
</UDP_PORTS>
<ICMP>1</ICMP>
</HOST_DISCOVERY>
<BLOCK_RESOURCES>
<CUSTOM_PORT_LIST><![CDATA[111]]></CUSTOM_PORT_LIST>
<CUSTOM_IP_LIST><![CDATA[10.10.10.6]]></CUSTOM_IP_LIST>
</BLOCK_RESOURCES>
<PACKET_OPTIONS>
<IGNORE_FIREWALL_GENERATED_TCP_RST>0</IGNORE_FIREWALL_GENERATED_TC
P_RST>
<IGNORE_FIREWALL_GENERATED_TCP_SYN_ACK>0</IGNORE_FIREWALL_GENERATE
D_TCP_SYN_ACK>
<NOT_SEND_TCP_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>0</NOT_SEND_TCP
_ACK_OR_SYN_ACK_DURING_HOST_DISCOVERY>
</PACKET_OPTIONS>
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
177
Chapter 4 - Scan Configuration
Option Profiles for Compliance
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE OPTION_PROFILES SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/subscription/option_profile/opti
on_profile_info.dtd">
<OPTION_PROFILES>
<OPTION_PROFILE>
<BASIC_INFO>
<ID>1710150</ID>
...
</SCAN_BY_POLICY>
</SCAN_RESTRICTION>
<DATABASE_PREFERENCE_KEY>
<MSSQL>
<DB_UDC_RESTRICTION>1</DB_UDC_RESTRICTION>
<DB_UDC_LIMIT>250</DB_UDC_LIMIT>
</MSSQL>
<ORACLE>
<DB_UDC_RESTRICTION>1</DB_UDC_RESTRICTION>
<DB_UDC_LIMIT>10</DB_UDC_LIMIT>
</ORACLE>
</DATABASE_PREFERENCE_KEY>
<FILE_INTEGRITY_MONITORING>
<AUTO_UPDATE_EXPECTED_VALUE>0</AUTO_UPDATE_EXPECTED_VALUE>
</FILE_INTEGRITY_MONITORING>
</SCAN>
...
</ADDITIONAL>
</OPTION_PROFILE>
</OPTION_PROFILES>
DTD
<platform API
server>/api/2.0/fo/subscription/option_profile/option_profile_info.dtd
178
Chapter 4 - Scan Configuration
Option Profiles for Compliance
Input Parameters
Parameter Description
action=delete (Required)
id={value} (Required) The ID of the option profile.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=delete&id=51491401"
"http://qualysapi.qualys.com/api/2.0/fo/subscription/option_profil
e/pc/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-10T11:10:36Z</DATETIME>
<TEXT>Option Profile Deleted Successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>51491401</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
179
Chapter 4 - Scan Configuration
KnowledgeBase
KnowledgeBase
/api/2.0/fo/knowledge_base/vuln/?action=list
[GET] [POST]
Input Parameters
Several optional input parameters may be specified. When unspecified, the XML output
includes all vulnerabilities in the KnowledgeBase, showing basic details for each
vulnerability. Several optional parameters allow you specify filters. When filter
parameters are specified, these parameters are ANDed by the service to filter the data
from the output.
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters (names
and values) in the XML output. When unspecified, parameters
are not included in the XML output. Specify 1 to view parameters
in the XML output.
details={Basic|All|None} (Optional) Show the requested amount of information for each
vulnerability in the XML output. A valid value is: Basic (default),
All, or None. Basic includes basic elements plus CVSS Base and
Temporal scores. All includes all vulnerability details, including
the Basic details.
180
Chapter 4 - Scan Configuration
KnowledgeBase
Parameter Description
ids={value} (Optional) Used to filter the XML output to include only
vulnerabilities that have QID numbers matching the QID
numbers you specify.
id_min={value} (Optional) Used to filter the XML output to show only
vulnerabilities that have a QID number greater than or equal to
a QID number you specify.
id_max={value} (Optional) Used to filter the XML output to show only
vulnerabilities that have a QID number less than or equal to a
QID number you specify.
is_patchable={0|1} (Optional) Used to filter the XML output to show only
vulnerabilities that are patchable or not patchable. A
vulnerability is considered patchable when a patch exists for it.
When 1 is specified, only vulnerabilities that are patchable will
be included in the output. When 0 is specified, only
vulnerabilities that are not patchable will be included in the
output. When unspecified, patchable and unpatchable
vulnerabilities will be included in the output.
last_modified_after={date} (Optional) Used to filter the XML output to show only
vulnerabilities last modified after a certain date and time. When
specified vulnerabilities last modified by a user or by the service
will be shown. The date/time is specified in YYYY-MM-
DD[THH:MM:SSZ] format (UTC/GMT).
last_modified_before={date} (Optional) Used to filter the XML output to show only
vulnerabilities last modified before a certain date and time.
When specified vulnerabilities last modified by a user or by the
service will be shown. The date/time is specified in YYYY-MM-
DD[THH:MM:SSZ] format (UTC/GMT).
last_modified_by_user_after={date}
(Optional) Used to filter the XML output to show only
vulnerabilities last modified by a user after a certain date and
time. The date/time is specified in YYYY-MM-DD[THH:MM:SSZ]
format (UTC/GMT).
last_modified_by_user_before={date}
(Optional) Used to filter the XML output to show only
vulnerabilities last modified by a user before a certain date and
time. The date/time is specified in YYYY-MM-DD[THH:MM:SSZ]
format (UTC/GMT).
last_modified_by_service_after={date}
(Optional) Used to filter the XML output to show only
vulnerabilities last modified by the service after a certain date
and time. The date/time is specified in YYYY-MM-
DD[THH:MM:SSZ] format (UTC/GMT).
181
Chapter 4 - Scan Configuration
KnowledgeBase
Parameter Description
last_modified_by_service_before={date}
(Optional) Used to filter the XML output to show only
vulnerabilities last modified by the service before a certain date
and time. The date/time is specified in YYYY-MM-
DD[THH:MM:SSZ] format (UTC/GMT).
published_after={date} (Optional) Used to filter the XML output to show only
vulnerabilities published after a certain date and time. The
date/time is specified in YYYY-MM-DD[THH:MM:SSZ] format
(UTC/GMT).
published_before={date} (Optional) Used to filter the XML output to show only
vulnerabilities published before a certain date and time. The
date/time is specified in YYYY-MM-DD[THH:MM:SSZ] format
(UTC/GMT).
discovery_method={value} (Optional) Used to filter the XML output to show only
vulnerabilities assigned a certain discovery method. A valid
value is: Remote, Authenticated, RemoteOnly,
AuthenticatedOnly, or RemoteAndAuthenticated.
182
Chapter 4 - Scan Configuration
KnowledgeBase
Samples
These sample requests work on Qualys US Platform 1 where the FQDN in the API server
URL is qualysapi.qualys.com. Please be sure to replace the FQDN with the proper API
server URL for your platform. For a partner platform, use the URL for your @customer
platform API server.
Sample 1 - Request all vulnerabilities in the KnowledgeBase showing basic details:
curl -u "user:password" -H "X-Requested-With: Curl" -X "POST"
-d "action=list"
"https://qualysapi.qualys.com/api/2.0/fo/knowledge_base/vuln/" >
output.txt
Sample 2 - Request patchable vulnerabilities that have QIDs 1-200 showing all details:
curl -u "user:password" -H "X-Requested-With: Curl" -X "POST"
-d "action=list&ids=1-200&is_patchable=1&details=All"
"https://qualysapi.qualys.com/api/2.0/fo/knowledge_base/vuln/" >
output.txt
Sample 3 - Request vulnerabilites that were last modified by the service after July 20, 2011
and that have the “remote and authenticated” discovery method:
curl -u "user:password" -H "X-Requested-With: Curl" -X "POST"
-d "action=list&last_modified_by_service_after=2011-07-20
&discovery_method=RemoteAndAuthenticated"
"https://qualysapi.qualys.com/api/2.0/fo/knowledge_base/vuln/" >
output.txt
DTD
<platform API server>/api/2.0/fo/knowledge_base/vuln/
knowledge_base_vuln_list_output.dtd
183
Chapter 4 - Scan Configuration
Editing Vulnerabilities
Editing Vulnerabilities
/api/2.0/fo/knowledge_base/vuln/
[POST]
Edit, reset and list the edited vulnerabilities in the Qualys Vulnerability KnowledgeBase.
Permissions - Managers have permissions to edit vulnerabilities and make API requests to
edit a vulnerability, reset a vulnerability and list customized vulnerabilities.
Edit a vulnerability
You can change the severity level and/or add comments to Threat, Impact or Solution.
Providing at least one optional parameter is mandatory.
Parameter Description
action=edit (Required) POST method is required
qid={value} (Required) QID of the vulnerability to be edited.
severity={value} (Optional) Severity level between 1 to 5.
Changing the severity level of a vulnerability impacts how the
vulnerability appears in reports and how it is eventually
prioritized for remediation.
For example, by changing a vulnerability from a severity 2 to a
severity 5, remediation tickets for the vulnerability could have a
higher priority and shorter deadline for resolution.
disable={0|1} (Optional) Specify 1 to disable the vulnerability. Default is 0.
When you disable a vulnerability it is globally filtered out from
all hosts in all scan reports. The vulnerability is also filtered from
host information, asset search results and your dashboard. You
may include disabled vulnerabilities in scan reports by changing
report filter settings.
threat_comment (Optional) Threat comments in plain text.
impact_comment (Optional) Impact comments in plain text.
solution_comment (Optional) Solution comments in plain text.
Comments added for Threat, Impact, or Solution are appended to the service-provided
descriptions in the vulnerability details.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=edit&impact_comment=testimpact&qid=27014"
"https://qualysapi.qualys.com/api/2.0/fo/knowledge_base/vuln/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
184
Chapter 4 - Scan Configuration
Editing Vulnerabilities
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-03-02T08:51:59Z</DATETIME>
<TEXT>Custom Vuln Data has been updated successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>qid</KEY>
<VALUE>27014</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Reset a vulnerability
You can change the vulnerability settings back to original.
Parameter Description
action=reset (Required) POST method is required
qid={value} (Required) QID of the vulnerability to be reset.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=reset&qid=27014"
"https://qualysapi.qualys.com/api/2.0/fo/knowledge_base/vuln/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-03-02T08:55:11Z</DATETIME>
<TEXT>Custom Vuln Data has been reset successfully</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
185
Chapter 4 - Scan Configuration
Editing Vulnerabilities
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl" -X POST
"action=custom"
"https://qualysapi.qualys.com/api/2.0/fo/knowledge_base/vuln/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KB_CUSTOM_VULN_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/knowledge_base/vuln/kb_cu
stom_vuln_list_output.dtd">
<KB_CUSTOM_VULN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-03-02T08:47:52Z</DATETIME>
<CUSTOM_VULN_LIST>
<CUSTOM_VULN_DATA>
<QID>
<![CDATA[27014]]>
</QID>
<SEVERITY_LEVEL>5</SEVERITY_LEVEL>
<ORIGINAL_SEVERITY_LEVEL>5</ORIGINAL_SEVERITY_LEVEL>
<IS_DISABLED>1</IS_DISABLED>
<UPDATED_DATETIME>
<![CDATA[2017-03-02T05:58:40Z]]>
</UPDATED_DATETIME>
<UPDATED_BY>
<![CDATA[mr_md]]>
</UPDATED_BY>
<THREAT_COMMENT>
<![CDATA[threat123]]>
</THREAT_COMMENT>
<IMPACT_COMMENT>
<![CDATA[impact123]]>
</IMPACT_COMMENT>
<SOLUTION_COMMENT>
<![CDATA[solution123]]>
</SOLUTION_COMMENT>
</CUSTOM_VULN_DATA>
</CUSTOM_VULN_LIST>
</RESPONSE>
</KB_CUSTOM_VULN_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/knowledge_base/vuln/kb_custom_vuln_list_output.dtd
186
Chapter 4 - Scan Configuration
Static Search Lists
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE STATIC_SEARCH_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/qid/search_list/static/st
atic_list_output.dtd">
<STATIC_SEARCH_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-06-06T06:20:03Z</DATETIME>
<STATIC_LISTS>
<STATIC_LIST>
<ID>381</ID>
<TITLE><![CDATA[static search list]]></TITLE>
<GLOBAL>Yes</GLOBAL>
<OWNER>acme_tb</OWNER>
<CREATED><![CDATA[06/01/2018 at 15:18:42
(GMT+0530)]]></CREATED>
187
Chapter 4 - Scan Configuration
Static Search Lists
<MODIFIED_BY>acme_tb</MODIFIED_BY>
<MODIFIED><![CDATA[06/02/2018 at 15:18:42
(GMT+0530)]]></MODIFIED>
<QIDS>
<QID>1000<QID>
<QID>1001<QID>
</QIDS>
<!-- This list is used in the following option profiles //-
->
<OPTION_PROFILES>
<OPTION_PROFILE>
<ID>135<ID>
<TITLE><![CDATA[Initial Options]]></TITLE>
<OPTION_PROFILE>
</OPTION_PROFILES>
<!-- This list is used in the following report templates
//-->
<REPORT_TEMPLATES>
<REPORT_TEMPLATE>
<ID>256<ID>
<TITLE><![CDATA[Scan Report Template]]></TITLE>
<REPORT_TEMPLATE>
</REPORT_TEMPLATES>
<!-- This list is used in the following remediation
policies. //-->
<REMEDIATION_POLICIES>
<REMEDIATION_POLICY>
<ID>655<ID>
<TITLE><![CDATA[Remediation Policy 1]]></TITLE>
<REMEDIATION_POLICY>
</REMEDIATION_POLICIES>
<!-- This search list is associated with following
distribution groups. //-->
<DISTRIBUTION_GROUPS>
<DISTRIBUTION_GROUP>
<NAME><![CDATA[All]]></NAME>
<DISTRIBUTION_GROUP>
</DISTRIBUTION_GROUPS>
<COMMENTS><![CDATA[This is my first comment for this
list]]></COMMENTS>
</STATIC_LIST>
</STATIC_LISTS>
</RESPONSE>
</SEARCH_LIST_OUTPUT>
188
Chapter 4 - Scan Configuration
Static Search Lists
DTD
<platform API server>/api/2.0/fo/qid/search_list/static/static_list_output.dtd
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2015-09-01T21:32:40Z</DATETIME>
<TEXT>New search list created successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
189
Chapter 4 - Scan Configuration
Static Search Lists
Parameter Description
action=update (Required)
echo_request={0|1} (Optional) Specify 1 to show input parameters in XML output.
id={id} (Required) The ID of the search list you want to update.
title={value} (Optional) The search list title. Maximum is 256 characters (ascii).
global={0|1} (Optional) Specify 1 to make this a global search list.
qids=(num1, num2...} (Optional) QIDs/ranges to include in the search list. Multiple
entries are comma separated.
***QIDs specified will replace all existing ones defined for the
search list, if any.
qids cannot be specified with add_qids or remove_qids in the
same request.
add_qids=(num1, num2...} (Optional) QIDs/ranges you want to add to the existing ones
defined for the search list. When the same QIDs are passed using
add_qids and remove_qids in the same request, the QIDs are
added to the list.
add_qids cannot be specified with qids in the same request.
remove_qids=(num1, num2...} (Optional) QIDs/ranges you want to remove the existing ones
defined for the search list. When the same QIDs are passed using
add_qids and remove_qids in the same request, the QIDs are
added to the list.
remove_qids cannot be specified with qids in the same request.
comments={value} (Optional) User defined comments.
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2015-09-01T21:32:40Z</DATETIME>
<TEXT>Search list updated successfully</TEXT>
<ITEM_LIST>
190
Chapter 4 - Scan Configuration
Static Search Lists
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2015-09-01T21:32:40Z</DATETIME>
<TEXT>search list deleted successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
191
Chapter 4 - Scan Configuration
Dynamic Search Lists
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE DYNAMIC_SEARCH_LIST_OUTPUT SYSTEM
192
Chapter 4 - Scan Configuration
Dynamic Search Lists
"https://qualysapi.qualys.com/api/2.0/fo/qid/search_list/dynamic/d
ynamic_list_output.dtd">
<SEARCH_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2015-01-06T06:20:03Z</DATETIME>
<DYNAMIC_LISTS>
<DYNAMIC_LIST>
<ID>381</ID>
<TITLE><![CDATA[static search list]]></TITLE>
<GLOBAL>Yes</GLOBAL>
<OWNER>acme_tb</OWNER>
<CREATED><![CDATA[07/27/2015 at 15:18:42
(GMT+0530)]]></CREATED>
<MODIFIED_BY>acme_tb</MODIFIED_BY>
<MODIFIED><![CDATA[07/27/2015 at 15:18:42
(GMT+0530)]]></MODIFIED>
<QIDS>
<QID>1000<QID>
<QID>1001<QID>
</QIDS>
<CRITERIA>
<VULNERABILITY_TITLE><![CDATA[NOT
Title]]></VULNERABILITY_TITLE>
<DISCOVERY_METHOD><![CDATA[Authenticated
Only]]></DISCOVERY_METHOD>
<AUTHENTICATION_TYPE><![CDATA[HTTP, Oracle,
Unix]]></AUTHENTICATION_TYPE>
<USER_CONFIGURATION><![CDATA[Disabled,
Edited]]></USER_CONFIGURATION>
<CATEGORY><![CDATA[NOT Backdoors and trojan horses, DNS
and BIND]]> </CATEGORY>
<CONFIRMED_SEVERITY><![CDATA[1,
2]]></CONFIRMED_SEVERITY>
<POTENTIAL_SEVERITY><![CDATA[2,
3]]></POTENTIAL_SEVERITY>
<INFORMATION_SEVERITY><![CDATA[4,
5]]></INFORMATION_SEVERITY>
<VENDOR><![CDATA[NOT 2brightsparks,3com,4d]]></VENDOR>
<PRODUCT><![CDATA[NOT .net_framework]]></PRODUCT>
<CVSS_BASE_SCORE><![CDATA[2]]></CVSS_BASE_SCORE>
<CVSS_TEMPORAL_SCORE><![CDATA[3]]></CVSS_TEMPORAL_SCORE>
<CVSS_ACCESS_VECTOR><![CDATA[Adjacent
Network]]></CVSS_ACCESS_VECTOR>
<PATCH_AVAILABLE><![CDATA[Yes, No]]></PATCH_AVAILABLE>
<VIRTUAL_PATCH_AVAILABLE><![CDATA[Yes]]></VIRTUAL_PATCH_AVAILABLE>
193
Chapter 4 - Scan Configuration
Dynamic Search Lists
<CVE_ID><![CDATA[NOT CVE]]></CVE_ID>
<EXPLOITABILITY><![CDATA[ExploitKits, Immunity -
Dsquare]]> </EXPLOITABILITY>
<ASSOCIATED_MALWARE><![CDATA[Trend
Micro]]></ASSOCIATED_MALWARE>
<VENDOR_REFERENCE><![CDATA[NOT
Linux]]></VENDOR_REFERENCE>
<BUGTRAQ_ID><![CDATA[NOT 15656]]></BUGTRAQ_ID>
<VULNERABILITY_DETAILS><![CDATA[details]]></VULNERABILITY_DETAILS>
<COMPLIANCE_DETAILS><![CDATA[details]]></COMPLIANCE_DETAILS>
<COMPLIANCE_TYPE><![CDATA[PCI, CobIT, HIPAA, GLBA,
SOX]]></COMPLIANCE_TYPE>
<QUALYS_TOP_20><![CDATA[Top Internal 10, Top External
10]]></QUALYS_TOP_20>
<OTHER><![CDATA[Not exploitable due to configuration,
Non-running services, 2008 SANS 20]]></OTHER>
<NETWORK_ACCESS><![CDATA[NAC / NAM]]></NETWORK_ACCESS>
<USER_MODIFIED><![CDATA[NOT 07/27/2015-
07/27/2015]]></USER_MODIFIED>
<PUBLISHED><![CDATA[NOT 06/02/2015-
07/20/2015]]></PUBLISHED>
<SERVICE_MODIFIED><![CDATA[NOT Previous 1
week]]></SERVICE_MODIFIED>
</CRITERIA>
</CRITERIA>
<!-- This list is used in the following option profiles //-
->
<OPTION_PROFILES>
<OPTION_PROFILE>
<ID>135<ID>
<TITLE><![CDATA[Initial Options]]></TITLE>
<OPTION_PROFILE>
</OPTION_PROFILES>
<!-- This list is used in the following report templates
//-->
<REPORT_TEMPLATES>
<REPORT_TEMPLATE>
<ID>256<ID>
<TITLE><![CDATA[Scan Report Template]]></TITLE>
<REPORT_TEMPLATE>
</REPORT_TEMPLATES>
<!-- This list is used in the following remediation
policies. //-->
<REMEDIATION_POLICIES>
<REMEDIATION_POLICY>
<ID>655<ID>
194
Chapter 4 - Scan Configuration
Dynamic Search Lists
DTD
<platform API server>/api/2.0/fo/qid/search_list/dynamic/dynamic_list_output.dtd
Search criteria
Use these parameters to define search criteria for dynamic search lists, using create and
update requests. All parameters act as vulnerability filters.
Parameter Value
vuln_title={value} Vulnerability title (string); to unset value use
update request and set to empty value
not_vuln_title={0|1} Set to 1 for vulnerability title that does not match
vuln_title parameter value
195
Chapter 4 - Scan Configuration
Dynamic Search Lists
Parameter Value
discovery_methods={value} One or more discovery methods: Remote,
Authenticated, Remote_Authenticated; by default
all methods are included
auth_types={value} One or more of these authentication types:
Windows, Unix, Oracle, SNMP, VMware, DB2, HTTP,
MySQL, PANOS, TOMCAT, MARIADB, MongoDB,
WEBLOGIC; multiple values are comma separated;
to unset value use update request and set to empty
value
user_configuration={value} One or more of these user configuration values:
disabled, custom; multiple values are comma
separated; to unset value use update request and
set to empty value
categories={value} One or more vulnerability category names (strings);
to unset value use update request and set to empty
value
not_categories={0|1} Set to 1 for categories that do not match categories
parameter values
confirmed_severities={value} One or more confirmed vulnerability severities (1-
5); multiple severities are comma separated; to
unset value use update request and set to empty
value
potential_severities={value} One or more potential vulnerability severities (1-5);
multiple severities are comma separated; to unset
value use update request and set to empty value
ig_severities={value} One or more information gathered severities
(1-5); multiple severities are comma separated; to
unset value use update request and set to empty
value
vendor_ids={value} One or more vendor IDs; multiple IDs are comma
separated; to unset value use update request and
set to empty value
not_vendor_ids={0|1} Set to 1 for vendor IDs that do not match
vendor_ids parameter values
products={value} Vendor product names; multiple names are comma
separated; to unset value use update request and
set to empty value
not_products={0|1} Set to 1 for product names that do not match
products parameter values
patch_available={value} Vulnerabilities with patches: 0 (no), 1 (yes); by
default all vulnerabilities with and without patches
are included; multiple values are comma
separated; to unset value use update request and
set to empty value
196
Chapter 4 - Scan Configuration
Dynamic Search Lists
Parameter Value
virtual_patch_available={value} Vulnerabilities with Trend Micro virtual patches: 0
(no), 1 (yes); by default vulnerabilities with and
without these virtual patches are included:
multiple values are comma separated; to unset
value use update request and set to empty value
cve_ids={value} One or more CVE IDs; multiple IDs are comma
separated; to unset value use update request and
set to empty value
not_cve_ids={0|1} Set to 1 for CVE IDs that do not match cve_ids
parameter values
exploitability={value} One or more vendors with exploitability info;
multiple references are comma separated; to unset
value use update request and set to empty value
malware_associated={value} One or more vendors with malware info; multiple
references are comma separated; to unset value
use update request and set to empty value
vendor_refs={value} One or more vendor references; multiple vendors
are comma separated; to unset value use update
request and set to empty value
not_vendor_refs={0|1} Set to 1 for vendor references that do not match
vendor_refs parameter values
bugtraq_id={value} Vulnerabilities with a Bugtraq ID number; to unset
value use update request and set to empty value
not_bugtraq_id={0|1} Set to 1 for vulnerabilities with Bugtraq IDs that do
not match the bugtraq_id parameter value
vuln_details={value} A string matching vulnerability details; to unset
value use update request and set to empty value
compliance_details={value} A string matching compliance details; to unset
value use update request and set to empty value
supported_modules={value} One or more of these Qualys modules: VM, CA-
Windows Agent, CA-Linux Agent, WAS, WAF, MD;
multiple values are comma separated; to unset
value use update request and set to empty value
compliance_types={value} One or more compliance types: PCI, CobiT, HIPAA,
GLBA, SOX; multiple values are comma separated;
to unset value use update request and set to empty
value
qualys_top_lists={value} One or more Qualys top lists: Internal_10,
Extermal_10; multiple values are comma
separated; to unset value use update request and
set to empty value
cpe={value} (Optional) One or more CPE values: Operating
System, Application, Hardware, None; multiple
values are comma separated.
197
Chapter 4 - Scan Configuration
Dynamic Search Lists
Parameter Value
qids_not_exploitable={0|1} Set to 1 for vulnerabilities that are not exploitable
due to configuration.
non_running_services={0|1} Set to 1 for vulnerabilities on non running services.
sans_20={0|1} Set to 1 for vulnerabilities in 2008 SANS 20 list
nac_nam={0|1} Set to 1 for NAC/NAM vulnerabilities
vuln_provider={value} Provider of the vulnerability if not Qualys; valid
value is iDefense
cvss_base={value} CVSS base score value (matches greater than or
equal to this value); to unset value use update
request and set to empty value
cvss_temp={value} CVSS temporal score value (matches greater than
or equal to this value); to unset value use update
request and set to empty value
cvss_access_vector={value} CVSS access vector, one of: Undefined, Local,
Adjacent_Network, Network; to unset value use
update request and set to empty value
cvss_base_operand={value} Set the value to 1 to use the greater than equal to
operand. Set the value to 2 to use the less than
operand.
You must always specify the "cvss_base" parameter
along with the "cvss_base_operand" parameter in
the API request.
cvss_temp_operand={value} Set the value to 1 to use the greater than equal to
operand. Set the value to 2 to use the less than
operand.
You must always specify the "cvss_temp"
parameter along with the "cvss_temp_operand"
parameter in the API request.
cvss3_base={value} CVSS3 base score value assigned to the CVEs by
NIST (matches greater than, less than, or equal to
this value); to unset value use update request and
set to empty value.
cvss3_temp={value} CVSS3 temporal score value assigned to the CVEs
by NIST (matches greater than, less than, or equal
to this value); to unset value use update request
and set to empty value.
198
Chapter 4 - Scan Configuration
Dynamic Search Lists
Parameter Value
cvss3_base_operand={value} Set the value to 1 to use the greater than equal to
operand. Set the value to 2 to use the less than
operand.
You must always specify the "cvss3_base"
parameter along with the "cvss3_base_operand"
parameter in the API request.
cvss3_temp_operand={value} Set the value to 1 to use the greater than equal to
operand. Set the value to 2 to use the less than
operand.
You must always specify the "cvss3_temp"
parameter along with the "cvss3_temp_operand"
parameter in the API request.
199
Chapter 4 - Scan Configuration
Dynamic Search Lists
Published filters
These parameters are mutually exclusive, only one of these can be passed per request.
Parameter Value
published_date_between={value} date range in format (mm/dd/yyyy-mm/dd/yyyy)
published_date_today={0|1} set to 1 for published today; set to 0 for not
published today
published_date_in previous={value} one of: Year, Month, Week, Quarter
published_date_within_last_days={value number of days: 1-9999
}
not_published={0|1} set to 1 to set the “not” flag for one of the published*
parameters
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2015-09-01T21:32:40Z</DATETIME>
<TEXT>New search list created successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>136992</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
200
Chapter 4 - Scan Configuration
Dynamic Search Lists
"action=create&title=mytest_DL313&cvss_base=3&cvss_base_operand=1&
cvss_temp=2&cvss_temp_operand=2&cvss3_base=2&cvss3_base_operand=1&
cvss3_temp=2&cvss3_temp_operand=2"
"https://qualysapi.qualys.com/api/2.0/fo/qid/search_list/dynamic/"
Parameter Description
action=update (Required)
echo_request={0|1} (Optional) Specify 1 to show input parameters in XML output.
id={id} (Required) The ID of the search list you want to update.
title={value} (Optional) The search list title. Maximum is 256 characters
(ascii).
global={0|1} (Optional) Specify 1 to make this a global search list.
comments={value} (Optional) User defined comments.
{criteria} (Optional) See “Search criteria”
Only criteria specified in an update request will overwrite
existing criteria, if any. For example, if a search list has
confirmed_severities=3,4 and you make an update request with
confirmed_severities=5, the search list will be updated to
confirmed_severities=5.
unset_user_modified_date= (Optional) Set to empty value to unset the user modified date in
{value} the search list parameters.
unset_published_date= (Optional) Set to empty value to unset the published date in the
{value} search list parameters.
unset_service_modified_date (Optional) Set to empty value to unset the service modified date
={value} in the search list parameters.
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2015-09-01T21:32:40Z</DATETIME>
201
Chapter 4 - Scan Configuration
Dynamic Search Lists
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2015-09-01T21:32:40Z</DATETIME>
<TEXT>search list deleted successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>123456</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
202
Chapter 4 - Scan Configuration
Vendor IDs and References
List vendor IDs and names. This vendor information may be defined as part of dynamic
search list query criteria.
Permissions - All users except Auditors have permission to run this API.
Input Parameters
Parameter Description
action={value} (Required) Set to “list_vendors” to list vendor IDs and names. Set
to “list_vendor_references” to list vendor references for QIDs.
echo_request={0|1} (Optional) Specify 1 to show input parameters in XML output.
ids={id1,id2,...} (Optional for action=list)
One or more vendors IDs to list those vendors only.
qids={id1,id2,...} (Optional for action=list_vendor_references)
One or more QIDs to list vendors references for those QIDs only.
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE VENDOR_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/vendor/vendor_list_output
.dtd">
<VENDOR_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2015-09-02T09:23:52Z</DATETIME>
<VENDORS>
<VENDOR>
<ID>458</ID>
<NAME>
<![CDATA[3com]]>
</NAME>
</VENDOR>
<VENDOR>
<ID>1967</ID>
203
Chapter 4 - Scan Configuration
Vendor IDs and References
<NAME>
<![CDATA[2glux]]>
</NAME>
</VENDOR>
</VENDORS>
</RESPONSE>
</VENDOR_LIST_OUTPUT>
DTD
<!-- QUALYS VENDOR_LIST_OUTPUT DTD -->
<!ELEMENT VENDOR_LIST_OUTPUT (REQUEST?,RESPONSE)>
<!ELEMENT REQUEST (DATETIME, USER_LOGIN, RESOURCE, PARAM_LIST?,
POST_DATA?)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT USER_LOGIN (#PCDATA)>
<!ELEMENT RESOURCE (#PCDATA)>
<!ELEMENT PARAM_LIST (PARAM+)>
<!ELEMENT PARAM (KEY, VALUE)>
<!ELEMENT KEY (#PCDATA)>
<!ELEMENT VALUE (#PCDATA)>
<!-- if returned, POST_DATA will be urlencoded -->
<!ELEMENT POST_DATA (#PCDATA)>
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE VENDOR_REFERENCE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/vendor/vendor_reference_l
ist_output.dtd">
<VENDOR_REFERENCE_LIST_OUTPUT>
204
Chapter 4 - Scan Configuration
Vendor IDs and References
<RESPONSE>
<DATETIME>2015-09-02T09:27:34Z</DATETIME>
<VENDOR_REFERENCES>
<VENDOR_REFERENCE>
<QID>195464</QID>
<REFERENCE_INFO>
<REFERENCE>
<![CDATA[USN-2186-1]]>
</REFERENCE>
<URL>
<![CDATA[https://lists.ubuntu.com/archives/ubuntu-security-
announce/2014-April/002483.html]]>
</URL>
</REFERENCE_INFO>
</VENDOR_REFERENCE>
<VENDOR_REFERENCE>
<QID>115844</QID>
<REFERENCE_INFO>
<REFERENCE>
<![CDATA[RHSA-2008-0508]]>
</REFERENCE>
<URL>
<![CDATA[http://rhn.redhat.com/errata/RHSA-
2008-0508.html]]>
</URL>
</REFERENCE_INFO>
<REFERENCE_INFO>
<REFERENCE>
<![CDATA[RHSA-2008-0519]]>
</REFERENCE>
<URL>
<![CDATA[http://rhn.redhat.com/errata/RHSA-
2008-0519.html]]>
</URL>
</REFERENCE_INFO>
</VENDOR_REFERENCE>
</VENDOR_REFERENCES>
...
</RESPONSE>
</VENDOR_REFERENCE_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/vendor/vendor_reference_list_output.dtd
205
Chapter 5 - Scan Authentication
Permissions
User Permissions Summary
List Auth Records
List Authentication Records
List Authentication Records by Type
Auth Record types
Application Server Records Palo Alto Firewall Record
- Apache, MIIS, IBM Websphere,
Tomcat
Docker Record Oracle WebLogic Server Record
HTTP Record PostgreSQL Record
IBM DB2 Record SNMP Record
InformixDB Record Sybase Record
JBoss Server record Unix Record
MariaDB Record VMware Record
MongoDB Record Windows Record
MS SQL Record MS Exchange Server
MySQL Record Oracle HTTP Server Record
Oracle Record
Oracle Listener Record
206
Chapter 5 - Scan Authentication
User Permissions Summary
Create Record
User Role Permissions
Manager Create authentication records for hosts in the subscription.
Unit Manager Create authentication records for hosts in the user’s
business unit. The permission “create/edit authentication
records” must be granted in the user’s account.
Auditor, Scanner, Reader No permissions.
Update/Delete Record
User Role Permissions
Manager Update and delete authentication records.
Unit Manager Update and delete authentication records. The permission
“create/edit authentication records/vaults” must be
granted in the user’s account. To edit a record, at least one
host in the record must be in the user’s business unit. To
delete a record, all hosts in the record must also be in the
user’s business unit.
Auditor, Scanner, Reader No permissions.
207
Chapter 5 - Scan Authentication
List Authentication Records
List all authentication records visible to the user for all technologies (i.e. Windows, Unix,
Docker, etc).
A maximum of 1,000 authentication records can be processed per request. If the
requested list identifies more than 1,000 authentication records, then the XML output
includes the <WARNING> element and instructions for making another request for the
next batch of records.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When not specified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
title={value} (Optional) Show only authentication records which have a
certain string in the record title.
comments={value} (Optional) Show only authentication records which have a
certain string in the record comments.
ids={value} (Optional) Show only authentication records with certain
IDs and/or ID ranges. Multiple entries are comma
separated. One or more IDs/ranges may be specified. An ID
range entry is specified with a hyphen (for example, 3000-
3250). Valid IDs are required.
id_min={value} (Optional) Show only authentication records which have a
minimum ID value. A valid ID is required.
id_max={value} (Optional) Show only authentication records which have a
maximum ID value. A valid ID is required.
208
Chapter 5 - Scan Authentication
List Authentication Records
209
Chapter 5 - Scan Authentication
List Authentication Records by Type
List authentication records visible to the user for a specific technology (i.e. Unix, Windows,
Docker, Sybase etc).
<type> will be a supported technology like: docker, http, ibm_db2, mongodb,
ms_exchange, ms_sql, mysql, oracle, oracle_listener, oracle_weblogic, palo_alto_firwall,
postgresql, snmp, sybase, unix (for Unix, Cisco, Checkpoint Firewall), vmware, windows.
For application servers: apache, ms_iis, ibm_websphere, tomcat.
A maximum of 1,000 authentication records can be processed per request. If the
requested list identifies more than 1,000 authentication records, then the XML output
includes the <WARNING> element and instructions for making another request for the
next batch of records.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When not specified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
title={value} (Optional) how only authentication records which have a
certain string in the record title.
comments={value} (Optional) Show only authentication records which have a
certain string in the record comments.
details={Basic|All|None} (Optional) Show the requested amount of information for
each authentication record. A valid value is:
None - show record ID only
Basic (default) - show record ID and all authentication
record attributes
All - show record ID and all authentication record
attributes and a glossary section with the user name and
login for each record owner
ids={value} (Optional) Show only authentication records with certain
IDs and/or ID ranges. Multiple entries are comma
separated. One or more IDs/ranges may be specified. An ID
range entry is specified with a hyphen (for example, 3000-
3250). Valid IDs are required.
210
Chapter 5 - Scan Authentication
List Authentication Records by Type
Parameter Description
id_min={value} (Optional) Show only authentication records which have a
minimum ID value. A valid ID is required.
id_max={value} (Optional) Show only authentication records which have a
maximum ID value. A valid ID is required.
<URL>https://qualysapi.qualys.com/api/2.0/fo/auth/?action=list&id_
min=3457</URL>
211
Chapter 5 - Scan Authentication
List Authentication Records by Type
</WARNING>
</WARNING_LIST>
<GLOSSARY>
<USER_LIST>
<USER>
<USER_LOGIN>quays_es11</USER_LOGIN>
<FIRST_NAME>Ernie</FIRST_NAME>
<LAST_NAME>Smith</LAST_NAME>
</USER>
</USER_LIST>
</GLOSSARY>
</RESPONSE>
</AUTH_UNIX_LIST_OUTPUT>
212
Chapter 5 - Scan Authentication
Application Server Records
Create, update, list and delete application server records for authenticated scans of web
application servers. Application Server records are used to authenticate to various web
app servers.
Apache server authentication - Instance discovery and auto record creation is now
supported using Apache authentication records (UI and API). A single Apache record may
be used when the same record configuration (Apache configuration file, Apache control
command) is replicated across hosts in the record. Learn more about instance discovery
and auto record creation in online help (log in to your Qualys account, go to Help > Online
Help and search for Apache).
Supported servers
213
Chapter 5 - Scan Authentication
Application Server Records
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When
unspecified, parameters are not included in the XML
output.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required for create) The title of the Server record. The
title must be unique and may include a maximum of 255
characters (ascii).
comments={value} (Optional) User defined notes about the Server record.
The comments may include a maximum of 1999
characters (ascii); if comments have 2000 or more
characters an error is returned and comments are not
saved. Tags (such as <script>) cannot be included; if tags
are included an error is returned and the request fails.
Application Server
unix_apache_config_file= (Required to create an Apache Web Server record; valid
{value} only for this record). The path to the Apache
configuration file.
unix_apache_control_comm (Required to create an Apache Web Server record; valid
and={value} only for this record) The path to the Apache control
command. For IBM HTTP Server, enter the path to the
IBM HTTP Server “bin” directory or the specific location
of “apachectl”. For VMware vFabric Web Server, enter the
path to the VMware vFabric global “bin” directory or the
specific location of “httpdctl” for a web server instance.
unix_install_dir={value} (Required to create an IBM WebSphere App Server
record; valid only for this record) The directory where the
WebSphere application is installed.
installation_path={value} (Required to create Tomcat Server record; valid only for
this record) The directory where the tomcat server is
installed.
Examples:
/opt/apache-tomcat-7.0.57 (e.g. $CATALINA_HOME)
/opt/vmware/vfabric-tc-server-standard
/opt/pivotal/pivotal-tc-server-standard
214
Chapter 5 - Scan Authentication
Application Server Records
Parameter Description
instance_path={value} (Optional to create or update Tomcat Server record; valid
only for this record) The directory where the tomcat
server instance(s) are installed. You can specify a single
tomcat instance (use with auto_discover_instances=0),
or multiple instances (use with
auto_discover_instances=1). Leave unspecified when the
instance directory is the same as the installation
directory or when your targets have different types of
tomcat servers.
Examples:
/opt/apache-tomcat-7.0.57 (e.g. $CATALINA_BASE)
/opt/vmware/vfabric-tc-server-standard/tc1
/opt/pivotal/pivotal-tc-server-standard/tc1
auto_discover_instances= (Optional to create or update Tomcat Server record; valid
{0|1} only for this record) Specify auto_discover_instances=1
and we’ll find all tomcat server instances for you.
Applies to VMware vFabric and Pivotal when you’ve
specified a directory with multiple instances or you did
not specify an instance.
215
Chapter 5 - Scan Authentication
Application Server Records
Parameter Description
remove_ips={value} (Optional and valid only to update record) IPs to be
removed from your record. You may enter a combination
of IPs and ranges. Multiple entries are comma separated.
network_id={value} (Optional to create or update record, and valid when the
networks feature is enabled) The network ID for the
record.
216
Chapter 5 - Scan Authentication
Docker Record
Docker Record
/api/2.0/fo/auth/docker/
[POST]
Create, update, list and delete Docker records for compliance scans (using PC). This record
is used to authenticate to a Docker daemon (version 1.9 to 1.12) running on a Linux host.
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Set to 1 to echo the request’s input parameters
(names and values) in the XML output. By default
parameters are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) The record title.
comments={value} (Optional) User defined comments.
Docker
docker_deamon_conf_file= (Optional to create or update record) Location of the
{value} configuration file for the docker daemon.
docker_command={value} (Optional) The docker command to connect to a local
docker daemon.
Target Hosts
ips={value} (Required to create record) IPs to be added to your docker
record.
add_ips={value} (Optional and valid only to update record) IPs to be added
to an existing record. You may enter a combination of IPs
and IP ranges. Multiple entries are comma separated.
remove_ips={value} (Optional and valid to update record) IPs to be removed
from your record. You may enter a combination of IPs and
ranges. Multiple entries are comma separated.
network_id={1|0} (Optional) By default, the parameter is set to 0
217
Chapter 5 - Scan Authentication
Docker Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<REQUEST>
<DATETIME>2018-03-09T06:09:46Z</DATETIME>
<USER_LOGIN>username</USER_LOGIN>
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/auth/docker/</RE
SOURCE>
<PARAM_LIST>
<PARAM>
<KEY>action</KEY>
<VALUE>create</VALUE>
</PARAM>
<PARAM>
<KEY>title</KEY>
<VALUE>docker_sample</VALUE>
</PARAM>
<PARAM>
<KEY>ips</KEY>
<VALUE>10.10.30.159</VALUE>
</PARAM>
<PARAM>
<KEY>docker_deamon_conf_file</KEY>
<VALUE>/etc/docker/daemon.json</VALUE>
</PARAM>
<PARAM>
<KEY>docker_command</KEY>
<VALUE>/usr/bin/docker</VALUE>
</PARAM>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
218
Chapter 5 - Scan Authentication
Docker Record
<RESPONSE>
<DATETIME>2018-03-09T06:09:46Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>72685</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-03-09T06:12:57Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>72685</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
219
Chapter 5 - Scan Authentication
HTTP Record
HTTP Record
/api/2.0/fo/auth/http/
[POST]
Create, update and delete HTTP records for authenticated scans of protected portions of
web sites and devices, like printers and routers, that require HTTP protocol level
authentication. Vulnerability scans are supported (using VM).
How it works - During a vulnerability scan, if we come across a web page that requires
HTTP authentication then we’ll check to see if an HTTP record exists in your account with
applicable credentials. If yes, we’ll use the credentials in the record to perform HTTP
authentication. (Note this is not Form-based authentication.)
Input Parameters
Parameter Description
action={value} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Set to 1 to echo the request’s input parameters
(names and values) in the XML output. By default
parameters are not included.
comments={value} (Optional for create or update request) User-defined
comments.
ids={value} (Required to update or delete record) One or more HTTP
record IDs.
title={value} (Required for a create request; Optional for an update
request; otherwise invalid) The HTTP record title.
username={value} (Required to create record, optional to update record) The
user name to be used for authentication.
password={value} (Required to create record, optional to update record) The
password to be used for authentication.
vhost={value} - or - (Required to create record; optional to update record)
realm={value} Specify the protected device or web page you want to
authenticate against. You can specify a virtual host (an
FQDN such as vhost=bank.qualys.com) or the name of a
realm (realm=My+Homepage).
ssl={0|1} (Optional to create or update record) Specify 1 if you want
to attempt authentication over SSL only. In this case
authentication is attempted only when the form is
submitted
via a link that uses https://...
220
Chapter 5 - Scan Authentication
HTTP Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-01-03T07:51:48Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>55111</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-01-03T08:02:44Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>55112</ID>
221
Chapter 5 - Scan Authentication
HTTP Record
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN
222
Chapter 5 - Scan Authentication
IBM DB2 Record
Create, update, list and delete IBM DB2 records for vulnerability and compliance scans
(using VM, PC). This record is used for authenticated scanning of one or more DB2
instances on a single host. Want to scan multiple instances? See "Multiple DB2 Instances"
in online help.
Requirement - You must set up target hosts per the Qualys User Guide.
Download Qualys User Guide - IBM DB2 Authentication (.zip)
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Show (echo) the request's input parameters
(names and values) in the XML output. When unspecified,
parameters are not included in the XML output.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) The title for the record. The title
must be unique and may include a maximum of 255
characters (ascii).
comments={value} (Optional) User defined notes about the record. Maximum
of 1999 characters (ascii).
pc_only={0|1} (Optional) Specify pc_only=1 if the record will be used for
compliance scans only. See “Multiple DB2 Instances.”
Login Credentials
username={value} (Required to create record, optional to update record)
The user name for a DB2 database account. A maximum of
13 characters (ascii) may be specified.
password={value} (Required to create record, optional to update record)
The password for a DB2 database account. A maximum of
13 characters (ascii) may be specified.
database={value} (Required to create record, optional to update record)
The name of the DB2 database. A maximum of 8
characters (ascii) may be specified.
port={value} (Required to create record, optional to update record)
The port the database instance is running on.
223
Chapter 5 - Scan Authentication
IBM DB2 Record
Parameter Description
Target Hosts
ips={value} (Required to create record, optional to update record)
Add IP addresses of the hosts you want to scan using this
record.
224
Chapter 5 - Scan Authentication
IBM DB2 Record
Parameter Description
win_terlogfile={value} The path to the tertiary archive location if you want the
unix_terlogfile={value} service to perform OS-dependent compliance checks.
Maximum 255 characters.
Record 1 and Record 2 will be used for vulnerability scans and compliance scans. You’ll
notice Records 2 and 3 have the same IP address and port but different database names -
this is allowed because Record 3 is used for compliance scans only.
225
Chapter 5 - Scan Authentication
IBM DB2 Record
DB2 Paths
When specifying the path to configuration files, these special characters are not allowed:
For Windows:
;&|#%?!*`()[]”’><=^/
For Unix:
;&|#%?!*`()[]”’><=^\
226
Chapter 5 - Scan Authentication
InformixDB Record
InformixDB Record
/api/2.0/fo/auth/informixdb/
[POST]
Create, update, list and delete InformixDB authentication records. Compliance scans are
supported (using PC).
- Unix authentication is required for compliance scans using the PC app. Make sure the IP
addresses you define in your InformixDB records are also defined in Unix records.
- We strongly recommend you create one or more dedicated user accounts to be used
solely by the Qualys Cloud Platform to authenticate to InformixDB instances.
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or list
(using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the XML
output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to update/delete.
Specify record IDs and/or ID ranges (for example, 1359-1407).
Multiple entries are comma separated.
title={value} (Required to create record) A title for the record. The title must be
unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined comments.
Maximum of 1999 characters.
InformixDB
ssl_verify={0|1} (Optional to create or update record, and valid for server that
supports SSL) Specify 1 for a complete SSL certificate validation.
- If ssl_verify=0, the Qualys scanners authenticate with Informix
Servers that don’t use SSL or InformixDB servers that use SSL.
However, in the SSL case, the server SSL certificate verification
will be skipped.
- If unspecified (or ssl_verify=1), the Qualys scanners will only
send a login request after verifying that a connection to the
InformixDB server uses SSL, the server SSL certificate is valid and
matches the scanned host.
hosts={value} (Optional to create or update record) A list of FQDNs for the hosts
that correspond to all host IP addresses on which a custom SSL
certificate signed by a trusted root CA is installed. Multiple hosts
are comma separated.
database_name={value} (Required to create record, optional to update record) The
database name to authenticate to. Specify a valid InformixDB
database name. Maximum 255 characters.
227
Chapter 5 - Scan Authentication
InformixDB Record
Parameter Description
port={value} (Required to create record, optional to update record) The port the
database name is running on. Valid range is 1-65535. The
standard port for InformixDB is 1526.
unix_config_dir={value} (Optional to create or update record) The path to the Unix
informixdb installation directory. Access to this directory is
required to run certain checks on Unix hosts.
unix_on_config_dir={value} (Optional to create or update record) The absolute path to the
Unix file that contains configuration parameters of the database
server.
unix_sql_host_dir={value} (Optional to create or update record) The absolute path to the
Unix file that contains database connectivity information.
Login credentials
login_type={basic} (Optional) The login type is basic by default. We are not
supporting vault based authentication.
username={value} (Required to create record, optional to update record) The
username to be used for authentication to InformixDB server.
password={value} (Required to create record, optional to update record) The
password to be used for authentication to InformixDB server.
Target Hosts
ips={value} (Required to create record) The IP address(es) the server will log
into using the record’s credentials. Multiple entries are comma
separated.
(Optional to update record) IPs specified will overwrite existing IPs
in the record, and existing IPs will be removed.
add_ips={value} (Optional to update record) Add IPs to the IPs list for this record.
Multiple IPs/ranges are comma separated.
remove_ips={value} (Optional to update record) IPs to be removed from your record.
You may enter a combination of IPs and ranges. Multiple entries
are comma separated.
Sample - Create InformixDB record (with basic login and without ssl_verify)
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: curl sample" -d
"action=create&title=my-informixdb-record&username=informix-
admin&password=test123&ips=10.10.10.11&comments=informix-basic-
ipv4&unix_config_dir=/opt/informix/&port=1526&ssl_verify=0&unix_on
_config_dir=/opt/Informix/etc/onconfig.demo&unix_sql_host_dir=opt/
Informix/etc/sqlhosts.demo&database_name=dbname&login_type=basic"
228
Chapter 5 - Scan Authentication
InformixDB Record
"https://qualysapi.qualys.com/api/2.0/fo/auth/informixdb/"
XML output:
<BATCH_RETURN>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-01-30T15:45:05Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>43025</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-01-30T15:47:01Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>43026</ID>
229
Chapter 5 - Scan Authentication
InformixDB Record
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_INFORMIXDB_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/fo/auth/informixdb/auth_informixdb_l
ist_output.dtd">
<AUTH_INFORMIXDB_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-01-30T15:19:02Z</DATETIME>
<AUTH_INFORMIXDB_LIST>
<AUTH_INFORMIXDB>
<ID>40034</ID>
<TITLE><![CDATA[InformixDB1]]></TITLE>
<USERNAME><![CDATA[root]]></USERNAME>
<DATABASE><![CDATA[informixdb]]></DATABASE>
...
</AUTH_INFORMIXDB>
</AUTH_INFORMIXDB_LIST>
</RESPONSE>
</AUTH_INFORMIXDB_LIST_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
230
Chapter 5 - Scan Authentication
InformixDB Record
"http://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-01-30T16:00:16Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>43025</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"http://10.114.69.159:46445/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-01-30T15:41:46Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Deleted</TEXT>
<ID_SET>
<ID_RANGE>43023-43024</ID_RANGE>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
231
Chapter 5 - Scan Authentication
JBoss Server record
Create, update, list and delete JBoss Server records for vulnerability and compliance scans
(using VM, PC). Supports Windows and Unix platforms.
Supported technologies:
Windows - WildFly/JBoss EAP
Unix - WildFly/JBoss EAP
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or list
(using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the XML
output. By default these are not included.
ids={value} (Required) Specify a single or comma separated valid JBoss type
auth record ID(s).
title={value} (Required to create record) A title for the record. The title must be
unique.
comment={value} (Optional to create or update record) User defined comments.
Windows platform
windows_working_mode= (Optional) Input values should be standalone_mode or
{value} domain_controller_mode.
windows_home_path={valu Required if windows working mode is selected.
e}
windows_base_path= Required if windows working mode is selected.
{value}
windows_conf_dir_path= Required if windows working mode is selected.
{value}
windows_conf_file_path= Required if windows working mode is selected.
{value}
windows_conf_host_file_ Required if selected Windows working mode is domain controller.
path={value}
Unix platform
unix_working_mode= (Optional) Input values should be standalone_mode or
{value} domain_controller_mode.
unix_home_path={value} Required if Unix working mode is selected.
232
Chapter 5 - Scan Authentication
JBoss Server record
Parameter Description
unix_base_path={value} Required if Unix working mode is selected.
unix_conf_dir_path= {value} Required if Unix working mode is selected.
unix_conf_file_path= Required if Unix working mode is selected.
{value}
unix_conf_host_file_path= Required if selected Unix working mode is domain controller.
{value}
Target Hosts
ips={value} (Required to create record) The IP address(es) the server will log
into using the record’s credentials. Multiple entries are comma
separated.
(Optional to update record) IPs specified will overwrite existing IPs
in the record, and existing IPs will be removed.
add_ips={value} (Optional and valid only to update record) IPs to be added to an
existing record. You may enter a combination of IPs and IP ranges.
Multiple entries are comma separated.
remove_ips={value} (Optional and valid to update record) IPs to be removed from your
record. You may enter a combination of IPs and ranges. Multiple
entries are comma separated.
network_id={value} (Optional to create or update record, and valid when the networks
feature is enabled) The network ID for the record.
XML output:
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-08-03T10:42:32Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>296004</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
233
Chapter 5 - Scan Authentication
JBoss Server record
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_JBOSS_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/jboss/auth_jboss_lis
t_output.dtd">
<AUTH_JBOSS_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-08-03T10:44:39Z</DATETIME>
<AUTH_JBOSS_LIST>
<AUTH_JBOSS>
<ID>296004</ID>
<TITLE><![CDATA[jboss_record]]></TITLE>
<IP_SET>
<IP>10.10.10.224</IP>
</IP_SET>
<WINDOWS>
<HOME_PATH><![CDATA[c:\]]></HOME_PATH>
<DOMAIN_MODE><![CDATA[true]]></DOMAIN_MODE>
<BASE_PATH><![CDATA[c:\]]></BASE_PATH>
<CONF_DIR_PATH><![CDATA[c:\]]></CONF_DIR_PATH>
<CONF_FILE_PATH><![CDATA[c:\]]></CONF_FILE_PATH>
<CONF_HOST_FILE_PATH><![CDATA[c:\]]></CONF_HOST_FILE_PAT
H>
</WINDOWS>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2018-08-03T10:42:32Z</DATETIME>
<BY>abc_pk</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2018-08-03T10:43:58Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS><![CDATA[record creation]]></COMMENTS>
</AUTH_JBOSS>
</AUTH_JBOSS_LIST>
</RESPONSE>
234
Chapter 5 - Scan Authentication
JBoss Server record
</AUTH_JBOSS_LIST_OUTPUT>
235
Chapter 5 - Scan Authentication
MariaDB Record
MariaDB Record
/api/2.0/fo/auth/mariadb/
[POST]
Create, update, list and delete MariaDB authentication records. Compliance scans are
supported (using PC).
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
ssl_verify={0|1} (Optional to create or update record, and valid for server
that supports SSL) Specify 1 for a complete SSL certificate
validation.
236
Chapter 5 - Scan Authentication
MariaDB Record
Parameter Description
windows_config_file= (Optional to create or update record) The path to the
{value} Windows mariadb config file. Access to this config file is
required to run certain checks on Windows hosts.
Note: You must include one or both of these parameters in
a create request: windows_config_file and unix_config_file.
unix_config_file= (Optional to create or update record) The path to the Unix
{value} mariadb config file. Access to this config file is required to
run certain checks on Unix hosts.
Note: You must include one or both of these parameters in
a create request: windows_config_file and unix_config_file.
client_cert={value} (Optional to create or update record) PEM-encoded X.509
certificate. Specify if certificate authentication is required
by your server to establish an SSL connection.
client_key={value} (Optional to create or update record) PEM-encoded RSA
private key. Specify if certificate authentication is required
by your server to establish an SSL connection.
Login credentials
login_type={basic|vault} (Optional) The login type is basic by default. You can
choose vault (for vault based authentication).
username={value} (Required to create record, optional to update record) The
username to be used for authentication to MariaDB server.
password={value} (Required to create record, optional to update record) The
password to be used for authentication to MariaDB server.
Vault
vault_type={value} (Required to create record when login_type=vault)
The vault type to be used for authentication.
vault_id={value} (Required to create record when login_type=vault and you
want to retrieve private key from vault) The vault ID where
you want to retrieve the private key from. Certain vaults
support this capability.
{vault parameters} (Required to create record when login_type=vault)
Vault specific parameters required depend on the vault
type you’ve selected. See the API v2 User Guide for vault
parameters.
Target Hosts
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple entries
are comma separated.
237
Chapter 5 - Scan Authentication
MariaDB Record
Parameter Description
remove_ips={value} (Optional to update record) IPs to be removed from your
record. You may enter a combination of IPs and ranges.
Multiple entries are comma separated.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-07-17T21:56:47Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>284866</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
238
Chapter 5 - Scan Authentication
MariaDB Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_MARIADB_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/mariadb/auth_mariadb
_list_output.dtd">
<AUTH_MARIADB_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-07-17T21:57:32Z</DATETIME>
<AUTH_MARIADB_LIST>
<AUTH_MARIADB>
<ID>284866</ID>
<TITLE><![CDATA[MariaDB_Auth1]]></TITLE>
<USERNAME><![CDATA[root]]></USERNAME>
<DATABASE><![CDATA[mariadb]]></DATABASE>
<PORT>22</PORT>
<IP_SET>
<IP>10.10.31.86</IP>
</IP_SET>
<LOGIN_TYPE><![CDATA[basic]]></LOGIN_TYPE>
<SSL_VERIFY>false</SSL_VERIFY>
<WINDOWS_CONF_FILE><![CDATA[]]></WINDOWS_CONF_FILE>
<UNIX_CONF_FILE><![CDATA[/etc/my.cnf]]></UNIX_CONF_FILE>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2018-07-17T21:56:47Z</DATETIME>
<BY>seenu_yn</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2018-07-17T21:56:47Z</DATETIME>
</LAST_MODIFIED>
</AUTH_MARIADB>
</AUTH_MARIADB_LIST>
</RESPONSE>
</AUTH_MARIADB_LIST_OUTPUT>
239
Chapter 5 - Scan Authentication
MongoDB Record
MongoDB Record
/api/2.0/fo/auth/mongodb/
[POST]
Create, update, list and delete MongoDB records for authenticated scans of MongoDB
instances running on Unix. Vulnerability and compliance scans are supported (using VM,
PC).
- Technologies supported: MongoDB 3.x
- Unix authentication is required for compliance scans using the PC app. Make sure the IP
addresses you define in your MongoDB records are also defined in Unix records.
- We strongly recommend you create one or more dedicated user accounts to be used
solely by the Qualys Cloud Platform to authenticate to MongoDB instances.
Requirement - You must configure authentication credentials on target hosts.
Download Qualys User Guide - MongoDB Authentication (.pdf)
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When not specified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional) User defined comments. Maximum of 1999
characters.
ids={id1,id2,...} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
Target Hosts
ips={value} (Required to create record, optional to update record)
Add IP addresses of the hosts you want to scan using this
record.
240
Chapter 5 - Scan Authentication
MongoDB Record
Parameter Description
add_ips={value} (Optional to update record) Add IP address(es) to the IP list
for an existing authentication record. You may enter a
combination of IPs and IP ranges.
remove_ips={value} (Optional to update record) IPs to be removed from your
record. You may enter a combination of IPs and ranges.
Multiple entries are comma separated.
network_id={value} (Optional to create or update record, and valid when the
networks feature is enabled) The network ID for the record.
MongoDB
unix_conf_file={value} (Required for create request) The full path to the MongoDB
configuration file on your Unix assets (IP addresses). The
file must be in the same location on all assets for this
record. Maximum 255 characters (ascii).
database_name={value} (Required for create request) The username of the account
to be used for authentication to the database. If password
is specified this is the username of a MongoDB account. If
login_type=vault is specified, this is the username of a
vault account. Maximum
255 characters (ascii).
port={value} (Required for create request) The port where the database
instance is running. Default is 27017.
ssl_verify={0|1} (Required if ssl_verify=1) A list of FQDNs for all host IP
addresses on which a custom SSL certificate signed by a
trusted root CA is installed.
hosts={value} (Required if ssl_verify=1) A list of FQDNs for all host IP
addresses on which a custom SSL certificate signed by a
trusted root CA is installed.
Login credentials
login_type={basic|vault| (Optional) The login type is basic by default. You can
pkcert} choose vault (for vault based authentication) or pkcert (for
certificate based authentication).
username={value} (Required to create record when login_type=basic or
login_type=vault)
The username of the MongoDB account to be used for
authentication. Maximum 100 characters (ascii).
password={value} (Required to create record when login_type=basic)
The password of the MongoDB account to be used for
authentication. Maximum 100 characters (ascii).
Vault
vault_type={value} (Required to create record when login_type=vault)
The vault type to be used for authentication.
See Vault Support matrix
241
Chapter 5 - Scan Authentication
MongoDB Record
Parameter Description
vault_id={value} (Required to create record when login_type=vault and you
want to retrieve private key from vault) The vault ID where
you want to retrieve the private key from. Certain vaults
support this capability.
{vault parameters} (Required to create record when login_type=vault)
Vault specific parameters required depend on the vault
type you’ve selected. See Vault Definition
private_key_vault_id= (Required to create record when login_type=vault and you
{value} want to retrieve passphrase from vault) The vault ID where
you want to retrieve the passphrase from. Certain vaults
support this capability. See Vault Support matrix
passphrase_vault_id= (For create request, required when login_type=vault and
{value} you want to retrieve passphrase from vault) The vault ID
where you want to retrieve the passphrase from. Certain
vaults support this capability. See Vault Support matrix
private_key={value} (For create request, required when login_type=pkcert) The
private key to be used for authentication. Certain vaults
support this capability. See Vault Support matrix
passphrase={value} (For create request, required when login_type=pkcert and
passphrase_vault_id is not specified) The private key
passphrase value of an encrypted private key. Maximum
255 characters (ascii). Certain vaults support this
capability. See Vault Support matrix
certificate={value} (For create request, optional when login_type=pkcert ) The
passphrase X.509 certificate content.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-12T22:43:27Z</DATETIME>
<BATCH_LIST>
<BATCH>
242
Chapter 5 - Scan Authentication
MongoDB Record
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>125709</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-03-12T22:45:06Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>125710</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
243
Chapter 5 - Scan Authentication
MongoDB Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-03-12T22:46:47Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>125711</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_MONGODB_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/mongodb/auth_mongodb
_list_output.dtd">
<AUTH_MONGODB_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-09-12T22:42:45Z</DATETIME>
<AUTH_MONGODB_LIST>
<AUTH_MONGODB>
<ID>125693</ID>
<TITLE><![CDATA[API-mongo-basic-login]]></TITLE>
<USERNAME><![CDATA[mongo-admin-name]]></USERNAME>
<DATABASE><![CDATA[db-admin-name]]></DATABASE>
<PORT>28020</PORT>
<UNIX_CONFIGURATION_FILE><![CDATA[/opt/mongodb/updated]]></UNIX_CO
NFIGURATION_FILE>
<IP_SET>
244
Chapter 5 - Scan Authentication
MongoDB Record
<IP>10.20.32.239</IP>
</IP_SET>
<LOGIN_TYPE><![CDATA[basic]]></LOGIN_TYPE>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2017-09-12T20:22:09Z</DATETIME>
...
245
Chapter 5 - Scan Authentication
MS Exchange Server
MS Exchange Server
/api/2.0/fo/auth/ms_exchange/
[POST]
Create, update, list and delete MS Exchange Server authentication records. Compliance
scans are supported (using PC).
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
Target Hosts
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple entries
are comma separated.
246
Chapter 5 - Scan Authentication
MS Exchange Server
"action=create&network_id=0&title=fordeltes&comments=editapicommen
t&ips=10.10.10.31"
"https://qualysapi.qualys.com/api/2.0/fo/auth/ms_exchange/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-03-20T08:26:54Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>49029</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_MS_EXCHANGE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/ms_exchange/auth_ms_
exchange_list_output.dtd">
<AUTH_MS_EXCHANGE_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-03-20T07:26:38Z</DATETIME>
<AUTH_MS_EXCHANGE_LIST>
<AUTH_MS_EXCHANGE>
<ID>48050</ID>
<TITLE>
<![CDATA[msexchange01]]>
247
Chapter 5 - Scan Authentication
MS Exchange Server
</TITLE>
<IP_SET>
<IP>10.10.10.10</IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2019-03-14T07:05:05Z</DATETIME>
<BY>quays_sp1</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2019-03-14T07:05:05Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS>
<![CDATA[msexchange]]>
</COMMENTS>
</AUTH_MS_EXCHANGE>
...
<AUTH_MS_EXCHANGE>
<ID>49026</ID>
<TITLE>
<![CDATA[apicreate]]>
</TITLE>
<IP_SET>
<IP>10.10.10.13</IP>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2019-03-19T11:46:23Z</DATETIME>
<BY>quays_sp1</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2019-03-19T11:56:57Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS>
<![CDATA[editapicomment]]>
</COMMENTS>
</AUTH_MS_EXCHANGE>
</AUTH_MS_EXCHANGE_LIST>
</RESPONSE>
</AUTH_MS_EXCHANGE_LIST_OUTPUT>
248
Chapter 5 - Scan Authentication
MS Exchange Server
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-03-20T08:29:48Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>49029</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-03-20T07:56:00Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Deleted</TEXT>
<ID_SET>
<ID>49026</ID>
</ID_SET>
249
Chapter 5 - Scan Authentication
MS Exchange Server
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-03-20T08:31:35Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Deleted</TEXT>
<ID_SET>
<ID_RANGE>49028-49029</ID_RANGE>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
250
Chapter 5 - Scan Authentication
MS SQL Record
MS SQL Record
/api/2.0/fo/auth/ms_sql/
[POST]
Create, update, list and delete MS SQL Server authentication records. Compliance scans
are supported (using PC).
Requirement - You must configure authentication credentials on target hosts.
Download Qualys User Guide - MS SQL Server 2000 Authentication (.pdf)
Download Qualys User Guide - MS SQL Server 2005-2017 Authentication (.pdf)
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional) User defined comments. Maximum 1999
characters.
Login credentials
username={value} (Required to create record, optional to update record) The
user account to be used for authentication. May include 1-
128 characters.
password={value} (Required to create record, optional to update record) The
password corresponding to the user account defined in the
record for authentication. May include 1-128 characters.
db_local={0|1} (Optional to create or update record) Set to 1 when login
credentials are for a MS SQL Server database account. Set
to 0 when login credentials are for a Microsoft Windows
operating system account that is associated with a MS SQL
Server database account. To create record if the db_local
parameter is unspecified, the flag is set to 1.
251
Chapter 5 - Scan Authentication
MS SQL Record
Parameter Description
windows_domain={value} (Required when db_local=0, otherwise invalid)
252
Chapter 5 - Scan Authentication
MS SQL Record
Parameter Description
port={value} (Required to create record, optional to update record)
253
Chapter 5 - Scan Authentication
MS SQL Record
Parameter Description
network_id={value} (Optional and valid when the networks feature is enabled)
The network ID for the record.
member_domain={value} Defines the domain of the MS SQL server for the
authentication record.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_MS_SQL_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/ms_sql/auth_ms_sql_l
ist_output.dtd">
<AUTH_MS_SQL_LIST_OUTPUT>
<REQUEST>
<DATETIME>2017-09-20T05:34:37Z</DATETIME>
<USER_LOGIN>user_john</USER_LOGIN>
<RESOURCE>
https://qualysapi.qualys.com/api/2.0/fo/auth/ms_sql/
</RESOURCE>
<PARAM_LIST>
<PARAM>
254
Chapter 5 - Scan Authentication
MS SQL Record
<KEY>action</KEY>
<VALUE>list</VALUE>
</PARAM>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>ids</KEY>
<VALUE>13907</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<RESPONSE>
<DATETIME>2017-09-20T05:34:37Z</DATETIME>
<AUTH_MS_SQL_LIST>
<AUTH_MS_SQL>
<ID>13907</ID>
<TITLE><![CDATA[mssqlvt4]]></TITLE>
<USERNAME><![CDATA[administrator]]></USERNAME>
<NTLM_V2>1</NTLM_V2>
<KERBEROS>1</KERBEROS>
<INSTANCE><![CDATA[MSSQLSERVER]]></INSTANCE>
<DATABASE><![CDATA[master]]></DATABASE>
<PORT>8012</PORT>
<DB_LOCAL>1</DB_LOCAL>
<MEMBER_DOMAIN><![CDATA[sitedomain.com]]></MEMBER_DOMAIN>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2017-09-20T05:26:31Z</DATETIME>
<BY>user_john</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2017-09-20T05:26:31Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS><![CDATA[authcreated]]></COMMENTS>
</AUTH_MS_SQL>
</AUTH_MS_SQL_LIST>
</RESPONSE>
</AUTH_MS_SQL_LIST_OUTPUT>
255
Chapter 5 - Scan Authentication
MS SQL Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<REQUEST>
<DATETIME>2018-03-20T05:26:31Z</DATETIME>
<USER_LOGIN>user_john</USER_LOGIN>
<RESOURCE>
https://qualysapi.qualys.com/api/2.0/fo/auth/ms_sql/</RESOURCE>
<PARAM_LIST>
<PARAM>
<KEY>action</KEY>
<VALUE>create</VALUE>
</PARAM>
<PARAM>
<KEY>title</KEY>
<VALUE>mssqlvt4</VALUE>
</PARAM>
<PARAM>
<KEY>username</KEY>
<VALUE>administrator</VALUE>
</PARAM>
<PARAM>
<KEY>password</KEY>
<VALUE>abc123</VALUE>
</PARAM>
<PARAM>
<KEY>db_local</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>port</KEY>
<VALUE>8012</VALUE>
</PARAM>
<PARAM>
256
Chapter 5 - Scan Authentication
MS SQL Record
<KEY>member_domain</KEY>
<VALUE>sitedomain.com</VALUE>
</PARAM>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>comments</KEY>
<VALUE>authcreated</VALUE>
</PARAM>
<PARAM>
<KEY>instance</KEY>
<VALUE>MSSQLSERVER</VALUE>
</PARAM>
<PARAM>
<KEY>database</KEY>
<VALUE>master</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<RESPONSE>
<DATETIME>2018-03-20T05:26:31Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>13907</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
257
Chapter 5 - Scan Authentication
MS SQL Record
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<REQUEST>
<DATETIME>2018-03-20T05:37:13Z</DATETIME>
<USER_LOGIN>user_john</USER_LOGIN>
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/auth/ms_sql/
</RESOURCE>
<PARAM_LIST>
<PARAM>
<KEY>action</KEY>
<VALUE>update</VALUE>
</PARAM>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>ids</KEY>
<VALUE>13907</VALUE>
</PARAM>
<PARAM>
<KEY>member_domain</KEY>
<VALUE>webdomain.com</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<RESPONSE>
<DATETIME>2018-03-20T05:37:13Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET><ID>13907</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
258
Chapter 5 - Scan Authentication
MySQL Record
MySQL Record
/api/2.0/fo/auth/mysql/
[POST]
Create, update, list and delete MySQL records for authenticated scans of MySQL Server
instances. Vulnerability and compliance scans are supported (using VM, PC).
Requirement - You must configure authentication credentials on target hosts.
Download Qualys User Guide - MySQL Authentication (.zip)
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST)
or list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in
the XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The
title must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
ssl_verify={0|1} ((Optional to create or update record, and valid for
server that supports SSL) Specify 1 for a complete SSL
certificate validation.
259
Chapter 5 - Scan Authentication
MySQL Record
Parameter Description
database={value} (Required to create, optional to update record) The
database name to authenticate to. Specify a valid
MySQL database name.
port={value} (Required to create, optional to update record) The port
the database name is running on.
windows_config_file= (Optional to create or update record) The path to the
{value} Windows MySQL config file. Access to this config file is
required to run certain checks on Windows hosts.
Note: You must specify either windows_config_file or
unix_config_file depending on the host OS.
unix_config_file={value} (Optional) Name of the client (Consultant type
subscriptions).
Note: You must specify either windows_config_file or
unix_config_file depending on the host OS.
client_cert={value} (Optional to create or update record) PEM-encoded
X.509 certificate. Specify if certificate authentication is
required by your server to establish an SSL connection.
client_key={value} (Optional to create or update record) PEM-encoded RSA
private key. Specify if certificate authentication is
required by your server to establish an SSL connection.
Login credentials
login_type={basic|vault} (Optional) The login type is basic by default. Specify
login_type=vault to use an authentication vault.
username={value} (Required to create record, optional to update record)
The IP address(es) the server will log into using the
record’s credentials. Multiple entries are comma
separated.
password={value} (Required to create record, optional to update record)
The password to be used for authentication to MySQL
server.
Vault
vault_type={value} (Required only when action=create and login_type=
vault) The vault to be used for authentication. See
Vault Support matrix.
vault_id={value} (Required only when action=create and login_type=
vault) The ID of the vault you want to use.
{vault parameters} (Required only when action=create and
login_type=vault) Vault specific parameters required
depend on the vault type you've selected. See Vault
Definition.
Target Hosts
260
Chapter 5 - Scan Authentication
MySQL Record
Parameter Description
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple
entries are comma separated.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_MYSQL_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/mysql/auth_mysql_lis
t_output.dtd">
<AUTH_MYSQL_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-07-17T17:09:18Z</DATETIME>
<AUTH_MYSQL_LIST>
<AUTH_MYSQL>
<ID>284212</ID>
<TITLE><![CDATA[api-Thycotic Secret Server_tss]]></TITLE>
<USERNAME><![CDATA[test_tss]]></USERNAME>
<DATABASE><![CDATA[mysql]]></DATABASE>
<PORT>22</PORT>
<HOSTS>
<HOST><![CDATA[www.test.com]]></HOST>
</HOSTS>
261
Chapter 5 - Scan Authentication
MySQL Record
<IP_SET>
<IP>10.10.10.181</IP>
</IP_SET>
<LOGIN_TYPE><![CDATA[vault]]></LOGIN_TYPE>
<DIGITAL_VAULT>
<DIGITAL_VAULT_ID><![CDATA[166638]]></DIGITAL_VAULT_ID>
<DIGITAL_VAULT_TYPE><![CDATA[Thycotic Secret
Server]]></DIGITAL_VAULT_TYPE>
<DIGITAL_VAULT_TITLE><![CDATA[3_Secret
Server]]></DIGITAL_VAULT_TITLE>
<VAULT_SECRET_NAME><![CDATA[secret]]></VAULT_SECRET_NAME>
</DIGITAL_VAULT>
<SSL_VERIFY>true</SSL_VERIFY>
<WINDOWS_CONF_FILE><![CDATA[c:\mysql\myu.ini]]></WINDOWS_CONF_FILE
>
<UNIX_CONF_FILE><![CDATA[]]></UNIX_CONF_FILE>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2018-07-16T21:53:55Z</DATETIME>
<BY>seenu_yn</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2018-07-16T21:55:05Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS><![CDATA[test comments]]></COMMENTS>
</AUTH_MYSQL>
</AUTH_MYSQL_LIST>
</RESPONSE>
</AUTH_MYSQL_LIST_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-07-27T17:02:23Z</DATETIME>
262
Chapter 5 - Scan Authentication
MySQL Record
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>291734</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-07-27T17:14:57Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>291735</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
263
Chapter 5 - Scan Authentication
MySQL Record
XML output:
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-01-23T17:14:28Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>137296922</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-07-27T21:53:55Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>284212</ID>
</ID_SET>
264
Chapter 5 - Scan Authentication
MySQL Record
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
265
Chapter 5 - Scan Authentication
Oracle Record
Oracle Record
/api/2.0/fo/auth/oracle/
[POST]
Create, update, list and delete Oracle records for authenticated scans of Oracle instances.
Vulnerability and compliance scans are supported (using VM, PC).
How it works - During scanning we'll authenticate to one or more instances on a single
host using all Oracle records in your account. For compliance scans, you can scan multiple
Oracle instances on a single host and port combination. Looking for more help? Search for
“Oracle Use Cases” in Qualys online help.
Requirement - You must configure login credentials on target hosts before scanning.
Download Qualys User Guide - Oracle Authentication for VM Scans (.zip)
Download Qualys User Guide - Oracle Authentication for Compliance Scans (.zip)
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} ((Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record, optional to update record) A
title for the record. The title must be unique. Maximum 255
characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
Login credentials
username={value} (Required to create record, optional to update record) The
user account to be used for authentication to the Oracle
database. The username may include 1-31 characters
(ascii).
password={value} (Required to create record, optional to update record) The
password corresponding to the user account defined in the
record for authentication. The password may include 1-31
characters (ascii).
266
Chapter 5 - Scan Authentication
Oracle Record
Parameter Description
sid={value} (Optional to create or update record) The Oracle System ID
(SID) that identifies the database instance to be
authenticated to. To create a record sid or servicename is
required.
267
Chapter 5 - Scan Authentication
Oracle Record
Parameter Description
add_ips={value} (Optional to update record) Add IPs and/or ranges to the IPs
list for this record. Multiple IPs/ranges are comma
separated.
268
Chapter 5 - Scan Authentication
Oracle Record
Parameter Description
win_tnsnames_ora_path= (Required if perform_windows_os_checks=1 is specified;
{value} otherwise invalid)
The pathname to the Windows tnsnames.ora file. Example:
c:\ProgramFiles\oracle\network\admin\tnsnames.ora
OS Parameters Unix OS Parameters are used for compliance scans only.
perform_unix_os_checks= (Optional) Specify 1 to perform OS-dependent compliance
{0|1} checks for the Oracle technology during Unix
authenticated compliance scans. These checks are
assigned to the control category “Databse Setttings” in the
sub-category “DB OS-dependent Controls”.
perform_unix_opatch_checks (Optional) Specify 1 to perform OPatch checks using the
={0|1} OPatch binary to return a list of all installed patches for the
Oracle instance.
269
Chapter 5 - Scan Authentication
Oracle Record
Parameter Description
unix_tnsnames_ora_path= (Required if perform_unix_os_checks=1 and/or
{value} perform_unix_opatch_checks=1 is specified; otherwise
invalid)
The pathname to the Unix tnsnames.ora file.
Example: /usr/opt/oracle/network/admin/tnsnames.ora
unix_invptrloc={value} (Optional) if perform_unix_opatch_checks=1 is specified;
otherwise invalid)
The pathname to the Unix oraInst.loc file. Use this
parameter to identify a custom inventory for patches.
Example: /usr/opt/oracle/network/admin/oraInst.loc
270
Chapter 5 - Scan Authentication
Oracle Listener Record
Create, update, list and delete Oracle Listener records for authenticated scans of Oracle
Listener databases. Vulnerability scans are supported (using VM).
Oracle Listener records are used to connect to Oracle TNS Listeners in order to enumerate
information about databases behind the Oracle Listeners. When authentication is
successful and databases behind the Listener are discovered, the QID 19225 “Retrieved
Oracle Database Name” is returned in the scan results. This is an information gathered
check that lists the names of the databases discovered behind the Listener. This
information is useful if you want to create Oracle authentication records on those
databases and need the Oracle System IDs (SIDs).
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record, optional to update record) A
title for the record. The title must be unique. Maximum 255
characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
password={value} (Required to create record, optional to update record)
Specifies a password for authentication to target hosts. If
more than one Listener is detected on the same host, then
the same password is attempted on each Listener. The
password may include 1-31 characters (ascii).
271
Chapter 5 - Scan Authentication
Oracle Listener Record
Parameter Description
Target Hosts
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple entries
are comma separated.
272
Chapter 5 - Scan Authentication
Oracle WebLogic Server Record
Create, update, list and delete Oracle WebLogic records for authenticated scans of Oracle
WebLogic Server instances. Vulnerability and compliance scans are supported (using VM,
PC).
What you'll need:
- We support these technologies: Oracle WebLogic Server 11g and Oracle WebLogic Server
12c
- Unix authentication is required so you’ll need a Unix record for each host running an
Oracle WebLogic Server
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST)
or list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in
the XML output. By default these are not included.
ids={value} (Required for update request; invalid for create request)
The IDs of the Oracle WebLogic Server authentication
records that you want to update. Multiple IDs are
comma separated
title={value} (Required to create record) A title for the record. The
title must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
installation_path={value} (Required to create record, optional to update record)
The directory where the Oracle WebLogic Server is
installed (i.e. Home directory).
Example: /u01/app/oracle/middleware
auto_discover={0|1} (Optional) For a create request, we default to
auto_discover=1, which means we will use auto
discovery to find all domains for you. Specify
auto_discover=0 and we will not auto discover
domains. For an update request, we will keep the
record’s settings as is unless you overwrite them.
273
Chapter 5 - Scan Authentication
Oracle WebLogic Server Record
Parameter Description
domain={value} (Optional) A single Oracle WebLogic Server domain
name.
Example: website
XML output:
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
274
Chapter 5 - Scan Authentication
Oracle WebLogic Server Record
<RESPONSE>
<DATETIME>2018-03-10T13:30:49Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>2707632279</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-03-10T13:42:46Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>2707642279</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
275
Chapter 5 - Scan Authentication
Palo Alto Firewall Record
Create, update, list and delete Palo Alto Firewall records for authenticated scans of Palo
Alto Firewall instances. Vulnerability and compliance scans are supported (using VM, PC).
Requirements:
- The user account you provide for authentication must either have the predefined role
“Superuser (read-only)” or a custom role with these XML API privileges enabled:
Configuration and Operational Requests.
- We use the PANOS XML API to retrieve system information from Palo Alto Firewall on
port 443 so this port must be open.
Tip - We strongly recommend you create one or more dedicated user accounts to be used
solely by the Qualys Cloud Platform to authenticate to Palo Alto Firewall instances.
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
Login credentials
username={value} (Required to create record, optional to update record) The
username of the account to be used for authentication. If
password is specified this is the username of a Palo Alto
Firewall account. If login_type=vault is specified, this is the
username of a vault account. Maximum 255 characters
(ascii).
password={value} (To create record password or login_type=vault is required)
The password of the Palo Alto Firewall account to be used
for authentication. Maximum 100 characters (ascii).
276
Chapter 5 - Scan Authentication
Palo Alto Firewall Record
Parameter Description
login_type=vault (To create record password or login_type=vault is required)
Set to vault if a third party vault will be used to retrieve
password. Vault parameters need to be provided in the
record. See Chapter 9 - Networks
Target Hosts
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple entries
are comma separated.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-01-14T06:29:41Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
277
Chapter 5 - Scan Authentication
Palo Alto Firewall Record
<ID>125727</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-01-16T06:22:01Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>125726</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
278
Chapter 5 - Scan Authentication
Palo Alto Firewall Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_PALO_ALTO_FIREWALL_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/palo_alto_firewall/a
uth_palo_alto_firewall_list_output.dtd">
<AUTH_PALO_ALTO_FIREWALL_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-09-13T06:30:32Z</DATETIME>
<AUTH_PALO_ALTO_FIREWALL_LIST>
<AUTH_PALO_ALTO_FIREWALL>
<ID>125727</ID>
<TITLE><![CDATA[palo-4]]></TITLE>
<USERNAME><![CDATA[root]]></USERNAME>
<SSL_VERIFY><![CDATA[1]]></SSL_VERIFY>
<IP_SET>
<IP>10.10.10.10</IP>
</IP_SET>
<LOGIN_TYPE><![CDATA[basic]]></LOGIN_TYPE>
<CREATED>
<DATETIME>2017-09-13T06:29:41Z</DATETIME>
...
279
Chapter 5 - Scan Authentication
PostgreSQL Record
PostgreSQL Record
/api/2.0/fo/auth/postgresql/
[POST]
Create, update, list and delete PostgreSQL records for authenticated scans of PostgreSQL
Version 9.0 instances running on Unix. Compliance scans are supported (using PC).
Requirement - You must configure login credentials on target hosts before scanning.
Qualys User Guide - PostreSQL Authentication (.zip)
Tip - We strongly recommend you create one or more dedicated user accounts to be used
solely by the Qualys Cloud Platform to authenticate to PostgreSQL database instances.
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
PostgreSQL
pgsql_unix_conf_file= (Required for create request) The full path to the
{value} PostgreSQL configuration file on your Unix assets (IP
addresses). The file must be in the same location on all
assets for this record.
pgsql_db_name={value} (Required for create request) The database instance you
want to authenticate to.
port={value} (Optional) The port where the database instance is
running. Default is 5432.
hosts={value} (Required if ssl_verify=1) A list of FQDNs for all host IP
addresses on which a custom SSL certificate signed by a
trusted root CA is installed.
ssl_verify={0|1} (Optional) SSL verification is skipped by default. Set to 1 if
you want to verify the server’s certificate is valid and
trusted.
280
Chapter 5 - Scan Authentication
PostgreSQL Record
Parameter Description
Login credentials
username={value} (Required for create request) The username of the account
to be used for authentication. If password is specified this
is the username of a PostgreSQL account. If
login_type=vault is specified, this is the username of a
vault account. Maximum 255 characters (ascii).
password={value} (For create request, password or login_type=vault is
required)
The password of the PostgreSQL account to be used for
authentication. Maximum 100 characters (ascii).
login_type=vault (To create record password or login_type=vault is required)
Set to vault if a third party vault will be used to retrieve
password. Vault parameters need to be provided in the
record. See Vault Definition
Keys, Passphrase
client_key_type={value} (Optional) Client key type basic (default) or vault.
client_key={value} (Optional if client_key_type=basic) Client key content, if
private key not in vault.
client_key_vault_type={value} (Required if client_key_type=vault) The third party vault to
be used to retrieve the private key. Certain vaults support
this capability. See Vault Support matrix
client_key_vault_id={value} (Required if client_key_type=vault) The ID of the vault to
get the private key from.
281
Chapter 5 - Scan Authentication
PostgreSQL Record
Parameter Description
Target Hosts
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple entries
are comma separated.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-03-27T20:17:42Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
282
Chapter 5 - Scan Authentication
PostgreSQL Record
<ID_SET>
<ID>84307</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-10T21:01:57Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>78782</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_POSTGRESQL_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/postgresql/auth_post
283
Chapter 5 - Scan Authentication
PostgreSQL Record
gresql_list_output.dtd">
<AUTH_POSTGRESQL_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-24T22:01:50Z</DATETIME>
<AUTH_POSTGRESQL_LIST>
<AUTH_POSTGRESQL>
<ID>79518</ID>
<TITLE><![CDATA[PostgesSQL1]]></TITLE>
<USERNAME><![CDATA[acme_as1]]></USERNAME>
<DATABASE><![CDATA[mydb1]]></DATABASE>
<PORT>5432</PORT>
<SSL_VERIFY><![CDATA[0]]></SSL_VERIFY>
<IP_SET>
<IP>10.10.10.45</IP>
</IP_SET>
<UNIX_CONF_FILE><![CDATA[/var/lib/pgsql/9.3/data/postgresql.conf]]
></UNIX_CONF_FILE>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2018-04-13T23:42:50Z</DATETIME>
<BY>acme_as1</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2018-04-20T23:35:42Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS><![CDATA[my comments]]></COMMENTS>
</AUTH_POSTGRESQL>
<AUTH_POSTGRESQL>
<ID>82110</ID>
<TITLE><![CDATA[POstgreSQL2]]></TITLE>
<USERNAME><![CDATA[acme_as1]]></USERNAME>
<DATABASE><![CDATA[mydb2]]></DATABASE>
<PORT>5432</PORT>
<SSL_VERIFY><![CDATA[1]]></SSL_VERIFY>
<HOSTS>
<HOST><![CDATA[cent-31-107.ml2k8.qualys.com]]></HOST>
</HOSTS>
<IP_SET>
<IP>10.20.31.107</IP>
</IP_SET>
<UNIX_CONF_FILE><![CDATA[/var/lib/pgsql/9.3/data/postgresql.conf]]
></UNIX_CONF_FILE>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2018-04-20T20:12:48Z</DATETIME>
<BY>acme_as1</BY>
284
Chapter 5 - Scan Authentication
PostgreSQL Record
</CREATED>
...
</AUTH_POSTGRESQL_LIST>
</RESPONSE>
</AUTH_POSTGRESQL_LIST_OUTPUT>
285
Chapter 5 - Scan Authentication
SNMP Record
SNMP Record
/api/2.0/fo/auth/snmp/
[POST]
Create, update, list and delete SNMP records for authenticated scans of SNMP enabled
devices. Supported are vulnerability and compliance scans (using VM, PC). Supported
versions are SNMPv1, SNMPv2 and SNMPv3.
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
version={v1|v2c|v3} (Optional to create or update record) Specifies the SNMP
protocol version. For an update request, this parameter
overwrites the existing SNMP version with a new version. A
valid value is:
v1 = SNMPv1 (the default)
v2c = SNMPv2c
v3 = SNMPv3
Login credentials
community_strings={value} (Optional and valid using SNMPv1 and SNMPv2c) The
SNMP community strings to be used for authentication to
target hosts. Multiple entries are comma separated. The
service attempts authentication using several common
default community strings. When community_strings is
specified, the user-provided community strings are used
for authentication before the default community strings.
286
Chapter 5 - Scan Authentication
SNMP Record
Parameter Description
username={value} (Optional and valid using SNMPv3) The user account for
authentication to target hosts. A maximum of 128
characters may be specified.
287
Chapter 5 - Scan Authentication
SNMP Record
Parameter Description
encrypt_password={value} (Optional and valid using SNMPv3) The password if privacy
(data encryption) is to be used for SNMP communication.
Maximum of 128 characters.
288
Chapter 5 - Scan Authentication
SNMP Record
Parameter Description
context={value} (Optional and valid using SNMPv3) The context name used
in scoped PDUs when a context is part of the target host
configuration. A maximum of 128 characters may be
specified.
289
Chapter 5 - Scan Authentication
SNMP Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-02-27T06:22:01Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>125726</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
290
Chapter 5 - Scan Authentication
Sybase Record
Sybase Record
/api/2.0/fo/auth/sybase/
[POST]
Create, update, list and delete Sybase records for authenticating to Sybase Adaptive Server
Enterprise (ASE) instances. Sybase auth records are supported for VM & PC.
Requirement - You must configure login credentials on target hosts before scanning.
Download Qualys User Guide - Sybase Authentication (.zip)
Tip - We strongly recommend you create one or more dedicated user accounts to be used
solely by the Qualys Cloud Platform to authenticate to Sybase database instances.
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
Sybase
port={value} (Required to create record) The port the Sybase database is
on.
database={value} (Optional to create and update record) The name of the
Sybase database you want to authenticate to.
291
Chapter 5 - Scan Authentication
Sybase Record
Parameter Description
auto_discover_databases= Specify auto_discover_databases=1 and we will find all
{0|1} Sybase database instances on the target host. This means
you no longer have to create a separate Sybase record for
each database name. Create one record with Auto Discover
Databases enabled to authenticate to multiple databases
on the same host.
292
Chapter 5 - Scan Authentication
Sybase Record
Parameter Description
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple entries
are comma separated.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-10T20:52:31Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>78782</ID>
293
Chapter 5 - Scan Authentication
Sybase Record
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-18T18:54:36Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>88888</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
Sample - Create Sybase Record to enable password encryption and auto discovery
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl Sample" -d
"action=create&title=sybase_record&network_id=19015&username=acme_
ac12&password=password&password_encryption=1&ips=10.10.24.12&auto_
discover_databases=1&port=444&installation_dir=/dir123&comments=Th
is%20
Sybase%20comments"
"https://qualysapi.qualys.com/api/2.0/fo/auth/sybase/" > file.xml
294
Chapter 5 - Scan Authentication
Sybase Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"http://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-04-18T15:45:05Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>43025</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_SYBASE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/sybase/auth_sybase_l
ist_output.dtd">
<AUTH_SYBASE_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-04-10T21:32:21Z</DATETIME>
<AUTH_SYBASE_LIST>
<AUTH_SYBASE>
<ID>78177</ID>
<TITLE><![CDATA[api_syb_basic_2IPs_NW2]]></TITLE>
295
Chapter 5 - Scan Authentication
Sybase Record
<USERNAME><![CDATA[api_user1]]></USERNAME>
<DATABASE><![CDATA[api_sybDB1]]></DATABASE>
<PORT>444</PORT>
<IP_SET>
<IP_RANGE>10.10.24.12-10.10.24.13</IP_RANGE>
</IP_SET>
<NETWORK_ID>19019</NETWORK_ID>
<CREATED>
<DATETIME>2017-04-08T00:17:17Z</DATETIME>
<BY>enter_ss</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2017-04-08T00:17:17Z</DATETIME>
</LAST_MODIFIED>
</AUTH_SYBASE>
<AUTH_SYBASE>
<ID>78186</ID>
<TITLE><![CDATA[api_syb_basic_2IPs_Global]]></TITLE>
<USERNAME><![CDATA[api_user1]]></USERNAME>
<DATABASE><![CDATA[api_sybDB1]]></DATABASE>
<PORT>444</PORT>
<IP_SET>
<IP_RANGE>10.10.24.12-10.10.24.13</IP_RANGE>
</IP_SET>
<NETWORK_ID>0</NETWORK_ID>
<CREATED>
<DATETIME>2017-04-08T01:10:04Z</DATETIME>
<BY>enter_ss</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2017-04-08T01:10:04Z</DATETIME>
</LAST_MODIFIED>
</AUTH_SYBASE>
...
296
Chapter 5 - Scan Authentication
Unix Record
Unix Record
/api/2.0/fo/auth/unix/
[POST]
Create, update, list and delete Unix records for authenticated scans of hosts running on
Unix, Cisco and Checkpoint Firewall. Vulnerability and compliance scans are supported
on Unix and Cisco systems (using VM, PC). Compliance scans are supported on
Checkpoint Firewall systems (using PC).
Download Qualys User Guide - Unix Authentication (pdf)
Input Parameters
Parameters: Request | Login credentials| Unix only | Target Hosts
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
sub_type={cisco| (Required for hosts running on Cisco or Checkpoint
checkpoint_firewall} Fiirewall) Choose cisco or checkpoint_firewall if you're
scanning one of these system types.
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
port={value} (Optional and valid for compliance scans only) Custom
ports to be used to perform authenticated compliance
assessment (control testing).
Ports Used For Unix Compliance Scans
Login credentials
username={value} (Required to create record, optional to update record) The
username of the account to be used for authentication. If
login_type=vault is specified, this is the username of a
vault account. Maximum 255 characters (ascii).
password={value} (To create record password or login_type=vault is required)
The password of the PostgreSQL account to be used for
authentication when a vault will not be used. The
password may include 1-31 characters (ascii).
297
Chapter 5 - Scan Authentication
Unix Record
Parameter Description
login_type={basic|vault} (To create record password or login_type=vault is required)
Set to vault if a third party vault will be used to retrieve
password. Vault parameters need to be provided in the
record. See Vault Definition
cleartext_password={0|1} (Optional) When not specified, the scanning engine only
uses strong password encryption for remote login. Specify
1 to allow your password to be transmitted in clear text
when connecting to services which do not support strong
password encryption. For more info, search for “Clear Text
Password” in online help.
298
Chapter 5 - Scan Authentication
Unix Record
Parameter Description
agentless_tracking_path= (Required if use_agentless_tracking=1 for Unix record, i.e.
{value} not supported for Cisco or Checkpoint Firewall sub-type)
299
Chapter 5 - Scan Authentication
Unix Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-18T18:54:36Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>12345</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
300
Chapter 5 - Scan Authentication
Unix Record
--data-binary @add_params.xml
add_params.xml
<?xml version="1.0" encoding="UTF-8" ?>
<UNIX_AUTH_PARAMS>
<ROOT_TOOLS>
<ROOT_TOOL>
<STANDARD_TYPE type="pimsu"/>
<PASSWORD_INFO type="vault">
<DIGITAL_VAULT>
<VAULT_USERNAME><![CDATA[root]]></VAULT_USERNAME>
<VAULT_TYPE>Thycotic Secret Server</VAULT_TYPE>
<VAULT_ID>25026922</VAULT_ID>
<SECRET_NAME><![CDATA[super_secret_name]]></SECRET_NAME>
</DIGITAL_VAULT>
</PASSWORD_INFO>
</ROOT_TOOL>
<ROOT_TOOL>
<CUSTOM_TYPE><![CDATA[test]]></CUSTOM_TYPE>
<PASSWORD_INFO type="basic">
<PASSWORD><![CDATA[password]]></PASSWORD>
</PASSWORD_INFO>
</ROOT_TOOL>
</ROOT_TOOLS>
<PRIVATE_KEY_CERTIFICATES>
<PRIVATE_KEY_CERTIFICATE>
<PRIVATE_KEY_INFO type="vault">
<DIGITAL_VAULT>
<VAULT_TYPE>CyberArk AIM</VAULT_TYPE>
<VAULT_ID>25026922</VAULT_ID>
<FOLDER><![CDATA[folder]]></FOLDER>
<FILE><![CDATA[file]]></FILE>
</DIGITAL_VAULT>
</PRIVATE_KEY_INFO>
<PASSPHRASE_INFO type="basic">
<PASSPHRASE><![CDATA[passphrase]]></PASSPHRASE>
</PASSPHRASE_INFO>
</PRIVATE_KEY_CERTIFICATE>
<PRIVATE_KEY_CERTIFICATE>
<PRIVATE_KEY_INFO type="basic">
<PRIVATE_KEY type="rsa">
<![CDATA[-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,F9A653E2D12E019357B349B6EEE068B1
301
Chapter 5 - Scan Authentication
Unix Record
FiLfGHOc0rREmC0cBPsiyqqaitPNYTGeqKRmSBwGNrAzNTAcsKslsoY/WkMDW6QD
dLZNiGB0CFag94zyoMyCjyrdpayACAOWfH5w8VixxHF16Vxx5b6foLBE40FOYAIP
sdm1HvCfSFaN2dPf1Unb0erwjigjJNwYIV78529elE+2+dZIemi90ibh0R35NB60
TLeS3UUVezp/O9ZPLf0pqPPHnWgfW4GXp/SUpwojES9fCQE+BW4MMWHWu8XKtytt
....
-----END RSA PRIVATE KEY-----]]></PRIVATE_KEY>
</PRIVATE_KEY_INFO>
<PASSPHRASE_INFO type="vault">
<DIGITAL_VAULT>
<VAULT_USERNAME><![CDATA[PASSPHRASE
USERNAME]]></VAULT_USERNAME>
<VAULT_TYPE>Quest Vault</VAULT_TYPE>
<VAULT_ID>35046922</VAULT_ID>
<SYSTEM_NAME><![CDATA[quest_system_name]]></SYSTEM_NAME>
</DIGITAL_VAULT>
</PASSPHRASE_INFO>
<CERTIFICATE type="openssh">
<![CDATA[[email protected]
AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgwR4bJSiBtJlOgCAQUF
3yZ6Io2WYfnBiOEsQ45RKbqLgAAAADAQABAAABAQC5sVLb7emh8/v2uHp6x1pN5R+M
HQwz3A5M3GRKtuuu1Njc/XYgqeWLMOJpbVtCVXwUcPgKt4Q0DmlGqc4uhZhzrdtpQG
HrEivndNNLY9NQj7LozE7x/sGiWdtmlucUh1teXMaBpM4aER9Y6uW5wv6ZylY7CAV9
bcVz/ljlSypmjzkPjJ39AJq+QxZkIv+H4uh/T05LwHdilFrjWWwEoI8DV/DRIw3h8o
4jhnj1QxBxyjad3efmFaejgRnY6cBW821gm...
</CERTIFICATE>
</PRIVATE_KEY_CERTIFICATE>
<PRIVATE_KEY_CERTIFICATE>
<PRIVATE_KEY_INFO type="basic">
<PRIVATE_KEY type="rsa">
<![CDATA[-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABCPiE
UH5L3LZGInEw+h/m4+AAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQCp
uwFVTYVmske0bdFjSlYgsfvyCr7e5irIfoW7B8hNY0XJWyOEqZ5BzwPAEtzjua6m3v
nqKPEQD1HyFdLse62JE7x0jDXLr9bZ64THFpogERC/gI2aorrLKLxdr0K7u5wQUTm1
L0xO7Y0hE9Bbi8ok++xTW+Ymf7LbVRLWVdN6kUBunIGow3W+tHIohPoUlw82QayZRa
4iXpqpWVbh/9OMnb1raC
....
-----END OPENSSH PRIVATE KEY-----]]></PRIVATE_KEY>
</PRIVATE_KEY_INFO>
</PRIVATE_KEY_CERTIFICATE>
</PRIVATE_KEY_CERTIFICATES>
</UNIX_AUTH_PARAMS>
302
Chapter 5 - Scan Authentication
Unix Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-18T18:54:36Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>12333</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
More Samples
Qualys API - Unix Authentication API samples (GitHub)
303
Chapter 5 - Scan Authentication
VMware Record
VMware Record
/api/2.0/fo/auth/vmware/
[POST]
Create, update, list and delete VMware records for authenticating to vSphere components
running vSphere v4.x and 5.x. Vulnerability and compliance scans are supported (using
VM, PC).
How it works - The VMware record allows for connections to the vSphere API for vSphere
5.x and 4.x. The vSphere API is a SOAP API used by all vSphere components, including
VMware ESXi, VMware ESX, VMware vCenter Server, and the VMware vCenter Server
Appliance. By default, the API connection occurs over an encrypted SSL web services
connection on port 443.
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
Login credentials
username={value} (Required to create record, optional to update record) The
user name for a VMware account. A maximum of 13
characters (ascii) may be specified.
password={value} (To create record password or login_type=vault is required)
The password for a VMware account. Maximum 13
characters (ascii).
login_type={basic|vault} (To create record password or login_type=vault is required)
Set to vault if a third party vault will be used to retrieve
password. Vault parameters need to be provided in the
record. See Vault Definition
port={value} (Optional) The service communicates with ESXi web
services on port 443 and another port can be configured.
When unspecified, port 443 is used.
304
Chapter 5 - Scan Authentication
VMware Record
Parameter Description
hosts={value} (Optional) A list of FQDNs for the hosts that correspond to
all ESXi host IP addresses on which a custom SSL
certificate signed by a trusted root CA is installed. Multiple
hosts are comma separated.
ssl_verify={value} (Optional) Specify “all” for a complete SSL certificate
validation. Specify “skip” if the host SSL certificate is self-
signed or uses an SSL certificate signed by a custom root
CA. Specify “none” for no SSL verification.
Target Hosts
ips={value} (Required to create record) The IP address(es) the server
will log into using the record’s credentials. Multiple entries
are comma separated.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
305
Chapter 5 - Scan Authentication
VMware Record
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-02-13T21:16:41Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>30486</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
306
Chapter 5 - Scan Authentication
Windows Record
Windows Record
/api/2.0/fo/auth/windows/
[POST]
Create, update, list and delete Windows records for authenticating to Windows systems.
Vulnerability and Compliance scans are supported (using VM, PC).
Download Qualys User Guide - Windows Authentication (.pdf)
Input Parameters
Parameter Description
action={action} (Required) Specify create, update, delete (using POST) or
list (using GET or POST).
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ids={value} (Required to update or delete record) Record IDs to
update/delete. Specify record IDs and/or ID ranges (for
example, 1359-1407). Multiple entries are comma
separated.
title={value} (Required to create record) A title for the record. The title
must be unique. Maximum 255 characters (ascii).
comments={value} (Optional to create or update record) User defined
comments. Maximum of 1999 characters.
use_agentless_tracking= (Optional to create or update record) Specify 1 to enable
[0|1} Agentless Tracking.
Login credentials
username={value} (Required to create record, optional to update record) The
username for the Windows account to be used for
authentication on target hosts. The username may include
1-31 characters (ascii).
password={value} (To create record password or login_type=vault is required)
The password of the Windows account to be used for
authentication. The password may include 1-31 characters
(ascii).
login_type={basic|vault} (To create record password or login_type=vault is required)
Set to vault if a third party vault will be used to retrieve
password. Vault parameters need to be provided in the
record. See Vault Definition
307
Chapter 5 - Scan Authentication
Windows Record
Parameter Description
windows_ad_domain= (Optional) The Windows Active Directory domain name for
{value} domain level authentication. When specified, we’ll use an
Active Directory forest to authenticate to hosts in a certain
domain within the framework. You’ll need to enter a Fully
Qualified Domain Name (FQDN). See Windows Domains
308
Chapter 5 - Scan Authentication
Windows Record
Parameter Description
add_ips={value} (Optional to update record) Add IPs and/or ranges to the IPs
list for this record. Multiple IPs/ranges are comma
separated.
For Windows local host level authentication, NTLMv2 and NTLMv1 protocols are
supported.
NTLMv2 is enabled by default in new records. If NTLM was enabled in a record prior
to this release, then NTLMv1 is enabled.
kerberos={0|1} (Optional) When not specified, Kerberos is enabled
allowing the scanning engine to try Kerberos when
negotiating authentication to target hosts. Specify
kerberos=0 if you do not want Kerberos attempted.
309
Chapter 5 - Scan Authentication
Windows Record
Parameter Description
require_smb_signing={0|1} (Optional) Set to 0 (default) when SMB signing is not
required.
Windows Domains
- Supported domain types: Active Directory, NetBIOS User-Selected IPs, NetBIOS Service-
Selected IPs.
- Authentication is performed at the local host level when a domain name is not defined
for Active Directory (windows_ad_domain) or NetBIOS (windows_domain).
- Once a Windows record is saved, you cannot change the domain type from Active
Directory to NetBIOS or from NetBIOS to Active Directory.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/windows/batch_return
.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-13T21:16:41Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>30486</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
310
Chapter 5 - Scan Authentication
Windows Record
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_WINDOWS_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/windows/auth_windows
_list_output.dtd">
<AUTH_WINDOWS_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-30T09:29:45Z</DATETIME>
<AUTH_WINDOWS_LIST>
<AUTH_WINDOWS>
<ID>1310338</ID>
<TITLE><![CDATA[Windows_Record_1]]></TITLE>
<USERNAME><![CDATA[acme_jd]]></USERNAME>
<IP_SET>
<IP>10.10.10.202</IP>
</IP_SET>
<CREATED>
<DATETIME>2018-04-30T09:28:00Z</DATETIME>
<BY>acme_jd</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2018-04-30T09:28:43Z</DATETIME>
</LAST_MODIFIED>
<COMMENTS><![CDATA[My comments on Windows Record
1]]></COMMENTS>
</AUTH_WINDOWS>
</AUTH_WINDOWS_LIST>
<GLOSSARY>
<USER_LIST>
<USER>
<USER_LOGIN>acme_jd</USER_LOGIN>
<FIRST_NAME>John</FIRST_NAME>
<LAST_NAME>Doe</LAST_NAME>
</USER>
</USER_LIST>
311
Chapter 5 - Scan Authentication
Windows Record
</GLOSSARY>
</RESPONSE>
</AUTH_WINDOWS_LIST_OUTPUT>
312
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
Create, update, list and delete Oracle HTTP Server records for authenticating to Unix and
Windows systems. Vulnerability and Compliance scans are supported (using VM, PC). User
permissions for this API are the same as other authentication record APIs. Note that the
API supports authentication record creation only for Oracle Server installed on respective
OS - Unix or Windows.
Input parameters
Parameter Description
title={value} (Required to create record) A title for the record. The title must
be unique. Maximum 255 characters (ascii).
network_id={value} (Optional and valid when the networks feature is enabled) The
network ID for the record.
add_ips={value} (Optional to update record) Add IPs to the IPs list for this
record. Multiple IPs/ranges are comma separated.
comments={value} (Optional to create or update record) User defined comments.
Maximum of 1999 characters.
action={action} (Required) Specify create, update, delete (using POST) or list
(using GET or POST).
ips={value} (Required to create record) The IP address(es) the server will
log into using the record’s credentials. Multiple entries are
comma separated.
(Optional to update record) IPs specified will overwrite existing
IPs in the record, and existing IPs will be removed.
ids={value} (Required to update or delete record) Record Oracle HTTP type
auth record IDs to update.
Specify record IDs and/or ID ranges (for example, 1359-1407).
Multiple entries are comma separated.
Unix Configuration
unix_home_path={value} (Required to create or update record if Unix working mode is
selected) The root directory path for Oracle HTTP Server.
Maximum of 255 characters.
unix_domain_path={value} (Required to create or update record if Unix working mode is
selected for Oracle HTTP Server 12c and higher) Absolute path
to the top level directory where domains are configured.
Maximum of 255 characters.
unix_inst_path={value} (Required to create or update record if Unix working mode is
selected for Oracle HTTP Server 11g) Absolute path to the top
level directory where instances are configured. Maximum of
255 characters.
313
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
Parameter Description
unix_inst_name={value} (Optional) The Oracle HTTP server instance name. Maximum
of 4000 characters.
Windows Configuration
windows_home_path={value} (Required to create or update record if Windows working mode
is selected) The home directory path. Maximum of 255
characters.
windows_domain_path={value} (Required to create or update record if Windows working mode
is selected for Oracle HTTP Server 12c and higher) Absolute
path to the top level directory where domains are configured.
Maximum of 255 characters.
windows_inst_path={value} (Required to create or update record if Windows working mode
is selected for Oracle HTTP Server 11g) Absolute path to the
top level directory where instances are configured. Maximum
of 255 characters.
windows_inst_name={value} (Optional) The Oracle HTTP server instance name. Maximum
of 4000 characters.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-10-15T05:51:21Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>1530246</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
314
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-10-15T05:50:01Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>1530243</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-10-15T05:45:50Z</DATETIME>
<BATCH_LIST>
<BATCH>
315
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>1530234</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-10-15T05:48:55Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Created</TEXT>
<ID_SET>
<ID>1530241</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
316
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-10-15T06:01:38Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>1530246</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-10-15T06:05:43Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>1530243</ID>
</ID_SET>
</BATCH>
317
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2019-10-15T06:14:31Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<ID_SET>
<ID>1530234</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
318
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_ORACLE_HTTP_SERVER_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/oracle_http_server/a
uth_oracle_http_server_list_output.dtd">
<AUTH_ORACLE_HTTP_SERVER_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-10-04T07:28:22Z</DATETIME>
<AUTH_ORACLE_HTTP_SERVER_LIST>
<AUTH_ORACLE_HTTP_SERVER>
<ID>1505927</ID>
<TITLE><![CDATA[Oracle_HTTP_Unix server]]></TITLE>
<IP_SET>
<IP>10.11.70.24</IP>
</IP_SET>
<UNIX>
<HOME_PATH><![CDATA[/opt/Oracle/Middleware/Oracle_WT1]]></HOME_PAT
H>
<DOMAIN_PATH><![CDATA[]]></DOMAIN_PATH>
<INST_PATH><![CDATA[/opt/Oracle/Middleware/Oracle_WT1/instances/in
319
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
stance1]]></INST_PATH>
<INST_NAME><![CDATA[ohs1]]></INST_NAME>
</UNIX>
<CREATED>
<DATETIME>2019-10-03T12:24:04Z</DATETIME>
<BY> john_doe</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2019-10-03T12:24:04Z</DATETIME>
</LAST_MODIFIED>
</AUTH_ORACLE_HTTP_SERVER>
</AUTH_ORACLE_HTTP_SERVER_LIST>
</RESPONSE>
</AUTH_ORACLE_HTTP_SERVER_LIST_OUTPUT>
<!-- CONFIDENTIAL AND PROPRIETARY INFORMATION. Qualys provides the
QualysGuard Service "As Is," without any warranty of any kind.
Qualys makes no warranty that the information contained in this
report is complete or error-free. Copyright 2019, Qualys, Inc. //-
->
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_ORACLE_HTTP_SERVER_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/auth/oracle_http_server/a
uth_oracle_http_server_list_output.dtd">
<AUTH_ORACLE_HTTP_SERVER_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-10-04T07:29:33Z</DATETIME>
<AUTH_ORACLE_HTTP_SERVER_LIST>
<AUTH_ORACLE_HTTP_SERVER>
<ID>1505927</ID>
<TITLE><![CDATA[Oracle_HTTP_Unix server]]></TITLE>
<IP_SET>
<IP>10.11.70.24</IP>
</IP_SET>
<UNIX>
<HOME_PATH><![CDATA[/opt/Oracle/Middleware/Oracle_WT1]]></HOME_PAT
H>
320
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
<DOMAIN_PATH><![CDATA[]]></DOMAIN_PATH>
<INST_PATH><![CDATA[/opt/Oracle/Middleware/Oracle_WT1/instances/in
stance1]]></INST_PATH>
<INST_NAME><![CDATA[ohs1]]></INST_NAME>
</UNIX>
<CREATED>
<DATETIME>2019-10-03T12:24:04Z</DATETIME>
<BY> john_doe</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2019-10-03T12:24:04Z</DATETIME>
</LAST_MODIFIED>
</AUTH_ORACLE_HTTP_SERVER>
</AUTH_ORACLE_HTTP_SERVER_LIST>
<GLOSSARY>
<USER_LIST>
<USER>
<USER_LOGIN> john_doe</USER_LOGIN>
<FIRST_NAME>John</FIRST_NAME>
<LAST_NAME>Doe</LAST_NAME>
</USER>
</USER_LIST>
</GLOSSARY>
</RESPONSE>
</AUTH_ORACLE_HTTP_SERVER_LIST_OUTPUT>
<!-- CONFIDENTIAL AND PROPRIETARY INFORMATION. Qualys provides the
QualysGuard Service "As Is," without any warranty of any kind.
Qualys makes no warranty that the information contained in this
report is complete or error-free. Copyright 2019, Qualys, Inc. //-
->
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
321
Chapter 5 - Scan Authentication
Oracle HTTP Server Record
<DATETIME>2019-10-04T09:19:50Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Deleted</TEXT>
<ID_SET>
<ID>1507609</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
<platform API
server>/api/2.0/fo/auth/oracle_http_server/auth_oracle_http_server_list_output.dtd
322
Chapter 6 - Vault Support
Vault Support matrix
Vault summary
Vault Support matrix View supported vaults by OS and
supported features (i.e.
password, key passphrase,
private key
Vault settings
Vault Definition Use Authentication API
(/api/2.0/fo/auth/*) to add vault
definition in authentication
records
List Vaults Use Vault API (/api/2.0/fo/vault)
to list vault records
Manage Vaults Use Vault API (/api/2.0/fo/vault)
to create, edit, and delete vault
records
323
Chapter 6 - Vault Support
Vault Support matrix
324
Chapter 6 - Vault Support
Vault Support matrix
325
Chapter 6 - Vault Support
Vault Support matrix
326
Chapter 6 - Vault Support
Vault Definition
Vault Definition
Various record types support adding vault definition as part of authentication record
settings. When supported these parameters are used to provide the vault definition in
record settings.
Parameter Description
login_type={basic|vault} (Required only when you want to create or update vault
information) Set login_type=vault, to add vault
information. By default, the parameter is set to basic.
vault_id={value} (Required only when action=create and login_type=vault)
A vault ID.
For Windows, vault_id and password parameters are
mutually exclusive and cannot be specified in the same
request.
For Unix, vault_id and password, cleartext_password
parameters are mutually exclusive and cannot be
specified in the same request.
327
Chapter 6 - Vault Support
Vault Definition
Parameter Description
vault_type={value} (Required only when action=create and login_type=vault)
Want to know what vaults support what technologies and
capabilities? See Vault Support matrix
Choose one:
Azure Key
BeyondTrust PBPS
CA Access Control
CA PAM
CyberArk AIM
CyberArk PIM Suite
HashiCorp
Hitachi ID PAM (no parameters specific to this vault type.)
Lieberman ERPM
Quest Vault
Thycotic Secret Server
Wallix AdminBastion (WAB)
Azure Key
ak_secret_name={value} (Optional) The secret name assigned to the secret stored
in the vault.
BeyondTrust PBPS
system_name={value} (Optional if vault type is BeyondTrust PBPS) The managed
system name (also known as asset name). When not
specified, we’ll attempt to auto-discover the system name
at scan time.
account_name={value} (Optional if vault type is BeyondTrust PBPS) The account
name. When not specified, we’ll try the username
specified in the authentication record.
CA Access Control
end_point_name={value} (Required if vault type is CA Access Control) The End-Point
name identifies a managed system, either a target for
local accounts or a domain controller for domain
accounts. An End-Point name is a user-defined value
within your installation of CA Access Control Enterprise
Management. The End-Point name entered in this record
must match a pre-defined name exactly.
end_point_type={value} (Required if vault type is CA Access Control) The End-Point
type represents the method of access to the End-Point
system. CA Access Control Enterprise Management uses
pre-defined values for various methods and the End-Point
type value must match a pre-defined value exactly.
Examples: "Windows Agentless" (for Windows accounts)
and "SSH Device" (for Unix via SSH).
328
Chapter 6 - Vault Support
Vault Definition
Parameter Description
end_point_container= (Required if vault type is CA Access Control ) The End-
{value} Point container stores configuration values. CA Access
Control Enterprise Management uses pre-defined values
for various methods and the End-Point container value
must match a pre-defined value exactly. Examples:
"Accounts" (for Windows accounts) and "SSH Accounts"
(for Unix via SSH).
CA PAM
vault_app_name={value} (Required) Application name as defined in the vault
configuration for accessing a specific device.
vault_device_name={value} (Optional) Specify the target device name defined in the
vault configuration for which you want to retrieve the
credentials.
329
Chapter 6 - Vault Support
Vault Definition
Parameter Description
vault_device_host={value} (Optional) Specify the target device address defined in the
vault configuration for which you want to retrieve the
credentials.
330
Chapter 6 - Vault Support
Vault Definition
Parameter Description
CyberArk PIM Suite
folder={value} (Required if vault type is CyberArk PIM Suite) Specify the
name of the folder in the secure digital safe where the
password to be used for authentication should be stored.
The folder name can contain a maximum of 169
characters. Entering a trailing /, as in folder/, is optional
(when specified, the service removes the trailing / and
does not save it in the folder name). The maximum length
of a folder name with a file name is 170 characters (the
leading and/or trailing space in the input value will be
removed). These special characters cannot be included in
a folder name: / : * ? " < > | <tab>
file={value} (Required if vault type is CyberArk PIM Suite) Specify the
name of the file in the secure digital safe where the
password to be used for authentication should be stored.
The file name can contain a maximum of 165 characters.
The maximum length of a folder name plus a file name is
170 characters (the leading and/or trailing space in the
input value will be removed). These special characters
cannot be included in a file name: \ / : * ? " < > | <tab>
HashiCorp
secret_kv_path={value} (Optional if vault type is HashiCorp) The path of the secret
engine. The default is “secret”.
secret_kv_name={value} (Required if vault type is HashiCorp) The secret name
which stores key-value pairs.
secret_kv_key={value} (Required if vault type is HashiCorp) The key name for
identifying a specific key-value pair.
Lieberman ERPM
auto_discover_system_nam (Required if vault type is Lieberman ERPM) Specify 1 to
e={0|1} enable auto discovery of the system name and 0 to disable
auto discovery.
Each system in your ERPM environment has a system
name and this is needed in order to retrieve the password
for authentication. Use auto discovery to allow the service
to find the system name for you at scan time. The service
uses information known about each host (like the IP
address and FQDN) to query ERPM for the system name.
Auto discovery is the only option available when your
record includes multiple IPs.
system_name_single_host= (Required if vault type is Lieberman ERPM) Specify the
{value} system name that is needed to retrieve password for
authentication.
To specify system_name_single_host, ensure that auto
discovery of system name is disabled
(auto_discover_system_name=0). If auto discovery of
system name is enabled (auto_discover_system_name=1),
specifying system_name_single_host is invalid.
331
Chapter 6 - Vault Support
Vault Definition
Parameter Description
system_type={value} (Required if vault type is Lieberman ERPM) A valid value is
one of the following system type: auto, windows, unix,
oracle, mssq, ldap, cisco, custom
custom_system_type={valu (Required if vault type is Lieberman ERPM) Specify the
e} custom system type name.
custom_system_type is valid only when
system_type=custom.
Quest Vault
system_name={value} (Required if vault type is Quest Vault) Specify the system
name. During a scan we'll perform a search for the system
name and then retrieve the password. A single exact
match of the system name must be found in order for
authentication to be successful.
Thycotic Secret Server
secret_name={value} (Required if vault type is Thycotic Secret Server) Specify
the secret name that contains the password to be used for
authentication. The scanning engine will perform a
search for the secret name and then get the password
from the secret returned by the search. A single exact
match of the secret name must be found in order for
authentication to be successful. The secret name may
contain a maximum of 256 characters, and must not
contain multibyte characters.
332
Chapter 6 - Vault Support
Vault Definition
Parameter Description
Wallix AdminBastion (WAB)
authorization_name= (Required if vault type is Wallix AdminBastion (WAB))
{value} Specify the name of the authorization that enables secret
retrieval from a group of targets.
target_name={value} (Required if vault type is Wallix AdminBastion (WAB))
Specify the name of the target device using one of these
formats:
user@global_WABdomain
user@local_WABdomain@device
333
Chapter 6 - Vault Support
List Vaults
List Vaults
The Authentication Vault API (resource /api/2.0/fo/vault/) allows you to list
authentication vaults in your account. Use the parameter “action=list” to list the vaults
Permissions: Managers, Unit Managers and Scanners can view vaults and their settings.
API request:
curl -u "USERNAME:PASSWD" -H "X-Requested-With: curl" -d
"action=list" "https://qualysapi.qualys.com/api/2.0/fo/vault/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE AUTH_VAULT_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/vault/vault_output.dtd">
<AUTH_VAULT_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2014-09-12T13:55:57Z</DATETIME>
<STATUS>Success</STATUS>
<COUNT>13</COUNT>
<AUTH_VAULTS>
<AUTH_VAULT>
<TITLE>
<![CDATA[added failover ip]]>
</TITLE>
<VAULT_TYPE>
<![CDATA[CyberArk PIM Suite]]>
</VAULT_TYPE>
<LAST_MODIFIED>
<DATETIME>2014-02-13T12:05:21Z</DATETIME>
<BY>quays_rn1</BY>
</LAST_MODIFIED>
<ID>1421</ID>
</AUTH_VAULT>
<AUTH_VAULT>
<TITLE>
<![CDATA[added failover ip1]]>
</TITLE>
<VAULT_TYPE>
<![CDATA[CyberArk PIM Suite]]>
</VAULT_TYPE>
<LAST_MODIFIED>
<DATETIME>2014-02-19T06:43:44Z</DATETIME>
<BY>quays_rn1</BY>
</LAST_MODIFIED>
334
Chapter 6 - Vault Support
List Vaults
<ID>1441</ID>
</AUTH_VAULT>
<AUTH_VAULT>
<TITLE>
<![CDATA[Blue]]>
</TITLE>
<VAULT_TYPE>
<![CDATA[CA Access Control]]>
</VAULT_TYPE>
<LAST_MODIFIED>
<DATETIME>2013-09-21T05:26:32Z</DATETIME>
<BY>quays_rn1</BY>
</LAST_MODIFIED>
<ID>1406</ID>
</AUTH_VAULT>
</AUTH_VAULTS>
</RESPONSE>
</AUTH_VAULT_LIST_OUTPUT>
Parameters:
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Set to 1 to show (echo) the request’s input
parameters (names and value) in the XML output.
title={value} (Optional) Include vaults matching this title.
type={value} (Optional) Include a certain vault type only. A valid value
is:
BeyondTrust PBPS
CA Access Control
CA PAM
CyberArk AIM
CyberArk PIM Suite
HashiCorp
Hitachi ID PAM
Lieberman ERPM
Quest Vault
Thycotic Secret Server
Wallix AdminBastion (WAB)
modified={date} (Optional) Include vaults modified on or after a certain
date/time, in this format: YYYY-MM-
DD[THH:MM:SSZ] (UTC/GMT).
orderby={value} (Optional) Sort the vaults list by certain data. One of: “id”,
“title”, “system_name”, “last_modified”,
“last_modified_by”. A date must be specified in
YYYYMM-DD[THH:MM:SSZ] format (UTC/GMT).
335
Chapter 6 - Vault Support
List Vaults
Parameter Description
sortorder={asc|desc} (Optional) The sort order, used when the request
includes the orderby parameter. One of: asc (for
ascending order) or desc (for descending order).
limit={value} (Optional) The maximum number of vault records
processed for the request, starting at the record number
specified by the offset parameter. These parameters
must be specified together: limit and offset.
336
Chapter 6 - Vault Support
Manage Vaults
Manage Vaults
The Authentication Vault API (resource /api/2.0/fo/vault) allows you to manage
authentication vaults (create, update, delete) as separate configurations.
Permissions: Managers can perform all functions (create, update, delete). Unit Managers
can perform these functions if they are granted the permission “Create/edit
authentication records/vaults”.
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: curl" -d
"action=create&type=CyberArk AIM&title=New-CyberArk-
AIM&appid=CyberArk007&safe=Vaultsafe&url=https://afco.com&ssl_veri
fy=1&
cert=-----BEGIN+CERTIFICATE-----
%0D%0AMIIDXzCCAkcCAQEwDQYJKoZIwdjELMAkGA1UEBhM%0D%0A-----
END+CERTIFICATE
-----&private_key_pwd=password&private_key=-----
BEGIN+RSA+PRIVATE+KEY-----
%0D%0AMIIEowIBAAKCAQEAmbSGAPwS662q5SsJ2XA2mVvKOfXa%2%0D%0A-----
END+RSA+PRIVATE+KEY-----"
"https://qualysapi.qualys.com/api/2.0/fo/vault/index.php"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
337
Chapter 6 - Vault Support
Manage Vaults
API request:
curl -u "USERNAME:PASSWD" -H "X-Requested-With: curl" -X "POST" -d
"id=14836922&server_address=10.10.10.10"
"https://qualysapi.qualys.com/api/2.0/fo/vault/?action=update"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-09-12T14:13:28Z</DATETIME>
<TEXT>Success</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>14836922</VALUE>
</ITEM>
338
Chapter 6 - Vault Support
Manage Vaults
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: curl" -d
"action=view&id=7004"
"https://qualysapi.qualys.com/api/2.0/fo/vault/index.php"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE VAULT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/vault/vault_view.dtd">
<VAULT_OUTPUT>
<RESPONSE>
<DATETIME>2016-09-08T06:38:28Z</DATETIME>
<VAULT_QUEST>
<TITLE><![CDATA[New CyberArk AIM Vault]]></TITLE>
<COMMENTS><![CDATA[]]></COMMENTS>
<VAULT_TYPE><![CDATA[CyberArk AIM]]></VAULT_TYPE>
<CREATED_ON>2016-09-07T07:09:34Z</CREATED_ON>
<OWNER>user_john</OWNER>
<LAST_MODIFIED>
<DATETIME>2016-09-08T06:37:49Z</DATETIME>
<BY>user_john</BY>
</LAST_MODIFIED>
<APPID><![CDATA[735435]]></APPID>
<URL><![CDATA[https://afco.com]]></URL>
<SSL_VERIFY><![CDATA[1]]></SSL_VERIFY>
<SAFE><![CDATA[56908456904]]></SAFE>
<ID>7004</ID>
</VAULT_QUEST>
</RESPONSE>
</VAULT_OUTPUT>
339
Chapter 6 - Vault Support
Manage Vaults
Delete a vault
Parameter Description
action=view (Required)
id={value} (Required) A vault ID.
API request:
curl -u "USERNAME:PASSWD" -H "X-Requested-With: curl" -d
"id=43463"
"https://qualysapi.qualys.com/api/2.0/fo/vault/?action=delete"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-09-12T14:13:28Z</DATETIME>
<TEXT>Success</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>Status</KEY>
<VALUE>Deleted</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
340
Chapter 6 - Vault Support
Manage Vaults
Enter the certificate block after the key block and be sure
to include the first and last line (-----BEGIN CERTIFICATE-
---- and -----END CERTIFICATE-----).
For a create/update request, if the cert parameter is
specified, then the private_key parameter must also be
specified.
341
Chapter 6 - Vault Support
Manage Vaults
342
Chapter 6 - Vault Support
Manage Vaults
CyberArk AIM
appid={value} (Required) Application ID string defined by the customer.
The application ID acts as an authenticator for our
scanner to call CCP web services API. The maximum
length of an application ID name is 128 bytes and the first
28 characters must be unique (leading and/or trailing
space or periods in the input value will be removed).
These restricted words cannot be included in a
application ID: Users, Addresses, Areas, XUserRules,
unknown, Locations, Safes, Schedule, VaultCategories,
Builtin. These special characters cannot be included in a
application ID: \ / : * ? " < > | \t \r \n \x1F.
safe={value} (Required) The name of the digital password safe. The safe
name can contain a maximum of 28 characters (leading
and/or trailing space in the input value will be removed).
These special characters cannot be included in a safe
name:
\ / : * ? " < > | \t \r \n \x1F
url={value} (Required) The HTTP or HTTPS URL over SSL protocols to
access CyberArk's CCP web services.
ssl_verify={1|0} (Required) When set to 1, our service will verify the CCP
SSL certificate of the web server to make sure the
certificate is valid and trusted. When set to 0 our service
will not verify the certificate of the web server.
cert={value} (Optional) You must include an X.509 certificate with your
private key. Enter the certificate block after the key block
and be sure to include the first and last line (-----BEGIN
CERTIFICATE----- and -----END CERTIFICATE-----).
For a create/update request, if the certificate parameter is
specified, then the private_key parameter must also be
specified.
private_key={value} (Optional) Specify private key for authentication. Copy the
contents of private key file (id_rsa) and be sure to include
the first and last line (-----BEGIN PRIVATE KEY----- and ----
-END PRIVATE KEY-----).
For a create/update request, if the private_key parameter
is specified, then the certificate parameter must also be
specified.
private_key_pwd={value} (Optional) Specify a password for the encrypted
private_key.
CyberArk PIM Suite
server_address={value} (Required for new vault) The IP address of the vault server
that stores system login credentials to be used.
port={value} (Optional) The port the vault server is running on. The
port must be in the range 1025 to 65535. For a new vault
the port is set to 1858 by default, if the port parameter is
not specified.
343
Chapter 6 - Vault Support
Manage Vaults
safe={value} (Required for new vault) The name of the digital password
safe. The safe name can contain a maximum of 28
characters (leading and/or trailing space in the input
value will be removed). These special characters cannot
be included in a safe name: \ / : * ? " < > . |
username={value} (Required for new vault) The username for an account
with access to your CyberArk PIM Suite environment.
password={value} (Required for new vault) The password for an account
with access to your CyberArk PIM Suite environment.
HashiCorp
url={value} (Required) The HTTP or HTTPS URL to access the
HashiCorp Vault HTTP API.
api_version{value} (Optional) The HashiCorp Vault HTTP API version. This is
v1 by default, which is the only supported version.
ssl_verify={0|1} (Optional) When set to 1 (the default), our service will
verify the SSL certificate of the web server to make sure
the certificate is valid and trusted. When set to 0, our
service will not verify the certificate of the web server.
auth_type={value} (Required to create vault, optional to update vault)
HashiCorp Vault API supports three authentication types.
First choose any one of the authentication method you
want to use (Username/Password, Cert or App Role) and
then provide login credentials for authenticating to the
vault server via the HashiCorp Vault HTTP API.
344
Chapter 6 - Vault Support
Manage Vaults
345
Chapter 6 - Vault Support
Manage Vaults
Lieberman ERPM
url={value} (Required for new vault) The HTTP or HTTPS URL of the
Lieberman ERPM server.
domain={value} (Optional) A domain name if your Lieberman ERPM server
is part of a domain.
username={value} (Required for new vault) The username for the Lieberman
ERPM server account.
password={value} (Required) The password for the Lieberman ERPM server
account.
ssl_verify={1|0} (Required for new vault) When set to 1, our service will
verify the SSL certificate of the web server to make sure
the certificate is valid and trusted. When set to 0 our
service will not verify the certificate of the web server.
Quest Vault
server_address={value} (Required for new vault) The IP address of the vault server,
Quest One Privileged Password Manager.
port={value} (Optional) The listing port of the vault server. For a new
vault the port is set to 22 by default, if the port parameter
is not specified.
username={value} (Required for new vault) The username to be used for SSH
authentication. We recommend you create a dedicated
user account for Qualys scanning. Using Quest/Dell 2.4 or
higher, enter the key for the API user account you've
created for use with our service. We support both API and
CLI keys but recommend use of an API key.
access_key={value} (Required for new vault) The DSA private key in PEM
format for SSH authentication.
Thycotic Secret Server
url={value} (Required for new vault) The HTTP or HTTPS URL of the
Secret Server webservices. The URL may contain a
maximum of 256 characters, and must not contain
multibyte characters.
username={value} (Required for new vault) The username for a Secret Server
user. This user must have access to the secret names to be
used for authentication.
password={value} (Required for new vault) The password for a Secret Server
user.
domain={value} (Optional) Specify a fully qualified domain name if Secret
Server is integrated with Active Directory. The domain
may contain a maximum of 128 characters, and must not
contain any multibyte characters.
Wallix AdminBastion (WAB)
url={value} (Required for new vault) The HTTP or HTTPS URL to
access the WAB web services API.
346
Chapter 6 - Vault Support
Manage Vaults
347
Chapter 7 - Assets
Chapter 7 - Assets
Manage the host assets you want to scan (internal and external facing) for vulnerabilities
and compliance.
IP List | Add IPs | Update IPs
Host List
Host List Detection | Normalized Data | Best Practices | Use Cases
Excluded Host List | Excluded Hosts Change History | Manage Excluded Hosts
Virtual Host List | Manage Virtual Hosts
Restricted IPs List | Manage Restricted IPs
Asset Group List | Manage Asset Groups
Purge Hosts
Patch List
348
Chapter 7 - Assets
IP List
IP List
/api/2.0/fo/asset/ip/?action=list
[GET] [POST]
List IP addresses in the user account. By default, all hosts in the user account are
included. Optional input parameters support filtering the list by IP addresses and host
tracking method.
Permissions - Managers and Auditors view all assets in the subscription, Unit Managers
view assets in their own business unit, Scanners and Readers view assets in their own
account.
Express Lite - This API is available to Express Lite users.
Input Parameters
Parameter Description
action=list (Required) A flag used to make an IP list request.
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When unspecified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
ips={value} (Optional) Show only certain IP addresses/ranges. One or
more IPs/ranges may be specified. Multiple entries are
comma separated. A host IP range is specified with a
hyphen (for example, 10.10.10.44-10.10.10.90).
network_id={value} (Optional, and valid only when the Network Support
feature is enabled for the user’s account) Restrict the
request to a certain custom network ID.
tracking_method={value} (Optional) Show only IP addresses/ranges which have a
certain tracking method. A valid value is: IP, DNS, or
NETBIOS.
349
Chapter 7 - Assets
IP List
Parameter Description
compliance_enabled={0|1} (Optional) Specifying this parameter is valid only when the
policy compliance module is enabled for the user account.
This parameter is invalid for an Express Lite user.
350
Chapter 7 - Assets
Add IPs
XML output:
<!DOCTYPE IP_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/ip/
ip_list_output.dtd">
<IP_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-05-21T13:32:17Z</DATETIME>
<IP_SET>
<IP>123.123.45.0</IP>
<IP_RANGE>123.124.45.0-123.124.45.255</IP_RANGE>
<IP_RANGE>123.124.46.0-123.124.46.255</IP_RANGE>
<IP_RANGE>123.124.47.0-123.124.47.255</IP_RANGE>
<IP_RANGE>123.124.48.0-123.124.48.255</IP_RANGE>
</IP_SET>
</RESPONSE>
</IP_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/asset/ip/ip_list_output.dtd
Add IPs
/api/2.0/fo/asset/ip/?action=add
[POST]
Add IP addresses to the user's subscription. Once added they are available for scanning
and reporting.
Permissions - A Manager has permissions to add IP addresses. A Unit Manager can add IP
addresses when the “Add assets” permission is enabled in their account. Users with other
roles (Scanner, Reader, Auditor) do not have permissions to add IP addresses.
351
Chapter 7 - Assets
Add IPs
Input Parameters
Parameter Description
action=add (Required)
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ips={value} -or- (Required) The hosts you want to add to the subscription.
{POSTed CSV raw data} IPs must be specified by using the “ips” parameter (using
the POST method) or by uploading CSV raw data (using the
POST method). To upload CSV raw data, specify --data-
binary <data>.
352
Chapter 7 - Assets
Update IPs
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-08-07T01:21:03Z</DATETIME>
<TEXT>IPs successfully added to Vulnerability
Management/Compliance Management</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
DTD
<platform API server>/api/2.0/simple_return.dtd
Update IPs
/api/2.0/fo/asset/ip/?action=update
[POST]
Update IP addresses in the user's subscription. Once added they are available for scanning
and reporting.
Permissions - A Manager has permissions to update IP addresses. A Unit Manager can
update IP addresses in asset groups assigned to the user’s business unit. Users with other
roles (Scanner, Reader, Auditor) do not have permissions to update IP addresses.
Input Parameters
Parameter Description
action=update (Required)
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
353
Chapter 7 - Assets
Update IPs
Parameter Description
ips={value} -or- (Required) The hosts within the subscription you want to
{POSTed CSV raw data} update. IPs must be specified by using the “ips” parameter
(using the POST method) or by uploading CSV raw data
(using the POST method). To upload CSV raw data, specify -
-data-binary <data>.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-07T17:27:36Z</DATETIME>
<TEXT>IPs successfully updated</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
354
Chapter 7 - Assets
Update IPs
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE DUPLICATE_HOSTS_ERROR_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/ip/duplicate_hosts_
error.dtd">
<DUPLICATE_HOSTS_ERROR_OUTPUT>
<RESPONSE>
<CODE>1982</CODE>
<DATETIME>2018-03-16T04:54:15Z</DATETIME>
<WARNING>
<TEXT>You cannot change the tracking method for the following
host using the API since there are multiple scan data entries. This
can happen when the host is resolved to different hostnames in
different scan tasks. You'll need to change the tracking method
using the UI. Use the URL to log into your account, edit the host
and select another tracking method. At the prompt click Apply to
save the most recent scan data and purge the other scan
data.</TEXT>
<DUPLICATE_HOSTS>
<DUPLICATE_HOST>
<IP>10.10.25.224</IP>
<DNS_HOSTNAME>ora10105-win-25-
224.qualys.com</DNS_HOSTNAME>
<NETBIOS_HOSTNAME>ORA10105-WIN-25</NETBIOS_HOSTNAME>
<LAST_SCANDATE>09/09/2016 at 13:35:29
(GMT)</LAST_SCANDATE>
<TRACKING>DNS</TRACKING>
355
Chapter 7 - Assets
Update IPs
</DUPLICATE_HOST>
</DUPLICATE_HOSTS>
<URL><![CDATA[https://qualysguard.qualys.com/fo/tools/ip_assets.ph
p]]></URL>
</WARNING>
</RESPONSE>
</DUPLICATE_HOSTS_ERROR_OUTPUT>
356
Chapter 7 - Assets
Host List
Host List
/api/2.0/fo/asset/host/?action=list
[GET] [POST]
Download a list of scanned hosts in the user’s account. By default, all scanned hosts in the
user account are included and basic information about each host is provided. Hosts in the
XML output are sorted by host ID in ascending order.
The output of the Host List API is paginated. By default, a maximum of 1,000 host records
are returned per request. You can customize the page size (i.e. the number of host records)
by using the parameter “truncation_limit=10000” for instance. In this case the results will
be return with pages of 10,000 host records.
Permissions - Managers view all scanned hosts in subscription. Auditors view all scanned
compliance hosts in subscription. Unit Managers view scanned hosts in user’s business
unit. Scanners and Readers view scanned hosts in user’s account. For Unit Managers,
Scanners, and Readers to view compliance hosts, the “Manage compliance” permission
must be granted in the user’s account.
Express Lite - This API is available to Express Lite users.
Input Parameters
Parameter Description
action=list (Required) A flag used to make a host list request.
echo_request={0|1} (Optional) Specify 1 to view input parameters in the XML
output. When unspecified, parameters are not included in
the XML output.
357
Chapter 7 - Assets
Host List
Parameter Description
details={Basic|Basic/AGs | (Optional) Show the requested amount of host information
All|All/AGs | None} for each host. A valid value is: Basic, Basic/AGs, All,
All/AGs, or None.
PCRE syntax:
http://php.net/manual/en/reference.pcre.pattern.syntax.p
hp
http://www.php.net/manual/en/reference.pcre.pattern.pos
ix.php
358
Chapter 7 - Assets
Host List
Parameter Description
truncation_limit={value} (Optional) Specify the maximum number of host records
processed per request. When not specified, the truncation
limit is set to 1000 host records. You may specify a value
less than the default (1-999) or greater than the default
(1001-1000000).
See example:
Qualys API - Host List API samples (GitHub, sample 3)
359
Chapter 7 - Assets
Host List
Parameter Description
compliance_enabled={0|1} (Optional) This parameter is valid only when the policy
compliance module is enabled for the user account. This
parameter is invalid for an Express Lite user.
360
Chapter 7 - Assets
Host List
Parameter Description
compliance_scan_since= (Optional) Show hosts that were last scanned for
{date} compliance since a certain date and time (optional). Hosts
that were the target of a compliance scan since the
date/time will be shown. This parameter is invalid for an
Express Lite user. Date/time is specified in this format:
YYYY-MM-DD[THH:MM:SSZ] (UTC/GMT).
361
Chapter 7 - Assets
Host List
Parameter Description
Asset Tags
use_tags={0|1} (Optional) Specify 0 (the default) if you want to select hosts
based on IP addresses/ranges and/or asset groups. Specify
1 if you want to select hosts based on asset tags.
tag_set_by={id|name} (Optional when use_tags=1) Specify “id” (the default) to
select a tag set by providing tag IDs. Specify “name” to
select a tag set by providing tag names.
tag_include_selector= (Optional when use_tags=1) Select “any” (the default) to
{any|all} include hosts that match at least one of the selected tags.
Select “all” to include hosts that match all of the selected
tags.
tag_exclude_selector= (Optional when use_tags=1) Select “any” (the default) to
{any|all} exclude hosts that match at least one of the selected tags.
Select “all” to exclude hosts that match all of the selected
tags.
tag_set_include={value} (Optional when use_tags=1) Specify a tag set to include.
Hosts that match these tags will be included. You identify
the tag set by providing tag name or IDs. Multiple entries
are comma separated.
tag_set_exclude={value} (Optional when use_tags=1) Specify a tag set to exclude.
Hosts that match these tags will be excluded. You identify
the tag set by providing tag name or IDs. Multiple entries
are comma separated.
show_tags={0|1} (Optional) Specify 1 to display asset tags associated with
each host in the XML output.
EC2 metadata
host_metadata={value} (Optional) Specify the name of the cloud provider to show
the assets managed by that cloud provider, i.e. EC2.
Note: Only supports fetching EC2 assets for now.
host_metadata_fields= (Optional when host_metadata is specified) Specify the
{value1,value2} EC2 instance fields to fetch the data for.
Data can be fetched for the following fields: accountId,
region, availabilityZone, instanceId, instanceType, imageId,
kernelId.
Sample - List assets based on scan end date, scan processed date
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: curl"
"https://qualysapi.qualys.com/api/2.0/fo/asset/host/?action=list&t
runcation_limit=10&details=All/AGs&
vm_scan_date_before=2017-09-14T06:32:15Z&
vm_auth_scan_date_before=2017-09-14T06:32:15Z&
vm_scan_date_after=2016-05-12T06:32:15Z&
vm_auth_scan_date_after=2016-05-
362
Chapter 7 - Assets
Host List
12T06:32:15Z&vm_processed_before=2017-09
scap_scan_since=2018-08-29
XML output:
...
<HOST_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-26T11:22:56Z</DATETIME>
<HOST_LIST>
<HOST>
<ID>2872568</ID>
<IP>10.10.25.182</IP>
<TRACKING_METHOD>IP</TRACKING_METHOD>
<NETBIOS><![CDATA[COM-REG-SLES102]]></NETBIOS>
<OS><![CDATA[Linux 2.4-2.6 / Embedded Device / F5 Networks
Big-IP / Linux
2.6]]></OS>
<LAST_VULN_SCAN_DATETIME>2017-02-
05T19:48:17Z</LAST_VULN_SCAN_DATETIME>
<LAST_VM_SCANNED_DATE>2017-02-
05T19:48:17Z</LAST_VM_SCANNED_DATE>
<LAST_VM_SCANNED_DURATION>988</LAST_VM_SCANNED_DURATION>
<LAST_VM_AUTH_SCANNED_DATE>2017-02-
05T19:48:17Z</LAST_VM_AUTH_SCANNED_DATE>
<LAST_VM_AUTH_SCANNED_DURATION>988</LAST_VM_AUTH_SCANNED_D
URATION>
<LAST_COMPLIANCE_SCAN_DATETIME>2016-10-
09T16:23:26Z</LAST_COMPLIANCE_SCAN_DATETIME>
<LAST_SCAP_SCAN_DATETIME>2018-08-
29T08:44:54Z</LAST_SCAP_SCAN_DATETIME>
<OWNER>utwrx_kg</OWNER>
<COMMENTS><![CDATA[#RFDS#@]]></COMMENTS>
<USER_DEF>
<VALUE_1><![CDATA[###$#R]]></VALUE_1>
<VALUE_2><![CDATA[###RFESF#]]></VALUE_2>
<VALUE_3><![CDATA[#RFE#]]></VALUE_3>
</USER_DEF>
<ASSET_GROUP_IDS>473828,474410,474821,475800,476176,477561
,477562,478906,479441,479442,485951,548754,549447,553596,553598,55
8368,568715,572525,573976,573983,573985,607336,833161,891118,95706
2,1077977,1311813,1604575,1642904</ASSET_GROUP_IDS>
</HOST>
...
</HOST_LIST_OUTPUT>
363
Chapter 7 - Assets
Host List
XML output:
<!DOCTYPE HOST_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/host/host_list_outp
ut.dtd">
<HOST_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-04-15T09:50:46Z</DATETIME>
<HOST_LIST>
<HOST>
<ID>135151</ID>
<IP>10.97.5.247</IP>
<TRACKING_METHOD>EC2</TRACKING_METHOD>
<DNS><![CDATA[i-0bb87c3281243cdfd]]></DNS>
<EC2_INSTANCE_ID><![CDATA[i-
0bb87c3281243cdfd]]></EC2_INSTANCE_ID>
<OS><![CDATA[Amazon Linux 2016.09]]></OS>
<METADATA>
<EC2>
<ATTRIBUTE>
<NAME><![CDATA[latest/dynamic/instance-
identity/document/region]]></NAME>
<LAST_STATUS>Success</LAST_STATUS>
<VALUE><![CDATA[us-east-1]]></VALUE>
<LAST_SUCCESS_DATE>2017-03-
21T13:39:38Z</LAST_SUCCESS_DATE>
<LAST_ERROR_DATE></LAST_ERROR_DATE>
<LAST_ERROR><![CDATA[]]></LAST_ERROR>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME><![CDATA[latest/dynamic/instance-
identity/document/accountId]]></NAME>
<LAST_STATUS>Success</LAST_STATUS>
<VALUE><![CDATA[205767712438]]></VALUE>
<LAST_SUCCESS_DATE>2017-03-
21T13:39:38Z</LAST_SUCCESS_DATE>
<LAST_ERROR_DATE></LAST_ERROR_DATE>
<LAST_ERROR><![CDATA[]]></LAST_ERROR>
</ATTRIBUTE>
364
Chapter 7 - Assets
Host List
</EC2>
</METADATA>
<LAST_VULN_SCAN_DATETIME>2017-03-
21T13:39:38Z</LAST_VULN_SCAN_DATETIME>
<LAST_VM_SCANNED_DATE>2017-03-
21T13:39:38Z</LAST_VM_SCANNED_DATE>
<LAST_VM_SCANNED_DURATION>229</LAST_VM_SCANNED_DURATION>
<LAST_VM_AUTH_SCANNED_DATE>2017-03-
21T13:39:38Z</LAST_VM_AUTH_SCANNED_DATE>
<LAST_VM_AUTH_SCANNED_DURATION>229</LAST_VM_AUTH_SCANNED_DU
RATION>
<LAST_COMPLIANCE_SCAN_DATETIME>2017-03-
21T13:21:51Z</LAST_COMPLIANCE_SCAN_DATETIME>
</HOST>
</HOST_LIST>
</RESPONSE>
</HOST_LIST_OUTPUT>
<URL><![CDATA[https://qualysapi.qualys.com/api/2.0/fo/asset/host/?
action=list&id_min=2400356]]></URL>
</WARNING>
</RESPONSE>
...
DTD
<platform API server>/api/2.0/fo/asset/host/host_list_output.dtd
365
Chapter 7 - Assets
Host List Detection
Download a list of hosts with the hosts latest vulnerability data, based on the host based
scan data available in the user’s account. This data brings a lot of value to customers
because they provide the latest complete vulnerability status for the hosts (NEW, ACTIVE,
FIXED, REOPENED) and history information.
Permissions - Managers view all VM scanned hosts in subscription. Auditors have no
permission to view VM scanned hosts. Unit Managers view VM scanned hosts in user’s
business unit. Scanners and Readers view VM scanned hosts in user’s account.
Express Lite - This API is available to Express Lite users.
Input Parameters
The input parameter action=list is required. All other input parameters are optional.
Several filtering parameters are provided for filtering hosts and QIDs. When multiple filter
parameters are specified, the service combines the effects of all the parameters in a way
that corresponds to a logical “AND”. So if two filter parameters are specified in the
request, the service returns hosts that match both filters.
Quick Links: Detection Filters Host Filters | Detection Filters Host Filters | QID Filters |
Asset tags | EC2 metadata | Detection Timestamp
API Request
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Specify 1 to view input parameters in the XML
output. When unspecified, parameters are not included in
the XML output.
366
Chapter 7 - Assets
Host List Detection
Detection Filters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the output. When unspecified,
parameters are not included in the output. Specify 1 to
view parameters in the output.
show_results={0|1} (Optional) When not specified, results are included in the
output. Specify show_results=0 to exclude the results.
If you exclude the results, CSV will have an empty Results
column, and XML will not contain the Results tag.
show_reopened_info={0|1} (Optional) When not specified, reopened info for reopened
vulnerabilities is not included in the output. Specify
show_reopened_info=1 to include reopened info i.e.
first/last reopened date, times reopened.
arf_kernel_filter= (Optional) Identify vulnerabilities found on running or non-
{0|1|2|3|4} running Linux kernels.
Good to Know - It’s possible that multiple kernels are
detected on a single Linux host. You’ll notice the scan
results report the running kernel on each Linux host in Info
Gathered QID 45097.
When unspecified, vulnerabilities are not filtered based on
kernel activity. <AFFECT_RUNNING_KERNEL> does not
appear in the output.
When set to 0, vulnerabilities are not filtered based on
kernel activity. <AFFECT_RUNNING_KERNEL> appears in
the output for kernel related vulnerabilities.
When set to 1, exclude kernel related vulnerabilities that
are not exploitable (found on non-running kernels).
<AFFECT_RUNNING_KERNEL> appears in the output for
kernel related vulnerabilities.
When set to 2, only include kernel related vulnerabilities
that are not exploitable (found on non-running kernels).
<AFFECT_RUNNING_KERNEL> appears in the output with
a value of 0 for each detection.
When set to 3, only include kernel related vulnerabilities
that are exploitable (found on running kernels).
<AFFECT_RUNNING_KERNEL> appears in the output with
a value of 1 for each detection.
When set to 4, only include kernel related vulnerabilities.
<AFFECT_RUNNING_KERNEL> appears in the output with
a value of 0 or 1 for each detection.
Note that active_kernels_only is deprecated and will be
removed in a future release. Please use arf_kernel_filter
instead.
367
Chapter 7 - Assets
Host List Detection
Parameter Description
arf_service_filter= (Optional) Identify vulnerabilities found on running or non-
{0|1|2|3|4} running ports/services.
When unspecified, vulnerabilities are not filtered based on
running ports/services. <AFFECT_RUNNING_SERVICE>
does not appear in the output.
When set to 0, vulnerabilities are not filtered based on
running ports/services. <AFFECT_RUNNING_SERVICE>
appears in the output for service related vulnerabilities.
When set to 1, exclude service related vulnerabilities that
are exploitable (found on running ports/services).
<AFFECT_RUNNING_SERVICE> appears in the output for
service related vulnerabilities that have a value of 1.
When set to 2, only include service related vulnerabilities
that are exploitable (found on running ports/services).
<AFFECT_RUNNING_SERVICE> appears in the output with
a value of 0 for each detection.
When set to 3, only include service related vulnerabilities
that are not exploitable (found on non-running
ports/services). <AFFECT_RUNNING_SERVICE> appears in
the output with a value of 1 for each detection.
When set to 4, only include service related vulnerabilities.
<AFFECT_RUNNING_SERVICE> appears in the output with
a value of 0 or 1 for each detection.
arf_config_filter= (Optional) Identify vulnerabilities that may or may not be
{0|1|2|3|4} exploitable due to the current host configuration.
When unspecified, vulnerabilities are not filtered based on
host configuration. <AFFECT_EXPLOITABLE_CONFIG> does
not appear in the output.
When set to 0, vulnerabilities are not filtered based on host
configuration. <AFFECT_EXPLOITABLE_CONFIG> appears
in the output for config related vulnerabilities.
When set to 1, exclude vulnerabilities that are exploitable
due to host configuration.
<AFFECT_EXPLOITABLE_CONFIG> appears in the output
for config related detections that have a value of 1.
When set to 2, only include config related vulnerabilities
that are exploitable. <AFFECT_EXPLOITABLE_CONFIG>
appears in the output with a value of 0 for each detection.
When set to 3, only include config related vulnerabilities
that are not exploitable. <AFFECT_EXPLOITABLE_CONFIG>
appears in the output with a value of 1 for each detection.
When set to 4, only include config related vulnerabilities.
<AFFECT_EXPLOITABLE_CONFIG> appears in the output
with a value of 0 or 1 for each detection.
368
Chapter 7 - Assets
Host List Detection
Parameter Description
active_kernels_only= Optional) Identify vulnerabilities related to running and
{0|1|2|3} non-running kernels in the output in the tag
<AFFECT_RUNNING_KERNEL>.
Good to Know - It’s possible that multiple kernels are
detected on a single Linux host. You’ll notice the scan
results report the running kernel on each Linux host in
Information Gathered QID 45097.
When unspecified, vulnerabilities are not filtered based on
kernel activity. <AFFECT_RUNNING_KERNEL> does not
appear in the output for kernel related vulnerabilities.
When set to 0, vulnerabilities are not filtered based on
kernel activity. <AFFECT_RUNNING_KERNEL> appears in
the output for kernel related vulnerabilities.
When set to 1, exclude vulnerabilities found on non-
running Linux kernels. <AFFECT_RUNNING_KERNEL>
appears in the output for kernel related vulnerabilities.
When set to 2, only include vulnerabilities found on non-
running Linux kernels. <AFFECT_RUNNING_KERNEL>
appears in the output with a value of 0 for all
vulnerabilities.
When set to 3, only include vulnerabilities found on
running Linux kernels. <AFFECT_RUNNING_KERNEL>
appears in the output with a value of 1 for all
vulnerabilities.
Note that active_kernels_only is deprecated and will be
removed in a future release. Please use arf_kernel_filter
instead.
output_format={XML|CSV| (Optional) Specifies the format of the host detection list
CSV_NO_METADATA} output. When not specified, the output format is XML. A
valid value is XML, CSV, or CSV_NO_METADATA.
369
Chapter 7 - Assets
Host List Detection
Parameter Description
suppress_duplicated_data_from_csv={0|1}
(Optional) By default or when set to 0, host details will be
repeated in each line of detection information in the CSV
output. When set to 1, host details will not be repeated
(suppressed) in each detection line.
This parameter must be specified with:
output_format=CSV or
output_format=CSV_NO_METADATA.
truncation_limit={value} (Optional) Specifies the maximum number of host records
processed per request. When not specified, the truncation
limit is set to 1000 host records. You may specify a value
less than the default (1-999) or greater than the default
(1001-1000000). Specify 0 for no truncation limit.
370
Chapter 7 - Assets
Host List Detection
Parameter Description
detection_updated_since={value}
(Optional) Show only detections whose detection status
changed after a certain date and time. For detections that
have never changed the date is applied to the last detection
date. Valid date format is: YYYY-MMDD[THH:MM:SSZ]
format (UTC/GMT), like “2017-02-15” or “2017-02-
15T23:15:00Z”.
Tip: You can use this parameter in conjunction with the
detection_updated_before parameter to limit the
detections shown to a specific date range.
One of these parameters may be specified in the same
request: detection_updated_since,
max_days_since_detection_updated
detection_updated_before={value}
(Optional) Show only detections whose detection status
changed before a certain date and time. Valid date format
is: YYYY-MMDD[THH:MM:SSZ] format (UTC/GMT), like
“2017-02-15” or “2017-02-15T23:15:00Z”.
Tip: You can use this parameter in conjunction with the
detection_updated_since parameter to limit the detections
shown to a specific date range.
One of these parameters may be specified in the same
request: detection_updated_since,
max_days_since_detection_updated
detection_processed_before={date}
(Optional) Show detections with vulnerability scan results
processed before a certain date and time. Specify the date
in YYYY-MMDD[THH:MM:SSZ] format (UTC/GMT), like
“2016-09-12” or “2016-09-12T23:15:00Z”.
detection_processed_after={date}
(Optional) Show detections with vulnerability scan results
processed after a certain date and time. Specify the date in
YYYY-MMDD[ THH:MM:SSZ] format (UTC/GMT), like
“2016-09-12” or “2016-09-12T23:15:00Z”.
371
Chapter 7 - Assets
Host List Detection
Parameter Description
detection_last_tested_since={date}
(Optional) Show only detections that were last tested on or
after a certain date and time. Valid date format is:
YYYYMM-DD[THH:MM:SSZ] format (UTC/GMT), like “2018-
07-01” or “2018-01-25T23:12:00Z”.
372
Chapter 7 - Assets
Host List Detection
Parameter Description
detection_last_tested_before_days={value}
(Optional) Show only detections that were last tested
before the number of days you specify. For example, show
detections last tested more than 30 days ago.
373
Chapter 7 - Assets
Host List Detection
Host Filters
Parameter Description
ids={value} (Optional) Show only certain host IDs/ranges. One or more
host IDs/ranges may be specified. Multiple entries are
comma separated. A host ID range is specified with a
hyphen (for example: 190-400).Valid host IDs are required.
id_min={value} (Optional) Show only hosts which have a minimum host
ID value.
id_max={value} (Optional) Show only hosts which have a maximum host
ID value. A valid host ID is required.
ips={value} (Optional) Show only certain IP addresses/ranges. One or
more IPs/ranges may be specified. Multiple entries are
comma separated. An IP range is specified with a hyphen
(for example: 10.10.10.1-10.10.10.100).
ag_ids={value} (Optional) Show only hosts belonging to asset groups with
certain IDs. One or more asset group IDs and/or ranges
may be specified. Multiple entries are comma separated. A
range is specified with a dash (for example: 386941-
386945). Valid asset group IDs are required.
The ag_ids and ag_titles parameters are mutually exclusive
and cannot be specified together in the same request.
ag_titles={value} (Optional) Show only hosts belonging to asset groups with
certain strings in the asset group title. One or more asset
group titles may be specified. Multiple entries are comma
separated (for example,
My+First+Asset+Group,Another+Asset+Group).
The ag_ids and ag_titles parameters are mutually exclusive
and cannot be specified together in the same request.
network_ids={value} (Optional, and valid only when the Network Support
feature is enabled for the user’s account)
Restrict the request to certain custom network IDs.
Multiple network IDs are comma separated.
vm_scan_since={date} (Optional) Show hosts scanned and processed since a
certain date and time (optional). The date/time is specified
in YYYY-MM-DD[THH:MM:SSZ] format (UTC/GMT), like
“2007-07-01” or “2007-01-25T23:12:00Z”.
This parameter cannot be specified with
max_days_since_vm_scan in the same request.
no_vm_scan_since={date} (Optional) Show hosts not scanned and processed since a
certain date and time (optional). The date/time is specified
in YYYY-MM-DD[THH:MM:SSZ] format (UTC/GMT), like
“2007-07-01” or “2007-01-25T23:12:00Z”.
This parameter cannot be specified with
max_days_since_vm_scan in the same request.
374
Chapter 7 - Assets
Host List Detection
Parameter Description
max_days_since_last_vm_scan={value}
(Optional) Show only hosts scanned and processed in the
past number of days, where the value is a number of days.
This parameter cannot be specified with any of these
parameters in the same request: vm_scan_since and
no_vm_scan_since.
vm_processed_before={date (Optional) Show hosts with vulnerability scan results
} processed before a certain date and time. Specify the date
in YYYY-MM-DD[THH:MM:SSZ] format (UTC/GMT), like
“2016-09-12” or “2016-09-12T23:15:00Z”.
vm_processed_after={date} (Optional) Show hosts with vulnerability scan results
processed after a certain date and time. Specify the date in
YYYY-MM-DD[THH:MM:SSZ] format (UTC/GMT), like
“2016-09-12” or “2016-09-12T23:15:00Z”.
vm_scan_date_before=date} (Optional) Show hosts with a vulnerability scan end date
before a certain date and time. Specify the date in YYYY-
MM-DD[THH:MM:SSZ] format (UTC/GMT), like “2016-09-
12” or “2016-09-12T23:15:00Z”.
vm_scan_date_after={date} (Optional) Show hosts with a vulnerability scan end date
after a certain date and time. Specify the date in YYYY-
MM-DD[THH:MM:SSZ] format (UTC/GMT), like “2016-09-
12” or “2016-09-12T23:15:00Z”.
vm_auth_scan_date_before (Optional) Show hosts with a successful authenticated
={date} vulnerability scan end date before a certain date and time.
Specify the date in YYYY-MM-DD[THH:MM:SSZ] format
(UTC/GMT), like “2016-09-12” or “2016-09-12T23:15:00Z”.
vm_auth_scan_date_after= (Optional) Show hosts with a successful authenticated
{date} vulnerability scan end date after a certain date and time.
Specify the date in YYYY-MM-DD[THH:MM:SSZ] format
(UTC/GMT), like “2016-09-12” or “2016-09-12T23:15:00Z”.
status={value} (Optional) Show only hosts with one or more of these
status values: New, Active, Re-Opened, Fixed. Multiple
status values are entered as a comma-separated list.
375
Chapter 7 - Assets
Host List Detection
Parameter Description
compliance_enabled={0|1} (Optional) This parameter is valid only when the policy
compliance module is enabled for the user account. This
parameter is invalid for an Express Lite user.
Specify 1 to list compliance hosts in the user’s account that
have been scanned and processed. These hosts are
assigned to the policy compliance module. Specify 0 to list
scanned hosts which are not assigned to the policy
compliance module.
os_pattern={expression} (Optional) Show only hosts which have an operating
system matching a certain regular expression. An empty
value cannot be specified. Use “%5E%24” to match empty
string.
http://www.php.net/manual/en/reference.pcre.pattern.pos
ix.php
376
Chapter 7 - Assets
Host List Detection
QID Filters
Parameter Description
qids={value} (Optional) Show only detection records with certain QIDs.
One or more QIDs may be specified. A range is specified
with a dash (for example: 68518-68522). Multiple entries
are comma separated. Valid QIDs are required.
severities={value} (Optional) Show only detection records which have certain
severities. One or more levels may be specified. A range is
specified with a dash (for example: 1-3). Multiple entries
are comma separated.
show_igs={0|1} (Optional except as noted) Specify 1 to show detection
records with information gathered along with confirmed
vulnerabilities and potential vulnerabilities. Specify 0
(default) to hide information gathered.
The show_igs parameter is required in one use case. The
parameter show_igs=1 must be specified if both these
conditions are met: 1) search lists are included using the
parameter include_search_list_titles or
include_search_list_ids, and 2) if the included search lists
contain only information gathered.
include_search_list_titles= (Optional) Show detection records only when a record’s
{value} QID is INCLUDED IN in one or more of the specified search
list titles. One or more titles may be specified. Multiple
titles are comma separated.
This parameter cannot be specified with any of these
parameters in the same request: qids, severities or
include_search_list_ids.
exclude_search_list_titles= (Optional) Show detection records only when a record’s
{value} QID is IS EXCLUDED from one or more of the specified
search list titles. One or more titles may be specified.
Multiple titles are comma separated.
This parameter cannot be specified with any of these
parameters in the same request: qids, severities or
exclude_search_list_ids.
include_search_list_ids= (Optional) Show detection records only when a record’s
{value,value...} QID IS INCLUDED in one or more of the specified search list
titles. One or more IDs may be specified. A range is
specified with a dash (for example: 10-15). Multiple entries
are comma separated.
This parameter cannot be specified with any of these
parameters in the same request: qids, severities or
include_search_list_titles.
377
Chapter 7 - Assets
Host List Detection
Parameter Description
exclude_search_list_ids= (Optional) Show detection records only when a record’s
{value,value...} QID IS EXCLUDED from one or more of the specified search
list titles. One or more IDs may be specified. A range is
specified with a dash (for example: 40-42). Multiple entries
are comma separated.
This parameter cannot be specified with any of these
parameters in the same request: qids, severities or
exclude_search_list_titles.
Asset tags
Parameter Description
use_tags={0|1} (Optional) Specify 0 (the default) if you want to select hosts
based on IP addresses/ranges and/or asset groups. Specify
1 if you want to select hosts based on asset tags.
tag_set_by={id|name} (Optional when use_tags=1) Specify “id” (the default) to
select a tag set by providing tag IDs. Specify “name” to
select a tag set by providing tag names.
tag_include_selector= (Optional when use_tags=1) Select “any” (the default) to
{any|all} include hosts that match at least one of the selected tags.
Select “all” to include hosts that match all of the selected
tags.
tag_exclude_selector= (Optional when use_tags=1) Select “any” (the default) to
{any|all} exclude hosts that match at least one of the selected tags.
Select “all” to exclude hosts that match all of the selected
tags.
tag_set_include={value} (Optional when use_tags=1) Specify a tag set to include.
Hosts that match these tags will be included. You identify
the tag set by providing tag name or IDs. Multiple entries
are comma separated.
tag_set_exclude={value} (Optional when use_tags=1) Specify a tag set to exclude.
Hosts that match these tags will be excluded. You identify
the tag set by providing tag name or IDs. Multiple entries
are comma separated.
show_tags={0|1} (Optional) Specify 1 to display asset tags associated with
each host in the XML output.
378
Chapter 7 - Assets
Host List Detection
EC2 metadata
Parameter Description
host_metadata={value} (Optional) Specify the name of the cloud provider to
show the assets managed by that cloud provider, i.e.
EC2.
Note: Only supports fetching EC2 assets for now.
host_metadata_fields= (Optional when host_metadata is specified) Specify the
{value1,value2} EC2 instance fields to fetch the data for.
Data can be fetched for the following fields: accountId,
region, availabilityZone, instanceId, instanceType,
imageId, kernelId.
Detection Timestamp
Use these parameters to view various timestamp values in the output.
Parameter Description
LAST_SCAN_DATETIME= The date and time of the most recent vulnerability
{date} scan of the asset.
LAST_VM_SCANNED_DATE= The scan end date/time for the most recent
{date} unauthenticated vulnerability scan of the asset.
LAST_VM_SCANNED_DURATION The scan duration (in seconds) for the most recent
={date} unauthenticated vulnerability scan of the asset.
LAST_VM_AUTH_SCANNED_ The scan end date/time for the last successful
DATE={date} authenticated vulnerability scan of the asset.
LAST_VM_AUTH_SCANNED_ The scan duration (in seconds) for the last
DURATION={date} successful authenticated vulnerability scan of the
asset.
LAST_PC_SCANNED_DATE= The scan end date/time for the most recent
{date} compliance scan on the asset.
FIRST_FOUND_DATETIME={date} The date/time when the vulnerability was first
found.
LAST_FOUND_DATETIME={date} The most recent date/time when the vulnerability
was found.
LAST_TEST_DATETIME={date} The most recent date/time when the vulnerability
was tested.
LAST_UPDATE_DATETIME={date} The most recent date/time when the detection
record was updated.
LAST_FIXED_DATETIME={date} The date/time when the vulnerability was verified
fixed by a scan.
379
Chapter 7 - Assets
Host List Detection
XML output:
<HOST_LIST_VM_DETECTION_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-26T11:25:58Z</DATETIME>
<HOST_LIST>
<HOST>
<ID>6506432</ID>
<IP>10.10.10.11</IP>
<TRACKING_METHOD>IP</TRACKING_METHOD>
<OS><![CDATA[Windows 2008 R2 Enterprise Service Pack
1]]></OS>
<DNS><![CDATA[2k8r2-u-10-11]]></DNS>
<NETBIOS><![CDATA[2K8R2-U-10-11]]></NETBIOS>
<LAST_SCAN_DATETIME>2018-04-
13T03:49:05Z</LAST_SCAN_DATETIME>
<LAST_VM_SCANNED_DATE>2018-04-
13T03:48:50Z</LAST_VM_SCANNED_DATE>
<LAST_VM_SCANNED_DURATION>352</LAST_VM_SCANNED_DURATION>
<DETECTION_LIST>
<DETECTION>
<QID>38170</QID>
<TYPE>Confirmed</TYPE>
<SEVERITY>2</SEVERITY>
<PORT>3389</PORT>
<PROTOCOL>tcp</PROTOCOL>
<SSL>1</SSL>
<RESULTS><![CDATA[Certificate #0 CN=2k8r2-u-10-11
(2k8r2-u-10-11) doesn't
resolve]]></RESULTS>
380
Chapter 7 - Assets
Host List Detection
<STATUS>Active</STATUS>
<FIRST_FOUND_DATETIME>2018-01-
26T04:45:50Z</FIRST_FOUND_DATETIME>
<LAST_FOUND_DATETIME>2018-04-
13T03:48:50Z</LAST_FOUND_DATETIME>
<TIMES_FOUND>111</TIMES_FOUND>
<LAST_TEST_DATETIME>2018-04-
13T03:48:50Z</LAST_TEST_DATETIME>
<LAST_UPDATE_DATETIME>2018-04-
13T03:49:05Z</LAST_UPDATE_DATETIME>
<IS_IGNORED>0</IS_IGNORED>
<IS_DISABLED>0</IS_DISABLED>
<LAST_PROCESSED_DATETIME>2018-04-
13T03:49:05Z</LAST_PROCESSED_DATETIME>
</DETECTION>
<DETECTION>
<QID>38173</QID>
<TYPE>Confirmed</TYPE>
<SEVERITY>2</SEVERITY>
<PORT>3389</PORT>
<PROTOCOL>tcp</PROTOCOL>
<SSL>1</SSL>
<RESULTS><![CDATA[Certificate #0 CN=2k8r2-u-10-11
unable to get local
issuer certificate]]></RESULTS>
<STATUS>Active</STATUS>
<FIRST_FOUND_DATETIME>2018-01-
26T04:45:50Z</FIRST_FOUND_DATETIME>
<LAST_FOUND_DATETIME>2018-04-
13T03:48:50Z</LAST_FOUND_DATETIME>
<TIMES_FOUND>111</TIMES_FOUND>
<LAST_TEST_DATETIME>2018-04-
13T03:48:50Z</LAST_TEST_DATETIME>
<LAST_UPDATE_DATETIME>2018-04-
13T03:49:05Z</LAST_UPDATE_DATETIME>
<IS_IGNORED>0</IS_IGNORED>
<IS_DISABLED>0</IS_DISABLED>
<LAST_PROCESSED_DATETIME>2018-04-
13T03:49:05Z</LAST_PROCESSED_DATETIME>
</DETECTION>
<DETECTION>
<QID>38601</QID>
<TYPE>Confirmed</TYPE>
<SEVERITY>2</SEVERITY>
<PORT>3389</PORT>
<PROTOCOL>tcp</PROTOCOL>
381
Chapter 7 - Assets
Host List Detection
<SSL>1</SSL>
<RESULTS><![CDATA[CIPHER KEY-EXCHANGE AUTHENTICATION
MAC ENCRYPTION(KEY-STRENGTH)
GRADE TLSv1 WITH RC4 CIPHERs IS SUPPORTED
RC4-SHA RSA RSA SHA1 RC4(128) MEDIUM
RC4-MD5 RSA RSA MD5 RC4(128) MEDIUM]]></RESULTS>
<STATUS>Active</STATUS>
<FIRST_FOUND_DATETIME>2018-01-
26T04:45:50Z</FIRST_FOUND_DATETIME>
<LAST_FOUND_DATETIME>2018-04-
13T03:48:50Z</LAST_FOUND_DATETIME>
<TIMES_FOUND>111</TIMES_FOUND>
<LAST_TEST_DATETIME>2018-04-
13T03:48:50Z</LAST_TEST_DATETIME>
<LAST_UPDATE_DATETIME>2018-04-
13T03:49:05Z</LAST_UPDATE_DATETIME>
<IS_IGNORED>0</IS_IGNORED>
<IS_DISABLED>0</IS_DISABLED>
<LAST_PROCESSED_DATETIME>2018-04-
13T03:49:05Z</LAST_PROCESSED_DATETIME>
</DETECTION>
...
</DETECTION_LIST>
</HOST>
</HOST_LIST>
</RESPONSE>
</HOST_LIST_VM_DETECTION_OUTPUT>>
The Warning message in the XML output (shown below) indicates the URL you need to use
to request the next 100 host records.
XML output:
...
</DETECTION>
</DETECTION_LIST>
</HOST>
</HOST_LIST>
382
Chapter 7 - Assets
Host List Detection - Normalized Data
<WARNING>
<CODE>1980</CODE>
<TEXT>100 record limit exceeded. Use URL to get next batch of
results.</TEXT>
<URL><![CDATA[https://qualysapi.qualys.com/api/2.0/fo/asset/host/v
m/detection/?action=list&truncation_limit=100&id_min=5641289]]></U
RL>
</WARNING>
</RESPONSE>
</HOST_LIST_VM_DETECTION_OUTPUT>
More Samples
Qualys API - Host List Detection API samples (GitHub)
DTD
<platform API server>/api/2.0/fo/asset/host/vm/detection/
host_list_vm_detection_output.dtd
The Qualys database stores automatic data for VM scanned hosts. For each of these hosts
there can be multiple detection records.
383
Chapter 7 - Assets
Host List Detection - Use Cases
What is a VM Scanned Host? A VM scanned host is a host that has been successfully
scanned by the Qualys VM service for vulnerabilities. Note that a host is considered
successfully scanned when it was included as a scan target, the scan was launched and it
completed successfully.
What is a Detection Record? A detection record is a unique instance of a discovered
vulnerability for a given host. It identifies the host IP address, QID, port, service, FQDN and
SSL flag (whether the vulnerability was detected over SSL).
where “qualysapi.qualys.com” is the name of the API server where your account is located
(in this case US Platform 1).
Step 3 - Correlate the vulnerability information in the third party application using the
QID number provided in the <QID> XML output which is returned by the host detection
API (Step 1) and the KnowledgeBase API (Step 2).
A typical integration would be to create tables in a database for the XML output from both
Qualys API functions and use QID as a key for a join. This way it would be possible to
create queries that will provide all the vulnerabilities for a given set of hosts (according to
custom search criteria) and their descriptions.
384
Chapter 7 - Assets
Host List Detection - Best Practices
Step 2 - Create an asset group titled “PCI Hosts” containing the hosts which are in scope
for PCI compliance.
Step 3 - Make the following host list detection API request using the asset group title “PCI
Hosts” and the search list title “PCI Vulns”:
https://qualysapi.qualys.com/api/2.0/fo/asset/host/vm/detection/?a
ction=list&ag_titles=PCI+Hosts&include_search_list_titles=PCI+Vuln
s'
where “qualysapi.qualys.com” is the name of the API server where your account is located
(in this case US Platform 1).
Multi-Threading
We have been, and will continue to innovate and re-architect the capabilities of processing
large amount of encrypted data for streaming through API to scale to our customers
needs. While being able to provide customers with all of their Vulnerability information as
quickly as possible is a primary focal point, it should be innovated in such a way that
keeps data integrity in the forefront of every release. To do this, it takes time, effort, and
385
Chapter 7 - Assets
Excluded Host List
dedicated resources to ensure full testing is done to account for all aspects. With that in
mind, the use of automation, threading, and parallelism are techniques to that can assist
with increasing performance with data pulls.
While fetching host information in an automated fashion, you can make use of multi-
threading to collect data in batch sizes for optimum performance.
Maximum benefit has seen when the batch size is set evenly throughout the number of
parallel threads used. For example, a host detection call resulting in a return of 100k
assets, and using 10 threads in parallel, would benefit the most by using a batch size of
(100,000 / 10) = 10,000. To reduce having one thread slow down the entire process by
hitting a congested server, you can break this out further into batches of 5,000 hosts,
resulting in 20 output files.
Looking for help? Check our examples here
Qualys API - Host List Detection API samples - Multithreading (GitHub)
Show the excluded host list for the user's account. Hosts in your excluded host list will not
be scanned.
Permissions - Managers, Auditors view all excluded hosts in subscription. Unit Managers
view excluded hosts in their own business unit. Scanners, Readers view excluded hosts in
their account.
Express Lite - This API is available to Express Lite users.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ips={value} (Optional) Show only certain excluded IP addresses/ranges.
When unspecified, all excluded IPs/ranges in your account
will be listed. One or more IPs/ranges may be specified.
Multiple entries are comma separated. An IP range is
specified with a hyphen (for example, 10.10.24.1-
10.10.24.20).
386
Chapter 7 - Assets
Excluded Host List
Parameter Description
network_id={value} (Optional and valid only when the Network Support
feature is enabled for the user’s account) Restrict the
request to a certain custom network ID. You might need to
use this parameter to get the excluded host list you're
interested in. See User Scenarios to know more about the
behavior of this parameter.
Asset Groups
ag_ids={value} (Optional and valid only when the Network Support
feature is enabled for the user’s account) Restrict the
request to a certain custom network ID. You might need to
use this parameter to get the excluded host list you're
interested in.
ag_titles={value} (Optional) Show excluded hosts belonging to asset groups
with certain strings in the asset group title. One or more
asset group titles may be specified. Multiple entries are
comma separated (for example,
My+First+Asset+Group,Another+Asset+Group).
387
Chapter 7 - Assets
Excluded Host List
User Scenarios
Let us consider different user scenarios to know more about the behavior of network_id
parameter:
User Networks network_id What does output include?
with access mandatory?
User 1 Global No Excluded host list from all the networks the
Default user has access to.
Network,
Network 1,
Network 2
User 2 Global No Excluded host list for global default network.
Default
Network
User 3 Network 1 Yes Excluded host list for Network 1.
User 4 Network 1, Yes Excluded host list for network that is listed in
Network 2, the request. Multiple entries are comma
Network 3 separated (for example,
Network+1,Network+2,Network+3).
XML output
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE IP_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/excluded_ip/ip_list
_output.dtd">
<IP_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-01-23T00:33:24Z</DATETIME>
<IP_SET>
<IP_RANGE network_id="0" expiration_date="2015-04-
28T00:00:00Z">10.100.100.101-10.100.100.255</IP_RANGE>
<IP network_id="14665885">10.10.10.1</IP>
<IP network_id="0">10.100.100.100</IP>
</IP_SET>
</RESPONSE>
</IP_LIST_OUTPUT>
388
Chapter 7 - Assets
Excluded Hosts Change History
DTD
<platform API server>/api/2.0/fo/asset/excluded_ip/ip_list_output.dtd
View change history for excluded hosts in the user’s subscription. History record IDs in the
XML output are listed in decreasing order.
Permissions - Users with these roles have permission to view all excluded hosts in the
subscription: Manager, Auditor, Unit Manager, Scanner and Reader.
Unlike other APIs, an excluded hosts change history request returns change history
records for all relevant IP addresses in the subscription, regardless of whether the user has
access to these IP addresses in their account.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ips={value} (Optional) Show only certain excluded IP addresses/ranges.
When unspecified, all excluded IPs/ranges in your
subscription will be listed. One or more IPs/ranges may be
specified. Multiple entries are comma separated. An IP
range is specified with a hyphen (for example, 10.10.24.1-
10.10.24.20).
network_id={value} (Optional and valid only when the Network Support
feature is enabled for the user’s account) Specify a network
ID to restrict the request to a certain custom network.
id_min={value} (Optional) Show only those history records in your
subscription that have an ID number greater than or equal
to an ID number you specify.
389
Chapter 7 - Assets
Excluded Hosts Change History
Parameter Description
id_max={value} (Optional) Show only those history records in your
subscription that have an ID number less than or equal to
an ID number you specify.
ids={value} (Optional) Show only those history records in your
subscription that have ID numbers matching the ID
numbers you specify.
XML output:
<!DOCTYPE HISTORY_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/excluded_ip/history
/history_list_output.dtd">
<HISTORY_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-01-18T01:48:42Z</DATETIME>
<HISTORY_LIST>
<HISTORY>
<ID>1923</ID>
<IP_SET>
<IP_RANGE>10.10.10.2-10.10.10.11</IP_RANGE>
<IP_RANGE>10.10.10.32-10.10.10.34</IP_RANGE>
<IP>10.10.30.70</IP>
</IP_SET>
<ACTION>Added</ACTION>
<DATETIME>2017-12-02T05:19:06Z</DATETIME>
<USER_LOGIN>quays_ab</USER_LOGIN>
<COMMENTS><![CDATA[DD]]></COMMENTS>
</HISTORY>
<HISTORY>
<ID>1863</ID>
<IP_SET>
<IP_RANGE>10.10.10.102-10.10.10.120</IP_RANGE>
</IP_SET>
<ACTION>Removed</ACTION>
<DATETIME>2017-06-01T23:51:26Z</DATETIME>
<USER_LOGIN>quays_ab</USER_LOGIN>
<COMMENTS><![CDATA[Removing 10.10.10.102-
390
Chapter 7 - Assets
Excluded Hosts Change History
10.10.10.120]]></COMMENTS>
</HISTORY>
<HISTORY>
<ID>1663</ID>
<IP_SET>
<IP_RANGE>10.10.10.100-10.10.10.120</IP_RANGE>
</IP_SET>
<ACTION>Added</ACTION>
<DATETIME>2016-04-29T06:56:13Z</DATETIME>
<USER_LOGIN>quays_ss</USER_LOGIN>
<COMMENTS><![CDATA[Scanner shouldn't add Exclude
hosts]]></COMMENTS>
</HISTORY>
...
</HISTORY_LIST>
<WARNING>
<CODE>1980</CODE>
<TEXT>1,000 record limit exceeded. Use URL to get next batch
of results.</TEXT>
<URL><![CDATA[https://qualysapi.qualys.com/api/2.0/fo/asset/exclud
ed_ip/history/?action=list&id_max=1660]]></URL>
</WARNING>
<GLOSSARY>
<USER_LIST>
<USER>
<USER_LOGIN>quays_ss</USER_LOGIN>
<FIRST_NAME>Sally Unassigned</FIRST_NAME>
<LAST_NAME>Storm</LAST_NAME>
<ROLE>Scanner</ROLE>
</USER>
<USER>
<USER_LOGIN>quays_ab</USER_LOGIN>
<FIRST_NAME>Al</FIRST_NAME>
<LAST_NAME>Berger</LAST_NAME>
<ROLE>Manager</ROLE>
</USER>
</USER_LIST>
</GLOSSARY>
</RESPONSE>
</HISTORY_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/asset/excluded_ip/history/history_list_output.dtd
391
Chapter 7 - Assets
Manage Excluded Hosts
Input Parameters
Parameter Description
action=add (Required)
ips={value} (Required) The IP addresses to be added to the excluded
IPs list. Enter a comma separated list of IPv4 singletons or
ranges. For example: 10.10.10.13,10.10.10.25-10.10.10.29
expiry_days={value} (Optional) The number of days the IPs being added to the
excluded IPs list will be considered valid for exclusion.
When the expiration is reached, the IPs are removed
from the list and made available again for scanning.
When unspecified, the IPs being added have no
expiration and will remain on the list until removed by a
user.
dg_names={value} (Optional) Specify users who will be notified 7 days
before hosts are removed from the excluded hosts list
(i.e. supply distribution group names as defined in the
Qualys UI). Multiple distribution groups are comma
separated. A maximum of 15 distribution groups may be
entered.
comment={value} (Required) User-defined notes (up to 1024 characters).
network_id={value} (Optional and valid only when the user making the
request has access to more than one network)
Assign a network ID to the IPs being added to the
excluded IPs list. By default, the user’s default network ID
is assigned.
392
Chapter 7 - Assets
Manage Excluded Hosts
"https://qualysapi.qualys.com/api/2.0/fo/asset/excluded_ip/"
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-23T00:33:21Z</DATETIME>
<TEXT>Adding IPs to Excluded IPs list.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>Added IPs</KEY>
<VALUE>10.100.100.101-10.100.100.255</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-05-14T13:09:03Z</DATETIME>
<TEXT>Not Adding any IPs to Excluded IPs list.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>IPs already in Excluded IPs list.</KEY>
<VALUE>10.10.34.210-10.10.34.212</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
393
Chapter 7 - Assets
Manage Excluded Hosts
Input Parameters
Parameter Description
action=remove (Required)
ips={value} (Required) The IP addresses to be removed from the
excluded IPs list. Enter a comma separated list of IPv4
singletons or ranges. For example:
10.10.10.13,10.10.10.25-10.10.10.29
comment={value} (Required) User-defined notes (up to 1024 characters).
network_id={value} (Optional and valid only when the user making the
request has access to more than one network)
Identify a network ID that is assigned to the IPs being
removed from the excluded IPs list. By default, the
user’s default network ID is assigned.
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-15T04:05:04Z</DATETIME>
<TEXT>Removed IPs from Excluded IPs list.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>Removed IPs</KEY>
<VALUE>10.10.34.250-10.10.34.254</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
394
Chapter 7 - Assets
Manage Excluded Hosts
Input Parameters
Parameter Description
action=remove_all (Required)
comment={value} (Required) User-defined notes (up to 1024 characters).
network_id={value} (Optional and valid only when the user making the
request has access to more than one network)
Identify a network ID that is assigned to the IPs being
removed from the excluded IPs list. By default, the
user’s default network ID is assigned.
XML output:
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-24T00:08:19Z</DATETIME>
<TEXT>Removed IPs from Excluded IPs list.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>Removed IPs</KEY>
<VALUE>10.100.100.101-10.100.100.255,100.100.100.101-
100.100.100.255</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
395
Chapter 7 - Assets
Virtual Host List
DTD
DTD returned by requests to add and remove excluded hosts
<platform API server>/api/2.0/simple_return.dtd
List virtual hosts in the user's account. By default, all virtual hosts in the user's account
are included.
Permissions - Managers view virtual hosts in the subscription. Unit Managers view virtual
hosts in their own business unit. Scanners and Readers view virtual hosts in their own
account.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default
these are not included.
ip={value} (Optional) Show only virtual hosts that have a certain IP
address.
port={value} (Optional) Show only virtual hosts that have a certain port.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE VIRTUAL_HOST_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/vhost/vhost_list_ou
tput.dtd">
<VIRTUAL_HOST_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-26T11:20:42Z</DATETIME>
<VIRTUAL_HOST_LIST>
<VIRTUAL_HOST>
396
Chapter 7 - Assets
Manage Virtual Hosts
<IP>10.11.65.3</IP>
<PORT>255</PORT>
<FQDN>asadfsadf-123.com</FQDN>
</VIRTUAL_HOST>
<VIRTUAL_HOST>
<IP>10.11.65.5</IP>
<PORT>246</PORT>
<FQDN>asdfsahydk.com</FQDN>
</VIRTUAL_HOST>
</VIRTUAL_HOST_LIST>
</RESPONSE>
</VIRTUAL_HOST_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/asset/vhost/vhost_list_output.dtd
Input Parameters
Parameter Description
action={action} (Required) A flag used to make a virtual host request:
create (create a virtual host)
update (update/edit a virtual host)
delete (delete a virtual host)
add_fqdn (add one or more FQDNs to a virtual host)
delete_fqdn (remove one or more FQDNs from a virtual
host)
echo_request={0|1} (Optional) Specify 1 to view (echo) input parameters in the
XML output. By default these are not included.
ip={value} (Required) An IP address for the virtual host configuration.
397
Chapter 7 - Assets
Manage Virtual Hosts
Parameter Description
network_id={value} (Optional) Network support must be enabled to specify the
network_id. If network support is enabled and you do not
provide a network_id, then the Default Global Network is
considered. You can specify only one network_id.
port={value} (Required) A port number for the virtual host
configuration.
fqdn={value} (Required for all actions except “delete”. Invalid for
“delete”.)
One or more fully-qualified domain names (FQDNs) for the
virtual host configuration. Multiple entries are comma
separated.*
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-27T08:45:22Z</DATETIME>
<TEXT>Virtual host successfully created.</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2019-11-22T07:27:52Z</DATETIME>
398
Chapter 7 - Assets
Restricted IPs List
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-04-27T08:45:48Z</DATETIME>
<TEXT>Virtual host FQDN(s) successfully added.</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
More Samples
Qualys API - Virtual Host samples - Manage Virtual Hosts (GitHub)
DTD
<platform API server>/api/2.0/simple_return.dtd
List restricted IPs within the user's subscription. Managers only have permission to
perform these actions using this API.
Input Parameters
Parameter Description
action=list (Required)
399
Chapter 7 - Assets
Restricted IPs List
Parameter Description
echo_request={0|1} (Optional) Set to 1 if you want to include the input
parameters in the XML output.
output_format={CSV|XML} (Optional) The list output will be in XML format by
default. For CSV format, set output_format=CSV.
XML output:
The DTD for the restricted IPs list XML is provided in Appendix B - Ports used for scanning.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE RESTRICTED_IPS_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/setup/restricted_ips/rest
ricted_ips_output.dtd">
<RESTRICTED_IPS_OUTPUT>
<RESPONSE>
<DATETIME>2018-03-22T11:12:56Z</DATETIME>
<IP_SET>
<IP_RANGE>10.10.10.1-10.10.10.255</IP_RANGE>
</IP_SET>
<STATUS>disabled</STATUS>
</RESPONSE>
</RESTRICTED_IPS_OUTPUT>
CSV output:
----BEGIN_RESPONSE_BODY_CSV
10.0.0.0
10.0.0.101-10.255.255.255
400
Chapter 7 - Assets
Manage Restricted IPs
----END_RESPONSE_BODY_CSV
----BEGIN_RESPONSE_FOOTER_CSV
STATUS
enabled
----END_RESPONSE_FOOTER_CSV
Manage and update the list of restricted IPs within the user's subscription. Managers only
have permission to perform these actions using this API.
Input Parameters
Parameter Description
action={value} (Required) The action for the request, one of:
activate - enable or disable the restricted IPs feature
clear - clear all restricted IPs and de-active this feature
add - add restricted IPs
delete - delete restricted IPs
replace - replace restricted IPs
echo_request={0|1} (Optional) Set to 1 if you want to include the input
parameters in the XML output.
enable={0|1} (Optional and valid when action is activate) Enable or
disable the restricted IPs list. Set enable=1 to enable the
list; set enable=0 to clear any IPs in the list and disable the
feature.
ips={value} -or- (Optional and valid when action is add, replace or delete)
{CSV raw data upload} The hosts you want to add to, remove from or replace in
the restricted IPs list.
401
Chapter 7 - Assets
Manage Restricted IPs
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-03-22T11:45:00Z</DATETIME>
<TEXT>Successfully replaced restricted ips</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>STATUS</KEY>
<VALUE>disabled</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
API request:
curl -H "X-Requested-with:curl" -H "Content-type:text/csv" -u
"USERNAME:PASSWORD" --data-binary "@file1.csv"
"https://qualysapi.qualys.com/api/2.0/fo/setup/restricted_ips/?act
ion=delete"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-03-22T11:45:34Z</DATETIME>
402
Chapter 7 - Assets
Manage Restricted IPs
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-03-22T11:46:45Z</DATETIME>
<TEXT>Restricted IPs feature has been enabled
successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>STATUS</KEY>
<VALUE>enabled</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
403
Chapter 7 - Assets
Asset Group List
Input Parameters
Parameter Description
action=list (Required)
output_format={csv|xml} (Required) The requested output format: CSV or XML.
echo_request={0|1} (Optional) Specify 1 to show (echo) the request’s input
parameters (names, values) in the XML output. When
unspecified, parameters are not included in the XML
output.
ids={value} (Optional) Show only asset groups with certain IDs.
Multiple IDs are comma separated.
id_min={value} (Optional) Show only asset groups that have an ID greater
than or equal to the specified ID.
id_max={value} (Optional) Show only asset groups that have an ID less
than or equal to the specified ID.
404
Chapter 7 - Assets
Asset Group List
Parameter Description
truncation_limit={value} (Optional) Specify the maximum number of asset group
records to output. By default this is set to 1000 records. If
you specify truncation_limit=0, the output is not
paginated and all records are returned in a single output.
WARNING This can generate very large output and
processing large XML files can consume a lot of resources
on the client side. It is recommended to use the pagination
logic and parallel processing. The previous page can be
processed while the next page is being downloaded.
network_ids={value} (Optional and valid only when the Networks feature is
enabled in your account) Restrict the request to certain
network IDs. Multiple IDs are comma separated.
unit_id={value} (Optional) Show only asset groups that have a business
unit ID equal to the specified ID.
user_id={value} (Optional) Show only asset groups that have a user ID
equal to the specified ID.
title={value} (Optional) Show only the asset group that has a title equal
to the specified string - this must be an exact match.
show_attributes={value} (Optional) Show attributes for each asset group along with
the ID. Your options are: None, All or a comma-separated
list of attribute names. Attribute names:
OWNER_USER_NAME, TITLE, OWNER, NETWORK_IDS,
LAST_UPDATE, IP_SET, APPLIANCE_LIST, DOMAIN_LIST,
DNS_LIST, NETBIOS_LIST, EC2_ID_LIST, HOST_IDS,
USER_IDS, UNIT_IDS, BUSINESS_IMPACT, CVSS,
COMMENTS.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_GROUP_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/group/asset_group_l
ist_output.dtd">
<ASSET_GROUP_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-05-17T08:48:41Z</DATETIME>
<ASSET_GROUP_LIST>
<ASSET_GROUP>
<ID>442838</ID>
<TITLE><![CDATA[All]]></TITLE>
405
Chapter 7 - Assets
Asset Group List
<OWNER_ID>103448</OWNER_ID>
<UNIT_ID>0</UNIT_ID>
<NETWORK_ID>0</NETWORK_ID>
<IP_SET>
<IP_RANGE>10.10.10.0-10.10.10.1</IP_RANGE>
<IP_RANGE>10.10.10.3-10.10.10.6</IP_RANGE>
<IP>10.10.10.14</IP>
<IP_RANGE>10.10.10.16-10.10.10.20</IP_RANGE>
<IP_RANGE>10.10.10.22-10.10.10.255</IP_RANGE>
<IP>10.10.31.26</IP>
</IP_SET>
</ASSET_GROUP>
</ASSET_GROUP_LIST>
</RESPONSE>
</ASSET_GROUP_LIST_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_GROUP_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/group/asset_group_l
ist_output.dtd">
<ASSET_GROUP_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-03-17T09:52:59Z</DATETIME>
<ASSET_GROUP_LIST>
<ASSET_GROUP>
<ID>246385</ID>
<TITLE>user_john</TITLE>
<OWNER_USER_ID>180603</OWNER_USER_ID>
<LAST_UPDATE>2018-03-07T11:37:57Z</LAST_UPDATE>
<BUSINESS_IMPACT>High</BUSINESS_IMPACT>
<DEFAULT_APPLIANCE_ID>199673</DEFAULT_APPLIANCE_ID>
<APPLIANCE_IDS>199673, 199674</APPLIANCE_IDS>
<IP_SET>
<IP_RANGE>10.10.10.10-10.10.10.11</IP_RANGE>
<IP_RANGE>10.113.197.131-10.113.197.132</IP_RANGE>
</IP_SET>
<DNS_LIST>
<DNS>qualsss1.com</DNS>
406
Chapter 7 - Assets
Manage Asset Groups
</DNS_LIST>
<NETBIOS_LIST>
<NETBIOS>WIN2003-SRV-O</NETBIOS>
</NETBIOS_LIST>
<HOST_IDS>634744, 653133</HOST_IDS>
<ASSIGNED_USER_IDS>198400, 198401</ASSIGNED_USER_IDS>
<ASSIGNED_UNIT_IDS>202741</ASSIGNED_UNIT_IDS>
<OWNER_USER_NAME>John Doe</OWNER_USER_NAME>
</ASSET_GROUP>
</ASSET_GROUP_LIST>
</RESPONSE>
</ASSET_GROUP_LIST_OUTPUT>
Input Parameters
Parameter Description
action=add (Required)
echo_request={0|1} (Optional) Specify 1 to show (echo) the request’s input
parameters (names, values) in the XML output. When
unspecified, parameters are not included in the XML
output.
title={value} (Required) An asset group title. This name must be unique
and can’t be “All”.
network_id={value} (Optional) The network ID of the network you want to
assign the asset group to.
{parameters} See “Asset Group Parameters”
407
Chapter 7 - Assets
Manage Asset Groups
XML output:
?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-03-28T22:57:50Z</DATETIME>
<TEXT>Asset Group successfully added.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>395752377</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
408
Chapter 7 - Assets
Manage Asset Groups
Input Parameters
Parameter Description
action=edit (Required)
echo_request={0|1} (Optional) Specify 1 to show (echo) the request’s input
parameters (names, values) in the XML output. When
unspecified, parameters are not included in the XML
output.
id={value} (Required) The ID of the asset group you want to edit.
{parameters} See “Asset Group Parameters”
XML output:
The XML output uses the simple return (/api/2.0/simple_return.dtd).
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-05-29T15:29:00Z</DATETIME>
<TEXT>Asset Group Updated Successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>395752377</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
Delete an asset group present in the user's account. By deleting an asset group any
scheduled scans using the asset group will be deactivated.
409
Chapter 7 - Assets
Manage Asset Groups
Input Parameters
Parameter Description
action=delete (Required)
echo_request={0|1} Optional) Specify 1 to show (echo) the request’s input
parameters (names, values) in the XML output. When
unspecified, parameters are not included in the XML
output.
id={value} (Required) The ID of the asset group you want to delete.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-03-29T15:49:35Z</DATETIME>
<TEXT>Asset Group Deleted Successfully</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>395752377</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
410
Chapter 7 - Assets
Manage Asset Groups
411
Chapter 7 - Assets
Purge Hosts
Purge Hosts
/api/2.0/fo/asset/host/?action=purge
[POST]
Purge hosts in your account to remove the assessment data associated with them.
Purging hosts will remove host based data in the user’s account (scan results will not be
removed). Purged host information will not appear in new reports generated by users. One
or both types of host data is removed, based on the user’s API request: vulnerability data
and compliance data.
Permissions - Manager can purge assessment data for all hosts in the subscription,
including vulnerability data and compliance data. Auditor can purge compliance data for
all compliance hosts in the subscription (vulnerability data will not be removed).
Unit Manager, Scanner, and Reader can purge vulnerability and compliance data in their
user account if granted the permission "Purge host information/history". The permission
"Manage compliance" permission is required to purge compliance data.
Express Lite - This API is available to Express Lite users.
412
Chapter 7 - Assets
Purge Hosts
Input Parameters
Parameter Description
action=purge (Required)
echo_request={0|1} (Optional) Specify 1 to view input parameters in the XML
output. When unspecified, parameters are not included in
the XML output.
ids={value} (Optional) Purge host information for certain host
IDs/ranges. One or more host IDs/ranges may be specified.
Multiple entries are comma separated. A host ID range is
specified with a hyphen (for example, 190-400).Valid host
IDs are required.
413
Chapter 7 - Assets
Purge Hosts
Parameter Description
no_vm_scan_since={date} (Optional) Purge hosts not scanned since a certain date
and time (optional). The date/time is specified in YYYY-
MM-DD[THH:MM:SSZ] format (UTC/GMT), like “2007-07-
01” or “2007-01-25T23:12:00Z”.
414
Chapter 7 - Assets
Purge Hosts
Parameter Description
compliance_enabled={0|1} (Optional) This parameter is valid only when the policy
compliance module is enabled for the user account. This
parameter is invalid for an Express Lite user.
http://www.php.net/manual/en/reference.pcre.pattern.pos
ix.php
415
Chapter 7 - Assets
Purge Hosts
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-04-24T10:26:14Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Hosts Queued for Purging</TEXT>
<ID_SET>
<ID>5442340</ID>
</ID_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
DTD
<platform API server>/api/2.0/fo/batch_return.dtd
416
Chapter 7 - Assets
Patch List
Patch List
/api/2.0/fo/asset/patch/index.php
[GET]
The Patch API lets you view the list of all superseding patches for detection on specific
host. For the host, the Patch Info List provides information such as detection QID, patch
QID, patch severity, patch title, patch vendor ID, patch release date, and patch links.
User permissions - Managers and Unit Managers can fetch the patch list on assets in their
own business unit. Scanners and Readers fetch the patch list on assets in their own
account.
Input Parameters
Parameter Description
host_id={value} (Required) The output lists all the superseding patches that
will fix the detections on a single host instance. Specify the
ID for the host to include in the report. A valid host ID
must be entered.
output_format={xml} (Optional) Specifies the format of the host detection list
output. When not specified, the output format is xml. A
valid value is xml.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE PATCH_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/patch/host_patches.
dtd">
<PATCH_LIST_OUTPUT>
<RESPONSE>
<SUBSCRIPTION_ID>3058</SUBSCRIPTION_ID>
<HOST_ID>136801</HOST_ID>
<IP>10.10.25.249</IP>
<DNS><![CDATA[ora11107-25-249]]></DNS>
<NETBIOS><![CDATA[ORA11107-25-249]]></NETBIOS>
<OS><![CDATA[Windows 2003 Service Pack 2]]></OS>
<OS_CPE><![CDATA[]]></OS_CPE>
<NETWORK><![CDATA[Star Trek]]></NETWORK>
417
Chapter 7 - Assets
Patch List
<PATCH_INFO_LIST>
<PATCH_INFO>
<DETECTION_QIDS>
<QID cve_ids=""><![CDATA[19883]]></QID>
</DETECTION_QIDS>
<PATCH_QID cve_ids=""><![CDATA[19883]]></PATCH_QID>
<PATCH_SEVERITY>4</PATCH_SEVERITY>
<PATCH_TITLE><![CDATA[Oracle 11.1.0.7 on Microsoft Windows
- General Update Multiple Issues (Patch #54)]]></PATCH_TITLE>
<PATCH_VENDOR_ID><![CDATA[11.1.0.7 Patch 54 -
32bit,11.1.0.7 Patch 54 - 64bit]]></PATCH_VENDOR_ID>
<PATCH_RELEASE_DATE>2013-10-15
00:00:00</PATCH_RELEASE_DATE>
<PATCH_LINKS>
<LINK
os_sw="Windows"><![CDATA[https://support.oracle.com/epmos/faces/ui
/patch/PatchDetail.jspx?patchId=17363759]]></LINK>
<LINK
os_sw="Windows"><![CDATA[https://support.oracle.com/epmos/faces/ui
/patch/PatchDetail.jspx?patchId=17363760]]></LINK>
</PATCH_LINKS>
</PATCH_INFO>
</PATCH_INFO_LIST>
</RESPONSE>
</PATCH_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/asset/patch/host_patches.dtd
418
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
A sample request for adding the special IPv4 addresses is shown below (where
qualysapi.qualys.com is the server URL where your Qualys account is located):
https://qualysapi.qualys.com/msp/asset_ip.php?action=add&
host_ips=0.0.0.1-0.0.0.255
419
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
XML output:
Note: The service automatically returns an ID value in the ID column for each IPv6
mapping record. This ID is assigned by the service when the record is created.
----BEGIN_RESPONSE_BODY_CSV
ID,IPv4,IPv6
"46947","0.0.0.7","2001:db8:85a3::8a2e:370:84"
"47036","0.0.0.1","2001:db8:85a3::8a2e:370:77"
----END_RESPONSE_BODY_CSV
----BEGIN_RESPONSE_FOOTER_CSV
"Status Message"
"Finished"
----END_RESPONSE_FOOTER_CSV
The CSV file must include the input parameters action=add and csv_data=. The
parameter all_or_nothing is optional. When set to 1 or unspecified, the service cancels the
request and does not add any new records if it finds the upload data has one record with
an IP conflict. When set to 0 the service does not cancel the request if an IP conflict is
found.
Sample file1.csv used to add IPv6 mapping records:
$ cat file1.csv
action=add&all_or_nothing=1&csv_data=
"0.0.0.2","2001:470:8418:a18::a0a:1805"%0A
420
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
"0.0.0.3","2001:470:8418:a18::a0a:ab7"%0A
"0.0.0.4","2001:470:8418:a18::a0a:1849"%0A
"0.0.0.5","2001:470:8418:a18::a0a:189c"%0A
"0.0.0.6","2001:470:8418:a18::a0a:189d"%0A
"0.0.0.8","2001:470:8418:a18::a0a:189e"%0A
"0.0.0.9","2001:470:8418:a18::a0a:18d0"%0A
"0.0.0.10","2001:470:8418:a18::a0a:18d1"%0A
"0.0.0.11","2001:470:8418:a18::a0a:18d2"%0A
"0.0.0.12","2001:470:8418:a18::a0a:18d6"%0A
"0.0.0.13","2001:470:8418:a18::a0a:18d7"%0A
"0.0.0.14","2001:470:8418:a18::a0a:18da"%0A
"0.0.0.15","2001:470:8418:a18::a0a:18db"%0A
"0.0.0.16","ff00:abcd::1234"%0A
Output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysguard.api.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2011-11-03T19:31:27Z</DATETIME>
<TEXT>Successfully imported 14 records
</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
421
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
Output:
Note: The service automatically returns an ID value in the <ID> element for each IPv6
mapping record. This ID is assigned by the service when the record is created.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE IP_MAP_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/asset/ip/v4_v6/ip_map_lis
t_output.dtd">
<IP_MAP_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2011-11-28T19:42:10Z</DATETIME>
<IP_MAP_LIST>
<IP_MAP>
<ID>46947</ID>
<V4>0.0.0.7</V4>
<V6>2001:db8:85a3::8a2e:370:84</V6>
</IP_MAP>
<IP_MAP>
<ID>47036</ID>
<V4>0.0.0.1</V4>
<V6>2001:db8:85a3::8a2e:370:77</V6>
</IP_MAP>
</IP_MAP_LIST>
</RESPONSE>
</IP_MAP_LIST_OUTPUT>
422
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
The XML file must include the input parameters action=add and xml_data=. The
parameter all_or_nothing is optional. When set to 1 or unspecified, the service cancels the
request and does not add any new records if it finds the upload data has one record with
an IP conflict. When set to 0 the service does not cancel the request if an IP conflict is
found.
Sample file2.xml used to add IPv6 mapping records:
$ cat file2.xml
action=add&xml_data=
<IP_MAP_LIST>
<IP_MAP>
<V4>0.0.0.2</V4>
<V6>2001:470:8418:a18::a0a:1805</V6>
</IP_MAP>
<IP_MAP>
<V4>0.0.0.3</V4>
<V6>2001:470:8418:a18::a0a:ab7</V6>
</IP_MAP>
</IP_MAP_LIST>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysguard.api.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2011-11-03T20:59:07Z</DATETIME>
<TEXT>Successfully imported 2 records</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
423
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
It's not necessary to specify both the IPv4 address and the IPv6 address for each record to
be deleted in the data file (CSV or XML). If you specify only the IPv4 address, any
associated record will be deleted. If you specify only the IPv6 address, any associated
record will be deleted. If you specify both the IPv4 and IPv6 addresses, any record
containing either address will be deleted. If no IP addresses specified in a mapping record
to be deleted match any IP addresses already defined in mapping records in the
subscription, the mapping record listed in the data file will be silently ignored.
Important: When an IPv6 mapping record is removed, any scan data associated with your
IPv6 host is removed from your subscription and this data is not recoverable.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysguard.api.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2011-11-03T19:31:27Z</DATETIME>
<TEXT>Removed 2 records (any associated scanned host data is
424
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
Output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysguard.api.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
425
Chapter 8 - IPv6 Assets
API Support for IPv6 Asset Management and Scanning
<RESPONSE>
<DATETIME>2011-11-03T20:59:07Z</DATETIME>
<TEXT>Removed 2 records (any associated scanned host data is
now queued for purging)</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
XML output returned will show the IPv4 address and the IPv6 address for the host, as
shown below (XML fragment):
...
<HOST>
<ID>276010</ID>
<IP>0.0.0.100</IP>
<IPV6>2001:470:8418:a18::a0a:18c7</IPV6>
<TRACKING_METHOD>IP</TRACKING_METHOD>
<OS><![CDATA[Windows 2003 Service Pack 2]]></OS>
<DNS><![CDATA[mssql2k8-24-199.patch.qualys.com]]></DNS>
<LAST_SCAN_DATETIME>2018-06-
17T19:06:31Z</LAST_SCAN_DATETIME>
426
Chapter 8 - IPv6 Assets
IPv6 Mapping Record List
<DETECTION_LIST>
...
View a list of IPv6 mapping records in the subscription. Each mapping record associates
one IPv6 address in your network with one IPv4 address in the special mapping range
0.0.0.1-0.254.255.255.
A maximum of 5,000 IPv6 mapping records will be processed per request, unless the
truncation_limit input parameter is specified. If the requested list identifies more than
5,000 records or the number of records specified using truncation_limit, then the XML
output includes the <WARNING> element and instructions for making another request for
the next batch of records.
Permissions - Managers can view all IPv6 mapping records when the IPv6 Support feature
is enabled for the user’s subscription. Other users do not have permission to view IPv6
mapping records.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When not specified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
id_min={value} (Optional) Show only mapping records which have a
minimum record ID. A valid mapping record ID is required.
When unspecified, records are not filtered by record ID.
id_max={value} (Optional) Show only mapping records which have a
maximum record ID. A valid mapping record ID is required.
ipv4_filter={value} (Optional) Show only mapping records with certain IPv4
addresses. When unspecified, records are not filtered by
IPv4 addresses.
ipv6_network={value} (Optional) Show only mapping records with certain IPv6
network addresses. When unspecified, records are not
filtered by IPv6 network addresses.
427
Chapter 8 - IPv6 Assets
Add IPv6 Mapping Records
Parameter Description
output_format={CSV|XML} (Optional) The requested output format: CSV or XML.
When unspecified, the output format will be CSV.
Note: When the service outputs CSV, each line ends with a
carriage-return and linefeed pair (ASCII/CRLF=0x0D 0x0A).
truncation_limit={value} (Optional) The maximum number of mapping records to be
returned by the API request. A valid value is an integer
between 1 and 1,000,000. When unspecified, 5,000 records
will be returned.
DTD
<platform API server>/api/2.0/fo/asset/ip/v4_v6/asset/ip/v4_v6/ip_map_list_output.dtd
Add IPv6 mapping records to the subscription. Each mapping record associates one IPv6
address in your network with one IPv4 address in the special mapping range 0.0.0.1-
0.254.255.255. A maximum of 10,000 mapping records can be added per API request.
Permissions - Managers can add IPv6 mapping records, when the IPv6 Support feature is
enabled for the user’s subscription. Other user roles do not have these permissions.
Input Parameters
Parameter Description
action=add (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When not specified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
csv_data={value} The CSV data file containing the IPv6 mapping records that
you want to add. This parameter or xml_data must be
specified. See How to Add IPv6 Records in CSV
The parameters csv_data and xml_data cannot be
specified in the same request.
428
Chapter 8 - IPv6 Assets
Remove IPv6 Mapping Records
Parameter Description
xml_data={value} The CSV data file containing the IPv6 mapping records that
you want to add. This parameter or csv_data must be
specified. See How to Add IPv6 Records in XML
The parameters csv_data and xml_data cannot be
specified in the same request.
all_or_nothing={0|1} (Optional) This parameter controls how the service
processes the IPv6 mapping records in the upload data.
When unspecified or set to 1, the service cancels the
request and does not add any new records once it finds the
upload data has one record with an IP conflict. When set to
0 the service does not cancel the request if an IP conflict is
found.
DTD
<platform API server>/api/2.0/simple_return.dtd
Remove IPv6 mapping records from the subscription. A maximum of 10,000 mapping
records can be removed per API request.
Important: When an IPv6 mapping record is removed, any scan data associated with your
IPv6 host is removed from your subscription and this data is not recoverable.
It's not necessary to specify both the IPv4 address and the IPv6 address for each record to
be deleted in the data file (CSV or XML). If you specify only the IPv4 address, any
associated record will be deleted. If you specify only the IPv6 address, any associated
record will be deleted. If you specify both the IPv4 and IPv6 addresses, any record
containing either address will be deleted. If no IP addresses specified in a mapping record
to be deleted match any IP addresses already defined in mapping records in the
subscription, the mapping record listed in the data file will be silently ignored.
Permissions - Managers can remove all IPv6 mapping records, when the IPv6 Support
feature is enabled for the user’s subscription. Other user roles do not have these
permissions.
429
Chapter 8 - IPv6 Assets
Remove IPv6 Mapping Records
Input Parameters
Parameter Description
action=remove (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When not specified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
csv_data={value} The CSV data file containing the IPv6 mapping records that
you want to remove from your subscription. This
parameter or xml_data must be specified. See How to
Remove IPv6 Records in CSV
xml_data={value} The CSV data file containing the IPv6 mapping records that
you want to remove from your subscription. This
parameter or csv_data must be specified. See How to
Remove IPv6 Records in XML
DTD
<platform API server>/api/2.0/simple_return.dtd
430
Chapter 9 - Networks
Network List
Chapter 9 - Networks
The Network API is used to manage networks when the Network Support feature is
enabled in the user’s subscription.
Network List
Create Network
Update Network
Assign Scanner Appliance to Network
Network List
/api/2.0/fo/network/?action=list
[GET] [POST]
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When unspecified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
ids={value1,value2} (Optional) Filter the list to view specific networks.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE NETWORK_LIST SYSTEM
"https://qualysapi.qualys.com/network_list_output.dtd">
<RESPONSE>
431
Chapter 9 - Networks
Create Network
<DATETIME>2018-05-28T01:06:45Z</DATETIME>
<NETWORK_LIST>
<NETWORK>
<ID>7343</ID>
<NAME><![CDATA[My New Network]]></TITLE>
<SCANNER_APPLIANCE_LIST>
<SCANNER_APPLIANCE>
<ID>1234</ID>
<FRIENDLY_NAME><![[CDATA[abc123]]></FRIENDLY_NAME>
</SCANNER_APPLIANCE>
</SCANNER_APPLIANCE_LIST>
</NETWORK>
...
</NETWORK_LIST>
</RESPONSE>
DTD
<platform API server>/api/2.0/fo/network/network_list_output.dtd
Create Network
/api/2.0/fo/network/?action=create
[POST]
Input Parameters
Parameter Description
action=create (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When unspecified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
name={value} (Required) A user-defined friendly name for your network.
A successful request will return a unique network ID and
this is used to manage your network using the API.
432
Chapter 9 - Networks
Create Network
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-01-14T04:37:24Z</DATETIME>
<TEXT>Network created with ID</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>id</KEY>
<VALUE>1103</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
DTD
<platform API server>/api/2.0/simple_return.dtd
433
Chapter 9 - Networks
Update Network
Update Network
/api/2.0/fo/network/?action=update
[POST]
Input Parameters
Parameter Description
action=update (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When unspecified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
name={value} (Required) Specify a new network name. (The network ID is
assigned by our service and it can’t be changed.)
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2018-05-20T06:17:06Z</DATETIME>
<TEXT>Network updated</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>id</KEY>
<VALUE>1103</VALUE>
</ITEM>
<ITEM>
<KEY>name</KEY>
<VALUE>Network 123</VALUE>
</ITEM>
</ITEM_LIST>
434
Chapter 9 - Networks
Assign Scanner Appliance to Network
</RESPONSE>
</SIMPLE_RETURN>
DTD
<platform API server>/api/2.0/simple_return.dtd
Assign a scanner appliance to a network. When the network support feature is enabled for
your subscription, scanner appliances are assigned to networks. Each appliance can be
assigned to 1 network only.
Permissions - This API is available to Managers only.
Input Parameters
Parameter Description
action=assign_network_id (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters
(names and values) in the XML output. When unspecified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
appliance_id={value} (Required) ID of the scanner appliance you want to assign
to a network.
network_id={value} (Required) ID of the network you want to assign the
scanner appliance to.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
435
Chapter 9 - Networks
Assign Scanner Appliance to Network
<DATETIME>2018-03-16T22:50:49Z</DATETIME>
<TEXT>Success: Network ID=[1103] assigned to Appliance with
ID=[506]</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
DTD
<platform API server>/api/2.0/simple_return.dtd
436
Chapter 10 - Reports
Chapter 10 - Reports
Launch and manage reports in your account. Report Share must be enabled for your
account.
Report List
Launch Report
Sample - Launch Report
Using Asset Tags
Report Template List
Launch Scorecard
Cancel Running Report
Download Saved Report
Delete Saved Report
Scheduled Reports List
Launch Scheduled Report
Asset Search Report
437
Chapter 10 - Reports
Report List
Report List
/api/2.0/fo/report/?action=list
[GET] [POST]
View a list of reports in the user’s account when Report Share feature is enabled. The
report list output includes all report types, including scorecard reports.
User permissions - Managers and Auditors view all assets in the subscription, Unit
Managers view assets in their own business unit, Scanners and Readers view assets in
their own account.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When
not specified, parameters are not included in the XML
output. Specify 1 to view parameters in the XML output.
id={value} (Optional) Specifies a report ID of a report that is saved in
the Report Share storage space. When specified,
information on the selected report will be included in the
XML output.
state={value} (Optional) Specifies that reports with a certain state will be
included in the XML output. By default, all states are
included. A valid value is: Running (reports are in
progress), Finished, Submitted, Canceled, or Errors.
user_login={value} (Optional) Specifies a user login ID. This parameter is used
to restrict the XML output to reports launched by the
specified user login ID.
expires_before_datetime= (Optional) Specifies the date and time (optional) when
{date} reports will expire in the future. Only reports that expire
before this date/time will be included in the XML output.
438
Chapter 10 - Reports
Report List
<REPORT_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-10-30T22:32:15Z</DATETIME>
<REPORT_LIST>
<REPORT>
<ID>42703</ID>
<TITLE><![CDATA[Test now]]></TITLE>
<TYPE>Scan</TYPE>
<USER_LOGIN>acme_aa</USER_LOGIN>
<LAUNCH_DATETIME>2017-10-30T17:59:22Z</LAUNCH_DATETIME>
<OUTPUT_FORMAT>PDF</OUTPUT_FORMAT>
<SIZE>129.1 MB</SIZE>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
<EXPIRATION_DATETIME>2017-11-
06T17:59:24Z</EXPIRATION_DATETIME>
</REPORT>
<REPORT>
<ID>42700</ID>
<TYPE>Scorecard</TYPE>
<USER_LOGIN>acme_ts2</USER_LOGIN>
<LAUNCH_DATETIME>2017-10-29T22:12:42Z</LAUNCH_DATETIME>
<OUTPUT_FORMAT>SECURE_PDF</OUTPUT_FORMAT>
<SIZE>18.1 KB</SIZE>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
<EXPIRATION_DATETIME>2017-11-
05T22:12:44Z</EXPIRATION_DATETIME>
</REPORT>
<REPORT>
<ID>42699</ID>
<TYPE>Scorecard</TYPE>
<USER_LOGIN>quays_ts2</USER_LOGIN>
439
Chapter 10 - Reports
Report List
<LAUNCH_DATETIME>2017-10-29T21:52:19Z</LAUNCH_DATETIME>
<OUTPUT_FORMAT>PDF</OUTPUT_FORMAT>
<SIZE>19.87 KB</SIZE>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
<EXPIRATION_DATETIME>2017-11-
05T21:52:21Z</EXPIRATION_DATETIME>
</REPORT>
</REPORT_LIST>
</RESPONSE>
</REPORT_LIST_OUTPUT>
DTD
<platform API server>/api/2.0/fo/report/report_list_output.dtd
440
Chapter 10 - Reports
Launch Report
Launch Report
/api/2.0/fo/report
[POST]
Launch a report in the user's account. The Report Share feature must be enabled in the
user's subscription. When a report is launched with Report Share, the report is run in the
background, and the report generation processing does not timeout until the report has
completed.
User permissions - Managers and Auditors can launch scorecard reports on all assets in
the subscription, Unit Managers can launch scorecard reports on assets in their own
business unit, Scanners and Readers can launch scorecard reports on assets in their own
account.
Input Parameters
Parameter Description
action=launch (Required)
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When
not specified, parameters are not included in the XML
output. Specify 1 to view parameters in the XML output.
template_id={value} (Required) The template ID of the report you want to
launch. Use the /msp/report_template_list.php API to find
the template ID you’re interested in. See Report Template
List.
report_title=[value} (Optional) A user-defined report title. The title may have a
maximum of 128 characters. For a PCI compliance report,
the report title is provided by Qualys and cannot be
changed.
output_format={value} (Required) One output format may be specified. Supported
formats for various reports are below.
map report: pdf, html (a zip file), mht, xml, or csv
scan report: pdf, html (a zip file), mht, xml, csv, or docx
remediation report: pdf, html (a zip file), mht, or csv
compliance report (not PCI): pdf, html (a zip file), or mht
PCI compliance report: pdf or html (a zip file)
compliance policy report: pdf, html (a zip file), mht, xml, or
csv
Qualys patch report: pdf, online, xml or csv
hide_header={0|1} (Valid for CSV format report only). Specify hide_header=1
to omit the header information from the report. By default
this information is included.
441
Chapter 10 - Reports
Launch Report
Parameter Description
pdf_password={value} (Required for secure PDF distribution, Manager or Unit
Manager only)
The password to be used for encryption. Requirements:
- the password must have a minimum of 8 characters
(ascii), and a maximum of 32 characters
- the password must contain alpha and numeric characters
- the password cannot match the password for the user’s
Qualys account.
- the password must follow the password security
guidelines defined for your subscription (log into your
account and go to Users > Setup > Security)
recipient_group={value} (Optional for secure PDF distribution, Manager or Unit
Manager only)
The report recipients in the form of one or more
distribution group names, as defined using the Qualys UI.
Multiple distribution groups are comma separated. A
maximum of 50 distribution groups may be entered.
The recipient_group parameter can only be specified when
the pdf_password parameter is also specified.
The recipient_group parameter cannot be specified in the
same request as recipient_group_id
recipient_group_id={value} (Optional for secure PDF distribution, Manager or Unit
Manager only)
The report recipients in the form of one or more
distribution group IDs. Multiple distribution group IDs are
comma separated. Where do I find this ID? Log in to your
Qualys account, go to Users > Distribution Groups and
select Info for a group in the list.
The recipient_group_id parameter can only be specified
when the pdf_password parameter is also specified.
The recipient_group_id parameter cannot be specified in
the same request as recipient_group
MAP REPORT
report_type=Map (Optional)
domain={value} (Required for map report) Specifies the target domain for
the map report. Include the domain name only; do not
enter “www.” at the start of the domain name. When the
special “none” domain is specified as a parameter value,
the ip_restriction parameter is required.
ip_restriction={value} (Optional for map report) For a map report, specifies
certain IPs/ranges to include in the report. This parameter
is required when the domain parameter is specified with
the value “none” (for the special “none” domain).
442
Chapter 10 - Reports
Launch Report
Parameter Description
report_refs={value} (Required for map report) For a map report, specifies the
map references (1 or 2) to include. A map reference starts
with the string “map/” followed by a reference ID number.
When two map references are given, the report compares
map results. Two map references are comma separated.
SCAN REPORT - SCAN BASED FINDINGS
report_type=Scan (Optional)
report_refs={value} (Required for Manual scan report) For a Manual scan
report, this parameter specifies the scan references to
include. A scan reference starts with the string “scan/”
followed by a reference ID number. Multiple scan
references are comma separated.
ip_restriction={value} (Optional for Manual scan report) For a scan report, the
report content will be restricted to the specified IPs/ranges.
Multiple IPs and/or ranges are comma separated.
SCAN REPORT - HOST BASED FINDINGS
report_type=Scan (Optional)
ips={value} (Optional) Specify IPs/ranges to change (overwrite) the
report target, as defined in the report template. Multiple
IPs/ranges are comma separated. When specified, hosts
defined in the report template are not included in the
report.
443
Chapter 10 - Reports
Launch Report
Parameter Description
PATCH REPORT
ips={value} (Optional for patch report) Specify IPs/ranges to change
(override) the report target, as defined in the patch report
template. Multiple IPs/ranges are comma separated. When
specified, hosts defined in the report template are not
included in the report.
444
Chapter 10 - Reports
Launch Report
Parameter Description
ips={value} (Optional for compliance report) For a compliance report
(except a PCI report), specify the IPs/ranges you want to
include in the report. Multiple IPs and/or ranges are
comma separated.
445
Chapter 10 - Reports
Launch Report
Parameter Description
host_id={value} (Optional) In the policy report output, show only results
for a single host instance. Specify the ID for the host to
include in the report. A valid host ID must be entered.
This parameter must be specified with instance_string.
instance_string={value} (Optional) Specifies a single instance on the selected host.
The instance string may be “os” or a string like
“oracle10:1:1521:ora10204u”.
DTD
<platform API server>/api/2.0/simple_return.dtd
446
Chapter 10 - Reports
Using Asset Tags
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X "POST"
-d
"action=launch&template_id=55469&report_title=My+Windows+Report&ou
tput_format=pdf&use_tags=1&tag_set_by=name&tag_set_include=Windows
" "https://qualysapi.qualys.com/api/2.0/fo/report/"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE GENERIC SYSTEM
447
Chapter 10 - Reports
Report Template List
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-02-20T21:45:23Z</DATETIME>
<TEXT>New report launched</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>1665</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
List available report templates, including template titles and IDs, in the user account. The
report list includes templates for all report types.
DTD
<platform API server>/report_template_list.dtd
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE REPORT_TEMPLATE_LIST SYSTEM
"https://qualysapi.qualys.com/report_template_list.dtd">
<REPORT_TEMPLATE_LIST>
<REPORT_TEMPLATE>
<ID>235288</ID>
<TYPE>Auto</TYPE>
<TEMPLATE_TYPE>Scan</TEMPLATE_TYPE>
<TITLE><![CDATA[Windows Authentication QIDs]]></TITLE>
<USER>
<LOGIN><![CDATA[acme_jk]]></LOGIN>
448
Chapter 10 - Reports
Report Template List
<FIRSTNAME><![CDATA[Jason]]></FIRSTNAME>
<LASTNAME><![CDATA[Kim]]></LASTNAME>
</USER>
<LAST_UPDATE>2018-02-12T18:09:10Z</LAST_UPDATE>
<GLOBAL>0</GLOBAL>
</REPORT_TEMPLATE>
<REPORT_TEMPLATE>
<ID>235164</ID>
<TYPE>Auto</TYPE>
<TEMPLATE_TYPE>Policy</TEMPLATE_TYPE>
<TITLE><![CDATA[My Policy Report Template]]></TITLE>
<USER>
<LOGIN><![CDATA[acme_vs]]></LOGIN>
<FIRSTNAME><![CDATA[Victor]]></FIRSTNAME>
<LASTNAME><![CDATA[Smith]]></LASTNAME>
</USER>
<LAST_UPDATE>2017-12-09T22:47:58Z</LAST_UPDATE>
<GLOBAL>0</GLOBAL>
</REPORT_TEMPLATE>
<REPORT_TEMPLATE>
<ID>232556</ID>
<TYPE>Auto</TYPE>
<TEMPLATE_TYPE>Scan</TEMPLATE_TYPE>
<TITLE><![CDATA[Executive Report]]></TITLE>
<USER>
<LOGIN><![CDATA[acme_jk]]></LOGIN>
<FIRSTNAME><![CDATA[Jason]]></FIRSTNAME>
<LASTNAME><![CDATA[Kim]]></LASTNAME>
</USER>
<LAST_UPDATE>2017-11-11T17:11:55Z</LAST_UPDATE>
<GLOBAL>1</GLOBAL>
</REPORT_TEMPLATE>
<REPORT_TEMPLATE>
<ID>232557</ID>
<TYPE>Auto</TYPE>
<TEMPLATE_TYPE>Scan</TEMPLATE_TYPE>
<TITLE><![CDATA[Technical Report]]></TITLE>
<USER>
<LOGIN><![CDATA[acme_jk]]></LOGIN>
<FIRSTNAME><![CDATA[Jason]]></FIRSTNAME>
<LASTNAME><![CDATA[Kim]]></LASTNAME>
...
</REPORT_TEMPLATE_LIST>
449
Chapter 10 - Reports
Launch Scorecard
Launch Scorecard
/api/2.0/fo/report/scorecard
[POST]
Launch a vulnerability scorecard report in the user’s Report Share. It is not possible to
launch any compliance scorecard reports or WAS scorecard reports using this API at this
time.
When a scorecard report is launched, the report is run in the background, and the report
generation processing does not timeout until the report has completed.
User Permissions - Managers and Auditors can launch scorecard reports on all assets in
the subscription, Unit Managers can launch scorecard reports on assets in their own
business unit, Scanners and Readers can launch scorecard reports on assets in their own
account.
Input Parameters
Parameter Description
action=launch (Required)
450
Chapter 10 - Reports
Launch Scorecard
Parameter Description
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When
unspecified, parameters are not included in the XML
output. Specify 1 to view parameters in the XML output.
name={value} (Required) Specifies the scorecard name for the
vulnerability scorecard report that you want to launch.
This name corresponds to a service-provided scorecard or
a user-created scorecard. For a service-provided scorecard,
specify one of these names:
Asset Group Vulnerability Report
Ignored Vulnerabilities Report
Most Prevalent Vulnerabilities Report
Most Vulnerable Hosts Report
Patch Report
report_title=[value} (Optional) Specifies a user-defined report title. The title
may have a maximum of 128 characters. When
unspecified, the report title will be the scorecard name.
output_format={value} (Required) Specifies the output format of the report. One
output format may be specified. A valid value is:
pdf, html (a zip file), mht, xml, or csv.
451
Chapter 10 - Reports
Launch Scorecard
Parameter Description
pdf_password={value} (Required for secure PDF distribution, Manager or Unit
Manager only)
The password to be used for encryption. The password may
have a maximum of 32 characters (ascii). The password
cannot match the password for the user’s Qualys login
account. The password must follow the password security
guidelines defined for the user’s subscription.
Conditions:
a) The pdf_password parameter can only be specified by a
Manager or Unit Manager.
Conditions:
a) The recipient_group parameter can only be specified
when the pdf_password parameter is also specified.
452
Chapter 10 - Reports
Launch Scorecard
Parameter Description
recipient_group_id={value} (Optional for secure PDF distribution, Manager or Unit
Manager only) The report recipients in the form of one or
more distribution group IDs. Multiple distribution group
IDs are comma separated. Where do I find this ID? Log in
to your Qualys account, go to Users > Distribution Groups
and select Info for a group in the list.
Conditions:
a) The recipient_group_id parameter can only be specified
when the pdf_password parameter is also specified.
Conditions:
a) The source parameter is required for a service-provided
scorecard.
453
Chapter 10 - Reports
Launch Scorecard
Parameter Description
asset_groups={value} (Conditional) The titles of asset groups to be used as source
asset groups for the scorecard report. One or more asset
group titles in your account may be specified. Multiple
asset group titles are comma separated.
Conditions:
a) The asset_groups parameter can only be specified when
source=asset_groups.
Conditions:
a) The asset_groups parameter can only be specified when
source=asset_groups.
Conditions:
a) When source=business_unit, one or more of these
parameters must be specified: business_unit, division,
function and/or location.
454
Chapter 10 - Reports
Launch Scorecard
Parameter Description
division={value} (Conditional) A business info tag identifying a division that
asset group(s) belong to. The tag must be defined for an
asset group in your account. When specified, only asset
groups with this tag are included in the scorecard report
source.
Conditions:
a) When source=business_unit, one or more of these
parameters must be specified: business_unit, division,
function and/or location.
Conditions:
a) When source=business_unit, one or more of these
parameters must be specified: business_unit, division,
function and/or location.
455
Chapter 10 - Reports
Launch Scorecard
Parameter Description
location={value} (Conditional) A business info tag identifying a location
where asset group(s) are located. The tag must be defined
for an asset group in your account. When specified, only
asset groups with this tag are included in the scorecard
report source.
Conditions:
a) When source=business_unit, one or more of these
parameters must be specified: business_unit, division,
function and/or location.
Conditions:
a) The patch_qids parameter may be specified only for a
Patch Report.
456
Chapter 10 - Reports
Cancel Running Report
Parameter Description
missing_qids={value} (Conditional for Patch Report scorecard; not valid for other
scorecards)
One or two QIDs for missing software. Two QIDs are
comma separated. Typically missing software QIDs are
information gathered checks. When the QIDs are not
detected on a host this means the host is missing software
and it will be reported in the scorecard output.
Conditions:
a) The missing_qids parameter may be specified only for a
Patch Report.
DTD
<platform API server>/api/2.0/simple_return.dtd
Cancel a running report in the user’s account. This is an option when Report Share is
enabled in the user’s subscription.
User permissions - Managers can cancel any running report. Unit Managers can cancel a
running report in their own business unit (report launched by user in their own business
unit). Scanners and Readers can cancel their own running report.
457
Chapter 10 - Reports
Download Saved Report
Input Parameters
Parameter Description
action=cancel (Required)
id={value} (Required) Specifies the report ID of a running report that
you want to cancel. The status of the report must be
“running”.
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters (names and values) in the XML output. When
not specified, parameters are not included in the XML
output. Specify 1 to view parameters in the XML output.
DTD
<platform API server>/api/2.0/simple_return.dtd
Download a saved report in the user’s account. You can download all report types (map,
scan, patch, authentication, scorecard, remediation, compliance). This option is available
when the Report Share feature is enabled in the user’s subscription.
User permissions - Managers can download any saved report. Unit Managers can
download a saved report in their own business unit (reports launched by users in their
own business unit). Scanners and Readers can download their own saved report.
458
Chapter 10 - Reports
Download Saved Report
Input Parameters
Parameter Description
action=fetch (Required)
id={value} (Required) Specifies the report ID of a saved report that you
want to download. The status of the report must be
“finished”.
echo_request={0|1} (Optional) Specify 1 to view input parameters in the XML
output. When not specified, parameters are not included in
the XML output.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE REPORT_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/report/report_list_output
.dtd">
<REPORT_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2018-07-02T15:29:52Z</DATETIME>
<REPORT_LIST>
<REPORT>
<ID>7592049</ID>
<TITLE><![CDATA[FIXED Vuln Report]]></TITLE>
<TYPE>Scan</TYPE>
<USER_LOGIN>acme_ur15</USER_LOGIN>
<LAUNCH_DATETIME>2018-07-02T14:52:45Z</LAUNCH_DATETIME>
<OUTPUT_FORMAT>HTML</OUTPUT_FORMAT>
<SIZE>-</SIZE>
<STATUS>
<STATE>Running</STATE>
<MESSAGE><![CDATA[Rendering...]]></MESSAGE>
<PERCENT>80</PERCENT>
</STATUS>
<EXPIRATION_DATETIME>2018-07-30T14:52:48Z</EXPIRATION_DATETIME>
</REPORT>
...
<REPORT>
459
Chapter 10 - Reports
Download Saved Report
<ID>7589800</ID>
<TITLE><![CDATA[My Authentication Report]]></TITLE>
<TYPE>Authentication</TYPE>
<USER_LOGIN>acme_ee17</USER_LOGIN>
<LAUNCH_DATETIME>2018-07-02T07:00:21Z</LAUNCH_DATETIME>
<OUTPUT_FORMAT>PDF</OUTPUT_FORMAT>
<SIZE>15 KB</SIZE>
<STATUS>
<STATE>Finished</STATE>
</STATUS>
<EXPIRATION_DATETIME>2018-07-
30T07:00:24Z</EXPIRATION_DATETIME>
</REPORT>
</REPORT_LIST>
</RESPONSE>
</REPORT_LIST_OUTPUT>
DTD
<platform API server>/asset_data_report.dtd
460
Chapter 10 - Reports
Delete Saved Report
Delete a saved report in the user’s account. This option is available when the Report Share
feature is enabled in the user’s subscription.
User permissions - Managers can delete any saved report. Unit Managers can delete a
saved report in their own business unit (report launched by users in their own business
unit). Scanners and Readers can delete their own saved report.
Input Parameters
Parameter Description
action=delete (Required)
id={value} (Required) Specifies the report ID of a saved report in
Report Share that you want to delete. The status of the
report must be “finished”.
echo_request={0|1} (Optional) Specifies whether to echo the request’s input
parameters in the XML output. When not specified,
parameters are not included in the XML output. Specify 1
to view parameters in the XML output.
DTD
<platform API server>/api/2.0/simple_return.dtd
461
Chapter 10 - Reports
Scheduled Reports List
Input parameters
Parameter Description
action=list (Required)
id={value} (Optional) Show only 1 scheduled report that has the
report ID you specify.
is_active={true|false} (Optional) Active and inactive scheduled reports are listed
by default. Set to “true” to list active scheduled reports
only, or set to “false” to list inactive scheduled reports
only.
DTD
<platform API server>/api/2.0/fo/schedule/report/schedule_report_list_output.dtd
462
Chapter 10 - Reports
Launch Scheduled Report
Input parameters
Parameter Description
action=launch_now (Required)
id={value} (Required) A valid scheduled report ID.
DTD
<platform API server>/api/2.0/simple_return.dtd
Input parameters
Parameter Description
action=search (Required)
output_format={csv|xml} (Required) The output format of the asset search
report. One output format may be specified: csv or xml.
tracking_method={value} (Optional) Show only IP addresses/ranges which have a
certain tracking method. A valid value is: IP, DNS,
NETBIOS, EC2, or AGENT.
463
Chapter 10 - Reports
Asset Search Report
Parameter Description
ips={value} (Optional) Use this parameter if you want to include
only certain IP addresses in the report. One or more
IPs/ranges may be specified. Multiple entries are
comma separated. An IP range is specified with a
hyphen (for example, 10.10.10.1-10.10.10.100).
One of these parameters must be specified in a
request: ips, asset_groups, asset_group_ids, or
use_tags.
ips_network_id={value} (Optional) The network ID applied on IPs. The default
value is ALL.
asset_group_ids={value} (Optional) The IDs of asset groups containing the hosts
to be included in the asset search report. Multiple IDs
are comma separated.
One of these parameters must be specified in a
request: ips, asset_groups, asset_group_ids, or
use_tags.
asset_groups={value} (Optional) The titles of asset groups containing the
hosts to be included in the asset search report. Multiple
titles are comma separated.
One of these parameters must be specified in a
request: ips, asset_groups, asset_group_ids, or
use_tags.
assets_in_my_network_onl (Optional) Specify 1 to include the specified asset
y={0|1} groups and/or IP ranges. Valid for 'All' Asset Group
and/or specified IP ranges.
ec2_instance_status={value (Optional) Specify the EC2 instance status to be
} searched. Possible values: RUNNING,TERMINATED,
PENDING, STOPPING, SHUTTING_DOWN, STOPPED.
Values are case-sensitive. See EC2 search samples
ec2_instance_id={value} (Optional) Specify the EC2 instance ID to be searched.
See See EC2 search samples
ec2_instance_id is valid only when
ec2_instance_id_modifier is specified
ec2_instance_id_modifier= (Optional) Show only hosts with ec2_instance_id that is
{value} either: beginning with, containing, matching, ending
with, not empty. See EC2 search samples
ec2_instance_id_modifier is valid only when
ec2_instance_id is specified
display_ag_titles={0|1} (Optional) Specify 1 to display AssetGroup Titles for
each Host in the output. Otherwise the AssetGroup
Titles are not displayed in the output.
ports={value} (Optional) Shows the hosts that has the specified open
ports. One or more ports may be specified. Multiple
ports are comma separated. You can specify upto 10
values.
464
Chapter 10 - Reports
Asset Search Report
Parameter Description
services={value} (Optional) Shows the hosts that has the specified
services running on it. One or more services may be
specified. Multiple services are comma separated.You
can specify upto 10 values.
qids={value} (Optional) Shows vulnerabilities (QIDs) in the
KnowledgeBase applicable to the host. Allows up to 20
values.
qid_with_text={value} (Optional) Shows vulnerabilities (QIDs) with the
specified text in the KnowledgeBase applicable to the
host.
qid_with_text is valid only when qids parameter is
specified.
qid_with_modifier={value} (Optional) Show only hosts with QID that is either:
beginning with, containing, matching, ending with.
qid_with_modifier is valid only when qid_with_text is
specified.
use_tags={0|1}} (Optional) Specify 0 (the default) if you want to select
hosts based on IP addresses/ranges and/or asset
groups. Specify 1 if you want to select hosts based on
asset tags.
One of these parameters must be specified in a
request: ips, asset_groups, asset_group_ids, or
use_tags.
tag_set_by={id|name} (Optional when use_tags=1) Specify “id” (the default) to
select a tag set by providing tag IDs. Specify “name” to
select a tag set by providing tag names.
tag_include_selector= (Optional when use_tags=1) Select “any” (the default) to
{any|all} include hosts that match at least one of the selected
tags. Select “all” to include hosts that match all of the
selected tags.
tag_exclude_selector= (Optional when use_tags=1) Select “any” (the default) to
{any|all} exclude hosts that match at least one of the selected
tags. Select “all” to exclude hosts that match all of the
selected tags.
tag_set_include={value} (Required when use_tags=1) Specify a tag set to
include. Hosts that match these tags will be included.
You identify the tag set by providing tag name or IDs.
Multiple entries are comma separated.
tag_set_exclude={value} (Optional when use_tags=1) Specify a tag set to
exclude. Hosts that match these tags will be excluded.
You identify the tag set by providing tag name or IDs.
Multiple entries are comma separated.
465
Chapter 10 - Reports
Asset Search Report
Parameter Description
first_found_days={value} (Optional) Specify a number of days along with the
first_found_modifier so that the range includes the
first found date to be searched for
first_found_days is valid only when
first_found_modifier is specified.
first_found_modifier= (Optional) Show only hosts whose first found date is
{within|not within} within or not within the specified days.
first_found_modifier is valid only when
first_found_days is specified.
last_vm_scan_days={value} (Optional) Specify a number of days so that it includes
the last vm scan date to be searched for.
last_vm_scan_days is valid only when
last_vm_scan_modifier is specified.
last_vm_scan_modifier= (Optional) Show only hosts whose last_vm_scan_date
{within|not within} is within or not within the specified days.
last_vm_scan_modifier is valid only when
last_vm_scan_days is specified.
last_pc_scan_days={value} (Optional) Specify a number of days so that the
specified value along with the modifier forms the date
range that includes the last scan date to be searched
for.
This parameter is valid only when the policy
compliance module is enabled for the user account.
last_pc_scan_modifier= (Optional) Show only hosts whose last_pc_scan_date is
{within|not within} within or not within the specified days.
This parameter is valid only when the policy
compliance module is enabled for the user account.
last_scap_scan_days={value (Optional) Specify a number of days so that the
} specified value along with the modifier forms the date
range that includes the last SCAP scan date to be
searched for.
This parameter is valid only when the policy
compliance module is enabled for the user account.
last_scap_scan_modifier= (Optional) Show only hosts whose last_scap_scan_date
{within|not within} is within or not within the specified days.
This parameter is valid only when the policy
compliance module is enabled for the user account.
dns_name={value} (Optional) Specify the DNS name of the host that needs
to be searched.
dns_name is valid only when dns_modifier is specified.
466
Chapter 10 - Reports
Asset Search Report
Parameter Description
dns_modifier={value} (Optional) Show only hosts with dns_name that is
either: beginning with, containing, matching, ending
with, not empty.
dns_modifier is valid only when dns_name is specified.
netbios_name={value} (Optional) Specify the NETBIOS name of the host to be
searched.
netbios_name is valid only when netbios_modifier is
specified.
netbios_modifier={value} (Optional) Show only hosts with netbios_name that is
either: beginning with, containing, matching, ending
with, not empty.
netbios_modifier is valid only when netbios_name is
specified.
os_cpe_name={value} (Optional) Specify the OS CPE name of the host to
searched.
os_cpe_name is valid only when os_cpe_name is
specified.
os_cpe_modifier={value} (Optional)) Show only hosts with os cpe_name that is
either: beginning with, containing, matching, ending
with, not empty.
os_cpe_modifier is valid only when os_cpe_name is
specified.
os_name={value} (Optional) Specify the operating system name of the
host to be searched.
os_name is valid only when os_modifier is specified.
os_modifier={value} (Optional) Show only hosts with os_name that is either:
beginning with, containing, matching, ending with.
os_modifier is valid only when os_name is specified.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_SEARCH_REPORT SYSTEM
"https://qualysapi.qualys.com/asset_search_report_v2.dtd">
<ASSET_SEARCH_REPORT>
<HEADER>
467
Chapter 10 - Reports
Asset Search Report
<REQUEST>
<DATETIME>2018-06-03T20:21:13Z</DATETIME>
<USER_LOGIN>john_sm</USER_LOGIN>
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/report/asset/
</RESOURCE>
<PARAM_LIST>
<PARAM>
<KEY>action</KEY>
<VALUE>search</VALUE>
</PARAM>
<PARAM>
<KEY>output_format</KEY>
<VALUE>xml</VALUE>
</PARAM>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>ips</KEY>
<VALUE>10.10.10.10-10.10.10.15</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<COMPANY>Corsa</COMPANY>
<USERNAME>John Smith</USERNAME>
<GENERATION_DATETIME>2018-06-03T20:21:13Z</GENERATION_DATETIME>
<TOTAL>2</TOTAL>
<FILTERS>
<IP_LIST>
<RANGE>
<START>10.10.10.10</START>
<END>10.10.10.15</END>
</RANGE>
</IP_LIST>
</FILTERS>
</HEADER>
<HOST_LIST>
<HOST>
<IP><![CDATA[10.10.10.10]]></IP>
<TRACKING_METHOD>IP address</TRACKING_METHOD>
<OPERATING_SYSTEM><![CDATA[Linux 2.4-2.6 / Embedded Device / F5
Networks Big-IP]]></OPERATING_SYSTEM>
<LAST_SCAN_DATE>2018-06-03T09:11:21Z</LAST_SCAN_DATE>
468
Chapter 10 - Reports
Asset Search Report
<FIRST_FOUND_DATE>2018-06-03T07:11:46Z</FIRST_FOUND_DATE>
</HOST>
<HOST>
<IP><![CDATA[10.10.10.11]]></IP>
<TRACKING_METHOD>IP address</TRACKING_METHOD>
<DNS><![CDATA[10-10-10-11.bogus.tld]]></DNS>
<NETBIOS><![CDATA[SYS_10_10_10_11]]></NETBIOS>
<OPERATING_SYSTEM><![CDATA[Windows 2000 Server Service Pack
4]]></OPERATING_SYSTEM>
<LAST_SCAN_DATE>2018-06-03T07:12:47Z</LAST_SCAN_DATE>
<LAST_COMPLIANCE_SCAN_DATE>2018-05-
13T21:15:01Z</LAST_COMPLIANCE_SCAN_DATE>
<FIRST_FOUND_DATE>2018-05-12T15:16:54Z</FIRST_FOUND_DATE>
</HOST>
</HOST_LIST>
</ASSET_SEARCH_REPORT>
DTD:
<platform API server>/asset_search_report_v2.dtd
469
Chapter 10 - Reports
Asset Search Report
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_SEARCH_REPORT SYSTEM
"https://qualysapi.qualys.com/asset_search_report_v2.dtd">
<ASSET_SEARCH_REPORT>
<HEADER>
<COMPANY><![CDATA[qualys-test]]></COMPANY>
<USERNAME>qualys_ps</USERNAME>
<GENERATION_DATETIME>2018-04-11T10:17:32Z</GENERATION_DATETIME>
<TOTAL>1</TOTAL>
<FILTERS>
<ASSET_TAGS>
<INCLUDED_TAGS scope="any">
<ASSET_TAG><![CDATA[useasttag]]></ASSET_TAG>
</INCLUDED_TAGS>
</ASSET_TAGS>
<TRACKING_METHOD><![CDATA[EC2]]></TRACKING_METHOD>
</FILTERS>
</HEADER>
<HOST_LIST>
<HOST>
<IP><![CDATA[10.73.188.6]]></IP>
<HOST_TAGS><![CDATA[EC2, Virginia, agec2, sada-0117-targets,
sada-new-0308, useasttag;
]]></HOST_TAGS>
<TRACKING_METHOD>EC2</TRACKING_METHOD>
<DNS><![CDATA[ip-10-73-188-6.ec2.internal]]></DNS>
<EC2_INSTANCE_ID><![CDATA[i-
0fb7086f985856fa4]]></EC2_INSTANCE_ID>
<LAST_SCAN_DATE />
470
Chapter 10 - Reports
Asset Search Report
<FIRST_FOUND_DATE />
</HOST>
</HOST_LIST>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_SEARCH_REPORT SYSTEM
"https://qualysapi.qualys.com/asset_search_report_v2.dtd">
<ASSET_SEARCH_REPORT>
<HEADER>
<COMPANY><![CDATA[qualys-test]]></COMPANY>
<USERNAME>sada-customer customer</USERNAME>
<GENERATION_DATETIME>2018-04-11T10:49:05Z</GENERATION_DATETIME>
<TOTAL>1</TOTAL>
<FILTERS>
<ASSET_TAGS>
<INCLUDED_TAGS scope="any">
<ASSET_TAG><![CDATA[useasttag]]></ASSET_TAG>
</INCLUDED_TAGS>
</ASSET_TAGS>
<TRACKING_METHOD><![CDATA[EC2]]></TRACKING_METHOD>
</FILTERS>
</HEADER>
<HOST_LIST>
<HOST>
<IP><![CDATA[10.90.2.175]]></IP>
<HOST_TAGS><![CDATA[EC2, Vriginia, por-6586, sada-0117-
targets, sada-new-0308, useasttag;
]]></HOST_TAGS>
<TRACKING_METHOD>EC2</TRACKING_METHOD>
<DNS><![CDATA[i-0b121b9211d7e25cb]]></DNS>
<EC2_INSTANCE_ID><![CDATA[i-
0b121b9211d7e25cb]]></EC2_INSTANCE_ID>
471
Chapter 10 - Reports
Asset Search Report
<LAST_SCAN_DATE />
<FIRST_FOUND_DATE />
</HOST>
</HOST_LIST>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_SEARCH_REPORT SYSTEM
"https://qualysapi.qualys.com/asset_search_report_v2.dtd">
<ASSET_SEARCH_REPORT>
<HEADER>
<COMPANY><![CDATA[qualys]]></COMPANY>
<USERNAME>POC Manager</USERNAME>
<GENERATION_DATETIME>2018-11-06T00:42:13Z</GENERATION_DATETIME>
<TOTAL>26</TOTAL>
<FILTERS>
<ASSET_GROUPS>
<ASSET_GROUP_TITLE><![CDATA[Winodws 7
Scap]]></ASSET_GROUP_TITLE>
</ASSET_GROUPS>
<FILTER_LAST_SCAP_SCAN_DATE><![CDATA[Within
300]]></FILTER_LAST_SCAP_SCAN_DATE>
</FILTERS>
</HEADER>
<HOST_LIST>
<HOST>
<IP><![CDATA[10.10.10.10]]></IP>
<TRACKING_METHOD>IP address</TRACKING_METHOD>
<DNS><![CDATA[bridge.qualys.com]]></DNS>
<NETBIOS><![CDATA[WIN7-10-10]]></NETBIOS>
<OPERATING_SYSTEM><![CDATA[Windows 7 Ultimate 64 bit Edition
Service Pack 1]]></OPERATING_SYSTEM>
<OS_CPE><![CDATA[cpe:/o:microsoft:windows_7::sp1:x64-
ultimate:]]></OS_CPE>
<LAST_SCAN_DATE>2018-10-18T20:55:10Z</LAST_SCAN_DATE>
<LAST_COMPLIANCE_SCAN_DATE>2018-09-
472
Chapter 10 - Reports
Asset Search Report
14T21:57:53Z</LAST_COMPLIANCE_SCAN_DATE>
<LAST_SCAP_SCAN_DATE>2018-08-
28T10:57:06Z</LAST_SCAP_SCAN_DATE>
<FIRST_FOUND_DATE>2018-04-03T23:18:26Z</FIRST_FOUND_DATE>
</HOST>
473
Chapter 11 - VM Report Templates
API Support for Report Templates
Once you have your template the way you want you can run reports using the templates
using the Report API /api/2.0/fo/report.
474
Chapter 11 - VM Report Templates
Scan Template
Scan Template
/api/2.0/fo/report/template/scan/
Perform actions such as create, update, delete and export on the Scan Template.
475
Chapter 11 - VM Report Templates
Scan Template
Parameter Description
Target What target assets to include in the report.
scan_selection={HostBased| Specify HostBased for Host Based Findings (default for
ScanBased|} new template) or ScanBased for Scan Based Findings.
Choosing Host Based Findings allows you to report on the
latest vulnerability data from all of your scans. Choosing
Scan Based Findings allows you to run a report based on
saved scan results.
include_trending={0|1} Specify 1 to include trending. Choose a timeframe (daily,
weekly or monthly) to analyze the vulnerability status for
the timeframe selected.
This parameter is required only if
scan_selection=HostBased.
limit_timeframe={0|1} Specify 1 to only include scan results from the specified
time frame. This ensures that only vulnerability
information gathered in the timeframe that you've
specified is included in the report. If unspecified,
vulnerability information for hosts that were last
scanned prior to the report timeframe may be included.
This parameter is required only if
scan_selection=HostBased.
selection_type={day|month| Specify whether to include trending information for
weeks|date|none|scans} number of weeks, days or months or a specific date.
Specifying none will create a report without any trending
information included.
Specifying scans will include trending information for the
last two detections.
This parameter is required only if
scan_selection=HostBased.
selection_range={value} Specify the range for the selection type. Specify a number
of units (1|3|5|7|15|30|60|90) for days, weeks or months.
Date must be in the format yyyy-mm-dd (2017-04-05),
and must be less than or equal to today’s date.
Trending information since the last number of units or
the specified date will be included.
This parameter is required only if
scan_selection=HostBased.
asset_groups={value} Specify the name of the asset group(s) to report on.
Multiple asset groups are comma separated. We'll report
on all the IPs in the asset groups.
This parameter is required only if
scan_selection=HostBased.
asset_group_ids={value} Specify the ID of the asset group(s) to report on. Multiple
asset group IDs are comma separated. We'll report on all
the IPs in the asset groups.
This parameter is required only if
scan_selection=HostBased.
476
Chapter 11 - VM Report Templates
Scan Template
Parameter Description
network={value} (Valid only when the Networks feature is enabled for your
account.) A network name containing the IPs to include.
For a new template the default network is Global Default
Network.
ips={value} Specify the IPs or IP ranges to report on. Multiple IPs or IP
ranges are comma separated.
This parameter is required only if
scan_selection=HostBased.
tag_set_by={name|id} Specify the name of the tags or the ID of the tags for the
hosts you want to report on. Multiple tag names or tag
IDs are comma separated.
tag_include_selector= Specify ALL to match all the asset tags for the hosts you
{ALL|ANY} want to report on (This is an AND operation). Specifying
ANY will match any of the assets tags (This is an OR
operation).
This parameter is required only if
scan_selection=HostBased.
tag_set_include={value} Specify asset tags for the hosts you want to report on.
We'll find the hosts in your account that match your tag
selection and include them in the report.
Multiple tags can be provided using comma separated
values.
This parameter is required only if
scan_selection=HostBased.
tag_exclude_selector= Specify ALL to match all the asset tags for the hosts you
{ALL|ANY} want do not want to report on (This is an AND operation).
Specifying ANY will match any of the assets tags (This is
an OR operation).
This parameter is required only if
scan_selection=HostBased.
tag_set_exclude={value} Specify asset tags for the hosts you do not want to report
on. We'll find the hosts in your account that match your
tag selection and exclude them from the report.
Multiple tags can be provided using comma separated
values.
This parameter is required only if
scan_selection=HostBased.
host_with_cloud_agents= What host findings to include in the report when CA
{all|scan|agent} module is enabled. Your options are:
all - All data
scan - Scan data, i.e. include findings from scans that
didn’t use Agentless Tracking
agent - Agent data, i.e. include findings from the agent
when merging is enabled (i.e. Show unified view hosts
option in UI under Users > Setup > Cloud Agent Setup)
477
Chapter 11 - VM Report Templates
Scan Template
Parameter Description
display_text_summary={0|1} Specify 1 to include the following summary info for the
entire report: total vulnerabilities detected, overall
security risk, business risk (for reports sorted by asset
group), total vulnerabilities by status, total vulnerabilities
by severity and top 5 vulnerability categories.
graph_business_risk={0|1} Specify 1 to include the business risk information.
Note that some graphs are only available when trend
information is included. Keep in mind that your filter
settings will affect the data reflected in your graphs.
graph_vuln_over_time={0|1} Specify 1 to include the vulnerabilities by severity over
time.
graph_status={0|1} Specify 1 to include the vulnerabilities by status.
graph_potential_status={0|1} Specify 1 to include the potential vulnerabilities by
status.
graph_severity={0|1} Specify 1 to include the vulnerabilities by severity.
Display Display options such as graphs amount of detail.
graph_potential_severity= Specify 1 to include the potential vulnerabilities by
{0|1} severity.
graph_ig_severity={0|1} Specify 1 to include the information gathered by severity.
graph_top_categories={0|1} Specify 1 to include the top five vulnerable categories.
graph_top_vulns={0|1} Specify 1 to include the ten most prevalent
vulnerabilities.
graph_os={0|1} Specify 1 to include the operating systems detected.
graph_services={0|1} Specify 1 to include the services detected.
graph_top_ports={0|1} Specify 1 to include the ports detected.
display_custom_footer={0|1} Specify 1 to include custom text in the report footer.
display_custom_footer_text= Specify custom text like a disclosure statement or data
{value} classification (e.g. Public, Confidential). The text you
enter will appear in all reports generated from this
template, except reports in XML and CSV formats. Length
is maximum 4000 characters.
sort_by={host|vuln|os| Specify how you want to organize the Detailed Results
group|service|port} section of your report - by host, vuln (i.e. vulnerability),
group (i.e. asset group), service or port.
cvss={all|cvssv2|cvssv3} Specify the CVSS version score you want to display in
reports.
all - both CVSS versions
cvssv2 - CVSS version 2
cvssv3 - CVSS version 3
478
Chapter 11 - VM Report Templates
Scan Template
Parameter Description
host_details={0|1} Specify 1 to include identifying information for each host
agent like the asset ID and related IPs (IPv4, IPv6 and MAC
addresses).
This parameter is required only if
scan_selection=HostBased and sort_by=host.
metadata_ec2_instances= Specify 1 to include metadata information for each EC2
{0|1} asset. This could be EC2 instance information such as
accountId, region, availabilityZone, instanceId,
instanceType, imageId, and kernelId.
include_text_summary={0|1} Specify 1 to include the following summary info for each
host, vulnerability, asset group, etc (depending on the
sorting method you selected): total vulnerabilities
detected, the security risk, the business risk (for reports
sorted by asset group), total vulnerabilities by status,
total vulnerabilities by severity and top 5 vulnerability
categories.
include_vuln_details={0|1} Specify 1 to include additional details for each
vulnerability in the report.
include_vuln_details_threat Specify 1 to include a description of the threat.
={0|1}
include_vuln_details_impact Specify 1 to include possible consequences that may
={0|1} occur if the vulnerability is exploited.
include_vuln_details_solutio Specify 1 to include a verified solution to remedy the
n={0|1} issue, such as a link to the vendor's patch, Web site, or a
workaround.
include_vuln_details_vpatch Specify 1 to include virtual patch information correlated
={0|1} with the vulnerability, obtained from Trend Micro real-
time feeds.
include_vuln_details_compli Specify 1 to include compliance information correlated
ance={0|1} with the vulnerability.
include_vuln_details_exploit Specify 1 to include exploitability information correlated
={0|1} with the vulnerability, includes references to known
exploits and related security resources.
include_vuln_details_malwa Specify 1 to include malware information correlated with
re={0|1} the vulnerability, obtained from the Trend Micro Threat
Encyclopedia.
include_vuln_details_results Specify 1 to include specific scan test results for each
={0|1} host, when available. We'll also show the date the
vulnerability was first detected, last detected and the
number of times it was detected.
include_vuln_details_reopen Specify 1 to include information related to reopened
ed={0|1} vulnerabilities.
479
Chapter 11 - VM Report Templates
Scan Template
Parameter Description
include_vuln_details_appen Specify 1 to include more information like IPs in your
dix={0|1} report target that don't have any scan results, and IPs
that were scanned but results are not shown (no
vulnerabilities were detected or all vulnerabilities were
filtered out).
exclude_account_id={0|1} Specify 1 to exclude the account login ID in the filename
of downloaded reports. Use this option to remove the
login ID from the filename.
Filters Filter options such as vulnerability status, categories,
QIDs, OS.
selective_vulns={complete| Specify complete to show results for any and all
custom} vulnerabilities found.
Specify custom to filter your reports to specific QIDs (add
static search lists) or to QIDs that match certain criteria
(add dynamic search lists). For example, maybe you only
want to report on vulnerabilities with severity 4 or 5. Tip -
Exclude QIDs that you don't want in the report.
search_list_ids={value} Specify search list ID or QID. Multiple search list IDs or
QIDs can be provided using values separated by a
comma.
This parameter is required only if
selective_vulns=custom.
exclude_qid_option={0|1} Specify 1 to exclude QIDs from the report.
exclude_search_list_ids= Specify QID to be excluded from the report. Multiple QIDs
{value} can be provided using values separated by a comma.
This parameter is required only if exclude_qid_option=1.
included_os={value} Specify the operating system name to filter hosts. For
example, to only report on Linux hosts make sure you
provide the operating system name for Linux.
Multiple operating system names can be provided using
values separated by a comma.
Specify ALL to include all operating systems.
See Identified OS.
status_new={0|1} Specify 1 to include vulnerabilities in your report based
on the current vulnerability status - New.
status_active={0|1} Specify 1 to filter vulnerabilities in your report based on
the current vulnerability status - Active.
status_reopen={0|1} Specify 1 to filter vulnerabilities in your report based on
the current vulnerability status - Re-Opened.
status_fixed={0|1} Specify 1 to filter vulnerabilities in your report based on
the current vulnerability status - Fixed.
vuln_active={0|1} Specify 1 to filter confirmed vulnerabilities in your report
based on the state - Active.
vuln_disabled={1|1} Specify 1 to filter confirmed vulnerabilities in your report
based on the state - Disabled.
480
Chapter 11 - VM Report Templates
Scan Template
Parameter Description
vuln_ignored={0|1} Specify 1 to filter confirmed vulnerabilities in your report
based on the state - Ignored.
potential_active={0|1} Specify 1 to filter potential vulnerabilities in your report
based on the state - Active.
potential_disabled={0|1} Specify 1 to filter potential vulnerabilities in your report
based on the state - Disabled.
potential_ignored={0|1} Specify 1 to filter potential vulnerabilities in your report
based on the state - Ignored.
ig_active={0|1} Specify 1 to filter the information gathered in your report
based on the state - Active.
ig_disabled={0|1} Specify 1 to filter the information gathered in your report
based on the state - Disabled.
ig_ignored={0|1} Specify 1 to filter the information gathered in your report
based on the state - Ignored.
display_non_running_kernel Specify 1 to include a list of all vulnerabilities found on
s={0|1} non-running kernels.
exclude_non_running_kerne Specify 1 to exclude vulnerabilities found on non-running
l={0|1} kernels.
Use only one parameter at a time: highlight_arf_kernel or
arf_kernel.
exclude_non_running_servic Specify 1 to only include vulnerabilities found where the
es={0|1} port/service is running.
exclude_qids_not_exploitabl Specify 1 to exclude vulnerabilities that are not
e_due_to_configuration={0|1} exploitable because there’s a specific configuration
present on the host.
exclude_superceded_patche Specify 1 to exclude every patch QID which is superceded
s={0|1} (replaced) by another patch QID recommended for the
same Host.
categories_list={value} Specify the category name to filter hosts in your report
based on various categories. For example, if you're only
interested in Windows vulnerabilities make sure you
provide the category name for Windows.
Multiple category names can be provided using values
separated by a comma.
Specify ALL to include all categories.
See Categories.
Services and Ports Services and ports to include in report.
required_services={value} Specify the name of a required service. Multiple service
names can be provided using values separated by a
comma. We'll report QID: 38228 (when a required service
is NOT detected).
See Identified Services.
481
Chapter 11 - VM Report Templates
Scan Template
Parameter Description
unauthorized_services= Specify the name of an unauthorized service. Multiple
{value} service names can be provided using values separated by
a comma. We'll report QID: 38175 (when an unauthorized
service is detected). See Identified Services.
required_ports={value} Specify required ports. Multiple ports can be provided
using values separated by a comma. We'll report QID:
82051 (when a required port is NOT detected).
unauthorized_ports={value} Specify unauthorized ports. Multiple ports can be
provided using values separated by a comma.
We'll report QID: 82043 (when an unauthorized port is
detected).
User Access Control user access to template and reports generated
from template.
global={0|1} Share this report template with other users by making it
global. Specify 1 to make it global.
report_access_users={value} Specify the username to share the report with a user who
wouldn't already have access to the report. Multiple
usernames can be provided using values separated by a
comma. Each user you add will be able to view reports
generated from this template even if they don't have
access to the IPs in the report.
DTD
<platform API server>/api/2.0/fo/report/template/scan/scanreporttemplate_info.dtd
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-04-06T05:41:32Z</DATETIME>
<CODE>Scan Report Template(s) Created Successfully
[89876]</CODE>
<TEXT></TEXT>
</RESPONSE>
</SIMPLE_RETURN>
482
Chapter 11 - VM Report Templates
Scan Template
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-04-04T10:52:34Z</DATETIME>
<CODE>Scan Report Template Updated Successfully [8209]</CODE>
<TEXT></TEXT>
</RESPONSE>
</SIMPLE_RETURN>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-04-04T10:54:37Z</DATETIME>
<CODE>Scan Report Template(s) Deleted Successfully
[8209]</CODE>
<TEXT></TEXT>
</RESPONSE>
</SIMPLE_RETURN>
483
Chapter 11 - VM Report Templates
Scan Template
API request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With:curl"
"https://qualysapi.qualys.com/api/2.0/fo/report/template/scan/?act
ion=export&template_id=89470&report_format=xml"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE REPORTTEMPLATE SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/report/template/scan/scan
reporttemplate_info.dtd">
<REPORTTEMPLATE>
<SCANTEMPLATE>
<TITLE>
<INFO key="title"><![CDATA[Scan-Report-To-Create-Do not
Change]]></INFO>
<INFO key="owner"><![CDATA[1086]]></INFO>
</TITLE>
<TARGET>
<INFO key="scan_selection"><![CDATA[HostBased]]></INFO>
<INFO key="include_trending"><![CDATA[1]]></INFO>
<INFO key="selection_type"><![CDATA[days]]></INFO>
<INFO key="selection_range"><![CDATA[5]]></INFO>
<INFO key="limit_timeframe"><![CDATA[1]]></INFO>
<INFO key="asset_groups"><![CDATA[PBPS-Targets]]></INFO>
<INFO key="tag_set_by"><![CDATA[id]]></INFO>
<INFO key="tag_set_include"><![CDATA[8644659]]></INFO>
<INFO key="tag_set_exclude"><![CDATA[8262228]]></INFO>
<INFO key="tag_include_selector"><![CDATA[ALL]]></INFO>
<INFO key="tag_exclude_selector"><![CDATA[ALL]]></INFO>
<INFO key="network"><![CDATA[-100]]></INFO>
<INFO key="ips"><![CDATA[10.10.0.1,10.10.0.5]]></INFO>
<INFO key="host_with_cloud_agents"><![CDATA[all]]></INFO>
</TARGET>
<DISPLAY>
<INFO key="graph_business_risk"><![CDATA[1]]></INFO>
<INFO key="graph_vuln_over_time"><![CDATA[1]]></INFO>
<INFO key="display_text_summary"><![CDATA[1]]></INFO>
<INFO key="graph_status"><![CDATA[1]]></INFO>
<INFO key="graph_potential_status"><![CDATA[1]]></INFO>
<INFO key="graph_severity"><![CDATA[1]]></INFO>
<INFO key="graph_potential_severity"><![CDATA[1]]></INFO>
<INFO key="graph_ig_severity"><![CDATA[1]]></INFO>
<INFO key="graph_top_categories"><![CDATA[1]]></INFO>
<INFO key="graph_top_vulns"><![CDATA[1]]></INFO>
<INFO key="graph_os"><![CDATA[1]]></INFO>
484
Chapter 11 - VM Report Templates
Scan Template
<INFO key="graph_services"><![CDATA[1]]></INFO>
<INFO key="graph_top_ports"><![CDATA[1]]></INFO>
<INFO key="display_custom_footer"><![CDATA[1]]></INFO>
<INFO
key="display_custom_footer_text"><![CDATA[Test@123]]></INFO>
<INFO key="sort_by"><![CDATA[host]]></INFO>
<INFO key="cvss"><![CDATA[all]]></INFO>
<INFO key="host_details"><![CDATA[0]]></INFO>
<INFO key="include_text_summary"><![CDATA[1]]></INFO>
<INFO key="include_vuln_details"><![CDATA[1]]></INFO>
<INFO key="include_vuln_details_threat"><![CDATA[1]]></INFO>
<INFO key="include_vuln_details_impact"><![CDATA[1]]></INFO>
<INFO
key="include_vuln_details_solution"><![CDATA[1]]></INFO>
<INFO key="include_vuln_details_vpatch"><![CDATA[1]]></INFO>
<INFO
key="include_vuln_details_compliance"><![CDATA[1]]></INFO>
<INFO
key="include_vuln_details_exploit"><![CDATA[1]]></INFO>
<INFO
key="include_vuln_details_malware"><![CDATA[1]]></INFO>
<INFO
key="include_vuln_details_results"><![CDATA[1]]></INFO>
<INFO
key="include_vuln_details_appendix"><![CDATA[1]]></INFO>
<INFO key="exclude_account_id"><![CDATA[1]]></INFO>
<INFO
key="include_vuln_details_reopened"><![CDATA[1]]></INFO>
<INFO key="metadata_ec2_instances"><![CDATA[0]]></INFO>
</DISPLAY>
<FILTER>
<INFO key="selective_vulns"><![CDATA[complete]]></INFO>
<INFO key="search_list_ids"><![CDATA[]]></INFO>
<INFO key="exclude_qid_option"><![CDATA[1]]></INFO>
<INFO key="exclude_search_list_ids"><![CDATA[]]></INFO>
<INFO key="included_os"><![CDATA[ALL]]></INFO>
<INFO key="status_new"><![CDATA[1]]></INFO>
<INFO key="status_active"><![CDATA[1]]></INFO>
<INFO key="status_reopen"><![CDATA[1]]></INFO>
<INFO key="status_fixed"><![CDATA[1]]></INFO>
<INFO key="vuln_active"><![CDATA[1]]></INFO>
<INFO key="vuln_disabled"><![CDATA[1]]></INFO>
<INFO key="vuln_ignored"><![CDATA[1]]></INFO>
<INFO key="potential_active"><![CDATA[1]]></INFO>
<INFO key="potential_disabled"><![CDATA[1]]></INFO>
<INFO key="potential_ignored"><![CDATA[1]]></INFO>
485
Chapter 11 - VM Report Templates
Scan Template
<INFO key="ig_active"><![CDATA[1]]></INFO>
<INFO key="ig_disabled"><![CDATA[1]]></INFO>
<INFO key="ig_ignored"><![CDATA[0]]></INFO>
<INFO key="display_non_running_kernels"><![CDATA[1]]></INFO>
<INFO key="exclude_non_running_kernel"><![CDATA[0]]></INFO>
<INFO
key="exclude_non_running_services"><![CDATA[1]]></INFO>
<INFO key="exclude_superceded_patches"><![CDATA[1]]></INFO>
<INFO
key="exclude_qids_not_exploitable_due_to_configuration"><![CDATA[1
]]></INFO>
<INFO key="categories_list"><![CDATA[ALL]]></INFO>
</FILTER>
<SERVICESPORTS>
<INFO key="required_services"><![CDATA[ActiveSync,akak
trojan,Apple
Airport Management,Applix TM1 Server]]></INFO>
<INFO key="unauthorized_services"><![CDATA[aml,Arkeiad
Network
Backup,auth]]></INFO>
<INFO key="services_info"><![CDATA[aml,Arkeiad Network
Backup,auth]]></INFO>
<INFO key="required_ports"><![CDATA[12]]></INFO>
<INFO key="unauthorized_ports"><![CDATA[21]]></INFO>
</SERVICESPORTS>
<USERACCESS>
<INFO
key="report_access_users"><![CDATA[start_rm2,start_su]]></INFO>
<INFO key="global"><![CDATA[1]]></INFO>
</USERACCESS>
</SCANTEMPLATE>
</REPORTTEMPLATE>
486
Chapter 11 - VM Report Templates
PCI Scan Template
Perform actions such as create, update, delete and export on the PCI Scan Template.
487
Chapter 11 - VM Report Templates
PCI Scan Template
DTD
<platform API server>/api/2.0/fo/report/template/pciscan/pciscanreporttemplate_info.dtd
Samples
Refer to Scan template examples for create, update, delete and export sample requests.
Requests and outputs for PCI Scan template are similar.
488
Chapter 11 - VM Report Templates
Patch Template
Patch Template
/api/2.0/fo/report/template/patch/
Perform actions such as create, update, delete and export on the Patch Template.
489
Chapter 11 - VM Report Templates
Patch Template
Parameter Description
Target What target assets to include in the report.
patch_evaluation= Specify classic to choose Classic patch evaluation or
{qidbased|classic} specify qidbased to choose QID based patch evaluation.
asset_groups Asset groups to include in the report. Multiple asset
groups are comma separated.
asset_group_ids={value} Specify the ID of the asset group(s) to report on. Multiple
asset group IDs are comma separated. We'll report on all
the IPs in the asset groups.
tag_set_by={name|id} Specify the name of the tags or the ID of the tags for the
hosts you want to report on. Multiple tag names or tag
IDs are comma separated.
tag_include_selector= Specify ALL to match all the asset tags for the hosts you
{ALL|ANY} want to report on (This is an AND operation). Specifying
ANY will match any of the assets tags (This is an OR
operation).
tag_set_include={value} Specify asset tags for the hosts you want to report on.
We'll find the hosts in your account that match your tag
selection and include them in the report.
Multiple tags can be provided using comma separated
values.
tag_exclude_selector= Specify ALL to match all the asset tags for the hosts you
{ALL|ANY} want do not want to report on (This is an AND operation).
Specifying ANY will match any of the assets tags (This is
an OR operation).
tag_set_exclude={value} Specify asset tags for the hosts you do not want to report
on. We'll find the hosts in your account that match your
tag selection and exclude them from the report.
Multiple tags can be provided using comma separated
values.
network={value} (Valid only when the Networks feature is enabled for your
account.) A network name containing the IPs to include.
For a new template the default network is Global Default
Network.
ips={value} IP addresses to include in the report. Multiple IPs are
comma separated.
Display Display options to include in the report.
group_by={HOST|PATCH|OS| Sort and group the results of the report by any of the
AG} following:
Host = HOST
Patch = PATCH
Operating System = OS
Asset Group = AG
include_table_of_qids_fixed= Specify 1 to include QIDs that will be fixed by each patch.
{0|1}
include_patch_links={0|1} Specify 1 to include the available links for each patch.
490
Chapter 11 - VM Report Templates
Patch Template
Parameter Description
include_patches_from_unsp Specify 1 to include patches from unspecified vendors.
ecified_vendors={0|1}
patch_severity_by= Specify assigned to display severity which is assigned to
{assigned|highest} the QID for the patch detection. Specify highest to display
the severity which is highest across all QIDs found on the
host that can be patched.
patch_cvss_score_by= Specify the CVSS version score you want to display in
{assigned|highest|none} reports.
assigned - CVSS score assigned to the QID for the patch
detection
highest - CVSS score highest across all QIDs found on the
host that can be patched.
none - Do not display CVSS scores.
cvss={all|cvssv2|cvssv3} Specify the CVSS version score you want to display in
reports.
all - both CVSS versions
cvssv2 - CVSS version 2
cvssv3 - CVSS version 3
display_custom_footer={0|1} Specify 1 to include custom text in the report footer.
display_custom_footer_text= Specify custom text like a disclosure statement or data
{value} classification (e.g. Public, Confidential). The text you
enter will appear in all reports generated from this
template, except reports in XML and CSV formats. Length
is maximum 4000 characters.
exclude_account_id={0|1} Specify 1 to exclude the account login ID in the filename
of downloaded reports. Use this option to remove the
login ID from the filename.
Filters Filter options such as vulnerabilities, QIDs, patches.
selective_vulns={complete| Specify complete to show results for any and all
custom} vulnerabilities found.
Specify custom to filter your reports to specific QIDs (add
static search lists) or to QIDs that match certain criteria
(add dynamic search lists). For example, maybe you only
want to report on vulnerabilities with severity 4 or 5. Tip -
Exclude QIDs that you don't want in the report.
search_list_ids= Specify QID to be included in the report. Multiple QIDs
{value} can be provided using values separated by a comma.
This parameter is required only if
selective_vulns=custom.
exclude_qid_option={0|1} Specify 1 to exclude QIDs from the report.
exclude_search_list_ids= Specify QID to be excluded from the report. Multiple QIDs
{value} can be provided using values separated by a comma.
This parameter is required only if exclude_qid_option=1.
display_non_running_kernel Specify 1 to include a list of all vulnerabilities found on
s={0|1} non-running kernels.
491
Chapter 11 - VM Report Templates
Patch Template
Parameter Description
exclude_non_running_kerne Specify 1 to exclude vulnerabilities found on non-running
l={0|1} kernels.
Use only one parameter at a time: highlight_arf_kernel or
arf_kernel.
exclude_non_running_servic Specify 1 to only include vulnerabilities found where the
es={0|1} port/service is running.
exclude_qids_not_exploitabl Specify 1 to exclude vulnerabilities that are not
e_due_to_configuration={0|1} exploitable because there’s a specific configuration
present on the host.
selective_patches= Specify complete to show results for any and all patches
{complete|custom} found.
Specify custom to filter your reports to specific QIDs (add
static search lists) or to QIDs that match certain criteria
(add dynamic search lists). For example, maybe you only
want to report on vulnerabilities with severity 4 or 5. Tip -
Exclude QIDs that you don't want in the report.
exclude_patch_qid_option= Specify 1 to exclude patch QIDs from the report.
{0|1}
patch_search_list_ids= Specify patch QID to be included in the report. Multiple
{value} patch QIDs can be provided using values separated by a
comma.
This parameter is required only if
selective_patches=custom.
exclude_patch_search_list_i Specify patch QID to be excluded from the report.
ds={value} Multiple patch QIDs can be provided using values
separated by a comma.
This parameter is required only if
exclude_patch_qid_option=1.
found_since_days={7|30|90|365|NoLimit}
Show only patches for vulnerabilities detected during the
specified period of time in days. Specify NoLimit for no
time limit.
User Access Control user access to template and reports generated
from template.
global={0|1} Share this report template with other users by making it
global. Specify 1 to make it global.
report_access_users={value} Specify the username to share the report with a user who
wouldn't already have access to the report. Multiple
usernames can be provided using values separated by a
comma. Each user you add will be able to view reports
generated from this template even if they don't have
access to the IPs in the report.
DTD
<platform API server>/api/2.0/fo/report/template/patch/patchreporttemplate_info.dtd
492
Chapter 11 - VM Report Templates
Map Template
Samples
Refer to Scan template examples for create, update, delete and export sample requests.
Requests and outputs for Patch template are similar.
Map Template
/api/2.0/fo/report/template/map/
Perform actions such as create, update, delete and export on the Map Template.
493
Chapter 11 - VM Report Templates
Map Template
494
Chapter 11 - VM Report Templates
Map Template
Parameter Description
map_included_hosttypes_liv Specify 1 to filter the report by host types - Live.
e={0|1}
map_included_hosttypes_ap Specify 1 to filter the report by host types - Approved.
proved={0|1}
map_included_hosttypes_ou Specify 1 to filter the report by host types - Not In
tofnetblock={0|1} Netblock.
map_included_hosttypes_no Specify 1 to filter the report by host types - Not
tscannable={0|1} Scannable.
map_included_hosttypes_no Specify 1 to filter the report by host types - Not Live.
tlive={0|1}
map_included_hosttypes_ro Specify 1 to filter the report by host types - Rouge.
gue={0|1}
Included Discovery Methods Specify at least one.
map_idm_tcp={0|1} Specify 1 to filter the report by discovery methods - TCP.
map_idm_udp={0|1} Specify 1 to filter the report by discovery methods - UDP.
map_idm_traceroute={0|1} Specify 1 to filter the report by discovery methods -
TraceRoute.
map_idm_other={0|1} Specify 1 to filter the report by discovery methods - Other.
map_idm_dns={0|1} Specify 1 to filter the report by discovery methods - DNS.
map_idm_icmp={0|1} Specify 1 to filter the report by discovery methods - ICMP.
map_idm_auth={0|1} Specify 1 to filter the report by discovery methods -
AUTH.
Included Status Levels Only applicable for differential map reports.
map_included_statuses_add Specify 1 to filter the report by statuses - Added.
ed={0|1}
map_included_statuses_rem Specify 1 to filter the report by statuses - Removed.
oved={0|1}
map_included_statuses_acti Specify 1 to filter the report by statuses - Active.
ve={0|1}
dns_exclusions={none|DNS|D Exclude hosts discovered only via:
NS-DNSZone} none = None
DNS = DNS
DNS-DNSZone = DNS and/or DNS Zone Transfer
included_os={value} Specify the operating system name to filter hosts. For
example, to only report on Linux hosts make sure you
provide the operating system name for Linux.
Multiple operating system names can be provided using
values separated by a comma.
Specify ALL to include all operating systems.
See Identified OS.
495
Chapter 11 - VM Report Templates
Map Template
Samples
Refer to Scan template examples for create, update, delete and export sample requests.
Requests and outputs for Map template are similar.
496
Chapter 11 - VM Report Templates
Map Template
497
Chapter 11 - VM Report Templates
Map Template
498
Chapter 11 - VM Report Templates
Map Template
499
Chapter 11 - VM Report Templates
Map Template
500
Chapter 11 - VM Report Templates
Map Template
501
Chapter 11 - VM Report Templates
Map Template
502
Chapter 11 - VM Report Templates
Map Template
Ubuntu Windows NT
Ubuntu Linux 10 Windows NT4
Ubuntu Linux 11 Windows RT
Ubuntu Linux 7 Windows Vista
Ubuntu Linux 8 Windows XP
Ubuntu Linux 9 WKTI RDS Encoder
Ubuntu Linux LTS Xerox
Uninterruptible Power Supply Device Xerox Device
UNIX System V Xerox DocuColor Printer
UNIX System V Release 4.2 Xerox Document Centre
UNIX SystemUNIX System V 4 Xerox DocuPrint Printer
Uptime Devices Monitoring System Xerox Phaser Printer
UptimeDevices Sensorprobe Xerox Plotter
VAX Xerox Printer
VAX VMS 6.1 Xerox WorkCentre
VAX VMS 6.1 behind Sidewinder G2 Xerox WorkCentre Printer
VAX VMS 6.2 XES Printer
VAX VMS 7.1 XJet Print Server
VAX VMS 7.1 behind Sidewinder G2 ZebraNet Print Server
Verilink WANsuite Router ZOT Print Server
Vertical Horizon Stack
VirtualAccess LinxpeedPro
VMware
VMWare ESX 3.5
VMWare ESX 4.0
VMWare ESX 4.1
VMware ESX Server
VMWare ESXi 4.0
VMWare ESXi 4.1
VMWare ESXi 5.0
VMWare ESXi 5.0
VxWorks Based Device
WatchGuard Firewall
Web Smart Switch
WebNet uServer
Windows
Windows 10
Windows 2000
Windows 2003
Windows 2008
Windows 2012
Windows 7
Windows 8
Windows 95
Windows 98
Windows 9x
Windows CE
Windows Longhorn
Windows ME
503
Chapter 11 - VM Report Templates
Map Template
504
Chapter 11 - VM Report Templates
Map Template
http mssql_monitor
http_over_ssl MYDESKTOP
IBM SolidDB mysql
IBM_DB2_Universal_Database named_udp
IBM_TIVOLI_STORAGE_MANAGER ncp
icecast nessus
ident netbios_ns
imap netbios_ssn
INDUSOFT netbus
Infopulse_Gatekeeper netop
ipmi netstat
ipp Netviewer_PC_Duo
irc nfs
ISA_Proxy nntp
isakmp ntp
ISAKMP_over_TCP ocsp
iSCSI ocssd
iSNS Omniquad_Server
jabber open_vpn
Kadmin-4 opennap
kazaa oracle
Kerberos-5 Oracle_Express_Server
l2tp Oracle_Express_Server_xsagent
LANDesk Oracle_Express_Server_xsdaemon
LANDESK_CBA_PDS oracle_intelligent_agent
LANDESK_MANAGEMENT_AGENT ORACLE_RMI
LANDESK_MANAGEMENT_AGENT pcanywhere
ldap pen
ldap_over_ssl Polycom_MGC_Management
limewire pop2
linuxconf pop3
lpd PostgreSQL
managesoft pptp
McAfee_ePolicy_Orchestrator PRORAT_TROJAN
melange_chat proxy_http
MERCUR_Control-Service proxy_telnet
Micromuse_Netcool_Object_Server psmond
microsoft-ds pvserver
Microsoft_Message_Queue_Server Quote_of_the_Day
minisql quote_of_the_day_udp
modbus radius
MODBUS_UDP radius_tcp
mqseries radmin
msdtc rccmd
MSMQ_Ping RealMedia_EncoderServer
msrpc Red_Carpet_Daemon
msrpc-over-http RELIABLE DATAGRAM SOCKETS OVER TCP
msrpc_udp Resonate_CD_Agent
mssql resource_monitor_api
505
Chapter 11 - VM Report Templates
Map Template
Resource_Monitoring_and_Control trojan_fireby
rip unknown
rlogin unknown_over_ssl
RMIRegistry UPNP
rpc ut_game_queryport
rpc_udp uucp
RSA_Auth_Mgr VMware_Authentication_Daemon
rsh/rexec vnc
rsyncd vnetd
rtsp voip_sip
SAP_MAXDB Volume_Manager_Storage_Administrato
SAP_Protocol r
SAPgui VXWORKS_WDBRPC_UDP
SGI_Performance_Copilot watchguard_admin
shell webshield
SHOUTcast win_remote_desktop
skinny winmx
skype WINS_Replication
slapper Wonderware_InTouch
SMS wsmserver
smtp WSUS_SERVER
smux x11
snmp X11_Font_Service
snmp2 xdmcp
socks4 xinetd
socks5 Xitami
SPLASHTOP_REMOTE_DESKTOP xpilot
spychat XYZFind
Spytech_SpyAnywhere Yahoo_Instant_Messenger
ssdp yeemp
ssh ZLink
ssh_over_ssl
swagentd
swat
sybase_adaptive_server
Symantec EMS client server
Symantec_AntiVirus
Symantec_AntiVirus_Rtvscan
Symantec_AntiVirus_Rtvscan_UDP
SysGalUR
systat
talk
telnet
telnet_over_ssl
tftp
time
time_udp
timestamp_over_http
trendmicro_officescan
506
Chapter 11 - VM Report Templates
Map Template
507
Chapter 12 - VM Remediation Tickets
Remediation Tickets overview
508
Chapter 12 - VM Remediation Tickets
Ticket Parameters
Ticket Parameters
Many ticket parameters are available for making API requests to view, update and delete
active tickets and defining tickets to take actions on. Overdue and Invalid tickets are
selected automatically, unless otherwise requested.
- All ticket parameters are optional and valid for these requests: ticket_list.php,
ticket_edit.php and ticket_delete.php.
- At least one parameter is required.
- Multiple parameters are combined with a logical “and”.
Parameter Description
ticket_numbers= Tickets with certain ticket numbers. Specify one or
{nnn,nnn-nnn,...} more ticket numbers and/or ranges. Use a dash (-) to
separate the ticket range start and end. Multiple
entries are comma separated.
since_ticket_number= Tickets since a certain ticket number. Specify the
{value} lowest ticket number to be selected. Selected tickets
will have numbers greater than or equal to the ticket
number specified.
until_ticket_number= Tickets until a certain ticket number. Specify the
{value} highest ticket number to be selected. Selected tickets
will have numbers less than or equal to the ticket
number specified.
show_vuln_details={0|1} (Parameter is valid with ticket_list.php request only)
By default, vulnerability details are not included in the
ticket list XML output. When set to 1, vulnerability
details are included. Vulnerability details provide
descriptions for the threat posed by the vulnerability,
the impact if exploited, the solution provided by Qualys
as well as the scan test results (when available).
Ticket Properties
ticket_assignee={value} Tickets with a certain assignee. Specify the user login
of an active user account.
overdue={0|1} Tickets that are overdue or not overdue. When not
specified, overdue and non-overdue tickets are
selected. Specify 1 to select only overdue tickets.
Specify 0 to select only tickets that are not overdue.
invalid={0|1} Tickets that are invalid or valid. When not specified,
both valid and invalid tickets are selected. Specify 1 to
select only invalid tickets. Specify 0 to select only valid
tickets. You can select invalid tickets owned by other
users, not yourself.
509
Chapter 12 - VM Remediation Tickets
Ticket Parameters
Parameter Description
states={state} Tickets with certain ticket state/status. Specify one or
more state/status codes. A valid value is OPEN (for
state/status Open or Open/Reopened), RESOLVED (for
state Resolved), CLOSED (for state/status Closed/Fixed),
or IGNORED (for state/status Closed/Ignored). Multiple
entries are comma separated.
510
Chapter 12 - VM Remediation Tickets
View Ticket List
Parameter Description
potential_vuln_severities= Tickets for potential vulnerabilities with certain
{1,2,3,4,5} severity levels. Specify one or more severity levels.
Multiple levels are comma separated.
qids={qid,qid,...} Tickets for vulnerabilities with certain QIDs (Qualys
IDs). Specify one or more QIDs. A maximum of 10 QIDs
may be specified. Multiple QIDs are comma separated.
vuln_title_contains={value} Tickets for vulnerabilities that have a title which
contains a certain text string. The vulnerability title is
defined in the KnowledgeBase. Specify a text string.
This string may include a maximum of 100 characters
(ascii).
vuln_details_contains= Tickets for vulnerabilities that have vulnerability
{value} details which contain a certain text string.
Vulnerability details provide descriptions for threat,
impact, solution and results (scan test results, when
available). Specify a text string. This string may include
a maximum of 100 characters (ascii).
vendor_ref_contains= Tickets for vulnerabilities that have a vendor reference
{value} which contains a certain text string. Specify a text
string. This string may include a maximum of 100
characters (ascii).
View remediation tickets and related ticket information in the user’s account.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Using an account with more than 1,000 tickets (or potentially more than 1,000 tickets), it is
recommended that you write a script that makes multiple ticket_list.php requests until all
tickets are retrieved.
A maximum of 1,000 tickets can be returned from a single ticket_list.php request. If this
maximum is reached, the function returns a “Truncated after 1,000 records” message at
the end of the XML output with the last ticket number included. Using an account with
more than 1,000 tickets (or potentially more than 1,000 tickets), it is recommended that
you write a script that makes multiple ticket_list.php requests until all tickets have been
retrieved.
Permissions - Managers can view all tickets in the subscription. Unit Managers can view
tickets for IP addresses in the user’s same business unit. Scanners and Readers can view
tickets for IP addresses in the user’s own account.
511
Chapter 12 - VM Remediation Tickets
View Ticket List
Input Parameters
Click here for ticket list input parameters
Samples
View Open tickets for owner:
https://qualysapi.qualys.com/msp/ticket_list.php?
ticket_assignee=comp_ja&states=OPEN
View tickets that have been marked as Closed/Fixed or Closed/Ignored since June 1, 2018:
https://qualysapi.qualys.com/msp/ticket_list.php?states=CLOSED,IGN
ORED&modified_since_datetime=2018-06-01
View Invalid tickets for hosts in the “Desktops” or “Servers” asset groups:
https://qualysapi.qualys.com/msp/ticket_list.php?asset_groups=
Desktops,Servers&invalid=1
View Overdue tickets assigned to James Adrian (comp_ja) that have not been modified
since May 30, 2018 at 16:30:00 (UTC/GMT) for vulnerabilities with a severity level of 3, 4 or
5 and to include vulnerability details in the results:
https://qualysapi.qualys.com/msp/ticket_list.php?
unmodified_since_datetime=2018-05-30T16:30:00Z
&vuln_severities=3,4,5&overdue=1&ticket_assignee=comp_ja
&show_vuln_details=1
512
Chapter 12 - VM Remediation Tickets
Edit Tickets
DTD
<platform API server>/ticket_list_output.dtd
Edit Tickets
/msp/ticket_edit.php
Edit remediation tickets in the user’s account. Multiple tickets can be edited at one time in
bulk. Many ticket parameters are supported for selecting what tickets you’d like to edit.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Editing tickets can be a time intensive task, especially when batch editing many tickets. To
ensure best performance, a maximum of 20,000 tickets can be edited in one
ticket_edit.php request. It’s recommended best practice that you choose to schedule batch
updates to occur when ticket processing will least impact user productivity. If the
ticket_edit.php request identifies more than 20,000 tickets to be edited, then an error is
returned.
Permissions - Managers can edit all tickets in the subscription. Unit Managers can edit
tickets for IP addresses in the user’s same business unit. Scanners and Readers do not
have permissions to edit tickets.
Input Parameters
Click here to view ticket parameters for selecting tickets to edit
The following parameters are used to define the ticket data to be edited. At least one of
the following edit parameters is required.
Parameter Description
change_assignee= (Optional) Used to change the ticket assignee, specified by
{value} user login, in all selected tickets. The assignee’s account
must have a user role other than Contact, and the hosts
associated with the selected tickets must be in the user
account.
change_state={value} (Optional) Used to change the ticket state/status to the
specified state/status in all selected tickets. A valid value is
OPEN (for state/status Open and Open/Reopened),
RESOLVED (for state Resolved), or IGNORED (for
state/status Closed/Ignored). See “Ticket State/Status
Transitions” below for information on valid changes.
513
Chapter 12 - VM Remediation Tickets
Edit Tickets
Parameter Description
add_comment={value} (Optional) Used to add a comment in all selected tickets.
The comment text may include a maximum of 2,000
characters (ascii).
reopen_ignored_days= (Optional) Used to reopen Closed/Ignored tickets in a set
{value} number of days. Specify the due date in N days, where N is
a number of days from today. A valid value is an integer
from 1 to 730.
Samples
Edit ticket and add comment:
https://qualysapi.qualys.com/msp/ticket_edit.php?ticket_numbers=00
123456&add_comment=Host+patched,+ready+for+re-scan
Edit multiple tickets to change the ticket owner to Alice Cook (acme_ac) for tickets since
ticket number #00215555 (tickets with numbers greater than or equal to #00215555) which
are marked invalid):
https://qualysapi.qualys.com/msp/ticket_edit.php?since_ticket_numb
er=00215555&invalid=1&change_assignee=acme_ac
Edit Open tickets on IP addresses in asset groups “New York” and “London” and change the
ticket state to Ignored:
https://qualysapi.qualys.com/msp/ticket_edit.php?states=OPEN&asset
_groups=New+York,London&change_state=IGNORED
514
Chapter 12 - VM Remediation Tickets
Delete Tickets
Edit Open tickets unmodified since August 1, 2017 that are assigned to Tim Burke
(acme_tb) and change the ticket assignee to Alice Cook (acme_ac):
https://qualysapi.qualys.com/msp/ticket_edit.php?states=OPEN&unmod
ified_since=2017-08-01&ticket_assignee=acme_tb&change_assignee=acm
e_ac
DTD
<platform API server>/ticket_edit_output.dtd
Delete Tickets
/msp/ticket_delete.php
Delete remediation tickets in the user’s account.Multiple tickets can be deleted at one
time in bulk. Many ticket parameters are supported for selecting what tickets you’d like to
edit.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Deleting tickets can be a time intensive task, especially when batch deleting many tickets.
To ensure best performance, a maximum of 20,000 tickets can be deleted in one
ticket_delete.php request. It’s recommended best practice that you choose to schedule
batch updates to occur when ticket processing will least impact user productivity. If the
ticket_delete.php request identifies more than 20,000 tickets to be deleted, then an error is
returned.
Permissions - Managers can delete all tickets in the subscription. Unit Managers can
delete tickets for IP addresses in their same business unit. Scanners and Readers have no
permissions to delete tickets.
Input Parameters
Click here to view ticket parameters for selecting tickets to delete
Samples
Delete certain ticket number:
https://qualysapi.qualys.com/msp/ticket_delete.php?
ticket_numbers=2487
515
Chapter 12 - VM Remediation Tickets
View Deleted Ticket List
https://qualysapi.qualys.com/msp/ticket_delete.php?
since_ticket_number=1000&until_ticket_number=2500
Delete Overdue tickets assigned to James Adrian (comp_ja) that have not been modified
since July 01, 2018 at 12:00:00 (UTC/GMT)
https://qualysapi.qualys.com/msp/ticket_delete.php?
unmodified_since_datetime=2018-07-01T12:00:00Z
&overdue=1&ticket_assignee=comp_ja
DTD
<platform API server>/ticket_delete_output.dtd
View deleted tickets in the user’s account. This function may be run by Managers. The
functionality provided allows for real-time integration with third-party applications.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
The XML results returned by the ticket_list_deleted.php function identifies deleted tickets
by ticket number and deletion date/time.
A maximum of 1,000 deleted tickets can be returned from a single ticket_list_deleted.php
request. If this maximum is reached, the function returns a “Truncated after 1,000
records” message at the end of the XML report with the last ticket number included.
Permissions - Manager user role is required.
Input Parameters
All parameters are optional. At least one parameter is required. Multiple parameters are
combined with a logical “and”.
516
Chapter 12 - VM Remediation Tickets
View Deleted Ticket List
Parameter Description
ticket_numbers= (Optional) Specifies certain ticket numbers. Specify one or
{nnn,nnn-nnn,...} more ticket numbers and/or ranges. Ticket range start and
end is separated by a dash (-). Multiple entries are comma
separated.
since_ticket_number= (Optional) Specifies tickets since a certain ticket number.
{value} Specify the lowest ticket number to be selected. Selected
tickets will have numbers greater than or equal to the
ticket number specified.
until_ticket_number= (Optional) Specifies tickets until a certain ticket number.
{value} Specify the highest ticket number to be selected. Selected
tickets will have numbers less than or equal to the ticket
number specified.
deleted_since_datetime= (Optional) Specifies tickets deleted since a certain
{value} date/time. Specify a date (required) and time (optional) to
identify this timeframe. Tickets deleted on or after the
date/time are selected.
date/time is specified in YYYY-MM-DD[THH:MM:SSZ]
format (UTC/GMT) like “2006-01-01” or “2006-05-
25T23:12:00Z”.
deleted_before_datetime= (Optional) Specifies tickets deleted before a certain
{value} date/time. Specify a date (required) and time (optional) to
identify this timeframe. Tickets deleted on or before the
date/time are selected.
date/time is specified in YYYY-MM-DD[THH:MM:SSZ]
format (UTC/GMT) like “2006-01-01” or “2006-05-
25T23:12:00Z”.
Samples
View tickets deleted in ticket number range:
https://qualysapi.qualys.com/msp/ticket_list_deleted.php?
ticket_numbers=120-200
DTD
<platform API server>/ticket_list_deleted_output.dtd
517
Chapter 12 - VM Remediation Tickets
Get Ticket Information
View remediation ticket information from the user’s account that can be integrated with
third-party applications. Only remediation tickets that the user has permission to view are
returned in the resulting ticket information report.
Basic HTTP authentication is required. Session based authentication is not supported
using this API.
Qualys recommends that you run the get_tickets.php function two times a day, so that
ticket updates due to the latest scan results and user productivity are made available in
the ticket information reports.
Permissions - Managers can view all tickets in subscription. Unit Managers can view
tickets for IP addresses in their same business unit. Scanners and Readers can view tickets
for IP addresses in their own account.
Input Parameters
Parameter Description
ticket_numbers= (Optional) Specifies ticket numbers for which ticket
{nnn,nnn,..} information will be retrieved. Ticket numbers are integers,
assigned by the service automatically. A maximum of
1,000 ticket numbers may be specified. Multiple ticket
numbers are comma separated.
518
Chapter 12 - VM Remediation Tickets
Get Ticket Information
Parameter Description
state={value} (Optional) Specifies the current state of tickets to be
retrieved. A valid value is OPEN, RESOLVED, or CLOSED. If
unspecified, tickets with all states are retrieved.
vuln_details={0|1} (Optional) Specifies whether vulnerability details will be
retrieved. Vulnerability details include a description of the
threat posed by the vulnerability, the impact if it is
exploited, a verified solution, and in some cases test
results returned by the scanning engine.
Samples
Retrieve remediation tickets that have been updated since July 1, 2018 at
1:00:00 AM (UTC/GMT) and that have any state (Open, Resolved, or Closed):
https://qualysapi.qualys.com/msp/get_tickets.php?
since=2018-07-01T01:00:00Z
Retrieve remediation tickets 002737, 002738, and 002740 with vulnerability details:
https://qualysapi.qualys.com/msp/get_tickets.php?
ticket_numbers=002737,002738,002740&vuln_details=1
DTD
<platform API server>/remediation_tickets.dtd
519
Chapter 13 - Compliance
Chapter 13 - Compliance
Manage compliance policies, exceptions and reports. Policy Compliance (PC) is required.
Compliance Control List
Compliance Policy List
Compliance Policy - Export
Compliance Policy - Import
Compliance Policy - Merge
Compliance Policy - Manage Asset Groups
Compliance Posture Information
Control Criticality
Exceptions
SCAP Cyberscope Report
SCAP ARF Report
SCAP Policy List
520
Chapter 13 - Compliance
Compliance Control List
View a list of compliance controls which are visible to the user. Controls in the XML output
are sorted by control ID in ascending order. Optional input parameters support filtering
the list.
Using the Qualys user interface, it’s possible to customize the list of frameworks at the
subscription level. Under PC, go to Policies > Setup > Frameworks to customize the
frameworks list. If the frameworks list is customized for your subscription, then the
customized list of frameworks will appear in the controls list output returned by a control
list API request.
Permissions - Users with PC enabled have the ability to view compliance controls.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters (names
and values) in the XML output. When not specified, parameters
are not included in the XML output. Specify 1 to view parameters
in the XML output.
details={Basic|All|None} (Optional) Show the requested amount of information for each
control. A valid value is:
521
Chapter 13 - Compliance
Compliance Control List
Parameter Description
id_min={value} (Optional) Show only controls which have a minimum control ID
value. A valid control ID is required.
id_max={value} (Optional) Show only controls which have a maximum control ID
value. A valid control ID is required.
updated_after_datetime= (Optional) Show only controls updated after a certain date/time.
{value} See “Date Filters” below.
created_after_datetime= (Optional) Show only controls created after a certain date/time.
{value} See “Date Filters” below.
truncation_limit={value} (Optional) The maximum number of control records processed
per request. When not specified, the truncation limit is set to
1,000 host records. You may specify a value less than the default
(1-999) or greater than the default (1001-1000000).
Date Filters
The date/time is specified in YYYY-MM-DD{THH:MM:SSZ] format (UTC/GMT), like “2010-
03-01” or “2010-03-01T23:12:00Z”
If you specify a date but no time as for example 2010-03-01, then the service
automatically sets the time to 2010-03-01T00:00:00Z (the start of the day).
When date filters are specified using both input parameters for a single API request, both
date filters are satisfied (ANDed).
DTD
<platform API server>/api/2.0/fo/compliance/control/control_list_output.dtd
<CONTROL_LIST_OUTPUT>
522
Chapter 13 - Compliance
Compliance Control List
<RESPONSE>
<DATETIME>2010-03-16T22:53:05Z</DATETIME>
<CONTROL_LIST>
<CONTROL>
<ID>1044</ID>
<UPDATE_DATE>2010-02-12T00:00:00Z</UPDATE_DATE>
<CREATED_DATE>2007-10-12T00:00:00Z</CREATED_DATE>
<CATEGORY>Access Control Requirements</CATEGORY>
<SUB_CATEGORY><![CDATA[Authorizations (Multi-user
ACL/role)]]></SUB_CATEGORY>
<STATEMENT><![CDATA[Status of the
'O7_DICTIONARY_ACCESSIBILITY' setting in init.ora (ORACLE Data
Dictionary)]]></STATEMENT>
<TECHNOLOGY_LIST>
<TECHNOLOGY>
<ID>7</ID>
<NAME>Oracle 9i</NAME>
<RATIONALE><![CDATA[The "O7_DICTIONARY_ACCESSIBILITY"
setting allows control/restrictions to be placed on the user's
SYSTEM privileges. If this parameter is set to TRUE, SYS schema
access will be allowed, which is the default for Oracle operations.
Restricting this system privilege with a setting of FALSE will
allow users or roles granted SELECT ANY TABLE access to objects in
the normal schema, but disallow access to objects in the SYS
schema, unless access is specifically granted.]]></RATIONALE>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>8</ID>
<NAME>Oracle 10g</NAME>
<RATIONALE><![CDATA[The "O7_DICTIONARY_ACCESSIBILITY"
setting allows control/restrictions to be placed on the user's
SYSTEM privileges. If this parameter is set to TRUE, SYS schema
access will be allowed, which is the default for Oracle operations.
Restricting this system privilege with a setting of FALSE will
allow users or roles granted SELECT ANY TABLE access to objects in
the normal schema, but disallow access to objects in the SYS
schema, unless access is specifically granted.]]></RATIONALE>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>9</ID>
<NAME>Oracle 11g</NAME>
<RATIONALE><![CDATA[The "O7_DICTIONARY_ACCESSIBILITY"
setting allows control/restrictions to be placed on the user's
SYSTEM privileges. If this parameter is set to TRUE, SYS schema
access will be allowed, which is the default for Oracle operations.
Restricting this system privilege with a setting of FALSE will
allow users or roles granted SELECT ANY TABLE access to objects in
523
Chapter 13 - Compliance
Compliance Control List
524
Chapter 13 - Compliance
Compliance Control List
525
Chapter 13 - Compliance
Compliance Control List
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE CONTROL_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/control/contro
l_list_output.dtd">
<CONTROL_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-05-08T18:31:17Z</DATETIME>
<CONTROL_LIST>
<CONTROL>
<ID>100022</ID>
<UPDATE_DATE>2019-05-08T18:31:08Z</UPDATE_DATE>
<CREATED_DATE>2019-04-29T20:21:11Z</CREATED_DATE>
<CATEGORY>Access Control Requirements</CATEGORY>
<SUB_CATEGORY><![CDATA[Account Creation/User
Management]]></SUB_CATEGORY>
<STATEMENT><![CDATA[CustomerData]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[URGENT]]></LABEL>
<VALUE>5</VALUE>
</CRITICALITY>
<CHECK_TYPE><![CDATA[MSSQL Database Check]]></CHECK_TYPE>
<COMMENT><![CDATA[testComment]]></COMMENT>
<IGNORE_ERROR>1</IGNORE_ERROR>
<ERROR_SET_STATUS>PASS</ERROR_SET_STATUS>
526
Chapter 13 - Compliance
Compliance Control List
<TECHNOLOGY_LIST>
<TECHNOLOGY>
<ID>22</ID>
<NAME>Microsoft SQL Server 2008</NAME>
<RATIONALE><![CDATA[select all from
customer]]></RATIONALE>
<DB_QUERY><![CDATA[select * from
customers;]]></DB_QUERY>
<DESCRIPTION><![CDATA[select all the rows from
customers]]></DESCRIPTION>
</TECHNOLOGY>
</TECHNOLOGY_LIST>
</CONTROL>
</CONTROL_LIST>
</RESPONSE>
</CONTROL_LIST_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE CONTROL_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/control/contro
l_list_output.dtd">
<CONTROL_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-05-08T18:32:46Z</DATETIME>
<CONTROL_LIST>
<CONTROL>
<ID>100060</ID>
<UPDATE_DATE>2019-05-08T18:32:04Z</UPDATE_DATE>
<CREATED_DATE>2019-05-03T19:32:18Z</CREATED_DATE>
<CATEGORY>Database Settings</CATEGORY>
<SUB_CATEGORY><![CDATA[DB Access Controls]]></SUB_CATEGORY>
<STATEMENT><![CDATA[OracleselectAllCustomerData]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[MINIMAL]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
527
Chapter 13 - Compliance
Compliance Control List
</TECHNOLOGY>
<TECHNOLOGY>
<ID>8</ID>
<NAME>Oracle 10g</NAME>
<RATIONALE><![CDATA[GatherAllData]]></RATIONALE>
<DB_QUERY><![CDATA[select * from
Customers;]]></DB_QUERY>
<DESCRIPTION><![CDATA[select all the
data]]></DESCRIPTION>
</TECHNOLOGY>
...
</RESPONSE>
</CONTROL_LIST_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE CONTROL_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/control/contro
l_list_output.dtd">
<CONTROL_LIST_OUTPUT>
<REQUEST>
<DATETIME>2019-10-14T21:17:21Z</DATETIME>
<USER_LOGIN>username</USER_LOGIN>
528
Chapter 13 - Compliance
Compliance Control List
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/compliance/contr
ol/</RESOURCE>
<PARAM_LIST>
<PARAM>
<KEY>action</KEY>
<VALUE>list</VALUE>
</PARAM>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>ids</KEY>
<VALUE>100006,100000,100026</VALUE>
</PARAM>
<PARAM>
<KEY>details</KEY>
<VALUE>All</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<RESPONSE>
<DATETIME>2019-10-14T21:17:21Z</DATETIME>
<CONTROL_LIST>
<CONTROL>
<ID>100000</ID>
<UPDATE_DATE>2019-10-10T21:54:35Z</UPDATE_DATE>
<CREATED_DATE>2019-10-08T19:16:02Z</CREATED_DATE>
<CATEGORY>Access Control Requirements</CATEGORY>
<SUB_CATEGORY><![CDATA[Account Creation/User
Management]]></SUB_CATEGORY>
<STATEMENT><![CDATA[preFCCUDC]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
<CHECK_TYPE><![CDATA[Windows File Content
Check]]></CHECK_TYPE>
<COMMENT><![CDATA[]]></COMMENT>
<IGNORE_ERROR>0</IGNORE_ERROR>
<IGNORE_ITEM_NOT_FOUND>0</IGNORE_ITEM_NOT_FOUND>
<SCAN_PARAMETERS>
<PATH_TYPE><![CDATA[Use file search]]></PATH_TYPE>
<FILE_QUERY><![CDATA[QWEB*]]></FILE_QUERY>
<BASE_DIR><![CDATA[c:\]]></BASE_DIR>
<DEPTH_LIMIT><![CDATA[3]]></DEPTH_LIMIT>
529
Chapter 13 - Compliance
Compliance Control List
<FILE_NAME_MATCH><![CDATA[preTest2.txt]]></FILE_NAME_MATCH>
<FILE_NAME_SKIP><![CDATA[]]></FILE_NAME_SKIP>
<DIR_NAME_MATCH><![CDATA[*]]></DIR_NAME_MATCH>
<DIR_NAME_SKIP><![CDATA[]]></DIR_NAME_SKIP>
<TIME_LIMIT><![CDATA[300]]></TIME_LIMIT>
<MATCH_LIMIT><![CDATA[50]]></MATCH_LIMIT>
<DATA_TYPE>String List</DATA_TYPE>
<DESCRIPTION><![CDATA[FileContentChech]]></DESCRIPTION>
</SCAN_PARAMETERS>
<TECHNOLOGY_LIST>
<TECHNOLOGY>
<ID>53</ID>
<NAME>Windows 2012 Server</NAME>
<RATIONALE><![CDATA[rationale]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[true]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>75</ID>
<NAME>Windows Server 2012 R2</NAME>
<RATIONALE><![CDATA[rationale]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[true]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
</TECHNOLOGY_LIST>
</CONTROL>
<CONTROL>
<ID>100006</ID>
<UPDATE_DATE>2019-10-14T19:06:55Z</UPDATE_DATE>
<CREATED_DATE>2019-10-09T22:00:50Z</CREATED_DATE>
<CATEGORY>Database Settings</CATEGORY>
<SUB_CATEGORY><![CDATA[DB Access Controls]]></SUB_CATEGORY>
<STATEMENT><![CDATA[Windows_FCC_Use_Reg]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
530
Chapter 13 - Compliance
Compliance Control List
<VALUE>1</VALUE>
</CRITICALITY>
<CHECK_TYPE><![CDATA[Windows File Content
Check]]></CHECK_TYPE>
<COMMENT><![CDATA[]]></COMMENT>
<IGNORE_ERROR>0</IGNORE_ERROR>
<IGNORE_ITEM_NOT_FOUND>0</IGNORE_ITEM_NOT_FOUND>
<SCAN_PARAMETERS>
<PATH_TYPE><![CDATA[Use Registry key]]></PATH_TYPE>
<REG_HIVE><![CDATA[HKEY_CLASSES_ROOT
(HKCR)]]></REG_HIVE>
<REG_KEY><![CDATA[TestKey\user]]></REG_KEY>
<REG_VALUE_NAME><![CDATA[preName]]></REG_VALUE_NAME>
<FILE_PATH><![CDATA[]]></FILE_PATH>
<FILE_QUERY><![CDATA[.*]]></FILE_QUERY>
<DATA_TYPE>String List</DATA_TYPE>
<DESCRIPTION><![CDATA[reg key]]></DESCRIPTION>
</SCAN_PARAMETERS>
<TECHNOLOGY_LIST>
<TECHNOLOGY>
<ID>53</ID>
<NAME>Windows 2012 Server</NAME>
<RATIONALE><![CDATA[rationale]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>75</ID>
<NAME>Windows Server 2012 R2</NAME>
<RATIONALE><![CDATA[rationale]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
</TECHNOLOGY_LIST>
</CONTROL>
<CONTROL>
531
Chapter 13 - Compliance
Compliance Control List
<ID>100026</ID>
<UPDATE_DATE>2019-10-11T20:12:48Z</UPDATE_DATE>
<CREATED_DATE>2019-10-11T20:12:48Z</CREATED_DATE>
<CATEGORY>Access Control Requirements</CATEGORY>
<SUB_CATEGORY><![CDATA[Account Creation/User
Management]]></SUB_CATEGORY>
<STATEMENT><![CDATA[pre_fcc_file_path_regexwith$]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
<CHECK_TYPE><![CDATA[Windows File Content
Check]]></CHECK_TYPE>
<COMMENT><![CDATA[]]></COMMENT>
<IGNORE_ERROR>0</IGNORE_ERROR>
<IGNORE_ITEM_NOT_FOUND>0</IGNORE_ITEM_NOT_FOUND>
<SCAN_PARAMETERS>
<PATH_TYPE><![CDATA[Use file path]]></PATH_TYPE>
<FILE_PATH><![CDATA[C:\user\PreTest\pretestfile1.txt]]></FILE_PATH
>
<FILE_QUERY><![CDATA[pre\$]]></FILE_QUERY>
<DATA_TYPE>String List</DATA_TYPE>
<DESCRIPTION><![CDATA[pre\$]]></DESCRIPTION>
</SCAN_PARAMETERS>
<TECHNOLOGY_LIST>
<TECHNOLOGY>
<ID>1</ID>
<NAME>Windows XP desktop</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>2</ID>
<NAME>Windows 2003 Server</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
532
Chapter 13 - Compliance
Compliance Control List
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>12</ID>
<NAME>Windows 2000</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>18</ID>
<NAME>Windows Vista</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>21</ID>
<NAME>Windows 2008 Server</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>37</ID>
<NAME>Windows 7</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
533
Chapter 13 - Compliance
Compliance Control List
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>53</ID>
<NAME>Windows 2012 Server</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>54</ID>
<NAME>Windows 8</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>72</ID>
<NAME>Windows 8.1</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>75</ID>
534
Chapter 13 - Compliance
Compliance Control List
535
Chapter 13 - Compliance
Compliance Control List
</TECHNOLOGY>
<TECHNOLOGY>
<ID>145</ID>
<NAME>Windows Embedded 8</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>146</ID>
<NAME>Windows Embedded 8.1</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>180</ID>
<NAME>Windows 2019 Server</NAME>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
</TECHNOLOGY_LIST>
</CONTROL>
</CONTROL_LIST>
</RESPONSE>
</CONTROL_LIST_OUTPUT>
536
Chapter 13 - Compliance
Compliance Policy List
View a list of compliance policies visible to the user. Policies in the XML output are sorted
by compliance policy ID in ascending order. Optional input parameters support filtering
the policy list output.
Permissions
537
Chapter 13 - Compliance
Compliance Policy List
For example, when a user makes a request for a compliance policy list and the user does
not have permission to view asset groups that are assigned to the target policies, then the
asset group information does not appear in the policy list output. The asset group IDs are
not listed under the <POLICY> section, and the asset group title and assigned IP addresses
are not listed under the <GLOSSARY> section.
In a case where a user makes a request for a compliance policy list and the user does not
have permission to see one or more asset groups assigned to a target policy, the following
information is provided in the compliance policy list output:
<POLICY> section. The attribute “has_hidden_data=1” is returned in the <POLICY> section
in the <ASSET_GROUP_IDS> element. This indicates that the user does not have
permission to see one or more asset groups in the policy. When this attribute is present,
only the asset group IDs that the user has permission to see, if any, are listed in the
<ASSET_GROUP_IDS> element.
<GLOSSARY> section. Asset group information is not displayed for asset groups assigned
to compliance policies that the user does not have permission to see.
<WARNING_LIST> section. A warning message is returned for informational purposes.
This indicates that at least one of the compliance policies in the output has one or more
asset groups that the user does not have permission to see.
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters (names
and values) in the XML output. When not specified, parameters
are not included in the XML output. Specify 1 to view parameters
in the XML output.
details={Basic|All|None} (Optional) Show requested amount of information for each
policy. A valid value is:
538
Chapter 13 - Compliance
Compliance Policy List
Parameter Description
id_max={value} (Optional) Show only policies which have a maximum policy ID
value. A valid policy ID is required.
updated_after_datetime= (Optional) Show only controls updated after a certain date/time.
{value} See Date Filters.
created_after_datetime= (Optional) Show only controls created after a certain date/time.
{value} See Date Filters.
DTD
<platform API server>/api/2.0/fo/compliance/policy/policy_list_output.dtd
XML output:
<POLICY_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-11-03T21:15:29Z</DATETIME>
<POLICY_LIST>
<POLICY>
<ID>18948</ID>
<TITLE><![CDATA[XP policy]]></TITLE>
<CREATED>
<DATETIME>2017-10-19T18:37:15Z</DATETIME>
<BY>quays_as</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2017-10-26T23:31:57Z</DATETIME>
<BY>quays_as</BY>
</LAST_MODIFIED>
<LAST_EVALUATED>
<DATETIME>2017-11-03T08:40:44Z</DATETIME>
</LAST_EVALUATED>
<STATUS><![CDATA[active]]></STATUS>
<IS_LOCKED>0</IS_LOCKED>
<EVALUATE_NOW><![CDATA[yes]]></EVALUATE_NOW>
<ASSET_GROUP_IDS>6065</ASSET_GROUP_IDS>
<TAG_SET_INCLUDE>
<TAG_ID>7588415</TAG_ID>
</TAG_SET_INCLUDE>
539
Chapter 13 - Compliance
Compliance Policy List
<TAG_INCLUDE_SELECTOR>ANY</TAG_INCLUDE_SELECTOR>
<INCLUDE_AGENT_IPS>1</INCLUDE_AGENT_IPS>
<CONTROL_LIST>
<CONTROL>
<ID>1045</ID>
<STATEMENT><![CDATA[Status of the 'Clipbook' service
(startup type)]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[SERIOUS]]></LABEL>
<VALUE>3</VALUE>
</CRITICALITY>
</CONTROL>
<CONTROL>
<ID>1048</ID>
<STATEMENT><![CDATA[Status of the 'Shutdown: Clear
virtual memory pagefile' setting]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[CRITICAL]]></LABEL>
<VALUE>4</VALUE>
</CRITICALITY>
</CONTROL>
</CONTROL_LIST>
</POLICY>
</POLICY_LIST>
<GLOSSARY>
<ASSET_GROUP_LIST>
<ASSET_GROUP>
<ID>6065</ID>
<TITLE><![CDATA[Windows XP]]></TITLE>
</ASSET_GROUP>
</ASSET_GROUP_LIST>
<ASSET_TAG_LIST>
<TAG>
<TAG_ID>7588415</TAG_ID>
<TAG_NAME>windows XP</TAG_NAME>
</TAG>
</ASSET_TAG_LIST>
</GLOSSARY>
</RESPONSE>
</POLICY_LIST_OUTPUT>
540
Chapter 13 - Compliance
Compliance Policy - Export
Export compliance policies from your account to an XML file. Service provided controls are
exported and you can choose to also export user defined controls. The output also
includes an appendix with human readable look-ups for control descriptions, giving you
explanation on the various aspects of control description and evaluation.
Permissions - If you’re not a Manager permission Manage PC module must be turned on in
your account.
Input Parameters
Parameter Description
action=export (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters (names
and values) in the XML output. When not specified, parameters
are not included in the XML output. Specify 1 to view parameters
in the XML output.
id={value} (Required) The ID or the title of the policy you want to export.
or
title={value}
show_user_controls={0|1} (Optional) Set to 1 to include user-defined controls (UDCs) in the
XML output. When not specified, UDCs are not included.
show_appendix={0|1} (Optional) Set to 1 to show the appendix section in the XML
output. When unspecified, the appendix section is not
included in the output.
show_user_controls={0|1} (Optional) Set to 1 to show user-defined controls (UDCs) in the
XML output. For Qualys Custom Controls you’ll see the UDC ID
for each control in the output. When not specified, the appendix
section is not included in the output.
Interested in Qualys Custom Controls? Log in to Qualys, go to
Help > Online Help and search for “custom controls”.
XML output:
<?xml version="1.0 encoding=UTF-8" ?>
541
Chapter 13 - Compliance
Compliance Policy - Export
Sample - Export Policy with Appendix with lookups for control descriptions
API request:
curl -u "USERNAME:PASSWORD" GET -H "X-Requested-With: curl" -X
"POST" -d "action=export&id=5438&show_appendix=1"
"https://qualysapi.qualys.com/api/2.0/fo/compliance/policy/">showA
pp.xml
542
Chapter 13 - Compliance
Compliance Policy - Export
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POLICY_EXPORT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/policy/policy_
export_output.dtd">
<POLICY_EXPORT_OUTPUT>
<RESPONSE>
<DATETIME>2017-09-09T09:07:13Z</DATETIME>
<POLICY>
<TITLE><![CDATA[Solaris]]></TITLE>
<EXPORTED><![CDATA[2017-09-09T09:07:12Z]]></EXPORTED>
<COVER_PAGE><![CDATA[]]></COVER_PAGE>
<STATUS><![CDATA[active]]></STATUS>
<TECHNOLOGIES total="4">
<TECHNOLOGY>
<ID>4</ID>
<NAME>Solaris 9.x</NAME>
</TECHNOLOGY>
...
<SECTION>
<NUMBER>3</NUMBER>
<HEADING><![CDATA[Untitled]]></HEADING>
<CONTROLS total="4"/>
</SECTION>
</SECTIONS>
<!--Note : Remove APPENDIX section if you wish to import this
XML as policy.-->
<APPENDIX>
<OP_ACRONYMS><OP id="lt">less than</OP>
<OP id="gt">greater than</OP>
<OP id="le">less than or equal to</OP>
<OP id="ge">greater than or equal to</OP>
<OP id="ne">not equal to</OP>
<OP id="xeq">list OR string list</OP>
<OP id="eq">equal to</OP>
<OP id="in">in</OP>
<OP id="xre">regular expression list</OP>
<OP id="re">regular expression</OP>
<OP id="range">in range</OP></OP_ACRONYMS>
<DATA_POINT_ACRONYMS>
<DP>
<K id="auth.useraccount.legacy-plus-
accounts"><![CDATA[The following List String value(s) <B>X</B>
indicate the current list of accounts defined within the
<B>/etc/group
</B>, <B>/etc/shadow</B>, and/or <B>/etc/passwd</B> files having a
543
Chapter 13 - Compliance
Compliance Policy - Export
XML output:
<POLICY>
<TITLE><![CDATA[Library Policy with 2 UDC v.2.0]]></TITLE>
<EXPORTED><![CDATA[2017-04-17T15:02:56Z]]></EXPORTED>
<COVER_PAGE><![CDATA[]]></COVER_PAGE>
<STATUS><![CDATA[active]]></STATUS>
<TECHNOLOGIES total="2">
<TECHNOLOGY>
544
Chapter 13 - Compliance
Compliance Policy - Export
<ID>2</ID>
<NAME>Windows 2003 Server</NAME>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>12</ID>
<NAME>Windows 2000</NAME>
</TECHNOLOGY>
</TECHNOLOGIES>
<SECTIONS total="1">
<SECTION>
<NUMBER>1</NUMBER>
<HEADING><![CDATA[Untitled]]></HEADING>
<CONTROLS total="1">
<USER_DEFINED_CONTROL>
<ID>100005</ID>
<UDC_ID>55449d95-1877-7ee5-829a-
4eededacb04f</UDC_ID>
<CHECK_TYPE>Registry Value
Existence</CHECK_TYPE>
<CATEGORY>
<ID>3</ID>
<NAME><![CDATA[Access Control
Requirements]]></NAME>
</CATEGORY>
<SUB_CATEGORY>
<ID>1007</ID>
<NAME><![CDATA[Authentication/Passwords]]></NAME>
</SUB_CATEGORY>
...
545
Chapter 13 - Compliance
Compliance Policy - Export
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POLICY_EXPORT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/policy/policy_
export_output.dtd">
<POLICY_EXPORT_OUTPUT>
<RESPONSE>
<DATETIME>2018-10-05T10:41:43Z</DATETIME>
<POLICY>
<TITLE><![CDATA[Windows_Linux_UDC_Policy]]></TITLE>
<EXPORTED><![CDATA[2018-10-05T10:41:43Z]]></EXPORTED>
<COVER_PAGE><![CDATA[]]></COVER_PAGE>
<STATUS><![CDATA[active]]></STATUS>
<TECHNOLOGIES total="3">
<TECHNOLOGY>
<ID>45</ID>
<NAME>Red Hat Enterprise Linux 6.x</NAME>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>52</ID>
<NAME>AIX 7.x</NAME>
</TECHNOLOGY>
<TECHNOLOGY>
<ID>81</ID>
<NAME>Red Hat Enterprise Linux 7.x</NAME>
</TECHNOLOGY>
</TECHNOLOGIES>
<SECTIONS total="1">
<SECTION>
<NUMBER>1</NUMBER>
<HEADING><![CDATA[ddd]]></HEADING>
<CONTROLS total="4">
<USER_DEFINED_CONTROL>
<ID>100041</ID>
<UDC_ID>929a8c4e-5057-e3f3-8225-
e92d4076f499</UDC_ID>
<CHECK_TYPE>Unix Directory Search
Check</CHECK_TYPE>
546
Chapter 13 - Compliance
Compliance Policy - Export
<CATEGORY>
<ID>3</ID>
<NAME><![CDATA[Access Control
Requirements]]></NAME>
</CATEGORY>
<SUB_CATEGORY>
<ID>1010</ID>
<NAME><![CDATA[Account Creation/User
Management]]></NAME>
</SUB_CATEGORY>
<STATEMENT><![CDATA[Directory
Search]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[SERIOUS]]></LABEL>
<VALUE>3</VALUE>
</CRITICALITY>
<COMMENT><![CDATA[]]></COMMENT>
<USE_AGENT_ONLY>1</USE_AGENT_ONLY>
<AUTO_UPDATE>0</AUTO_UPDATE>
<IGNORE_ERROR>0</IGNORE_ERROR>
...
XML output:
547
Chapter 13 - Compliance
Compliance Policy - Export
<EVALUATE><CTRL><AND><OR><DP><K>custom.oracle_query.1661091</K><OP
>xre</OP><CD>matches</CD><FV set="1">No data
found</FV><DT>5</DT><V><![CDATA[.*]]></V><DBCOL><![CDATA[STATUS]]>
</DBCOL></DP></OR><DP><K>custom.oracle_query.1661091</K><L>0</L><O
P>eq</OP><DT>4</DT><CD>match
548
Chapter 13 - Compliance
Compliance Policy - Export
all</CD><V>2</V><DBCOL>NUM_ROWS</DBCOL></DP></AND></CTRL></EVALUAT
E>
<RATIONALE><![CDATA[rat:SELECT * FROM
user_tables]]></RATIONALE>
<DB_QUERY><![CDATA[SELECT * FROM
user_tables;]]></DB_QUERY>
<DESCRIPTION><![CDATA[des:SELECT * FROM
user_tables]]></DESCRIPTION>
</TECHNOLOGY>
</TECHNOLOGIES>
<REFERENCE_LIST/>
</USER_DEFINED_CONTROL>
...
</RESPONSE>
</POLICY_EXPORT_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POLICY_EXPORT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/policy/policy_
export_output.dtd">
<POLICY_EXPORT_OUTPUT>
<RESPONSE>
<DATETIME>2019-10-14T21:21:45Z</DATETIME>
<POLICY>
<TITLE><![CDATA[SamplePolicyWithFileContentSearchUDCs]]></TITLE>
<EXPORTED><![CDATA[2019-10-14T21:21:45Z]]></EXPORTED>
<COVER_PAGE><![CDATA[]]></COVER_PAGE>
<STATUS><![CDATA[active]]></STATUS>
<TECHNOLOGIES total="1">
<TECHNOLOGY>
<ID>75</ID>
<NAME>Windows Server 2012 R2</NAME>
</TECHNOLOGY>
</TECHNOLOGIES>
<SECTIONS total="1">
549
Chapter 13 - Compliance
Compliance Policy - Export
<SECTION>
<NUMBER>1</NUMBER>
<HEADING><![CDATA[Untitled]]></HEADING>
<CONTROLS total="3">
<USER_DEFINED_CONTROL>
<ID>100006</ID>
<UDC_ID>98e7dde1-412d-4a95-8262-
b7bd168ebad8</UDC_ID>
<CHECK_TYPE>Windows File Content
Check</CHECK_TYPE>
<CATEGORY>
<ID>8</ID>
<NAME><![CDATA[Database Settings]]></NAME>
</CATEGORY>
<SUB_CATEGORY>
<ID>1044</ID>
<NAME><![CDATA[DB Access Controls]]></NAME>
</SUB_CATEGORY>
<STATEMENT><![CDATA[Windows_FCC_Use_Reg]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
<COMMENT><![CDATA[]]></COMMENT>
<USE_AGENT_ONLY>0</USE_AGENT_ONLY>
<AUTO_UPDATE>0</AUTO_UPDATE>
<IGNORE_ERROR>0</IGNORE_ERROR>
<IGNORE_ITEM_NOT_FOUND>0</IGNORE_ITEM_NOT_FOUND>
<SCAN_PARAMETERS>
<PATH_TYPE><![CDATA[Use Registry
key]]></PATH_TYPE>
<REG_HIVE><![CDATA[HKEY_CLASSES_ROOT
(HKCR)]]></REG_HIVE>
<REG_KEY><![CDATA[TestKey\user]]></REG_KEY>
<REG_VALUE_NAME><![CDATA[preName]]></REG_VALUE_NAME>
<FILE_PATH><![CDATA[]]></FILE_PATH>
<FILE_QUERY><![CDATA[.*]]></FILE_QUERY>
<DATA_TYPE>String List</DATA_TYPE>
<DESCRIPTION><![CDATA[reg
key]]></DESCRIPTION>
</SCAN_PARAMETERS>
<TECHNOLOGIES total="1">
<TECHNOLOGY>
<ID>75</ID>
550
Chapter 13 - Compliance
Compliance Policy - Export
<EVALUATE><CTRL><DP><K>custom.win_file_content_check.1007110</K><L
>0</L><CD>contains</CD><OP>xre</OP><V><![CDATA[.*]]></V></DP></CTR
L></EVALUATE>
<RATIONALE><![CDATA[rationale]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
</TECHNOLOGIES>
<REFERENCE_LIST/>
</USER_DEFINED_CONTROL>
<USER_DEFINED_CONTROL>
<ID>100000</ID>
<UDC_ID>b24df689-0714-7045-833a-
987f04cdab15</UDC_ID>
<CHECK_TYPE>Windows File Content
Check</CHECK_TYPE>
<CATEGORY>
<ID>3</ID>
<NAME><![CDATA[Access Control
Requirements]]></NAME>
</CATEGORY>
<SUB_CATEGORY>
<ID>1010</ID>
<NAME><![CDATA[Account Creation/User
Management]]></NAME>
</SUB_CATEGORY>
<STATEMENT><![CDATA[preFCCUDC]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
<COMMENT><![CDATA[]]></COMMENT>
<USE_AGENT_ONLY>0</USE_AGENT_ONLY>
<AUTO_UPDATE>0</AUTO_UPDATE>
<IGNORE_ERROR>0</IGNORE_ERROR>
<IGNORE_ITEM_NOT_FOUND>0</IGNORE_ITEM_NOT_FOUND>
<SCAN_PARAMETERS>
551
Chapter 13 - Compliance
Compliance Policy - Export
<PATH_TYPE><![CDATA[Use file
search]]></PATH_TYPE>
<FILE_QUERY><![CDATA[QWEB*]]></FILE_QUERY>
<BASE_DIR><![CDATA[c:\]]></BASE_DIR>
<DEPTH_LIMIT><![CDATA[3]]></DEPTH_LIMIT>
<FILE_NAME_MATCH><![CDATA[preTest2.txt]]></FILE_NAME_MATCH>
<FILE_NAME_SKIP><![CDATA[]]></FILE_NAME_SKIP>
<DIR_NAME_MATCH><![CDATA[*]]></DIR_NAME_MATCH>
<DIR_NAME_SKIP><![CDATA[]]></DIR_NAME_SKIP>
<TIME_LIMIT><![CDATA[300]]></TIME_LIMIT>
<MATCH_LIMIT><![CDATA[50]]></MATCH_LIMIT>
<DATA_TYPE>String List</DATA_TYPE>
<DESCRIPTION><![CDATA[FileContentChech]]></DESCRIPTION>
</SCAN_PARAMETERS>
<TECHNOLOGIES total="1">
<TECHNOLOGY>
<ID>75</ID>
<NAME>Windows Server 2012 R2</NAME>
<EVALUATE><CTRL><DP><K>custom.win_file_content_check.1007020</K><L
>0</L><CD>contains</CD><OP>xre</OP><V><![CDATA[true]]></V></DP></C
TRL></EVALUATE>
<RATIONALE><![CDATA[rationale]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
<DEFAULT_VALUE><![CDATA[true]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
</TECHNOLOGIES>
<REFERENCE_LIST/>
</USER_DEFINED_CONTROL>
<USER_DEFINED_CONTROL>
<ID>100026</ID>
<UDC_ID>d908b3f9-59f9-fb70-801c-
29d04fb12511</UDC_ID>
<CHECK_TYPE>Windows File Content
Check</CHECK_TYPE>
552
Chapter 13 - Compliance
Compliance Policy - Export
<CATEGORY>
<ID>3</ID>
<NAME><![CDATA[Access Control
Requirements]]></NAME>
</CATEGORY>
<SUB_CATEGORY>
<ID>1010</ID>
<NAME><![CDATA[Account Creation/User
Management]]></NAME>
</SUB_CATEGORY>
<STATEMENT><![CDATA[pre_fcc_file_path_regexwith$]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
<COMMENT><![CDATA[]]></COMMENT>
<USE_AGENT_ONLY>0</USE_AGENT_ONLY>
<AUTO_UPDATE>0</AUTO_UPDATE>
<IGNORE_ERROR>0</IGNORE_ERROR>
<IGNORE_ITEM_NOT_FOUND>0</IGNORE_ITEM_NOT_FOUND>
<SCAN_PARAMETERS>
<PATH_TYPE><![CDATA[Use file
path]]></PATH_TYPE>
<FILE_PATH><![CDATA[C:\user\PreTest\pretestfile1.txt]]></FILE_PATH
>
<FILE_QUERY><![CDATA[pre\$]]></FILE_QUERY>
<DATA_TYPE>String List</DATA_TYPE>
<DESCRIPTION><![CDATA[pre\$]]></DESCRIPTION>
</SCAN_PARAMETERS>
<TECHNOLOGIES total="1">
<TECHNOLOGY>
<ID>75</ID>
<NAME>Windows Server 2012 R2</NAME>
<EVALUATE><CTRL><DP><K>custom.win_file_content_check.1008003</K><L
>0</L><CD>contains</CD><OP>xre</OP><V><![CDATA[.*]]></V></DP></CTR
L></EVALUATE>
<RATIONALE><![CDATA[ration]]></RATIONALE>
<DATAPOINT>
<CARDINALITY>contains</CARDINALITY>
<OPERATOR>xre</OPERATOR>
<DEFAULT_VALUES total="1">
553
Chapter 13 - Compliance
Compliance Policy - Export
<DEFAULT_VALUE><![CDATA[.*]]></DEFAULT_VALUE>
</DEFAULT_VALUES>
</DATAPOINT>
</TECHNOLOGY>
</TECHNOLOGIES>
<REFERENCE_LIST/>
</USER_DEFINED_CONTROL>
</CONTROLS>
</SECTION>
</SECTIONS>
</POLICY>
</RESPONSE>
</POLICY_EXPORT_OUTPUT>
DTD
<platform API server>/api/2/fo/compliance/policy/policy_export_output.dtd
554
Chapter 13 - Compliance
Compliance Policy - Import
Import a compliance policy, defined in an XML file, into your account. We’ll include all the
service-provided controls from your XML file. You have the option to also include user-
defined controls.
Permissions - If you’re not a Manager permission Manage PC module must be turned on in
your account.
Input Parameters
Parameter Description
action=import (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters (names
and values) in the XML output. When not specified, parameters
are not included in the XML output. Specify 1 to view parameters
in the XML output.
xml_file (Required) The file containing the policy details.
title={value} (Required) The title of the new policy.
create_user_controls={0|1} (Optional) When not specified, user-defined controls are not
created when you import a policy. Specify 1 to include UDCs from
the XML file.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2017-09-15T21:32:40Z</DATETIME>
<TEXT>Successfully imported compliance policy</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
555
Chapter 13 - Compliance
Compliance Policy - Import
<VALUE>136992</VALUE>
</ITEM>
<ITEM>
<KEY>TITLE</KEY>
<VALUE>My Policy</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
556
Chapter 13 - Compliance
Compliance Policy - Merge
Merge (combine) 2 or more compliance policies using Qualys Policy Compliance (PC). You
can choose to merge some or all parts of a new policy into an existing one. Also you can
preview merge changes before saving them. This API is available to Managers and
Auditors.
For example, say you imported a policy from our library (Policy A) and configured it to add
asset groups, controls and sections. Later we might release an updated version of this
policy (Policy B) with new controls and technologies. In this scenario you can use the Policy
Merge API to add the new controls and technologies from Policy B into Policy A (your
existing policy) without losing the asset groups, controls and sections you added.
Input Parameters
The policy merge input parameters give you flexibility with merging different parts of a
new policy (Policy B) into an existing one (Policy A). For example you can choose to update
controls with newer definitions, replace asset groups, and add new technologies and
controls. By default no changes are applied to your existing policy unless parameters are
specified (see below).
Parameter Description
action=merge (Required)
id={value} (Required) The ID of the policy that will be updated with merged
content (let’s call this Policy A).
merge_policy_id={value} (Required) Tell us the policy with the content that will be merged
-or- into Policy A (let’s call this Policy B). You can specify a policy ID
policy XML data using “merge_policy_id” or policy XML data. To upload XML data,
use this syntax: --data-binary @path_to_xml_file.xml
These options are mutually exclusive: policy XML data and
replace_asset_groups.
replace_cover_page={0|1} (Optional) Set replace_cover_page=1 to replace the cover page in
Policy A with the cover page in Policy B.
replace_asset_groups={0|1} (Optional) Set replace_asset_groups=1 to replace asset groups in
Policy A with asset groups in Policy B.
These options are mutually exclusive: add_asset_groups and
replace_asset_groups.
add_asset_groups={0|1} (Optional) Set add_asset_groups=1 to add new asset groups, i.e.
add asset groups from Policy B if they are not already present in
Policy A.
add_new_technologies= (Optional) Set add_new_technologies=1 to add new technologies,
{0|1} i.e. add technologies from Policy B if they are not already in Policy
A.
557
Chapter 13 - Compliance
Compliance Policy - Merge
Parameter Description
add_new_controls={0|1} (Optional) Set add_new_controls=1 to add new controls, i.e. add
controls from Policy B if they are not already in Policy A.
update_section_heading= (Optional) Set update_section_heading=1 to replace the section
{0|1} heading in Policy A with the one in Policy B, based on section
number (applies only to common sections).
This parameter must be specified with: add_new_controls or
update_existing_controls.
update_existing_controls= (Optional) Set update_existing_controls=1 to replace the common
{0|1} controls in Policy A with the ones in Policy B. These are controls
that exist in both policies. (Controls will not be removed).
preview_merge={0|1} (Optional) Set preview_merge= 1 to view the changes merged into
Policy A without saving them.
DTD
<platform API server>/api/2.0/fo/compliance/policy/policy_merge_result_output.dtd"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POLICY_MERGE_RESULT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/policy/policy_
merge_result_output.dtd">
<POLICY_MERGE_RESULT_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-24T05:28:04Z</DATETIME>
<POLICY_MERGE_RESULT>
<NOTE>Policy changes were not merged or saved since the
request had preview_merge=1.</NOTE>
<NEW_COVER_PAGE><![CDATA[My Cover Page]]></NEW_COVER_PAGE>
<ASSET_GROUPS_ADDED>
<ASSET_GROUP>
<ID>424422</ID>
<NAME><![CDATA[<script>alert("xss");</script>]]></NAME>
558
Chapter 13 - Compliance
Compliance Policy - Merge
</ASSET_GROUP>
<ASSET_GROUP>
<ID>424577</ID>
<NAME><![CDATA[10.10.32.26]]></NAME>
</ASSET_GROUP>
</ASSET_GROUPS_ADDED>
<TECHNOLOGIES_ADDED>
<TECHNOLOGY>
<ID>1</ID>
<NAME>Windows XP desktop</NAME>
</TECHNOLOGY>
</TECHNOLOGIES_ADDED>
<SECTIONS_UPDATED>
<SECTION>
<ID>1</ID>
<HEADING><![CDATA[First section]]></HEADING>
</SECTION>
<SECTION>
<ID>2</ID>
<HEADING><![CDATA[Second section]]></HEADING>
</SECTION>
</SECTIONS_UPDATED>
<SECTIONS>
<SECTION>
<ID>1</ID>
<CONTROLS_UPDATED>
<CONTROL>
<ID>1061</ID>
</CONTROL>
</CONTROLS_UPDATED>
</SECTION>
<SECTION>
<ID>2</ID>
<CONTROLS_ADDED>
<CONTROL>
<ID>1045</ID>
</CONTROL>
<CONTROL>
<ID>1048</ID>
</CONTROL>
</CONTROLS_ADDED>
</SECTION>
</SECTIONS>
</POLICY_MERGE_RESULT>
</RESPONSE>
559
Chapter 13 - Compliance
Compliance Policy - Merge
</POLICY_MERGE_RESULT_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POLICY_MERGE_RESULT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/policy/policy_
merge_result_output.dtd">
<POLICY_MERGE_RESULT_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-24T05:31:26Z</DATETIME>
<POLICY_MERGE_RESULT>
<NOTE>Policy changes have been merged successfully.</NOTE>
<NEW_COVER_PAGE><![CDATA[My Cover Page]]></NEW_COVER_PAGE>
<ASSET_GROUPS_ADDED>
<ASSET_GROUP>
<ID>424422</ID>
...
</POLICY_MERGE_RESULT>
</RESPONSE>
</POLICY_MERGE_RESULT_OUTPUT>
560
Chapter 13 - Compliance
Compliance Policy - Merge
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POLICY_MERGE_RESULT_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/policy/policy_
merge_result_output.dtd">
<POLICY_MERGE_RESULT_OUTPUT>
<RESPONSE>
<DATETIME>2018-04-24T05:38:26Z</DATETIME>
<POLICY_MERGE_RESULT>
<NOTE>Policy changes were not merged or saved since the
request had preview_merge=1.</NOTE>
<NEW_COVER_PAGE><![CDATA[My Cover Page]]></NEW_COVER_PAGE>
<SECTIONS_UPDATED>
<SECTION>
<ID>1</ID>
<HEADING><![CDATA[First section]]></HEADING>
</SECTION>
<SECTION>
<ID>2</ID>
<HEADING><![CDATA[Second section]]></HEADING>
</SECTION>
</SECTIONS_UPDATED>
<SECTIONS>
<SECTION>
<ID>1</ID>
<CONTROLS_UPDATED>
<CONTROL>
<ID>1061</ID>
</CONTROL>
</CONTROLS_UPDATED>
</SECTION>
<SECTION>
<ID>2</ID>
<CONTROLS_ADDED>
<CONTROL>
<ID>1045</ID>
</CONTROL>
<CONTROL>
<ID>1048</ID>
</CONTROL>
</CONTROLS_ADDED>
</SECTION>
</SECTIONS>
</POLICY_MERGE_RESULT>
561
Chapter 13 - Compliance
Compliance Policy - Merge
</RESPONSE>
</POLICY_MERGE_RESULT_OUTPUT>
562
Chapter 13 - Compliance
Compliance Policy - Manage Asset Groups
Add, remove and set asset groups for a policy. You must have permission to modify the
policy you want to update.
API request:
curl -H "X-Requested-With: curl" -u "USERNAME:PASSWD" -X POST -d
"id=43400&asset_group_ids=649737,649736"
"https://qualysapi.qualys.com//api/2.0/fo/compliance/policy/?actio
n=add_asset_group_ids"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-09-11T09:06:17Z</DATETIME>
<TEXT>Compliance Policy successfully modified.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>43400</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
563
Chapter 13 - Compliance
Compliance Policy - Manage Asset Groups
Parameter Description
action=remove_asset_group (Required)
_ids
id={value} Policy ID for the policy you want to update.
asset_group_ids= Asset groups IDs for the asset groups you want to delete from
{value} the policy specified in “id”. Multiple IDs are comma separated.
evaluate_now={0|1} (Optional) Specify evaluate_now=1 to immediately evaluate the
policy against assigned assets, and select the Evaluate Now
check box in the UI Policy Editor. When this check box is selected
we’ll start policy evaluation each time you save changes to the
policy from the UI or API.
API request:
curl -H "X-Requested-With: curl" -u "USERNAME:PASSWD" -X POST -d
"id=43400&asset_group_ids=649737,649736"
"https://qualysapi.qualys.com//api/2.0/fo/compliance/policy/?actio
n=remove_asset_group_ids"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-09-11T09:06:17Z</DATETIME>
<TEXT>Compliance Policy successfully modified.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>43400</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
564
Chapter 13 - Compliance
Compliance Policy - Manage Asset Groups
API request:
curl -H "X-Requested-With: curl" -u "USERNAME:PASSWD" -X POST -d
"id=43400&asset_group_ids=649737,649736"
"https://qualysapi.qualys.com//api/2.0/fo/compliance/policy/?
action=set_asset_group_ids"
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2014-09-11T09:07:43Z</DATETIME>
<TEXT>Compliance Policy successfully modified.</TEXT>
<ITEM_LIST>
<ITEM>
<KEY>ID</KEY>
<VALUE>43400</VALUE>
</ITEM>
</ITEM_LIST>
</RESPONSE>
</SIMPLE_RETURN>
565
Chapter 13 - Compliance
Compliance Posture Information
View current compliance posture data (info records) for hosts within the user’s account.
Each compliance posture info record includes a compliance posture ID and other
attributes. Optional input parameters support filtering the posture info record output.
Each compliance posture info record in the output includes:
Output Description
Compliance Posture ID The service assigns a unique value to each compliance posture
info record.
Host ID Identifies a host.
Control ID Identifies a technical control.
Technology ID Identifies a technology.
Instance Identifies a technology instance, when applicable.
Compliance Status Passed, Failed or Error. An error, only assigned to a custom
control, indicates control evaluation failed (and the ignore errors
configuration option for the control was not selected).
First Fail Date The first scan date when the control was reported as Fail. If the
previous status was Pass then this is the date the status changed
from Pass to Fail.
Last Fail Date The most recent scan date when the control was reported as Fail.
First Pass Date The first scan date when the control was reported as Pass. If the
previous status was Fail then this is the date the status changed
from Fail to Pass.
Last Pass Date The most recent scan date when the control was reported as Pass.
Previous Status The compliance status (Pass or Fail) for each control before the
most recent compliance scan.
Exception Identifies an exception assignee and status, if an exception has
been created.
The user has the ability to select the amount of information to include in the posture
information output. By default, basic posture information is included: the posture ID, host
ID, control ID, technology ID, technology instance (when applicable), and the compliance
status. If an exception has been created, this full exception information is also included:
the exception assignee and status, the date/time when the exception was created, when it
was last modified, the user who took these actions on the exception, and the date when
the exception is set to expire. A glossary of compliance posture information identifies:
basic host information and basic control information.
566
Chapter 13 - Compliance
Compliance Posture Information
Use the details input parameter to select another level of detail to be included in the
policy information output.
By default, the posture information output shows posture information for all hosts
(IP addresses) in asset groups assigned to the selected policy, provided the user has
permission to view the hosts themselves. If you have a sub-account like a Unit Manager,
Scanner or Reader, the posture information output only includes hosts that the account
has permission to see.
Best Practices
You can reduce the amount of data being retrieved by only pulling the data that is
required for the downstream processes. For example, only download the delta of the
changes in posture since the last pull. This can be done using optional input parameters
which allow you to set filters to restrict the posture information output to postures info
records with certain IP addresses, host IDs, compliance control IDs, compliance posture
IDs, posture info records with changes in status since a specified date, and posture info
records with a certain compliance status (Passed, Failed or Error).
The optional glossary in the compliance posture information output includes:
Output Description
User List List of users who created, modified, or added comments to
exceptions in compliance posture info records which are
included in the posture information output. For a policy that was
edited, the user who most recently edited the exception is listed.
Host List List of hosts in compliance posture info records which are
included in the posture information output. This basic host
information is included: host ID, IP address, and tracking
method. When details=All is specified, this additional
information is included: last vulnerability scan date/time, last
compliance scan date/time.
Control List List of controls in compliance posture info records which are
included in the posture information output. When details=All is
specified, this additional information is included: rationale
information and technology information for each control.
Technology List List of technologies for controls in compliance posture info
records which are included in the posture list output. This
information is included only when details=All is specified.
Evidence List List of evidence information for control data points.
567
Chapter 13 - Compliance
Compliance Posture Information
Permissions
All users have permission view posture information for hosts (IP addresses) in asset
groups assigned to the selected policy, when the hosts are available to the user based on
user account settings.
Input Parameters
Parameter Description
action=list (Required)
policy_id={value} (policy_id or policy_ids is required) Show compliance posture
info records for a specified policy. A valid policy ID is required.
The parameters policy_id and policy_ids cannot be specified in
the same request.
568
Chapter 13 - Compliance
Compliance Posture Information
Parameter Description
policy_ids={value} (policy_id or policy_ids is required) Show compliance posture
info records for multiple policies - up to 10 policies may be
requested. Provide a comma-separated list of valid policy IDs.
When this parameter is specified, all posture data is downloaded
(and the “truncation_limit” parameter is invalid).
The parameters policy_id and policy_ids cannot be specified in
the same request. When policy_ids is specified, truncation_limit
is invalid. For CSV output, policy_id must be specified (and
policy_ids is invalid).
echo_request={0|1} (Optional) Show (echo) the request’s input parameters (names
and values) in the XML output. When not specified, parameters
are not included in the XML output. Specify 1 to view parameters
in the XML output.
output_format={value} (Optional) The output format. A valid value is: xml (default), csv
(posture data and metadata i.e. summary and warning data),
csv_no_metadata (posture data only, no metadata). For CSV
output you can include only one policy for this reason policy_id is
required.
details={Basic|All|None| (Optional) Show a certain amount of information for each
Light} compliance posture info record. A valid value is:
None - show posture info and minimum exception information
(assignee and status) if appropriate
Basic (default) - show posture info, full exception information if
appropriate, and a minimum glossary (basic info for hosts and
controls)
Light - show posture info, exception info if appropriate, and a
limited glossary (host info and last scan date/time, control ID,
and evidence info
All - show posture info (including the percentage of controls that
passed for each host), exception info if appropriate, posture
summary (the number of assets, controls, and control instances
evaluated) and a glossary (host info and last scan date/time),
control info, technology info, evidence info
include_dp_name={value} (Optional) Show the name and ID for each data point in the XML
output. This is useful for uniquely identifying data points.
show_remediation_info={0|1} (Optional) Set to 1 to show remediation information in the XML or
CSV output. By default, the output does not include the
remediation information. When not specified, the remediation
information is not included in the output.
cause_of_failure={0|1} (Optional) Set flag to 1 to display the cause of failure of Directory
Integrity Monitoring UDCs (user defined controls). When set to 0
or unspecified, cause of failure is not displayed for these UCDs.
When set to 1 and Directory Integrity Monitoring UDC control
failed assessment, cause of failure info is shown in XML
response, i.e. added, removed directories, directories where
content changed, permissions changed etc.
569
Chapter 13 - Compliance
Compliance Posture Information
Parameter Description
truncation_limit={value} (Optional) The parameter is valid only when the API request is for
a single policy and the policy_id parameter is specified.
570
Chapter 13 - Compliance
Compliance Posture Information
Parameter Description
status_changes_since= (Optional) Show compliance posture info records when the
{date} compliance status was changed since a certain date and time
(optional). If the policy itself was changed, a warning message is
generated.
571
Chapter 13 - Compliance
Compliance Posture Information
DTD
<platform API server>/api/2.0/fo/compliance/posture/info/posture_info_list_output.dtd
<NAME><![CDATA[custom.win_group_membership.1001035]]></NAME>
<DESC><![CDATA[IIS_IUSR]]></DESC>
</DPD>
...
572
Chapter 13 - Compliance
Compliance Posture Information
PostureInfo.xml
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POSTURE_INFO_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/posture/info/p
osture_info_list_output.dtd">
<POSTURE_INFO_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2019-05-03T19:24:32Z</DATETIME>
<INFO_LIST>
<INFO>
<ID>6413404</ID>
<HOST_ID>1843205</HOST_ID>
<CONTROL_ID>100022</CONTROL_ID>
<TECHNOLOGY_ID>22</TECHNOLOGY_ID>
<INSTANCE>MSSQL 2008:1:1433:MSSQLSERVER:master</INSTANCE>
<STATUS>Failed</STATUS>
<POSTURE_MODIFIED_DATE>2019-04-
29T20:38:08Z</POSTURE_MODIFIED_DATE>
<EVIDENCE>
<BOOLEAN_EXPR><![CDATA[((:dp_2 matches
$tp_2))]]></BOOLEAN_EXPR>
<DPV_LIST>
<DPV lastUpdated="2019-05-03T00:33:14Z">
<LABEL>:dp_2</LABEL>
<V>
<H>
<C><![CDATA[CustomerID]]></C>
<C><![CDATA[CustomerName]]></C>
<C><![CDATA[ContactName]]></C>
<C><![CDATA[Address]]></C>
<C><![CDATA[City]]></C>
<C><![CDATA[PostalCode]]></C>
<C><![CDATA[Country]]></C>
</H>
<R>
<C><![CDATA[1]]></C>
<C><![CDATA[Alfreds Futterkiste]]></C>
<C><![CDATA[Maria Anders]]></C>
<C><![CDATA[Obere Str. 57]]></C>
<C><![CDATA[Berlin]]></C>
<C><![CDATA[12209]]></C>
<C><![CDATA[Germany]]></C>
</R>
<R>
573
Chapter 13 - Compliance
Compliance Posture Information
<C><![CDATA[2]]></C>
<C><![CDATA[Ana Trujillo Emparedados y
helados]]></C>
<C><![CDATA[Ana Trujillo]]></C>
<C><![CDATA[Avda. de la Constitucion 2222]]></C>
<C><![CDATA[Mexico D.F.]]></C>
<C><![CDATA[05021]]></C>
<C><![CDATA[Mexico]]></C>
</R>
<R>
<C><![CDATA[3]]></C>
<C><![CDATA[Antonio Moreno Taqueria]]></C>
<C><![CDATA[Antonio Moreno]]></C>
<C><![CDATA[Mataderos 2312]]></C>
<C><![CDATA[Mexico D.F.]]></C>
<C><![CDATA[05023]]></C>
<C><![CDATA[Mexico]]></C>
</R>
...
</GLOSSARY>
</RESPONSE>
</POSTURE_INFO_LIST_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE POSTURE_INFO_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/posture/info/p
osture_info_list_output.dtd">
<POSTURE_INFO_LIST_OUTPUT>
<REQUEST>
<DATETIME>2019-10-14T21:19:57Z</DATETIME>
<USER_LOGIN>rey_pt11</USER_LOGIN>
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/compliance/postu
re/info/</RESOURCE>
<PARAM_LIST>
<PARAM>
<KEY>action</KEY>
<VALUE>list</VALUE>
574
Chapter 13 - Compliance
Compliance Posture Information
</PARAM>
<PARAM>
<KEY>echo_request</KEY>
<VALUE>1</VALUE>
</PARAM>
<PARAM>
<KEY>policy_id</KEY>
<VALUE>1758961</VALUE>
</PARAM>
<PARAM>
<KEY>details</KEY>
<VALUE>All</VALUE>
</PARAM>
<PARAM>
<KEY>include_dp_name</KEY>
<VALUE>1</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<RESPONSE>
<DATETIME>2019-10-14T21:19:57Z</DATETIME>
<INFO_LIST>
<INFO>
<ID>34544283</ID>
<HOST_ID>7368441</HOST_ID>
<CONTROL_ID>100006</CONTROL_ID>
<TECHNOLOGY_ID>75</TECHNOLOGY_ID>
<INSTANCE></INSTANCE>
<STATUS>Passed</STATUS>
<POSTURE_MODIFIED_DATE>2019-10-
14T21:15:46Z</POSTURE_MODIFIED_DATE>
<PREVIOUS_STATUS>Passed</PREVIOUS_STATUS>
<FIRST_FAIL_DATE>N/A</FIRST_FAIL_DATE>
<LAST_FAIL_DATE>N/A</LAST_FAIL_DATE>
<FIRST_PASS_DATE>2019-10-14T21:15:46Z</FIRST_PASS_DATE>
<LAST_PASS_DATE>2019-10-14T21:15:46Z</LAST_PASS_DATE>
<EVIDENCE>
<BOOLEAN_EXPR><![CDATA[:dp_2 contains $tp_2]]></BOOLEAN_EXPR>
<DPV_LIST>
<DPV lastUpdated="2019-10-14T19:53:41Z">
<LABEL>:dp_2</LABEL>
<V
fileName="c:\Agent\user\test2.txt"><![CDATA[QWEB]]></V>
<TM_REF>@tm_1</TM_REF>
</DPV>
</DPV_LIST>
575
Chapter 13 - Compliance
Compliance Posture Information
</EVIDENCE>
</INFO>
<INFO>
<ID>34544284</ID>
<HOST_ID>7368441</HOST_ID>
<CONTROL_ID>100000</CONTROL_ID>
<TECHNOLOGY_ID>75</TECHNOLOGY_ID>
<INSTANCE></INSTANCE>
<STATUS>Failed</STATUS>
<POSTURE_MODIFIED_DATE>2019-10-
14T21:15:46Z</POSTURE_MODIFIED_DATE>
<PREVIOUS_STATUS>Failed</PREVIOUS_STATUS>
<FIRST_FAIL_DATE>2019-10-14T21:15:46Z</FIRST_FAIL_DATE>
<LAST_FAIL_DATE>2019-10-14T21:15:46Z</LAST_FAIL_DATE>
<FIRST_PASS_DATE>N/A</FIRST_PASS_DATE>
<LAST_PASS_DATE>N/A</LAST_PASS_DATE>
<EVIDENCE>
<BOOLEAN_EXPR><![CDATA[:dp_1 contains
$tp_1]]></BOOLEAN_EXPR>
<DPV_LIST>
<DPV lastUpdated="2019-10-14T19:53:41Z">
<LABEL>:dp_1</LABEL>
<V fileName="C:\preTest2.txt"><![CDATA[QWEB]]></V>
<TM_REF>@tm_2</TM_REF>
</DPV>
</DPV_LIST>
</EVIDENCE>
</INFO>
<INFO>
<ID>34544285</ID>
<HOST_ID>7368441</HOST_ID>
<CONTROL_ID>100026</CONTROL_ID>
<TECHNOLOGY_ID>75</TECHNOLOGY_ID>
<INSTANCE></INSTANCE>
<STATUS>Passed</STATUS>
<POSTURE_MODIFIED_DATE>2019-10-
14T21:15:46Z</POSTURE_MODIFIED_DATE>
<PREVIOUS_STATUS>Passed</PREVIOUS_STATUS>
<FIRST_FAIL_DATE>N/A</FIRST_FAIL_DATE>
<LAST_FAIL_DATE>N/A</LAST_FAIL_DATE>
<FIRST_PASS_DATE>2019-10-14T21:15:46Z</FIRST_PASS_DATE>
<LAST_PASS_DATE>2019-10-14T21:15:46Z</LAST_PASS_DATE>
<EVIDENCE>
<BOOLEAN_EXPR><![CDATA[:dp_3 contains
$tp_2]]></BOOLEAN_EXPR>
<DPV_LIST>
576
Chapter 13 - Compliance
Compliance Posture Information
<DPV lastUpdated="2019-10-14T19:53:41Z">
<LABEL>:dp_3</LABEL>
<V
fileName="C:\user\PreTest\pretestfile1.txt"><![CDATA[pre$]]></V>
<TM_REF>@tm_3</TM_REF>
</DPV>
</DPV_LIST>
</EVIDENCE>
</INFO>
</INFO_LIST>
<SUMMARY>
<TOTAL_ASSETS>1</TOTAL_ASSETS>
<TOTAL_CONTROLS>3</TOTAL_CONTROLS>
<CONTROL_INSTANCES>
<TOTAL>3</TOTAL>
<TOTAL_PASSED>2</TOTAL_PASSED>
<TOTAL_FAILED>1</TOTAL_FAILED>
<TOTAL_ERROR>0</TOTAL_ERROR>
<TOTAL_EXCEPTIONS>0</TOTAL_EXCEPTIONS>
</CONTROL_INSTANCES>
</SUMMARY>
<GLOSSARY>
<HOST_LIST>
<HOST>
<ID>7368441</ID>
<IP>10.115.74.93</IP>
<TRACKING_METHOD>AGENT</TRACKING_METHOD>
<DNS><![CDATA[win-890blrmesc6]]></DNS>
<NETBIOS><![CDATA[WIN-890BLRMESC6]]></NETBIOS>
<OS><![CDATA[Windows Server 2012 R2 Standard 64 bit
Edition]]></OS>
<QG_HOSTID>3031a534-6b78-4c4c-aacd-
db56257c155f</QG_HOSTID>
<LAST_VULN_SCAN_DATETIME>2019-10-
14T19:18:12Z</LAST_VULN_SCAN_DATETIME>
<LAST_COMPLIANCE_SCAN_DATETIME>2019-10-
14T20:21:07Z</LAST_COMPLIANCE_SCAN_DATETIME>
<PERCENTAGE><![CDATA[66.67% (2 of 3)]]></PERCENTAGE>
</HOST>
</HOST_LIST>
<CONTROL_LIST>
<CONTROL>
<ID>100006</ID>
<STATEMENT><![CDATA[Windows_FCC_Use_Reg]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
577
Chapter 13 - Compliance
Compliance Posture Information
<VALUE>1</VALUE>
</CRITICALITY>
<RATIONALE_LIST>
<RATIONALE>
<TECHNOLOGY_ID>75</TECHNOLOGY_ID>
<TEXT><![CDATA[rationale]]></TEXT>
</RATIONALE>
</RATIONALE_LIST>
</CONTROL>
<CONTROL>
<ID>100000</ID>
<STATEMENT><![CDATA[preFCCUDC]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
<RATIONALE_LIST>
<RATIONALE>
<TECHNOLOGY_ID>75</TECHNOLOGY_ID>
<TEXT><![CDATA[rationale]]></TEXT>
</RATIONALE>
</RATIONALE_LIST>
</CONTROL>
<CONTROL>
<ID>100026</ID>
<STATEMENT><![CDATA[pre_fcc_file_path_regexwith$]]></STATEMENT>
<CRITICALITY>
<LABEL><![CDATA[min]]></LABEL>
<VALUE>1</VALUE>
</CRITICALITY>
<RATIONALE_LIST>
<RATIONALE>
<TECHNOLOGY_ID>75</TECHNOLOGY_ID>
<TEXT><![CDATA[ration]]></TEXT>
</RATIONALE>
</RATIONALE_LIST>
</CONTROL>
</CONTROL_LIST>
<TECHNOLOGY_LIST>
<TECHNOLOGY>
<ID>75</ID>
<NAME><![CDATA[Windows Server 2012 R2]]></NAME>
</TECHNOLOGY>
</TECHNOLOGY_LIST>
<DPD_LIST>
578
Chapter 13 - Compliance
Compliance Posture Information
<DPD>
<LABEL>:dp_1</LABEL>
<ID>1007020</ID>
<NAME><![CDATA[custom.win_file_content_check.1007020]]></NAME>
<DESC><![CDATA[FileContentChech]]></DESC>
</DPD>
<DPD>
<LABEL>:dp_2</LABEL>
<ID>1007110</ID>
<NAME><![CDATA[custom.win_file_content_check.1007110]]></NAME>
<DESC><![CDATA[reg key]]></DESC>
</DPD>
<DPD>
<LABEL>:dp_3</LABEL>
<ID>1008003</ID>
<NAME><![CDATA[custom.win_file_content_check.1008003]]></NAME>
<DESC><![CDATA[pre\$]]></DESC>
</DPD>
</DPD_LIST>
<TP_LIST>
<TP>
<LABEL>$tp_1</LABEL>
<V><![CDATA[true]]></V>
</TP>
<TP>
<LABEL>$tp_2</LABEL>
<V><![CDATA[.*]]></V>
</TP>
</TP_LIST>
<TM_LIST>
<TM>
<LABEL>@tm_1</LABEL>
<PAIR>
<K><![CDATA[item not found:2]]></K>
<V><![CDATA[Set status Passed for “item not found�
error]]></V>
</PAIR>
</TM>
<TM>
<LABEL>@tm_2</LABEL>
<PAIR>
<K><![CDATA[item not found:2]]></K>
<V><![CDATA[Set status Passed for “item not found�
579
Chapter 13 - Compliance
Control Criticality
error]]></V>
</PAIR>
</TM>
<TM>
<LABEL>@tm_3</LABEL>
<PAIR>
<K><![CDATA[item not found:2]]></K>
<V><![CDATA[Set status Passed for “item not found�
error]]></V>
</PAIR>
</TM>
</TM_LIST>
</GLOSSARY>
</RESPONSE>
</POSTURE_INFO_LIST_OUTPUT>
<!-- CONFIDENTIAL AND PROPRIETARY INFORMATION. Qualys provides the
QualysGuard Service "As Is," without any warranty of any kind.
Qualys makes no warranty that the information contained in this
report is complete or error-free. Copyright 2019, Qualys, Inc. //-
->
Control Criticality
Control Criticality is a feature in Policy Compliance that provides ratings for controls,
including the ability to customize ratings at the control level and at the policy level.
Several APIs include control criticality in the API output.
Control Criticality must be enabled in your account — By default, control criticality will
not be enabled while we are updating the default criticality settings in the control library.
If you want this feature, please contact Support or your Technical Account Manager.
580
Chapter 13 - Compliance
Exceptions
Exceptions
/api/2.0/fo/compliance/exception/
[GET] [POST]
List, request, update and delete exceptions in your account. Supported method differs per
request type, i.e. list, create etc).
The Exception API is only available if you have Policy Compliance (PC) module enabled for
your subscription. Non Manager users must be granted this permission in their account
settings.
Permissions -
User Permissions
.
User Role Permissions
Manager List, request, update, delete exceptions for all hosts in
subscription.
Auditor List, request, update, delete exceptions for all hosts in
subscription.
Unit Manager List, request, update, delete exceptions for hosts in their
assigned business unit.
Scanner, Reader List, request, update exceptions for hosts in their account.
Updates are limited to adding comments.
List exceptions
By default, all exceptions in the user’s account are listed. Use the optional parameters to
filter the list output.
Parameter Description
action=list (Required)
exception_number={value} (Optional) Show a specific exception by specifying a valid
exception number.
ip={value} (Optional) Show exceptions associated with a specific host by
specifying a host IP address. You may enter individual IP address
that belong to the Policy Compliance module.
network_name={value} (Optional) Show exceptions for a particular network by specifying
the network name.
status={value} (Optional) Show exceptions with specified status value: pending,
approved, rejected or expired. Tell me about exception status
581
Chapter 13 - Compliance
Exceptions
Parameter Description
control_id={value} (Optional) Show exceptions for a specific control by specifying
valid control ID. If the value is set to 23, the matching control IDs
may include 23, 234, 2343, 233.
control_statement={value} (Optional) Show exceptions for certain controls associated with a
certain policy by specifying control statement. Partial control
statement is also valid.
policy_id={value} (Optional) Show exceptions for controls associated with a certain
policy by specifying a valid policy ID.
technology_name={value} (Optional) Show exceptions for controls with a certain technology
by specifying the technology name.
assignee_id={value} (Optional) Show exceptions with a certain assignee by specifying
an assignee’ user ID.
created_by={value} (Optional) Show exceptions that were created by a particular user
by specifying the user ID.
modified_by={value} (Optional) Show exceptions that were modified by a particular
user by specifying the user ID.
details={Basic|All|None} (Optional) Show the requested amount of information for each
control. A valid value is:
None - Only exception numbers.
Basic (default) - All details except comments history.
All - All details including comments history.
is_active={0|1} (Optional). Show only exceptions that are active or inactive
in the output. Specify 1 to show only active exceptions.
Specify 0 to show only inactive exceptions. When unspecified,
both active and inactive exceptions are shown.
created_after_date= (Optional) Show exceptions created (requested) after the specified
{mm/dd/yyyy} date. The valid date format is mm/dd/yyyy.
updated_after_date= (Optional) Show exceptions that were updated after the specified
{mm/dd/yyyy} date. The valid date format is mm/dd/yyyy.
expired_before_date= (Optional) Show exceptions that will expire before the specified
{mm/dd/yyyy} date. The valid date format is mm/dd/yyyy.
expired_after_date= (Optional) Show exceptions that will expire after the specified
{mm/dd/yyyy} date. The valid date format is mm/dd/yyyy.
exception_numbers={value} (Optional) Show a specific exception by specifying a valid
exception number. Multiple entries are comma separated. An
exception number range is specified with a hyphen (for example,
289-292).
exception_number_min= (Optional) Show only exceptions that have a exception number
{value} greater than or equal to the specified value.
582
Chapter 13 - Compliance
Exceptions
Parameter Description
exception_number_max= (Optional) Show only exceptions that have exception number less
{value} than or equal to the specified value.
truncation_limit={value} (Optional) Specify the maximum number of exceptions to be
listed per request. When not specified, the truncation limit is set
to 1000 records. You may specify a value less than the default (1-
999) or greater than the default (1001-1000000).
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
"https://qualysapi.qualys.com/api/2.0/fo/compliance/posture/info/p
osture_info_list_output.dtd">
...
<INFO>
<ID>1174</ID>
<HOST_ID>563352</HOST_ID>
<CONTROL_ID>1072</CONTROL_ID>
<TECHNOLOGY_ID>2</TECHNOLOGY_ID>
<INSTANCE></INSTANCE>
<STATUS>Failed</STATUS>
<POSTURE_MODIFIED_DATE>2015-09
583
Chapter 13 - Compliance
Exceptions
-02T08:16:33Z</POSTURE_MODIFIED_DATE>
</INFO>
...
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
"https://qualysapi.qualys.com/api/2.0/fo/compliance/exception/
exception_list_output.dtd">
<EXCEPTION_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2017-01-15T11:26:34Z</DATETIME>
<EXCEPTION_LIST>
<EXCEPTION>
<EXCEPTION_NUMBER>58</EXCEPTION_NUMBER>
<HOST>
<IP_ADDRESS>10.10.30.159</IP_ADDRESS>
</HOST>
<TECHNOLOGY>
<ID>11</ID>
<NAME><![CDATA[Red Hat Enterprise Linux 5.x]]></NAME>
</TECHNOLOGY>
<POLICY>
<ID>789422824</ID>
<NAME><![CDATA[RHEL 5.x]]></NAME>
</POLICY>
<CONTROL>
<CID>1073</CID>
<STATEMENT><![CDATA[Status of the 'Maximum Password Age'
setting
(expiration) / Accounts having the 'password never
expires'
flag set]]></STATEMENT>
<CRITICALITY>
<VALUE>5</VALUE>
<LABEL><![CDATA[URGENT]]></LABEL>
</CRITICALITY>
</CONTROL>
584
Chapter 13 - Compliance
Exceptions
<ASSIGNEE><![CDATA[Scanner User]]></ASSIGNEE>
<STATUS>Rejected</STATUS>
<ACTIVE>1</ACTIVE>
<REOPEN_ON_EVIDENCE_CHANGE>0</REOPEN_ON_EVIDENCE_CHANGE>
<EXPIRATION_DATE>N/A</EXPIRATION_DATE>
<MODIFIED_DATE>2017-01-15T08:53:19Z</MODIFIED_DATE>
<HISTORY_LIST>
<HISTORY>
<USER><![CDATA[John (mnc_su)]]></USER>
<COMMENT><![CDATA[test]]></COMMENT>
<INSERTION_DATE>2017-01-05T06:48:13Z</INSERTION_DATE>
</HISTORY>
<HISTORY>
<USER><![CDATA[Bill (mnc_ru)]]></USER>
<COMMENT><![CDATA[test]]></COMMENT>
<INSERTION_DATE>2017-01-15T08:48:38Z</INSERTION_DATE>
</HISTORY>
<HISTORY>
<USER><![CDATA[Mark (mnc_au)]]></USER>
<COMMENT><![CDATA[test]]></COMMENT>
<INSERTION_DATE>2017-01-15T08:53:19Z</INSERTION_DATE>
</HISTORY>
</HISTORY_LIST>
</EXCEPTION>
...
DTD
<platform API server>/api/2.0/fo/compliance/exception/exception_list_output.dtd
585
Chapter 13 - Compliance
Exceptions
Request exception
An exception is created with the expiry date matching the creation date. You can update
the exception to change it.
Parameter Description
action=request (Required) POST method must be used. action=create is also
valid.
control_id={value} (Required) Specify the control ID of the control for which you
want to request an exception.
host_id={value} (Required) Specify the host ID of the host for which you want to
request an exception.
policy_id={value} (Required) Specify the policy ID of the policy that contains the
control for which you want to request an exception.
technology_id={value} (Required) Specify the technology ID of the technology associated
with the host for which you want to request an exception.
instance_string={value} (Optional) Specifies a single instance on the selected host. The
instance string may be “os” or a string like
“oracle10:1:1521:ora10204u”.
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2015-12-15T10:14:43Z</DATETIME>
586
Chapter 13 - Compliance
Exceptions
DTD
<platform API server>/api/2.0/fo/compliance/exception/
Update exceptions
You can make changes to one or more exceptions on your hosts. All the actions you take
are logged in the exception history with your name and a time stamp for when the action
took place.
Parameter Description
action=update (Required) POST method must be used.
exception_numbers={value} (Required) Show a specific exception by specifying a valid
exception number. Multiple entries are comma separated. An
exception number range is specified with a hyphen (for example,
50-55).
comments={value} (Required) User defined comments. Your comments are saved in
the exception history.
reassign_to={value} (Optional) You can reassign exceptions to another user. Specify
user ID of the user, who has access to the hosts that the
exceptions apply to.
reopen_on_evidence_change={0|1}
(Optional) This applies only if the exception is approved. Reopen
the exception if a future scan returns a value different than the
current value and the control is still failing.
status={Pending|Approved|R (Optional) Update the status of the exception request. A valid
ejected} value is: Pending, Approved, and Rejected. Tell me about
exception status.
end_date={mm/dd/yyyy} (Optional) Set the end date by entering a future date in
mm/dd/yyyy format. For a never ending exception, set the expiry
date to 0.
587
Chapter 13 - Compliance
Exceptions
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/exception/exce
ption_batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-01-07T11:24:42Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Successfully Updated</TEXT>
<NUMBER_SET>
<NUMBER>55</NUMBER>
</NUMBER_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
DTD
<platform API server>/api/2.0/fo/compliance/exception/exception_batch_return.dtd
Delete exceptions
Parameter Description
action=delete (Required) POST method must be used.
exception_numbers={value} (Required) Specify the exception number. Enter one or more
exception numbers and/or ranges. Multiple entries are comma
separated.
588
Chapter 13 - Compliance
Exceptions
XML response:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/compliance/exception/exce
ption_batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2018-01-07T11:22:20Z</DATETIME>
<BATCH_LIST>
<BATCH>
<TEXT>Exception(s) deleted successfully</TEXT>
<NUMBER_SET>
<NUMBER_RANGE>40-41</NUMBER_RANGE>
</NUMBER_SET>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
DTD
<platform API server>/api/2.0/fo/compliance/exception/exception_batch_return.dtd
589
Chapter 13 - Compliance
SCAP Cyberscope Report
Create a Cyberscope report using scan results for a particular SCAP scan in the user’s
account. An SCAP scan ID or scan reference is required as input. The service uses only the
data in the raw scan results to generate the report. When the parameters
organisation_name1, organisation_name2, and organisation_name3 are specified, the
<ai:Organization> elements are included in the XML report.
Permissions: Users have permission to run this API function when the SCAP module is
enabled for the user's subscription. Sub-accounts (Unit Managers, Scanners and Readers)
must have the "Manage compliance" permission.
Sample 1 - Select SCAP Scan by Scan ID
Use the scan_id parameter to select an SCAP scan by scan ID. (A scan ID or reference
number is required.)
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl"
"https://qualysapi.qualys.com/api/2.0/fo/asset/host/cyberscope/fdc
c/scan/?scan_id=4244823&organisation_name1=Name1&organisation_name
2=Name2&organisation_name3=Name3"
To obtain the SCAP scan ID, log into the Qualys application and go to PC/SCAP > Scans >
SCAP Scans to view the SCAP scans in your account. Hover over the SCAP scan that you’re
interested in and view the scan results (select View from the Quck Actions menu). You’ll
see the scan results URL in your browser and the scan ID value appears in the "id"
parameter, as shown in this sample URL:
https://qualyguard.qualys.com/fo/report/fdcc/fdcc_scan_result.php?
id=4297720
590
Chapter 13 - Compliance
SCAP Cyberscope Report
Create a Cyberscope report using scan results data saved for a particular SCAP policy in
the user’s account. A policy ID is required as input. These parameters allow users to
customize the required “OrganisationName” elements in the XML report:
organisation_name1, organisation_name2, and organisation_name3.
The service uses automatic SCAP policy data for a selected policy and reports this in the
datapoint <sr:DataPoint id:"configuration_management_agency_deviations">. The
services uses the evidence data for the special rule "security_patches_up_to_date" and
reports this in the datapoint <sr:DataPoint
id:"vulnerability_management_product_vulnerabilities">.
Permissions: Users have permission to run this API function when the SCAP module is
enabled for the user's subscription and sub-accounts (Unit Managers, Scanners and
Readers) have the "Manage compliance" permission.
Sample 1 - Select an SCAP Policy
Use the policy_id parameter to select an SCAP policy. Hosts in the policy will be included
in the report unless filters are specified using the parameter ips and/or as_ids.
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl"
"https://qualysapi.qualys.com/api/2.0/fo/asset/host/cyberscope/fdc
c/policy/?policy_id=30231&organisation_name1=Name1&organisation_na
me2=Name2&organisation_name3=Name3"
To obtain the SCAP policy ID, log into the Qualys application and go to PC/SCAP > Policies
to view the policies in your account. Hover over the SCAP policy that you’re interested in
and edit it (select Edit from the Quck Actions menu). You’ll see the policy editor URL in
your browser and the policy ID value appears in the "id" parameter, as shown in this
sample URL:
591
Chapter 13 - Compliance
SCAP Cyberscope Report
https://qualyguard.qualys.com/fo/fdcc/edit_policy.php?id=12345&re
fresh_parent=1
Create a Cyberscope report using the SCAP scan data saved for all the SCAP policies in the
subscription and also the automatic VM scan data saved in the subscription. You must
enter IPs/ranges and/or asset group IDs as input. These parameters allow users to
customize the required “OrganisationName” elements in the XML report:
organisation_name1, organisation_name2, and organisation_name3.
The service uses SCAP scan data for all the SCAP policies in the subscription and reports
this in the datapoint <sr:DataPoint id:"configuration_management_agency_deviations">.
This datapoint will include multiple Benchmark Data sections, one for each policy. Also
the service uses the automatic VM data for applicable IPs (IPs in SCAP policies) and reports
this in the datapoint <sr:DataPoint
id:"vulnerability_management_product_vulnerabilities">.
Permissions: Users have permission to run this API function when the SCAP module is
enabled for the user's subscription. Sub-accounts (Unit Managers, Scanners, and Readers)
will view only data for IP addresses that their accounts have access to.
Sample 1 - Select Hosts by IP
Use the ips parameter to select hosts by IP/range. You can enter a single IP, multiple IPs
and/or IP ranges using the ips parameter. Multiple entries are comma separated. (This
parameter and/or ag_ids is required.)
592
Chapter 13 - Compliance
SCAP Cyberscope Report
It’s possible to select hosts by entering a combination of IPs/ranges and asset group IDs.
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl"
"https://qualysapi.qualys.com/api/2.0/fo/asset/host/cyberscope/?ip
s=10.10.24.52,10.10.25.2-
10.10.25.255&ag_ids=503424,503430&organisation_name1=Name1&organis
ation_name2=Name2&organisation_name3=Name3"
593
Chapter 13 - Compliance
SCAP ARF Report
Create a SCAP scan report in Asset Reporting Format (ARF), a requirement in the SCAP 1.2
Specifications from NIST.
Permissions - Users have permission to run this API function when the SCAP module is
enabled for the user's subscription. Sub-accounts (Unit Managers, Scanners and Readers)
must have the "Manage compliance" permission.
Input parameters:
Parameter Description
scan_id={value} (Required) The scan ID for a finished SCAP scan.
ips={value} (Optional) Use this parameter if you want to include only certain
IP addresses in the report. You can enter a single IP, multiple IPs
and/or ranges. Multiple entries are comma separated.
ips_network_id={value} (Optional and valid only when the Network Support feature is
enabled and the policy has SCAP 1.2 content) Use this parameter
to restrict the report’s target to the IPs specified in the “ips”
parameter (“ips_network_id” is valid only when “ips” is specified
in the same request).
How do I find the scan ID? You’ll see the scan ID in the Qualys user interface, when
viewing SCAP scan results. In the scan results window’s title bar you’ll see the report URL
with its ID number in the “id” parameter, like this:
https:///qualyguard.qualys.com/fo/report/fdcc/fdcc_scan_result.php?id=3362251
API Request:
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -X POST -d
"scan_id=3362251&ips=10.10.10.1-10.10.10.10"
"https://qualysapi.qualys.com/api/2.0/fo/compliance/scap/arf/"
XML Output:
The XML output is compliant with the ARF 1.1 Schema. Show me this schema
594
Chapter 13 - Compliance
SCAP Policy List
View a list of SCAP policies visible to the user. Optional input parameters support filtering
the policy list output.
Permissions
Input Parameters
Parameter Description
action=list (Required)
echo_request={0|1} (Optional) Show (echo) the request’s input parameters (names
and values) in the XML output. When unspecified, parameters
are not included in the XML output. Specify 1 to view parameters
in the XML output.
595
Chapter 13 - Compliance
SCAP Policy List
Parameter Description
details={Basic|All|None} (Optional) Show the requested amount of host information for
each host. A valid value is:
Basic - (default) Includes all SCAP policy details except the asset
group list and SCAP file list
All - includes all SCAP policy details
None - includes SCAP policy ID and title
ids={value} (Optional) Show only certain SCAP policy IDs/ranges. One or
more policy IDs/ranges may be specified. Valid host IDs are
required. Multiple entries are comma separated. A policy ID
range is specified with a hyphen (for example, 190-400).
id_min={value} (Optional) Show only SCAP policies which have a minimum SCAP
policy ID value. A valid SCAP policy ID is required.
id_max={value} (Optional) Show only SCAP policies which have a maximum
SCAP policy ID value. A valid SCAP policy ID is required.
DTD
<platform API server>/api/2.0/fo/compliance/fdcc_policy/fdcc_policy_list_output.dtd
<FDCC_POLICY_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2012-07-19T22:10:16Z</DATETIME>
<FDCC_POLICY_LIST>
<FDCC_POLICY>
<ID>10235</ID>
<TITLE><![CDATA[XP policy]]></TITLE>
<DESCRIPTION><![CDATA[This benchmark has been created to
assist IT professionals, in particular Windows XP system
administrators and information security personnel, in effectively
securing Windows XP Professional SP2 systems.]]></DESCRIPTION>
<BENCHMARK><![CDATA[FDCC-Windows-XP]]></BENCHMARK>
<BENCHMARK_PROFILE><![CDATA[federal_desktop_core_configuration_ver
sion_1.2.1.0]]></BENCHMARK_PROFILE>
<BENCHMARK_STATUS_DATE>2009-04-
08T00:00:00Z</BENCHMARK_STATUS_DATE>
<VERSION><![CDATA[v1.2.1.0]]></VERSION>
<TECHNOLOGY><![CDATA[Windows XP Desktop]]></TECHNOLOGY>
<NIST_PROVIDED><![CDATA[No]]></NIST_PROVIDED>
596
Chapter 13 - Compliance
SCAP Policy List
<CREATED>
<DATETIME>2012-07-18T23:03:35Z</DATETIME>
<BY>USERNAME</BY>
</CREATED>
<LAST_MODIFIED>
<DATETIME>2012-07-18T23:03:35Z</DATETIME>
<BY>USERNAME</BY>
</LAST_MODIFIED>
<ASSET_GROUP_LIST>
<ASSET_GROUP>
<ID>414242</ID>
<TITLE><![CDATA[10.10.10.40]]></TITLE>
</ASSET_GROUP>
<ASSET_GROUP>
<ID>414942</ID>
<TITLE><![CDATA[10 range]]></TITLE>
</ASSET_GROUP>
<ASSET_GROUP>
<ID>419582</ID>
<TITLE><![CDATA[10.10.10.29]]></TITLE>
</ASSET_GROUP>
<ASSET_GROUP>
<ID>419702</ID>
<TITLE><![CDATA[10.10.10.28-16-191]]></TITLE>
</ASSET_GROUP>
</ASSET_GROUP_LIST>
<FDCC_FILE_LIST>
<FDCC_FILE>
<FILE_NAME><![CDATA[fdcc-winxp-xccdf.xml]]></FILE_NAME>
<FILE_HASH><![CDATA[0c1a49c4ca47187995b543cfdcf35783]]></FILE_HASH
>
</FDCC_FILE>
<FDCC_FILE>
<FILE_NAME><![CDATA[fdcc-winxp-cpe-
oval.xml]]></FILE_NAME>
<FILE_HASH><![CDATA[f397b9068b3881ef2a35c948326e6e4e]]></FILE_HASH
>
</FDCC_FILE>
<FDCC_FILE>
<FILE_NAME><![CDATA[fdcc-winxp-cpe-
dictionary.xml]]></FILE_NAME>
<FILE_HASH><![CDATA[333b9b03961c58e65263bc86b4e0cdef]]></FILE_HASH
>
597
Chapter 13 - Compliance
SCAP Policy List
</FDCC_FILE>
<FDCC_FILE>
<FILE_NAME><![CDATA[fdcc-winxp-oval.xml]]></FILE_NAME>
<FILE_HASH><![CDATA[d1cf1f195bb58f295ca4b17dea2f99f0]]></FILE_HASH
>
</FDCC_FILE>
<FDCC_FILE>
<FILE_NAME><![CDATA[fdcc-winxp-
patches.xml]]></FILE_NAME>
<FILE_HASH><![CDATA[4ae1b306344ef564c5da479a4a3d7f53]]></FILE_HASH
>
</FDCC_FILE>
</FDCC_FILE_LIST>
</FDCC_POLICY>
<FDCC_POLICY>
...
<FDCC_POLICY_LIST>
...
<FDCC_POLICY_LIST_OUTPUT>
598
Chapter 14 - Users and Activity Log
User List
User List
/msp/user_list.php
[GET] [POST]
View the users in the subscription. XML responses provides details about each user such
as the user’s login ID, account info, assigned asset groups, permissions. Session based
authentication is not supported using this API.
When the API request is made by a Manager or Unit Manager, the last login date for each
user is provided in the XML results. This is the most recent date and time the user logged
into the service. For a Manager, the last login date appears for all users in the subscription.
For a Unit Manager, the last login date appears for all users in the Unit Manager’s same
business unit.
Permissions - Managers and Administrators can view all users in subscription. See Unit
Manager Permissions for full details.
Express Lite - This API is available to Express Lite users.
599
Chapter 14 - Users and Activity Log
User List
If “Restrict view of user information for users outside of business unit” is selected, then
Unit Managers have a restricted view and cannot see any details for users who are not in
their assigned business unit. For example, Unit Managers in Business Unit A would not be
able to view general information or asset group assignments for users in Business Unit B.
The following table describes the amount of detail visible to Unit Managers for different
types of users based on whether the Unit Manager has a restricted or unrestricted view.
Amount of Detail Visible
User Type Being Viewed Unrestricted View Restricted View
Unit Manager, Scanner or Reader in the business unit Full Full
Scanner or Reader not in the business unit Partial None
Unit Manager not in the business unit Partial None
Manager Partial None
Full user account details include: user login, general information, assigned asset groups,
user role, business unit, the Unit Manager Point of Contact (POC), the Manager POC,
extended permissions, email notifications and user interface style.
With a Partial view, the following details are not visible: user login, extended permissions,
email notifications and user interface style.
Input Parameters
Parameter Description
external_id_contains={strin (Optional) Show only user accounts with an external
g} ID value that contains a certain string. The string you
specify can have a maximum of 256 characters. The
characters can be in uppercase, lowercase or mixed
case (the service performs case sensitive matching).
HTML or PHP tags cannot be included.
DTD
<platform API server>/user_list_output.dtd
600
Chapter 14 - Users and Activity Log
Add/Edit User
Add/Edit User
/msp/user.php
[GET] [POST]
Add a user account or edit an existing account. You can add users to the “Unassigned”
business unit or an existing, custom business unit. For each new account (except when
the user role is Contact) the service automatically generates login credentials, including a
login ID and “strong” password.
Permissions -Mangers can add/edit user accounts in any business unit. Unit Managers can
add/edit users in their own business unit. Administrators can add/edit user all accounts
except Manager and Administrator user.
Express Lite - This API is available to Express Lite users. A total of 3 users can be added per
subscription.
601
Chapter 14 - Users and Activity Log
Add/Edit User
Input Parameters
Parameter Description
action=add|edit A flag indicating an add or edit request. Specify “add” to
add a new user, or “edit” to edit an existing user.
Add request: Required
Edit request: Required
login={login} Specifies the Qualys user login of the user account you
wish to edit. This parameter is invalid for an add request.
Add Request: Invalid
Edit Request: Required
602
Chapter 14 - Users and Activity Log
Add/Edit User
Permissions
Parameter Description
user_role={role} Specifies the user role. A valid value is: manager,
unit_manager, scanner, reader, contact or administrator.
The first user added to a new custom business unit must
be unit_manager.
Add request: Required (Invalid for Express Lite user)
Edit request: Invalid
business_unit={title} Specifies the user’s business unit. A valid value is
“Unassigned”, or the title of an existing custom business
unit. Note a custom business unit may be added using the
QualysGuard user interface.
Add request: Required (Invalid for Express Lite user)
Edit request: Invalid
asset_groups={grp1,grp2...} Specifies the asset groups assigned to the user, when the
user role is Scanner, Reader or Contact. Multiple asset
groups are comma separated. This parameter is invalid
when the user role is Manager or Unit Manager.
Add request: Optional
Edit request: Optional
603
Chapter 14 - Users and Activity Log
Add/Edit User
Parameter Description
ui_interface_style={style} Specifies the user interface style. A valid value is:
standard_blue, navy_blue, coral_red, olive_green,
accessible_high_contrast. When adding a new user, the
default is set to standard_blue.
Add request: Optional
Edit request: Optional
General Information
Parameter Description
first_name={name} Specifies the user's first name. The name may include a
maximum of 50 characters.
Add request: Required
Edit Request: Optional
last_name={name} Specifies the user's last name. The name may include a
maximum of 50 characters.
Add request: Required
Edit request: Optional
title={title} Specifies the user's job title. The title may include a
maximum of 100 characters.
Add request: Required
Edit request: Optional
phone={value} Specifies the user's phone number. This value may
include a maximum of 40 characters.
Add request: Required
Edit request: Optional
fax={value} The user's FAX number. This value may include a
maximum of 40 characters.
Add request: Optional
Edit request: Optional
email={value} Specifies the user's email address. The address must be a
properly formatted address with a maximum of 100
characters.
Add request: Required
Edit request: Optional
address1={value} Specifies the user’s address line 1. This value may include
a maximum of 80 characters.
Add request: Required
Edit request: Optional
604
Chapter 14 - Users and Activity Log
Add/Edit User
Parameter Description
address2={value} Specifies the user’s address line 2. This value may include
a maximum of 80 characters.
Add request: Optional
Edit request: Optional
city={value} Specifies the user’s city. This value may include a
maximum of 50 characters.
Add request: Required
Edit request: Optional
country={code} Specifies the user’s country code. See “Sample - Add user”
to find an appropriate country code.
Add request: Required
Edit request: Optional
state={code} Specifies the user’s state code. A valid value depends on
the country code specified for the country parameter.
605
Chapter 14 - Users and Activity Log
Add/Edit User
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE USER_OUTPUT SYSTEM
"https://qualysapi.qualys.com/user_output.dtd">
<USER_OUTPUT>
<API name="user.php" username="sabkl_av1" at="2018-07-
20T22:54:25Z" />
<RETURN status="SUCCESS">
<MESSAGE>quays_cw4 user has been successfully
created.</MESSAGE>
</RETURN>
</USER_OUTPUT>
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE USER_OUTPUT SYSTEM
"https://qualysapi.qualys.com/user_output.dtd">
<USER_OUTPUT>
<API name="user.php" username="sabkl_av1" at="2018-07-
20T23:06:35Z" />
<RETURN status="SUCCESS">
<MESSAGE>quays_ch user has been successfully
updated.</MESSAGE>
</RETURN>
</USER_OUTPUT>
606
Chapter 14 - Users and Activity Log
Add/Edit User
Sample - External ID
Add the external ID “Qualys123” to the existing user account “qualys_ab5” when that
account does not already have an external ID:
https://qualysapi.qualys.com/msp/user.php?action=edit&
login=qualys_ab5&external_id=Qualys123
Add the external ID “Qualy123” to the existing user account “qualys_ab” when that
account already has an external ID:
https://qualysapi.qualys.com/msp/user.php?action=edit&
login=qualys_ab5&external_id=Qualys123
Delete the external ID currently defined for the user account “qualys_ab5”:
https://qualysapi.qualys.com/msp/user.php?action=edit&
login=qualys_ab5&external_id=
Looking for timezone codes? Use the time zone code list function to request the list:
<platform API server>/msp/time_zone_code_list.php
DTD
<platform API server>/user_output.dtd
607
Chapter 14 - Users and Activity Log
Add/Edit User
608
Chapter 14 - Users and Activity Log
Add/Edit User
Country codes
Afghanistan | Albania | Algeria | Andorra | Angola | Anguilla | Antartica | Antigua and Barbuda |
Argentina | Armenia | Aruba |Australia | Austria | Azerbaijan | Bahamas | Bahrain | Bangladesh |
Barbados | Belarus | Belgium | Belize | Benin | Bermuda | Bhutan | Bolivia | Bosnia-Herzegovina |
Botswana | Bouvet Island | Brazil | British Indian Ocean Territory | Brunei Darussalam | Bulgaria |
Burkina Faso | Burundi | Cambodia | Cameroon | Canada | Cape Verde | Cayman Islands |
Central African Republic | Chad | Chile | China | Christmas Island | Cocos (Keeling) Islands | Colombia |
Comoros | Congo | Cook Islands | Costa Rica | Cote D'Ivoire | Croatia | Cuba | Cyprus | Czech Republic |
Denmark | Djibouti | Dominica | Dominican Republic | East Timor | Ecuador | Egypt | El Salvador |
Equatorial Guinea | Estonia | Ethiopia | Faeroe Islands | Falkland Islands (Malvinas) | Fiji | Finland |
France | French Guiana | French Polynesia | French Southern Territories| Gabon | Gambia | Georgia |
Germany | Ghana | Gibraltar | Greece | Greenland | Grenada | Guadeloupe | Guatemala | Guernsey, C.I. |
Guinea | Guinea-Bissau | Guyana | Haiti | Heard and McDonald Islands | Honduras | Hong Kong |
Hungary | Iceland | India | Indonesia | Iran (Islamic Republic of) | Iraq | Ireland | Isle of Man | Israel |
Italy | Jamaica | Japan | Jersey, C.I. | Jordan | Kazakhstan | Kenya | Kiribati | Korea | Kuwait |
Kyrgyzstan | Lao Peoples Democratic Republi | Latvia | Lebanon | Lesotho | Liberia |
Libyan Arab Jamahiriya | Liechtenstein | Lithuania | Luxembourg | Macau | Macedonia | Madagascar|
Malawi | Malaysia | Maldives | Mali | Malta | Marshall Islands | Martinique | Mauritania | Mauritius |
Mexico | Micronesia, Fed. States of | Moldova, Republic of | Monaco | Mongolia | Montserrat | Morocco |
Mozambique | Myanmar | Namibia | Nauru | Nepal | Netherland Antilles | Netherlands |
Neutral Zone (Saudi/Iraq) | New Caledonia | New Zealand | Nicaragua | Niger | Nigeria | Niue |
Norfolk Island | Northern Mariana Islands | Norway | Oman | Pakistan | Palau | Panama Canal Zone |
Panama | Papua New Guinea | Paraguay | Peru | Philippines | Pitcairn | Poland | Portugal | Puerto Rico |
Qatar | Reunion | Romania | Russia | Rwanda | Saint Kitts and Nevis | Saint Lucia | Samoa | San Marino |
Sao Tome and Principe | Saudi Arabia | Senegal | Seychelles | Sierra Leone | Singapore | Slovak Republic |
Slovenia | Solomon Islands | Somalia | South Africa | Spain | Sri Lanka | St. Helena |
St. Pierre and Miquelon | St. Vincent and the Grenadines | Sudan | Suriname |
Svalbard and Jan Mayen Islands | Swaziland | Sweden | Switzerland | Syrian Arab Republic | Taiwan |
Tajikistan | Tanzania, United Republic of | Thailand | Togo | Tokelau | Tonga | Trinidad and Tobago |
Tunisia | Turkey | Turkmenistan | Turks and Caicos Islands | Tuvalu | U.S.Minor Outlying Islands |
Uganda | Ukraine | United Arab Emirates | United Kingdom | United States of America | Uruguay |
Uzbekistan | Vanuatu | Vatican City State | Venezuela | Vietnam | Virgin Islands (British) |
Wallis and Futuna Islands | Western Sahara | Yemen | Yugoslavia | Zaire | Zambia | Zimbabwe
State codes
609
Chapter 14 - Users and Activity Log
User Registration Process
610
Chapter 14 - Users and Activity Log
Accept Qualys EULA
Allows Qualys users to complete the registration process and accept the Qualys End User
License Agreement (EULA) on behalf of their customers. This function provides
programmatic acceptance of the Qualys EULA.
A new user can complete the registration process and accept the Qualys EULA through the
Qualys user interface as long as their account is granted the GUI access method. (Note a
new user created using the user.php function is automatically granted the GUI and API
access methods.) Optionally, a new user can complete the registration and accept the
Qualys EULA using the acceptEULA.php function. See User Registration Process
A Web application that allows Qualys EULA acceptance can be setup as follows. Inside the
third party web application, a developer can setup a Web form that displays the Qualys
EULA and has an “I Accept” button. A new Qualys user opens the Web form in a browser,
reads the EULA description and clicks “I Accept” in the Web form. The third party’s
program submits an HTTP request to the Qualys API server using the acceptEULA.php.
Along with the acceptEULA.php URL, the application must send Qualys user account
credentials (login and password) as part of the HTTP request.
Permissions - Any user with permission to log in to Qualys can complete the registration
and accept the EULA.
XML output:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE GENERIC_RETURN SYSTEM
"https://qualysapi.qualys.com/generic_return.dtd">
<GENERIC_RETURN>
<API name="acceptEULA.php" username="rob" at="2018-05-
10T13:44:23" />
<RETURN status="SUCCESS">
TNC accepted within MSP
</RETURN>
</GENERIC_RETURN>
DTD
<platform API server>/generic-return.dtd
611
Chapter 14 - Users and Activity Log
Activate/Deactivate Users
Activate/Deactivate Users
/msp/user.php
[GET] [POST]
Activate and deactivate user accounts. A user with inactivate status can be activated. A
user with active status can be deactivated. Session based authentication is not supported
using this API.
These actions correspond to the activate/deactivate options in the Qualys UI. Note new
accounts are activated by default after the user completes the account activation process
(registration) by logging into the service for the first time.
Permissions -Mangers can activate/deactivate all users in subscription. Unit Managers can
activate/deactivate users in their own business unit. Administrators can
activate/deactivate all users except Manager and Administrator user.
Express Lite - This API is available to Express Lite users.
Input Parameters
Parameter Description
action=activate|deactivate (Required) A flag indicating the desired action. Specify
“activate” to activate a user account that has an
“Inactive” status, or specify “deactivate” to deactivate a
user account that has an “Active” status. When an
account is deactivated, the user’s account settings will
not be deleted.
Samples
Deactivate the user account “qualys_ab3” (and this account has an “Active status):
https://qualysapi.qualys.com/msp/user.php?action=deactivate&
login=qualys_ab3
Activate the user account “qualys_ab3” (and this account has an “Inactive” status):
https://qualysapi.qualys.com/msp/user.php?action=activate&
login=qualys_ab3
DTD
<platform API server>/user_output.dtd
612
Chapter 14 - Users and Activity Log
User Password Change
Change passwords for all or some users in the same subscription. Many Qualys customers
have an internal security policy requirement to change passwords for users at a particular
time interval. Changing password for multiple users at once as batch process is supported.
New passwords are automatically generated by the service.
It’s possible to change passwords for user accounts with a status of “active”, “inactive” or
“pending activation”. It’s not possible to change passwords for deleted accounts. Since
Contact users do not have login access to Qualys, it’s not possible to change passwords for
Contacts.
A password change API request returns a password change XML report indicating the user
accounts affected and whether password changes were made for each account. A success
message is included when passwords were changed on all target accounts. A warning
message is included if passwords for any of the target accounts could not be changed.
Upon error, an error message is included.
By default the password changes made by the password_change.php API causes the
service to automatically send each affected user an email which notifies them of the
password change. If you do not wish users to receive this email notification, you have the
option to return the user login ID and password for affected users as XML value pairs in
the password change report. To do this, make a password_change.php request and specify
the email=0 parameter. If you make such a request on an account with the status
“pending activation”, the function automatically assigns the “active” status since the login
credentials are available in the XML report.
Permissions - Managers can change passwords for all users in subscription, except the
user making the request. Unit Managers can change passwords for all users in same
business unit, except the user making the request. Administrators can change passwords
for all users in subscription, except Manager and the user making the request.
Express Lite - This API is available to Express Lite users.
613
Chapter 14 - Users and Activity Log
User Password Change
Input Parameters
Parameter Description
user_logins={value} (Required) Specifies one or more QualysGuard user login
IDs of target user accounts. Multiple user login IDs are
comma separated. Specify user_logins=all to change the
password for all users in the user’s account, except the
requesting user. See Permissions
email={0|1} (Optional) Specifies whether users will receive an email
notification alerting them to the password change.
Samples
Make a password change request for two accounts and send affected users an email
notification including a secure link to their new password:
https://qualysapi.qualys.com/msp/password_change.php?
user_logins=acme_jr,acme_dd
Make a password change request for all users in the API user’s account (except the API
user) and return the login ID and password for each affected user in the password change
XML response:
https://qualysapi.qualys.com/msp/password_change.php?
user_logins=all&email=0
DTD
<platform API server>/password_change_output.dtd
614
Chapter 14 - Users and Activity Log
Export User Activity Log
Input Parameters
Parameter Description
action=list (Required)
user_action={value} (Optional) You can filter the output based on the
actions. For example, login (for user login), launch (for
scan launched), finished (for scan finished), etc.
The actions which are included in the output depend
on the user who runs the API. Managers see all actions
taken by all users. Unit Managers see actions taken by
users in their business unit. Scanners and Readers see
their own actions only.
action_details={value} (Optional) Filter on further information about the user
actions. For example, for the action “error”, you can
filter by the error details “No connection from scanner
appliance”.
username={value} (Optional) The name of the user who performed the
action. Usernames are included in the output only if
the user running the API is a Manager or a Unit
Manager. A Unit Manager can see usernames only for
users in the Unit Manager’s hierarchy.
since_datetime={value} (Optional) Specify the date to include the activity log
starting from that point in time. Date must be in the
format YYYY-MM-DD HH:ii:ss, and must be less than
or equal to today’s date.
until_datetime={value} (Optional) Specify the date to include the activity log
until a specific point in time. Date must be in the
format YYYY-MM-DD HH:ii:ss, and must be more than
or equal to since_datetime, and less than or equal to
today’s date.
615
Chapter 14 - Users and Activity Log
Export User Activity Log
Parameter Description
user_role={value} (Optional) A Manager or Unit Manager can choose to
export logs for certain user roles instead of all user
roles. Specify this parameter to export logs for users
with certain user roles. Multiple roles are comma
separated.
User roles you can specify:
- Manager
- Unit Manager
- Auditor
- Scanner
- Reader
- KnowledgeBase Only
- Remediation User
- Contact
What logs are exported by default? For a Manager logs
are exported for all users (all user roles) by default. For
a Unit Manager logs are exported only for users (all
user roles) in the Unit Manager’s hierarchy (i.e.
business unit).
output_format=CSV (Optional) CSV (default)
truncation_limit={value} (Optional) Limit the number of log records to include in
the CSV output.
616
Chapter 14 - Users and Activity Log
Export User Activity Log
/api/2.0/fo/activity_log/index.php","saand_rn","Manager","10.113.1
95.136"
"2017-02-02T13:27:27Z","request","auth","API:
/api/2.0/fo/activity_log/index.php","saand_rn","Manager","10.113.1
95.136"
"2017-02-02T13:26:41Z","request","auth","API:
/api/2.0/fo/activity_log/index.php","saand_rn","Manager","10.113.1
95.136"
"2017-02-02T12:52:43Z","set","host_attribute","comment=[vvv] for
11.11.11.4","saand_rn","Manager","10.113.14.208"
"2017-02-02T12:52:43Z","add","option","11.11.11.4 added to both
VM-PC license","saand_rn","Manager","10.113.14.208"
"2017-02-02T12:50:32Z","create","network","New Network:
'abc'","saand_rn","Manager","10.113.14.208"
617
Appendix A - API Documentation
618
Appendix B - Ports used for scanning
619
Appendix B - Ports used for scanning
34324, 37651, 40412, 40421-40423, 42424, 44337, 47557, 47806, 47808, 49400, 50000-50001,
50505, 50766, 51102, 51107, 51112, 53001, 54320-54321, 57341, 60008, 61439, 61466, 62078,
65000, 65301, 65512
TCP Light Scan (about 160 ports)
11, 13, 15, 17, 19-23, 25, 37, 42, 53, 66, 69-70, 79-81, 88, 98, 109-111, 113, 118-119, 123, 135,
139, 143, 220, 256-259, 264, 371, 389, 411, 443, 445, 464-465, 512-515, 523-524, 540, 548, 554,
563, 580, 593, 636, 749-751, 873, 900-901, 990, 992-993, 995, 1080, 1114, 1214, 1234, 1352,
1433, 1494, 1508, 1521, 1720, 1723, 1755, 1801, 2000-2001, 2003, 2049, 2301, 2401, 2447,
2690, 2766, 3128, 3268-3269, 3306, 3372, 3389, 4100, 4443-4444, 4661-4662, 5000, 5432,
5555-5556, 5631-5632, 5634, 5800-5802, 5900-5901, 6000, 6112, 6346, 6387, 6666-6667, 6699,
7007, 7100, 7161, 7777-7778, 8000-8001, 8010, 8080-8081, 8100, 8888, 8910, 9100, 10000,
12345-12346, 20034, 21554, 32000, 32768-32790
UDP Standard Scan (about 180 ports)
7, 9, 13, 17, 19, 21, 37, 53, 67-69, 80, 98, 111, 121, 123, 135, 137-138, 161, 177, 371, 389, 407,
443, 445, 456, 464, 500, 512, 514, 517-518, 520, 555, 635, 666, 858, 1001, 1010-1011, 1015,
1024-1049, 1051-1055, 1170, 1194, 1243, 1245, 1434, 1492, 1600, 1604, 1645, 1701, 1807,
1812, 1900, 1978, 1981, 1999, 2001-2002, 2023, 2049, 2115, 2140, 2801, 2967, 3024, 3129,
3150, 3283, 3527, 3700, 3801, 4000, 4092, 4156, 4569, 4590, 4781, 5000-5001, 5036, 5060,
5321, 5400-5402, 5503, 5569, 5632, 5742, 6051, 6073, 6502, 6670, 6771, 6912, 6969, 7000,
7111, 7222, 7300-7301, 7306-7308, 7778, 7789, 7938, 9872-9875, 9989, 10067, 10167, 11000,
11223, 12223, 12345-12346, 12361-12362, 15253, 15345, 16969, 17185, 20001, 20034, 21544,
21862, 22222, 23456, 26274, 26409, 27444, 30029, 31335, 31337-31339, 31666, 31785, 31789,
31791-31792, 32771, 33333, 34324, 40412, 40421-40423, 40426, 47262, 50505, 50766, 51100-
51101, 51109, 53001, 54321, 61466
UDP Light Scan (about 30 ports)
7, 13, 17, 19, 37, 53, 67-69, 111, 123, 135, 137, 161, 177, 407, 464, 500, 517-518, 520, 1434,
1645, 1701, 1812, 2049, 3527, 4569, 4665, 5036, 5060, 5632, 6502, 7778, 15345
620
Appendix C - Scan Results JSON
Per Host
ip, dns, netbios, os, ip_status, qid, title, type, severity, port, protocol,
fqdn, ssl, cve_id, vendor_reference, bugtraq_id, cvss_base, cvss_temporal,
cvss3_base, cvss3_temporal, threat, impact, solution, exploitability,
associated_malware, results, pci_vuln, instance, os_cpe, category, instance
If PCI is Enabled
pci_vuln
Host Stats
target_distribution_across_scanner_appliances
hosts_not_scanned_excluded_host_ip
hosts_not_scanned_host_not_alive_ip
hosts_not_scanned_host_not_alive_dns
hosts_not_scanned_host_not_alive_netbios
hosts_not_scanned_hostname_not_found_ip
hosts_not_scanned_scan_discontinued_ip
hosts_not_scanned_scan_discontinued_netbios_instace_ids
hosts_not_scanned_scan_discontinued_netbios_dns
hosts_not_scanned_scan_discontinued_netbios
hosts_not_scanned_dns_hostname_could_not_be_resolved
hosts_not_scanned_netbios_could_not_be_resolved
no_vulnerabilities_match_your_filters_for_these_hosts
hosts_not_scanned_dns_could_not_be_resolved
hosts_not_scanned_ip_could_not_be_resolved
621
Appendix C - Scan Results JSON
hosts_not_scanned_hostname_not_found_netbios
hosts_not_scanned_hostname_not_found_dns
Scan Cancelled
Scan Job
launch_date, active_hosts, total_hosts, type, status, reference,
scanner_appliance, duration, scan_title, asset_groups, ips, excluded_ips,
option_profile
Host Stats
no_vulnerabilities_match_your_filters_for_these_hosts
host_not_scanned,_scan_canceled_by_user_ip_
host_not_scanned,_scan_canceled_by_administrator_ip_
host_not_scanned,_scan_canceled_by_service_ip_
host_not_scanned,_scan_canceled_by_unknown_ip_
host_not_scanned,_scan_canceled_by_user_dns_
host_not_scanned,_scan_canceled_by_administrator_dns_
host_not_scanned,_scan_canceled_by_service_dns_
host_not_scanned,_scan_canceled_by_unknown_dns_
host_not_scanned,_scan_canceled_by_user_instance_ids_
host_not_scanned,_scan_canceled_by_administrator_instance_ids_
host_not_scanned,_scan_canceled_by_service_instance_ids_
host_not_scanned,_scan_canceled_by_unknown_instance_ids_
host_not_scanned,_scan_canceled_by_user_netbios_
host_not_scanned,_scan_canceled_by_administrator_netbios_
host_not_scanned,_scan_canceled_by_service_netbios_
host_not_scanned,_scan_canceled_by_unknown_netbios_
622
Appendix C - Scan Results JSON
Scan Error
Scan Job
launch_date, active_hosts, total_hosts, type, status, reference,
scanner_appliance, duration, scan_title, asset_groups, ips, excluded_ips,
option_profile
Host Stats
no_vulnerabilities_match_your_filters_for_these_hosts
Host Stats
target_distribution_across_scanner_appliances
hosts_not_scanned_host_not_alive_ip
Scan Paused
Scan Job
launch_date, active_hosts, total_hosts, type, status, reference,
scanner_appliance, duration, scan_title, asset_groups, ips, excluded_ips,
option_profile, network
Per Host
ip, dns, netbios, os, ip_status, qid, title, type, severity, port, protocol,
fqdn, ssl, cve_id, vendor_reference, bugtraq_id, cvss_base, cvss_temporal,
cvss3_base, cvss3_temporal, threat, impact, solution, exploitability,
associated_malware, results, pci_vuln, instance, os_cpe, category
Host Stats
target_distribution_across_scanner_appliances
hosts_not_scanned_host_not_alive_ip
host_not_scanned,_scan_paused_by_service_ip_
no_vulnerabilities_match_your_filters_for_these_hosts
host_not_scanned,_scan_paused_by_user_ip_
host_not_scanned,_scan_paused_by_administrator_ip_
host_not_scanned,_scan_paused_by_service_ip_
host_not_scanned,_scan_paused_by_unknown_ip_
623
Appendix C - Scan Results JSON
host_not_scanned,_scan_paused_by_user_dns_
host_not_scanned,_scan_paused_by_administrator_dns_
host_not_scanned,_scan_paused_by_service_dns_
host_not_scanned,_scan_paused_by_unknown_dns_
host_not_scanned,_scan_paused_by_user_instance_ids_
host_not_scanned,_scan_paused_by_administrator_instance_ids_
host_not_scanned,_scan_paused_by_service_instance_ids_
host_not_scanned,_scan_paused_by_unknown_instance_ids_
host_not_scanned,_scan_paused_by_user_netbios_
host_not_scanned,_scan_paused_by_administrator_netbios_
host_not_scanned,_scan_paused_by_service_netbios_
host_not_scanned,_scan_paused_by_unknown_netbios_
Scan Interrupted
Scan Job
launch_date, active_hosts, total_hosts, type, status, reference,
scanner_appliance, duration, scan_title, asset_groups, ips, excluded_ips,
option_profile, network
Host Stats
no_vulnerabilities_match_your_filters_for_these_hosts
host_not_scanned,_scan_unknown_by_user_ip_
host_not_scanned,_scan_unknown_by_administrator_ip_
host_not_scanned,_scan_unknown_by_service_ip_
host_not_scanned,_scan_unknown_by_unknown_ip_
host_not_scanned,_scan_unknown_by_user_dns_
host_not_scanned,_scan_unknown_by_administrator_dns_
host_not_scanned,_scan_unknown_by_service_dns_
host_not_scanned,_scan_unknown_by_unknown_dns_
624
Appendix C - Scan Results JSON
host_not_scanned,_scan_unknown_by_user_instance_ids_
host_not_scanned,_scan_unknown_by_administrator_instance_ids_
host_not_scanned,_scan_unknown_by_service_instance_ids_
host_not_scanned,_scan_unknown_by_unknown_instance_ids_
host_not_scanned,_scan_unknown_by_user_netbios_
host_not_scanned,_scan_unknown_by_administrator_netbios_
host_not_scanned,_scan_unknown_by_service_netbios_
host_not_scanned,_scan_unknown_by_unknown_netbios_
hosts_not_scanned_excluded_host_dns
hosts_not_scanned_excluded_host_instance_ids
hosts_not_scanned_excluded_host_netbios
hosts_not_scanned_host_not_alive_dns
hosts_not_scanned_host_not_alive_instance_ids
625
Appendix C - Scan Results JSON
626
Appendix D - Error codes / descriptions
627
Appendix D - Error codes / descriptions
628
Index G
GET method 10
A
H
add IP addresses 351
API limits 11 header parameter 16
Application Server authentication 213 host detection list 366
asset search report 463 host list 357
authentication 8, 206 HTTP authentication 220
authentication to your account 16 HTTP Expires header 20
B I
basic HTTP authentication 16 IBM DB2 authentication 223
invalid tickets 508
C IP list 349
IPv4 to IPv6 asset mapping records
cancel report 457 remove 429
characters in URLs 10 IPv6 asset mapping record list 427
compliance control list 521
compliance policy export 541 L
compliance policy import 555
compliance policy list 537 launch compliance scan 38
compliance policy merge 557 launch compliance scan on EC2 assets 39
compliance policy, manage asset groups launch report 441
563 launch scorecard report 450
compliance posture information 566 launch VM scan 28
compliance scan list 35 launch VM scan on EC2 assets 30
control criticality 580
country codes 609 M
Cyberscope report 590
manage compliance scans 41
D manage VM scans 32
maps 93
date format 10 MariaDB authentication 236, 246
delete report 461 MongoDB authentication 240
discovery scans 93 MS SQL authentication 251
Docker authentication 217 MySQL authentication 259
download report 458
N
E
network
Expires header 20 assign appliance to 435
create 432
update 434
629
network list 431 reports
network maps 93 date format 10
network support 431 decoding reports 11
O S
option profiles scan authentication
export 123 Application Server 213
for compliance 162 Docker 217
for PCI 154 HTTP 220
for VM 138 IBM DB2 223
import 132 MariaDB 236, 246
Oracle authentication 266 MongoDB 240
Oracle Listener authentication 271 MS SQL 251
Oracle WebLogic authentication 273 MySQL 259
overdue tickets 508 Oracle 266
Oracle Listener 271
P Oracle WebLogic 273
Palo Alto Firewall 276
Palo Alto Firewall authentication 276 PostgreSQL 280
POST method 10 SNMP 286
PostgreSQL authentication 280 Sybase 291
Unix 297
Q VMware 304
Windows 307, 313
Qualys scan list parameters 67
user account 8 scan schedules 47
Qualys End User Agreement (EULA) 611 scanner appliances
Qualys EULA 611 list 103
Qualys Support 7 manage virtual 108
Qualys user account 8 replace 116
update physical 113
R SCAP ARF report 594
SCAP Cyberscope Report 590
report
SCAP policy list 595
asset search 463
SCAP scan list 36
cancel 457
scheduled report, launch 463
Cyberscope report 590
scheduled reports list 462
delete 461
session based authentication 17
download 458
session login 20
SCAP ARF report 594
session logout 22
scorecard report 450
session timeout 20
report DTDs, most recent 11
share PCI scan 89
report, launch 441
SNMP authentication 286
special characters in URLs 10
630
state codes
Australia 609
Canada 610
India 610
United States of America 609
Sybase authentication 291
T
ticket state/status 508
U
Unix authentication 297
updated IP addresses 353
URL elements 11
URL encoded variables 10
user account
login credentials 8
user management functions
acceptEULA.php 611
user.php function
country codes 609
state codes 609, 610
UTF-8 encoding 10
V
VM scan list 25
VM scan statistics 81
VM scan summary (hosts not scanned) 84
VM scans 25
VMware authentication 304
W
Windows authentication 307, 313
631