Recopila registros de Halo de CloudPassage

Compatible con:

Este código del analizador de Logstash transforma los datos de registro JSON de Halo de CloudPassage en un modelo de datos unificado (UDM). Extrae campos relevantes de los registros sin procesar, normaliza las marcas de tiempo, asigna datos a campos de la AUA y enriquece los eventos con contexto adicional, como la gravedad y la información del usuario.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a CloudPassage Halo.

Cómo configurar una clave de API en CloudPassage

  1. Accede a CloudPassage Halo.
  2. Ve a Configuración > Administración del sitio.
  3. Haz clic en la pestaña Claves de API.
  4. Haz clic en Acciones > Nueva clave de API.
  5. Haz clic en Mostrar para tu clave en la pestaña Claves de API para mostrar los valores.
  6. Copia los valores de ID de clave y Clave secreta.

Configura un feed en Google SecOps para transferir registros de CloudPassage

  1. Haz clic en Agregar nueva.
  2. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de CloudPassage).
  3. Selecciona API de terceros como el Tipo de origen.
  4. Selecciona Cloud Passage como el tipo de registro.
  5. Haz clic en Siguiente.
  6. Especifica valores para los siguientes parámetros de entrada:
    • Nombre de usuario: Ingresa el ID de clave.
    • Secreto: Ingresa la Clave secreta.
    • Tipos de eventos: Es el tipo de eventos que se incluirán (si no especificas los tipos de eventos, se usarán los eventos predeterminados de la lista).
    • 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.
  7. Haz clic en Siguiente.
  8. Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
actor_country principal.location.country_or_region Se asigna directamente desde el campo actor_country en el registro sin formato.
actor_ip_address principal.ip Se asigna directamente desde el campo actor_ip_address en el registro sin formato.
actor_username principal.user.userid Se asigna directamente desde el campo actor_username en el registro sin formato.
created_at metadata.event_timestamp Se convirtió al formato de marca de tiempo de la AUA desde el campo created_at en el registro sin procesar.
crítico security_result.severity Si critical es verdadero, la gravedad se establece en "CRITICAL". De lo contrario, se establece como "INFORMATIVO" para los eventos y se calcula en función del recuento de hallazgos de los análisis.
id metadata.product_log_id Se asigna directamente desde el campo id en el registro sin procesar de los eventos.
mensaje security_result.description Se extrajo la descripción del campo message con el patrón grok.
nombre security_result.summary Se asigna directamente desde el campo name en el registro sin procesar de los eventos.
policy_name security_result.detection_fields.policy_name Se asigna directamente desde el campo policy_name en el registro sin formato.
rule_name security_result.rule_name Se asigna directamente desde el campo rule_name en el registro sin formato.
scan.created_at metadata.event_timestamp Se convirtió al formato de marca de tiempo de la AUA desde el campo scan.created_at en el registro sin procesar de los análisis.
scan.critical_findings_count security_result.description Se usa para calcular la descripción de los eventos de análisis. También se usa para determinar el nivel de gravedad.
scan.module security_result.summary Se usa para generar el resumen de los eventos de análisis. Se convirtió en mayúsculas.
scan.non_critical_findings_count security_result.description Se usa para calcular la descripción de los eventos de análisis. También se usa para determinar el nivel de gravedad.
scan.ok_findings_count security_result.description Se usa para calcular la descripción de los eventos de análisis.
scan.server_hostname target.hostname Se asigna directamente desde el campo scan.server_hostname en el registro sin procesar para las búsquedas.
scan.status security_result.summary Se usa para generar el resumen de los eventos de análisis.
scan.url metadata.url_back_to_product Se asigna directamente desde el campo scan.url en el registro sin procesar para las búsquedas.
server_group_name target.group.attribute.labels.server_group_name Se asigna directamente desde el campo server_group_name en el registro sin formato.
server_group_path target.group.product_object_id Se asigna directamente desde el campo server_group_path en el registro sin formato.
server_hostname target.hostname Se asigna directamente desde el campo server_hostname en el registro sin procesar de los eventos.
server_ip_address target.ip Se asigna directamente desde el campo server_ip_address en el registro sin formato.
server_platform target.platform Se asigna directamente desde el campo server_platform en el registro sin formato. Se convirtió en mayúsculas.
server_primary_ip_address target.ip Se asigna directamente desde el campo server_primary_ip_address en el registro sin formato.
server_reported_fqdn network.dns.authority.name Se asigna directamente desde el campo server_reported_fqdn en el registro sin formato.
target_username target.user.userid Se asigna directamente desde el campo target_username en el registro sin formato.
metadata.event_type Configúralo como "SCAN_UNCATEGORIZED" para los eventos y "SCAN_HOST" para las búsquedas.
metadata.log_type Establece el valor en “CLOUD_PASSAGE”.
metadata.product_name Se estableció en “HALO”.
metadata.vendor_name Establece el valor en "CLOUDPASSAGE".
principal.hostname Se copió desde target.hostname.
security_result.action Establece el valor en "UNKNOWN_ACTION".
security_result.category Configúralo como "POLICY_VIOLATION".
is_alert Se establece en verdadero si security_result.severity es "CRITICAL".
is_significant Se establece en verdadero si security_result.severity es "CRITICAL".

Cambios

2022-06-30

  • Mejora
  • Se asignó "policy_name" a "security_result.detection_fields".
  • Se asignó "server_group_name" a "target.group.attribute.labels".
  • Se asignó "server_group_path" a "target.group.product_object_id".
  • Se agregó el patrón grok para obtener "description".