Recoger registros de Aruba ClearPass
En este documento se explica cómo recoger registros de Aruba ClearPass mediante Bindplane. El analizador intenta limpiar y estructurar los registros entrantes eliminando los campos superfluos y estandarizando el formato de los mensajes. A continuación, en función de si el registro sigue el formato CEF u otra estructura, el código usa una combinación de patrones grok, extracciones de pares clave-valor y lógica condicional para asignar los campos relevantes al modelo de datos unificado (UDM) y, en última instancia, clasificar cada evento en un tipo de evento de seguridad específico.
Antes de empezar
- Asegúrate de que tienes una instancia de Google Security Operations.
- Asegúrate de que usas Windows 2016 o una versión posterior, o un host Linux con
systemd
. - Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
- Asegúrate de que tienes acceso privilegiado a un Aruba ClearPass.
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- Descarga el archivo de autenticación de ingestión. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.
Obtener el ID de cliente de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instalar el agente de Bindplane
Instalación de ventanas
- 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 de Linux
- Abre un terminal con privilegios de superusuario 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 ver otras opciones de instalación, consulta esta guía de instalación.
Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Busca el archivo
config.yaml
. Normalmente, 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).
- Busca 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
Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.
Sustituye
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta en la que se guardó el archivo de autenticación en la sección Obtener el archivo de autenticación de ingestión 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 Servicios o introducir el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar el servidor syslog de Aruba ClearPass
- Inicia sesión en la consola ClearPass Policy Manager.
- Selecciona Administración > Servidores externos > Destinos de Syslog.
- Haz clic en Añadir.
- En la ventana Add syslog target (Añadir destino syslog) que aparece, especifica los siguientes detalles:
- Dirección de host: introduce la dirección IP de Bindplane.
- Puerto del servidor: introduce el número de puerto de Bindplane.
- Protocolo: selecciona UDP (también puedes seleccionar TCP, en función de tu configuración de Bindplane).
- Haz clic en Guardar.
Configurar filtros de exportación de syslog
- Vaya a Administración > Servidores externos > Filtros de exportación de Syslog.
- Haz clic en Añadir.
- En la ventana Añadir filtros Syslog que aparece, especifica lo siguiente en la pestaña General (General):
- Nombre: introduce el nombre del filtro de exportación de syslog según la tabla de Elementos de plantilla de exportación.
- Exportar plantilla: seleccione la plantilla de exportación adecuada en función de la tabla de Elementos de la plantilla de exportación.
- Tipo de formato de evento de exportación: seleccione Estándar.
- Servidores Syslog: selecciona la dirección IP de Bindplane.
- En la lista Plantilla de exportación, cuando selecciona las plantillas de exportación Sesión o Estadísticas, se habilita la pestaña Filtro y columnas. Sigue estos pasos:
- Haz clic en la pestaña Filtros y columnas.
- Filtro de datos: asegúrate de que esté seleccionado el valor predeterminado Todas las solicitudes.
- Selección de columnas: seleccione el grupo de campos predefinido en función de la tabla de Elementos de plantilla de exportación.
- Columnas seleccionadas: compruebe que los campos rellenados automáticamente coinciden con la tabla de Elementos de la plantilla de exportación.
- Haz clic en la pestaña Resumen.
- Haz clic en Guardar.
- En la lista Plantilla de exportación, cuando selecciona las plantillas de exportación Eventos del sistema y Registros de auditoría, la pestaña Filtro y columnas no está habilitada. Vaya a la pestaña Resumen y haga clic en Guardar.
- Repite los pasos para añadir filtros de exportación de syslog a todas las plantillas de exportación de Sesión, Estadísticas, Registros de auditoría y Eventos del sistema según los detalles de la tabla del apartado Resumen de los elementos de las plantillas de exportación.
Exportar elementos de plantilla
En la siguiente tabla se describen los elementos que debe configurar en cada plantilla de exportación. Los campos predeterminados que se muestran en Columnas seleccionadas se admiten en el análisis de eventos. Asegúrese de que todos los campos que se mencionan en la tabla de la sección Columnas seleccionadas (predeterminadas) estén presentes y en el mismo orden. Crea plantillas de filtros de exportación de syslog exactamente como se indica en la tabla, incluido el nombre del filtro, que distingue entre mayúsculas y minúsculas.
Nombre del filtro de exportación de Syslog (distingue entre mayúsculas y minúsculas) | Exportar plantilla | Grupos de campos predefinidos | Columnas seleccionadas (opción predeterminada) |
---|---|---|---|
ACPPM_radauth | Registros de Insight | Autenticaciones de radio | 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 Insight | Autenticaciones fallidas 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 Insight | RADIUS Accounting | 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 Insight | Autenticación 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 Insight | 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 Insight | 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 Insight | 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 Insight | Autenticación de aplicaciones | 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 Insight | Failed Application Authentication | 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 Insight | Endpoints | 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 Insight | 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 Insight | Registro de Onboard | OnboardEnrollment.Username OnboardEnrollment.Device-Name OnboardEnrollment.MAC-Address OnboardEnrollment.Device-Product OnboardEnrollment.Device-Version OnboardEnrollment.Added-At OnboardEnrollment.Updated-At |
ACPPM_onbcert | Registros de Insight | Certificado de embarque | OnboardCert.Username OnboardCert.Mac-Address OnboardCert.Subject OnboardCert.Issuer OnboardCert.Valid-From OnboardCert.Valid-To OnboardCert.Revoked-At |
ACPPM_onboscp | Registros de Insight | Incorporar OCSP | OnboardOCSP.Remote-Address OnboardOCSP.Response-Status-Name OnboardOCSP.Timestamp |
ACPPM_cpsysevent | Registros de Insight | Eventos del sistema Clearpass | CppmNode.CPPM-Node CppmSystemEvent.Source CppmSystemEvent.Level CppmSystemEvent.Category CppmSystemEvent.Action CppmSystemEvent.Timestamp |
ACPPM_cpconfaudit | Registros de Insight | Auditoría de configuración de Clearpass | CppmConfigAudit.Name CppmConfigAudit.Action CppmConfigAudit.Category CppmConfigAudit.Updated-By CppmConfigAudit.Updated-At |
ACPPM_possummary | Registros de Insight | Resumen de las posturas | 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 Insight | Resumen de cortafuegos 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.Firewall-APT Endpoint.Firewall-Input Endpoint.Firewall-Output |
ACPPM_poavsummary | Registros de Insight | 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 Insight | Resumen de la postura Antiespía | 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 Insight | Resumen de Posture DiskEncryption | 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 con sesión iniciada | 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 | RADIUS Accounting | 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 invitado | 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 eliminar los caracteres alfanuméricos y los espacios 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 UDM se define como "USER_LOGIN". Si el valor es "Logged out", el campo UDM se define como "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 "Description" (Descripción) después de sustituir los caracteres de salto de línea por el símbolo de barra vertical. Si el campo "Description" contiene "User", "Address" y "Role", se analiza como pares clave-valor y se asigna a los campos de UDM correspondientes. Si el campo "Description" (Descripción) contiene "Unable connection with" (No se puede conectar 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 UDM se define como "HIGH". Si el valor es "WARN", el campo UDM se define como "MEDIUM". Si el valor es "INFO" o "DEBUG", el campo UDM se define como "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 "Timestamp" (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 "community". |
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". |
version | metadata.product_version | El valor se asigna desde el campo "version". |
extensions.auth.type | El valor es "SSO". | |
metadata.event_type | El valor se determina en función de varios campos de registro y de la lógica del analizador. Consulta el código del analizador para obtener más información. | |
metadata.log_type | El valor se ha definido como "CLEARPASS". | |
metadata.product_name | El valor es "ClearPass". | |
metadata.vendor_name | El valor es "ArubaNetworks". |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.