Recopila registros de Trellix DLP
En este documento, se explica cómo transferir registros de DLP (prevención de pérdida de datos) de Trellix (anteriormente McAfee) a Google Security Operations con Bindplane. Este analizador procesa los registros de McAfee DLP en formato CSV y los transforma en el modelo de datos unificado (UDM). Limpia la entrada, analiza los datos CSV, asigna campos al UDM, controla tipos y niveles de gravedad específicos de eventos de DLP y enriquece el UDM con metadatos adicionales y detalles de los resultados de seguridad.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Windows 2016 o versiones posteriores, o un host de Linux con
systemd
- Si se ejecuta detrás de un proxy, los puertos de firewall están abiertos.
- Acceso privilegiado a McAfee EPO
- La extensión McAfee DLP Endpoint está instalada y activa
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
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 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 la 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_file_path: '/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: 'MCAFEE_DLP' 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 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 en McAfee ePO
- Accede a la consola de McAfee ePO.
- Ve a Menú > Configuración > Servidores registrados.
- Haz clic en New Server > Syslog Server.
- Proporciona los siguientes detalles de configuración:
- Nombre: Nombre único para el servidor de Syslog (por ejemplo,
Google SecOps
). - Dirección del servidor: Ingresa la dirección IP del agente de BindPlane.
- Puerto: Ingresa el número de puerto del agente de Bindplane (el valor predeterminado es
514
). - Protocolo: Selecciona UDP o TCP (según la instalación del agente de Bindplane).
- Formato: Usa
CSV
oCEF
.
- Nombre: Nombre único para el servidor de Syslog (por ejemplo,
- Haz clic en Guardar.
Configura el reenvío de eventos de DLP
- Ve a Menú > Protección de datos > Administrador de políticas de DLP.
- Haz clic en la pestaña Reglas de asignación de políticas de PPD.
- Edita la regla que se aplica a tus sistemas objetivo o crea una nueva.
- Ve a la pestaña Acciones de la regla.
- Marca la casilla de verificación Registrar en el servidor Syslog y selecciona el servidor Syslog que creaste anteriormente.
- Guarda la regla.
Habilita el reenvío de incidentes de DLP
- Ve a Menú > Protección de datos > Administrador de incidentes de DLP.
- Haz clic en Incident Actions.
- Crea o edita una acción para reenviar al servidor syslog.
- Asigna esta acción a una regla de tu política de DLP.
Implementa la política
- Ve a Árbol del sistema > selecciona el grupo o sistema deseado.
- Haz clic en Actions > Agent > Wake Up Agents.
- Selecciona las Send Policies.
- Haz clic en Aceptar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
action |
security_result.action_details |
Se asigna directamente desde el campo action . |
action |
security_result.action |
Se deriva del campo action . Si action es 1, es BLOCK. Si action es 0, es ALLOW. Si action es 6, es UNKNOWN_ACTION. |
agent_ver |
metadata.product_version |
Se asigna directamente desde el campo agent_ver (que proviene de column8 ). |
class_count |
additional.fields[4].key |
El valor es ClassCount . |
class_count |
additional.fields[4].value.string_value |
Se asigna directamente desde el campo class_count . |
class_display |
additional.fields[5].key |
El valor es ClassDisplay . |
class_display |
additional.fields[5].value.string_value |
Se asigna directamente desde el campo class_display . |
count |
additional.fields[6].key |
El valor es Count . |
count |
additional.fields[6].value.string_value |
Se asigna directamente desde el campo count . |
device_name |
principal.hostname |
Se asigna directamente desde el campo device_name . |
dst |
target.hostname |
Se asigna directamente desde el campo dst si inc_type es 10000 . |
dst |
target.user.userid |
Se asigna directamente desde el campo dst si inc_type no es 10000 . |
dst_app |
target.application |
Se asigna directamente desde el campo dst_app . |
dst_url |
target.url |
Se asigna directamente desde el campo dst_url . |
encrypt |
security_result.detection_fields[1].key |
El valor es EncryptionProvider . |
encrypt |
security_result.detection_fields[1].value |
Se asigna directamente desde el campo encrypt . |
evidence_count |
additional.fields[2].key |
El valor es EvidenceCount . |
evidence_count |
additional.fields[2].value.string_value |
Se asigna directamente desde el campo evidence_count . |
fail_reason |
additional.fields[3].key |
El valor es FailReason . |
fail_reason |
additional.fields[3].value.string_value |
Se asigna directamente desde el campo fail_reason . |
fail_reason |
security_result.description |
Si fail_reason es 0 , el valor es No Failure . De lo contrario, el valor es Failure Occurred . |
file |
target.file.full_path |
Se asigna directamente desde el campo file . |
file_size |
target.file.size |
Se asigna directamente desde el campo file_size y se convierte en un número entero sin signo. |
group |
principal.user.attribute.labels.key |
El valor es group . |
group |
principal.user.attribute.labels.value |
Se asigna directamente desde el campo group . |
inc_id |
metadata.product_log_id |
Se asigna directamente desde el campo inc_id (que proviene de column1 ). |
inc_type |
metadata.event_type |
Se usa en la lógica condicional para determinar el metadata.event_type . Consulta la lógica para obtener más detalles. |
inc_type |
metadata.product_event_type |
Se asigna directamente desde el campo inc_type (que proviene de column2 ). |
ip |
principal.ip |
Dirección IP extraída del campo ip con grok. |
local_date |
metadata.event_timestamp |
Es la marca de tiempo del campo local_date , analizada y convertida en segundos desde la época. |
name |
principal.user.user_display_name |
Se asigna directamente desde el campo name . Si inc_type está en [10000 ,10001 ,10002 ,40101 ,40400 ,40500 ,40700 ] y ip es una IP válida, el valor es SCAN_NETWORK . Si inc_type es 40102 y file no está vacío, el valor es SCAN_FILE . Si inc_type está en [40301 ,40602 ], el valor es PROCESS_UNCATEGORIZED . De lo contrario, el valor es GENERIC_EVENT . Valor codificado: GCP_CLOUDAUDIT . Valor codificado: Mcafee DLP . Valor codificado: Mcafee . Si status_id está en [1 ,2 ], el valor es NEW . Si status_id está en [3 ,4 ], el valor es CLOSED . Si status_id está en [5 ,6 ], el valor es REVIEWED . El valor es StatusId . El valor es Resolution Id . El valor es Expected Action . |
process_name |
target.process.file.full_path |
Se asigna directamente desde el campo process_name . |
resolution_id |
security_result.about.labels[0].value |
Se asigna directamente desde el campo resolution_id . |
rule_name |
security_result.rule_name |
Se asigna directamente desde el campo rule_name . |
rule_set |
security_result.rule_labels.key |
El valor es rule_set . |
rule_set |
security_result.rule_labels.value |
Se asigna directamente desde el campo rule_set . |
sev |
security_result.severity |
Se deriva del campo sev . Si sev es 1, es INFORMATIONAL. Si sev es 2, es ERROR. Si sev es 3, es BAJO. Si sev es 4, es ALTA. Si sev es 5, es CRÍTICO. |
sev |
security_result.severity_details |
Se asigna directamente desde el campo sev . |
status_id |
principal.labels.value |
Se asigna directamente desde el campo status_id . |
total_count |
additional.fields[1].key |
El valor es TotalCount . |
total_count |
additional.fields[1].value.string_value |
Se asigna directamente desde el campo total_count . |
total_size |
additional.fields[0].key |
El valor es TotalSize . |
total_size |
additional.fields[0].value.string_value |
Se asigna directamente desde el campo total_size . |
usb_serial_number |
security_result.detection_fields[0].key |
El valor es USBSerialNumber . |
usb_serial_number |
security_result.detection_fields[0].value |
Se asigna directamente desde el campo usb_serial_number . |
user |
principal.user.userid |
Se asigna directamente desde el campo user . |
user_ou |
principal.user.group_identifiers |
Se asigna directamente desde el campo user_ou . |
volume_serial_number |
security_result.detection_fields[2].key |
El valor es VolumeSerialNumber . |
volume_serial_number |
security_result.detection_fields[2].value |
Se asigna directamente desde el campo volume_serial_number . |
expected_action |
security_result.about.labels[1].value |
Se asigna directamente desde el campo expected_action . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.