Splunk & Pxgrid Adaptive Network Control (Anc) Mitigation Workflow Actions
Splunk & Pxgrid Adaptive Network Control (Anc) Mitigation Workflow Actions
Table of Contents
About this Document ...................................................................................................................................................... 4
Splunk Add-on GUI Setup .............................................................................................................................................. 5
EPS Workflow Actions ............................................................................................................................... 6
pxGrid ANC Workflow Mitigation Actions ................................................................................................... 7
Customizing Workflow Actions ..................................................................................................................................... 8
ISE EPS RESTFul API and pxGrid Workflow Actions ................................................................................ 8
Customizing EPS RESTful API Workflow Actions ...................................................................................... 9
Quarantine by IP Address .................................................................................................................... 9
Quarantine by MACAddress .............................................................................................................. 10
Quarantine by Framed IP Address .................................................................................................... 11
Unquarantine by IP Address .............................................................................................................. 12
Unquarantine by MAC Address ......................................................................................................... 13
Customizing pxGrid ANC Workflow Mitigation Actions ............................................................................. 14
ANC Quarantine by IP Address ......................................................................................................... 14
ANC Quarantine by MAC Address..................................................................................................... 15
ANC UnQuarantine by IP Address..................................................................................................... 16
ANC UnQuarantine by MAC Address ................................................................................................ 17
Enabling ISE for EPS (Endpoint Protection Service) ................................................................................................. 18
Enabling the ISE Restful APIs .................................................................................................................. 18
Create Authorization Policy for Quarantine .............................................................................................. 19
Configuring Logging Categories in ISE ...................................................................................................................... 20
Introduction to pxGrid client Java Keystores ............................................................................................................. 21
ISE pxGrid and Splunk pxGrid client certificate generation...................................................................................... 22
Introduction .............................................................................................................................................. 22
ISE pxGrid persona configuration ............................................................................................................ 23
pxGrid client certificate configuration ....................................................................................................... 25
Configuring Splunk to Receive Syslog Events from ISE ........................................................................................... 31
Splunk pxGrid ANC Testing ......................................................................................................................................... 32
pxGrid Operation ...................................................................................................................................... 33
Troubleshooting ............................................................................................................................................................ 34
Cannot connect to ISE pxGrid node ......................................................................................................... 34
Check keystoreFilename and password .................................................................................................. 34
Check the Splunk pxGrid log file .............................................................................................................. 35
References ..................................................................................................................................................................... 36
Introduction
Splunk is a powerful tool for analyzing information in your organization by collecting, storing, alerting, reporting, and
analyzing machine data. With Cisco platform Exchange Grid (pxGrid) Splunk is able to proactively act on received
network security syslog events and quarantine/unquarantine an endpoint, by issuing pxGrid Adaptive Network Control
(ANC) workflow actions.
The Splunk-for-ISE Add-on 2.1 or higher features an automated setup GUI for ISE EPS (Endpoint Protection Service)
RESTFul APIs and pxGrid ANC (Adaptive Network Control) mitigation actions via Splunk workflow actions.
The ISE EPS workflow actions work with ISE 1.2 and with ISE 1.3. The pxGrid ANC mitigation actions work with
ISE 1.3.
The initial release of Splunk for ISE Add-on 2.1 for pxGrid operation requires additional Cisco files, please see your
Cisco Account team.
In this document ISE will be configured for pxGrid operation in a stand-alone environment using the self-signed ISE
identity certificates and creating and generating self-signed certificates for the pxGrid client, Splunk.
Please see “Deploying pxGrid in an ISE Distributed Environment” for deploying ISE in a productional environment
using Certificate Authority (CA) signed certificates.
All EPS and ANC workflow actions can be customized as illustrated in this document. ISE logging categories have
been enabled to trigger the syslog events sent to Splunk. These events contain the real IP or MAC addresses in the
Framed_IP_Address, IpAddress, MacAddress field received by Splunk and are defined in the workflow actions.
This document includes the self-signed pxGrid client certificate generation process for Splunk. A use case is also
covered whereby Splunk registers to the ISE pxGrid node as a pxGrid client and subscribes to the EndpointProtection
capability topic to perform a quarantine mitigation action on the endpoint with results seen in ISE. Please note that ISE
will be deployed in a Stand-alone environment.
This document also covers workflow customizations based on the enabled ISE logged categories followed be a
troubleshooting and reference section.
You can enable the ISE desired ISE version for ISE 1.2 or ISE 1.3 from the drop-down menus as well as
the workflow actions. These workflow actions can be customized under Settings->Fields->Workflow
actions.
Step 1 Enabling pxGrid connections and pxGrid ANC Mitigation workflow actions
Splunk->Apps->Splunk Add-on for Cisco ISE->Setup
Passed Authentications
Failed Attempts
Guest
Quarantine by MACAddress
The EPS Quarantine by MAC Address uses the real MAC address contained in the MacAddress field or in the
$MacAddress$ variable of the received syslog event from the following ISE enabled logging categories.
Passed Authentications
Failed Attempts
Guest
Profiler
Passed Authentications
Failed Attempts
RADIUS Accounting
RADIUS Diagnostics
Profiler
Unquarantine by IP Address
The EPS UnQuarantine by IP Address uses the real IP address contained in the IpAddress field or in the $IpAddress$
variable of the received syslog event from the following ISE enabled logging categories.
Passed Authentications
Failed Attempts
Guest
Passed Authentications
Failed Attempts
Guest
Profiler
Passed Authentications
Failed Attempts
Guest
Passed Authentications
Failed Attempts
Guest
Profiler
Passed Authentications
Failed Attempts
Guest
Passed Authentications
Failed Attempts
Guest
Profiler
The keystorePassword contains the password of the pxGrid client identity certificate when converted to DER and
imported into the keystoreFilename
The truststorePassword contains the password of the CA root certificate, MnT node certificate certificate, self-signed
ISE identity certificate when converted to DER and imported into the truststoreFilename.
The keystoreFilename, keystorePassword, truststoreFilename, truststorePassword are used in the pxGrid scripts for
SASL authentication and connection to the pxGrid persona.
In the case of Splunk, the pxGrid script, pxgremediate python script, is called from a pxGrid.jar file which invokes the
pxGrid ANC workflow mitigation actions in the Splunk search bar.
Introduction
You should have openssl, or keytool on your Linux or MAC server. If ether of these are missing, consult your Linux
Operating System for installation of these files.
As a requirement, please download the Oracle Java Development Kit for your Linux operating system:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
In order to install the Oracle Java Development Kit, you must uninstall the older version of Java that exists on your
system.
Note: If you are using a MAC for testing, please see: https://www.java.com/en/download/help/mac_uninstall_java.xml for uninstalling Java
If you are using Centos 6.5, please refer to the Appendices Removing Java and Installing JDK 8.0 on Centos 6.5
export
PATH=/usr/lib64/qt3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jeppich/bin:/usr
/java/jdk1.7.0_51/bin
Step 2 Import the saved ISE .pem file into the ISE trusted certificate store
Administration->System->Certificates->Trusted Certificates->Browse and upload file->Submit
Enable “trust for authentication within ISE”
You will see the imported ISE Identity certificate in the trusted certificate store
Note: There may be a delay before the ISE publishing nodes appear. The certificates must be installed before the pxGrid persona is enabled.
A CSR (Certificate Signing Request) (i.e. mac.csr) is generated from the private key. A challenge key is
required which will be used later on for keystore management
The certificate (mac.cer) will be self-generated from the private key on the Linux host
A PKCS#12 file (mac.p12) will be created from the public/private key pair and root certificate. This will be
used for keystore creation of the keystoreFilename (JKS) and truststoreFilename (JKS)
Import the self-signed ISE identity certificate from the ISE primary node (isemnt.pem)
Note: In a productional environment, this be imported from the ISE MnT node. This is also used for bulk session downloads but not in the Splunk
implementation. This file was also renamed to make it easier to work with.
Convert the ISE identity certificate PEM file (isemnt.pem) to a DER format (isemnt.der) and add to the
keytoreFileName keystore (i.e. mac.jks)
Import the pxGrid client certificate (i.e. mac.cer) into the keystoreFilename (JKS) (i.e. mac.jks)
Import the ISE identity certificate (i.e. isemnt.der) into the truststoreFilename (JKS) (i.e. caroot1.jks)
Copy both keystoreFilename (mac.jks) and truststoreFilename (caroot1.jks) files into the SPLUNK directory
(i.e. /Applications/splunk/etc/apps/Splunk_TA_cisco-ise/bin/certs folder
Step 1 Generate a private key (i.e. mac.key) for the pxGrid client
Step 2 Generate the self-signed CSR(mac.csr) request and provide a challenge password (i.e. cisco123)
Note: The challenge password will become the keystoreFilename password
Note: Keep the same password throughout this documnent, easier to maintain, and cut down on errors
openssl req -x509 -days 365 -key mac.key -in mac.csr -out mac.cer
Step 4 A PKCS12 file (i.e. mac.p12) will be created from the private key.
Step 5 The mac.p12 will be imported into the identity keystore (i.e. mac.jks). This can be a random filename with
a .jks extension. This will serve as the keystoreFilename and associated keystorePassword in the pxGrid
scripts.
Step 6 Export only the public ISE Identity certificate into the pxGrid client, note that this will be in .pem format.
You can rename the file with .pem extension to make it easier to read, in this example the file was renamed
to isemnt.pem.
Extensions:
Note: If you receive the following message the certficate was already added to a pre-existing keystore, you
can say “no” and still be okay. I selected “yes” so we can verify thay the certificate was added later on.
Step 10 Import the ISE identity cert into the truststoreFilename (i.e. caroot1.jks) which serves as the truststore
Filename and truststorePassword in the pxGrid scripts.
SHA1: 5A:7B:02:E4:07:A1:D2:0B:7D:A5:AE:83:27:3B:E7:33:33:30:1E:32
SHA256:
C4:21:6C:6F:5B:06:F3:2C:D7:26:35:CB:BE:2B:1B:FF:0E:EE:09:91:F6:B6:54:0C:6F:63:CB:43:1F:77:F2:37
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
Step 11 Upload the pxGrid client public certificate (mac.cer) into the ISE trusted certificate store.
Administration->System Certificates->Trusted Certificates->Upload the mac.cer from the pxGrid client
Step 12 Copy the identity keystoreFilename (mac.jks) and truststoreFilename (caroot1.jks) into the
/Applications/splunk/etc/apps/Splunk_TA_cisco-ise/bin/certs folder
Note: The path is relevant where you installed Splunk
Step 13 Edit the java_keystores_here file and include the path of the truststoreFilename and keystoreFilename
If you review the Operations->Events in ISE, you should see that the endpoint has been quarantined
pxGrid Operation
When the pxGrid workflow is initiated, you should see the Splunk register as the pxGrid client as indicated by the
“username” in the Splunk pxGrid setup
The pxGrid client will also subscribe to the EndpointProtection Capability to invoke the mitigation quarantine
mitigation action
Troubleshooting
Cannot connect to ISE pxGrid node
Ensure that the FQDN of Splunk server is DNS resolvable with ISE
Run the Splunk search string on the Linux command line to help diagnose the issue
If you see the following:
References
For more detailed information regarding pxGrid, please see:
http://www.cisco.com/c/dam/en/us/td/docs/security/ise/how_to/HowTo-84-
Configure_and_Test_Integration_with_Cisco_pxGrid.pdf
For Cisco ISE pxGrid deployment guide, please see:
https://cisco.box.com/s/o6jt09pkvo9sew4novnnvbqyfvx63h9b
Splunk reference for ISE EPS RESTful workflow actions:
http://www.cisco.com/c/dam/en/us/td/docs/security/ise/how_to/HowTo-85-
Integrating_and_Monitoring_Cisco_ISE_User-Device_Context_in_Splunk.pdf