HP ProCurve-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie die HP ProCurve-Switch-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parsercode versucht zuerst, die Roh-Logmeldung als JSON zu parsen. Wenn das fehlschlägt, werden reguläre Ausdrücke (grok
-Muster) verwendet, um Felder aus der Nachricht basierend auf gängigen HP ProCurve-Logformaten zu extrahieren.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- 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.
- Privilegierter Zugriff auf einen HP ProCurve-Switch
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Fenstereinbau
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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 im Installationsleitfaden.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
Greifen Sie auf die Konfigurationsdatei zu:
- 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).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kunden-ID.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.
Bindplane-Agent neu starten, 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-Agent 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 auf HP ProCurve-Switch konfigurieren
- Melden Sie sich über SSH am HP Procurve-Switch an.
Prüfen Sie die Switch-Schnittstelle mit dem folgenden Befehl:
show ip int br
Aktivieren Sie den Konfigurationsmodus auf dem Switch mit dem folgenden Befehl:
console# conf t
Konfigurieren Sie den Switch so, dass er Logs sendet, indem Sie die folgenden Befehle verwenden:
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>
Ersetzen Sie
<bindplae-server-ip>
und<port-number>
durch die Bindplane-IP-Adresse und die Portnummer.Ersetzen Sie
<udp/tcp>
, indem Sie nur UDP oder TCP als Kommunikationsprotokoll auswählen (je nach Konfiguration des Bindplane-Agents).Ersetzen Sie
<interface>
durch die Schnittstellen-ID, die Sie zuvor vom Switch erhalten haben (z. B.Ethernet1/1
).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 |
Der Befehl lautet | 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 Log vorhanden ist, wird es als config_method in die zusätzlichen Felder eingefügt. |
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 Log vorhanden ist, wird es dem Hostnamen des Hauptkontos und dem Hostnamen des Assets zugeordnet. |
Ereignis-ID | read_only_udm.additional.fields.value.string_value | Wenn das Feld im Log vorhanden ist, wird es als event_id in die zusätzlichen Felder eingefügt. |
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 aus dem Feld desc extrahiert und der Ziel-IP-Adresse und der IP-Adresse des Ziel-Assets zugeordnet |
IPAddr | read_only_udm.target.ip, read_only_udm.target.asset.ip | Wenn das Feld im Log vorhanden ist, wird es der Ziel-IP und der IP des Zielassets zugeordnet. |
Art der Mitteilung | read_only_udm.additional.fields.value.string_value | Wenn das Feld im Log vorhanden ist, wird es als notice_type in die zusätzlichen Felder eingefügt. |
Port-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 Log vorhanden ist, wird es als remote_ip_address in die zusätzlichen Felder eingefügt. |
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 Log vorhanden ist, wird es der Hauptnutzer-ID zugeordnet. |
Nutzername | read_only_udm.principal.user.userid | Wenn das Feld im Log vorhanden ist, wird es der Hauptnutzer-ID zugeordnet. |
Nutzername | read_only_udm.principal.user.userid | Wenn das Feld im Log 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 | Sekunden des Ereignis-Zeitstempels |
Daten | Dieses Feld enthält die Roh-Log-Nachricht, die zum Extrahieren anderer Felder geparst wird. Sie ist nicht dem UDM zugeordnet. | |
Ab | read_only_udm.security_result.description | Beschreibung aus der Lognachricht |
descrip | Beschreibung, die aus dem Feld desc extrahiert und weiter nach Schlüssel/Wert-Paaren geparst wurde. Sie ist nicht dem UDM zugeordnet. |
|
description | read_only_udm.security_result.description | Wenn das Feld im Log vorhanden ist, wird es der Beschreibung des Sicherheitsergebnisses zugeordnet. |
Descript | read_only_udm.metadata.description | Wenn das Feld im Log vorhanden ist, wird es der Metadatenbeschreibung zugeordnet. |
event_id | read_only_udm.additional.fields.value.string_value | Wenn das Feld im Log vorhanden ist, wird es als event_id in die zusätzlichen Felder eingefügt. |
eventId | read_only_udm.metadata.product_event_type | Aus der Log-Nachricht extrahierte Ereignis-ID |
Hostname | read_only_udm.principal.hostname, read_only_udm.principal.asset.hostname | Hostname, der aus der Log-Nachricht extrahiert und dem Prinzipal-Hostname und dem Asset-Hostname zugeordnet wird |
inter_ip | read_only_udm.additional.fields.value.string_value, read_only_udm.intermediary.ip | Wenn das Feld im Log vorhanden und eine gültige IP-Adresse ist, wird es der Zwischen-IP-Adresse zugeordnet. Andernfalls wird sie als inter_ip in den zusätzlichen Feldern platziert. |
notice_type | read_only_udm.additional.fields.value.string_value | Wenn das Feld im Log vorhanden ist, wird es als notice_type in die zusätzlichen Felder eingefügt. |
pid | read_only_udm.principal.process.pid | Wenn das Feld im Log vorhanden ist, wird es der PID des Hauptprozesses zugeordnet. |
Programm | Programminformationen, die aus der Log-Nachricht extrahiert und weiter analysiert werden, um Modul, Schweregrad und Aktion zu extrahieren. Sie ist nicht dem UDM zugeordnet. | |
Proto | read_only_udm.network.application_protocol, read_only_udm.additional.fields.value.string_value | Aus der Log-Nachricht extrahiertes Protokoll. Wenn es mit bekannten Protokollen übereinstimmt, wird es dem Anwendungsprotokoll zugeordnet. Andernfalls wird sie als Application Protocol in den zusätzlichen Feldern platziert. |
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 und eine gültige IP-Adresse ist, wird es der Haupt-IP und der Haupt-Asset-IP zugeordnet. Andernfalls wird sie als remote_ip_address in den zusätzlichen Feldern platziert. |
die Ausprägung | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | Schweregrad, der aus dem Feld program extrahiert wurde, nachdem er nach / aufgeteilt wurde. Sie werden UDM-Schweregraden zugeordnet und auch als Rohdaten für Schweregrad gespeichert. |
src_ip | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Die Quell-IP-Adresse wird aus der Log-Nachricht extrahiert und der Haupt-IP-Adresse und der Haupt-Asset-IP-Adresse zugeordnet. |
Status | read_only_udm.additional.fields.value.string_value | Wenn das Feld im Log vorhanden ist, wird es als status in die zusätzlichen Felder eingefügt. |
targetHostname | read_only_udm.target.hostname, read_only_udm.target.asset.ip | Wenn das Feld im Log vorhanden ist, wird es dem Zielhostnamen und der Ziel-Asset-IP zugeordnet. |
target_ip | read_only_udm.target.ip, read_only_udm.target.asset.ip | Ziel-IP aus der Log-Nachricht extrahiert und der Ziel-IP und der Ziel-Asset-IP zugeordnet |
timestamp | read_only_udm.metadata.event_timestamp.seconds | Zeitstempel, der aus der Log-Nachricht extrahiert und in einen Ereigniszeitstempel konvertiert wurde |
timestamp.seconds | read_only_udm.metadata.event_timestamp.seconds | Sekunden des Ereignis-Zeitstempels |
Nutzername | read_only_udm.principal.user.userid | Wenn das Feld im Log vorhanden ist, wird es der Hauptnutzer-ID zugeordnet. |
read_only_udm.metadata.event_type | Wird anhand einer Kombination aus Feldern und Logik bestimmt: – NETWORK_CONNECTION , wenn has_principal und has_target „true“ 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 „true“ ist. – GENERIC_EVENT : wenn keine dieser Bedingungen erfüllt ist. |
|
read_only_udm.metadata.product_name | Fest codiert auf Procurve |
|
read_only_udm.metadata.vendor_name | Fest codiert auf HP |
|
read_only_udm.extensions.auth.type | Wird auf MACHINE gesetzt, wenn event_type gleich USER_LOGOUT oder USER_LOGIN ist. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten