Recopila registros de Synology
Descripción general
Este analizador extrae campos de los mensajes de SYSLOG de Synology con patrones de Grok y los asigna a la UDM. Controla varios formatos de registro, identifica los accesos de los usuarios y a los recursos, y clasifica los eventos en función de palabras clave, lo que enriquece los datos con información del proveedor y del producto.
Antes de comenzar
- Asegúrate de tener una instancia de Google SecOps.
- Asegúrate de tener acceso con privilegios a Synology DSM.
Configura un feed en Google SecOps para transferir los registros de Synology
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar nueva.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de Synology).
- Selecciona Webhook como el Tipo de origen.
- Selecciona Synology como el Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica valores para los siguientes parámetros de entrada:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n
. - Espacio de nombres de activos: Es el espacio de nombres de activos.
- Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
- Haz clic en Generate Secret Key para generar una clave secreta que autentique este feed.
- Copia y almacena la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes volver a generar una clave secreta nueva, pero esta acción hace que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del extremo del feed del campo Información del extremo. Debes especificar esta URL de extremo en tu aplicación cliente.
- Haz clic en Listo.
Crea una clave de API para el feed de webhook
Ve a consola de Google Cloud > Credenciales.
Haz clic en Crear credenciales y selecciona Clave de API.
Restringe el acceso de la clave de API a la API de Google Security Operations.
Especifica la URL del extremo
- En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
Para habilitar la autenticación, especifica la clave de API y la clave secreta como parte del encabezado personalizado en el siguiente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendación: Especifica la clave de API como un encabezado en lugar de hacerlo en la URL.
Si tu cliente de webhook no admite encabezados personalizados, puedes especificar la clave de API y la clave secreta con parámetros de consulta en el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Reemplaza lo siguiente:
ENDPOINT_URL
: Es la URL del extremo del feed.API_KEY
: Es la clave de API para autenticarse en Google Security Operations.SECRET
: Es la clave secreta que generaste para autenticar el feed.
Cómo crear un webhook en Synology para Google SecOps
- Accede a DiskStation Manager (DSM) en tu NAS Synology.
- Ve a Panel de control > Notificaciones > Webhook.
- Haz clic en Agregar.
Especifica valores para los siguientes parámetros:
- Proveedor: Selecciona Personalizado.
Regla: Selecciona el tipo de mensajes que deseas enviar en tu webhook.
Haz clic en Siguiente.
Nombre del proveedor: Asigna un nombre distintivo al webhook (por ejemplo, Google SecOps).
Asunto: Se agregará como prefijo del mensaje de notificación.
URL de webhook: Ingresa ENDPOINT_URL.
Selecciona Enviar mensajes de notificación en inglés.
Haz clic en Siguiente.
Método HTTP: Selecciona POST.
Agrega el encabezado X-Webhook-Access-Key con el valor SECRET.
Agrega el encabezado X-goog-api-key con el valor API_KEY.
Haz clic en Aplicar.
Haz clic en Apply para guardar el webhook.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
app |
target.application |
El valor del campo app que extrae el filtro grok se asigna a target.application . |
desc |
metadata.description |
El valor del campo desc que extrae el filtro grok se asigna a metadata.description . |
desc |
target.file.names |
Si el campo desc contiene "Closed)", se extrae la ruta de acceso al archivo dentro de los paréntesis y se asigna a target.file.names . Si el campo desc contiene "accedió a la carpeta compartida", se extrae la ruta de acceso de la carpeta dentro de los corchetes y se asigna a target.file.names . |
host |
principal.hostname |
El valor del campo host que extrae el filtro grok del campo host_and_ip se asigna a principal.hostname . |
host_and_ip |
principal.ip |
Se analiza el campo host_and_ip . Si se encuentra una dirección IP (ip1 ), se asigna a principal.ip . Si se encuentra una segunda dirección IP (ip2 ), también se agrega a principal.ip . |
intermediary_host |
intermediary.hostname |
El valor del campo intermediary_host que extrae el filtro grok se asigna a intermediary.hostname . Se crea un objeto auth vacío dentro de extensions si el mensaje contiene "accedió" o "acceder". Se usa la marca de tiempo del campo collection_time del registro sin procesar. Si el mensaje contiene "accedió" o "acceder", el valor se establece en USER_LOGIN . Si el mensaje contiene "accedió a la carpeta compartida", el valor se establece en USER_RESOURCE_ACCESS . De lo contrario, la opción predeterminada es GENERIC_EVENT . El valor del campo type que extrae el filtro grok se asigna a metadata.product_event_type . El valor se establece de forma estática en "SYNOLOGY". El valor se establece de forma estática en "SYNOLOGY". Si el mensaje contiene "no se pudo firmar", el valor se establece en BLOCK . Si el mensaje contiene "success", el valor se establece en ALLOW . Si el campo severity (extraido por grok) es “INFO”, el valor se establece en INFORMATIONAL . |
severity |
security_result.severity |
El valor del campo severity que extrae el filtro grok se usa para determinar el security_result.severity . Si el valor es "INFO", se asigna a "INFORMATIONAL". |
time |
metadata.event_timestamp |
El campo time , que extrae el filtro grok, se analiza y se convierte en una marca de tiempo. Luego, esta marca de tiempo se asigna a metadata.event_timestamp . |
type |
metadata.product_event_type |
El valor del campo type que extrae el filtro grok se asigna a metadata.product_event_type . |
user |
target.administrative_domain |
Si se extrae un dominio del campo user , se asigna a target.administrative_domain . |
user |
target.user.userid |
La parte del nombre de usuario del campo user (antes de la "\" si está presente) se extrae y se asigna a target.user.userid . Se usa la marca de tiempo del campo collection_time del registro sin procesar. |
Cambios
2024-01-16
- Sin embargo, el analizador se creó recientemente.