Recoger registros de Lacework Cloud Security
Información general
Este analizador extrae campos de los registros JSON de Lacework Cloud Security y los transforma en formato UDM. Asigna campos de registro sin procesar a campos de UDM, gestiona varios tipos de datos y enriquece el evento con contexto adicional de las etiquetas. Por último, clasifica el tipo de evento en función de la presencia de información principal y de destino.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google Security Operations.
- Acceso privilegiado a FortiCNAPP Lacework.
Configurar feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Añadir feed.
- En la página siguiente, haga clic en Configurar un solo feed.
- En el campo Nombre del feed, introduce un nombre para el feed (por ejemplo, Registros de Lacework).
- Selecciona Webhook como Tipo de fuente.
- Seleccione Lacework como Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica los valores de los siguientes parámetros de entrada:
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
\n
.
- Delimitador de división: el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revise la configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y guarda la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes volver a generar una clave secreta, pero esta acción hará que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del endpoint del feed del campo Información del endpoint. Debes especificar esta URL de endpoint en tu aplicación cliente.
- Haz clic en Listo.
Crear una clave de API para la feed de webhook
Ve a la consolaGoogle Cloud > Credenciales.
Haz clic en Crear credenciales y, a continuación, selecciona Clave de API.
Restringe el acceso de la clave de API a la API Chronicle.
Especificar la URL del endpoint
- En tu aplicación cliente, especifica la URL del endpoint HTTPS proporcionada en el feed de webhook.
Para habilitar la autenticación, especifica la clave de API y la clave secreta como parte del encabezado personalizado con el siguiente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendación: Especifica la clave de API como 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 mediante parámetros de consulta con el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Haz los cambios siguientes:
ENDPOINT_URL
: URL del endpoint del feed.API_KEY
: la clave de API para autenticarte en Google SecOps.SECRET
: la clave secreta que has generado para autenticar el feed.
Configurar un webhook de Lacework para Google SecOps
- Inicia sesión en la consola de Lacework FortiCNAPP con privilegios de administrador.
- Ve a Ajustes > Notificaciones > Canales de alerta.
- Haga clic en + Añadir.
- Selecciona Webhook.
- Haz clic en Siguiente.
- Especifica un nombre único para el canal (por ejemplo, Google SecOps).
- URL del webhook: introduce
<ENDPOINT_URL>
seguido de<API_KEY>
y<SECRET>
. - Haz clic en Guardar.
- Selecciona Reglas de alerta y configura los detalles de la ruta de alerta que necesites.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Se asigna directamente desde el campo AGENT_VERSION . |
CREATED_TIME |
metadata.event_timestamp |
Se asigna directamente desde el campo CREATED_TIME y se convierte en una marca de tiempo. |
FILEDATA_HASH |
target.file.sha256 |
Se asigna directamente desde el campo FILEDATA_HASH . |
FILE_PATH |
target.file.full_path |
Se asigna directamente desde el campo FILE_PATH . |
IP_ADDR |
principal.ip |
Se asigna directamente desde el campo IP_ADDR . |
OS |
target.platform |
Asignado desde el campo OS . Logic convierte varias cadenas de SO (Linux, Windows y Mac) en valores de enumeración de UDM (LINUX, WINDOWS y MAC). El valor predeterminado es UNKNOWN_PLATFORM si no se encuentra ninguna coincidencia. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
Se asigna directamente desde el campo STATUS como campo adicional. |
TAGS.Account |
metadata.product_deployment_id |
Se asigna directamente desde el campo TAGS.Account . |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
Se asigna directamente desde el campo TAGS.AmiId como campo adicional. |
TAGS.ExternalIp |
target.ip |
Se asigna directamente desde el campo TAGS.ExternalIp . |
TAGS.Hostname |
principal.hostname |
Se asigna directamente desde el campo TAGS.Hostname . |
TAGS.InstanceId |
target.asset_id |
Se asigna directamente desde el campo TAGS.InstanceId , con el prefijo "ID de instancia de dispositivo: ". |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Se asigna directamente desde el campo TAGS.LwTokenShort como campo adicional. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Se asigna directamente desde el campo MID como campo adicional. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Se asigna directamente desde el campo MODE como campo adicional. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Se asigna directamente desde el campo TAGS.Name como campo adicional. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Se asigna directamente desde el campo TAGS.QSConfigName-vfzg0 como campo adicional. |
TAGS.ResourceType |
target.resource.resource_subtype |
Se asigna directamente desde el campo TAGS.ResourceType . |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
Se asigna directamente desde el campo TAGS.SubnetId como una etiqueta en target.resource.attribute. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Se asigna directamente desde el campo TAGS.VmInstanceType como una etiqueta en target.resource.attribute. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Se asigna directamente desde el campo TAGS.VmProvider como una etiqueta en target.resource.attribute. |
TAGS.VpcId |
target.resource.product_object_id |
Se asigna directamente desde el campo TAGS.VpcId . |
TAGS.Zone |
target.cloud.availability_zone |
Se asigna directamente desde el campo TAGS.Zone . |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
Se asigna directamente desde el campo TAGS.alpha.eksctl.io/nodegroup-name como campo adicional. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
Se asigna directamente desde el campo TAGS.alpha.eksctl.io/nodegroup-type como campo adicional. |
TAGS.arch |
principal.platform_version |
Se asigna directamente desde el campo TAGS.arch . |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
Se asigna directamente desde el campo TAGS.aws:autoscaling:groupName como campo adicional. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
Se asigna directamente desde el campo TAGS.aws:ec2:fleet-id como campo adicional. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
Se asigna directamente desde el campo TAGS.aws:ec2launchtemplate:id como campo adicional. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
Se asigna directamente desde el campo TAGS.aws:ec2launchtemplate:version como campo adicional. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
Se asigna directamente desde el campo TAGS.aws:eks:cluster-name como campo adicional. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Se asigna directamente desde el campo TAGS.enableCrowdStrike como campo adicional. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Se asigna directamente desde el campo TAGS.falconx.io/application como campo adicional. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
Se asigna directamente desde el campo TAGS.falconx.io/environment como campo adicional. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
Se asigna directamente desde el campo TAGS.falconx.io/managedBy como campo adicional. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
Se asigna directamente desde el campo TAGS.falconx.io/project como campo adicional. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
Se asigna directamente desde el campo TAGS.falconx.io/proxy-type como campo adicional. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
Se asigna directamente desde el campo TAGS.falconx.io/service como campo adicional. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
Se asigna directamente desde el campo TAGS.falconx.io/team como campo adicional. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
Se asigna directamente desde el campo TAGS.k8s.io/cluster-autoscaler/enabled como campo adicional. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
Se asigna directamente desde el campo TAGS.k8s.io/cluster-autoscaler/falcon como campo adicional. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
Se asigna directamente desde el campo TAGS.kubernetes.io/cluster/falcon como campo adicional. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
Se asigna directamente desde el campo TAGS.lw_KubernetesCluster como campo adicional. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Se asigna directamente desde el campo LAST_UPDATE como campo adicional. Codificado como "LACEWORK". Codificado como "Lacework Cloud Security". |
metadata.event_type |
metadata.event_type |
Determinado por la lógica. Se asigna el valor "NETWORK_CONNECTION" si están presentes principal.ip y target.ip, "STATUS_UPDATE" si solo está presente principal.ip y "GENERIC_EVENT" en los demás casos. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.