Collecter les journaux Check Point Harmony

Compatible avec :

Ce document explique comment ingérer les journaux Check Point Harmony Email and Collaboration (HEC) dans Google Security Operations à l'aide de Bindplane. Cet extrait de code d'analyseur extrait les paires clé/valeur des messages syslog Check Point Harmony et les mappe à un modèle de données unifié (UDM). Il normalise d'abord le format du message, puis analyse et mappe de manière itérative les champs aux catégories UDM telles que principal, target, network et security_result, en enrichissant les données pour l'analyse de sécurité.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Windows 2016 ou version ultérieure, ou un hôte Linux avec systemd
  • Si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
  • Accès privilégié à Check Point Harmony HEC (Infinity Portal)

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. Copiez et enregistrez le numéro client de la section Informations sur l'organisation.

Installer l'agent Bindplane

Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.

Installation de fenêtres

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

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

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. Exécutez la commande suivante :

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

Ressources d'installation supplémentaires

Pour plus d'options d'installation, consultez le guide d'installation.

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration :
    • Recherchez le fichier config.yaml. Il se trouve généralement dans le répertoire /etc/bindplane-agent/ sous Linux ou dans le répertoire d'installation sous Windows.
    • Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple, nano, vi ou le Bloc-notes).
  2. Modifiez le fichier config.yaml comme suit :

    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
    
    • Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
    • Remplacez <customer_id> par le numéro client réel.
    • Mettez à jour /path/to/ingestion-authentication-file.json avec le chemin d'accès à l'emplacement où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :

    sudo systemctl restart bindplane-agent
    
  • Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurer Syslog pour Check Point Harmony HEC

  1. Connectez-vous à l'interface utilisateur Web Infinity Portal> Harmony Email & Collaboration.
  2. Accédez à Paramètres> Surveillance> SIEM.
  3. Cliquez sur Ajouter un serveur SIEM.
  4. Fournissez les informations de configuration suivantes :
    • Hôte : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane.
    • Protocole : sélectionnez UDP.
    • (Facultatif) Jeton : saisissez une balise facultative pour les journaux.
  5. Cliquez sur Enregistrer.

Table de mappage UDM

Champ de journal Mappage UDM Logique
action security_result.action_details Mappé directement.
security_result.action Mappé sur ALLOW, BLOCK, ALLOW_WITH_MODIFICATION ou QUARANTINE en fonction de la valeur du champ "action".
additional_info additional.fields.value.string_value Mappé directement avec la clé = additional_info.
analyzed_on security_result.detection_fields.value Mappé directement avec la clé = analyzed_on.
client_name additional.fields.value.string_value Mappé directement avec la clé = client_name.
client_version intermediary.platform_version Mappé directement.
confidence_level security_result.detection_fields.value Mappé directement avec la clé = confidence_level.
security_result.confidence Mappé sur UNKNOWN_CONFIDENCE, LOW_CONFIDENCE, MEDIUM_CONFIDENCE ou HIGH_CONFIDENCE en fonction de la valeur du champ confidence_level.
description security_result.description Mappé directement.
dst target.ip Mappé directement.
dst_dns_name security_result.detection_fields.value Mappé directement avec la clé = dst_dns_name.
dst_machine_name security_result.detection_fields.value Mappé directement avec la clé = dst_machine_name.
target.asset.hostname Mappé directement.
target.hostname Mappé directement.
dst_user_dn security_result.detection_fields.value Mappé directement avec la clé = dst_user_dn.
dst_user_name target.user.userid Mappé directement.
ep_rule_id security_result.rule_id Mappé directement si rule_uid est vide.
erreurs security_result.summary Mappé directement.
event_type metadata.product_event_type Mappé directement.
file_md5 target.process.file.md5 Mappée directement si la valeur est un hachage MD5 valide et ne contient pas que des zéros.
target.file.md5 Mappée directement si la valeur est un hachage MD5 valide et ne contient pas que des zéros.
file_name target.process.file.full_path Mappé directement.
file_sha1 target.process.file.sha1 Mappé directement si la valeur est un hachage SHA-1 valide et ne contient pas que des zéros.
target.file.sha1 Mappé directement si la valeur est un hachage SHA-1 valide et ne contient pas que des zéros.
file_sha256 target.process.file.sha256 Mappé directement si la valeur est un hachage SHA256 valide et ne contient pas que des zéros.
target.file.sha256 Mappé directement si la valeur est un hachage SHA256 valide et ne contient pas que des zéros.
file_size target.file.size Mappé directement.
file_type target.file.file_type Mappé sur FILE_TYPE_ZIP, FILE_TYPE_DOS_EXE, FILE_TYPE_PDF ou FILE_TYPE_XLSX en fonction de la valeur du champ file_type.
flags additional.fields.value.string_value Mappé directement avec la clé = flags.
fw_subproduct additional.fields.value.string_value Directement mappé avec la clé = fw_subproduct si le produit est vide.
metadata.product_name Mappé directement si le produit est vide.
host_type security_result.detection_fields.value Mappé directement avec la clé = host_type.
ifdir network.direction Mappé directement après la conversion en majuscules.
ifname security_result.detection_fields.value Mappé directement avec la clé = ifname.
installed_products security_result.detection_fields.value Mappé directement avec la clé = installed_products.
is_scanned security_result.detection_fields.value Mappé directement avec la clé = is_scanned.
layer_name security_result.detection_fields.value Mappé directement avec la clé = layer_name.
security_result.rule_set_display_name Mappé directement.
layer_uuid security_result.detection_fields.value Mappé directement avec la clé = layer_uuid.
security_result.rule_set Mappé directement.
loguid metadata.product_log_id Mappé directement.
machine_guid principal.asset.attribute.labels.value Mappé directement avec la clé = machine_guid.
malware_action security_result.detection_fields.value Mappé directement avec la clé = malware_action.
malware_family security_result.detection_fields.value Mappé directement avec la clé = malware_family.
media_authorized security_result.detection_fields.value Mappé directement avec la clé = media_authorized.
media_class_id security_result.detection_fields.value Mappé directement avec la clé = media_class_id.
media_description security_result.detection_fields.value Mappé directement avec la clé = media_description.
media_encrypted security_result.detection_fields.value Mappé directement avec la clé = media_encrypted.
media_manufacturer security_result.detection_fields.value Mappé directement avec la clé = media_manufacturer.
media_type security_result.detection_fields.value Mappé directement avec la clé = media_type.
méthodes security_result.detection_fields.value Mappé directement avec la clé = methods.
originsicname security_result.detection_fields.value Mappé directement avec la clé = originsicname.
origin intermediary.ip Mappé directement.
os_version principal.asset.platform_software.platform_patch_level Mappé directement.
outzone security_result.detection_fields.value Mappé directement avec la clé = outzone.
parent_rule security_result.detection_fields.value Mappé directement avec la clé = parent_rule.
peer_gateway intermediary.ip Mappé directement.
policy_guid security_result.detection_fields.value Mappé directement avec la clé = policy_guid.
policy_name security_result.detection_fields.value Mappé directement avec la clé = policy_name.
policy_number security_result.detection_fields.value Mappé directement avec la clé = policy_number.
policy_type security_result.detection_fields.value Mappé directement avec la clé = policy_type.
produit additional.fields.value.string_value Mappé directement avec la clé = product.
metadata.product_name Mappé directement.
product_family additional.fields.value.string_value Mappé directement avec la clé = product_family.
program_name additional.fields.value.string_value Mappé directement avec la clé = program_name.
protection_name security_result.detection_fields.value Mappé directement avec la clé = protection_name.
protection_type security_result.detection_fields.value Mappé directement avec la clé = protection_type.
reading_data_access security_result.detection_fields.value Mappé directement avec la clé = reading_data_access.
rule_action security_result.detection_fields.value Mappé directement avec la clé = rule_action.
rule_name security_result.rule_name Mappé directement.
rule_uid security_result.rule_id Mappé directement si ep_rule_id est vide.
s_port principal.port Mappé directement.
scheme security_result.detection_fields.value Mappé directement avec la clé = scheme.
sequencenum additional.fields.value.string_value Mappé directement avec la clé = sequencenum.
service target.port Mappé directement.
service_id security_result.detection_fields.value Mappé directement avec la clé = service_id.
session_uid network.session_id Mappé directement.
src principal.ip Mappé directement.
src_dns_name security_result.detection_fields.value Mappé directement avec la clé = src_dns_name.
src_machine_name security_result.detection_fields.value Mappé directement avec la clé = src_machine_name.
principal.asset.hostname Mappé directement.
principal.hostname Mappé directement.
src_user_dn security_result.detection_fields.value Mappé directement avec la clé = src_user_dn.
src_user_name principal.user.userid Mappé directement.
principal.user.email_addresses L'adresse e-mail est extraite du champ src_user_name si elle existe et est au format userid (email).
te_verdict_determined_by security_result.detection_fields.value Mappé directement avec la clé = te_verdict_determined_by.
timestamp metadata.event_timestamp Mappé directement.
trusted_domain security_result.detection_fields.value Mappé directement avec la clé = trusted_domain.
utilisateur principal.user.userid Mappé directement si src_user_name est vide.
principal.user.email_addresses L'adresse e-mail est extraite du champ utilisateur si elle existe et est au format userid (email).
user_name principal.user.email_addresses Mappé directement si la valeur est une adresse e-mail valide.
user_sid principal.user.windows_sid Mappé directement.
verdict security_result.detection_fields.value Mappé directement avec la clé = verdict.
version additional.fields.value.string_value Mappé directement avec la clé = version.
vpn_feature_name security_result.detection_fields.value Mappé directement avec la clé = vpn_feature_name.
web_client_type security_result.detection_fields.value Mappé directement avec la clé = web_client_type.
metadata.log_type Ce champ est codé en dur sur CHECKPOINT_HARMONY.
metadata.vendor_name Ce champ est codé en dur sur CHECKPOINT_HARMONY.
principal.asset.platform_software.platform Mappé sur WINDOWS, MAC ou LINUX en fonction de la valeur du champ os_name.
network.ip_protocol Mappé sur TCP, UDP, ICMP, IP6IN4 ou GRE en fonction de la valeur du champ "proto" et d'autres champs tels que "service" et "service_id".
security_result.severity Correspond à LOW, MEDIUM, HIGH ou CRITICAL en fonction de la valeur du champ "severity" (gravité).
metadata.event_type Ce champ est défini sur NETWORK_CONNECTION si le compte principal et la cible sont présents, sur STATUS_UNCATEGORIZED si seul le compte principal est présent et sur GENERIC_EVENT dans les autres cas.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.