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 il parser che normalizza i dati di log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser 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 System administration (Amministrazione di sistema) > Configuration (Configurazione) > Log configuration (Configurazione log) > Remote log targets (Destinazioni log remoti).
  3. Fai clic su Crea.
  4. Nella finestra Crea, specifica i valori per i seguenti campi:

    Campo Descrizione
    Nome Nome del programma di inoltro di Google Security Operations.
    Descrizione Descrizione del programma di inoltro di Google Security Operations.
    Indirizzo IP L'indirizzo IP del programma di inoltro 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; valore predefinito).
    Lunghezza massima Il valore consigliato è 1024.
  5. Fai clic su Invia. Viene visualizzata la finestra Destinazioni log remoti con la nuova configurazione della destinazione log remota.

  6. Nella console Cisco Secure ACS, seleziona System administration > Configuration > Log configuration > Logging categories > Per-Instance.

  7. Seleziona ACS e poi fai clic su Configura.

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

    Nella scheda Generale, per alcune categorie di logging, 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 logging, ad eccezione di quelle per cui la gravità non può essere modificata, ad esempio avviso di controllo AAA, avviso di contabilità, 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 destinazioni remote per altre categorie di logging, ripeti i passaggi da 8 a 10.

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

  1. Vai a Impostazioni SIEM > Forwarder.
  2. Fai clic su Aggiungi nuovo inoltro.
  3. Nel campo Nome 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 raccoglitore.
  5. Nel campo Nome del raccoglitore, digita un nome.
  6. Seleziona Cisco ACS come Tipo di log.
  7. Seleziona Syslog come Tipo di raccoglitore.
  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 si trova il raccoglitore e gli indirizzi dei dati syslog.
    • Porta: specifica la porta di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
  9. Fai clic su Invia.

Per saperne di più sui forwarder di Google Security Operations, consulta la documentazione sui forwarder di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di forwarder, consulta Configurazione del forwarder per tipo. Se riscontri problemi durante la creazione degli inoltri, contatta l'assistenza di Google Security Operations.

Riferimento alla mappatura dei campi

Questo parser gestisce i log Cisco ACS, inclusi autenticazione, contabilità, 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 gli esiti positivi/negativi dell'autenticazione, la contabilità 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 Logic
Acct-Authentic additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Authentic.
Acct-Delay-Time additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Delay-Time.
Acct-Input-Octets additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Input-Octets.
Acct-Input-Packets additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Input-Packets.
Acct-Output-Octets additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Output-Octets.
Acct-Output-Packets additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Output-Packets.
Acct-Session-Id additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Session-Id.
Acct-Session-Time additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Session-Time.
Acct-Status-Type additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Status-Type.
Acct-Terminate-Cause additional.fields[].value.string_value Il valore viene estratto dal campo Acct-Terminate-Cause.
ACSVersion additional.fields[].value.string_value Il valore viene estratto dal campo ACSVersion.
AD-Domain principal.group.group_display_name Il valore viene estratto dal campo AD-Domain.
AD-IP-Address principal.ip Il valore viene estratto dal campo AD-IP-Address.
Called-Station-ID additional.fields[].value.string_value Il valore viene estratto dal campo Called-Station-ID.
Calling-Station-ID additional.fields[].value.string_value Il valore viene estratto dal campo Calling-Station-ID.
Class additional.fields[].value.string_value Il valore viene estratto dal campo Class.
CmdSet (non mappato) Non mappato all'oggetto IDM.
ConfigVersionId additional.fields[].value.number_value Il valore viene estratto dal campo ConfigVersionId e convertito in un numero in virgola mobile.
DestinationIPAddress target.ip, intermediary.ip Il valore viene estratto dal campo DestinationIPAddress. intermediary.ip è derivato da Device IP Address.
DestinationPort target.port Il valore viene estratto dal campo DestinationPort e convertito in un numero intero.
Device IP Address intermediary.ip Il valore viene estratto dal campo Device IP Address.
Device Port intermediary.port Il valore viene estratto dal campo Device Port e convertito in un numero intero.
DetailedInfo security_result.summary, security_result.description, security_result.action Se DetailedInfo è "Authentication succeed" (Autenticazione riuscita), security_result.summary è "successful login occurred" (Accesso riuscito) e security_result.action è ALLOW (Consenti). Se DetailedInfo contiene "Invalid username or password specified" (Nome utente o password specificati non validi), security_result.summary è "failed login occurred" (accesso non riuscito) e security_result.action è BLOCK (BLOCCO). security_result.description è derivato da log_header.
Framed-IP-Address principal.ip Il valore viene estratto dal campo Framed-IP-Address.
Framed-Protocol additional.fields[].value.string_value Il valore viene estratto dal campo Framed-Protocol.
NAS-IP-Address target.ip Il valore viene estratto dal campo NAS-IP-Address.
NAS-Port additional.fields[].value.string_value Il valore viene estratto dal campo NAS-Port.
NAS-Port-Id target.port Il valore viene estratto dal campo NAS-Port-Id e convertito in un numero intero.
NAS-Port-Type additional.fields[].value.string_value Il valore viene estratto dal campo NAS-Port-Type.
NetworkDeviceName target.hostname Il valore viene estratto dal campo NetworkDeviceName.
Protocol additional.fields[].value.string_value Il valore viene estratto dal campo Protocol.
RadiusPacketType (non mappato) Non mappato all'oggetto IDM.
Remote-Address principal.ip, target.ip Il valore viene estratto dal campo Remote-Address e analizzato come indirizzo IP. È mappato su principal.ip per gli eventi di autenticazione e su target.ip per gli eventi di contabilità e diagnostica.
RequestLatency additional.fields[].value.string_value Il valore viene estratto dal campo RequestLatency.
Response principal.user.userid Se Response contiene "User-Name", il nome utente viene estratto e mappato a principal.user.userid.
SelectedAccessService additional.fields[].value.string_value Il valore viene estratto dal campo SelectedAccessService.
SelectedAuthenticationIdentityStores security_result.detection_fields[].value Il valore viene estratto dal campo SelectedAuthenticationIdentityStores.
SelectedAuthorizationProfiles security_result.detection_fields[].value Il valore viene estratto dal campo SelectedAuthorizationProfiles.
Service-Type additional.fields[].value.string_value Il valore viene estratto dal campo Service-Type.
Tunnel-Client-Endpoint additional.fields[].value.string_value Il valore viene estratto dal campo Tunnel-Client-Endpoint e analizzato come indirizzo IP.
User target.user.userid Il valore viene estratto 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 estratto dal campo ac-user-agent.
cat metadata.description Il valore viene estratto dal campo cat.
device-mac principal.mac Il valore viene estratto 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 estratto dal campo device-platform-version.
device-public-mac principal.mac Il valore viene estratto dal campo device-public-mac, i trattini vengono sostituiti con i due punti e il valore viene convertito in minuscolo.
device-type principal.asset.hardware.model Il valore viene estratto dal campo device-type.
device-uid principal.asset.asset_id Il valore viene estratto dal campo device-uid e preceduto da "ID ASSET: ".
device-uid-global principal.asset.product_object_id Il valore viene estratto dal campo device-uid-global.
hostname principal.hostname Il valore viene estratto dal campo hostname.
ip:source-ip principal.ip Il valore viene estratto 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 estratto dal campo log_header.
log_id metadata.product_log_id Il valore viene estratto dal campo log_id.
log_type metadata.product_event_type Il valore viene estratto dal campo log_type.
message_severity (non mappato) Non mappato all'oggetto IDM.
product metadata.product_name Il valore viene estratto dal campo product.
product_version metadata.product_version Il valore viene estratto dal campo product_version.
server_host target.hostname Il valore viene estratto dal campo server_host.
timestamp metadata.event_timestamp Il valore viene estratto dal campo timestamp e dal campo timezone (dopo aver rimosso i due punti). Il valore combinato viene analizzato come un timestamp.
url network.dns.questions[].name Il valore viene estratto dal campo url.
vendor metadata.vendor_name Il valore viene estratto 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", poi potenzialmente sovrascritto dal campo product. Imposta il valore su "CISCO_ACS". Imposta il valore su "USERNAME_PASSWORD". Imposta su "TACACS". Imposta "UDP" per gli eventi di diagnostica e contabilità RADIUS. Imposta "DNS" per gli eventi DNS. Derivato dal campo security_action, che viene impostato in base all'esito positivo o negativo dell'accesso. Imposta "accesso riuscito" per gli accessi riusciti e "accesso non riuscito" per gli accessi non riusciti. Potrebbe anche essere impostato su "superato" per determinati eventi di diagnostica dell'archivio delle identità. Imposta su "BASSA" per i tentativi di accesso non riusciti. Costruito anteponendo "ASSET ID: " al campo device-uid.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.