The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes how to configure Threat-Centric NAC with Qualys on Identity Services Engine (ISE) 2.1. Threat Centric Network Access Control (TC-NAC) feature enables you to create authorization policies based on the threat and vulnerability attributes received from the threat and vulnerability adapters.
Cisco recommends that you have basic knowledge of these topics:
Cisco Identity Service Engine
Qualys ScanGuard
The information in this document is based on these software and hardware versions:
This is the flow:
Caution: Qualys configuration in this document is done for the lab purposes, please consult with Qualys engineers for design considerations
Qualys scanner can be deployed from OVA file. Login to Qualys cloud and navigate to Scans > Appliances and select New > Virtual Scanner Appliance
Select Download Image Only and pick appropriate distribution
To get Activation Code you can go to Scans > Appliances and select New > Virtual Scanner Appliance and select I Have My Image
After entering scanner name you are given Authorization Code which you will use later.
Deploy OVA on the virtualization platform of your choice. Once done, configure those settings:
Afterwards scanner connects to Qualys and downloads the latest software and signatures.
To verify the scanner is connected you can navigate to Scans > Appliances.
Green connected sign on the left indicates that scanner is ready, you can also see LAN IP, WAN IP, version of Scanner and Signatures.
Though you have configured Qualys Scanner and Cloud, you still have to tune Cloud settings to make sure integration with ISE works fine. Note, it should be done before you configure adapter through GUI, as the knowledgebase containing CVSS scoring is downloaded after the adapter is configured for the first time.
Enable TC-NAC Services under Administration > Deployment > Edit Node. Check checkbox.
Note: There can be only one TC-NAC Node per Deployment.
Navigate to Administration > Threat Centric NAC > Third Party Vendors > Add. Click on Save.
When Qualys Instance transitions to Ready to configure state, click on Ready to configure option in the Status.
REST API host should be the one you use for Qualys Cloud, where your account is located. In this example - qualysguard.qg2.apps.qualys.com
Account should be the one with Manager privileges, click on Next.
ISE downloads information about Scanners which are connected to Qualys Cloud, you can configure PSN to Scanner Mapping on this page. It ensures that selected scanner is picked based on PSN which authorizes the endpoint.
Advanced settings are well documented in ISE 2.1 Admin Guide, link can be found in the References section of this document. Click on Next and Finish. Qualys Instance transitions to Active state and knowledge base download starts.
Note: There can be only one Qualys instance per deployment.
Navigate to Policy > Policy Elements > Results > Authorization > Authorization Profiles. Add new profile. Under Common Tasks select Vulnerability Assessment checkbox.
On-Demand scan interval should be selected according to your network design.
Authorization Profile contains those av-pairs:
cisco-av-pair = on-demand-scan-interval=48
cisco-av-pair = periodic-scan-enabled=0
cisco-av-pair = va-adapter-instance=796440b7-09b5-4f3b-b611-199fb81a4b99
They are sent to network devices within Access-Accept packet, although the real purpose of them is to tell MNT Node that Scan should be triggered. MNT instructs TC-NAC node to communicate with Qualys Cloud.
The first connection triggers VA Scan. When the scan is finished, CoA Reauthentication is triggered to apply new policy if it is matched.
In order to verify which vulnerabilities were detected, navigate to Context Visibility > Endpoints. Check per endpoints Vulnerabilities with the Scores given to it by Qualys.
When selecting particular endpoint, more details about each Vulnerability appears, including Title and CVEID's.
In Operations > TC-NAC Live Logs, you can see Old vs New authorization policies applied and details on CVSS_Base_Score.
Note: Authorization conditions are done based on CVSS_Base_Score, which equals to the highest Vulnerability Score detected on the endpoint.
When the VA Scan is triggered by TC-NAC Qualys queues the Scan, it can be viewed at Scans > Scans
Afterwards it transitions to Running, meaning Qualys cloud has instructed the Qualys Scanner to perform actual scanning
While the Scanner performs the Scan, you should see "Scanning..." sign in the top right corner of the Qualys Guard
Once the Scan is done it transitions to Finished state. You can view results at Scans > Scans, select required scan and click on View Summary or View Results.
In the Report itself you can see Detailed Results, where detected Vulnerabilities are shown.
In order to enable debugs on ISE navigate to Administration > System > Logging > Debug Log Configuration, select TC-NAC Node and change the Log Level va-runtime and va-service component to DEBUG
Logs to be checked - varuntime.log. You can tail it directly from ISE CLI:
ISE21-3ek/admin# show logging application varuntime.log tail
TC-NAC Docker received instruction to perform Scan for particular endpoint.
2016-06-28 19:06:30,823 DEBUG [Thread-70][] va.runtime.admin.mnt.EndpointFileReader -:::::- VA: Read va runtime. [{"operationType":1,"macAddress":"C0:4A:00:14:8D:4B","ondemandScanInterval":"48","isPeriodicScanEnabled":false,"periodicScanEnabledString":"0","vendorInstance":"796440b7-09b5-4f3b-b611-199fb81a4b99","psnHostName":"ISE21-3ek","heartBeatTime":0,"lastScanTime":0}]
2016-06-28 19:06:30,824 DEBUG [Thread-70][] va.runtime.admin.vaservice.VaServiceRemotingHandler -:::::- VA: received data from Mnt: {"operationType":1,"macAddress":"C0:4A:00:14:8D:4B","ondemandScanInterval":"48","isPeriodicScanEnabled":false,"periodicScanEnabledString":"0","vendorInstance":"796440b7-09b5-4f3b-b611-199fb81a4b99","psnHostName":"ISE21-3ek","heartBeatTime":0,"lastScanTime":0}
Once the result is received it stores all Vulnerability data in the Context Directory.
2016-06-28 19:25:02,020 DEBUG [pool-311-thread-8][] va.runtime.admin.vaservice.VaServiceMessageListener -:::::- Got message from VaService: [{"macAddress":"C0:4A:00:14:8D:4B","ipAddress":"10.62.148.63","lastScanTime":1467134394000,"vulnerabilities":["{\"vulnerabilityId\":\"QID-90783\",\"cveIds\":\"CVE-2012-0002,CVE-2012-0152,\",\"cvssBaseScore\":\"9.3\",\"cvssTemporalScore\":\"7.7\",\"vulnerabilityTitle\":\"Microsoft Windows Remote Desktop Protocol Remote Code Execution Vulnerability (MS12-020)\",\"vulnerabilityVendor\":\"Qualys\"}","{\"vulnerabilityId\":\"QID-38173\",\"cveIds\":\"\",\"cvssBaseScore\":\"9.4\",\"cvssTemporalScore\":\"6.9\",\"vulnerabilityTitle\":\"SSL Certificate - Signature Verification Failed Vulnerability\",\"vulnerabilityVendor\":\"Qualys\"}","{\"vulnerabilityId\":\"QID-90882\",\"cveIds\":\"\",\"cvssBaseScore\":\"4.7\",\"cvssTemporalScore\":\"4\",\"vulnerabilityTitle\":\"Windows Remote Desktop Protocol Weak Encryption Method Allowed\",\"vulnerabilityVendor\":\"Qualys\"}","{\"vulnerabilityId\":\"QID-90043\",\"cveIds\":\"\",\"cvssBaseScore\":\"7.3\",\"cvssTemporalScore\":\"6.3\",\"vulnerabilityTitle\":\"SMB Signing Disabled or SMB Signing Not Required\",\"vulnerabilityVendor\":\"Qualys\"}","{\"vulnerabilityId\":\"QID-38601\",\"cveIds\":\"CVE-2013-2566,CVE-2015-2808,\",\"cvssBaseScore\":\"4.3\",\"cvssTemporalScore\":\"3.7\",\"vulnerabilityTitle\":\"SSL/TLS use of weak RC4 cipher\",\"vulnerabilityVendor\":\"Qualys\"}"]}]
2016-06-28 19:25:02,127 DEBUG [pool-311-thread-8][] va.runtime.admin.vaservice.VaServiceMessageListener -:::::- VA: Save to context db, lastscantime: 1467134394000, mac: C0:4A:00:14:8D:4B
2016-06-28 19:25:02,268 DEBUG [pool-311-thread-8][] va.runtime.admin.vaservice.VaAdminServiceContext -:::::- VA: sending elastic search json to pri-lan
2016-06-28 19:25:02,272 DEBUG [pool-311-thread-8][] va.runtime.admin.vaservice.VaPanRemotingHandler -:::::- VA: Saved to elastic search: {C0:4A:00:14:8D:4B=[{"vulnerabilityId":"QID-90783","cveIds":"CVE-2012-0002,CVE-2012-0152,","cvssBaseScore":"9.3","cvssTemporalScore":"7.7","vulnerabilityTitle":"Microsoft Windows Remote Desktop Protocol Remote Code Execution Vulnerability (MS12-020)","vulnerabilityVendor":"Qualys"}, {"vulnerabilityId":"QID-38173","cveIds":"","cvssBaseScore":"9.4","cvssTemporalScore":"6.9","vulnerabilityTitle":"SSL Certificate - Signature Verification Failed Vulnerability","vulnerabilityVendor":"Qualys"}, {"vulnerabilityId":"QID-90882","cveIds":"","cvssBaseScore":"4.7","cvssTemporalScore":"4","vulnerabilityTitle":"Windows Remote Desktop Protocol Weak Encryption Method Allowed","vulnerabilityVendor":"Qualys"}, {"vulnerabilityId":"QID-90043","cveIds":"","cvssBaseScore":"7.3","cvssTemporalScore":"6.3","vulnerabilityTitle":"SMB Signing Disabled or SMB Signing Not Required","vulnerabilityVendor":"Qualys"}, {"vulnerabilityId":"QID-38601","cveIds":"CVE-2013-2566,CVE-2015-2808,","cvssBaseScore":"4.3","cvssTemporalScore":"3.7","vulnerabilityTitle":"SSL/TLS use of weak RC4 cipher","vulnerabilityVendor":"Qualys"}]}
Logs to be checked - vaservice.log. You can tail it directly from ISE CLI:
ISE21-3ek/admin# show logging application vaservice.log tail
Vulnerability Assessment Request Submitted to Adapter
2016-06-28 17:07:13,200 DEBUG [endpointPollerScheduler-3][] cpm.va.service.util.VaServiceUtil -:::::- VA SendSyslog systemMsg : [{"systemMsg":"91019","isAutoInsertSelfAcsInstance":true,"attributes":["TC-NAC.ServiceName","Vulnerability Assessment Service","TC-NAC.Status","VA request submitted to adapter","TC-NAC.Details","VA request submitted to adapter for processing","TC-NAC.MACAddress","C0:4A:00:14:8D:4B","TC-NAC.IpAddress","10.62.148.63","TC-NAC.AdapterInstanceUuid","796440b7-09b5-4f3b-b611-199fb81a4b99","TC-NAC.VendorName","Qualys","TC-NAC.AdapterInstanceName","QUALYS_VA"]}]
AdapterMessageListener checks each 5 minutes the status of the scan, until it is finished.
2016-06-28 17:09:43,459 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Message from adapter : {"AdapterInstanceName":"QUALYS_VA","AdapterInstanceUid":"a70031d6-6e3b-484a-adb0-627f30248ad0","VendorName":"Qualys","OperationMessageText":"Number of endpoints queued for checking scan results: 1, Number of endpoints queued for scan: 0, Number of endpoints for which the scan is in progress: 0"}
2016-06-28 17:14:43,760 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Message from adapter : {"AdapterInstanceName":"QUALYS_VA","AdapterInstanceUid":"a70031d6-6e3b-484a-adb0-627f30248ad0","VendorName":"Qualys","OperationMessageText":"Number of endpoints queued for checking scan results: 0, Number of endpoints queued for scan: 0, Number of endpoints for which the scan is in progress: 1"}
2016-06-28 17:19:43,837 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Message from adapter : {"AdapterInstanceName":"QUALYS_VA","AdapterInstanceUid":"a70031d6-6e3b-484a-adb0-627f30248ad0","VendorName":"Qualys","OperationMessageText":"Number of endpoints queued for checking scan results: 0, Number of endpoints queued for scan: 0, Number of endpoints for which the scan is in progress: 1"}
2016-06-28 17:24:43,867 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Message from adapter : {"AdapterInstanceName":"QUALYS_VA","AdapterInstanceUid":"a70031d6-6e3b-484a-adb0-627f30248ad0","VendorName":"Qualys","OperationMessageText":"Number of endpoints queued for checking scan results: 0, Number of endpoints queued for scan: 0, Number of endpoints for which the scan is in progress: 1"}
Adapter is gets QID's, CVE's along with the CVSS Scores
2016-06-28 17:24:57,556 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Message from adapter : {"requestedMacAddress":"C0:4A:00:14:8D:4B","scanStatus":"ASSESSMENT_SUCCESS","lastScanTimeLong":1467134394000,"ipAddress":"10.62.148.63","vulnerabilities":[{"vulnerabilityId":"QID-38173","cveIds":"","cvssBaseScore":"9.4","cvssTemporalScore":"6.9","vulnerabilityTitle":"SSL Certificate - Signature Verification Failed Vulnerability","vulnerabilityVendor":"Qualys"},{"vulnerabilityId":"QID-90043","cveIds":"","cvssBaseScore":"7.3","cvssTemporalScore":"6.3","vulnerabilityTitle":"SMB Signing Disabled or SMB Signing Not Required","vulnerabilityVendor":"Qualys"},{"vulnerabilityId":"QID-90783","cveIds":"CVE-2012-0002,CVE-2012-0152,","cvssBaseScore":"9.3","cvssTemporalScore":"7.7","vulnerabilityTitle":"Microsoft Windows Remote Desktop Protocol Remote Code Execution Vulnerability (MS12-020)","vulnerabilityVendor":"Qualys"},{"vulnerabilityId":"QID-38601","cveIds":"CVE-2013-2566,CVE-2015-2808,","cvssBaseScore":"4.3","cvssTemporalScore":"3.7","vulnerabilityTitle":"SSL/TLS use of weak RC4 cipher","vulnerabilityVendor":"Qualys"},{"vulnerabilityId":"QID-90882","cveIds":"","cvssBaseScore":"4.7","cvssTemporalScore":"4","vulnerabilityTitle":"Windows Remote Desktop Protocol Weak Encryption Method Allowed","vulnerabilityVendor":"Qualys"}]}
2016-06-28 17:25:01,282 INFO [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Endpoint Details sent to IRF is {"C0:4A:00:14:8D:4B":[{"vulnerability":{"CVSS_Base_Score":9.4,"CVSS_Temporal_Score":7.7},"time-stamp":1467134394000,"title":"Vulnerability","vendor":"Qualys"}]}
2016-06-28 17:25:01,853 DEBUG [endpointPollerScheduler-2][] cpm.va.service.util.VaServiceUtil -:::::- VA SendSyslog systemMsg : [{"systemMsg":"91019","isAutoInsertSelfAcsInstance":true,"attributes":["TC-NAC.ServiceName","Vulnerability Assessment Service","TC-NAC.Status","VA successfully completed","TC-NAC.Details","VA completed; number of vulnerabilities found: 5","TC-NAC.MACAddress","C0:4A:00:14:8D:4B","TC-NAC.IpAddress","10.62.148.63","TC-NAC.AdapterInstanceUuid","796440b7-09b5-4f3b-b611-199fb81a4b99","TC-NAC.VendorName","Qualys","TC-NAC.AdapterInstanceName","QUALYS_VA"]}]
Issue 1. ISE gets Vulnerability Report with CVSS_Base_Score of 0.0 and CVSS_Temporal_Score of 0.0, while Qualys Cloud report contains Vulnerabilities detected.
Problem:
While checking the Report from Qualys Cloud you can see detected Vulnerabilities, however on ISE you do not see them.
Debugs seen in vaservice.log:
2016-06-02 08:30:10,323 INFO [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Endpoint Details sent to IRF is {"C0:4A:00:15:75:C8":[{"vulnerability":{"CVSS_Base_Score":0.0,"CVSS_Temporal_Score":0.0},"time-stamp":1464855905000,"title":"Vulnerability","vendor":"Qualys"}]}
Solution:
The reason for cvss score being zero is either that it has no vulnerabilities or the cvss scoring was not enabled in Qualys Cloud before you configure the adapter through UI. Knowledgebase containing cvss scoring feature enabled is downloaded after the adapter is configured first time. You have to ensure that CVSS Scoring was enabled before, adapter instance was created on ISE. It can be done under Vulnerability Management > Reports > Setup > CVSS > Enable CVSS Scoring
Issue 2. ISE does not get results back from the Qualys Cloud, even though correct Authorization Policy was hit.
Problem:
Corrected Authorization Policy was matched, which should trigger VA Scan. Despite that fact no scan is done.
Debugs seen in vaservice.log:
2016-06-28 16:19:15,401 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Message from adapter : (Body:'[B@6da5e620(byte[311])'MessageProperties [headers={}, timestamp=null, messageId=null, userId=null, appId=null, clusterId=null, type=null, correlationId=null, replyTo=null, contentType=application/octet-stream, contentEncoding=null, contentLength=0, deliveryMode=PERSISTENT, expiration=null, priority=0, redelivered=false, receivedExchange=irf.topic.va-reports, receivedRoutingKey=, deliveryTag=9830, messageCount=0])
2016-06-28 16:19:15,401 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Message from adapter : {"requestedMacAddress":"24:77:03:3D:CF:20","scanStatus":"SCAN_ERROR","scanStatusMessage":"Error triggering scan: Error while trigering on-demand scan code and error as follows 1904: none of the specified IPs are eligible for Vulnerability Management scanning.","lastScanTimeLong":0,"ipAddress":"10.201.228.102"}
2016-06-28 16:19:15,771 DEBUG [SimpleAsyncTaskExecutor-2][] cpm.va.service.processor.AdapterMessageListener -:::::- Adapter scan result failed for Macaddress:24:77:03:3D:CF:20, IP Address(DB): 10.201.228.102, setting status to failed
2016-06-28 16:19:16,336 DEBUG [endpointPollerScheduler-2][] cpm.va.service.util.VaServiceUtil -:::::- VA SendSyslog systemMsg : [{"systemMsg":"91008","isAutoInsertSelfAcsInstance":true,"attributes":["TC-NAC.ServiceName","Vulnerability Assessment Service","TC-NAC.Status","VA Failure","TC-NAC.Details","Error triggering scan: Error while trigering on-demand scan code and error as follows 1904: none of the specified IPs are eligible for Vulnerability Management scanning.","TC-NAC.MACAddress","24:77:03:3D:CF:20","TC-NAC.IpAddress","10.201.228.102","TC-NAC.AdapterInstanceUuid","796440b7-09b5-4f3b-b611-199fb81a4b99","TC-NAC.VendorName","Qualys","TC-NAC.AdapterInstanceName","QUALYS_VA"]}]
Solution:
Qualys Cloud indicates that ip address of the endpoint is not eligible for the Scanning, please ensure you have added ip address of the endpoint to Vulnerability Management > Assets > Host Assets > New > IP Tracked Hosts
Revision | Publish Date | Comments |
---|---|---|
1.0 |
29-Jun-2016 |
Initial Release |