Skip to main content

Tenable.io

Tenable.io is a cloud-based vulnerability management tool that scans hosts in your network and generates vulnerabilities against those hosts. You can bring asset and security data from Tenable.io into Brinqa to enhance your vulnerability management capabilities, gain insights into the relationship between the vulnerabilities and your assets, construct a unified view of your attack surface, and strengthen your cybersecurity posture.

This document details the information you must provide for the connector to authenticate with Tenable.io and how to obtain that information from Tenable. See create a data integration for step-by-step instructions on setting up the integration.

Required connection settings

When setting up a data integration, select Tenable.io from the Connector drop-down. If you cannot find the connector in the drop-down, make sure that you have installed it first. You must provide the following information to authenticate Tenable.io with Brinqa:

  • API URL: The Tenable.io API URL. The default URL is https://cloud.tenable.com.

  • Access key and Secret key: The access key and secret key associated with the Tenable.io account, which must have permissions to log in to the API server and return data.

Generate Tenable.io access key and secret key

In order for the Tenable.io connector to successfully retrieve data from the Tenable.io API, the access key and secret key must be tied to a Basic user role with Can View permissions. For additional information, see Tenable.io documentation on permissions.

For the Tenable.io connector to use the Tenable.io API, you must provide an access key and secret key. Tenable.io does not allow retrieving the access key and secret key for an existing user, therefore, you must generate new keys instead.

To generate new access keys, follow these steps:

  1. Log in to your Tenable.io account.

  2. Click the Menu button on the upper-left corner of the page. A navigation pane appears.

  3. Click Settings, and then click My Account.

  4. Click the User Account button on the upper-right corner of the page, and then click the API Keys tab.

  5. Click Generate. The Generate API Keys window appears.

  6. Review the warning on the page and click Generate.

    Your new Tenable.io access key and secret key display. Copy the access key and secret key to a safe and secure location.

To generate a new access key and secret key for another user as an administrator, follow these steps:

  1. Log in to your Tenable.io account as an administrator.

  2. Click the Menu button on the upper-left corner of the page. A navigation pane appears.

  3. Click Settings, and then click Access Control.

  4. Click the name of the user for which you want to generate an access key and secret key. The Edit User page appears.

  5. In the API Keys section, click Generate API Keys.

  6. Review the warning on the page and click Replace & Generate.

    The new Tenable.io access key and secret key display. Copy the access key and secret key to a safe and secure location.

note

If you do not have permissions to create Tenable.io access and secret keys, contact your Tenable.io administrator. For additional information, see Tenable.io documentation on API keys.

Additional settings

The Tenable.io connector contains additional options for specific configuration:

  • Page size: The maximum number of records to get per API request. The default setting is 1000. It is not recommended to go over 1000.

  • Parallel requests: The maximum number of parallel API requests. The default setting is 8.

  • Maximum retries: The maximum number of times that the integration attempts to connect to the Tenable.io API before giving up and reporting a failure. The default setting is 10.

Types of data to retrieve

The Tenable.io connector can retrieve the following types of data from the Tenable.io API:

Table 1: Data retrieved from Tenable.io

Connector ObjectRequiredMaps to Data Model
HostYesHost
FindingYesViolation
ScanNoAssessment
VulnerabilityYesVulnerability
Vulnerability DefinitionYesViolation Definition,
Vulnerability Definition
info
  • For detailed steps on how to view the data retrieved from Tenable.io in the Brinqa Platform, see How to view your data.

  • Tenable compliance audit results can be found under Violations.

Attribute mappings

Expand the sections below to view the mappings between the source and the Brinqa data model attributes.

Host

Table 2: Host attribute mappings

Source Field NameMaps to Attribute
asset.aws_ec2_namename
asset.agent_namesLocal variable
asset.agent_uuidLocal variable
asset.aws_availability_zoneLocal variable
asset.aws_ec2_instance_ami_idLocal variable
asset.aws_ec2_instance_group_nameLocal variable
asset.aws_ec2_instance_idLocal variable
asset.aws_ec2_instance_state_nameLocal variable
asset.aws_ec2_instance_typeLocal variable
asset.aws_ec2_nameLocal variable
asset.aws_ec2_product_codeLocal variable
asset.aws_owner_idLocal variable
asset.aws_regionLocal variable
asset.aws_subnet_idLocal variable
asset.aws_vpc_idLocal variable
asset.azure_resource_idLocal variable
asset.azure_vm_idLocal variable
asset.created_atsourceCreatedDate
asset.deleted_atLocal variable
asset.deleted_byLocal variable
asset.descriptiondescription
asset.fqdnsprivateDnsName, publicDnsName
asset.first_scan_timeLocal variable
asset.first_seenfirstSeen
asset.gcp_instance_idLocal variable
asset.gcp_project_idLocal variable
asset.gcp_zoneLocal variable
asset.has_agentLocal variable
asset.hostnameshostname
asset.hostnameshostnames
asset.ipv4sprivateIpAddresses, publicIpAddress
asset.ipv6sipAddresses
asset.last_authenticated_scan_dateLocal variable
asset.last_scan_timelastScanned
asset.last_seenlastSeen
asset.mac_addressesmacAddresses
asset.mcafee_epo_agent_guidLocal variable
asset.mcafee_epo_guidLocal variable
asset.network_idLocal variable
asset.operating_systemsoperatingSystem
asset.servicenow_sysidLocal variable
asset.sourcesLocal variable
asset.tagList.tags.tag.tagNametags
asset.terminated_atLocal variable
asset.terminated_at/asset.deletee_atstatus
asset.terminated_byLocal variable
asset.updated_atsourceLastModified
categoriescategories
descriptiondescription
dnsNamesdnsNames
getDescriptiondescription
getHostnamehostname
getNamename
instanceIdinstanceId
lastScan.nameLocal variable
LAST_LICENSED_SCANLocal variable
Finding

Table 3: Finding attribute mappings

Source Field NameMaps to Attribute
finding.actual_valueresults
finding.asset_uuidtargets
finding.audit_fileresults
finding.check_errorresults
finding.check_iduid
finding.check_infodescription
finding.check_nameresults
finding.db_typeLocal variable
finding.expected_valueresults
finding.first_seenfirstSeen
finding.last_seenlastSeen
finding.plugin_iduid
finding.profile_nameLocal variable
finding.referencereferences
finding.see_alsoLocal variable
finding.solutionrecommendation
finding.statusstatus
finding.uuiduid
finding.valueLocal variable
Scan

Table 4: Scan attribute mappings

Source Field NameMaps to Attribute
detail.hoststargets
detail.info.scan_endendTime
detail.info.scan_startstartTime
scan.creation_datesourceCreatedDate
scan.iduid
scan.last_modification_datesourceLastModified
scan.namename
scan.ownerLocal variable
scan.rrulesLocal variable
scan.schedule_uuidLocal variable
scan.startTimeLocal variable
scan.statusstatus
scan.typeLocal variable
scan.uuidLocal variable
Vulnerability

Table 5: Vulnerability attribute mappings

Source Field NameMaps to Attribute
uiduid
vuln.asset.agent_uuidLocal variable
vuln.asset.fqdnprivateDnsName, publicDnsName
vuln.asset.hostname, vuln.asset.netbios_namehostname
vuln.asset.ipv4ipAddresses
vuln.asset.mac_addressmacAddresses
vuln.asset.uuidtargets
vuln.first_foundfirstFound
vuln.last_fixedlastFixed
vuln.last_foundlastFound
vuln.outputresults
vuln.plugin.idtype
vuln.port.portport
vuln.port.protocolprotocol
vuln.scan.schedule_uuidLocal variable
vuln.scan.uuidLocal variable
vuln.severityseverity, sourceSeverity, severityScore, sourceSeverityScore
vuln.severity_modification_typeLocal variable
vuln.statesourceStatus, statusCategory, status, providerStatus
Vulnerability Definition

Table 6: Vulnerability Definition attribute mappings

Source Field NameMaps to Attribute
agentLocal variable
complianceLocal variable
cpeaffected
cvecveIds, cveRecords
cvss_base_scorecvssV2BaseScore
cvss_temporal_scorecvssV2TemporalScore
cvss_v2_vectorUse CVSS calculator
cvss3_base_scorecvssV3BaseScore
cvss3_temporal_scorecvssV3TemporalScore
cvss_v3_vectorUse CVSS calculator
default_accountLocal variable
descriptiondescription
exploitsexploits
exploit_availableLocal variable
exploit_code_maturityLocal variable
exploited_by_malwareLocal variable
exploited_by_nessusLocal variable
exploitability_easeLocal variable
familycategories
has_patchpatchAvailable
in_the_newsLocal variable
intel_typeLocal variable
lower_boundLocal variable
patch_publication_dateLocal variable
plugin_modification_datesourceLastModified
plugin.namename
plugin_typeLocal variable
product_coverageLocal variable
risk_factorseverity, sourceSeverity, severityScore, sourceSeverityScore
scoreLocal variable
see_alsoLocal variable
solutionrecommendation
synopsissummary
threat_intensity_last28Local variable
threat_sources_last28Local variable
unsupported_by_vendorLocal variable
Uiduid
vuln_publication_date, plugin_publication_datepublishedDate
vprLocal variable
CVSS_V2_IMPACT_SCORELocal variable
CVSS_V3_IMPACT_SCORELocal variable
info

Use CVSS calculator indicates that the CVSS (Common Vulnerability Scoring System) vectors and scores aren't directly mapped to a specific attribute on the UDM. Instead, a specialized library calculates the CVSS scores from the provided CVSS vector strings.

info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Operation options

The Tenable.io connector supports the following operation options. Expand the sections below to view the operation options per supported connector object. See connector operation options for information about how to apply them.

Host operation options

Table 7: Host operation options

Connector ObjectOptionAll Possible ValuesDescriptionExample
Hostchunk_sizeAny number ranges from 100-10000Specifies the number of hosts that are exported in a batch. Tenable recommends not exceeding 5000.Key: chunk_size Value: 100. This key and value combination only retrieves 100 hosts at a time. Once 100 hosts are exported, the next group of 100 hosts exports.
has_plugin_resultstrue or falseFilters hosts by whether or not they have plugin results associated with it.Key: has_plugin_results Value: true. This key and value combination only retrieves hosts that have plugin results.
is_deletedtrue or falseFilters hosts by whether or not they have been deleted.Key: is_deleted Value: false. This key and value combination only retrieves hosts that exist and are active.
is_licensedtrue or falseFilters hosts by whether or not they are included in the asset count for Tenable.io.Key: is_licensed Value: true. This key and value combination only retrieves hosts that are licensed and authorized to run.
is_terminatedtrue or falseFilters hosts by whether or not they have been terminated.Key: is_terminated Value: true. This key and value combination only retrieves hosts that have been terminated.
last_assessedAny date value in the Unix timestamp formatReturns all hosts with a last assessed time later than the specified date.Key: last_assessed Value: 1593000000. This key and value combination only retrieves hosts that have been assessed since (UTC) July 12th, 2020 at 21:40:00.
servicenow_sysidtrue or falseFilters hosts by whether or not they have a ServiceNow Sys ID.Key: servicenow_sysid Value: true. This key and value combination only retrieves hosts that have a ServiceNow Sys ID.
sourcesAWS, NESSUS_AGENT, PVS, NESSUS_SCAN, or WASA comma-separated list of sources that filter hosts by whether or not they are discovered by the specified source.Key: sources Value: NESSUS_SCAN, AWS. This key and value combination only retrieves hosts that are from AWS or discovered in a Nessus scan.
tag.<category>Any Tenable.io tag category nameFilters hosts with the specified tag category. For additional information on tags, see Tenable.io documentationKey: tag.<category> Value: Test2. This key and value combination only retrieves hosts with the Test2 tag category.
note

The option keys and values are case-sensitive as they are shown in this documentation.

Finding operation options

Table 8: Violation operation options

Connector ObjectOptionAll Possible ValuesDescriptionExample
FindingchunkTimeoutAny time value in secondsSpecifies the maximum amount of time in seconds to wait for a chunk of violation data to be retrieved.Key: chunkTimeout Value: 60. This key and value combination sets the timeout for chunk retrieval to 60 seconds.
exportTimeoutAny time value in secondsSpecifies the maximum amount of time in seconds to wait for the entire violation data export process to complete.Key: exportTimeout Value: 300. This key and value combination sets the export process timeout to 5 minutes.
initialTimeoutAny time value in secondsDefines the initial waiting time in seconds before the export process begins.Key: initialTimeout Value: 30. This key and value combination sets an initial delay of 30 seconds before starting the export.
last_seenAny date value in the Unix timestamp formatReturns all violations with a last seen time later than the specified date.Key: last_seen Value: 1609459200. This key and value combination only retrieves violations seen after January 1, 2021.
num_findingsAny number ranges from 50-5000Specifies the number of findings used to chunk the vulnerabilities.Key: num_findings Value: 1000. This key and value combination retrieves violations for 1000 findings at a time. Once the violations for the 1000 findings are exported, the violations for the next group of 1000 findings export.
pollIntervalAny time value in secondsSets the interval time in seconds between polling attempts for new data.Key: pollInterval Value: 10. This key and value combination sets the polling interval for new violations to 10 seconds.
note

The option keys and values are case-sensitive as they are shown in this documentation.

Vulnerability operation options

Table 9: Vulnerability operation options

Connector ObjectOptionAll Possible ValuesDescriptionExample
Vulnerabilitycidr_rangeAny range of IP addresses assigned to the hosts in your networkRestricts search for vulnerabilities to the hosts assigned an IP address within the specified CIDR range.Key: cidr_range Value: 192.168.0.0/24. This key and value combination only retrieves vulnerabilities on the hosts bearing the IP addresses from 192.168.0.1 to 192.168.0.254.
include_unlicensedtrue or falseFilters vulnerabilities by whether or not to include unlicensed hosts.Key: include_unlicensed Value: true. This key and value combination retrieves vulnerabilities from both licensed and unlicensed hosts.
num_assetsAny number ranges from 50-5000Specifies the number of hosts used to chunk the vulnerabilities.Key: num_assets Value: 100. This key and value combination retrieves vulnerabilities for 100 hosts at a time. Once the vulnerabilities for the 100 hosts are exported, the vulnerabilities for the next group of 100 hosts export.
plugin_familyAny Tenable.io plugin family stringFilters vulnerabilities by whether or not they are related to the specified plugin family.Key: plugin_family Value: operating systems. This key and value combination only retrieves vulnerabilities related to the operating systems plugin family.
plugin_idAny supported Tenable.io plugin ID numberFilters vulnerabilities by whether or not they are related to the specific plugin ID.Key: plugin_id Value: 10150. This key and value combination only retrieves vulnerabilities associated with plugin ID 10150.
plugin_typeAny supported plugin type: remote, local, combined, etc.Filters vulnerabilities by whether or not they are related to the specified plugin type.Key: plugin_type Value: mobile. This key and value combination only retrieves vulnerabilities associated with the mobile plugin type.
severitylow, medium, high, or criticalReturns all vulnerabilities of the specified severity.Key: severity Value: critical. This key and value combination only retrieves the critical vulnerabilities found in a scan.
sinceAny date value in the Unix timestamp formatReturns all vulnerabilities seen since the specified date value.Key: since Value: 1593000000. This key and value combination only retrieves vulnerabilities that exist since (UTC) July 12th, 2020 at 21:40:00.
state or statusfixed, open, or reopenedReturns all vulnerabilities with the specified state or status.Key: status Value: open. This key and value combination only retrieves open vulnerabilities. You can use state for the key in place of status and it produces the same result.
tag.<category>Any Tenable.io tag category nameReturns all vulnerabilities with the specified tag category. For additional information on tags, see Tenable.io documentationKey: tag.<category> Value: Test2. This key and value combination only retrieves vulnerabilities with the Test2 tag category.
vpr_scoreAny numeric value from 0.1-10.0Retrieve all vulnerabilities with a Vulnerability Priority Rating (VPR) score of the specified value or higher.Key: vpr_score Value: 7. This key and value combination retrieves all vulnerabilities with a VPR score of 7 or higher.
note

The option keys and values are case-sensitive as they are shown in this documentation.

APIs

The Tenable.io connector uses the Tenable.io REST API. Specifically, it uses the following endpoints:

Table 10: Tenable.io REST API Endpoints

Connector ObjectAPI Endpoints
HostPOST /assets/export
POST /assets/export/{export_uuid}/cancel
GET /assets/export/{export_uuid}/chunks/{chunkId}
GET /assets/export/{export_uuid}/status
FindingGET /compliance/export
GET /compliance/export/{exportUuid}/cancel
GET /compliance/export/{exportUuid}/chunks/{chunkId}
GET /compliance/export/{exportUuid}/status
ScanGET /scans
GET /scans/{scan_id}
VulnerabilityGET /vulns/export
GET /vulns/export/{exportUuid}/cancel
GET /vulns/export/{exportUuid}/chunks/{chunkId}
GET /vulns/export/{exportUuid}/status
Vulnerability DefinitionGET /plugins/families
GET /plugins/families/{familyId}
GET /plugins/plugin

Changelog

The Tenable.io connector has undergone the following changes:

3.1.26

  • Changed the VULNERABILITY_AGE attribute type on the Vulnerability Definition object from string to integer.

3.1.25

  • Added the INSTALLED_SOFTWARE attribute to the Host object.

3.1.24

  • Fixed an issue where the Violation Definition and Vulnerability Definition syncs were failing.

3.1.23

  • Fixed an issue where the CVSS v3 impact score was not returning any values.

  • Added the VULNERABILITY_AGE attribute to the Vulnerability Definition object.

3.1.22

  • Added support for Data lifecycle management to the Host and Vulnerability objects.

  • Added the PROVIDER_STATUS attribute to the Vulnerability object.

3.1.21

  • Changed the EXPLOIT_AVAILABLE attribute type on the Vulnerability Definition object from string to boolean.

  • Changed the THREAT_RECENCY attribute type on the Vulnerability Definition object from string to integer.

3.1.19

  • Added two connector objects, Violation and Violation Definition.

  • Started fetching Tenable Compliance Check results and storing them as violations.

3.1.17

  • Changed the data type of 'acr_score' and 'exposure_score' from Integer to Double to align with the API response format.

3.1.16

  • Addressed precision issues by changing the data type for CVSS scores from Float to Double.

3.1.15

  • Changed the SOURCE_SEVERITY attribute to a String type.

  • Added a SOURCE_SEVERITY_SCORE attribute in the Vulnerability and Vulnerability Definition object.

3.1.12

  • Added a new setting to configure maximum retries.

3.1.11

  • Added a SOURCE_STATUS attribute in the Vulnerability object to store the source finding statuses.

  • Added a method to normalize the source finding statuses.

3.1.3

  • Started retrieving scans of all statuses.

3.1.2

  • Added a check for null or empty dates.

3.1.1

  • Started retrieving name, rrules, starttime, and uuid from the Tenable vulnerability management scans.

3.0.11

  • Added a SEVERITY_MODIFICATION_TYPE attribute in the Vulnerability object.

3.0.8

  • Added some new attributes in the Host object, including AWS_EC2_INSTANCE_ID, AZURE_RESOURCE_ID, and GCP_INSTANCE_ID.

  • Used AZURE_VM_ID, if available, as the instance ID of Azure hosts.

3.0.7

  • Added 'SSM' as a valid source for hosts.

3.0.6

  • Added a LAST_SCAN_NAME attribute in the Host object.

3.0.5

  • Added a PATCH_PUBLICATION_DATE attribute in the Vulnerability Definition object.

3.0.3

  • Fixed an issue in parsing CVSS v3 vectors.

3.0.0