Check Point Harmony-Logs erfassen

Parserversion: 3.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Check Point Harmony Email and Collaboration-Logs (HEC) mit Bindplane in Google Security Operations aufnehmen. Mit diesem Parsercode werden Schlüssel/Wert-Paare aus Check Point Harmony-Syslog-Nachrichten extrahiert und einem einheitlichen Datenmodell (Unified Data Model, UDM) zugeordnet. Zuerst wird das Nachrichtenformat normalisiert, dann werden die Felder iterativ geparst und UDM-Kategorien wie principal, target, network und security_result zugeordnet. Dadurch werden die Daten für die Sicherheitsanalyse angereichert.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Windows 2016 oder höher oder ein Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
  • Privilegierter Zugriff auf Check Point Harmony HEC (Infinity Portal)

Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen

Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agent bei Google SecOps zu authentifizieren:

  • Neue Deployments: Verwenden Sie die Chronicle API (Option 1).
  • Alte Bereitstellungen: Verwenden Sie die Datei für die Authentifizierung bei der Aufnahme (Option 2) weiterhin, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
  1. Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
  2. Rufen Sie IAM & Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B. bindplane-ingest.
    • Dienstkontobeschreibung: Geben Sie eine Beschreibung ein, z. B. Bindplane agent log ingestion.
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle-Bearbeiter aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern.
  12. Rufen Sie IAM und Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Konfiguration des Exporters.

Option 2: Authentifizierungsdatei für die Aufnahme herunterladen (Legacy)

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Installieren Sie den Bindplane-Agenten gemäß der folgenden Anleitung auf Ihrem Windows- oder Linux-Betriebssystem.

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

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

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

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

Zusätzliche Installationsressourcen

Weitere Installationsoptionen finden Sie in der Installationsanleitung.

Bindplane-Agenten für die Aufnahme von Syslog-Daten und das Senden an Google SecOps konfigurieren

  1. Greifen Sie auf die Konfigurationsdatei zu:
    • Suchen Sie die Datei config.yaml. Normalerweise befindet sie sich unter Linux im Verzeichnis /opt/observiq-otel-collector/ oder unter Windows im Installationsverzeichnis.
    • Öffnen Sie die Datei mit einem Texteditor (z. B. nano, vi oder Notepad).
  2. Bearbeiten Sie die Datei config.yamlso:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            protocol: https
            # Region of your instance, for example us, europe, asia-southeast1
            location: <LOCATION>
            # Project number of the Google Cloud project linked to the instance
            project: '<PROJECT_NUMBER>'
            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: chronicle.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
    
    • Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
    • Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporteur stellt diesem Wert das Präfix chronicle.googleapis.com voran.
    • Ersetzen Sie <PROJECT_NUMBER> durch die Projektnummer aus IAM und Verwaltung > Einstellungen.
    • Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.
    • Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, unter dem die Schlüsseldatei des Dienstkontos (Option 1) im Abschnitt Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen gespeichert wurde.

Exporter für die Legacy Ingestion API

  • Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie creds_file_path auf den Pfad zur Datei für die Authentifizierung bei der Aufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch Ihren regionalen Endpunkt (z. B. europe-malachiteingestion-pa.googleapis.com).

    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:
    

Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Wenn Sie den Bindplane-Agenten unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog für Check Point Harmony HEC konfigurieren

  1. Melden Sie sich in der Web-UI von Infinity Portal > Harmony Email & Collaboration an.
  2. Rufen Sie die Einstellungen > Monitoring > SIEM auf.
  3. Klicken Sie auf SIEM-Server hinzufügen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Host: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Port: Geben Sie die Portnummer des Bindplane-Agents ein.
    • Protokoll: Wählen Sie UDP aus.
    • (Optional) Token: Geben Sie ein optionales Tag für die Logs ein.
  5. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Aktion security_result.action_details Direkt zugeordnet.
security_result.action Entsprechend dem Wert des Felds „action“ wird ALLOW, BLOCK, ALLOW_WITH_MODIFICATION oder QUARANTINE zugeordnet.
additional_info additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = additional_info.
analyzed_on security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = analyzed_on.
client_name additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = client_name.
client_version intermediary.platform_version Direkt zugeordnet.
confidence_level security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = confidence_level.
security_result.confidence Wird basierend auf dem Wert des Felds „confidence_level“ zu UNKNOWN_CONFIDENCE, LOW_CONFIDENCE, MEDIUM_CONFIDENCE oder HIGH_CONFIDENCE zugeordnet.
Beschreibung security_result.description Direkt zugeordnet.
dst target.ip Direkt zugeordnet.
dst_dns_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = dst_dns_name.
dst_machine_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = dst_machine_name.
target.asset.hostname Direkt zugeordnet.
target.hostname Direkt zugeordnet.
dst_user_dn security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = dst_user_dn.
dst_user_name target.user.userid Direkt zugeordnet.
ep_rule_id security_result.rule_id Direkt zugeordnet, wenn „rule_uid“ leer ist.
Fehler security_result.summary Direkt zugeordnet.
event_type metadata.product_event_type Direkt zugeordnet.
file_md5 target.process.file.md5 Direkt zugeordnet, wenn der Wert ein gültiger MD5-Hash ist und nicht nur aus Nullen besteht.
target.file.md5 Direkt zugeordnet, wenn der Wert ein gültiger MD5-Hash ist und nicht nur aus Nullen besteht.
file_name target.process.file.full_path Direkt zugeordnet.
file_sha1 target.process.file.sha1 Direkt zugeordnet, wenn der Wert ein gültiger SHA-1-Hash und nicht nur Nullen ist.
target.file.sha1 Direkt zugeordnet, wenn der Wert ein gültiger SHA-1-Hashwert ist und nicht nur aus Nullen besteht.
file_sha256 target.process.file.sha256 Direkt zugeordnet, wenn der Wert ein gültiger SHA256-Hash ist und nicht nur aus Nullen besteht.
target.file.sha256 Direkt zugeordnet, wenn der Wert ein gültiger SHA256-Hash ist und nicht nur Nullen enthält.
file_size target.file.size Direkt zugeordnet.
file_type target.file.file_type Wird basierend auf dem Wert des Felds „file_type“ FILE_TYPE_ZIP, FILE_TYPE_DOS_EXE, FILE_TYPE_PDF oder FILE_TYPE_XLSX zugeordnet.
flags additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = flags.
fw_subproduct additional.fields.value.string_value Direkt mit Schlüssel = fw_subproduct zugeordnet, wenn das Produkt leer ist.
metadata.product_name Direkt zugeordnet, wenn das Produkt leer ist.
host_type security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = host_type.
ifdir network.direction Direkt zugeordnet nach der Umwandlung in Großbuchstaben.
ifname security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = ifname.
installed_products security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = installed_products.
is_scanned security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = is_scanned.
layer_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = layer_name.
security_result.rule_set_display_name Direkt zugeordnet.
layer_uuid security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = layer_uuid.
security_result.rule_set Direkt zugeordnet.
loguid metadata.product_log_id Direkt zugeordnet.
machine_guid principal.asset.attribute.labels.value Direkt zugeordnet mit Schlüssel = machine_guid.
malware_action security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = malware_action.
malware_family security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = malware_family.
media_authorized security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = media_authorized.
media_class_id security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = media_class_id.
media_description security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = media_description.
media_encrypted security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = media_encrypted.
media_manufacturer security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = media_manufacturer.
media_type security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = media_type.
Methoden security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = methods.
originsicname security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = originsicname.
origin intermediary.ip Direkt zugeordnet.
os_version principal.asset.platform_software.platform_patch_level Direkt zugeordnet.
outzone security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = outzone.
parent_rule security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = parent_rule.
peer_gateway intermediary.ip Direkt zugeordnet.
policy_guid security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = policy_guid.
policy_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = policy_name.
policy_number security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = policy_number.
policy_type security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = policy_type.
Produkt additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = product.
metadata.product_name Direkt zugeordnet.
product_family additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = product_family.
program_name additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = program_name.
protection_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = protection_name.
protection_type security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = protection_type.
reading_data_access security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = reading_data_access.
rule_action security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = rule_action.
rule_name security_result.rule_name Direkt zugeordnet.
rule_uid security_result.rule_id Direkt zugeordnet, wenn „ep_rule_id“ leer ist.
s_port principal.port Direkt zugeordnet.
scheme security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = scheme.
sequencenum additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = sequencenum.
Dienst target.port Direkt zugeordnet.
service_id security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = service_id.
session_uid network.session_id Direkt zugeordnet.
src principal.ip Direkt zugeordnet.
src_dns_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = src_dns_name.
src_machine_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = src_machine_name.
principal.asset.hostname Direkt zugeordnet.
principal.hostname Direkt zugeordnet.
src_user_dn security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = src_user_dn.
src_user_name principal.user.userid Direkt zugeordnet.
principal.user.email_addresses Die E-Mail-Adresse wird aus dem Feld „src_user_name“ extrahiert, sofern es vorhanden ist und das Format userid (email) hat.
te_verdict_determined_by security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = te_verdict_determined_by.
timestamp metadata.event_timestamp Direkt zugeordnet.
trusted_domain security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = trusted_domain.
Nutzer principal.user.userid Direkt zugeordnet, wenn „src_user_name“ leer ist.
principal.user.email_addresses Die E-Mail-Adresse wird aus dem Nutzerfeld extrahiert, sofern vorhanden, und hat das Format userid (email).
user_name principal.user.email_addresses Direkt zugeordnet, wenn der Wert eine gültige E-Mail-Adresse ist.
user_sid principal.user.windows_sid Direkt zugeordnet.
Ergebnis security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = verdict.
Version additional.fields.value.string_value Direkt zugeordnet mit Schlüssel = version.
vpn_feature_name security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = vpn_feature_name.
web_client_type security_result.detection_fields.value Direkt zugeordnet mit Schlüssel = web_client_type.
metadata.log_type Dieses Feld ist fest auf CHECKPOINT_HARMONY codiert.
metadata.vendor_name Dieses Feld ist hartcodiert auf CHECKPOINT_HARMONY.
principal.asset.platform_software.platform Wird basierend auf dem Wert des Felds „os_name“ WINDOWS, MAC oder LINUX zugeordnet.
network.ip_protocol Wird basierend auf dem Wert des Felds „proto“ und anderen Feldern wie „service“ und „service_id“ TCP, UDP, ICMP, IP6IN4 oder GRE zugeordnet.
security_result.severity Wird basierend auf dem Wert des Schweregradfelds LOW, MEDIUM, HIGH oder CRITICAL zugeordnet.
metadata.event_type Dieses Feld wird auf NETWORK_CONNECTION gesetzt, wenn sowohl das Hauptkonto als auch das Ziel vorhanden sind, auf STATUS_UNCATEGORIZED, wenn nur das Hauptkonto vorhanden ist, und auf GENERIC_EVENT, wenn keines der beiden vorhanden ist.
label event.idm.read_only_udm.network.email.to Aus Änderungsprotokoll zugeordnet
entityLink event.idm.read_only_udm.metadata.url_back_to_product Aus Änderungsprotokoll zugeordnet
actionType event.idm.read_only_udm.security_result.action_details Aus Änderungsprotokoll zugeordnet
eventId event.idm.read_only_udm.metadata.product_log_id Aus Änderungsprotokoll zugeordnet
eventCreated event.idm.read_only_udm.metadata.event_timestamp Aus Änderungsprotokoll zugeordnet
type event.idm.read_only_udm.metadata.product_event_type Aus Änderungsprotokoll zugeordnet
act.createTime event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
act.relatedEntityId event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
customerId event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
saas event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
state event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
entityId event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
connectivity_state event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
actions.actionType event.idm.read_only_udm.security_result.action Aus Änderungsprotokoll zugeordnet
senderAddress event.idm.read_only_udm.network.email.from Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten