Recoger registros de DLP de Symantec
En este documento se explica cómo recoger registros de DLP de Symantec mediante Bindplane. El código del analizador primero intenta analizar los datos de registro de Symantec DLP entrantes como XML. Si falla el análisis XML, se asume un formato SYSLOG + KV (CEF) y se usa una combinación de filtros grok
y kv
para extraer pares de clave-valor y asignarlos al modelo de datos unificado (UDM).
Antes de empezar
- Asegúrate de que tienes una instancia de Google Security Operations.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host Linux con
systemd
. - Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
- Asegúrate de que tienes acceso con privilegios a Symantec DLP.
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
Instalación de ventanas
- 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 de Linux
- Abre un terminal con privilegios de superusuario 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 otras opciones de instalación, consulta esta 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
,vi
o Bloc de notas).
- Busca el archivo
Edita el archivo
config.yaml
de la siguiente manera:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" 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: SYSLOG namespace: symantec_dlp raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.
Sustituye
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a 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-agent
Para reiniciar el agente de Bindplane en Windows, puedes usar la consola Servicios o introducir el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar Symantec DLP
- Inicia sesión en la consola Administración de servidores de Symantec.
- Selecciona Gestionar > Políticas > Reglas de respuesta.
- Seleccione Configurar regla de respuesta e introduzca un nombre para la regla.
Proporciona los siguientes datos:
- Acciones: selecciona Registrar en un servidor syslog.
- Host: introduce la dirección IP de
Bindplane
. - Puerto: introduce el número de puerto
Bindplane
. Mensaje: introduce el siguiente mensaje:
|symcdlpsys|APPLICATION_NAME|$APPLICATION_NAME$|APPLICATION_USER|$APPLICATION_USER$|ATTACHMENT_FILENAME|$ATTACHMENT_FILENAME$|BLOCKED|$BLOCKED$|DATAOWNER_NAME|$DATAOWNER_NAME$|DATAOWNER_EMAIL|$DATAOWNER_EMAIL$|DESTINATION_IP|$DESTINATION_IP$|ENDPOINT_DEVICE_ID|$ENDPOINT_DEVICE_ID$|ENDPOINT_LOCATION|$ENDPOINT_LOCATION$|ENDPOINT_MACHINE|$ENDPOINT_MACHINE$|ENDPOINT_USERNAME|$ENDPOINT_USERNAME$|PATH|$PATH$|FILE_NAME|$FILE_NAME$|PARENT_PATH|$PARENT_PATH$|INCIDENT_ID|$INCIDENT_ID$|INCIDENT_SNAPSHOT|$INCIDENT_SNAPSHOT$|MACHINE_IP|$MACHINE_IP$|MATCH_COUNT|$MATCH_COUNT$|OCCURRED_ON|$OCCURRED_ON$|POLICY|$POLICY$|RULES|$RULES$|PROTOCOL|$PROTOCOL$|QUARANTINE_PARENT_PATH|$QUARANTINE_PARENT_PATH$|RECIPIENTS|$RECIPIENTS$|REPORTED_ON|$REPORTED_ON$|SCAN|$SCAN$|SENDER|$SENDER$|MONITOR_NAME|$MONITOR_NAME$|SEVERITY|$SEVERITY$|STATUS|$STATUS$|SUBJECT|$SUBJECT$|TARGET|$TARGET$|URL|$URL$|USER_JUSTIFICATION|$USER_JUSTIFICATION$|
Depuración: selecciona Nivel 4.
Haz clic en Aplicar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
actuar | security_result.action | Si act es Passed , asigna el valor ALLOW . Si act es Modified , asigna el valor ALLOW_WITH_MODIFICATION . Si act es Blocked , asigna el valor BLOCK . De lo contrario, asigna el valor UNKNOWN_ACTION . |
application_name | target.application | Asignación directa. |
asset_ip | principal.ip, principal.asset.ip | Asignación directa. |
asset_name | principal.hostname, principal.asset.hostname | Asignación directa. |
attachment_name | security_result.about.file.full_path | Asignación directa. |
bloqueado | security_result.action_details | Asignación directa. |
calling_station_id | principal.mac, principal.asset.mac | Si calling_station_id es una dirección MAC, asígnela directamente después de sustituir - por : y convertirla a minúsculas. |
called_station_id | target.mac, target.asset.mac | Si called_station_id es una dirección MAC, extrae la parte de la dirección MAC que va antes de : y asígnala directamente después de sustituir - por : y convertirla a minúsculas. |
category1 | security_result.detection_fields | Crea una etiqueta con la clave category1 y el valor de category1 . |
category2 | security_result.detection_fields | Crea una etiqueta con la clave category2 y el valor de category2 . |
category3 | security_result.detection_fields | Crea una etiqueta con la clave category3 y el valor de category3 . |
client_friendly_name | target.user.userid | Asignación directa. |
dataowner_mail | principal.user.email_addresses | Se asigna directamente si es una dirección de correo válida. |
description | metadata.description | Asignación directa. |
dest_location | target.location.country_or_region | Se asigna directamente si no es RED . |
deviceId | target.asset_id | Asignado como ID:%{deviceId} . |
device_version | metadata.product_version | Asignación directa. |
dhost | network.http.referral_url | Asignación directa. |
dlp_type | security_result.detection_fields | Crea una etiqueta con la clave dlp_type y el valor de dlp_type . |
DLP_EP_Incident_ID | security_result.threat_id, security_result.detection_fields | Asignado directamente a threat_id . Además, crea una etiqueta con la clave Incident ID y el valor de DLP_EP_Incident_ID . |
dominio | principal.administrative_domain | Asignación directa. |
dst | target.ip, target.asset.ip | Se asigna directamente si es una dirección IP válida. |
endpoint_machine | target.ip, target.asset.ip | Se asigna directamente si es una dirección IP válida. |
endpoint_user_department | target.user.department | Asignación directa. |
endpoint_user_email | target.user.email_addresses | Asignación directa. |
endpoint_user_manager | target.user.managers | Crea un objeto de gestor con user_display_name de endpoint_user_manager . |
endpoint_user_name | target.user.user_display_name | Asignación directa. |
endpoint_user_title | target.user.title | Asignación directa. |
event_description | metadata.description | Asignación directa. |
event_id | metadata.product_log_id | Asignación directa. |
event_source | target.application | Asignación directa. |
event_timestamp | metadata.event_timestamp | Asignación directa. |
file_name | security_result.about.file.full_path | Asignación directa. |
filename | target.file.full_path, src.file.full_path | Asignado directamente a target.file.full_path . Si has_principal es true, también se asigna a src.file.full_path y se asigna a event_type el valor FILE_COPY . |
host | src.hostname, principal.hostname, principal.asset.hostname | Si cef_data contiene CEF , asigna los tres campos. De lo contrario, asigna los valores principal.hostname y principal.asset.hostname . |
incident_id | security_result.threat_id, security_result.detection_fields | Asignado directamente a threat_id . Además, crea una etiqueta con la clave Incident ID y el valor de incident_id . |
ubicación | principal.resource.attribute.labels | Crea una etiqueta con la clave Location y el valor de location . |
match_count | security_result.detection_fields | Crea una etiqueta con la clave Match Count y el valor de match_count . |
monitor_name | additional.fields | Crea una etiqueta con la clave Monitor Name y el valor de monitor_name . |
nas_id | target.hostname, target.asset.hostname | Asignación directa. |
occurred_on | principal.labels, additional.fields | Crea una etiqueta con la clave Occurred On y el valor de occurred_on para principal.labels y additional.fields . |
policy_name | sec_result.detection_fields | Crea una etiqueta con la clave policy_name y el valor de policy_name . |
policy_rule | security_result.rule_name | Asignación directa. |
policy_severity | security_result.severity | Asignado a severity después de convertirlo a mayúsculas. Si policy_severity es INFO , asígnalo como INFORMATIONAL . Si policy_severity no es HIGH , MEDIUM , LOW ni INFORMATIONAL , asigne el valor UNKNOWN_SEVERITY a severity . |
policy_violated | security_result.summary | Asignación directa. |
Protocolo | network.application_protocol, target.application, sec_result.description | Si Protocol no es FTP ni Endpoint , asígnale el valor network.application_protocol después de analizarlo con el archivo parse_app_protocol.include . Si Protocol es FTP , asígnalo a target.application . Si Protocol es Endpoint , asigna a sec_result.description el valor Protocol=%{Protocol} . |
destinatario | target.user.email_addresses, about.user.email_addresses | Asigna cada dirección de correo de recipient a target.user.email_addresses y about.user.email_addresses . |
destinatarios | network.http.referral_url, target.resource.attribute.labels | Asignado directamente a network.http.referral_url . Además, crea una etiqueta con la clave recipients y el valor de recipients . |
reported_on | additional.fields | Crea una etiqueta con la clave Reported On y el valor de reported_on . |
rules | security_result.detection_fields | Crea una etiqueta con la clave Rules y el valor de rules . |
sender | network.email.from, target.resource.attribute.labels | Si sender es una dirección de correo válida, asígnala a network.email.from . Además, crea una etiqueta con la clave sender y el valor de sender . |
servidor | target.application | Asignación directa. |
Gravedad | security_result.severity | Consulta policy_severity para ver la lógica de asignación. |
src | principal.ip, principal.asset.ip | Se asigna directamente si es una dirección IP válida. |
status | principal.labels, additional.fields | Crea una etiqueta con la clave Status y el valor de status para principal.labels y additional.fields . |
subject | target.resource.attribute.labels, network.email.subject | Crea una etiqueta con la clave subject y el valor de subject . Además, asigna subject a network.email.subject . |
target_type | target.resource.attribute.labels | Crea una etiqueta con la clave Target Type y el valor de target_type . |
timestamp | metadata.event_timestamp | Se asignan directamente después de analizarlos con el filtro date . |
url | target.url | Asignación directa. |
usuario | target.user.userid | Asignación directa. |
user_id | principal.user.userid | Asignación directa. |
nombre de usuario | principal.user.userid | Asignación directa. |
N/A | metadata.product_name | Su valor debe ser SYMANTEC_DLP . |
N/A | metadata.vendor_name | Su valor debe ser SYMANTEC . |
N/A | metadata.event_type | Si event_type no está vacío, asigna el valor directamente. De lo contrario, si host no está vacío y has_principal es true, se le asigna el valor SCAN_NETWORK . De lo contrario, asigna el valor GENERIC_EVENT . |
N/A | metadata.product_event_type | Si policy_violated contiene -NM- o data contiene DLP NM , el valor debe ser Network Monitor . Si policy_violated contiene -EP- o data contiene DLP EP , el valor debe ser Endpoint . |
N/A | metadata.log_type | Su valor debe ser SYMANTEC_DLP . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.