Recoger registros de Cisco Secure ACS
En este documento se describe cómo puede recoger registros de Cisco Secure Access Control Server (ACS) mediante un reenviador de Google Security Operations.
Para obtener más información, consulta Ingestión de datos en Google Security Operations.
Una etiqueta de ingestión identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de ingestión CISCO_ACS
.
Configurar Cisco Secure ACS
- Inicia sesión en la consola de Cisco Secure ACS con las credenciales de administrador.
- En la consola de Cisco Secure ACS, selecciona Administración del sistema > Configuración > Configuración de registros > Destinos de registros remotos.
- Haz clic en Crear.
En la ventana Crear, especifique los valores de los siguientes campos:
Campo Descripción Nombre Nombre del reenviador de Google Security Operations. Descripción Descripción del reenviador de Google Security Operations. Dirección IP Dirección IP del reenviador de Google Security Operations. Usar opciones avanzadas de syslog Selecciona esta opción para habilitar las opciones avanzadas de syslog. Tipo de destino Selecciona Syslog TCP o Syslog UDP. Puerto Usa un puerto alto, como 10514. Código de centro LOCAL6 (código = 22; valor predeterminado). Longitud máxima El valor recomendado es 1024. Haz clic en Enviar. Aparecerá la ventana Destinos de registro remotos con la nueva configuración del destino de registro remoto.
En la consola de Cisco Secure ACS, seleccione Administración del sistema > Configuración > Configuración de registro > Categorías de registro > Por instancia.
Selecciona ACS y, a continuación, haz clic en Configurar.
En la ventana Por instancia, selecciona una categoría de registro y haz clic en Editar.
En la pestaña General, en algunas categorías de registro, la gravedad del registro debe ser la predeterminada o la que proporcione el proveedor.
En Cisco Secure ACS, la gravedad predeterminada es Advertencia para todas las categorías de registro, excepto para aquellas cuya gravedad no se puede cambiar, como las de auditoría de AAA, aviso de contabilidad, aviso de auditoría administrativa y operativa, y aviso de estadísticas del sistema.
Haga clic en la pestaña Destino syslog remoto y mueva el destino remoto que acaba de crear de Destinos disponibles a Destinos seleccionados.
Haz clic en Enviar.
Para configurar destinos remotos para otras categorías de registro, repite los pasos del 8 al 10.
Configurar el reenviador de Google Security Operations y syslog para ingerir registros de Cisco Secure ACS
- Ve a Configuración de SIEM > Reenviadores.
- Haz clic en Añadir nuevo remitente.
- En el campo Nombre del reenviador, introduce un nombre único para el reenviador.
- Haz clic en Enviar. Se añade el reenviador y se muestra la ventana Añadir configuración de recopilador.
- En el campo Nombre del recolector, escribe un nombre.
- Seleccione Cisco ACS como Tipo de registro.
- Seleccione Syslog como Tipo de recogida.
- Configure los siguientes parámetros de entrada obligatorios:
- Protocolo: especifica el protocolo.
- Dirección: especifica la dirección IP o el nombre de host de destino donde reside el recolector y las direcciones de los datos de syslog.
- Puerto: especifica el puerto de destino en el que reside el recopilador y escucha los datos de syslog.
- Haz clic en Enviar.
Para obtener más información sobre los reenviadores de Google Security Operations, consulta la documentación de los reenviadores de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de reenviador, consulta Configuración de reenviadores por tipo. Si tienes problemas al crear reenviadores, ponte en contacto con el equipo de Asistencia de Google Security Operations.
Referencia de asignación de campos
Este analizador gestiona los registros de Cisco ACS, incluidos los de autenticación, contabilidad, diagnóstico y estadísticas del sistema. Usa patrones grok para extraer campos de varios formatos de registro (SYSLOG + KV, LEEF), normaliza las marcas de tiempo y las zonas horarias, y asigna campos clave al modelo de datos unificado. Además, gestiona diferentes tipos de registros con una lógica específica para los éxitos o fallos de autenticación, la contabilidad de TACACS+ y los eventos de RADIUS. También enriquece el UDM con campos adicionales, como información del dispositivo y detalles de autenticación.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Acct-Authentic |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Authentic . |
Acct-Delay-Time |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Delay-Time . |
Acct-Input-Octets |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Input-Octets . |
Acct-Input-Packets |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Input-Packets . |
Acct-Output-Octets |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Output-Octets . |
Acct-Output-Packets |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Output-Packets . |
Acct-Session-Id |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Session-Id . |
Acct-Session-Time |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Session-Time . |
Acct-Status-Type |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Status-Type . |
Acct-Terminate-Cause |
additional.fields[].value.string_value |
El valor se toma del campo Acct-Terminate-Cause . |
ACSVersion |
additional.fields[].value.string_value |
El valor se toma del campo ACSVersion . |
AD-Domain |
principal.group.group_display_name |
El valor se toma del campo AD-Domain . |
AD-IP-Address |
principal.ip |
El valor se toma del campo AD-IP-Address . |
Called-Station-ID |
additional.fields[].value.string_value |
El valor se toma del campo Called-Station-ID . |
Calling-Station-ID |
additional.fields[].value.string_value |
El valor se toma del campo Calling-Station-ID . |
Class |
additional.fields[].value.string_value |
El valor se toma del campo Class . |
CmdSet |
(sin asignar) | No está asignado al objeto IDM. |
ConfigVersionId |
additional.fields[].value.number_value |
El valor se toma del campo ConfigVersionId y se convierte en un número flotante. |
DestinationIPAddress |
target.ip , intermediary.ip |
El valor se toma del campo DestinationIPAddress . intermediary.ip se deriva de Device IP Address . |
DestinationPort |
target.port |
El valor se toma del campo DestinationPort y se convierte en un número entero. |
Device IP Address |
intermediary.ip |
El valor se toma del campo Device IP Address . |
Device Port |
intermediary.port |
El valor se toma del campo Device Port y se convierte en un número entero. |
DetailedInfo |
security_result.summary , security_result.description , security_result.action |
Si DetailedInfo es "Authentication succeed", security_result.summary es "successful login occurred" y security_result.action es ALLOW. Si DetailedInfo contiene "Invalid username or password specified", security_result.summary es "failed login occurred" y security_result.action es BLOCK. security_result.description se deriva de log_header . |
Framed-IP-Address |
principal.ip |
El valor se toma del campo Framed-IP-Address . |
Framed-Protocol |
additional.fields[].value.string_value |
El valor se toma del campo Framed-Protocol . |
NAS-IP-Address |
target.ip |
El valor se toma del campo NAS-IP-Address . |
NAS-Port |
additional.fields[].value.string_value |
El valor se toma del campo NAS-Port . |
NAS-Port-Id |
target.port |
El valor se toma del campo NAS-Port-Id y se convierte en un número entero. |
NAS-Port-Type |
additional.fields[].value.string_value |
El valor se toma del campo NAS-Port-Type . |
NetworkDeviceName |
target.hostname |
El valor se toma del campo NetworkDeviceName . |
Protocol |
additional.fields[].value.string_value |
El valor se toma del campo Protocol . |
RadiusPacketType |
(sin asignar) | No está asignado al objeto IDM. |
Remote-Address |
principal.ip , target.ip |
El valor se toma del campo Remote-Address y se analiza como una dirección IP. Se asigna a principal.ip para los eventos de autenticación y a target.ip para los eventos de contabilidad y diagnóstico. |
RequestLatency |
additional.fields[].value.string_value |
El valor se toma del campo RequestLatency . |
Response |
principal.user.userid |
Si Response contiene "User-Name", se extrae el nombre de usuario y se asigna a principal.user.userid . |
SelectedAccessService |
additional.fields[].value.string_value |
El valor se toma del campo SelectedAccessService . |
SelectedAuthenticationIdentityStores |
security_result.detection_fields[].value |
El valor se toma del campo SelectedAuthenticationIdentityStores . |
SelectedAuthorizationProfiles |
security_result.detection_fields[].value |
El valor se toma del campo SelectedAuthorizationProfiles . |
Service-Type |
additional.fields[].value.string_value |
El valor se toma del campo Service-Type . |
Tunnel-Client-Endpoint |
additional.fields[].value.string_value |
El valor se toma del campo Tunnel-Client-Endpoint y se analiza como una dirección IP. |
User |
target.user.userid |
El valor se toma del campo User . |
UserName |
target.user.userid , principal.mac |
Si UserName es una dirección MAC, se analiza y se asigna a principal.mac . De lo contrario, se asigna a target.user.userid . |
ac-user-agent |
network.http.user_agent |
El valor se toma del campo ac-user-agent . |
cat |
metadata.description |
El valor se toma del campo cat . |
device-mac |
principal.mac |
El valor se toma del campo device-mac , se añaden dos puntos y el valor se convierte a minúsculas. Si device-mac es "00", se sustituye por "00:00:00:00:00:00". |
device-platform |
principal.asset.platform_software.platform |
Si device-platform es "win", se asigna el valor "WINDOWS" a principal.asset.platform_software.platform . |
device-platform-version |
principal.asset.platform_software.platform_version |
El valor se toma del campo device-platform-version . |
device-public-mac |
principal.mac |
El valor se toma del campo device-public-mac , los guiones se sustituyen por dos puntos y el valor se convierte a minúsculas. |
device-type |
principal.asset.hardware.model |
El valor se toma del campo device-type . |
device-uid |
principal.asset.asset_id |
El valor se toma del campo device-uid y se le añade el prefijo "ID DE RECURSO: ". |
device-uid-global |
principal.asset.product_object_id |
El valor se toma del campo device-uid-global . |
hostname |
principal.hostname |
El valor se toma del campo hostname . |
ip:source-ip |
principal.ip |
El valor se toma del campo ip:source-ip . |
kv.ADDomain |
(sin asignar) | No está asignado al objeto IDM. |
kv.Airespace-Wlan-Id |
(sin asignar) | No está asignado al objeto IDM. |
kv.AuthenticationIdentityStore |
(sin asignar) | No está asignado al objeto IDM. |
kv.AVPair |
(sin asignar) | No está asignado al objeto IDM. |
kv.CVPN3000/ASA/PIX7.x-DAP-Tunnel-Group-Name |
(sin asignar) | No está asignado al objeto IDM. |
kv.CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools |
(sin asignar) | No está asignado al objeto IDM. |
kv.ExternalGroups |
(sin asignar) | No está asignado al objeto IDM. |
kv.FailureReason |
(sin asignar) | No está asignado al objeto IDM. |
kv.IdentityAccessRestricted |
(sin asignar) | No está asignado al objeto IDM. |
kv.IdentityGroup |
(sin asignar) | No está asignado al objeto IDM. |
kv.NAS-Identifier |
(sin asignar) | No está asignado al objeto IDM. |
kv.SelectedShellProfile |
(sin asignar) | No está asignado al objeto IDM. |
kv.ServiceSelectionMatchedRule |
(sin asignar) | No está asignado al objeto IDM. |
kv.State |
(sin asignar) | No está asignado al objeto IDM. |
kv.Step |
(sin asignar) | No está asignado al objeto IDM. |
kv.Tunnel-Medium-Type |
(sin asignar) | No está asignado al objeto IDM. |
kv.Tunnel-Private-Group-ID |
(sin asignar) | No está asignado al objeto IDM. |
kv.Tunnel-Type |
(sin asignar) | No está asignado al objeto IDM. |
kv.UseCase |
(sin asignar) | No está asignado al objeto IDM. |
kv.UserIdentityGroup |
(sin asignar) | No está asignado al objeto IDM. |
kv.VendorSpecific |
(sin asignar) | No está asignado al objeto IDM. |
kv.attribute-131 |
(sin asignar) | No está asignado al objeto IDM. |
kv.attribute-89 |
(sin asignar) | No está asignado al objeto IDM. |
kv.cisco-av-pair |
(sin asignar) | No está asignado al objeto IDM. |
kv.cisco-av-pair:CiscoSecure-Group-Id |
(sin asignar) | No está asignado al objeto IDM. |
leef_version |
(sin asignar) | No está asignado al objeto IDM. |
log_header |
metadata.description |
El valor se toma del campo log_header . |
log_id |
metadata.product_log_id |
El valor se toma del campo log_id . |
log_type |
metadata.product_event_type |
El valor se toma del campo log_type . |
message_severity |
(sin asignar) | No está asignado al objeto IDM. |
product |
metadata.product_name |
El valor se toma del campo product . |
product_version |
metadata.product_version |
El valor se toma del campo product_version . |
server_host |
target.hostname |
El valor se toma del campo server_host . |
timestamp |
metadata.event_timestamp |
El valor se toma de los campos timestamp y timezone (después de quitar los dos puntos). El valor combinado se analiza como una marca de tiempo. |
url |
network.dns.questions[].name |
El valor se toma del campo url . |
vendor |
metadata.vendor_name |
El valor se toma del campo vendor . Inicialmente, se asigna el valor "GENERIC_EVENT", que puede sobrescribirse en función de log_type y los campos analizados. Puede ser "USER_LOGIN", "USER_UNCATEGORIZED", "NETWORK_DNS", "NETWORK_CONNECTION", "STATUS_UPDATE" o "STATUS_UNCATEGORIZED". Inicialmente, se establece en "Cisco" y, a continuación, se puede sobrescribir con el valor del campo vendor . Inicialmente, se establece en "ACS" y, después, el campo product puede sobrescribirlo. Se ha definido como "CISCO_ACS". Se ha definido como "USERNAME_PASSWORD". Selecciona "TACACS". Defina el valor "UDP" para los eventos de diagnóstico y de registro de RADIUS. Se define como "DNS" para los eventos de DNS. Derivado del campo security_action , que se define en función de si el inicio de sesión se ha completado correctamente o no. Se define como "successful login occurred" (inicio de sesión correcto) si el inicio de sesión se ha realizado correctamente y como "failed login occurred" (inicio de sesión fallido) si no se ha podido iniciar sesión. También puede tener el valor "passed" en determinados eventos de diagnóstico de la tienda de identidades. Se define como "BAJO" en los intentos de inicio de sesión fallidos. Se construye añadiendo "ID DE RECURSO: " al campo device-uid . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.