Recopila registros de Check Point Harmony

Compatible con:

En este documento, se explica cómo transferir registros de Check Point Harmony Email and Collaboration (HEC) a Google Security Operations con Bindplane. Este código del 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, luego, analiza y asigna de forma iterativa los campos a categorías del UDM, como principal, target, network y security_result, lo que enriquece los datos para el análisis de seguridad.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

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

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Collection Agents.
  3. Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará BindPlane.

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Profile.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instala el agente de BindPlane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.

Instalación en Windows

  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 en Linux

  1. Abre una terminal con privilegios de raíz 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 obtener más opciones de instalación, consulta la guía de instalación.

Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:
    • Ubica el archivo config.yaml. Por lo general, 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 de Servicios o ingresar el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura Syslog para el HEC de Check Point Harmony

  1. Accede a la IU web de Infinity Portal > Harmony Email & Collaboration.
  2. Ve a Configuración > Supervisión > SIEM.
  3. Haz clic en Add SIEM Server.
  4. Proporciona los siguientes detalles de configuración:
    • Host: Ingresa la dirección IP del agente de BindPlane.
    • Puerto: Ingresa el número de puerto del agente de Bindplane.
    • Protocolo: Selecciona UDP.
    • (Opcional) Token: Ingresa 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 Se asigna directamente.
security_result.action Se asigna a ALLOW, BLOCK, ALLOW_WITH_MODIFICATION o QUARANTINE según el valor del campo de acción.
additional_info additional.fields.value.string_value Se asigna directamente con la clave = additional_info.
analyzed_on security_result.detection_fields.value Se asigna directamente con la clave = analyzed_on.
client_name additional.fields.value.string_value Se asigna directamente con la clave = client_name.
client_version intermediary.platform_version Se asigna directamente.
confidence_level security_result.detection_fields.value Se asigna directamente con la clave = confidence_level.
security_result.confidence Se asigna a UNKNOWN_CONFIDENCE, LOW_CONFIDENCE, MEDIUM_CONFIDENCE o HIGH_CONFIDENCE según el valor del campo confidence_level.
descripción security_result.description Se asigna directamente.
DST target.ip Se asigna directamente.
dst_dns_name security_result.detection_fields.value Se asigna directamente con la clave = dst_dns_name.
dst_machine_name security_result.detection_fields.value Se asigna directamente con la clave = dst_machine_name.
target.asset.hostname Se asigna directamente.
target.hostname Se asigna directamente.
dst_user_dn security_result.detection_fields.value Se asigna directamente con la clave = dst_user_dn.
dst_user_name target.user.userid Se asigna directamente.
ep_rule_id security_result.rule_id Se asigna directamente si rule_uid está vacío.
errores security_result.summary Se asigna directamente.
event_type metadata.product_event_type Se asigna directamente.
file_md5 target.process.file.md5 Se asigna directamente si el valor es un hash MD5 válido y no todos los caracteres son ceros.
target.file.md5 Se asigna directamente si el valor es un hash MD5 válido y no todos los caracteres son ceros.
file_name target.process.file.full_path Se asigna directamente.
file_sha1 target.process.file.sha1 Se asigna directamente si el valor es un hash SHA-1 válido y no todos los caracteres son ceros.
target.file.sha1 Se asigna directamente si el valor es un hash SHA-1 válido y no todos los caracteres son ceros.
file_sha256 target.process.file.sha256 Se asigna directamente si el valor es un hash SHA256 válido y no todos los caracteres son ceros.
target.file.sha256 Se asigna directamente si el valor es un hash SHA256 válido y no todos los caracteres son ceros.
file_size target.file.size Se asigna directamente.
file_type target.file.file_type Se asigna a FILE_TYPE_ZIP, FILE_TYPE_DOS_EXE, FILE_TYPE_PDF o FILE_TYPE_XLSX según el valor del campo file_type.
flags additional.fields.value.string_value Se asigna 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 Se asigna directamente con la clave = host_type.
ifdir network.direction Se asigna directamente después de convertir a mayúsculas.
ifname security_result.detection_fields.value Se asigna directamente con la clave = ifname.
installed_products security_result.detection_fields.value Se asigna directamente con la clave = installed_products.
is_scanned security_result.detection_fields.value Se asigna directamente con la clave = is_scanned.
layer_name security_result.detection_fields.value Se asigna directamente con la clave = layer_name.
security_result.rule_set_display_name Se asigna directamente.
layer_uuid security_result.detection_fields.value Se asigna directamente con la clave = layer_uuid.
security_result.rule_set Se asigna directamente.
loguid metadata.product_log_id Se asigna directamente.
machine_guid principal.asset.attribute.labels.value Se asigna directamente con la clave = machine_guid.
malware_action security_result.detection_fields.value Se asigna directamente con la clave = malware_action.
malware_family security_result.detection_fields.value Se asigna directamente con la clave = malware_family.
media_authorized security_result.detection_fields.value Se asigna directamente con la clave = media_authorized.
media_class_id security_result.detection_fields.value Se asigna directamente con la clave = media_class_id.
media_description security_result.detection_fields.value Se asigna directamente con la clave = media_description.
media_encrypted security_result.detection_fields.value Se asigna directamente con la clave = media_encrypted.
media_manufacturer security_result.detection_fields.value Se asigna directamente con la clave = media_manufacturer.
media_type security_result.detection_fields.value Se asigna directamente con la clave = media_type.
métodos security_result.detection_fields.value Se asigna directamente con la clave = methods.
originsicname security_result.detection_fields.value Se asigna directamente con la clave = originsicname.
origin intermediary.ip Se asigna directamente.
os_version principal.asset.platform_software.platform_patch_level Se asigna directamente.
outzone security_result.detection_fields.value Se asigna directamente con la clave = outzone.
parent_rule security_result.detection_fields.value Se asigna directamente con la clave = parent_rule.
peer_gateway intermediary.ip Se asigna directamente.
policy_guid security_result.detection_fields.value Se asigna directamente con la clave = policy_guid.
policy_name security_result.detection_fields.value Se asigna directamente con la clave = policy_name.
policy_number security_result.detection_fields.value Se asigna directamente con la clave = policy_number.
policy_type security_result.detection_fields.value Se asigna directamente con la clave = policy_type.
producto additional.fields.value.string_value Se asigna directamente con la clave = product.
metadata.product_name Se asigna directamente.
product_family additional.fields.value.string_value Se asigna directamente con la clave = product_family.
program_name additional.fields.value.string_value Se asigna directamente con la clave = program_name.
protection_name security_result.detection_fields.value Se asigna directamente con la clave = protection_name.
protection_type security_result.detection_fields.value Se asigna directamente con la clave = protection_type.
reading_data_access security_result.detection_fields.value Se asigna directamente con la clave = reading_data_access.
rule_action security_result.detection_fields.value Se asigna directamente con la clave = rule_action.
rule_name security_result.rule_name Se asigna directamente.
rule_uid security_result.rule_id Se asigna directamente si ep_rule_id está vacío.
s_port principal.port Se asigna directamente.
esquema security_result.detection_fields.value Se asigna directamente con la clave = scheme.
sequencenum additional.fields.value.string_value Se asigna directamente con la clave = sequencenum.
servicio target.port Se asigna directamente.
service_id security_result.detection_fields.value Se asigna directamente con la clave = service_id.
session_uid network.session_id Se asigna directamente.
src principal.ip Se asigna directamente.
src_dns_name security_result.detection_fields.value Se asigna directamente con la clave = src_dns_name.
src_machine_name security_result.detection_fields.value Se asigna directamente con la clave = src_machine_name.
principal.asset.hostname Se asigna directamente.
principal.hostname Se asigna directamente.
src_user_dn security_result.detection_fields.value Se asigna directamente con la clave = src_user_dn.
src_user_name principal.user.userid Se asigna directamente.
principal.user.email_addresses La dirección de correo electrónico se extrae del campo src_user_name si existe y tiene el formato userid (email).
te_verdict_determined_by security_result.detection_fields.value Se asigna directamente con la clave = te_verdict_determined_by.
timestamp metadata.event_timestamp Se asigna directamente.
trusted_domain security_result.detection_fields.value Se asigna 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 electrónico se extrae del campo del 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 electrónico válida.
user_sid principal.user.windows_sid Se asigna directamente.
veredicto security_result.detection_fields.value Se asigna directamente con la clave = verdict.
versión additional.fields.value.string_value Se asigna directamente con la clave = version.
vpn_feature_name security_result.detection_fields.value Se asigna directamente con la clave = vpn_feature_name.
web_client_type security_result.detection_fields.value Se asigna directamente con la clave = web_client_type.
metadata.log_type Este campo está codificado como CHECKPOINT_HARMONY.
metadata.vendor_name Este campo está codificado como CHECKPOINT_HARMONY.
principal.asset.platform_software.platform Se asigna a WINDOWS, MAC o LINUX según el valor del campo os_name.
network.ip_protocol Se asigna a TCP, UDP, ICMP, IP6IN4 o GRE según el valor del campo proto y otros campos, como service y service_id.
security_result.severity Se asigna a LOW, MEDIUM, HIGH o CRITICAL según el valor del campo de gravedad.
metadata.event_type Este campo se establece en NETWORK_CONNECTION si están presentes tanto la principal como el objetivo, en STATUS_UNCATEGORIZED si solo está presente la principal y en GENERIC_EVENT en los demás casos.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.