Raccogliere i log di Cisco Secure ACS

Supportato in:

Questo documento descrive come raccogliere i log di Cisco Secure Access Control Server (ACS) utilizzando un forwarder di Google Security Operations.

Per ulteriori informazioni, consulta Importazione dei dati in Google Security Operations.

Un'etichetta di importazione identifica l'analizzatore sintattico che normalizza i dati dei log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano all'interprete con l'etichetta di importazione CISCO_ACS.

Configura Cisco Secure ACS

  1. Accedi alla console Cisco Secure ACS utilizzando le credenziali di amministratore.
  2. Nella console Cisco Secure ACS, seleziona Amministrazione di sistema > Configurazione > Configurazione dei log > Destinatari dei log remoti.
  3. Fai clic su Crea.
  4. Nella finestra Crea, specifica i valori per i seguenti campi:

    Campo Descrizione
    Nome Nome del forwarder di Google Security Operations.
    Descrizione Descrizione del forwarder di Google Security Operations.
    Indirizzo IP Indirizzo IP del forwarder di Google Security Operations.
    Utilizzare le opzioni syslog avanzate Seleziona questa opzione per attivare le opzioni syslog avanzate.
    Tipo target Seleziona syslog TCP o syslog UDP.
    Porta Utilizza una porta alta, ad esempio 10514.
    Codice struttura LOCAL6 (codice = 22; predefinito).
    Lunghezza massima Il valore consigliato è 1024.
  5. Fai clic su Invia. Viene visualizzata la finestra Destinazioni log remote con la nuova configurazione del destinazione log remoto.

  6. Nella console Cisco Secure ACS, seleziona Amministrazione di sistema > Configurazione > Configurazione log > Categorie di log > Per istanza.

  7. Seleziona ACS e poi fai clic su Configura.

  8. Nella finestra Per istanza, seleziona una categoria di log e poi fai clic su Modifica.

    Nella scheda Generale, per alcune categorie di log, la gravità del logging deve essere impostata su predefinita o come fornita dal fornitore.

    Per Cisco Secure ACS, la gravità predefinita è Avviso per tutte le categorie di registrazione, ad eccezione di quelle per le quali non è possibile modificare la gravità, come avviso di controllo AAA, avviso di fatturazione, avviso di controllo amministrativo e operativo e avviso di statistiche di sistema.

  9. Fai clic sulla scheda Target syslog remoto e sposta il target remoto appena creato da Target disponibili a Target selezionati.

  10. Fai clic su Invia.

  11. Per configurare i target remoti per altre categorie di log, ripeti i passaggi da 8 a 10.

Configura il forwarder di Google Security Operations e syslog per importare i log di Cisco Secure ACS

  1. Vai a Impostazioni SIEM > Inoltratori.
  2. Fai clic su Aggiungi nuovo mittente.
  3. Nel campo Nome del forwarder, inserisci un nome univoco per il forwarder.
  4. Fai clic su Invia. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del collettore.
  5. Digita un nome nel campo Nome del raccoglitore.
  6. Seleziona Cisco ACS come Tipo di log.
  7. Seleziona Syslog come Tipo di collettore.
  8. Configura i seguenti parametri di input obbligatori:
    • Protocollo: specifica il protocollo.
    • Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui risiede il collector e gli indirizzi dei dati syslog.
    • Porta: specifica la porta di destinazione in cui risiede il raccoglitore e che ascolta i dati syslog.
  9. Fai clic su Invia.

Per ulteriori informazioni sui forwarder di Google Security Operations, consulta la documentazione sui forwarder di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di inoltro, consulta Configurazione degli inoltratori per tipo. Se riscontri problemi durante la creazione dei reindirizzamenti, contatta l'assistenza di Google Security Operations.

Riferimento alla mappatura dei campi

Questo parser gestisce i log di Cisco ACS, tra cui autenticazione, fatturazione, diagnostica e statistiche di sistema. Utilizza pattern grok per estrarre i campi da vari formati di log (SYSLOG + KV, LEEF), normalizza i timestamp e i fusi orari e mappa i campi chiave all'UDM, gestendo diversi tipi di log con una logica specifica per i successi/errori di autenticazione, il calcolo del costo TACACS+ e gli eventi RADIUS. Inoltre, arricchisce l'UDM con campi aggiuntivi come informazioni sul dispositivo e dettagli di autenticazione.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
Acct-Authentic additional.fields[].value.string_value Il valore viene preso dal campo Acct-Authentic.
Acct-Delay-Time additional.fields[].value.string_value Il valore viene preso dal campo Acct-Delay-Time.
Acct-Input-Octets additional.fields[].value.string_value Il valore viene preso dal campo Acct-Input-Octets.
Acct-Input-Packets additional.fields[].value.string_value Il valore viene preso dal campo Acct-Input-Packets.
Acct-Output-Octets additional.fields[].value.string_value Il valore viene preso dal campo Acct-Output-Octets.
Acct-Output-Packets additional.fields[].value.string_value Il valore viene preso dal campo Acct-Output-Packets.
Acct-Session-Id additional.fields[].value.string_value Il valore viene preso dal campo Acct-Session-Id.
Acct-Session-Time additional.fields[].value.string_value Il valore viene preso dal campo Acct-Session-Time.
Acct-Status-Type additional.fields[].value.string_value Il valore viene preso dal campo Acct-Status-Type.
Acct-Terminate-Cause additional.fields[].value.string_value Il valore viene preso dal campo Acct-Terminate-Cause.
ACSVersion additional.fields[].value.string_value Il valore viene preso dal campo ACSVersion.
AD-Domain principal.group.group_display_name Il valore viene preso dal campo AD-Domain.
AD-IP-Address principal.ip Il valore viene preso dal campo AD-IP-Address.
Called-Station-ID additional.fields[].value.string_value Il valore viene preso dal campo Called-Station-ID.
Calling-Station-ID additional.fields[].value.string_value Il valore viene preso dal campo Calling-Station-ID.
Class additional.fields[].value.string_value Il valore viene preso dal campo Class.
CmdSet (non mappato) Non mappato all'oggetto IDM.
ConfigVersionId additional.fields[].value.number_value Il valore viene preso dal campo ConfigVersionId e convertito in un valore a virgola mobile.
DestinationIPAddress target.ip, intermediary.ip Il valore viene preso dal campo DestinationIPAddress. intermediary.ip è derivato da Device IP Address.
DestinationPort target.port Il valore viene preso dal campo DestinationPort e convertito in un numero intero.
Device IP Address intermediary.ip Il valore viene preso dal campo Device IP Address.
Device Port intermediary.port Il valore viene preso dal campo Device Port e convertito in un numero intero.
DetailedInfo security_result.summary, security_result.description, security_result.action Se DetailedInfo è "Autenticazione riuscita", security_result.summary è "Accesso riuscito" e security_result.action è ALLOW. Se DetailedInfo contiene "Invalid username or password specified" (Nome utente o password non validi specificati), security_result.summary è "failed login occurred" (Accesso non riuscito) e security_result.action è BLOCK. security_result.description è derivato da log_header.
Framed-IP-Address principal.ip Il valore viene preso dal campo Framed-IP-Address.
Framed-Protocol additional.fields[].value.string_value Il valore viene preso dal campo Framed-Protocol.
NAS-IP-Address target.ip Il valore viene preso dal campo NAS-IP-Address.
NAS-Port additional.fields[].value.string_value Il valore viene preso dal campo NAS-Port.
NAS-Port-Id target.port Il valore viene preso dal campo NAS-Port-Id e convertito in un numero intero.
NAS-Port-Type additional.fields[].value.string_value Il valore viene preso dal campo NAS-Port-Type.
NetworkDeviceName target.hostname Il valore viene preso dal campo NetworkDeviceName.
Protocol additional.fields[].value.string_value Il valore viene preso dal campo Protocol.
RadiusPacketType (non mappato) Non mappato all'oggetto IDM.
Remote-Address principal.ip, target.ip Il valore viene preso dal campo Remote-Address e analizzato come indirizzo IP. È mappato a principal.ip per gli eventi di autenticazione e a target.ip per gli eventi di fatturazione e diagnostica.
RequestLatency additional.fields[].value.string_value Il valore viene preso dal campo RequestLatency.
Response principal.user.userid Se Response contiene "Nome-utente", il nome utente viene estratto e mappato a principal.user.userid.
SelectedAccessService additional.fields[].value.string_value Il valore viene preso dal campo SelectedAccessService.
SelectedAuthenticationIdentityStores security_result.detection_fields[].value Il valore viene preso dal campo SelectedAuthenticationIdentityStores.
SelectedAuthorizationProfiles security_result.detection_fields[].value Il valore viene preso dal campo SelectedAuthorizationProfiles.
Service-Type additional.fields[].value.string_value Il valore viene preso dal campo Service-Type.
Tunnel-Client-Endpoint additional.fields[].value.string_value Il valore viene preso dal campo Tunnel-Client-Endpoint e analizzato come indirizzo IP.
User target.user.userid Il valore viene preso dal campo User.
UserName target.user.userid, principal.mac Se UserName è un indirizzo MAC, viene analizzato e mappato a principal.mac. In caso contrario, viene mappato a target.user.userid.
ac-user-agent network.http.user_agent Il valore viene preso dal campo ac-user-agent.
cat metadata.description Il valore viene preso dal campo cat.
device-mac principal.mac Il valore viene preso dal campo device-mac, vengono aggiunti i due punti e il valore viene convertito in minuscolo. Se device-mac è "00", viene sostituito con "00:00:00:00:00:00".
device-platform principal.asset.platform_software.platform Se device-platform è "win", il valore "WINDOWS" viene assegnato a principal.asset.platform_software.platform.
device-platform-version principal.asset.platform_software.platform_version Il valore viene preso dal campo device-platform-version.
device-public-mac principal.mac Il valore viene preso dal campo device-public-mac, i trattini vengono sostituiti con due punti e il valore viene convertito in lettere minuscole.
device-type principal.asset.hardware.model Il valore viene preso dal campo device-type.
device-uid principal.asset.asset_id Il valore viene preso dal campo device-uid e preceduto da "ID ASSET: ".
device-uid-global principal.asset.product_object_id Il valore viene preso dal campo device-uid-global.
hostname principal.hostname Il valore viene preso dal campo hostname.
ip:source-ip principal.ip Il valore viene preso dal campo ip:source-ip.
kv.ADDomain (non mappato) Non mappato all'oggetto IDM.
kv.Airespace-Wlan-Id (non mappato) Non mappato all'oggetto IDM.
kv.AuthenticationIdentityStore (non mappato) Non mappato all'oggetto IDM.
kv.AVPair (non mappato) Non mappato all'oggetto IDM.
kv.CVPN3000/ASA/PIX7.x-DAP-Tunnel-Group-Name (non mappato) Non mappato all'oggetto IDM.
kv.CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools (non mappato) Non mappato all'oggetto IDM.
kv.ExternalGroups (non mappato) Non mappato all'oggetto IDM.
kv.FailureReason (non mappato) Non mappato all'oggetto IDM.
kv.IdentityAccessRestricted (non mappato) Non mappato all'oggetto IDM.
kv.IdentityGroup (non mappato) Non mappato all'oggetto IDM.
kv.NAS-Identifier (non mappato) Non mappato all'oggetto IDM.
kv.SelectedShellProfile (non mappato) Non mappato all'oggetto IDM.
kv.ServiceSelectionMatchedRule (non mappato) Non mappato all'oggetto IDM.
kv.State (non mappato) Non mappato all'oggetto IDM.
kv.Step (non mappato) Non mappato all'oggetto IDM.
kv.Tunnel-Medium-Type (non mappato) Non mappato all'oggetto IDM.
kv.Tunnel-Private-Group-ID (non mappato) Non mappato all'oggetto IDM.
kv.Tunnel-Type (non mappato) Non mappato all'oggetto IDM.
kv.UseCase (non mappato) Non mappato all'oggetto IDM.
kv.UserIdentityGroup (non mappato) Non mappato all'oggetto IDM.
kv.VendorSpecific (non mappato) Non mappato all'oggetto IDM.
kv.attribute-131 (non mappato) Non mappato all'oggetto IDM.
kv.attribute-89 (non mappato) Non mappato all'oggetto IDM.
kv.cisco-av-pair (non mappato) Non mappato all'oggetto IDM.
kv.cisco-av-pair:CiscoSecure-Group-Id (non mappato) Non mappato all'oggetto IDM.
leef_version (non mappato) Non mappato all'oggetto IDM.
log_header metadata.description Il valore viene preso dal campo log_header.
log_id metadata.product_log_id Il valore viene preso dal campo log_id.
log_type metadata.product_event_type Il valore viene preso dal campo log_type.
message_severity (non mappato) Non mappato all'oggetto IDM.
product metadata.product_name Il valore viene preso dal campo product.
product_version metadata.product_version Il valore viene preso dal campo product_version.
server_host target.hostname Il valore viene preso dal campo server_host.
timestamp metadata.event_timestamp Il valore viene preso dal campo timestamp e dal campo timezone (dopo aver rimosso i due punti). Il valore combinato viene analizzato come timestamp.
url network.dns.questions[].name Il valore viene preso dal campo url.
vendor metadata.vendor_name Il valore viene preso dal campo vendor. Impostato inizialmente su "GENERIC_EVENT", poi potenzialmente sovrascritto in base a log_type e ai campi analizzati. Può essere "USER_LOGIN", "USER_UNCATEGORIZED", "NETWORK_DNS", "NETWORK_CONNECTION", "STATUS_UPDATE" o "STATUS_UNCATEGORIZED". Impostato inizialmente su "Cisco", quindi potenzialmente sovrascritto dal campo vendor. Impostato inizialmente su "ACS", quindi potenzialmente sovrascritto dal campo product. Impostato su "CISCO_ACS". Impostato su "USERNAME_PASSWORD". Impostato su "TACACS". Imposta su "UDP" per gli eventi di fatturazione e diagnostica RADIUS. Imposta su "DNS" per gli eventi DNS. Derivato dal campo security_action, che viene impostato in base al fatto che l'accesso sia andato a buon fine o meno. Imposta su "Accesso riuscito" per gli accessi riusciti e su "Accesso non riuscito" per gli accessi non riusciti. Può essere impostato anche su "passed" per determinati eventi di diagnostica dell'archivio delle identità. Imposta su "LOW" per i tentativi di accesso non riusciti. Viene creato anteponendo "ASSET ID: " al campo device-uid.

Modifiche

2023-09-26

  • Miglioramento:
  • È stato inizializzato "hostname" su null e aggiunto un controllo del nome host non null prima di impostare "metadata.event_type" su "STATUS_UPDATE".
  • È stato aggiunto un controllo dell'indirizzo IP valido a "kv.DeviceIPAddress", "kv.Remote-Address" prima della mappatura ai campi UDM.

2022-08-19

  • Miglioramento:
  • "Nome utente" è stato mappato a "principal.user.userid".
  • È stato rinominato ip:source-ip in "source_ip" e mappato a "principal.ip".
  • "kv.audit-session-id" è stato rinominato in "kv.audit_session_id" e mappato a "network.session_id".
  • "kv.AuthenticationMethod" è stato mappato a "additional.fields".
  • "kv.SelectedAccessService" è stato mappato a "additional.fields".
  • "kv.SelectedAuthorizationProfiles" è stato mappato a "security_result.detection_fields".
  • "kv.SelectedAuthenticationIdentityStores" è stato mappato a "security_result.detection_fields".
  • "kv.device-uid-global" è stato mappato a "principal.asset.product_object_id".
  • "kv.device-uid" è stato mappato a "principal.asset.asset_id".
  • "metadata.event_type" è stato mappato a "USER_UNCATEGORIZED" se kv.DestinationIPAddress e kv.NAS-IP-Address e kv.NAS-IP-Address e kv.UserName e kv.NetworkDeviceName sono null.
  • È stato aggiunto il supporto per i log con formato LEEF.

2022-06-14

  • Miglioramento: è stato modificato il pattern grok per analizzare i log di log_type = "CSCOacs_Passed_Authentications" che non andavano a buon fine a causa di più spazi.
  • È stato sostituito il valore di "device-mac" con il valore fittizio "00:00:00:00:00:00" per il tipo di log "CSCOacs_RADIUS_Accounting" in caso di valore non valido (00).

2022-06-06

  • Miglioramento: sono stati analizzati i log di tipo "CSCOacs_Passed_Authentications" che non contengono "DestinationIPAddress" o "NAS-IP-Address".
  • Modifica di metadata.event_type da "USER_UNCATEGORIZED" a "USER_LOGIN" per i log di tipo "CSCOacs_Passed_Authentications"

2022-05-05

  • Miglioramento: i log appena importati che non hanno il codice messaggio vengono analizzati e ignorati.

2022-04-27

  • Miglioramento: sono stati analizzati i log con log_type=CISE_TACACS_Accounting.