Recopila registros de Cohesity
Descripción general
Este analizador extrae campos de los mensajes de syslog del software de copia de seguridad de Cohesity con patrones de grok. Controla los mensajes de syslog estándar y los registros con formato JSON, asignando campos extraídos a la UDM y asignando de forma dinámica un event_type según la presencia de identificadores principales y de destino.
Antes de comenzar
- Asegúrate de tener una instancia de Google SecOps.
- Asegúrate de tener acceso con privilegios a la administración de Cohesity.
Configura un feed en Google SecOps para transferir los registros de Cohesity
- 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 Cohesity).
- Selecciona Webhook como el Tipo de origen.
- Selecciona Cohesity 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 recursos: Es el espacio de nombres de recursos.
- 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 Chronicle.
Especifica la URL del extremo
- En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
Habilita la autenticación especificando 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 autenticar en Google SecOps.SECRET
: Es la clave secreta que generaste para autenticar el feed.
Cómo configurar un webhook en Cohesity para Google SecOps
- Accede a la administración del clúster de Cohesity.
- Ve a la sección Tareas de protección.
- Selecciona el trabajo de protección para el que deseas configurar el webhook.
- Haz clic en el menú Acciones (tres puntos verticales) junto al trabajo de protección > Editar.
- Selecciona la pestaña Alertas.
- Haz clic en + Agregar webhook.
- Especifica valores para los siguientes parámetros:
- Nombre: Proporciona un nombre descriptivo para el webhook (por ejemplo, Google SecOps).
- URL: Ingresa el
<ENDPOINT_URL>
de Google SecOps. - Método: Selecciona POST.
- Tipo de contenido: Selecciona application/json.
- Carga útil: Este campo depende de los datos específicos que deseas enviar.
- Habilitar webhook: Marca la casilla para habilitar el webhook.
- Guarda la configuración: Haz clic en Guardar para aplicar la configuración del webhook al trabajo de protección.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
ClientIP |
principal.asset.ip |
Se asigna directamente desde el campo ClientIP . |
ClientIP |
principal.ip |
Se asigna directamente desde el campo ClientIP . |
description |
security_result.description |
Se asigna directamente desde el campo description . |
DomainName |
target.asset.hostname |
Se asigna directamente desde el campo DomainName . |
DomainName |
target.hostname |
Se asigna directamente desde el campo DomainName . |
EntityPath |
target.url |
Se asigna directamente desde el campo EntityPath . |
host |
principal.asset.hostname |
Se asigna directamente desde el campo host . |
host |
principal.hostname |
Se asigna directamente desde el campo host . Se copia del campo ts después de que se analiza en una marca de tiempo. Se determina según la lógica del analizador en función de la presencia de principal_mid_present , target_mid_present y principal_user_present . Valores posibles: NETWORK_CONNECTION , USER_UNCATEGORIZED , STATUS_UPDATE , GENERIC_EVENT . Se codifica de forma fija en "Cohesity". |
product_event_type |
metadata.product_event_type |
Se asigna directamente desde el campo product_event_type . Se codifica de forma fija en "COHESITY". |
pid |
principal.process.pid |
Se asigna directamente desde el campo pid . |
Protocol |
network.application_protocol |
Se asigna directamente desde el campo Protocol y se convierte a mayúsculas. |
RecordID |
additional.fields (clave: "RecordID", valor: RecordID ) |
Se asigna directamente desde el campo RecordID , anidado en additional.fields . |
RequestType |
security_result.detection_fields (clave: "RequestType", valor: RequestType ) |
Se asigna directamente desde el campo RequestType , anidado en security_result.detection_fields . |
Result |
security_result.summary |
Se asigna directamente desde el campo Result . |
sha_value |
additional.fields (clave: "SHA256", valor: sha_value ) |
Se asigna directamente desde el campo sha_value , anidado en additional.fields . |
target_ip |
target.asset.ip |
Se asigna directamente desde el campo target_ip . |
target_ip |
target.ip |
Se asigna directamente desde el campo target_ip . |
target_port |
target.port |
Se asignó directamente desde el campo target_port y se convirtió en número entero. |
Timestamp |
metadata.collected_timestamp |
Se asigna directamente desde el campo Timestamp después de que se analiza en una marca de tiempo. |
ts |
events.timestamp |
Se asigna directamente desde el campo ts después de que se analiza en una marca de tiempo. |
UserID |
principal.user.userid |
Se asigna directamente desde el campo UserID y se convierte en una cadena. |
UserName |
principal.user.user_display_name |
Se asigna directamente desde el campo UserName . |
UserSID |
principal.user.windows_sid |
Se asigna directamente desde el campo UserSID . |
Cambios
2024-09-24
- Se quitó "gsub" para dar formato a los registros JSON.
2024-09-10
- Se agregó "gsub" para quitar caracteres no deseados del registro.
- Se asignó "prin_ip" a "principal.ip".
2024-07-28
- Se asignaron "EntityId" y "RegisteredSource.EntityId" a "principal.user.userid".
- Se asignaron "Description" y "EventMessage" a "metadata.description".
- Se asignó "IP" a "principal.ip" y "principal.asset.ip".
- Se asignó "Usuario" a "principal.user.user_display_name".
- Se asignaron "Action, "Domain, "ServiceContext, "AttributeMap.AttemptNum, "cluster_id, "cluster_name, "ClusterInfo.ClusterId, "ClusterInfo.ClusterName, "TaskId, "EntityName, "EntityType, "BackupJobId, "BackupJobName, "EnvironmentType, "RegisteredSource.EntityName, "RegisteredSource.EntityType, "AttributeMap.BridgeConstituent, "ReplicationTarget.ClusterName y "ReplicationTarget.ClusterId a "additional.fields".
2024-05-16
- Sin embargo, el analizador se creó recientemente.