In questo documento viene descritto come usare il modulo di monitoraggio e aggiornamento su un accessorio Cisco FireSight per rilevare gli attacchi e risolvere automaticamente il problema all'attacco usando Cisco Identity Service Engine (ISE) come policy server. L'esempio fornito in questo documento descrive il metodo usato per il monitoraggio e l'aggiornamento di un utente VPN remoto che si autentica tramite ISE, ma può essere usato anche per un utente cablato o wireless 802.1x/MAB/WebAuth.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Utilizzare le informazioni fornite in questa sezione per configurare il sistema.
L'esempio descritto in questo documento utilizza la seguente configurazione della rete:
Di seguito è riportato il flusso per questa configurazione della rete:
Come accennato in precedenza, questo scenario funziona per qualsiasi tipo di sessione autenticata (VPN, 802.1x cablata/MAB/Webauth, wireless 802.1x/MAB/Webauth) a condizione che l'ISE venga utilizzata per l'autenticazione e che il dispositivo di accesso alla rete supporti RADIUS CoA (tutti i moderni dispositivi Cisco).
La VM dispone di tre interfacce, una per la gestione e due per l'ispezione in linea (interna/esterna).
Tutto il traffico proveniente dagli utenti VPN si sposta tramite FirePower.
Dopo aver installato le licenze corrette e aver aggiunto il dispositivo FirePower, selezionare Policies > Access Control (Policy > Controllo di accesso) e creare i criteri di accesso utilizzati per indirizzare il traffico HTTP a 172.16.32.1:
Tutto il resto del traffico viene accettato.
La versione corrente del modulo ISE condiviso sul portale della community è ISE 1.2 Remediation Beta 1.3.19:
Passare a Criteri > Azioni > Risoluzioni > Moduli e installare il file:
Dovrebbe quindi essere creata l'istanza corretta. Passare a Criteri > Azioni > Risoluzioni > Istanze e fornire l'indirizzo IP del nodo di amministrazione delle policy (PAN), insieme alle credenziali amministrative ISE necessarie per l'API REST (si consiglia un utente separato con il ruolo Amministratore ERS):
Anche l'indirizzo IP di origine (utente non autorizzato) deve essere utilizzato per il monitoraggio e l'aggiornamento:
È necessario configurare una regola di correlazione specifica. Questa regola viene attivata all'inizio della connessione che corrisponde alla regola di controllo di accesso configurata in precedenza (DropTCP80). Per configurare la regola, passare a Criteri > Correlazione > Gestione regole:
Questa regola viene utilizzata nei criteri di correlazione. Passare a Criteri > Correlazione > Gestione criteri per creare un nuovo criterio, quindi aggiungere la regola configurata. Fare clic su Risolvi a destra e aggiungere due azioni: monitoraggio e aggiornamento per sourceIP (configurato in precedenza) e syslog:
Assicurarsi di abilitare il criterio di correlazione:
Un'ASA che funziona come gateway VPN è configurata in modo da usare ISE per l'autenticazione. È inoltre necessario abilitare la contabilità e il RADIUS CoA:
tunnel-group SSLVPN-FIRESIGHT general-attributes
address-pool POOL-VPN
authentication-server-group ISE
accounting-server-group ISE
default-group-policy POLICY
aaa-server ISE protocol radius
interim-accounting-update periodic 1
dynamic-authorization
aaa-server ISE (inside) host 172.16.31.202
key *****
webvpn
enable outside
enable inside
anyconnect-essentials
anyconnect image disk0:/anyconnect-win-4.0.00051-k9.pkg 1
anyconnect enable
tunnel-group-list enable
error-recovery disable
Selezionare Amministrazione > Dispositivi di rete e aggiungere l'appliance ASA che agirà come client RADIUS.
Passare a Amministrazione > Sistema > Impostazioni > Adaptive Network Control per abilitare l'API e la funzionalità di quarantena:
Per creare un elenco di controllo di accesso scaricabile (DACL, Downloadable Access Control List) da utilizzare per gli host in quarantena, selezionare Policy > Results > Authorization > Downloadable ACL (Policy > Risultati > Autorizzazione > ACL scaricabile).
Passare a Criterio > Risultati > Autorizzazione > Profilo autorizzazione e creare un profilo di autorizzazione con il nuovo DACL:
È necessario creare due regole di autorizzazione. La prima regola (ASA-VPN) fornisce l'accesso completo a tutte le sessioni VPN terminate sull'appliance ASA. La regola ASA-VPN_quarantine viene trovata per la sessione VPN riautenticata quando l'host è già in quarantena (è disponibile un accesso di rete limitato).
Per creare queste regole, passare a Criterio > Autorizzazione:
Per verificare che la configurazione funzioni correttamente, consultare le informazioni contenute in questa sezione.
L'ASA crea la sessione senza alcun DACL (accesso completo alla rete):
asav# show vpn-sessiondb details anyconnect
Session Type: AnyConnect
Username : cisco Index : 37
Assigned IP : 172.16.50.50 Public IP : 192.168.10.21
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Essentials
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)RC4 DTLS-Tunnel: (1)AES128
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA1 DTLS-Tunnel: (1)SHA1
Bytes Tx : 18706 Bytes Rx : 14619
Group Policy : POLICY Tunnel Group : SSLVPN-FIRESIGHT
Login Time : 03:03:17 UTC Wed May 20 2015
Duration : 0h:01m:12s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : ac10206400025000555bf975
Security Grp : none
......
DTLS-Tunnel:
<some output omitted for clarity>
Una volta che l'utente tenta di accedere a http://172.16.32.1, il criterio di accesso viene raggiunto, il traffico corrispondente viene bloccato in linea e il messaggio syslog viene inviato dall'indirizzo IP di gestione FirePower:
May 24 09:38:05 172.16.31.205 SFIMS: [Primary Detection Engine
(cbe45720-f0bf-11e4-a9f6-bc538df1390b)][AccessPolicy] Connection Type: Start, User:
Unknown, Client: Unknown, Application Protocol: Unknown, Web App: Unknown,
Access Control Rule Name: DropTCP80, Access Control Rule Action: Block,
Access Control Rule Reasons: Unknown, URL Category: Unknown, URL Reputation:
Risk unknown, URL: Unknown, Interface Ingress: eth1, Interface Egress: eth2,
Security Zone Ingress: Internal, Security Zone Egress: External, Security
Intelligence Matching IP: None, Security Intelligence Category: None, Client Version:
(null), Number of File Events: 0, Number of IPS Events: 0, TCP Flags: 0x0,
NetBIOS Domain: (null), Initiator Packets: 1, Responder Packets: 0, Initiator Bytes:
66, Responder Bytes: 0, Context: Unknown, SSL Rule Name: N/A, SSL Flow Status: N/A,
SSL Cipher Suite: N/A, SSL Certificate: 0000000000000000000000000000000000000000,
SSL Subject CN: N/A, SSL Subject Country: N/A, SSL Subject OU: N/A, SSL Subject Org:
N/A, SSL Issuer CN: N/A, SSL Issuer Country: N/A, SSL Issuer OU: N/A, SSL Issuer Org:
N/A, SSL Valid Start Date: N/A, SSL Valid End Date: N/A, SSL Version: N/A, SSL Server
Certificate Status: N/A, SSL Actual Action: N/A, SSL Expected Action: N/A, SSL Server
Name: (null), SSL URL Category: N/A, SSL Session ID:
0000000000000000000000000000000000000000000000000000000000000000, SSL Ticket Id:
0000000000000000000000000000000000000000, {TCP} 172.16.50.50:49415 -> 172.16.32.1:80
Viene rilevato il criterio di correlazione della gestione FireSight (Defense Center), indicato dal messaggio syslog inviato dal Defense Center:
May 24 09:37:10 172.16.31.206 SFIMS: Correlation Event:
CorrelateTCP80Block/CorrelationPolicy at Sun May 24 09:37:10 2015 UTCConnection Type:
FireSIGHT 172.16.50.50:49415 (unknown) -> 172.16.32.1:80 (unknown) (tcp)
In questa fase, il Defense Center utilizza la chiamata all'API REST (quarantena) per ISE, una sessione HTTPS che può essere decrittografata in Wireshark (con il plug-in Secure Sockets Layer (SSL) e la chiave privata del certificato amministrativo PAN):
In GET viene passata la richiesta dell'indirizzo IP dell'autore dell'attacco (172.16.50.50) e l'host viene messo in quarantena dall'ISE.
Per confermare l'esito positivo della risoluzione, selezionare Analisi > Correlazione > Stato:
In questa fase, ISE port-management.log notifica che il CoA deve essere inviato:
DEBUG [RMI TCP Connection(142)-127.0.0.1][] cisco.cpm.prrt.impl.PrRTLoggerImpl
-::::- send() - request instanceof DisconnectRequest
clientInstanceIP = 172.16.31.202
clientInterfaceIP = 172.16.50.50
portOption = 0
serverIP = 172.16.31.100
port = 1700
timeout = 5
retries = 3
attributes = cisco-av-pair=audit-session-id=ac10206400021000555b9d36
Calling-Station-ID=192.168.10.21
Acct-Terminate-Cause=Admin Reset
Il runtime (prrt-server.log) invia il messaggio di terminazione CoA al server AND, che termina la sessione (ASA):
DEBUG,0x7fad17847700,cntx=0000010786,CPMSessionID=2e8cdb62-bc0a-4d3d-a63e-f42ef8774893,
CallingStationID=08:00:27:DA:EF:AD, RADIUS PACKET: Code=40 (
DisconnectRequest) Identifier=9 Length=124
[4] NAS-IP-Address - value: [172.16.31.100]
[31] Calling-Station-ID - value: [08:00:27:DA:EF:AD]
[49] Acct-Terminate-Cause - value: [Admin Reset]
[55] Event-Timestamp - value: [1432457729]
[80] Message-Authenticator - value:
[00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00]
[26] cisco-av-pair - value: [audit-session-id=ac10206400021000555b9d36],
RadiusClientHandler.cpp:47
Il file ise.psc invia una notifica simile a questa:
INFO [admin-http-pool51][] cisco.cpm.eps.prrt.PrrtManager -:::::- PrrtManager
disconnect session=Session CallingStationID=192.168.10.21 FramedIPAddress=172.16.50.50
AuditSessionID=ac10206400021000555b9d36 UserName=cisco PDPIPAddress=172.16.31.202
NASIPAddress=172.16.31.100 NASPortID=null option=PortDefault
Quando si passa a Operazioni > Autenticazione, dovrebbe essere visualizzato il messaggio Autorizzazione dinamica riuscita.
L'utente finale invia una notifica per indicare che la sessione è disconnessa (per 802.1x/MAB/guest wired/wireless, questo processo è trasparente):
I dettagli dei log di Cisco AnyConnect mostrano:
10:48:05 AM Establishing VPN...
10:48:05 AM Connected to 172.16.31.100.
10:48:20 AM Disconnect in progress, please wait...
10:51:20 AM The secure gateway has terminated the VPN connection.
The following message was received from the secure gateway: COA initiated
Poiché la VPN sempre attiva è configurata, la nuova sessione viene creata immediatamente. Questa volta, viene trovata la regola ISE ASA-VPN_quarantine, che fornisce l'accesso alla rete limitato:
Una sessione con accesso limitato può essere verificata sull'appliance ASA con il comando show vpn-sessiondb detail anyconnect CLI:
asav# show vpn-sessiondb detail anyconnect
Session Type: AnyConnect Detailed
Username : cisco Index : 39
Assigned IP : 172.16.50.50 Public IP : 192.168.10.21
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Essentials
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)RC4 DTLS-Tunnel: (1)AES128
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA1 DTLS-Tunnel: (1)SHA1
Bytes Tx : 11436 Bytes Rx : 4084
Pkts Tx : 8 Pkts Rx : 36
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : POLICY Tunnel Group : SSLVPN-FIRESIGHT
Login Time : 03:43:36 UTC Wed May 20 2015
Duration : 0h:00m:10s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : ac10206400027000555c02e8
Security Grp : none
......
DTLS-Tunnel:
<some output ommited for clarity>
Filter Name : #ACSACL#-IP-DENY_ALL_QUARANTINE-5561da76
Le informazioni contenute in questa sezione permettono di risolvere i problemi relativi alla configurazione.
Lo script di monitoraggio e aggiornamento di ISE si trova nel seguente percorso:
root@Defence:/var/sf/remediations/ISE_1.3.19# ls
_lib_ ise-instance ise-test.pl ise.pl module.template
Si tratta di un semplice script perl che utilizza il sottosistema di registrazione standard di SourceFire (SF). Una volta eseguito il monitoraggio e l'aggiornamento, è possibile confermare i risultati tramite /var/log/messages:
May 24 19:30:13 Defence SF-IMS[2414]: ise.pl:SourceIP-Remediation [INFO] [2414]
quar_ip:172.16.50.50 (1->3 sid:1) Starting remediation
May 24 19:30:13 Defence SF-IMS[2414]: ise.pl:SourceIP-Remediation [INFO] [2414]
quar_ip:172.16.50.50 (1->3 sid:1) 172.16.31.202 - Success 200 OK - Quarantined
172.16.50.50 as admin
È importante abilitare il servizio Adaptive Network Control sull'ISE. Per visualizzare i log dettagliati in un processo di runtime (prrt-management.log e prrt-server.log), è necessario abilitare il livello DEBUG per Runtime-AAA. Per abilitare i debug, selezionare Amministrazione > Sistema > Log > Debug Log Configuration (Amministrazione > Sistema > Log > Configurazione log di debug).
È inoltre possibile passare a Operazioni > Report > Endpoint e Utenti > Adaptive Network Control Audit per visualizzare le informazioni per ogni tentativo e risultato di una richiesta di quarantena:
Per informazioni su un bug ISE relativo a errori di sessione VPN (802.1x/MAB funziona correttamente), fare riferimento all'ID bug Cisco CSCuu41058 (ISE 1.4 Endpoint Quarantine Inconsistency and VPN Error).
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
17-Nov-2015 |
Versione iniziale |