Recoger registros de Check Point Harmony
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
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- 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
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- 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
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación de Linux
- Abre un terminal con privilegios de superusuario o sudo.
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
- 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).
- Busca el archivo
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
- Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.
- Sustituye
<customer_id>
por el ID de cliente real. - Actualiza
/path/to/ingestion-authentication-file.json
a la ruta donde se guardó el archivo de autenticación en la sección Obtener el archivo de autenticación de ingestión de Google SecOps.
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
- Inicia sesión en la interfaz web de Infinity Portal > Harmony Email & Collaboration.
- Ve a Configuración > Monitorización > SIEM.
- Haz clic en Añadir servidor SIEM.
- 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.
- 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.