Recopila registros de Lacework Cloud Security

Compatible con:

Descripció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 la AUA, controla varios tipos de datos y enriquece el evento con contexto adicional de las etiquetas, y, en última instancia, clasifica el tipo de evento según la presencia de información de principal y objetivo.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a FortiCNAPP Lacework.

Configura un feed en Google SecOps para transferir los registros de Lacework

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de Lacework).
  4. Selecciona Webhook como el Tipo de origen.
  5. Selecciona Lacework como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. 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.
  8. Haz clic en Siguiente.
  9. Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
  10. Haz clic en Generate Secret Key para generar una clave secreta que autentique este feed.
  11. 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.
  12. 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.
  13. Haz clic en Listo.

Crea una clave de API para el feed de webhook

  1. Ve a consola de Google Cloud > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales y selecciona Clave de API.

  3. Restringe el acceso de la clave de API a la API de Chronicle.

Especifica la URL del extremo

  1. En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
  2. 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.

  3. 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.

Configura un webhook de Lacework para Google SecOps

  1. Accede a la consola de Lacework FortiCNAPP con privilegios de administrador.
  2. Ve a Configuración > Notificaciones > Canales de alerta.
  3. Haz clic en + Agregar nueva.
  4. Selecciona Webhook.
  5. Haz clic en Siguiente.
  6. Especifica un nombre único para el canal (por ejemplo, Google SecOps).
  7. URL de webhook: Ingresa <ENDPOINT_URL> seguido de <API_KEY> y <SECRET>.
  8. Haz clic en Guardar.
  9. Selecciona Reglas de alertas y configura los detalles de enrutamiento de alertas necesarios.

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 Se asignó desde el campo OS. La lógica convierte varias cadenas de SO (Linux, Windows y Mac) en valores de enumeración de UDM (LINUX, WINDOWS y MAC). Si no se encuentra una coincidencia, el valor predeterminado es UNKNOWN_PLATFORM.
STATUS additional.fields[].key:"STATUS", value.string_value Se asigna directamente desde el campo STATUS como un 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 un 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 "Device Instance Id: ".
TAGS.LwTokenShort additional.fields[].key:"LwTokenShort", value.string_value Se asigna directamente desde el campo TAGS.LwTokenShort como un campo adicional.
TAGS.MID additional.fields[].key:"MID", value.string_value Se asigna directamente desde el campo MID como un campo adicional.
TAGS.MODE additional.fields[].key:"MODE", value.string_value Se asigna directamente desde el campo MODE como un campo adicional.
TAGS.Name additional.fields[].key:"Name", value.string_value Se asigna directamente desde el campo TAGS.Name como un campo adicional.
TAGS.QSConfigName-vfzg0 additional.fields[].key:"QSConfigName", value.string_value Se asigna directamente desde el campo TAGS.QSConfigName-vfzg0 como un 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 dentro de target.resource.attribute.
TAGS.VmInstanceType target.resource.attribute.labels[].key:"VmInstanceType", value Se asigna directamente desde el campo TAGS.VmInstanceType como una etiqueta dentro de target.resource.attribute.
TAGS.VmProvider target.resource.attribute.labels[].key:"VmProvider", value Se asigna directamente desde el campo TAGS.VmProvider como una etiqueta dentro de 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 un 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 un 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 un 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 un 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 un 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 un 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 un campo adicional.
TAGS.enableCrowdStrike additional.fields[].key:"enableCrowdStrike", value.string_value Se asigna directamente desde el campo TAGS.enableCrowdStrike como un 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 un 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 un 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 un 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 un 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 un 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 un 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 un 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 un 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 un 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 un campo adicional.
TAGS.lw_KubernetesCluster additional.fields[].key:"lw_KubernetesCluster", value.string_value Se asigna directamente desde el campo TAGS.lw_KubernetesCluster como un campo adicional.
LAST_UPDATE additional.fields[].key:"LAST_UPDATE", value.string_value Se asigna directamente desde el campo LAST_UPDATE como un campo adicional. Está codificado de forma fija en "LACEWORK". Está codificado de forma fija en "Lacework Cloud Security".
metadata.event_type metadata.event_type Se determina según la lógica. Se establece en "NETWORK_CONNECTION" si están presentes principal.ip y target.ip, en "STATUS_UPDATE" si solo está presente principal.ip y en "GENERIC_EVENT" en caso contrario.

Cambios

2023-11-09

  • Sin embargo, el analizador se creó recientemente.