Recopila registros de Aruba ClearPass
En este documento, se explica cómo recopilar registros de Aruba ClearPass con Bindplane. El analizador intenta limpiar y estructurar los registros entrantes quitando los campos innecesarios y estandarizando el formato del mensaje. Luego, según si el registro sigue el formato CEF o una estructura diferente, el código usa una combinación de patrones de Grok, extracciones de pares clave-valor y lógica condicional para asignar los campos pertinentes al modelo de datos unificado (UDM) y, en última instancia, categorizar cada evento en un tipo de evento de seguridad específico.
Antes de comenzar
- Asegúrate de tener una instancia de Google Security Operations.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con
systemd
. - Si ejecutas la herramienta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
- Asegúrate de tener acceso con privilegios a un Aruba ClearPass.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Collection Agents.
- Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará BindPlane.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Profile.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
Instalación en Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación en Linux
- Abre una terminal con privilegios de raíz o sudo.
Ejecuta el siguiente comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalación adicionales
- Para obtener más opciones de instalación, consulta esta guía de instalación.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Ubica el archivo
config.yaml
. Por lo general, se encuentra en el directorio/etc/bindplane-agent/
en Linux o en el directorio de instalación en Windows. - Abre el archivo con un editor de texto (por ejemplo,
nano
,vi
o Bloc de notas).
- Ubica el archivo
Edita el archivo
config.yaml
de la siguiente manera:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: CLEARPASS raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
Reemplaza
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta de acceso en la que se guardó el archivo de autenticación en la sección Cómo obtener el archivo de autenticación de la transferencia de datos de Google SecOps.
Reinicia el agente de Bindplane para aplicar los cambios
Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:
sudo systemctl restart bindplane-agent
Para reiniciar el agente de Bindplane en Windows, puedes usar la consola de Servicios o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura el servidor syslog de Aruba ClearPass
- Accede a la consola de ClearPass Policy Manager.
- Selecciona Administración > Servidores externos > Destinos de Syslog.
- Haz clic en Agregar.
- En la ventana Agregar destino de syslog que aparece, especifica los siguientes detalles:
- Dirección del host: Ingresa la dirección IP de BindPlane.
- Puerto del servidor: Ingresa el número de puerto de BindPlane.
- Protocolo: Selecciona UDP (también puedes seleccionar TCP, según la configuración de Bindplane).
- Haz clic en Guardar.
Configura filtros de exportación de syslog
- Ve a Administración > Servidores externos > Filtros de exportación de Syslog.
- Haz clic en Agregar.
- En la ventana Add Syslog Filters que aparece, especifica lo siguiente en la pestaña General:
- Nombre: Ingresa el nombre del filtro de exportación de syslog según la tabla en Elementos de la plantilla de exportación.
- Export template: Selecciona la plantilla de exportación adecuada según la tabla en Export template items.
- Export event format type: Selecciona Standard.
- Servidores Syslog: Selecciona la dirección IP de Bindplane.
- En la lista Export template, cuando seleccionas las plantillas de exportación Session o Insight, se habilita la pestaña Filter and columns. Completa los siguientes pasos:
- Haz clic en la pestaña Filtro y columnas.
- Filtro de datos: Asegúrate de que esté seleccionado el valor predeterminado Todas las solicitudes.
- Selección de columnas: Selecciona el grupo de campos predefinido según la tabla en Elementos de la plantilla de exportación.
- Columnas seleccionadas: Verifica que los campos completados automáticamente coincidan con la tabla en Elementos de la plantilla de exportación.
- Haz clic en la pestaña Resumen.
- Haz clic en Guardar.
- En la lista Exportar plantilla, cuando seleccionas las plantillas de exportación Eventos del sistema y Registros de auditoría, no se habilita la pestaña Filtro y columnas. Ve a la pestaña Resumen y haz clic en Guardar.
- Repite los pasos para agregar filtros de exportación de syslog para todas las plantillas de exportación de Session, Insight, Audit records y System events según los detalles de la tabla en Resumen de elementos de la plantilla de exportación.
Exporta elementos de plantilla
En la siguiente tabla, se describen los elementos que debes configurar para cada plantilla de exportación. Los campos predeterminados que se enumeran en Columnas seleccionadas son compatibles con el análisis de eventos. Asegúrate de que todos los campos que se mencionan en la tabla en Columnas seleccionadas (predeterminado) estén presentes y en el mismo orden. Asegúrate de crear plantillas de filtros de exportación de syslog exactamente como se proporcionan en la tabla, incluido el nombre del filtro que distingue mayúsculas de minúsculas.
Nombre del filtro de exportación de Syslog (distingue mayúsculas de minúsculas) | Exportar plantilla | Grupos de campos predefinidos | Columnas seleccionadas (predeterminadas) |
---|---|---|---|
ACPPM_radauth | Registros de estadísticas | Autenticaciones de RADIUS | Auth.Username Auth.Host-MAC-Address Auth.Protocol Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_radfailedauth | Registros de estadísticas | Fallas de autenticación de RADIUS | Auth.Username Auth.Host-MAC-Address Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_radacct | Registros de estadísticas | Contabilidad de RADIUS | Radius.Username Radius.Calling-Station-Id Radius.Framed-IP-Address Radius.NAS-IP-Address Radius.Start-Time Radius.End-Time Radius.Duration Radius.Input-bytes Radius.Output-bytes |
ACPPM_tacauth | Registros de estadísticas | Autenticación de TACACS | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service tacacs.Auth-Source tacacs.Roles tacacs.Enforcement-Profiles tacacs.Privilege-Level |
ACPPM_tacfailedauth | Registros de estadísticas | tacacs Failed Authentication | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_webauth | Registros de estadísticas | WEBAUTH | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_webfailedauth | Registros de estadísticas | WEBAUTH Failed Authentications | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_appauth | Registros de estadísticas | Autenticación de la aplicación | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_failedappauth | Registros de estadísticas | Error en la autenticación de la aplicación | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_endpoints | Registros de estadísticas | Extremos | Endpoint.MAC-Address Endpoint.MAC-Vendor Endpoint.IP-Address Endpoint.Username Endpoint.Device-Category Endpoint.Device-Family Endpoint.Device-Name Endpoint.Conflict Endpoint.Status Endpoint.Added-At Endpoint.Updated-At |
ACPPM_cpguest | Registros de estadísticas | Clearpass Guest | Guest.Username Guest.MAC-Address Guest.Visitor-Name Guest.Visitor-Company Guest.Role-Name Guest.Enabled Guest.Created-At Guest.Starts-At Guest.Expires-At |
ACPPM_onbenroll | Registros de estadísticas | Inscripción en la integración | OnboardEnrollment.Username OnboardEnrollment.Device-Name OnboardEnrollment.MAC-Address OnboardEnrollment.Device-Product OnboardEnrollment.Device-Version OnboardEnrollment.Added-At OnboardEnrollment.Updated-At |
ACPPM_onbcert | Registros de estadísticas | Certificado de Onboard | OnboardCert.Username OnboardCert.Mac-Address OnboardCert.Subject OnboardCert.Issuer OnboardCert.Valid-From OnboardCert.Valid-To OnboardCert.Revoked-At |
ACPPM_onboscp | Registros de estadísticas | OCSP incorporado | OnboardOCSP.Remote-Address OnboardOCSP.Response-Status-Name OnboardOCSP.Timestamp |
ACPPM_cpsysevent | Registros de estadísticas | Eventos del sistema de Clearpass | CppmNode.CPPM-Node CppmSystemEvent.Source CppmSystemEvent.Level CppmSystemEvent.Category CppmSystemEvent.Action CppmSystemEvent.Timestamp |
ACPPM_cpconfaudit | Registros de estadísticas | Auditoría de configuración de Clearpass | CppmConfigAudit.Name CppmConfigAudit.Action CppmConfigAudit.Category CppmConfigAudit.Updated-By CppmConfigAudit.Updated-At |
ACPPM_possummary | Registros de estadísticas | Resumen de la postura | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Posture-Healthy Endpoint.Posture-Unhealthy |
ACPPM_posfwsummary | Registros de estadísticas | Resumen del firewall de postura | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Firewall-APT Endpoint.Firewall-Input Endpoint.Firewall-Output |
ACPPM_poavsummary | Registros de estadísticas | Resumen de Antivirus de Posture | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antivirus-APT Endpoint.Antivirus-Input Endpoint.Antivirus-Output |
ACPPM_posassummary | Registros de estadísticas | Resumen de la postura antispyware | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antispyware-APT Endpoint.Antispyware-Input Endpoint.Antispyware-Output |
ACPPM_posdskencrpsummary | Registros de estadísticas | Resumen de DiskEncryption de Posture | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.DiskEncryption-APT Endpoint.DiskEncryption-Input Endpoint.DiskEncryption-Output |
ACPPM_loggedusers | Registros de sesión | Usuarios que accedieron a sus cuentas | Common.Username Common.Service Common.Roles Common.Host-MAC-Address RADIUS.Acct-Framed-IP-Address Common.NAS-IP-Address Common.Request-Timestamp |
ACPPM_failedauth | Registros de sesión | Autenticaciones fallidas | Common.Username Common.Service Common.Roles RADIUS.Auth-Source RADIUS.Auth-Method Common.System-Posture-Token Common.Enforcement-Profiles Common.Host-MAC-Address Common.NAS-IP-Address Common.Error-Code Common.Alerts Common.Request-Timestamp |
ACPPM_radacctsession | Registros de sesión | Contabilidad de RADIUS | RADIUS.Acct-Username RADIUS.Acct-NAS-IP-Address RADIUS.Acct-NAS-Port RADIUS.Acct-NAS-Port-Type RADIUS.Acct-Calling-Station-Id RADIUS.Acct-Framed-IP-Address RADIUS.Acct-Session-Id RADIUS.Acct-Session-Time RADIUS.Acct-Output-Pkts RADIUS.Acct-Input-Pkts RADIUS.Acct-Output-Octets RADIUS.Acct-Input.Octets RADIUS.Acct-Service-Name RADIUS.Acct-Timestamp |
ACPPM_tacadmin | Registros de sesión | Administración de tacacs+ | Common.Username Common.Service tacacs.Remote-Address tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_tacacct | Registros de sesión | Contabilidad de TACACS+ | Common.Username Common.Service tacacs.Remote-Address tacacs.Acct-Flags tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_webauthsession | Registros de sesión | Autenticación web | Common.Username Common.Host-MAC-Address WEBAUTH.Host-IP-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_guestacc | Registros de sesión | Acceso de invitados | Common.Username RADIUS.Auth-Method Common.Host-MAC-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_auditrecords | Registros de auditoría | No aplicable | No aplicable |
ACPPM_systemevents | Eventos del sistema | No aplicable | No aplicable |
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Acción | security_result.action | El valor se asigna desde el campo "Action" si su valor es "ALLOW" o "BLOCK". |
Auth.Enforcement-Profiles | security_result.detection_fields.value | El valor se asigna desde el campo "Auth.Enforcement-Profiles". |
Auth.Host-MAC-Address | principal.mac | El valor se asigna desde el campo "Auth.Host-MAC-Address" después de convertirlo al formato de dirección MAC separada por dos puntos. |
Auth.Login-Status | security_result.detection_fields.value | El valor se asigna desde el campo "Auth.Login-Status". |
Auth.NAS-IP-Address | target.ip | El valor se asigna desde el campo "Auth.NAS-IP-Address". |
Auth.Protocol | intermediary.application | El valor se asigna desde el campo "Auth.Protocol". |
Auth.Service | security_result.detection_fields.value | El valor se asigna desde el campo "Auth.Service". |
Auth.Source | principal.hostname | El valor se asigna desde el campo "Auth.Source" después de quitar los espacios y los caracteres alfanuméricos iniciales. |
Auth.Username | principal.user.user_display_name | El valor se asigna desde el campo "Auth.Username". |
Categoría | metadata.event_type | Si el valor es "Logged in", el campo del UDM se establece en "USER_LOGIN". Si el valor es "Logged out", el campo de UDM se establece en "USER_LOGOUT". |
Common.Alerts | security_result.description | El valor se asigna desde el campo "Common.Alerts". |
Common.Enforcement-Profiles | security_result.detection_fields.value | El valor se asigna desde el campo "Common.Enforcement-Profiles". |
Common.Login-Status | security_result.detection_fields.value | El valor se asigna desde el campo "Common.Login-Status". |
Common.NAS-IP-Address | target.ip | El valor se asigna desde el campo "Common.NAS-IP-Address". |
Common.Roles | principal.user.group_identifiers | El valor se asigna desde el campo "Common.Roles". |
Common.Service | security_result.detection_fields.value | El valor se asigna desde el campo "Common.Service". |
Common.Username | principal.user.userid | El valor se asigna desde el campo "Common.Username". |
Componente | intermediary.application | El valor se asigna desde el campo "Component". |
Descripción | metadata.description | El valor se asigna desde el campo "Descripción" después de reemplazar los caracteres de nueva línea por el símbolo de barra vertical. Si el campo "Descripción" contiene "Usuario", "Dirección" y "Rol", se analiza como pares clave-valor y se asigna a los campos de UDM correspondientes. Si el campo "Descripción" contiene "No se pudo establecer la conexión con", se extrae el nombre de host de destino y se asigna a "target.hostname". |
EntityName | principal.hostname | El valor se asigna desde el campo "EntityName". |
InterIP | target.ip | El valor se asigna desde el campo "InterIP". |
Nivel | security_result.severity | Si el valor es "ERROR" o "FATAL", el campo de UDM se establece en "HIGH". Si el valor es "WARN", el campo del UDM se establece en "MEDIUM". Si el valor es "INFO" o "DEBUG", el campo de UDM se establece en "LOW". |
LogNumber | metadata.product_log_id | El valor se asigna desde el campo "LogNumber". |
RADIUS.Acct-Framed-IP-Address | principal.ip | El valor se asigna desde el campo "RADIUS.Acct-Framed-IP-Address". |
Marca de tiempo | metadata.event_timestamp | El valor se asigna desde el campo "Marca de tiempo" después de convertirlo a UTC y analizarlo como una marca de tiempo. |
Usuario | principal.user.userid | El valor se asigna desde el campo "Usuario". |
agent_ip | principal.ip, principal.asset.ip | El valor se asigna desde el campo "agent_ip". |
comunidad | additional.fields.value.string_value | El valor se asigna desde el campo "comunidad". |
descr | metadata.description | El valor se asigna desde el campo "descr". |
empresa | additional.fields.value.string_value | El valor se asigna desde el campo "enterprise". |
eventDescription | metadata.description | El valor se asigna desde el campo "eventDescription" después de quitar las comillas. |
generic_num | additional.fields.value.string_value | El valor se asigna desde el campo "generic_num". |
prin_mac | principal.mac | El valor se asigna desde el campo "prin_mac" después de convertirlo al formato de dirección MAC separada por dos puntos. |
prin_port | principal.port | El valor se asigna desde el campo "prin_port" y se convierte en un número entero. |
specificTrap_name | additional.fields.value.string_value | El valor se asigna desde el campo "specificTrap_name". |
specificTrap_num | additional.fields.value.string_value | El valor se asigna desde el campo "specificTrap_num". |
tiempo de actividad | additional.fields.value.string_value | El valor se asigna desde el campo "uptime". |
versión | metadata.product_version | El valor se asigna desde el campo "versión". |
extensions.auth.type | El valor se establece en "SSO". | |
metadata.event_type | El valor se determina en función de varios campos de registro y la lógica del analizador. Consulta el código del analizador para obtener más información. | |
metadata.log_type | El valor se establece en "CLEARPASS". | |
metadata.product_name | El valor se establece en "ClearPass". | |
metadata.vendor_name | El valor se establece en "ArubaNetworks". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.