Skip to main content

Qualys Container Security

Qualys Container Security (CS) is a container security tool that scans your container assets and generates data related to compliance, policies, and vulnerabilities. You can bring compliance details, container, control, exception, host, image, registry, vulnerability container, and vulnerability image data from Qualys CS into Brinqa to gain a unified view of your attack surface, thus strengthening your cybersecurity posture.

This document details the information you must provide for the connector to authenticate with Qualys CS and how to obtain that information from Qualys. 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 Qualys Container Security from the Connector drop-down. You must provide the following information to authenticate Qualys with Brinqa:

  • API Server URL: The Qualys platform API Server URL. The default URL format is https://gateway.<POD>.apps.qualys.com/. For information on how to determine your Qualys API URL, see Qualys documentation.

  • Username and Password: The user name and password associated with the Qualys user, which must have permissions to log in to the API server and return data.

Create a Qualys user

To ensure the user account that the Qualys CS connector uses to access the Qualys server has the appropriate permissions, follow these steps.

  1. Log in to your organization's Qualys server.

  2. Click the drop-down at the top of the page and under Utilities, select Administration.

  3. Navigate to Users, and then click the User Management tab.

  4. Click the Create User drop-down and select Create Reader User.

    Qualys CS create user navigation

  5. Fill out the general information for the new user.

  6. Click User Role on the left menu.

    From the User Role drop-down, select Reader.

    • Select GUI and API to enable API access, and leave Business Unit Unassigned.

      Qualys VM User Role settings

  7. Click Asset Groups on the left menu.

    • From the Add asset groups drop-down, select Add All or only the asset groups the Qualys user needs access to.
  8. Click Permissions on the left menu and select all of the available permissions.

  9. Click Options to modify the notification options as needed.

  10. Click Save.

The new Qualys user with appropriate permissions to retrieve data displays on the Qualys Users page.

If you do not wish to create a new Qualys user, you can leverage an existing user with the appropriate permissions.

note

If you do not have permissions to create a new Qualys user, contact your Qualys administrator. For additional information, see Qualys documentation.

Additional settings

The Qualys CS connector contains additional options for specific configuration:

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

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

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

Types of data to retrieve

The Qualys CS connector can retrieve the following types of data from the Qualys API:

Table 1: Data retrieved from Qualys

Connector ObjectRequiredMaps to Data Model
Compliance DetailsYesViolation
ContainerYesContainer
ControlYesViolation Definition
ExceptionNoNot mapped
HostYesHost
ImageYesContainer Image
RegistryNoNot mapped
Vulnerability ContainerYesVulnerability
Vulnerability Definition
Vulnerability ImageYesVulnerability
Vulnerability Definition
info

The Qualys CS connector does not currently support operation options for the types of data it retrieves.

For detailed steps on how to view the data retrieved from Qualys CS in the Brinqa Platform, see How to view your data.

Attribute mappings

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

Compliance Details

Table 2: Compliance Details attribute mappings

Source Field NameMaps to Attribute
controls.controlIdtype
controls.criticalityLocal variable
controls.datapoints_keyLocal variable
controls.datapoints_valueLocal variable
controls.lastEvaluatedlastAssessed
controls.policyUuidLocal variable
controls.posturestatus
controls.statementLocal variable
controls.technologyIdLocal variable
createdsourceCreatedDate
customerUuidLocal variable
lastComplianceScannedlastScanned
shatargets
updatedsourceLastModified
uuiduid
Container

Table 3: Container attribute mappings

Source Field NameMaps to Attribute
compliance.errorCountLocal variable
compliance.failCountLocal variable
compliance.passCountLocal variable
containerIdLocal variable
createdsourceCreatedDate
exceptions.assignmentTypeLocal variable
exceptions.uuidtarget
host.hostnamehostnames
host.ipAddressipAddress (calculation)
host.lastUpdatedLocal variable
host.sensorUuidLocal variable
host.uuidtargets
imageIdLocal variable
imageUuidimage
isInstrumentedLocal variable
isRootLocal variable
lastComplianceScanDateLocal variable
lastVmScanDatelastScanned
namename
shaLocal variable
stateLocal variable
stateChangedLocal variable
updatedsourceLastModified
uuiduid
vulnerabilities.severity1CountLocal variable
vulnerabilities.severity2CountLocal variable
vulnerabilities.severity3CountLocal variable
vulnerabilities.severity4CountLocal variable
vulnerabilities.severity5CountLocal variable
Control

Table 4: Control attribute mappings

Source Field NameMaps to Attribute
categorycategories
commentsdescription
criticalityLocal variable
deprecatedLocal variable
iduid
isDeprecatedLocal variable
statementLocal variable
subCategoryLocal variable
technologies.idLocal variable
technologies.nameLocal variable
technologies.rationalLocal variable
technologies.remediationsolution
Host

Table 5: Host attribute mappings

Source Field NameMaps to Attribute
accountIdcloudAccountId
availability zoneLocal variable
categories/asset categorycategories
first discoveredfirstSeen
getNamename,hostnames
host.getARSFACTORS.getARSFORMULALocal variable
host.getASSETRISKSCORELocal variable
host.getASSETCRITICALITYSCORELocal variable
host.getASSETIDLocal variable
host.getCLOUDPROVIDERLocal variable
host.getCLOUDPROVIDERTAGSLocal variable
host.getCLOUDRESOURCEIDinstanceId, cloudResourceId
host.getCLOUDSERVICELocal variable
host.getDNSDATA.getDOMAINdomain
host.getDNSDATA.getFQDNpublicDnsName,privateDnsName
host.getIDuid
host.getIPpublicIpAddress
host.getLASTVMAUTHSCANNEDDATELocal variable
host.getLASTVULNSCANDATETIMElastScanned,lastSeen
host.getNAMEname
host.getNETBIOSlocal variable
host.getOSos
host.getOWNERLocal variable
host.getQGHOSTIDLocal variable
host.getTAGS.getTAGtags
host.getTRACKINGMETHODLocal variable
imageIdimage
instanceIdinstanceId, local variable
instanceStatestatus (normalize)
instanceTypeLocal variable
ipv6Local variable
localHostnameprivateDnsName
locationLocal variable
macLocal variable
macAddressmacAddresses
machineTypeLocal variable
nameLocal variable
networkLocal variable
os typeLocal variable
private ipLocal variable
private ipv4Local variable
project idLocal variable
public hostnamepublicDnsName
public ipv4publicIpAddress
regionLocal variable
resource group nameLocal variable
security groupLocal variable
statestatus (normalize)
subnetLocal variable
subscription idLocal variable
vm idinstanceId
zoneLocal variable
Image

Table 6: Image attribute mappings

Source Field NameMaps to Attribute
associatedContainersCountLocal variable
associatedHostsCountLocal variable
compliance.errorCountLocal variable
compliance.failCountLocal variable
compliance.passCountLocal variable
createdsourceCreatedDate
exceptionsLocal variable
imageIdLocal variable
instrumentationStateLocal variable
instrumentedFromLocal variable
isDockerHubOfficialLocal variable
isInstrumentedLocal variable
lastComplianceScanDateLocal variable
lastFoundOnHost.hostnameLocal variable
lastFoundOnHost.ipAddressLocal variable
lastFoundOnHost.lastUpdatedLocal variable
lastFoundOnHost.sensorUuidLocal variable
lastFoundOnHost.uuidLocal variable
lastVmScanDatelastScanned
registryUuidLocal variable
repo.registryregistry
repo.repositoryrepository
repo.tagtags
repoDigests.digestdigest
repoDigests.registryLocal variable
repoDigests.repositoryLocal variable
scanErrorCodeLocal variable
scanStatusLocal variable
scanTypeLocal variable
scanTypesLocal variable
shaLocal variable
sizeLocal variable
sourceLocal variable
updatedsourceLastModified
uuiduid
vulnerabilities.severity1CountLocal variable
vulnerabilities.severity2CountLocal variable
vulnerabilities.severity3CountLocal variable
vulnerabilities.severity4CountLocal variable
vulnerabilities.severity5CountLocal variable
Vulnerability Container

Table 7: Vulnerability Container attribute mappings

Source Field NameMaps to Attribute
authTypeLocal variable
categorycategories
ContainerShatarget
cveidstype/uid
cvss3Info.baseScorecvssV3BaseScore
cvss3Info.temporalScorecvssV3TemporalScore
cvssInfo.accessVectorcvssV2Vector
cvssInfo.baseScorecvssV2BaseScore
cvssInfo.temporalScorecvssV2TemporalScore
discoveryTypeLocal variable
firstFoundfirstFound
lastFoundlastFound
patchAvailablepatchAvailable
portport
productaffected
publishedpublishedDate
qiduid
resultresults
riskLocal variable
scanTypeLocal variable
severityseverity, sourceSeverity, severityScore
software.fixVersionLocal variable
software.nameLocal variable
software.packagePathLocal variable
software.scanTypeLocal variable
software.versionLocal variable
software.vulnerabilitiesLocal variable
statusstatus(normalized), sourceStatus, statusCategory
supportedByLocal variable
threatIntel.activeAttacksLocal variable
threatIntel.denialOfServiceLocal variable
threatIntel.easyExploitLocal variable
threatIntel.exploitKitLocal variable
threatIntel.exploitKitNamesLocal variable
threatIntel.highDataLossLocal variable
threatIntel.highLateralMovementLocal variable
threatIntel.malwaremalware
threatIntel.malwareNamesLocal variable
threatIntel.noPatchLocal variable
threatIntel.publicExploitLocal variable
threatIntel.publicExploitNamesLocal variable
threatIntel.zeroDayzeroDay
titlejobTitle
typeDetectedLocal variable
vendorLocal variable
vulnerabilityLocal variable
Vulnerability Image

Table 8: Vulnerability Image attribute mappings

Source Field NameMaps to Attribute
authTypeLocal variable
categorystatusCategory
cveidstype, uid
cvss3Info.baseScorecvssV3BaseScore
cvss3Info.temporalScorecvssV3TemporalScore
cvssInfo.accessVectorcvssV2Vector
cvssInfo.baseScorecvssV2BaseScore
cvssInfo.temporalScorecvssV2TemporalScore
discoveryTypeLocal variable
firstFoundfirstFound
ImageShatarget
lastFoundlastFound
patchAvailablepatchAvailable
portport
productaffected
publishedpublishedDate
qiduid
resultresults
riskLocal variable
scanTypeLocal variable
severityseverity, sourceSeverity, severityScore
software.fixVersionLocal variable
software.nameLocal variable
software.packagePathLocal variable
software.scanTypeLocal variable
software.versionLocal variable
software.vulnerabilitiesLocal variable
statusstatus(normalized), sourceStatus, statusCategory
supportedByLocal variable
threatIntel.activeAttacksLocal variable
threatIntel.denialOfServiceLocal variable
threatIntel.easyExploitLocal variable
threatIntel.exploitKitLocal variable
threatIntel.exploitKitNamesLocal variable
threatIntel.highDataLossLocal variable
threatIntel.highLateralMovementLocal variable
threatIntel.malwaremalware
threatIntel.malwareNamesLocal variable
threatIntel.noPatchLocal variable
threatIntel.publicExploitLocal variable
threatIntel.publicExploitNamesLocal variable
threatIntel.zeroDayzeroDay
titlejobTitle
typeDetectedLocal variable
vendorLocal variable
vulnerabilityLocal variable
note

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.

APIs

The Qualys CS connector uses the Qualys Container Security REST API v1.3. However, for Host data, the connector uses an endpoint from the Qualys Asset Management v2 API. Specifically, it uses the following endpoints:

Table : Qualys CS API Endpoints

Connector ObjectAPI Endpoints
Compliance DetailsGET /csapi/v1.3/images/{imageSha}/compliance
ContainerGET /csapi/v1.3/containers
ControlGET /csapi/v1.3/controls
ExceptionGET /csapi/v1.3/exception
HostGET /rest/2.0/search/am/asset (from Qualys Asset Management v2 API)
ImageGET /csapi/v1.3/images
RegistryGET /csapi/v1.3/registry
Vulnerability ContainerGET /csapi/v1.3/containers
GET /csapi/v1.3/containers/{containerSha}/vuln
GET /csapi/v1.3/images
GET /csapi/v1.3/images/{imageSha}/vuln
Vulnerability ImageGET /csapi/v1.3/containers
GET /csapi/v1.3/containers/{containerSha}/vuln
GET /csapi/v1.3/images
GET /csapi/v1.3/images/{imageSha}/vuln

Changelog

The Qualys CS connector has undergone the following changes:

5.3.8

  • No change.

5.3.7

  • No change.

5.3.6

  • No change.

5.3.5

  • No change.

5.3.4

  • No change.

5.3.3

  • Changed the following attribute types on the Vulnerability Image object from string to integer:

    • CVSS_V2_BASE_SCORE
    • CVSS_V2_TEMPORAL_SCORE
    • CVSS_V3_BASE_SCORE
    • CVSS_V3_TEMPORAL_SCORE
  • Changed the SOURCE_SEVERITY attribute type on the Vulnerability Image from integer to string.

5.3.2

  • No change.

5.3.0