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 Advance Malware Protection (AMP) on Identity Services Engine (ISE) 2.1. Threat severity levels and vulnerability assessment results can be used to dynamically control the access level of an endpoint or a user. Posture Services is also be covered as a part of this document.
Note: The purpose of the document is to describe ISE 2.1 Integration with AMP, Posture Services are shown as they are required when we provision AMP from ISE.
Cisco recommends that you have basic knowledge of these topics:
Cisco Identity Service Engine
Advance Malware Protection
The information in this document is based on these software and hardware versions:
1. Client connects to the network, the AMP_Profile is assigned and user is redirected to Anyconnect Provisioning Portal. If Anyconnect is not detected on the machine, all configured modules (VPN, AMP, Posture) are installed. Configuration is pushed for each module along with that profile
2. Once Anyconnect is installed, posture assessment runs
3. AMP Enabler module installs FireAMP connector
4. When client tries to download malicious software, AMP connector throws a warning message and reports it to AMP Cloud
5. AMP Cloud sends this information to ISE
In order to download the connector, navigate to Management > Download Connector. Then select type and Download FireAMP (Windows, Android, Mac, Linux). In this case Audit was selected and the installation file of FireAMP for Windows.
Note: Downloading this file generates an .exe file called Audit_FireAMPSetup.exe in the example. This file was sent to the web server to be available once the user asks for the configuration of AMP.
Navigate to Policy > Policy Elements > Conditions > Posture > File Condition.You can see that a simple condition for file existence has been created. File has to exist if endpoint is to be compliant with the policy verified by the Posture module:
This condition is used for a requirement:
The requirement is used in the Posture policy for Microsoft Windows systems:
AMP Profile contains information where the Windows Installer is located. Windows Installer was downloaded earlier from the AMP Cloud. It should be accessible from the client machine. Certificate of the HTTPS Server, where Installer is located should be trusted by client machine as well.
Note: VPNDisable_ServiceProfile.xml is used to hide VPN title, since this example does not use VPN module. This is the content of VPNDisable_ServiceProfile.xml:
<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<ServiceDisable>true</ServiceDisable>
</ClientInitialization>
</AnyConnectProfile>
The AnyConnect configuration created earlier is referenced in the Client Provisioning rules
First the redirection to Client Provisioning Portal takes place. Standard authorization policies for posture are used.
Afterwards, once Compliant, full access is assigned
Enable TC-NAC Services under Administration > Deployment > Edit Node. Check Enable Threat Centric NAC Service checkbox.
Navigate to Administration > Threat Centric NAC > Third Party Vendors > Add. Click on Save
It should transition to Ready to Configure state. Click on Ready to Configure
Select Cloud and click on Next
Click the FireAMP link and login as admin in FireAMP.
Click Allow in the Applications panel to authorize the Streaming Event Export request. After that action, you are redirected back to Cisco ISE
Select the events (for example, suspicious download, connection to suspicious domain, executed malware, java compromise) that you would like to monitor. The summary of the adapter instance configuration is displayed in the configuration summary page. Adapter Instance transitions to Connected/Active State.
Connect to wireless network via PEAP (MSCHAPv2).
Once connected redirection to Client Provisioning Portal takes place.
Since there is nothing installed on the client machine, ISE prompts for AnyConnect client installation.
Network Setup Assistant (NSA) application should be downloaded and run from client machine.
NSA takes care of installing required components and profiles.
Once installation is finished, AnyConnect Posture module performs compliance check.
As full access is given, if endpoint is compliant, AMP is downloaded and installed from the webserver specified earlier in the AMP Profile.
AMP Connector shows up.
To test AMP in action the Eicar string contained in a zip file is downloaded. The Threat is detected, and reported to AMP Cloud.
To verify the details of the threat Dashboard of AMP cloud can be used.
In order to get more details about the threat, filepath and fingerpints, you can click on the Host, where malware was detected.
To View or Deregister Instance of ISE you can navigate to Accounts > Applications
On ISE itself regular posture flow is seen, redirection takes place first to check network compliance. As soon as the endpoint is compliant, CoA Reauth is sent and new profile with PermitAccess is assigned.
To view the detected Threats you can navigate to Context Visibility > Endpoints > Compromised Endpoints
If you select the endpoint and navigate to Threat tab, more details are displayed.
When a threat event is detected for an endpoint, you can select the MAC address of the endpoint on the Compromised Endpoints page and apply an ANC policy (if configured, for example Quarantine). Alternatively you can issue Change of Authorization to terminate the session.
If CoA Session Terminate is selected, ISE sends CoA Disconnect and client loses access to the network.
In order to enable debugs on ISE navigate to Administration > System > Logging > Debug Log Configuration, select TC-NAC Node and change the Log Level of TC-NAC component to DEBUG
Logs to be checked - irf.log. You can tail it directly from ISE CLI:
ISE21-3ek/admin# show logging application irf.log tail
Threat Even is received from the AMP Cloud
2016-06-30 18:27:48,617 DEBUG [IRF-AMQP-Dispatcher-Notification-0][] cisco.cpm.irf.amqp.NotificationDispatcher:processDelivery:53 -:::::- calling notification handler com.cisco.cpm.irf.service.IrfNotificationHandler$MyNotificationHandler@3fac8043 Message{messageType=NOTIFICATION, messageId=THREAT_EVENT, content='{"c0:4a:00:14:8d:4b": [{"incident": {"Impact_Qualification": "Painful"}, "time-stamp": 1467304068599, "vendor": "AMP", "title": "Threat Detected"}]}', priority=0, timestamp=Thu Jun 30 18:27:48 CEST 2016, amqpEnvelope=Envelope(deliveryTag=79, redeliver=false, exchange=irf.topic.events, routingKey=irf.events.threat), amqpProperties=#contentHeader<basic>(content-type=application/json, content-encoding=null, headers=null, delivery-mode=null, priority=0, correlation-id=null, reply-to=null, expiration=null, message-id=THREAT_EVENT, timestamp=null, type=NOTIFICATION, user-id=null, app-id=fe80e16e-cde8-4d7f-a836-545416ae56f4, cluster-id=null)}
2016-06-30 18:27:48,617 DEBUG [IRF-AMQP-Dispatcher-Notification-0][] cisco.cpm.irf.service.IrfNotificationHandler:handle:140 -:::::- Added to the pending queue: Message{messageType=NOTIFICATION, messageId=THREAT_EVENT, content='{"c0:4a:00:14:8d:4b": [{"incident": {"Impact_Qualification": "Painful"}, "time-stamp": 1467304068599, "vendor": "AMP", "title": "Threat Detected"}]}', priority=0, timestamp=Thu Jun 30 18:27:48 CEST 2016, amqpEnvelope=Envelope(deliveryTag=79, redeliver=false, exchange=irf.topic.events, routingKey=irf.events.threat), amqpProperties=#contentHeader<basic>(content-type=application/json, content-encoding=null, headers=null, delivery-mode=null, priority=0, correlation-id=null, reply-to=null, expiration=null, message-id=THREAT_EVENT, timestamp=null, type=NOTIFICATION, user-id=null, app-id=fe80e16e-cde8-4d7f-a836-545416ae56f4, cluster-id=null)}
2016-06-30 18:27:48,617 DEBUG [IRF-AMQP-Dispatcher-Notification-0][] cisco.cpm.irf.amqp.NotificationDispatcher:processDelivery:59 -:::::- DONE processing notification: Envelope(deliveryTag=79, redeliver=false, exchange=irf.topic.events, routingKey=irf.events.threat) #contentHeader<basic>(content-type=application/json, content-encoding=null, headers=null, delivery-mode=null, priority=0, correlation-id=null, reply-to=null, expiration=null, message-id=THREAT_EVENT, timestamp=null, type=NOTIFICATION, user-id=null, app-id=fe80e16e-cde8-4d7f-a836-545416ae56f4, cluster-id=null)
2016-06-30 18:27:48,706 DEBUG [IRF-EventProcessor-0][] cisco.cpm.irf.service.IrfEventProcessor:parseNotification:221 -:::::- parsing notification: Message{messageType=NOTIFICATION, messageId=THREAT_EVENT, content='{"c0:4a:00:14:8d:4b": [{"incident": {"Impact_Qualification": "Painful"}, "time-stamp": 1467304068599, "vendor": "AMP", "title": "Threat Detected"}]}', priority=0, timestamp=Thu Jun 30 18:27:48 CEST 2016, amqpEnvelope=Envelope(deliveryTag=79, redeliver=false, exchange=irf.topic.events, routingKey=irf.events.threat), amqpProperties=#contentHeader<basic>(content-type=application/json, content-encoding=null, headers=null, delivery-mode=null, priority=0, correlation-id=null, reply-to=null, expiration=null, message-id=THREAT_EVENT, timestamp=null, type=NOTIFICATION, user-id=null, app-id=fe80e16e-cde8-4d7f-a836-545416ae56f4, cluster-id=null)}
Information about the threat is sent to PAN
2016-06-30 18:27:48,724 DEBUG [IRF-EventProcessor-0][] cisco.cpm.irf.service.IrfEventProcessor:storeEventsInES:366 -:::::- Adding threat event info to send to PAN - c0:4a:00:14:8d:4b {incident={Impact_Qualification=Painful}, time-stamp=1467304068599, vendor=AMP, title=Threat Detected}