Skip to main content

Illumio Core 23.5 Administration Guide

Upload Vulnerability Data

This section describes how to use the ilo commands to upload vulnerability data to the PCE for analysis in Illumination.

After uploading the data, you can use Vulnerability Maps in the PCE web console to gain insights into the exposure of vulnerabilities and attack paths across your applications running in data centers and clouds. See the "Vulnerability Maps" topic in the Visualization Guide for information.

Add the License for Vulnerability Data Upload

An Illumio Core Vulnerability Maps license is required to upload vulnerability data into the Illumio PCE. For information about obtaining the license, contact Illumio Customer Support.

You are provided with a license file named license.json. After you have obtained your license key, store it in a secure location.

Note

Before adding the license, you must first authenticate to the PCE.

To add the license, you must be the organization owner or a be a user who has owner privileges.

Use the following command to inform the PCE of your valid license:

ilo license create --license-file "path_to_license_file/license.json" --feature "feature_name" [debug [v | verbose] trace]

Where:

What

Required?

Description

"path_to_license_file/license.json"

Yes

The quoted path to the license.json file from Illumio

Example: "~/secretDir/license.json"

"feature_name"

Yes

The quoted string "vulnerability_maps", which specifies the feature name the license enables

debug

No

Enable debugging

v | verbose

No

For verbose logging

trace

No

Enable API trace

Vulnerability Data Upload Process

On upload, the CLI Tool associates a workload's IP addresses with corresponding vulnerabilities identified for that workload.

Using API to Download Vulnerability Data

Starting from the release of CLI 1.4.0, Qualys supports API downloads with some minor differences in options.

For the release CLI 1.4.1, it is suggested that users use an API key instead of a login session while using Qualys API download.

For the release CLI 1.4.2 for Tenable, the most reliable way to provide authentication is through API keys instead of username/password. If customers observe any authentication issues while using Tenable SC API upload, they are advised to use API keys.

There are 2 ENV variables to set up the Tenable SC API keys which are used for authentication:

TSC_ACCESS_KEY

TSC_SECRET_KEY

The API connects directly to the cloud instance of Tenable or Qualys and the vulnerability tool then scans new vulnerabilities and downloads them into the PCE.

Users can also set up cron jobs that run in the desired intervals and check the state of the vulnerability scanner.

Qualys and Tenable scanners work in a similar way, using the username and password and similar options.

Automating Vulnerability Imports from Tenable-SC

Users of Illumio vulnerability maps can automate the import of vulnerabilities from tenable-sc using a script.

Illumio CLI supports the API username and password as environment variables or a cmd line switch (such as --api-password).

The ILO-CLI tool was updated to add a switch for --api-user.

Kinds of Vulnerability Data Uploads

There are two kinds of upload: non-authoritative and authoritative.

  • Non-authoritative: This is the default. A non-authoritative upload:

    • Appends incoming data to any previously loaded records

    • Accumulates records for the same workloads without regard to duplicates.

    You can repeat the non-authoritative upload as many times as you like until you are satisfied with the results.

    advanced_cli_upload _vulnerability.PNG
  • Authoritative: You indicate authoritative data with the -authoritative option. An authoritative upload:

    • Overwrites any previously uploaded records for workloads matched to the incoming records.

    • Eliminates duplicate records.

    • Adds new records not previously written by other uploads.

    You can repeat the authoritative upload as many times as you like until you are satisfied with the results.

After either kind of upload, you can examine the uploaded data with the CLI Tool or the PCE web console. See “Vulnerability Maps” in the Visualization Guide for information.

Supported Vulnerability Data Sources

The CLI Tool works with vulnerability data from the following sources.

  • Nessus Professional™

  • Qualys®

  • Tenable Security Center

  • Tenable.io

  • Rapid7©

Note

Before uploading Rapid7 data to the PCE, export the data from Rapid7 to Qualys format with Qualys XML Export.

Vulnerability Data Formats

In the CLI 1.4.0, 1.4.1 and 1.4.2 releases, Illumio supports the following report formats:

  • For tenable-io: API, CSV

  • For tenable-sc: API, CSV

  • For nessus-pro: XML

  • For qualys: API, XML

Common Vulnerabilities and Exposures (CVE)

Vulnerabilities are defined by Common Vulnerabilities and Exposures (CVE), with identifiers and descriptive names from the U.S. Department of Homeland Security National Cybersecurity Center.

Vulnerability Scores

Illumio computes a vulnerability score, which measures the vulnerability of your entire organization. The score is displayed by the ilo vulnerability list command for all vulnerabilities or individual vulnerabilities via the vulnerability identifier.

Vulnerability Identifier

An uploaded vulnerability has an identifier, as shown in the example below. The vulnerability identifier is tied to a specific CVE. You use this identifier with --reference-id option to examine specific uploaded vulnerabilities. See Example – List Single Uploaded Vulnerability for information.

The following are examples of vulnerability identifiers.

  • Nessus Professional: nessus-65432

  • Qualys: qualys-23456

  • Rapid7: qualys-98765. Because Rapid7 data is first exported from Rapid7 in Qualys format, it is given a Qualys identifier when uploaded to the PCE.

Vulnerabilities for Unmanaged Workloads

You can upload vulnerabilities for unmanaged workloads. However, unmanaged workloads do not have any vulnerability score or associated CVE. This information becomes available if the unmanaged workload is later changed to managed.

Prerequisites for Vulnerability Data Upload

Before uploading vulnerability data, ensure you are ready with the following requirements.

  • An Illumio Vulnerability Maps license is required to upload vulnerability data to the PCE. See Add the License for Vulnerability Data Upload for information.

  • XML-formatted vulnerability data files from one of the supported sources.

  • Authenticated CLI-tool access to the target PCE.

  • Authenticated access and necessary permissions in the PCE web console for working with vulnerability maps.

Vulnerability Data Upload CLI Tool Syntax

The key argument and options for uploading vulnerability data are as follows. For readability, this syntax is broken across several lines.

ilo upload_vulnerability_report
--input-file path_to_datafile.xml [path_to_datafile.xml]...
--source-scanner [nessus-pro|qualys|tenable-sc|tenable-io] 
--format xml
[--authoritative] 
[ --api-user ApiServerUserName --api-server SourceApiServer:port ]

Where:

What

Required

Description

--input-file path_to_datafile.xml [path_to_datafile.xml]...

Yes

Location of one or more data files to upload.

The path to the data file can be either an absolute path or a relative path.

If more than one data file is listed (bulk upload), separate the file names with space characters.

--debug

No

Enable debugging

--authoritative

No

For uploading authoritative vulnerability data. The default command is without the --authoritative option. See Kinds of Vulnerability Data Uploads for information.

--workload-cache FILE

No

DEBUGGING ONLY: Workload Cache file - use this if available

--source-scanner [nessus-pro| qualys|tenable-sc]

Yes

Indicates the source of the scan. Note for rapid data:

  • Vulnerability data from Rapid must have been exported from Rapid in Qualys XML format.

  • To load the Rapid data, use the ‘qualys’ argument

--format

REPORT_FORMAT

Yes

Report format. Allowed values are:

xml

  • --source-scanner nessus-pro

  • --source-scanner qualys

csv

  • --source-scanner tenable-sc

  • --source-scanner tenable-io

api

  • --source-scanner tenable-sc

  • --source-scanner qualys

  • --source-scanner nessus-pro

See also --api-server and --api-user.

--api-server SourceApiServer:port

SERVER_FQDN

Yes for

Tenable with --format api

API server FQDN. Allowed formats are HOST or HOST:PORT

--api-user ApiServerUserName

USERNAME

Yes for source API server authentication

The user name for authenticating to the SourceApiServer.

You are always prompted to enter your password.

--api-page-size

PAGE_SIZE

Yes for Qualys and Tenable

Appropriate page size if API supports pagination. The default page is 1000.

--skip-cert-verification

Yes for Qualys and Tenable

Disable certificate verification for API.

--on-premise

Yes only for Tenable io

Tenable IO deployment is on-premise.

--mitigated

Yes only for Tenable sc

Tenable SC input is exported from the mitigated vulnerabilities analysis view.

--scanned-after

SCANNED_AFTER

Yes for Qualys

Qualys users can select scan data to process after a specific date, in ISO 8601 format.

When the optional scanned-after option is not provided, the system will pull all the historical vulnerability records from your Qualys account. If your account has historical records, it may take a very long time for the first time. With the scanned-after option, vulnerability data scanned after a specific date will be extracted and uploaded. Including a particular scanned-after time is recommended if you use Qualys API upload option for the first time.

--severities SEVERITIES

No

Qualys API users can select vulnerabilities with defined severity levels to include in their reports.

Users can filter based on severity and avoid severity levels 1 and 2, which are often very informational and noisy.

Example: --only-include-severity=3,4,5

For Windows, be sure to include quotes around the severity levels:

Example: --only-include-severity="3,4,5"

NOTE: This option was added in Release 1.4.1

-v, --verbose

No

Verbose logging mode

--trace

No

Enable API trace mode.

Using the ILO Command with Windows Systems

Windows systems take up to four options with the ILO command for the vulnerability data upload. Users who choose to use more optional parameters must set api-server, username, and password as the environmental variables to use other options in the command.

Work with Vulnerability Maps in Illumination

See "Vulnerability Maps" in Visualization Guide for information.

Vulnerability Data Examples
Example – Upload Non-Authoritative Vulnerability Data

In this example, the --source-scanner nessus-pro option indicates that the data comes from Nessus Professional. On Windows, provide the absolute path to the data file. This Windows example is broken across several lines with the PowerShell line continuation character (`).

C:\Users\donald.knuth> ilo upload_vulnerability_report `
--input-file C:\Users\donald.knuth\Desktop\vuln_reports\nessus3.xml `
--source-scanner nessus-pro --format xml

Elapsed Time [0.05 (total : 0.05)] - Data parsing is done. 
Elapsed Time [1.08 (total : 1.13)] - Got workloads. Workload count: 5. 
Elapsed Time [0.0 (total : 1.13)] - Built workload interface mapping. Total interfaces : 11. 
Elapsed Time [4.57 (total : 5.7)] - Imported Vulnerabilities..
Elapsed Time [0.0 (total : 5.7)] - Detected Vulnerabilities are associated with vulnerability and workload data.. 
Elapsed Time [0.83 (total : 6.53)] - Report Imported. 

Summary: 
Processed the report with the following details : 
Report meta data => 
Name          : Generic 
Report Type   : nessus 
Authoritative : false 
Scanned IPs   : ["10.1.0.74", "10.1.0.223", "10.1.0.232", "10.1.0.221", "10.1.0.11", "10.1.0.82", "10.1.0.43", "10.1.0.91", "10.1.0.8", "10.1.1.250"] 

Stats : 
   Number of vulnerabilities           => 19 
   Number of detected vulnerabilities  => 31 

Done.
Example – Upload of Rapid7 Vulnerability Data

The syntax for uploading vulnerability data from Rapid7 is identical to the syntax for uploading vulnerability data from Qualys. On Windows, you use the --format qualys option and the absolute path to the data file. This Windows example is broken across several lines with the PowerShell line continuation character (`).

Rapid7 data exported in Qualys format.

Before uploading to the PCE, Rapid7 vulnerability data must have been exported in Qualys format from Rapid7 with Qualys XML Export.

C:\Users\edward.teller> ilo upload_vulnerability_report `
--input-file C:\Users\edward.teller\Desktop\vuln_reports\rapid7.xml `
--source-scanner qualys --format xml
...
Done.
Example – Upload Authoritative Vulnerability Data

In this example, the prompt shows this is an authoritative upload.

To proceed, you must enter the word YES in all capital letters.

C:\Users\jrobert.oppenheimer> ilo upload_vulnerability_report --input-file dataDir/authoritativedata.xml --authoritative --source-scanner qualys --format xml

Using /home/centos/.rvm/gems/ruby-2.4.1 
Authoritative scan overwites the previous entries for all the ips within this scan. There is no ROLLBACK 
Are you sure this is an authoritative scan? (YES | NO) 
YES 
Elapsed Time [11.86 (total : 11.86] - Data parsing is done. 
Elapsed Time [0.27 (total : 12.13] - Got workloads. Workload count: 3. 
Elapsed Time [0.0 (total : 12.13] - Built workload interface mapping. Total interfaces : 6. 
Elapsed Time [3.02 (total : 15.15] - Imported Vulnerabilities.. 
Elapsed Time [0.0 (total : 15.15] - Detected Vulnerabilities are associated with vulnerability and workload data.. 
Elapsed Time [0.84 (total : 16.0] - Report Imported. 
Summary: 
Processed the report with the following stats - 
    Number of vulnerabilities           => 14 
    Number of detected vulnerabilities  => 48 
Done.
Example – List Single Uploaded Vulnerability

This example uses a single Qualys vulnerability identifier to show the associated vulnerability. The value passed to the --reference-id option is shown as qualys-38173. See Vulnerability Identifier for information.

$ ilo vulnerability read --xorg-id=1 --reference-id=qualys-38173
...

| Attribute | Value | 
+-------------+----------------------------------------------------------------+ 
| href | /orgs/1/vulnerabilities/qualys-38173 | 
| name | SSL Certificate - Signature Verification Failed Vulnerability 
| score | 39 | 
| cve_ids | [] | 
| created_at | 2018-11-05T18:16:56.846Z | 
...
Example – List All Uploaded Vulnerabilities

This example highlights the vulnerability identifier, the CVE identifiers, and the description of the CVE. See Common Vulnerabilities and Exposures (CVE) and Vulnerability Identifier for information. The layout of the output is the same for all supported vulnerability data sources.

Nessus Professional

C:\Users\werner.heisenberg> ilo vulnerability list --xorg-id=1
... 
| Href | Name | Score | Description | Cve Ids | Created At | Updated At | Created By | Updated By | 
---------------------+--------------------------+----------------------+-----------------------+ 
| /orgs/1/vulnerabilities/nessus-18405 | Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness | 51    |             | ["CVE-2005-1794"]                  | 2018-11-07T03:15:39.410Z | 2018-11-07T03:15:39.410Z | {"href"=>"/users/1"} | {"href"=>"/users/1"} |
...

Qualys

C:\Users\isaac.newton> ilo vulnerability list --xorg-id=1 
... 
| Href | Name | Score | Description | Cve Ids | Created At | Updated At | Created By | Updated By | 
---------------------+--------------------------+----------------------+-----------------------+ 
| /orgs/1/vulnerabilities/qualys-38657 | Birthday attacks against TLS ciphers with 64bit block size vulnerability (Sweet32) | 69 | | ["CVE-2016-2183"] | 2018-07-27T18:16:57.166Z | 2018-08-08T22:30:32.421Z | {"href"=>"/users/1"} | {"href"=>"/users/16"} | 
...

Rapid7

Because Rapid7 vulnerability data must be in Qualys format before upload, the output is the same as for Qualys data, including the vulnerability identifier (qualys-38657 in the example above) and CVE. See Common Vulnerabilities and Exposures (CVE) and Vulnerability Identifier for information.

Example – View Vulnerability Report

The Report Type column identifies the source of the scan; in this example, Qualys.

C:\Users\gracemurry.hopper> ilo vulnerability_report list --xorg-id=1 
... 
| Href | Report Type | Name | Created At | Updated At | Num Vulnerabilities | Created By | Updated By | 
+-----------------------------------------------------+-------------+----------------------+--------------------------+---------------------- 
| /orgs/1/vulnerability_reports/scan_1502310096_09344 | qualys  | NewAuthoritativeScan | 2018-08-08T22:30:34.877Z | 2018-08-08T22:30:34.877Z | 62 | {"href"=>"/users/16"} | {"href"=>"/users/16"} | 
...
Example - Upload a Qualys Report Using API
upload_vulnerability_report --source-scanner  qualys --format api 
--api-server qualysguard.qg3.apps.qualys.com  --api-user um3sg 
--scanned-after 2021-09-20