Dell-Switch-Protokolle erfassen
Dieser Parser extrahiert Dell-Switch-Logs, normalisiert Zeitstempel und verwendet Grok-Muster, um die Logmeldung in Schlüssel/Wert-Paare zu strukturieren. Anschließend werden diese extrahierten Felder dem einheitlichen Datenmodell (Unified Data Model, UDM) zugeordnet. Dabei werden verschiedene Logformate verarbeitet und die Daten mit Kontextinformationen wie Asset-Details und Sicherheitsrisiko angereichert.
Hinweise
- Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
- Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
- Stellen Sie sicher, dass Sie eine aktive Verbindung und Administratoranmeldedaten für einen Dell-Switch haben.
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 der BindPlane-Agent 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
Windows-Installation
- Ö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 in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden
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: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: sell_switch raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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 unter Linux den folgenden Befehl aus, um den Bindplane-Agent neu zu starten:
sudo systemctl restart bindplane-agent
Unter Windows können Sie den Bindplane-Agent entweder über die Konsole Dienste neu starten oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog-Export von einem Dell-Switch konfigurieren
- Stellen Sie über SSH oder den Konsolenport eine Verbindung zum Dell-Switch her.
- Melden Sie sich mit Administratoranmeldedaten an.
Verwenden Sie den folgenden Befehl, um die IP-Adresse oder den Hostnamen des Syslog-Servers anzugeben (ersetzen Sie
<syslog_server_ip>
,<udp|tcp>
und<syslog-port-number>
durch die tatsächlichen Details):logging host <syslog-server-ip> transport <udp|tcp> port <syslog-port-number>
Optional: Definieren Sie den Mindestschweregrad für Nachrichten, die an den Syslog-Server gesendet werden sollen. So protokollieren Sie beispielsweise Informationsmeldungen und höher:
logging level informational
Speichern Sie die aktuelle Konfiguration in der Startkonfiguration, damit die Änderungen auch nach Neustarts erhalten bleiben:
copy running-config startup-config
Konfiguration speichern:
write memory
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
acct |
principal.user.userid |
Wird als userid verwendet, wenn das Feld user nicht vorhanden ist. |
addr |
principal.asset.ip , principal.ip |
Wird als IP-Adresse geparst und für die IP-Adresse des Rechtssubjekts und die Asset-IP-Adresse verwendet, wenn es sich um eine gültige IP-Adresse handelt und sie sich vom Hostnamen unterscheidet. |
application |
principal.application |
Direkt zugeordnet. |
asset |
principal.asset.attribute.labels.value |
Direkt dem Wert des Asset-Labels zugeordnet, wobei der Schlüssel als „Asset Name“ (Asset-Name) hartcodiert ist. Wenn das Asset-Feld leer ist und die Nachricht „Dell“ enthält, wird das Asset auf „Dell“ gesetzt. |
auid |
principal.resource.attribute.labels.value |
Direkt einem Label mit dem Schlüssel auid in principal.resource.attribute.labels zugeordnet. |
datetime |
metadata.event_timestamp |
Aus verschiedenen Formaten im Nachrichtenfeld geparst und in einen Zeitstempel konvertiert. |
dest_ip |
target.asset.ip , target.ip |
Wird der Ziel-IP-Adresse und der IP-Adresse des Ziel-Assets zugeordnet. |
enterpriseId |
principal.resource.attribute.labels.value |
Dem Label mit dem Schlüssel enterpriseId in principal.resource.attribute.labels zugeordnet. |
exe |
sec_result.detection_fields.value |
Zugeordnet zu einem Erkennungsfeld mit dem Schlüssel exe . |
File |
target.file.full_path |
Direkt zugeordnet. |
grantors |
principal.resource.attribute.labels.value |
Dem Label mit dem Schlüssel grantors in principal.resource.attribute.labels zugeordnet. |
host |
principal.hostname , principal.asset.hostname , metadata.event_type |
Wird als primärer Hostname und Asset-Hostname verwendet. Wenn host vorhanden ist, wird metadata.event_type auf STATUS_UPDATE gesetzt. Wenn der Hostname, aber nicht der Host vorhanden ist, wird der Hostname als Host verwendet. |
hostname |
principal.asset.ip , principal.ip , host |
Wenn es sich um eine gültige IP-Adresse handelt, die für die Haupt-IP-Adresse und die Asset-IP-Adresse verwendet wird. Wenn host leer ist, wird es als host verwendet. |
ID |
principal.resource.attribute.labels.value |
Dem Label mit dem Schlüssel ID in principal.resource.attribute.labels zugeordnet. |
ip |
principal.asset.ip , principal.ip |
Der Haupt-IP-Adresse und der Asset-IP-Adresse zugeordnet. |
is_synced |
sec_result.detection_fields.value |
Zugeordnet zu einem Erkennungsfeld mit dem Schlüssel is_synced . |
local |
target.asset.ip , target.ip , target.port |
Geparsed, um lokale IP-Adresse und lokalen Port zu extrahieren, die der Ziel-IP-Adresse, der IP-Adresse des Zielassets und dem Zielport zugeordnet werden. |
local_ip |
target.asset.ip , target.ip |
Aus dem Feld local extrahiert und der Ziel-IP und der Ziel-Asset-IP zugeordnet. |
local_port |
target.port |
Aus dem Feld local extrahiert und dem Zielport zugeordnet. |
mac |
principal.mac |
Wenn es sich um eine gültige MAC-Adresse handelt, die der primären MAC-Adresse zugeordnet ist. |
msg |
metadata.description |
Wird als Ereignisbeschreibung verwendet, sofern vorhanden. Es werden auch zusätzliche Felder geparst. |
msg1 |
metadata.description |
Wird als Ereignisbeschreibung verwendet, wenn msg2 nicht vorhanden ist. |
msg2 |
sec_result.description , metadata.event_type , extensions.auth.type |
Wird als Beschreibung des Sicherheitsergebnisses verwendet. Wenn sie „opened for user“ enthält, wird der Ereignistyp auf USER_LOGIN und der Autorisierungstyp auf MACHINE festgelegt. Wenn sie „closed for user“ enthält, wird der Ereignistyp auf USER_LOGOUT und der Autorisierungstyp auf MACHINE festgelegt. |
op |
metadata.product_event_type |
Wird als Produktereignistyp verwendet, falls vorhanden. |
pid |
principal.process.pid |
Direkt zugeordnet. |
port |
principal.port |
Direkt zugeordnet. |
prod_event_type |
metadata.product_event_type |
Wird als Produktereignistyp verwendet, falls vorhanden. |
res |
sec_result.summary |
Direkt zugeordnet. |
sec_description |
sec_result.description , target.url , target.ip , target.asset.ip , sec_result.action_details |
Wird nach Ziel-URL, IP-Adresse und Aktionsdetails durchsucht und als Beschreibung des Sicherheitsergebnisses verwendet. |
Server_ID |
target.resource.product_object_id |
Direkt zugeordnet. |
server |
principal.asset.ip , principal.ip , principal.port |
Geparsed, um Server-IP und -Port zu extrahieren, die der Prinzipal-IP, der Prinzipal-Asset-IP und dem Prinzipal-Port zugeordnet werden. |
server_ip |
principal.asset.ip , principal.ip |
Aus dem Feld server extrahiert und der Haupt-IP-Adresse und der Haupt-Asset-IP-Adresse zugeordnet. |
server_port |
principal.port |
Aus dem Feld server extrahiert und dem Hauptport zugeordnet. |
ses |
network.session_id |
Direkt zugeordnet. |
severity |
sec_result.severity , metadata.product_event_type |
Wird verwendet, um den Schweregrad des Sicherheitsergebnisses und den Produktereignistyp anhand bestimmter Werte zu bestimmen. |
software |
principal.asset.software |
Direkt zugeordnet. |
softwareName |
software.name |
Direkt zugeordnet. |
Status |
sec_result.summary |
Wird als Zusammenfassung des Sicherheitsergebnisses verwendet, wenn res nicht vorhanden ist. |
subj |
principal.resource.attribute.labels.value |
Dem Label mit dem Schlüssel subj in principal.resource.attribute.labels zugeordnet. |
swVersion |
software.version |
Direkt zugeordnet. |
target_host |
target.hostname , target.asset.hostname |
Direkt dem Ziel-Hostname und dem Ziel-Asset-Hostname zugeordnet. |
target_ip |
target.asset.ip , target.ip |
Direkt der Ziel-IP und der IP des Ziel-Assets zugeordnet. |
target_url |
target.url |
Direkt zugeordnet. |
target_user_id |
target.user.userid |
Direkt zugeordnet. |
terminal |
principal.resource.attribute.labels.value |
Dem Label mit dem Schlüssel terminal in principal.resource.attribute.labels zugeordnet. |
tzknown |
sec_result.detection_fields.value |
Zugeordnet zu einem Erkennungsfeld mit dem Schlüssel tzknown . |
uid |
principal.resource.attribute.labels.value |
Dem Label mit dem Schlüssel uid in principal.resource.attribute.labels zugeordnet. |
user |
principal.user.userid , metadata.event_type |
Wird als primäre Nutzer-ID verwendet. Wenn user vorhanden ist, wird metadata.event_type auf USER_UNCATEGORIZED gesetzt. |
username |
target.user.userid |
Direkt der Zielnutzer-ID zugeordnet. |
– | metadata.vendor_name |
Fest codiert auf „Dell“. |
– | metadata.product_name |
Fest codiert auf „Dell Switch“. |
– | extensions.auth.type |
Auf MACHINE für bestimmte An- und Abmeldeereignisse festlegen. |
– | metadata.event_type |
Wird durch eine komplexe Logik auf Grundlage verschiedener Felder und Bedingungen bestimmt. Standardmäßig wird GENERIC_EVENT verwendet, sofern nichts anderes festgelegt ist. Kann USER_LOGIN , USER_LOGOUT , USER_UNCATEGORIZED , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE oder GENERIC_EVENT sein. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten