Recopilar registros de FireEye NX
En este documento se explica cómo ingerir registros de Trellix Network Security (antes FireEye NX) en Google Security Operations mediante Bindplane.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Una instancia de Google SecOps
- Un host Windows 2016 o posterior, o Linux con
systemd - Si se ejecuta a través de un proxy, asegúrese de que los puertos del cortafuegos estén abiertos según los requisitos del agente de Bindplane.
- Acceso privilegiado a la consola de gestión de Trellix Network Security (NX)
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
Instala el agente de Bindplane en tu sistema operativo Windows o Linux siguiendo las instrucciones que se indican a continuación.
Instalación de Windows
- Abre la petición de comando 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 root 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 más opciones de instalación, consulta la 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,vio Bloc de notas).
- Busca el archivo
Edita el archivo
config.yamlde la siguiente manera:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/fireeye_nx: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <CUSTOMER_ID> # Replace with your regional endpoint endpoint: <ENDPOINT> log_type: 'FIREEYE_NX' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/fireeye_nx- Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.
- Sustituye
<CUSTOMER_ID>por el ID de cliente real. - Sustituye el valor
<ENDPOINT>por tu endpoint regional:- Estados Unidos:
malachiteingestion-pa.googleapis.com - Europa (Fráncfort):
europe-west3-malachiteingestion-pa.googleapis.com - Europa (Londres):
europe-west2-malachiteingestion-pa.googleapis.com - Europa (Zúrich):
europe-west6-malachiteingestion-pa.googleapis.com - Europa (Turín):
europe-west12-malachiteingestion-pa.googleapis.com - Asia (Tokio):
asia-northeast1-malachiteingestion-pa.googleapis.com - Oriente Medio (Tel Aviv):
me-west1-malachiteingestion-pa.googleapis.com - Australia (Sídney):
australia-southeast1-malachiteingestion-pa.googleapis.com
- Estados Unidos:
- Actualiza
/path/to/ingestion-authentication-file.jsona 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-agentPara 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 reenvío de Syslog en Trellix Network Security
- Inicia sesión en la consola de seguridad de red de Trellix con una cuenta de administrador.
- Ve a Ajustes > Notificaciones.
- Haga clic en la pestaña rsyslog.
- Selecciona la casilla Tipo de evento para habilitar las notificaciones de rsyslog.
- En el panel Configuración, proporcione los siguientes detalles de configuración:
- Formato predeterminado: selecciona CEF.
- En la sección Lista de servidores Rsyslog, haz lo siguiente:
- Escribe un nombre descriptivo para la nueva entrada (por ejemplo,
Google SecOps BindPlane). - Haga clic en el botón Añadir servidor Rsyslog.
- Escribe un nombre descriptivo para la nueva entrada (por ejemplo,
- En el servidor que acabas de añadir, proporciona los siguientes detalles de configuración:
- Habilitado: marca la casilla para habilitar el servidor.
- Dirección IP: introduce la dirección IP del agente de BindPlane.
- Puerto: introduce el número de puerto del agente de BindPlane (por ejemplo,
514). - Protocolo: selecciona UDP o TCP, en función de la configuración de tu agente BindPlane.
- Tipos de eventos: selecciona los tipos de eventos que quieras reenviar (o todos para registrarlo todo).
- Haga clic en el botón Actualizar para guardar la configuración.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| alert.dst.ip | target.ip, target.asset.ip | Asignación directa desde el campo alert.dst.ip |
| alert.dst.mac | target.mac, target.asset.mac | Asignación directa desde el campo alert.dst.mac |
| alert.dst.port | target.port | Asignación directa desde el campo alert.dst.port |
| alert.explanation.cnc-services.cnc-service.address | target.ip, target.asset.ip | Asignación directa desde el campo alert.explanation.cnc-services.cnc-service.address |
| alert.explanation.cnc-services.cnc-service.port | target.port | Asignación directa desde el campo alert.explanation.cnc-services.cnc-service.port |
| alert.explanation.cnc-services.cnc-service.url | target.url | Asignación directa desde el campo alert.explanation.cnc-services.cnc-service.url |
| alert.explanation.malware-detected.malware.0.name | security_result.threat_name | Asignación directa del campo alert.explanation.malware-detected.malware.0.name en caso de que se detecte malware en una matriz |
| alert.explanation.malware-detected.malware.md5sum | target.file.md5 | Asignación directa desde el campo alert.explanation.malware-detected.malware.md5sum |
| alert.explanation.malware-detected.malware.name | security_result.threat_name | Asignación directa desde el campo alert.explanation.malware-detected.malware.name |
| alert.explanation.malware-detected.malware.sha1 | target.file.sha1 | Asignación directa desde el campo alert.explanation.malware-detected.malware.sha1 |
| alert.explanation.malware-detected.malware.sha256 | target.file.sha256 | Asignación directa desde el campo alert.explanation.malware-detected.malware.sha256 |
| alert.explanation.malware-detected.malware.url | target.url | Asignación directa desde el campo alert.explanation.malware-detected.malware.url |
| alert.name | read_only_udm.metadata.product_event_type | Asignación directa desde el campo alert.name |
| alert.occurred | read_only_udm.metadata.event_timestamp | Asignación directa desde el campo alert.occurred |
| alert.src.domain | principal.hostname | Asignación directa desde el campo alert.src.domain |
| alert.src.host | principal.hostname | Asignación directa desde el campo alert.src.host |
| alert.src.ip | principal.ip, principal.asset.ip | Asignación directa desde el campo alert.src.ip |
| alert.src.mac | principal.mac, principal.asset.mac | Asignación directa desde el campo alert.src.mac |
| alert.src.port | principal.port | Asignación directa desde el campo alert.src.port |
| alert.src.smtp-mail-from | network.email.from | Asignación directa desde el campo alert.src.smtp-mail-from |
| alert.smtp-message.id | network.email.mail_id | Asignación directa desde el campo alert.smtp-message.id |
| alert.smtp-message.subject | network.email.subject | Asignación directa desde el campo alert.smtp-message.subject |
| client_ip | principal.ip | Asignación directa desde el campo client_ip |
| client_src_port | principal.port | Asignación directa desde el campo client_src_port |
| compresión | additional.fields.value.string_value | Asignación directa desde el campo compression |
| etag | additional.fields.value.string_value | Asignación directa desde el campo etag |
| host | principal.hostname | Asignación directa desde el campo host |
| log_id | read_only_udm.metadata.product_log_id | Asignación directa desde el campo log_id |
| método | network.http.method | Asignación directa desde el campo method |
| persistent_session_id | network.session_id | Asignación directa desde el campo persistent_session_id |
| piscina | additional.fields.value.string_value | Asignación directa desde el campo pool |
| pool_name | additional.fields.value.string_value | Asignación directa desde el campo pool_name |
| request_id | additional.fields.value.string_value | Asignación directa desde el campo request_id |
| request_state | additional.fields.value.string_value | Asignación directa desde el campo request_state |
| response_code | network.http.response_code | Asignación directa desde el campo response_code |
| rewritten_uri_query | additional.fields.value.string_value | Asignación directa desde el campo rewritten_uri_query |
| server_ip | target.ip | Asignación directa desde el campo server_ip |
| server_name | target.hostname | Asignación directa desde el campo server_name |
| server_src_port | target.port | Asignación directa desde el campo server_src_port |
| service_engine | additional.fields.value.string_value | Asignación directa desde el campo service_engine |
| ssl_cipher | network.tls.cipher | Asignación directa desde el campo ssl_cipher |
| ssl_version | network.tls.version_protocol | Asignación directa desde el campo ssl_version |
| uri_path | network.http.referral_url | Asignación directa desde el campo uri_path |
| uri_query | additional.fields.value.string_value | Asignación directa desde el campo uri_query |
| user_id | principal.user.userid | Asignación directa desde el campo user_id |
| virtualservice | additional.fields.value.string_value | Asignación directa desde el campo virtualservice |
| vs_name | additional.fields.value.string_value | Asignación directa desde el campo vs_name |
| read_only_udm.metadata.event_type | Se asigna el valor SCAN_UNCATEGORIZED si están presentes tanto la dirección IP principal como la de destino, STATUS_UPDATE si está presente la dirección IP o el nombre de host principal, USER_UNCATEGORIZED si está presente el ID de usuario principal, EMAIL_TRANSACTION si están presentes tanto alert.src.smtp-mail-from como alert.dst.smtp-to, y GENERIC_EVENT en los demás casos. |
|
| read_only_udm.metadata.ingested_timestamp | Se asigna la marca de tiempo actual si no se incluye alert.attack-time. |
|
| read_only_udm.metadata.log_type | Su valor debe ser FIREEYE_NX. |
|
| read_only_udm.metadata.vendor_name | Su valor debe ser FireEye. |
|
| read_only_udm.network.application_protocol | Se define como HTTP si el mensaje contiene "http" (sin distinguir entre mayúsculas y minúsculas). |
|
| read_only_udm.security_result.action | Se asigna el valor ALLOW si _source.action es "notified" (sin distinguir entre mayúsculas y minúsculas), BLOCK si _source.action es "blocked" (sin distinguir entre mayúsculas y minúsculas) y UNKNOWN_ACTION en el resto de los casos. |
|
| read_only_udm.security_result.category | Asigna el valor NETWORK_SUSPICIOUS si sec_category contiene "DOMAIN.MATCH" (sin distinguir entre mayúsculas y minúsculas), NETWORK_MALICIOUS si sec_category contiene "INFECTION.MATCH" o "WEB.INFECTION" (sin distinguir entre mayúsculas y minúsculas), SOFTWARE_MALICIOUS si sec_category contiene "MALWARE.OBJECT" (sin distinguir entre mayúsculas y minúsculas), NETWORK_COMMAND_AND_CONTROL si sec_category contiene "MALWARE.CALLBACK" (sin distinguir entre mayúsculas y minúsculas) y UNKNOWN_CATEGORY en el resto de los casos. |
|
| read_only_udm.security_result.severity | Asigna el valor MEDIUM si _source.severity o temp_severity es "majr" (sin distinción entre mayúsculas y minúsculas), LOW si _source.severity o temp_severity es "minr" (sin distinción entre mayúsculas y minúsculas) y no asignes ningún valor en el resto de los casos. |
|
| read_only_udm.security_result.summary | Asigna el valor security_result.threat_name. |
|
| is_alert | Su valor debe ser true. |
|
| is_significant | Su valor debe ser true. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.