Recopila registros de BMC AMI Defender
En este documento, se explica cómo transferir registros de BMC AMI Defender a Google Security Operations con el agente de Bindplane.
BMC AMI Datastream para z/OS es un programa agente de mainframe que supervisa la actividad del sistema z/OS y recopila, procesa y entrega registros de System Management Facility (SMF) a los sistemas SIEM distribuidos en tiempo real. El agente reformatea los registros de SMF de RACF, ACF2, Top Secret, TCP/IP, CICS, IMS y otros eventos del sistema y de aplicaciones de z/OS como mensajes de syslog que cumplen con el RFC 3164 y los transmite a través de los protocolos UDP, TCP o TLS.
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
systemdpara el agente de Bindplane - Conectividad de red entre el host del agente de Bindplane y la LPAR de z/OS que ejecuta BMC AMI Datastream
- 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.
- BMC AMI Datastream para z/OS versión 6.1 o posterior instalado y en ejecución en la LPAR de z/OS
- Acceso para editar archivos de parámetros en el conjunto de datos amihlq.PARM en z/OS (por lo general, requiere acceso a TSO/ISPF o autoridad para enviar trabajo por lotes)
- Autoridad para modificar la configuración de BMC AMI Datastream (por lo general, requiere acceso de LECTURA de RACF a los conjuntos de datos de parámetros)
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-collectorEl 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-collectorEl 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 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: tcplog: listen_address: "0.0.0.0:1514" exporters: chronicle/bmc_datastream: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'your-customer-id-here' endpoint: malachiteingestion-pa.googleapis.com log_type: BMC_AMI_DEFENDER raw_log_field: body service: pipelines: logs/datastream_to_chronicle: receivers: - tcplog exporters: - chronicle/bmc_datastreamReemplaza los marcadores de posición que se indican más abajo:
Configuración del receptor:
listen_address: Dirección IP y puerto para escuchar:0.0.0.0:1514para escuchar en todas las interfaces en el puerto 1514 (se recomienda para Linux no root)0.0.0.0:514para escuchar en todas las interfaces en el puerto syslog estándar (requiere acceso de administrador en Linux)- Dirección IP específica para escuchar en una interfaz
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: Tucustomer ID. Para obtener más información, consulta Cómo obtener el ID de cliente de Google SecOps.endpoint: URL del extremo regional:- EE.UU.:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulta Extremos regionales para obtener la lista completa.
- EE.UU.:
log_type:BMC_AMI_DEFENDER
Ejemplo de configuración para Syslog UDP
Si prefieres el transporte UDP (menor latencia, enviar y olvidar):
receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/bmc_datastream: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6' endpoint: malachiteingestion-pa.googleapis.com log_type: BMC_AMI_DEFENDER raw_log_field: body service: pipelines: logs/datastream_to_chronicle: receivers: - udplog exporters: - chronicle/bmc_datastream
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, haz lo siguiente:
Ejecuta el comando siguiente:
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, haz lo siguiente:
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.
- Presiona
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"
Configura el reenvío de syslog de BMC AMI Defender
Edita el archivo de parámetros con TSO/ISPF
- Accede a TSO/ISPF en la LPAR de z/OS en la que está instalado BMC AMI Datastream.
- En el ISPF Primary Option Menu, ingresa 2 para seleccionar EDIT.
En el Panel de entrada - Editar, ingresa lo siguiente:
- Biblioteca de ISPF: Ingresa el nombre del conjunto de datos de parámetros en el formato
'amihlq.PARM', en el que amihlq es el calificador de alto nivel elegido durante la instalación (por ejemplo,'PROD.CZAGENT.PARM'). - Miembro: Ingresa el miembro
$$$CONFG.
- Biblioteca de ISPF: Ingresa el nombre del conjunto de datos de parámetros en el formato
Press Enter to open the member for editing.
Configure the SIEM type
- In the
$$$CONFGy busca la sección etiquetada como Switches for setting the SIEM type. Quita el comentario de un tipo de SIEM quitando el punto y coma inicial de la línea correspondiente:
- Para el formato estándar de syslog, quita la marca de comentario de:
SWITCH ON(RFC3164) - Para el formato de evento común, quita la marca de comentario de:
SWITCH ON(CEF) - Para el formato JSON, quita el comentario de:
SWITCH ON(JSON) - Para el formato LEEF de IBM QRadar, quita la marca de comentario de:
SWITCH ON(LEEF) - Para el formato de Splunk, quita la marca de comentario de:
SWITCH ON(Splunk)
- Para el formato estándar de syslog, quita la marca de comentario de:
Presiona F3 para guardar y salir del miembro.
Configura el servidor syslog
En el Panel de entrada de edición, ingresa lo siguiente:
- ISPF Library: Ingresa
'amihlq.PARM'(igual que antes). - Miembro: Ingresa
$$$SERVR.
- ISPF Library: Ingresa
Press Enter to open the member for editing.
Locate the section corresponding to your selected SIEM type. For example:
- For RFC3164: Locate the section labeled
; RFC3164 - For CEF: Locate the section labeled
; CEF - TRANS(TCP) Recommended - For JSON: Locate the section labeled
; JSON - TRANS(TCP) Recommended
- For RFC3164: Locate the section labeled
Uncomment the SERVER statement by removing the leading semicolon.
Edit the SERVER statement with the following values:
- Replace
ip.addr.examplewith the IP address of the Bindplane agent host (for example,192.168.1.100). If using TCP (recommended), the statement should look like:
SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000)If using UDP, the statement should look like:
SERVER 192.168.1.100:514 TRANS(UDP) MAXMSG(2000)
- Replace
If you selected CEF, JSON, or Splunk format and are using TCP transport, locate the OPTIONS statement section and uncomment the FRAMING parameter:
OPTIONS FRAMING(OCTETCOUNT)Press F3 to save and exit the member.
Refresh the BMC AMI Datastream configuration
- From the ISPF Primary Option Menu, enter 6 to select COMMAND.
On the TSO Command Processor screen, enter the following MVS console command:
F czagentname,PARMSReplace
czagentnamewith the name of the BMC AMI Datastream started task (typicallyCZAGENTor the instance name configured during installation).Press Enter to execute the command.
Verify the configuration was refreshed by checking the system log for message CZA0001I indicating the parameter file was successfully processed.
Verify syslog transmission
- From the ISPF Primary Option Menu, enter 6 to select COMMAND.
Enter the following command to display BMC AMI Datastream statistics:
F czagentname,STATSPress Enter to execute the command.
Check the system log for message CZA0350I showing the number of messages sent to the syslog server.
Verify the Bindplane agent is receiving messages by checking the Bindplane agent logs:
- Linux:
sudo journalctl -u observiq-otel-collector -f - Windows: Check
C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log
- Linux:
Alternative: Edit parameter file using batch job
If you do not have TSO/ISPF access, you can edit the parameter files using a batch job:
Create a batch job with the following JCL:
//EDITPARM JOB (ACCT),'EDIT DATASTREAM PARMS', // CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * SWITCH ON(RFC3164) /* //SYSUT2 DD DSN=amihlq.PARM($$$CONFG),DISP=SHR //STEP2 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000) /* //SYSUT2 DD DSN=amihlq.PARM($$$SERVR),DISP=SHR.Reemplaza
amihlqpor el calificador de alto nivel para la instalación de BMC AMI Datastream.Reemplaza
192.168.1.100:1514por la dirección IP y el puerto del host del agente de Bindplane.Envía el trabajo y verifica que se haya completado correctamente (código de retorno 0).
Ejecuta el comando MODIFY para actualizar la configuración como se describe en la sección anterior.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| aceeadsp | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceeaudt | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceeflg1 | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceelogu | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceeoper | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceepriv | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceeracf | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceeroa | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| aceespec | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| additional.fields | additional.fields | Información adicional sobre el evento |
| auth | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_audit | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_bypass | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_exit | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_normal | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_oper | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_soft | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_special | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| auth_trusted | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| authinfo | security_result.description | Descripción del resultado de seguridad |
| evento | metadata.product_event_type | Tipo de evento específico del producto |
| event_type | metadata.event_type | Tipo de evento (p.ej., USER_LOGIN, NETWORK_CONNECTION) |
| eventdesc | metadata.description | Descripción del evento |
| grupo | additional.fields | Información adicional sobre el evento |
| Nombre de host | principal.hostname, principal.asset.hostname | Nombre de host de la principal, nombre de host del activo |
| jobid | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| jobnm | additional.fields | Información adicional sobre el evento |
| jsauth | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| nombre | principal.user.user_display_name | Nombre visible del usuario |
| pgm | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| privstatd | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_always | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_audit | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_cmdviol | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_globalaudit | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_setropts | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_special | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_user | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| reas_verify | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| rtype | additional.fields | Información adicional sobre el evento |
| saf | additional.fields | Información adicional sobre el evento |
| safd | additional.fields | Información adicional sobre el evento |
| security_result.detection_fields | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| gravedad, | security_result.severity, security_result.severity_details | Gravedad del resultado de seguridad, información detallada sobre la gravedad |
| sid | additional.fields | Información adicional sobre el evento |
| timestamp | metadata.event_timestamp | Marca de tiempo en la que ocurrió el evento |
| tokflg1 | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| tokflg3 | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| tokpriv | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| toksus | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| tokudus | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| userid | principal.user.userid | ID de usuario |
| incumplimiento | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| user_warning | security_result.detection_fields | Campos que se usaron para determinar el resultado de seguridad |
| worktyped | additional.fields | Información adicional sobre el evento |
| metadata.product_name | Nombre del producto | |
| metadata.vendor_name | Nombre del proveedor o la empresa |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.