Recopila registros de Lacework Cloud Security
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
- 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 Lacework).
- Selecciona Webhook como el Tipo de origen.
- Selecciona Lacework 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.
Configura un webhook de Lacework para Google SecOps
- Accede a la consola de Lacework FortiCNAPP con privilegios de administrador.
- Ve a Configuración > Notificaciones > Canales de alerta.
- Haz clic en + Agregar nueva.
- Selecciona Webhook.
- Haz clic en Siguiente.
- Especifica un nombre único para el canal (por ejemplo, Google SecOps).
- URL de webhook: Ingresa
<ENDPOINT_URL>
seguido de<API_KEY>
y<SECRET>
. - Haz clic en Guardar.
- 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.