Collecter les journaux Check Point Harmony
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- 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
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
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
- 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).
- Recherchez le fichier
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
- Connectez-vous à l'interface utilisateur Web Infinity Portal> Harmony Email & Collaboration.
- Accédez à Paramètres> Surveillance> SIEM.
- Cliquez sur Ajouter un serveur SIEM.
- 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.
- 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.