Recoger registros de Check Point Harmony

Disponible en:

En este documento se explica cómo ingerir registros de Check Point Harmony Email and Collaboration (HEC) en Google Security Operations mediante Bindplane. Este código de analizador extrae pares clave-valor de los mensajes syslog de Check Point Harmony y los asigna a un modelo de datos unificado (UDM). Primero, normaliza el formato del mensaje y, a continuación, analiza y asigna de forma iterativa los campos a categorías de UDM, como principal, target, network y security_result, lo que enriquece los datos para el análisis de seguridad.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Windows 2016 o versiones posteriores, o un host Linux con systemd
  • Si se ejecuta a través de un proxy, los puertos del cortafuegos están abiertos
  • Acceso privilegiado a Check Point Harmony HEC (portal de Infinity)

Obtener el archivo de autenticación de ingestión de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. Descarga el archivo de autenticación de ingestión. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.

Obtener el ID de cliente de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instalar el agente de Bindplane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux siguiendo las instrucciones que se indican a continuación.

Instalación de ventanas

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación de Linux

  1. Abre un terminal con privilegios de superusuario o sudo.
  2. Ejecuta el siguiente comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Recursos de instalación adicionales

Para ver más opciones de instalación, consulta la guía de instalación.

Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:
    • Busca el archivo config.yaml. Normalmente, se encuentra en el directorio /etc/bindplane-agent/ en Linux o en el directorio de instalación en Windows.
    • Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. Edita el archivo config.yaml de la siguiente manera:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'CHECKPOINT_HARMONY'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

Reinicia el agente de Bindplane para aplicar los cambios

  • Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar el agente de Bindplane en Windows, puedes usar la consola Servicios o introducir el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar Syslog para Check Point Harmony HEC

  1. Inicia sesión en la interfaz web de Infinity Portal > Harmony Email & Collaboration.
  2. Ve a Configuración > Monitorización > SIEM.
  3. Haz clic en Añadir servidor SIEM.
  4. Proporcione los siguientes detalles de configuración:
    • Host: introduce la dirección IP del agente de BindPlane.
    • Puerto: introduce el número de puerto del agente de Bindplane.
    • Protocolo: selecciona UDP.
    • (Opcional) Token: introduce una etiqueta opcional para los registros.
  5. Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
acción security_result.action_details Asignación directa.
security_result.action Se asigna a ALLOW, BLOCK, ALLOW_WITH_MODIFICATION o QUARANTINE en función del valor del campo de acción.
additional_info additional.fields.value.string_value Asignado directamente con la clave additional_info.
analyzed_on security_result.detection_fields.value Asignado directamente con la clave analyzed_on.
client_name additional.fields.value.string_value Asignado directamente con la clave client_name.
client_version intermediary.platform_version Asignación directa.
confidence_level security_result.detection_fields.value Asignado directamente con la clave confidence_level.
security_result.confidence Se asigna a UNKNOWN_CONFIDENCE, LOW_CONFIDENCE, MEDIUM_CONFIDENCE o HIGH_CONFIDENCE en función del valor del campo confidence_level.
description security_result.description Asignación directa.
dst target.ip Asignación directa.
dst_dns_name security_result.detection_fields.value Asignado directamente con la clave dst_dns_name.
dst_machine_name security_result.detection_fields.value Asignado directamente con la clave dst_machine_name.
target.asset.hostname Asignación directa.
target.hostname Asignación directa.
dst_user_dn security_result.detection_fields.value Asignado directamente con la clave dst_user_dn.
dst_user_name target.user.userid Asignación directa.
ep_rule_id security_result.rule_id Se asigna directamente si rule_uid está vacío.
errores security_result.summary Asignación directa.
event_type metadata.product_event_type Asignación directa.
file_md5 target.process.file.md5 Se asigna directamente si el valor es un hash MD5 válido y no son todos ceros.
target.file.md5 Se asigna directamente si el valor es un hash MD5 válido y no son todos ceros.
file_name target.process.file.full_path Asignación directa.
file_sha1 target.process.file.sha1 Se asigna directamente si el valor es un hash SHA-1 válido y no son todos ceros.
target.file.sha1 Se asigna directamente si el valor es un hash SHA-1 válido y no son todos ceros.
file_sha256 target.process.file.sha256 Se asigna directamente si el valor es un hash SHA256 válido y no son todos ceros.
target.file.sha256 Se asigna directamente si el valor es un hash SHA256 válido y no son todos ceros.
file_size target.file.size Asignación directa.
file_type target.file.file_type Se asigna a FILE_TYPE_ZIP, FILE_TYPE_DOS_EXE, FILE_TYPE_PDF o FILE_TYPE_XLSX en función del valor del campo file_type.
flags additional.fields.value.string_value Asignado directamente con la clave flags.
fw_subproduct additional.fields.value.string_value Se asigna directamente con la clave fw_subproduct si el producto está vacío.
metadata.product_name Se asigna directamente si el producto está vacío.
host_type security_result.detection_fields.value Asignado directamente con la clave host_type.
ifdir network.direction Se asigna directamente después de convertirlo a mayúsculas.
ifname security_result.detection_fields.value Asignado directamente con la clave ifname.
installed_products security_result.detection_fields.value Asignado directamente con la clave installed_products.
is_scanned security_result.detection_fields.value Asignado directamente con la clave is_scanned.
layer_name security_result.detection_fields.value Asignado directamente con la clave layer_name.
security_result.rule_set_display_name Asignación directa.
layer_uuid security_result.detection_fields.value Asignado directamente con la clave layer_uuid.
security_result.rule_set Asignación directa.
loguid metadata.product_log_id Asignación directa.
machine_guid principal.asset.attribute.labels.value Asignado directamente con la clave machine_guid.
malware_action security_result.detection_fields.value Asignado directamente con la clave malware_action.
malware_family security_result.detection_fields.value Asignado directamente con la clave malware_family.
media_authorized security_result.detection_fields.value Asignado directamente con la clave media_authorized.
media_class_id security_result.detection_fields.value Asignado directamente con la clave media_class_id.
media_description security_result.detection_fields.value Asignado directamente con la clave media_description.
media_encrypted security_result.detection_fields.value Asignado directamente con la clave media_encrypted.
media_manufacturer security_result.detection_fields.value Asignado directamente con la clave media_manufacturer.
media_type security_result.detection_fields.value Asignado directamente con la clave media_type.
Los métodos security_result.detection_fields.value Asignado directamente con la clave methods.
originsicname security_result.detection_fields.value Asignado directamente con la clave originsicname.
origen intermediary.ip Asignación directa.
os_version principal.asset.platform_software.platform_patch_level Asignación directa.
outzone security_result.detection_fields.value Asignado directamente con la clave outzone.
parent_rule security_result.detection_fields.value Asignado directamente con la clave parent_rule.
peer_gateway intermediary.ip Asignación directa.
policy_guid security_result.detection_fields.value Asignado directamente con la clave policy_guid.
policy_name security_result.detection_fields.value Asignado directamente con la clave policy_name.
policy_number security_result.detection_fields.value Asignado directamente con la clave policy_number.
policy_type security_result.detection_fields.value Asignado directamente con la clave policy_type.
producto additional.fields.value.string_value Asignado directamente con la clave product.
metadata.product_name Asignación directa.
product_family additional.fields.value.string_value Asignado directamente con la clave product_family.
program_name additional.fields.value.string_value Asignado directamente con la clave program_name.
protection_name security_result.detection_fields.value Asignado directamente con la clave protection_name.
protection_type security_result.detection_fields.value Asignado directamente con la clave protection_type.
reading_data_access security_result.detection_fields.value Asignado directamente con la clave reading_data_access.
rule_action security_result.detection_fields.value Asignado directamente con la clave rule_action.
rule_name security_result.rule_name Asignación directa.
rule_uid security_result.rule_id Se asigna directamente si ep_rule_id está vacío.
s_port principal.port Asignación directa.
scheme security_result.detection_fields.value Asignado directamente con la clave scheme.
sequencenum additional.fields.value.string_value Asignado directamente con la clave sequencenum.
servicio target.port Asignación directa.
service_id security_result.detection_fields.value Asignado directamente con la clave service_id.
session_uid network.session_id Asignación directa.
src principal.ip Asignación directa.
src_dns_name security_result.detection_fields.value Asignado directamente con la clave src_dns_name.
src_machine_name security_result.detection_fields.value Asignado directamente con la clave src_machine_name.
principal.asset.hostname Asignación directa.
principal.hostname Asignación directa.
src_user_dn security_result.detection_fields.value Asignado directamente con la clave src_user_dn.
src_user_name principal.user.userid Asignación directa.
principal.user.email_addresses La dirección de correo se extrae del campo src_user_name si existe y tiene el formato userid (email).
te_verdict_determined_by security_result.detection_fields.value Asignado directamente con la clave te_verdict_determined_by.
timestamp metadata.event_timestamp Asignación directa.
trusted_domain security_result.detection_fields.value Asignado directamente con la clave trusted_domain.
usuario principal.user.userid Se asigna directamente si src_user_name está vacío.
principal.user.email_addresses La dirección de correo se extrae del campo de usuario si existe y tiene el formato userid (email).
user_name principal.user.email_addresses Se asigna directamente si el valor es una dirección de correo válida.
user_sid principal.user.windows_sid Asignación directa.
veredicto security_result.detection_fields.value Asignado directamente con la clave verdict.
version additional.fields.value.string_value Asignado directamente con la clave version.
vpn_feature_name security_result.detection_fields.value Asignado directamente con la clave vpn_feature_name.
web_client_type security_result.detection_fields.value Asignado directamente con la clave web_client_type.
metadata.log_type Este campo tiene el valor CHECKPOINT_HARMONY codificado.
metadata.vendor_name Este campo tiene el valor CHECKPOINT_HARMONY codificado.
principal.asset.platform_software.platform Se asigna a WINDOWS, MAC o LINUX en función del valor del campo os_name.
network.ip_protocol Asignado a TCP, UDP, ICMP, IP6IN4 o GRE en función del valor del campo proto y de otros campos, como service y service_id.
security_result.severity Se asigna a BAJA, MEDIA, ALTA o CRÍTICA en función del valor del campo de gravedad.
metadata.event_type Este campo tiene el valor NETWORK_CONNECTION si están presentes tanto el principal como el objetivo, STATUS_UNCATEGORIZED si solo está presente el principal 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.