Recopila registros de Sysdig

Compatible con:

Este analizador extrae datos de eventos de seguridad de los registros JSON de Sysdig, transforma y asigna los campos de registro sin procesar al formato UDM de Google Security Operations. Controla varios campos, incluidos los metadatos, la información principal o del objetivo, los detalles de los resultados de seguridad y el contexto relacionado con Kubernetes, lo que enriquece los datos para el análisis en Google SecOps. El analizador también realiza conversiones de tipos de datos, control de errores y lógica condicional en función de los valores de los campos para garantizar una representación precisa y completa de la AUA.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a Sysdig Secure.

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 Google Security Operations.

Opción 1

Configura un feed de webhook en Google SecOps para transferir registros de Sysdig

  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, Sysdig Logs).
  4. Selecciona Webhook como el Tipo de origen.
  5. Selecciona Sysdig 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.

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 el webhook en Sysdig

  1. Accede a Sysdig Secure con privilegios de administrador.
  2. Ve a Profile > Settings > Event Forwarding.
  3. Haz clic en +Agregar integración y selecciona Webhook en el menú desplegable.
  4. Especifica valores para los siguientes parámetros de entrada:

    • Nombre de la integración: Proporciona un nombre descriptivo para el webhook (por ejemplo, Webhook de SecOps de Google).
    • Extremo: Ingresa el webhook <ENDPOINT_URL>, seguido de <API_KEY y <SECRET>.
    • Datos para enviar: En el menú desplegable, selecciona los tipos de datos de Sysdig que se deben reenviar.

    • Prueba la integración y, luego, activa la opción Habilitada.

    • Haz clic en Guardar.

Opción 2

Reenvía datos directamente a Google SecOps

  1. Accede a Sysdig Secure con tus credenciales de administrador.
  2. Ve a Configuración > Reenvío de eventos.
  3. Haz clic en + Agregar integración y selecciona Google Chronicle en el menú desplegable.
  4. Especifica valores para los siguientes parámetros de entrada:
    • Nombre de la integración: Proporciona un nombre descriptivo para la integración (por ejemplo, Integración de Google SecOps).
    • ID de cliente: Es el ID de cliente de Google asociado con tu cuenta de GCP. (en Google SecOps, búscala en Configuración > Perfil).
    • Espacio de nombres: Opcional. Úsalo como una etiqueta para identificar el dominio de datos adecuado para la indexación y el enriquecimiento.
    • Credenciales JSON: Sube tus credenciales JSON de SecOps de Google.
    • Región: Selecciona tu región, como EE.UU., Europa o Asia.
    • Datos para enviar: Selecciona los tipos de datos de Sysdig que se deben reenviar desde el menú desplegable.
    • Prueba la integración y, luego, activa la opción Habilitada.
    • Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
agentId read_only_udm.metadata.product_deployment_id El valor de agentId del registro sin procesar se asigna directamente a este campo de la AUA.
category read_only_udm.security_result.category_details El valor de category del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.container.id read_only_udm.target.asset.asset_id El valor de content.fields.container.id del registro sin procesar se antepone con "container_id:" y se asigna a este campo de la UDM. Se usa si containerId está vacío.
content.fields.container.image.repository read_only_udm.target.file.full_path El valor de content.fields.container.image.repository del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.container.image.tag read_only_udm.metadata.ingestion_labels.value, donde la clave es tag El valor de content.fields.container.image.tag del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.evt.res read_only_udm.metadata.ingestion_labels.value, donde la clave es evt_res El valor de content.fields.evt.res del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.evt.type read_only_udm.metadata.event_type El valor de content.fields.evt.type del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.falco.rule read_only_udm.security_result.rule_name El valor de content.fields.falco.rule del registro sin procesar se asigna directamente a este campo de la AUA. Se usa si content.ruleName está vacío.
content.fields.group.gid read_only_udm.target.group.product_object_id El valor de content.fields.group.gid del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.group.name read_only_udm.target.group.group_display_name El valor de content.fields.group.name del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.proc.cmdline read_only_udm.target.process.command_line El valor de content.fields.proc.cmdline del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.proc.pcmdline read_only_udm.target.process.parent_process.command_line El valor de content.fields.proc.pcmdline del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.proc.pid read_only_udm.target.process.pid El valor de content.fields.proc.pid del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.proc.ppid read_only_udm.target.process.parent_process.pid El valor de content.fields.proc.ppid del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.proc.sid read_only_udm.metadata.ingestion_labels.value, donde la clave es sid El valor de content.fields.proc.sid del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.user.loginname read_only_udm.principal.user.user_display_name El valor de content.fields.user.loginname del registro sin procesar se asigna directamente a este campo de la AUA.
content.fields.user.uid read_only_udm.principal.user.userid El valor de content.fields.user.uid del registro sin procesar se asigna directamente a este campo de la AUA.
content.output read_only_udm.additional.fields.value.string_value, donde la clave es content_output El valor de content.output del registro sin procesar se asigna directamente a este campo de la AUA.
content.policyId read_only_udm.security_result.rule_id El valor de content.policyId del registro sin procesar se asigna directamente a este campo de la AUA.
content.policyOrigin read_only_udm.additional.fields.value.string_value, donde la clave es content_policyOrigin El valor de content.policyOrigin del registro sin procesar se asigna directamente a este campo de la AUA.
content.policyVersion read_only_udm.additional.fields.value.string_value, donde la clave es content_policyVersion El valor de content.policyVersion del registro sin procesar se asigna directamente a este campo de la AUA.
content.ruleName read_only_udm.security_result.rule_name El valor de content.ruleName del registro sin procesar se asigna directamente a este campo de la AUA.
content.ruleTags read_only_udm.security_result.rule_labels Los valores del array content.ruleTags del registro sin procesar se asignan a este campo de la UDM, con claves generadas de forma dinámica como "ruletag_index".
content.ruleType read_only_udm.additional.fields.value.string_value, donde la clave es content_ruleType El valor de content.ruleType del registro sin procesar se asigna directamente a este campo de la AUA.
containerId read_only_udm.target.asset.asset_id El valor de containerId del registro sin procesar se antepone con "container_id:" y se asigna a este campo de la UDM.
description read_only_udm.metadata.description El valor de description del registro sin procesar se asigna directamente a este campo de la AUA.
id read_only_udm.metadata.product_log_id El valor de id del registro sin procesar se asigna directamente a este campo de la AUA.
labels.container.label.io.kubernetes.container.name read_only_udm.additional.fields.value.string_value, donde la clave es container_name El valor de labels.container.label.io.kubernetes.container.name del registro sin procesar se asigna directamente a este campo de la AUA.
labels.container.label.io.kubernetes.pod.name read_only_udm.additional.fields.value.string_value, donde la clave es pod_name El valor de labels.container.label.io.kubernetes.pod.name del registro sin procesar se asigna directamente a este campo de la AUA. Se usa si labels.kubernetes.pod.name está vacío.
labels.container.label.io.kubernetes.pod.namespace read_only_udm.principal.namespace El valor de labels.container.label.io.kubernetes.pod.namespace del registro sin procesar se asigna directamente a este campo de la AUA. Se usa si labels.kubernetes.namespace.name está vacío.
labels.aws.instanceId read_only_udm.target.resource.product_object_id El valor de labels.aws.instanceId del registro sin procesar se asigna directamente a este campo de la AUA.
labels.aws.region read_only_udm.target.resource.attribute.cloud.availability_zone El valor de labels.aws.region del registro sin procesar se asigna directamente a este campo de la AUA.
labels.host.hostName read_only_udm.principal.ip O read_only_udm.principal.hostname Si el valor contiene "ip", se analiza como una dirección IP y se asigna a principal.ip. De lo contrario, se asigna a principal.hostname.
labels.host.mac read_only_udm.principal.mac El valor de labels.host.mac del registro sin procesar se asigna directamente a este campo de la AUA. Se usa si machineId está vacío.
labels.kubernetes.cluster.name read_only_udm.additional.fields.value.string_value, donde la clave es kubernetes_cluster_name El valor de labels.kubernetes.cluster.name del registro sin procesar se asigna directamente a este campo de la AUA.
labels.kubernetes.deployment.name read_only_udm.additional.fields.value.string_value, donde la clave es kubernetes_deployment_name El valor de labels.kubernetes.deployment.name del registro sin procesar se asigna directamente a este campo de la AUA.
labels.kubernetes.namespace.name read_only_udm.principal.namespace El valor de labels.kubernetes.namespace.name del registro sin procesar se asigna directamente a este campo de la AUA.
labels.kubernetes.node.name read_only_udm.additional.fields.value.string_value, donde la clave es kubernetes_node_name El valor de labels.kubernetes.node.name del registro sin procesar se asigna directamente a este campo de la AUA.
labels.kubernetes.pod.name read_only_udm.additional.fields.value.string_value, donde la clave es pod_name El valor de labels.kubernetes.pod.name del registro sin procesar se asigna directamente a este campo de la AUA.
labels.kubernetes.service.name read_only_udm.additional.fields.value.string_value, donde la clave es kubernetes_service_name El valor de labels.kubernetes.service.name del registro sin procesar se asigna directamente a este campo de la AUA.
machineId read_only_udm.principal.mac El valor de machineId del registro sin procesar se asigna directamente a este campo de la AUA.
name read_only_udm.security_result.summary El valor de name del registro sin procesar se asigna directamente a este campo de la AUA.
severity read_only_udm.security_result.severity El valor de severity del registro sin procesar se asigna a un valor de cadena según estos rangos: <4 = ALTO, >3 y <6 = MEDIO, 6 = BAJO, 7 = INFORMATIVO.
source read_only_udm.security_result.description El valor de source del registro sin procesar se asigna directamente a este campo de la AUA.
timestampRFC3339Nano read_only_udm.metadata.event_timestamp El valor de timestampRFC3339Nano del registro sin procesar se analiza como una marca de tiempo y se asigna a este campo de la AUA.
type read_only_udm.metadata.product_event_type El valor de type del registro sin procesar se asigna directamente a este campo de la AUA.
(lógica del analizador) read_only_udm.metadata.product_name Está codificado de forma fija en "SYSDIG".
(lógica del analizador) read_only_udm.metadata.vendor_name Está codificado de forma fija en "SYSDIG".
(lógica del analizador) read_only_udm.metadata.event_type Se establece en "PROCESS_UNCATEGORIZED" de forma predeterminada o en "GENERIC_EVENT" si labels.host.hostName está vacío.
(lógica del analizador) read_only_udm.metadata.log_type Está codificado de forma fija en "SYSDIG".
(lógica del analizador) read_only_udm.target.resource.resource_type Se establece en "CLOUD_PROJECT" si existe labels.aws.instanceId.

Cambios

2024-01-05

  • Cuando "severity" es 0, 1, 2, 3, se cambió la asignación de "security_result.severity" de "LOW" a "HIGH".
  • Cuando "severity" es 6, se cambió la asignación de "security_result.severity" de "HIGH" a "LOW".
  • Cuando "severity" es 7, se cambió la asignación de "security_result.severity" de "HIGH" a "INFORMATIONAL".
  • Se agregó "drop" para los registros que no están en formato JSON.
  • Se agregó "on_error" a la asignación de fecha "timestampRFC3339Nano".

2022-10-07

  • Sin embargo, el analizador se creó recientemente.