HP ProCurve-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie die HP ProCurve-Switch-Logs mithilfe von Bindplane in Google Security Operations aufnehmen. Der Parsercode versucht zuerst, die Roh-Lognachricht als JSON zu parsen. Andernfalls werden mithilfe von regulären Ausdrücken (grok-Mustern) Felder aus der Nachricht basierend auf gängigen HP ProCurve-Protokollformaten extrahiert.

Hinweise

Folgende Voraussetzungen müssen erfüllt sein:

  • Google SecOps-Instanz
  • Windows 2016 oder höher oder Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
  • Berechtigter Zugriff auf einen HP ProCurve-Switch

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. Lade die Datei zur Authentifizierung der Datenaufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die 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
    

Weitere Installationsressourcen

Weitere Installationsoptionen finden Sie im Installationsleitfaden.

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    • Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ 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:
                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: HP_PROCURVE
                    raw_log_field: body
    
        service:
            pipelines:
                logs/source0__chronicle_w_labels-0:
                    receivers:
                        - udplog
                    exporters:
                        - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.

Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden

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

    sudo systemctl restart bindplane-agent
    
  • Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog auf einem HP ProCurve-Switch konfigurieren

  1. Melden Sie sich mit SSH am HP Procurve-Switch an.
  2. Prüfen Sie die Switch-Schnittstelle mit dem folgenden Befehl:

    show ip int br
    
  3. Aktivieren Sie den Konfigurationsmodus auf dem Switch mit dem folgenden Befehl:

    console# conf t
    
  4. Konfigurieren Sie den Switch mit den folgenden Befehlen zum Senden von Protokollen:

        logging host <bindplae-server-ip> transport <udp/tcp> port <port-number>
        logging facility syslog
        logging trap informational
        logging buffer 65536
        logging origin-id hostname
        logging source-interface <interface>
    
  5. Ersetzen Sie <bindplae-server-ip> und <port-number> durch die Bindplane-IP-Adresse und die Portnummer.

  6. Ersetzen Sie <udp/tcp> durch die Auswahl von UDP oder TCP als Kommunikationsprotokoll (je nach Bindplane-Agentkonfiguration).

  7. Ersetzen Sie <interface> durch die Schnittstellen-ID, die Sie zuvor vom Switch erhalten haben (z. B. Ethernet1/1).

  8. Beenden Sie den Konfigurationsmodus und speichern Sie die Änderungen mit den folgenden Befehlen:

    console# exit
    console# wr
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
AAAScheme read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel AAAScheme ist
AAAType read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel AAAType ist
Chassis-ID read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld description extrahiert wird, wenn der Schlüssel Chassis ID ist
Befehl ist read_only_udm.security_result.detection_fields.value Text nach Command is im Feld commandInfo
CommandSource read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel CommandSource ist
Konfigurationsmethode read_only_udm.additional.fields.value.string_value Wenn das Feld im Protokoll vorhanden ist, wird es als config_method
ConfigDestination read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel ConfigDestination ist
ConfigSource read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel ConfigSource ist
Gerätename read_only_udm.principal.hostname Wenn das Feld im Protokoll vorhanden ist, wird es dem Haupt- und Asset-Hostnamen zugeordnet.
Ereignis-ID read_only_udm.additional.fields.value.string_value Wenn das Feld im Protokoll vorhanden ist, wird es in den zusätzlichen Feldern als event_id
EventIndex read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel EventIndex ist
IfIndex read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld description extrahiert wird, wenn der Schlüssel IfIndex ist
IP: %{IP:IPAddr} read_only_udm.target.ip, read_only_udm.target.asset.ip IP-Adresse, die aus dem Feld desc extrahiert und der Ziel-IP-Adresse und der Ziel-Asset-IP-Adresse zugeordnet wurde
IPAddr read_only_udm.target.ip, read_only_udm.target.asset.ip Wenn das Feld im Protokoll vorhanden ist, wird es der Ziel-IP-Adresse und der Ziel-Asset-IP-Adresse zugeordnet.
Hinweistyp read_only_udm.additional.fields.value.string_value Wenn das Feld im Protokoll vorhanden ist, wird es als notice_type
Anschluss-ID read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld description extrahiert wird, wenn der Schlüssel Port ID ist
Remote-IP-Adresse read_only_udm.additional.fields.value.string_value Wenn das Feld im Protokoll vorhanden ist, wird es als remote_ip_address
Dienst read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel Service ist
Aufgabe read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld descrip extrahiert wird, wenn der Schlüssel Task ist
Nutzer read_only_udm.principal.user.userid Wenn das Feld im Protokoll vorhanden ist, wird es der Hauptnutzer-ID zugeordnet.
Nutzername read_only_udm.principal.user.userid Wenn das Feld im Protokoll vorhanden ist, wird es der Hauptnutzer-ID zugeordnet.
Nutzername read_only_udm.principal.user.userid Wenn das Feld im Protokoll vorhanden ist, wird es der Hauptnutzer-ID zugeordnet.
UserService read_only_udm.security_result.detection_fields.value Wert, der aus dem Feld desc extrahiert wird, wenn der Schlüssel UserService ist
collection_time.seconds read_only_udm.metadata.event_timestamp.seconds Sekundenteil des Ereigniszeitstempels
Daten Dieses Feld enthält die Roh-Logmeldung und wird analysiert, um andere Felder zu extrahieren. Es ist nicht dem UDM zugeordnet.
Ab read_only_udm.security_result.description Aus der Protokollmeldung extrahierte Beschreibung
descrip Beschreibung, die aus dem Feld desc extrahiert und weiter nach Schlüssel/Wert-Paaren geparst wurde. Es ist nicht dem UDM zugeordnet.
description read_only_udm.security_result.description Wenn das Feld im Protokoll vorhanden ist, wird es der Beschreibung des Sicherheitsergebnisses zugeordnet.
descript read_only_udm.metadata.description Wenn das Feld im Protokoll vorhanden ist, wird es der Metadatenbeschreibung zugeordnet.
event_id read_only_udm.additional.fields.value.string_value Wenn das Feld im Protokoll vorhanden ist, wird es als event_id
eventId read_only_udm.metadata.product_event_type Ereignis-ID, die aus der Protokollmeldung extrahiert wurde
Hostname read_only_udm.principal.hostname, read_only_udm.principal.asset.hostname Hostname, der aus der Protokollnachricht extrahiert und dem Haupt-Hostnamen und dem Asset-Hostnamen zugeordnet wird
inter_ip read_only_udm.additional.fields.value.string_value, read_only_udm.intermediary.ip Wenn das Feld im Log vorhanden ist und eine gültige IP-Adresse ist, wird es der Zwischen-IP zugeordnet. Andernfalls wird er in den zusätzlichen Feldern als inter_ip eingefügt.
notice_type read_only_udm.additional.fields.value.string_value Wenn das Feld im Protokoll vorhanden ist, wird es in den zusätzlichen Feldern als notice_type
pid read_only_udm.principal.process.pid Wenn das Feld im Protokoll vorhanden ist, wird es der PID des Hauptprozesses zugeordnet.
Programm Programminformationen, die aus der Protokollnachricht extrahiert und weiter analysiert wurden, um Modul, Schweregrad und Aktion zu ermitteln. Es ist nicht dem UDM zugeordnet.
Proto read_only_udm.network.application_protocol, read_only_udm.additional.fields.value.string_value Protokoll, das aus der Protokollnachricht extrahiert wurde. Wenn es mit bekannten Protokollen übereinstimmt, wird es dem Anwendungsprotokoll zugeordnet. Andernfalls wird er in den zusätzlichen Feldern als Application Protocol eingefügt.
remote_ip_address read_only_udm.principal.ip, read_only_udm.principal.asset.ip, read_only_udm.additional.fields.value.string_value Wenn das Feld im Log vorhanden ist und eine gültige IP-Adresse ist, wird es der Haupt-IP-Adresse und der Haupt-Asset-IP-Adresse zugeordnet. Andernfalls wird er in den zusätzlichen Feldern als remote_ip_address eingefügt.
die Ausprägung read_only_udm.security_result.severity, read_only_udm.security_result.severity_details Schweregrad, der aus dem Feld program nach der Aufteilung nach / extrahiert wurde. Sie wird den UDM-Schweregraden zugeordnet und auch als Rohdaten zur Schwere gespeichert.
src_ip read_only_udm.principal.ip, read_only_udm.principal.asset.ip Quell-IP-Adresse, die aus der Protokollnachricht extrahiert und der Haupt-IP-Adresse und der Haupt-Asset-IP-Adresse zugeordnet wurde
Status read_only_udm.additional.fields.value.string_value Wenn das Feld im Protokoll vorhanden ist, wird es in den zusätzlichen Feldern als status
targetHostname read_only_udm.target.hostname, read_only_udm.target.asset.ip Wenn das Feld im Protokoll vorhanden ist, wird es dem Ziel-Hostnamen und der Ziel-Asset-IP zugeordnet.
target_ip read_only_udm.target.ip, read_only_udm.target.asset.ip Ziel-IP, die aus der Protokollnachricht extrahiert und der Ziel-IP und der Ziel-Asset-IP zugeordnet wurde
timestamp read_only_udm.metadata.event_timestamp.seconds Zeitstempel, der aus der Protokollnachricht extrahiert und in einen Ereigniszeitstempel umgewandelt wurde
timestamp.seconds read_only_udm.metadata.event_timestamp.seconds Sekundenteil des Ereigniszeitstempels
Nutzername read_only_udm.principal.user.userid Wenn das Feld im Protokoll vorhanden ist, wird es der Hauptnutzer-ID zugeordnet.
read_only_udm.metadata.event_type Wird anhand einer Kombination aus Feldern und Logik ermittelt:
 – NETWORK_CONNECTION: wenn has_principal und has_target wahr sind.
 – USER_LOGOUT: Wenn action WEBOPT_LOGOUT, LOGOUT oder SHELL_LOGOUT ist.
 – USER_LOGIN: Wenn action LOGIN oder WEBOPT_LOGIN_SUC ist.
 – STATUS_UPDATE: Wenn action nicht leer ist oder src_ip/hostname nicht leer sind.
 – USER_UNCATEGORIZED: Wenn has_user wahr ist.
GENERIC_EVENT: Wenn keine dieser Bedingungen erfüllt ist.
read_only_udm.metadata.product_name Hartcodiert auf Procurve
read_only_udm.metadata.vendor_name Hartcodiert auf HP
read_only_udm.extensions.auth.type Wird auf MACHINE gesetzt, wenn event_type gleich USER_LOGOUT oder USER_LOGIN ist.

Änderungen

2024-03-04

Optimierung:

  • Ein Grok-Muster zum Parsen von nicht geparsten Protokollen wurde hinzugefügt.
  • Wenn severity gleich DHCP ist, wird DHCP mit network.application_protocol verknüpft.
  • severity wurde security_result.severity_details zugeordnet.
  • prin_port wurde principal.port zugeordnet.
  • pid wurde principal.process.pid zugeordnet.
  • descript wurde metadata.description zugeordnet.
  • inter_ip wurde intermediary.ip zugeordnet.
  • remote_ip_address wurde principal.ip zugeordnet.
  • username wurde principal.user.userid zugeordnet.
  • status, config_method, event_id und notice_type wurden additional.fields zugeordnet.

2023-09-24

Optimierung:

  • Es wurde ein Grok-Muster hinzugefügt, um nicht geparste Protokolle zu analysieren.
  • target_mac wurde target.mac zugeordnet.
  • msg wurde metadata.description zugeordnet.
  • src_mac wurde principal.mac zugeordnet.
  • severity wurde security_result.severity zugeordnet.

2023-07-24

Optimierung:

  • Grok-Muster zum Parsen und Zuordnen nicht geparster Protokolle hinzugefügt.

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