Collecter les journaux Check Point EDR

Compatible avec :

Ce document explique comment ingérer des journaux Check Point Antivirus dans Google Security Operations à l'aide de Bindplane. L'analyseur gère les journaux de Check Point SandBlast, en convertissant les journaux au format SYSLOG+KV et SYSLOG+CEF dans le modèle de données unifié (UDM). L'analyseur extrait les champs des messages CEF à l'aide des modules inclus et les mappe aux champs UDM, en gérant différents types d'événements et en enrichissant les données avec un contexte supplémentaire provenant des journaux bruts. Pour les messages non CEF, l'analyseur utilise l'extraction de paires clé-valeur, les modèles Grok et la logique conditionnelle pour mapper les champs pertinents au schéma UDM EDR.

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é à l'appliance Check Point avec SandBlast

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

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. En règle générale, il se trouve 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: '/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
            ingestion_labels:
                log_type: 'CHECKPOINT_EDR'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.

  4. Remplacez <customer_id> par le numéro client réel.

  5. Mettez à jour /path/to/ingestion-authentication-file.json en indiquant le chemin d'accès 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 dans la gamme d'appliances Checkpoint 1500

  1. Connectez-vous à l'appliance Checkpoint.
  2. Accédez à Journaux et surveillance> Serveurs de journaux> Serveurs Syslog.
  3. Cliquez sur Configurer.
  4. Fournissez les informations de configuration suivantes :
    • Protocole : sélectionnez UDP.
    • Nom : saisissez un nom descriptif.
    • Adresse IP : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane.
    • Sélectionnez Activer le serveur de journaux.
    • Sélectionnez les journaux à transférer : journaux système et de sécurité.
  5. Cliquez sur Appliquer.

Table de mappage UDM

Champ de journal Mappage UDM Logique
action event.idm.read_only_udm.security_result.action Mappé directement à partir du champ CEF action.
action_comment event.idm.read_only_udm.additional.fields[<N>].key : action_comment
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de action_comment
Mappé directement à partir du champ action_comment.
action_details event.idm.read_only_udm.security_result.action_details Mappé directement à partir du champ CEF action_details.
additional_info event.idm.read_only_udm.additional.fields[<N>].key : additional_info
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de additional_info
Mappé directement à partir du champ additional_info.
am_update_proxy event.idm.read_only_udm.intermediary.domain.name Mappé directement à partir du champ am_update_proxy.
am_update_source event.idm.read_only_udm.target.url Mappé directement à partir du champ am_update_source.
client_version event.idm.read_only_udm.metadata.product_version Mappé directement à partir du champ client_version.
cn1 event.idm.read_only_udm.security_result.severity Mappé à partir du champ CEF cn1 et converti en valeurs de gravité UDM (CRITICAL, HIGH, MEDIUM, LOW, INFO).
cs1 event.idm.read_only_udm.additional.fields[<N>].key : Connectivity State
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de cs1
Mappé directement à partir du champ cs1.
description event.idm.read_only_udm.metadata.description Mappé directement à partir du champ CEF description.
deviceDirection event.idm.read_only_udm.network.direction Mappé à partir du champ deviceDirection. La valeur 0 est mappée sur INBOUND, mais les autres valeurs ne le sont pas.
deviceFacility event.idm.read_only_udm.additional.fields[<N>].key : deviceFacility
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de deviceFacility
Mappé directement à partir du champ deviceFacility.
dst event.idm.read_only_udm.network.target.ip Directement mappé à partir du champ dst lorsque event_type est défini sur Firewall.
engine_ver event.idm.read_only_udm.additional.fields[<N>].key : engine_ver
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de engine_ver
Mappé directement à partir du champ engine_ver.
ep_rule_id event.idm.read_only_udm.firewall.firewall_rule_id Directement mappé à partir du champ ep_rule_id lorsque event_type est défini sur Firewall.
event_type event.idm.read_only_udm.metadata.product_event_type Mappé directement à partir du champ CEF event_type.
failed_updates event.idm.read_only_udm.additional.fields[<N>].key : failed_updates
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de failed_updates
Mappé directement à partir du champ failed_updates.
file_md5 event.idm.read_only_udm.source_file.hash_md5 Directement mappé à partir du champ file_md5 lorsque event_type est défini sur TE Event.
file_name event.idm.read_only_udm.source_file.file_name Directement mappé à partir du champ file_name lorsque event_type est défini sur TE Event.
file_sha1 event.idm.read_only_udm.source_file.hash_sha1 Directement mappé à partir du champ file_sha1 lorsque event_type est défini sur TE Event.
file_sha256 event.idm.read_only_udm.source_file.hash_sha256 Directement mappé à partir du champ file_sha256 lorsque event_type est défini sur TE Event.
host_type event.idm.read_only_udm.principal.asset.type Mappé à partir du champ host_type. Desktop est converti en WORKSTATION, puis la valeur est mise en majuscules.
ifdir event.idm.read_only_udm.network.direction Directement mappé à partir du champ ifdir et mis en majuscules lorsque event_type est défini sur Firewall.
installed_products event.idm.read_only_udm.principal.asset.software.name Mappé directement à partir du champ installed_products.
is_scanned sec_res.detection_fields[<N>].key : is_scanned
sec_res.detection_fields[<N>].value : valeur de is_scanned
Mappé directement à partir du champ is_scanned.
local_time event.idm.read_only_udm.additional.fields[<N>].key : local_time
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de local_time
Mappé directement à partir du champ local_time.
log_type event.idm.read_only_udm.metadata.log_type Mappé directement à partir du champ log_type.
loguid event.idm.read_only_udm.metadata.product_log_id Mappé directement à partir du champ loguid.
machine_guid event.idm.read_only_udm.principal.asset.product_object_id Mappé directement à partir du champ machine_guid.
media_authorized event.idm.read_only_udm.additional.fields[<N>].key : media_authorized
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de media_authorized
Mappé directement à partir du champ media_authorized.
media_class_id event.idm.read_only_udm.additional.fields[<N>].key : media_class_id
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de media_class_id
Mappé directement à partir du champ media_class_id.
media_description event.idm.read_only_udm.additional.fields[<N>].key : media_description
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de media_description
Mappé directement à partir du champ media_description.
media_encrypted event.idm.read_only_udm.additional.fields[<N>].key : media_encrypted
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de media_encrypted
Mappé directement à partir du champ media_encrypted.
media_manufacturer event.idm.read_only_udm.additional.fields[<N>].key : media_manufacturer
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de media_manufacturer
Mappé directement à partir du champ media_manufacturer.
media_type event.idm.read_only_udm.additional.fields[<N>].key : media_type
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de media_type
Mappé directement à partir du champ media_type.
msg event.idm.read_only_udm.metadata.description Mappé directement à partir du champ CEF msg.
origin event.idm.read_only_udm.about.ip Mappé directement à partir du champ CEF origin.
os_name event.idm.read_only_udm.additional.fields[<N>].key : os_name
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de os_name
Mappé directement à partir du champ os_name.
os_version event.idm.read_only_udm.principal.asset.platform_software.platform_version Mappé directement à partir du champ os_version.
policy_date event.idm.read_only_udm.additional.fields[<N>].key : policy_date
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de policy_date
Mappé directement à partir du champ policy_date.
policy_guid event.idm.read_only_udm.principal.resource.product_object_id Mappé directement à partir du champ policy_guid.
policy_name event.idm.read_only_udm.principal.resource.name Mappé directement à partir du champ policy_name.
policy_number event.idm.read_only_udm.principal.resource.product_object_id Mappé directement à partir du champ policy_number.
policy_type event.idm.read_only_udm.additional.fields[<N>].key : policy_type
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de policy_type
Mappé directement à partir du champ policy_type.
policy_version event.idm.read_only_udm.additional.fields[<N>].key : policy_version
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de policy_version
Mappé directement à partir du champ policy_version.
product event.idm.read_only_udm.metadata.product_name Mappé directement à partir du champ CEF product.
proto event.idm.read_only_udm.network.protocol Directement mappé à partir du champ proto lorsque event_type est défini sur Firewall.
reading_data_access event.idm.read_only_udm.additional.fields[<N>].key : reading_data_access
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de reading_data_access
Mappé directement à partir du champ reading_data_access.
requestClientApplication event.idm.read_only_udm.network.http.user_agent Mappé directement à partir du champ requestClientApplication.
result event.idm.read_only_udm.security_result.summary Mappé directement à partir du champ result.
rt event.idm.read_only_udm.metadata.event_timestamp.seconds Mappé à partir du champ rt, divisé par 1 000, et la partie entière est considérée comme des secondes.
rule_name event.idm.read_only_udm.firewall.firewall_rule Directement mappé à partir du champ rule_name lorsque event_type est défini sur Firewall.
s_port event.idm.read_only_udm.network.client.port Directement mappé à partir du champ s_port lorsque event_type est défini sur Firewall.
sequencenum event.idm.read_only_udm.additional.fields[<N>].key : sequencenum
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de sequencenum
Mappé directement à partir du champ sequencenum.
service event.idm.read_only_udm.network.target.port Directement mappé à partir du champ service lorsque event_type est défini sur Firewall.
severity event.idm.read_only_udm.security_result.severity Mappé à partir du champ severity et converti en valeurs de gravité UDM (CRITICAL, HIGH, MEDIUM, LOW, INFO).
shost event.idm.read_only_udm.principal.hostname Mappé directement à partir du champ CEF shost.
sig_ver event.idm.read_only_udm.additional.fields[<N>].key : sig_ver
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de sig_ver
Mappé directement à partir du champ sig_ver.
src event.idm.read_only_udm.principal.ip Mappé directement à partir du champ CEF src.
src_machine_name event.idm.read_only_udm.principal.hostname Directement mappé à partir du champ src_machine_name lorsque event_type est vide.
subject event.idm.read_only_udm.task.task_name Directement mappé à partir du champ subject lorsque event_type est vide.
suser event.idm.read_only_udm.principal.user.user_display_name Mappé directement à partir du champ CEF suser.
time event.idm.read_only_udm.metadata.event_timestamp.seconds Directement mappé à partir du champ time et converti en secondes de l'epoch Unix.
user_name event.idm.read_only_udm.principal.user.email_addresses Mappé directement à partir du champ CEF user_name.
user_sid event.idm.read_only_udm.principal.user.windows_sid Mappé directement à partir du champ user_sid.
version event.idm.read_only_udm.additional.fields[<N>].key : version
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de version
Mappé directement à partir du champ version.
writing_data_access event.idm.read_only_udm.additional.fields[<N>].key : writing_data_access
event.idm.read_only_udm.additional.fields[<N>].value.string_value : valeur de writing_data_access
Mappé directement à partir du champ writing_data_access.
N/A event.idm.read_only_udm.metadata.event_type Définissez sur GENERIC_EVENT si aucun des éléments principal.ip, principal.hostname ou principal.mac n'est présent dans le journal brut, sinon définissez sur STATUS_UPDATE.
N/A event.idm.read_only_udm.metadata.vendor_name Valeur constante : Check Point.
N/A event.idm.read_only_udm.metadata.log_type Valeur constante : CHECKPOINT_EDR.
N/A event.idm.read_only_udm.principal.asset.platform_software.platform Définie sur WINDOWS si os_name contient WINDOWS ou Windows.
N/A event.idm.read_only_udm.network.http.user_agent Définie sur Check Point Endpoint Security Client si requestClientApplication est présent.
N/A event.edr.data_source Valeur constante : CHECKPOINT_SANDBLAST lorsque message ne contient pas CEF.

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