Recopila registros de DLP de Fortra Digital Guardian
En este documento, se explica cómo recopilar registros de la DLP de Fortra Digital Guardian en Google Security Operations con un agente de Bindplane. El código del analizador transforma los registros sin procesar con formato JSON en un modelo de datos unificado (UDM). Primero, extrae campos del JSON sin procesar, realiza la limpieza y la normalización de los datos y, luego, asigna los campos extraídos a sus atributos de UDM correspondientes, lo que enriquece los datos con tipos de eventos específicos según la actividad identificada.
Antes de comenzar
- Asegúrate de tener una instancia de Google Security Operations.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con
systemd
. - Si ejecutas la herramienta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
- Asegúrate de tener acceso con privilegios a la DLP de Fortra Digital Guardian.
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
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 esta 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: '/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: DIGITALGUARDIAN_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 datos 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 la exportación de Syslog de Fortra Digital Guardian
- Accede a la Consola de administración de Digital Guardian.
- Ve a Workspace > Exportación de datos > Crear exportación.
- Selecciona Alertas o Eventos como la fuente de datos de la lista Fuentes de datos.
- Selecciona Syslog como el tipo de exportación.
En la lista de tipos, selecciona UDP (también puedes seleccionar TCP como protocolo de transporte, según la configuración de Bindplane).
En el campo Servidor, ingresa la dirección IP del agente de Bindplane.
En el campo Puerto, ingresa
514
(puedes proporcionar otro puerto, según la configuración de tu agente de Bindplane).Selecciona un nivel de gravedad en la lista Severity Level.
Selecciona la casilla de verificación Is Active.
Haz clic en Siguiente.
En la lista de campos disponibles, agrega todos los campos de Alerta y Evento para la exportación de datos.
Selecciona Criterios para los campos de tu exportación de datos.
Haz clic en Siguiente.
Selecciona un grupo para los criterios.
Haz clic en Siguiente.
Haz clic en Probar consulta.
Haz clic en Siguiente.
Haz clic en Guardar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Versión del agente | observer.platform_version | Se asigna directamente desde el campo de registro sin procesar Agent Version . |
Aplicación | principal.process.command_line | Se asigna directamente desde el campo de registro sin procesar Application si no está vacío. |
Línea de comandos | target.process.command_line | Se asigna directamente desde el campo de registro sin procesar Command Line . |
Nombre de la empresa | principal.user.company_name | Se asigna directamente desde el campo de registro sin procesar Company Name . |
Nombre de la computadora | principal.hostname | Se asigna directamente desde el campo de registro sin procesar Computer Name . |
Nombre de host de DNS | target.asset.hostname | Se asigna directamente desde el campo de registro sin procesar DNS Hostname . |
Tipo de unidad de destino | about.labels.value | Se asigna directamente desde el campo de registro sin procesar Destination Drive Type . La clave correspondiente se establece en Destination Drive Type . |
Extensión del archivo de destino | target.file.mime_type | Se asigna directamente desde el campo de registro sin procesar Destination File Extension si no es no extension o [no extension] . |
Ruta de acceso al archivo de destino | target.file.full_path | Se asigna directamente desde el campo de registro sin procesar Destination File Path . |
GUID del dispositivo | src.resource.id | Se asigna desde el campo de registro sin procesar Device GUID con el prefijo GUID: . |
Remitente del mensaje de correo electrónico | network.email.from | Se asigna directamente desde el campo de registro sin procesar Email Sender si no está vacío. |
Asunto del correo electrónico | network.email.subject | Se asigna directamente desde el campo de registro sin procesar Email Subject si Email Sender no está vacío. |
Nombre visible del evento | target.resource.type | Se asigna directamente desde el campo de registro sin procesar Event Display Name . |
Fecha y hora del evento | metadata.event_timestamp.seconds | Se convirtió a marca de tiempo desde el campo de registro sin procesar Event Time con los formatos yyyy-MM-dd HH:mm:ss A y TIMESTAMP_ISO8601 . |
Descripción del archivo | metadata.description | Se asigna directamente desde el campo de registro sin procesar File Description . |
Tamaño del archivo | about.labels.value | Se asigna directamente desde el campo de registro sin procesar File Size . La clave correspondiente se establece en File Size . |
Versión del archivo | about.labels.value | Se asigna directamente desde el campo de registro sin procesar File Version . La clave correspondiente se establece en File Version . |
Dirección IP | principal.ip | Se asigna directamente desde el campo de registro sin procesar IP Address si Source IP Address está vacío. |
Puerto local | principal.port | Se asigna directamente desde el campo de registro sin procesar Local Port si no está vacío y se convierte en un número entero. |
Dirección MAC | target.mac | Se asigna directamente desde el campo de registro sin procesar MAC Address si no está vacío. |
ID de máquina | principal.asset.asset_id | Se asigna desde el campo de registro sin procesar Machine ID con el prefijo MachineId: . |
Tipo de máquina | principal.asset.category | Se asigna directamente desde el campo de registro sin procesar Machine Type . |
Hash MD5 | target.process.file.md5 | Se asigna directamente desde el campo de registro sin procesar MD5 Hash después de convertirlo a minúsculas. |
Dirección de la red | network.direction | Se asignó desde el campo de registro sin procesar Network Direction . Si es Inbound , configúralo como INBOUND . Si es Outbound , configúralo como OUTBOUND . |
Tipo de operación | security_result.action_details | Se asigna directamente desde el campo de registro sin procesar Operation Type . |
Aplicación para padres | principal.process.parent_process.command_line | Se asigna directamente desde el campo de registro sin procesar Parent Application si no está vacío. |
Hash MD5 principal | target.process.parent_process.file.md5 | Se asigna directamente desde el campo de registro sin procesar Parent MD5 Hash después de convertirlo a minúsculas si coincide con un patrón de cadena hexadecimal. |
Dominio del proceso | target.administrative_domain | Se asigna directamente desde el campo de registro sin procesar Process Domain . |
Procesa la extensión de archivo | target.process.file.mime_type | Se asigna directamente desde el campo de registro sin procesar Process File Extension si no es no extension o [no extension] . |
Ruta de procesamiento | target.process.file.full_path | Se asigna directamente desde el campo de registro sin procesar Process Path . |
PID del proceso | principal.process.pid | Se asigna directamente desde el campo de registro sin procesar Process PID después de convertirlo en una cadena. |
Nombre del producto | metadata.product_name | Se asigna directamente desde el campo de registro sin procesar Product Name . |
Versión del producto | metadata.product_version | Se asigna directamente desde el campo de registro sin procesar Product Version . |
Protocolo | network.application_protocol | Si es HTTP o HTTPS , configúralo como HTTPS . |
Nombre de la impresora | src.resource.name | Se asigna directamente desde el campo de registro sin procesar Printer Name . |
Puerto remoto | target.port | Se asigna directamente desde el campo de registro sin procesar Remote Port si no está vacío y se convierte en un número entero. |
Hash de SHA1 | target.process.file.sha1 | Se asigna directamente desde el campo de registro sin procesar SHA1 Hash después de convertirlo a minúsculas. |
Hash SHA256 | target.process.file.sha256 | Se asigna directamente desde el campo de registro sin procesar SHA256 Hash después de convertirlo a minúsculas. |
Entidad emisora de la firma | network.tls.server.certificate.issuer | Se asigna directamente desde el campo de registro sin procesar Signature Issuer . |
Asunto de la firma | network.tls.server.certificate.subject | Se asigna directamente desde el campo de registro sin procesar Signature Subject . |
Extensión del archivo fuente | src.file.mime_type | Se asigna directamente desde el campo de registro sin procesar Source File Extension si no es no extension o [no extension] . |
Ruta de acceso al archivo fuente | src.file.full_path | Se asigna directamente desde el campo de registro sin procesar Source File Path . |
Dirección IP de origen | principal.ip | Se asigna directamente desde el campo de registro sin procesar Source IP Address si no está vacío. |
Tamaño total | about.labels.value | Se asigna directamente desde el campo de registro sin procesar Total Size . La clave correspondiente se establece en Total Size . |
Ruta de URL | target.url | Se asigna directamente desde el campo de registro sin procesar URL Path . |
ID único | metadata.product_log_id | Se asigna directamente desde el campo de registro sin procesar Unique ID . |
Usuario | principal.user.userid | Se asigna directamente desde el campo de registro sin procesar User . |
Se bloqueó el detalle | security_result.action | Si es Yes , configúralo como BLOCK . Si es No , configúralo como ALLOW . |
dg_dst_dev.dev_prdname | target.asset.hardware.model | Se asigna directamente desde el campo de registro sin procesar dg_dst_dev.dev_prdname . |
dg_dst_dev.dev_sernum | target.asset.hardware.serial_number | Se asigna directamente desde el campo de registro sin procesar dg_dst_dev.dev_sernum . |
dg_recipients.uad_mr | network.email.to | Se asigna directamente desde el campo de registro sin procesar dg_recipients.uad_mr si coincide con un patrón de dirección de correo electrónico. |
dg_src_dev.dev_prdname | principal.asset.hardware.model | Se asigna directamente desde el campo de registro sin procesar dg_src_dev.dev_prdname . |
dg_src_dev.dev_sernum | principal.asset.hardware.serial_number | Se asigna directamente desde el campo de registro sin procesar dg_src_dev.dev_sernum . |
metadata.event_type | metadata.event_type | Se establece en GENERIC_EVENT de forma inicial. Cambia según condiciones específicas: - NETWORK_HTTP : Si están presentes el nombre de host, el protocolo HTTP/HTTPS y la dirección MAC. - FILE_COPY : Si existen las rutas de acceso a los archivos de destino y de origen, y Operation Type es File Copy . - FILE_MOVE : Si existen las rutas de acceso a los archivos de destino y de origen, y Operation Type es File Move . - FILE_UNCATEGORIZED : Si existen la ruta de acceso al archivo de destino y la ruta de acceso o la línea de comandos del proceso, y Operation Type contiene File . - USER_LOGOUT : Si existe el ID de usuario y Operation Type contiene Logoff . - USER_LOGIN : Si existe el ID de usuario y Operation Type contiene Logon . - NETWORK_UNCATEGORIZED : Si están presentes la ruta de acceso o la línea de comandos del proceso, el ID del proceso, la dirección de red saliente y la dirección MAC - SCAN_PROCESS : Si la ruta de acceso al proceso o la línea de comandos y el ID del proceso están presentes. - PROCESS_UNCATEGORIZED : Si existe la ruta de acceso al proceso o la línea de comandos. |
metadata.log_type | metadata.log_type | Se define en DIGITALGUARDIAN_DLP . |
metadata.product_log_id | metadata.product_log_id | Se asigna directamente desde el campo de registro sin procesar Unique ID . |
metadata.product_name | metadata.product_name | Se asigna directamente desde el campo de registro sin procesar Product Name . |
metadata.product_version | metadata.product_version | Se asigna directamente desde el campo de registro sin procesar Product Version . |
metadata.vendor_name | metadata.vendor_name | Se define en DigitalGuardian . |
network.application_protocol | network.application_protocol | Se establece en HTTPS si Protocol es HTTP o HTTPS . |
network.direction | network.direction | Se asignó desde el campo de registro sin procesar Network Direction . Si es Inbound , configúralo como INBOUND . Si es Outbound , configúralo como OUTBOUND . |
network.email.from | network.email.from | Se asigna directamente desde el campo de registro sin procesar Email Sender si no está vacío. |
network.email.subject | network.email.subject | Se asigna directamente desde el campo de registro sin procesar Email Subject si Email Sender no está vacío. |
network.email.to | network.email.to | Se asigna directamente desde el campo de registro sin procesar dg_recipients.uad_mr si coincide con un patrón de dirección de correo electrónico. |
network.tls.server.certificate.issuer | network.tls.server.certificate.issuer | Se asigna directamente desde el campo de registro sin procesar Signature Issuer . |
network.tls.server.certificate.subject | network.tls.server.certificate.subject | Se asigna directamente desde el campo de registro sin procesar Signature Subject . |
observer.platform_version | observer.platform_version | Se asigna directamente desde el campo de registro sin procesar Agent Version . |
principal.asset.asset_id | principal.asset.asset_id | Se asigna desde el campo de registro sin procesar Machine ID con el prefijo MachineId: . |
principal.asset.category | principal.asset.category | Se asigna directamente desde el campo de registro sin procesar Machine Type . |
principal.asset.hardware.model | principal.asset.hardware.model | Se asigna directamente desde el campo de registro sin procesar dg_src_dev.dev_prdname . |
principal.asset.hardware.serial_number | principal.asset.hardware.serial_number | Se asigna directamente desde el campo de registro sin procesar dg_src_dev.dev_sernum . |
principal.hostname | principal.hostname | Se asigna directamente desde el campo de registro sin procesar Computer Name . |
principal.ip | principal.ip | Se asigna directamente desde el campo de registro sin procesar Source IP Address si no está vacío. De lo contrario, se asigna desde IP Address si no está vacío. |
principal.port | principal.port | Se asigna directamente desde el campo de registro sin procesar Local Port si no está vacío y se convierte en un número entero. |
principal.process.command_line | principal.process.command_line | Se asigna directamente desde el campo de registro sin procesar Application si no está vacío. |
principal.process.parent_process.command_line | principal.process.parent_process.command_line | Se asigna directamente desde el campo de registro sin procesar Parent Application si no está vacío. |
principal.process.parent_process.file.md5 | principal.process.parent_process.file.md5 | Se asigna directamente desde el campo de registro sin procesar Parent MD5 Hash después de convertirlo a minúsculas si coincide con un patrón de cadena hexadecimal. |
principal.process.pid | principal.process.pid | Se asigna directamente desde el campo de registro sin procesar Process PID después de convertirlo en una cadena. |
principal.user.company_name | principal.user.company_name | Se asigna directamente desde el campo de registro sin procesar Company Name . |
principal.user.userid | principal.user.userid | Se asigna directamente desde el campo de registro sin procesar User . |
security_result.action | security_result.action | Si Was Detail Blocked es Yes , configúralo como BLOCK . Si Was Detail Blocked es No , configúralo como ALLOW . |
security_result.action_details | security_result.action_details | Se asigna directamente desde el campo de registro sin procesar Operation Type . |
src.file.full_path | src.file.full_path | Se asigna directamente desde el campo de registro sin procesar Source File Path . |
src.file.mime_type | src.file.mime_type | Se asigna directamente desde el campo de registro sin procesar Source File Extension si no es no extension o [no extension] . |
src.resource.id | src.resource.id | Se asigna desde el campo de registro sin procesar Device GUID con el prefijo GUID: . |
src.resource.name | src.resource.name | Se asigna directamente desde el campo de registro sin procesar Printer Name . |
target.administrative_domain | target.administrative_domain | Se asigna directamente desde el campo de registro sin procesar Process Domain . |
target.asset.hardware.model | target.asset.hardware.model | Se asigna directamente desde el campo de registro sin procesar dg_dst_dev.dev_prdname . |
target.asset.hardware.serial_number | target.asset.hardware.serial_number | Se asigna directamente desde el campo de registro sin procesar dg_dst_dev.dev_sernum . |
target.asset.hostname | target.asset.hostname | Se asigna directamente desde el campo de registro sin procesar DNS Hostname . |
target.asset.product_object_id | target.asset.product_object_id | Se asigna directamente desde el campo de registro sin procesar Adapter Name . |
target.file.full_path | target.file.full_path | Se asigna directamente desde el campo de registro sin procesar Destination File Path . |
target.file.mime_type | target.file.mime_type | Se asigna directamente desde el campo de registro sin procesar Destination File Extension si no es no extension o [no extension] . |
target.mac | target.mac | Se asigna directamente desde el campo de registro sin procesar MAC Address si no está vacío. |
target.port | target.port | Se asigna directamente desde el campo de registro sin procesar Remote Port si no está vacío y se convierte en un número entero. |
target.process.command_line | target.process.command_line | Se asigna directamente desde el campo de registro sin procesar Command Line . |
target.process.file.full_path | target.process.file.full_path | Se asigna directamente desde el campo de registro sin procesar Process Path . |
target.process.file.md5 | target.process.file.md5 | Se asigna directamente desde el campo de registro sin procesar MD5 Hash después de convertirlo a minúsculas. |
target.process.file.mime_type | target.process.file.mime_type | Se asigna directamente desde el campo de registro sin procesar Process File Extension si no es no extension o [no extension] . |
target.process.file.sha1 | target.process.file.sha1 | Se asigna directamente desde el campo de registro sin procesar SHA1 Hash después de convertirlo a minúsculas. |
target.process.file.sha256 | target.process.file.sha256 | Se asigna directamente desde el campo de registro sin procesar SHA256 Hash después de convertirlo a minúsculas. |
target.process.parent_process.command_line | target.process.parent_process.command_line | Se asigna directamente desde el campo de registro sin procesar Parent Application si no está vacío. |
target.process.parent_process.file.md5 | target.process.parent_process.file.md5 | Se asigna directamente desde el campo de registro sin procesar Parent MD5 Hash después de convertirlo a minúsculas si coincide con un patrón de cadena hexadecimal. |
target.resource.type | target.resource.type | Se asigna directamente desde el campo de registro sin procesar Event Display Name . |
target.url | target.url | Se asigna directamente desde el campo de registro sin procesar URL Path . |
extensions.auth.type | extensions.auth.type | Se establece en AUTHTYPE_UNSPECIFIED si Operation Type es User Logoff o User Logon . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.