Recopila registros de Symantec Endpoint Protection
En este documento, se explica cómo transferir registros de Symantec Endpoint Protection a Google Security Operations con Bindplane. El analizador procesa los registros en formato SYSLOG o KV, y primero extrae las marcas de tiempo de varios formatos dentro de los datos de registro.
Luego, utiliza un archivo de configuración independiente (sep_pt2.include
) para realizar un análisis y una estructuración adicionales de los eventos de registro, lo que garantiza un procesamiento exitoso solo si la extracción inicial de la marca de tiempo se realiza correctamente.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Host de Windows 2016 o posterior, o de Linux con systemd
- Si se ejecuta detrás de un proxy, los puertos de firewall están abiertos.
- Acceso con privilegios a la plataforma de Symantec Endpoint Protection
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 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: '/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: 'CES' 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
Cómo configurar Syslog en Symantec Endpoint Protection
- Accede a la IU web de Symantec Endpoint Protection Manager.
- Haz clic en el ícono de Administrador.
- Ubica la sección Ver servidores y haz clic en Servidores.
- Haz clic en Sitio local > Configurar el registro externo.
- Selecciona la casilla de verificación Habilitar la transmisión de registros a un servidor Syslog.
- Proporciona los siguientes detalles de configuración:
- Servidor Syslog: Ingresa la dirección IP de Bindplane.
- Puerto de destino UDP: Ingresa el número de puerto de Bindplane (por ejemplo,
514
para UDP). - Log Facility: Ingresa Local6.
- Selecciona la casilla de verificación Registros de auditoría.
- Selecciona la casilla de verificación Registros de seguridad.
- Selecciona la casilla de verificación Riesgos.
- Haz clic en Aceptar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
Acción | security_result.action | El valor se toma del campo Action en el registro sin procesar y se asigna a una acción del UDM. |
Tipo de acción | security_result.action_details | El valor se toma del campo Action Type en el registro sin procesar. |
Administrador | ||
Motivo de la aplicación permitida | security_result.action_details | El valor se toma del campo Allowed application reason en el registro sin procesar. |
Aplicación | principal.process.command_line | El valor se toma del campo Application en el registro sin procesar. |
Hash de la aplicación | target.file.sha256 | El valor se toma del campo Application hash en el registro sin procesar. |
Nombre de la aplicación | target.application | El valor se toma del campo Application name en el registro sin procesar. |
Tipo de aplicación | target.resource.attribute.labels.value | El valor se toma del campo Application type en el registro sin procesar. La clave está codificada como Application Type . |
Versión de la aplicación | target.application.version | El valor se toma del campo Application version en el registro sin procesar. |
Comenzar | ||
Hora de inicio | extensions.vulns.vulnerabilities.scan_start_time | El valor se toma del campo Begin Time en el registro sin procesar. |
Comienzo: | extensions.vulns.vulnerabilities.scan_start_time | El valor se toma del campo Begin: en el registro sin procesar. |
Categoría | principal.resource.attribute.labels.value | El valor se toma del campo Category en el registro sin procesar. La clave está codificada como Category . |
Conjunto de categorías | security_result.category | El valor se toma del campo Category set en el registro sin procesar y se asigna a una categoría del UDM. |
Tipo de categoría | security_result.category_details | El valor se toma del campo Category type en el registro sin procesar. |
ID de firma de CIDS | ||
Cadena de firma de CIDS | security_result.summary | El valor se toma del campo CIDS Signature string en el registro sin procesar. |
SubID de firma de CIDS | ||
Política de cliente | ||
Comando | ||
Computadora | target.hostname | El valor se toma del campo Computer en el registro sin procesar. |
Nombre de la computadora | principal.hostname | El valor se toma del campo Computer name en el registro sin procesar. |
Confianza | security_result.confidence_details | El valor se toma del campo Confidence en el registro sin procesar. |
datos | ||
Descripción | security_result.action_details | El valor se toma del campo Description en el registro sin procesar. |
Descripción: | security_result.action_details | El valor se toma del campo Description: en el registro sin procesar. |
Puntuación de detección | ||
Número de envíos de detección | ||
Tipo de detección | security_result.summary | El valor se toma del campo Detection type en el registro sin procesar. |
ID de dispositivo | target.asset.hostname | El valor se toma del campo Device ID en el registro sin procesar. |
Disposición | security_result.action | El valor se toma del campo Disposition en el registro sin procesar y se asigna a una acción del UDM. |
Dominio | principal.administrative_domain | El valor se toma del campo Domain en el registro sin procesar. |
Nombre de dominio | principal.administrative_domain | El valor se toma del campo Domain Name en el registro sin procesar. |
Nombre del dominio: | principal.administrative_domain | El valor se toma del campo Domain Name: en el registro sin procesar. |
Descargado por | principal.process.file.full_path | El valor se toma del campo Downloaded by en el registro sin procesar. |
Sitio de descarga | ||
Duración (segundos) | extensions.vulns.vulnerabilities.scan_end_time | El valor se toma del campo Duration (seconds) en el registro sin procesar y se agrega a la hora de inicio del análisis. |
Fin | ||
Hora de finalización | extensions.vulns.vulnerabilities.scan_end_time | El valor se toma del campo End Time en el registro sin procesar. |
Hora de finalización: | extensions.vulns.vulnerabilities.scan_end_time | El valor se toma del campo End Time: en el registro sin procesar. |
Fin: | extensions.vulns.vulnerabilities.scan_end_time | El valor se toma del campo End: en el registro sin procesar. |
Descripción del evento | metadata.description | El valor se toma del campo Event Description en el registro sin procesar. |
Descripción del evento: | metadata.description | El valor se toma del campo Event Description: en el registro sin procesar. |
Hora de inserción del evento | ||
Hora del evento | metadata.event_timestamp | El valor se toma del campo Event time en el registro sin procesar. |
Hora del evento: | metadata.event_timestamp | El valor se toma del campo Event time: en el registro sin procesar. |
Tipo de evento | metadata.product_event_type | El valor se toma del campo Event Type en el registro sin procesar. |
Tipo de evento: | metadata.product_event_type | El valor se toma del campo Event Type: en el registro sin procesar. |
Ruta de acceso al archivo | target.file.full_path | El valor se toma del campo File path en el registro sin procesar. |
Ruta de acceso al archivo: | target.file.full_path | El valor se toma del campo File path: en el registro sin procesar. |
Tamaño del archivo (bytes) | target.file.size | El valor se toma del campo File size (bytes) en el registro sin procesar. |
Visto por primera vez | security_result.action_details | El valor se toma del campo First Seen en el registro sin procesar. |
Visto por primera vez: | security_result.action_details | El valor se toma del campo First Seen: en el registro sin procesar. |
Grupo | principal.group.group_display_name | El valor se toma del campo Group en el registro sin procesar. |
Nombre del grupo | principal.group.group_display_name | El valor se toma del campo Group Name en el registro sin procesar. |
Nombre del grupo: | principal.group.group_display_name | El valor se toma del campo Group Name: en el registro sin procesar. |
Tipo de hash | target.resource.attribute.labels.value | El valor se toma del campo Hash type en el registro sin procesar. La clave está codificada como Hash Type . |
Nivel de protección intensiva | ||
ID de intrusión | ||
URL de carga útil de intrusión | ||
URL de intrusión | ||
Dirección IP | principal.ip | El valor se toma del campo IP Address en el registro sin procesar. |
Dirección IP: | principal.ip | El valor se toma del campo IP Address: en el registro sin procesar. |
Fecha de la última actualización | ||
Host local | principal.ip | El valor se toma del campo Local Host en el registro sin procesar. |
IP de host local | principal.ip | El valor se toma del campo Local Host IP en el registro sin procesar. |
MAC del host local | principal.mac | El valor se toma del campo Local Host MAC en el registro sin procesar. |
Puerto local | principal.port | El valor se toma del campo Local Port en el registro sin procesar. |
Ubicación | ||
MD-5 | ||
Casos | security_result.about.resource.attribute.labels.value | El valor se toma del campo Occurrences en el registro sin procesar. La clave está codificada como Occurrences . |
Motivo de la solicitud permitida | security_result.action_details | El valor se toma del campo Permitted application reason en el registro sin procesar. |
Prevalencia | security_result.description | El valor se toma del campo Prevalence en el registro sin procesar. |
Ruta remota | target.file.full_path | El valor se toma del campo Remote file path en el registro sin procesar. |
IP del host remoto | target.ip | El valor se toma del campo Remote Host IP en el registro sin procesar. |
Dirección MAC del host remoto | target.mac | El valor se toma del campo Remote Host MAC en el registro sin procesar. |
Nombre de host remoto | target.hostname | El valor se toma del campo Remote Host Name en el registro sin procesar. |
Puerto remoto | target.port | El valor se toma del campo Remote Port en el registro sin procesar. |
Acción solicitada | security_result.action | El valor se toma del campo Requested action en el registro sin procesar y se asigna a una acción del UDM. |
Nivel de riesgo | security_result.severity | El valor se toma del campo Risk Level en el registro sin procesar y se asigna a una gravedad del UDM. |
Nombre del riesgo | security_result.threat_name | El valor se toma del campo Risk name en el registro sin procesar. |
Tipo de riesgo | security_result.detection_fields.value | El valor se toma del campo Risk type en el registro sin procesar. La clave está codificada como Risk Type . |
Regla | principal.resource.name | El valor se toma del campo Rule en el registro sin procesar. |
Regla: | principal.resource.name | El valor se toma del campo Rule: en el registro sin procesar. |
ID de análisis | extensions.vulns.vulnerabilities.name | El valor se toma del campo Scan ID en el registro sin procesar. |
ID de análisis: | extensions.vulns.vulnerabilities.name | El valor se toma del campo Scan ID: en el registro sin procesar. |
Tipo de análisis | ||
Acción secundaria | target.resource.attribute.labels.value | El valor se toma del campo Secondary action en el registro sin procesar. La clave está codificada como Secondary action . |
Se encontró un riesgo de seguridad | metadata.description | El valor se toma del campo Security risk found en el registro sin procesar. |
Servidor | intermediary.hostname | El valor se toma del campo Server en el registro sin procesar. |
Nombre del servidor | intermediary.hostname | El valor se toma del campo Server Name en el registro sin procesar. |
Nombre del servidor: | intermediary.hostname | El valor se toma del campo Server Name: en el registro sin procesar. |
SHA-256 | principal.process.file.sha256 | El valor se toma del campo SHA-256 en el registro sin procesar. |
Sitio | additional.fields.value.string_value | El valor se toma del campo Site en el registro sin procesar. La clave está codificada como Site Name . |
Nombre del sitio | additional.fields.value.string_value | El valor se toma del campo Site Name en el registro sin procesar. La clave está codificada como Site Name . |
Sitio: | additional.fields.value.string_value | El valor se toma del campo Site: en el registro sin procesar. La clave está codificada como Site Name . |
Fuente | metadata.product_event_type | El valor se toma del campo Source en el registro sin procesar y se agrega a la cadena codificada Security risk found - . |
Computadora de origen | ||
Computadora de origen: | ||
IP de origen | ||
IP de origen: | ||
Fuente: | metadata.product_event_type | El valor se toma del campo Source: en el registro sin procesar y se agrega a la cadena codificada Security risk found - . |
ts | metadata.event_timestamp | El valor se toma del campo ts en el registro sin procesar. |
Estado del seguimiento de URL | ||
Usuario | principal.user.userid | El valor se toma del campo User en el registro sin procesar. |
Nombre del usuario | principal.user.userid | El valor se toma del campo User Name en el registro sin procesar. |
Nombre de usuario: | principal.user.userid | El valor se toma del campo User Name: en el registro sin procesar. |
Dominio web | ||
metadata.description | Si el registro sin procesar contiene la cadena The client has downloaded , la descripción se establece en The client has downloaded {target file name} . Si el registro sin procesar contiene la cadena The management server received , la descripción se establece en The management server received the client log successfully . De lo contrario, la descripción se establece en el valor del campo Event Description en el registro sin procesar. |
|
metadata.event_type | El tipo de evento se determina según la lógica del analizador en función del contenido del registro sin procesar. | |
metadata.log_type | El tipo de registro está codificado como SEP . |
|
metadata.product_name | El nombre del producto está codificado como SEP . |
|
metadata.vendor_name | El nombre del proveedor está codificado como Symantec . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.