Recopila registros de IBM Guardium
En este documento, se explica cómo transferir registros de IBM Guardium a Google Security Operations con Bindplane.
IBM Guardium es una plataforma de protección de datos y supervisión de la actividad de bases de datos que proporciona supervisión, auditoría y protección en tiempo real para bases de datos y sistemas de archivos. Guardium ofrece funciones de evaluación de vulnerabilidades, descubrimiento y clasificación de datos, supervisión de la actividad de la base de datos y generación de informes de cumplimiento.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Windows Server 2016 o versiones posteriores, o host de Linux con
systemd - Conectividad de red entre el agente de Bindplane y el recopilador de IBM Guardium
- Si se ejecuta detrás de un proxy, asegúrate de que los puertos de firewall estén abiertos según los requisitos del agente de Bindplane.
- Acceso con privilegios a la CLI de IBM Guardium
- IBM Guardium versión 9.1 o posterior para la compatibilidad con syslog encriptado (opcional)
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- 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 Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.
Instalación en Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el comando siguiente:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietEspera a que se complete la instalación.
Ejecute el siguiente comando para verificar la instalación:
sc query observiq-otel-collector
El servicio debe mostrarse como RUNNING.
Instalación en Linux
- Abre una terminal con privilegios de administrador o sudo.
Ejecuta el comando siguiente:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shEspera a que se complete la instalación.
Ejecute el siguiente comando para verificar la instalación:
sudo systemctl status observiq-otel-collector
El servicio debería mostrarse como activo (en ejecución).
Recursos de instalación adicionales
Para obtener más opciones de instalación y solucionar problemas, consulta la guía de instalación del agente de Bindplane.
Configura el agente de BindPlane para transferir el syslog y enviarlo a Google SecOps
Ubica el archivo de configuración
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edita el archivo de configuración
Reemplaza todo el contenido de
config.yamlcon la siguiente configuración:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/guardium: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: GUARDIUM raw_log_field: body ingestion_labels: log_source: guardium service: pipelines: logs/guardium_to_chronicle: receivers: - udplog exporters: - chronicle/guardium
Parámetros de configuración
Reemplaza los marcadores de posición que se indican más abajo:
Configuración del receptor:
- Usa
udplogpara el registro del sistema UDP (el más común para Guardium). - Usa
tcplogpara syslog TCP si es necesario. - La dirección de escucha
0.0.0.0:514escucha en todas las interfaces del puerto 514.
- Usa
Configuración del exportador:
creds_file_path: Ruta de acceso completa al archivo de autenticación de la transferencia:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Es el ID de cliente del paso anterior.endpoint: URL del extremo regional:- EE.UU.:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com
- EE.UU.:
log_type: Debe serGUARDIUM.ingestion_labels: Son etiquetas opcionales en formato YAML.
Guarda el archivo de configuración
Después de editarlo, guarda el archivo:
- Linux: Presiona
Ctrl+O, luegoEntery, después,Ctrl+X. - Windows: Haz clic en Archivo > Guardar
Reinicia el agente de Bindplane para aplicar los cambios
Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:
sudo systemctl restart observiq-otel-collectorVerifica que el servicio esté en ejecución:
sudo systemctl status observiq-otel-collectorRevisa los registros en busca de errores:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar el agente de Bindplane en Windows, elige una de las siguientes opciones:
Símbolo del sistema o PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collectorConsola de Services:
- Presiona
Win+R, escribeservices.mscy presiona Intro. - Busca observIQ OpenTelemetry Collector.
Haz clic con el botón derecho y selecciona Reiniciar.
Verifica que el servicio esté en ejecución:
sc query observiq-otel-collectorRevisa los registros en busca de errores:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Presiona
Configura el reenvío de syslog de IBM Guardium
Configura el destino de Syslog a través de la CLI
Para crear un destino de syslog para los eventos en IBM Guardium, debes acceder a la interfaz de línea de comandos y definir la dirección IP del host del agente de Bindplane.
- Con SSH, accede a IBM Guardium Collector como usuario de la CLI.
Escribe los siguientes comandos para configurar el destino de syslog:
Para el registro del sistema UDP (recomendado):
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP udpPara el registro del sistema TCP, haz lo siguiente:
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP:514 tcpPara niveles de gravedad específicos:
store remotelog add non_encrypted daemon.alert BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.err BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.warning BINDPLANE_AGENT_IP udp- Reemplaza
BINDPLANE_AGENT_IPpor la dirección IP del host en el que está instalado el agente de Bindplane.
- Reemplaza
Ejecuta el siguiente comando para verificar la configuración:
show remotelogEl resultado debería mostrar el destino de syslog remoto que configuraste.
Configura el registro del sistema encriptado (opcional)
Si necesitas el reenvío de syslog encriptado, IBM Guardium versión 9.1 y posteriores admiten la encriptación TLS a través de TCP.
- Obtén el certificado público en formato PEM de la autoridad certificadora que usa tu receptor syslog remoto.
- Accede a la CLI en el recopilador de Guardium.
Escribe el siguiente comando:
store remotelog add encrypted daemon.all BINDPLANE_AGENT_IP:6514 tcpCuando se te solicite, pega el certificado de la CA en formato PEM, incluidas las líneas BEGIN y END, y, luego, presiona
Ctrl+D.Guardium almacena el certificado como
/etc/pki/rsyslog/ca.pem.
Configura la plantilla de mensaje (opcional)
Guardium admite varios formatos de mensajes, incluidos CEF (formato de evento común) y LEEF (formato de evento extendido de registro). El formato predeterminado es adecuado para la mayoría de las implementaciones.
Para personalizar la plantilla de mensaje, sigue estos pasos:
- Accede a la GUI del dispositivo de Guardium como un usuario con privilegios de administrador.
- Ve a Consola de administración > Configuración > Perfil global.
- En la sección Plantilla de mensaje, edita la plantilla con el formato que desees.
- Haz clic en Guardar.
Configura la política para enviar alertas a syslog
Las políticas de IBM Guardium son responsables de reaccionar a los eventos y reenviar la información de los eventos al receptor syslog remoto.
Configura la acción de alerta de política
- Accede a la GUI del dispositivo de Guardium.
- Haz clic en la pestaña Herramientas.
- En el menú de navegación de la izquierda, selecciona Policy Builder.
- En el panel Buscador de políticas, selecciona una política existente y haz clic en Editar reglas.
- Haz clic en Editar esta regla de forma individual.
- Se muestra la Definición de regla de acceso.
- Haz clic en Agregar acción.
- En la lista Acción, selecciona uno de los siguientes tipos de alertas:
- Alerta por coincidencia: Se proporciona una notificación por cada incumplimiento de política.
- Alerta diaria: Se proporciona una notificación la primera vez que se produce un incumplimiento de política en el día.
- Alert Once Per Session: Se proporciona una notificación por incumplimiento de política para cada sesión única.
- Alerta por nivel de detalle del tiempo: Se proporciona una notificación por el período seleccionado.
- En la lista Plantilla de mensaje, selecciona la plantilla requerida o mantén la Predeterminada.
- En Tipo de notificación, selecciona SYSLOG.
- Haz clic en Agregar y, luego, en Aplicar.
- Haz clic en Guardar.
- Repite este proceso para todas las reglas de la política que quieras reenviar a Google SecOps.
Instala la política
Cualquier política nueva o editada en IBM Guardium debe instalarse antes de que se produzcan las acciones de alerta actualizadas o los cambios en las reglas.
- Haz clic en la pestaña Consola de administración.
- En el panel de navegación de la izquierda, selecciona Configuración > Instalación de políticas.
- En el panel Instalador de políticas, selecciona la política que modificaste en el paso anterior.
- En la lista desplegable, selecciona Install and Override.
- Se muestra una confirmación para instalar la política en todos los motores de inspección.
- Haz clic en Aceptar.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| deviceNtDomain | about.administrative_domain | Dominio administrativo de la entidad acerca de |
| deviceExternalId | about.asset.asset_id | Identificador del activo |
| filePath, fileHash | about.file.full_path | Ruta de acceso completa del archivo |
| _hash, fileHash | about.file.sha256 | Hash SHA256 del archivo |
| fsize | about.file.size | Tamaño del archivo |
| dvchost | about.hostname | Nombre de host de la entidad acerca de |
| dvc | about.ip | Dirección IP de la entidad acerca de |
| smac, dmac, dvcmac | about.mac | Dirección MAC de la entidad acerca de |
| deviceProcessName, Subject, Emne, Path | about.process.command_line | Línea de comandos del proceso |
| dvcpid | about.process.pid | ID de proceso |
| filePermission | about.resource.attribute.permissions | Permisos asociados al recurso |
| extensions.auth.type | Tipo de autenticación | |
| sender_ip | intermediary.ip | Dirección IP del intermediario |
| intermediario | Detalles de la entidad intermediaria | |
| Recibido, Generado, marca de tiempo | metadata.collected_timestamp | Marca de tiempo en la que se recopiló el evento |
| msg, signature_name | metadata.description | Descripción del evento |
| metadata.event_type | Tipo de evento (p.ej., USER_LOGIN, NETWORK_CONNECTION) | |
| device_event_class_id, event_name, eventType | metadata.product_event_type | Tipo de evento específico del producto |
| externalId | metadata.product_log_id | Identificador del registro de producto |
| metadata.product_version | Versión del producto | |
| network.application_protocol | Protocolo de aplicación que se usa en la conexión de red | |
| deviceDirection | network.direction | Dirección del tráfico de red |
| requestMethod | network.http.method | Método HTTP que se usó en la solicitud |
| requestClientApplication | network.http.user_agent | Cadena de usuario-agente de la solicitud HTTP |
| protocolo | network.ip_protocol | Protocolo de IP utilizado |
| en | network.received_bytes | Cantidad de bytes recibidos |
| descifrar? | network.sent_bytes | Cantidad de bytes enviados |
| session_id | network.session_id | Identificador de sesión para la conexión de red |
| sntdom, Domain, Domene | principal.administrative_domain | Dominio administrativo del principal |
| sourceServiceName, source_program | principal.application | Aplicación asociada con el principal |
| prin_host, Device_name, Enhetsnavn, shost, principal_hostname, client_hostname | principal.asset.hostname | Nombre de host del activo principal |
| sender_ip, src_ip, src, principal_ip, client_ip | principal.asset.ip | Dirección IP del activo principal |
| Group_name, Gruppenavn | principal.group.group_display_name | Nombre visible del grupo principal |
| prin_host, Device_name, Enhetsnavn, shost, principal_hostname, client_hostname | principal.hostname | Nombre de host de la entidad principal |
| sender_ip, src_ip, src, principal_ip, client_ip | principal.ip | Dirección IP de la entidad principal |
| smac | principal.mac | Dirección MAC de la entidad principal |
| sourceTranslatedAddress | principal.nat_ip | Dirección IP de NAT de la entidad principal |
| sourceTranslatedPort | principal.nat_port | Puerto NAT de la entidad principal |
| spt, client_port | principal.port | Puerto que usa la entidad principal |
| sproc | principal.process.command_line | Línea de comandos del proceso principal |
| spid | principal.process.pid | ID de proceso de la principal |
| spriv | principal.user.attribute.roles | Roles asociados con el usuario principal |
| suser, usrName, CustomerName | principal.user.user_display_name | Nombre visible del usuario principal |
| dbUser, usrName, db_user, os_user, suid, db_username | principal.user.userid | ID de usuario del principal |
| security_result | Detalles del resultado de seguridad | |
| security_result.action | Acción que se tomó en el resultado de seguridad | |
| act, Action_Taken | security_result.action_details | Detalles de la acción tomada |
| cat | security_result.category_details | Detalles de la categoría del resultado de seguridad |
| msg_data_2, alert_description, Type, Scan_Type | security_result.description | Descripción del resultado de seguridad |
| operation_label, operasjon_label, permission_label, tillatelse_label, infection_channel_label, spyware_Grayware_Type_label, threat_probability_label | security_result.detection_fields | Campos que se usan para la detección en el resultado de seguridad |
| mwProfile, alert_name | security_result.rule_name | Nombre de la regla que activó el resultado de seguridad |
| severity, event_severity | security_result.severity | Nivel de gravedad del resultado de seguridad |
| reason, ruleDesc, appcategory, Result | security_result.summary | Resumen del resultado de seguridad |
| Spyware, Virus_Malware_Name, Unknown_Threat | security_result.threat_name | Nombre de la amenaza detectada |
| oldFilePath | src.file.full_path | Ruta de acceso completa del archivo fuente |
| oldFileSize | src.file.size | Tamaño del archivo fuente |
| oldFilePermission | src.resource.attribute.permissions | Permisos del recurso fuente |
| os_user | src.user.userid | ID de usuario del usuario fuente |
| dntdom | target.administrative_domain | Dominio administrativo del objetivo |
| destinationServiceName, service_name | target.application | Aplicación asociada con el destino |
| prin_host, dest_host, server_hostname | target.asset.hostname | Nombre de host del activo de destino |
| dst_ip, dest_ip, server_ip, IPv6_Address | target.asset.ip | Dirección IP del activo de destino |
| temp_dhost, dest_host, server_hostname | target.hostname | Nombre de host del destino |
| dst_ip, dst, dest_ip, server_ip, IPv6_Address | target.ip | Dirección IP del objetivo |
| dmac | target.mac | Dirección MAC del objetivo |
| destinationTranslatedAddress | target.nat_ip | Dirección IP de NAT del destino |
| destinationTranslatedPort | target.nat_port | Puerto NAT del destino |
| dpt, dstPort, dest_port, server_port | target.port | Puerto que usa el destino |
| dproc, full_sql | target.process.command_line | Línea de comandos del proceso de destino |
| File_name, Object, Objekt, Infected_Resource | target.process.file.full_path | Ruta de acceso completa del archivo del proceso de destino |
| dpid, full_sql_id | target.process.pid | ID del proceso de destino |
| session_start | target.resource.attribute.creation_time | Fecha y hora de creación del recurso de destino |
| additional_environment_name, additional_db_protocol_version, additional_dbProtocolVersion, additional_operation_name, additional_signature_id, resource_Type_label | target.resource.attribute.labels | Son las etiquetas asociadas con el recurso de destino. |
| session_end | target.resource.attribute.last_update_time | Fecha y hora de la última actualización del recurso de destino |
| db_name, database_name | target.resource.name | Nombre del recurso de destino |
| db_type, server_type | target.resource.resource_subtype | Subtipo del recurso de destino |
| target.resource.resource_type | Tipo del recurso de destino | |
| solicitud | target.url | URL asociada al destino |
| dpriv, roles | target.user.attribute.roles | Roles asociados con el usuario objetivo |
| temp_duser, CustomerName | target.user.user_display_name | Nombre visible del usuario objetivo |
| temp_duid, User, Bruker, db_username | target.user.userid | ID de usuario del objetivo |
| metadata.product_name | Nombre del producto | |
| metadata.vendor_name | Nombre del proveedor |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.