Dell-Switch-Protokolle erfassen
Dieser Parser extrahiert Dell-Switch-Logs, normalisiert Zeitstempel und verwendet Grok-Muster, um die Lognachricht in Schlüssel/Wert-Paare zu strukturieren. Diese extrahierten Felder werden dann dem einheitlichen Datenmodell (Unified Data Model, UDM) zugeordnet. Dabei werden verschiedene Protokollformate verarbeitet und die Daten mit Kontextinformationen wie Asset-Details und Sicherheitsstufe angereichert.
Hinweis
- Sie benötigen eine Google Security Operations-Instanz.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Sie benötigen eine aktive Verbindung und Administratoranmeldedaten für einen Dell-Switch.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- 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
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die 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 er Syslog-Protokolle aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Unter Linux befindet es sich normalerweise im Verzeichnis/etc/bindplane-agent/
, 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 Kundennummer.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.
BindPlane-Agent neu starten, um die Änderungen anzuwenden
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-Agenten entweder über die Konsole Dienste oder über den folgenden Befehl neu starten:
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: Legen Sie den Mindestschweregrad für Nachrichten fest, die an den Syslog-Server gesendet werden sollen. So loggen Sie beispielsweise nur Informationsmeldungen und höher:
logging level informational
Speichern Sie die laufende Konfiguration in der Startkonfiguration, damit die Änderungen auch nach einem Neustart erhalten bleiben:
copy running-config startup-config
Speichern Sie die Konfiguration:
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 Haupt- und des Assets verwendet, wenn es sich um eine gültige IP-Adresse handelt, die sich vom Hostnamen unterscheidet. |
application |
principal.application |
Direkt zugeordnet. |
asset |
principal.asset.attribute.labels.value |
Wird direkt dem Asset-Label-Wert zugeordnet. Der Schlüssel ist als „Asset-Name“ hartcodiert. 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 |
Wird aus verschiedenen Formaten im Nachrichtenfeld geparst und in einen Zeitstempel umgewandelt. |
dest_ip |
target.asset.ip , target.ip |
Zugewiesene IP-Adresse des Ziels und des Ziel-Assets. |
enterpriseId |
principal.resource.attribute.labels.value |
Zugewiesen zu einem Label mit dem Schlüssel enterpriseId in principal.resource.attribute.labels . |
exe |
sec_result.detection_fields.value |
Zugewiesen zu einem Erkennungsfeld mit dem Schlüssel exe . |
File |
target.file.full_path |
Direkt zugeordnet. |
grantors |
principal.resource.attribute.labels.value |
Zugewiesen zu einem Label mit dem Schlüssel grantors in principal.resource.attribute.labels . |
host |
principal.hostname , principal.asset.hostname , metadata.event_type |
Wird als Haupt- und Asset-Hostname verwendet. Wenn host vorhanden ist, wird metadata.event_type auf STATUS_UPDATE gesetzt. Wenn der Hostname vorhanden ist, der Host aber nicht, wird der Hostname als Host verwendet. |
hostname |
principal.asset.ip , principal.ip , host |
Wenn es sich um eine gültige IP-Adresse handelt, wird sie für die Haupt-IP-Adresse und die Asset-IP-Adresse verwendet. Wenn host leer ist, wird es als host verwendet. |
ID |
principal.resource.attribute.labels.value |
Zugewiesen zu einem Label mit dem Schlüssel ID in principal.resource.attribute.labels . |
ip |
principal.asset.ip , principal.ip |
Zugewiesene Haupt-IP und Asset-IP. |
is_synced |
sec_result.detection_fields.value |
Zugewiesen zu einem Erkennungsfeld mit dem Schlüssel is_synced . |
local |
target.asset.ip , target.ip , target.port |
Wird geparst, um die lokale IP-Adresse und den lokalen Port zu extrahieren, und der Ziel-IP-Adresse, der Ziel-Asset-IP-Adresse und dem Zielport zugeordnet. |
local_ip |
target.asset.ip , target.ip |
Wird aus dem Feld local extrahiert und der Ziel-IP-Adresse und der Ziel-Asset-IP-Adresse zugeordnet. |
local_port |
target.port |
Aus dem Feld local extrahiert und dem Zielanschluss zugeordnet. |
mac |
principal.mac |
Wenn es sich um eine gültige MAC-Adresse handelt, wird sie der Haupt-MAC-Adresse zugeordnet. |
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 der String „für Nutzer geöffnet“ enthält, wird der Ereignistyp auf USER_LOGIN und der Authentifizierungstyp auf MACHINE festgelegt. Wenn der Status „Für Nutzer geschlossen“ lautet, wird als Ereignistyp USER_LOGOUT und als Autorisierungstyp MACHINE festgelegt. |
op |
metadata.product_event_type |
Wird als Produktereignistyp verwendet, sofern vorhanden. |
pid |
principal.process.pid |
Direkt zugeordnet. |
port |
principal.port |
Direkt zugeordnet. |
prod_event_type |
metadata.product_event_type |
Wird als Produktereignistyp verwendet, sofern 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 geparst und als Beschreibung des Sicherheitsergebnisses verwendet. |
Server_ID |
target.resource.product_object_id |
Direkt zugeordnet. |
server |
principal.asset.ip , principal.ip , principal.port |
Wird geparst, um die Server-IP und den Server-Port zu extrahieren, und der Haupt-IP, der Haupt-Asset-IP und dem Haupt-Port zugeordnet. |
server_ip |
principal.asset.ip , principal.ip |
Wird aus dem Feld server extrahiert und der primären IP-Adresse und der primären Asset-IP-Adresse zugeordnet. |
server_port |
principal.port |
Wird aus dem Feld server extrahiert und dem Hauptanschluss 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 |
Zugewiesen zu einem Label mit dem Schlüssel subj in principal.resource.attribute.labels . |
swVersion |
software.version |
Direkt zugeordnet. |
target_host |
target.hostname , target.asset.hostname |
Direkt dem Ziel-Hostnamen und dem Ziel-Asset-Hostnamen zugeordnet. |
target_ip |
target.asset.ip , target.ip |
Direkt der Ziel-IP und der Ziel-Asset-IP zugeordnet. |
target_url |
target.url |
Direkt zugeordnet. |
target_user_id |
target.user.userid |
Direkt zugeordnet. |
terminal |
principal.resource.attribute.labels.value |
Zugewiesen zu einem Label mit dem Schlüssel terminal in principal.resource.attribute.labels . |
tzknown |
sec_result.detection_fields.value |
Zugewiesen zu einem Erkennungsfeld mit dem Schlüssel tzknown . |
uid |
principal.resource.attribute.labels.value |
Zugewiesen zu einem Label mit dem Schlüssel uid in principal.resource.attribute.labels . |
user |
principal.user.userid , metadata.event_type |
Wird als Hauptnutzer-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 |
„Dell“ ist hartcodiert. |
– | metadata.product_name |
Hartcodiert auf „Dell Switch“. |
– | extensions.auth.type |
Legen Sie für bestimmte Anmelde-/Abmeldeereignisse den Wert MACHINE fest. |
– | metadata.event_type |
Wird anhand einer komplexen Logik basierend auf verschiedenen Feldern und Bedingungen ermittelt. Standardmäßig ist GENERIC_EVENT festgelegt, sofern nichts anderes festgelegt ist. Kann USER_LOGIN , USER_LOGOUT , USER_UNCATEGORIZED , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE oder GENERIC_EVENT sein. |
Änderungen
2024-04-25
- Es wurden Grok-Muster hinzugefügt, um einen neuen Protokolltyp zu parsen.
op
wurdemetadata.product_event_type
zugeordnet.mac
wurdeprincipal.mac
zugeordnet.addr
wurdeprincipal.ip
zugeordnet.hostname
wurdeprincipal.ip
zugeordnet.server_ip
wurdeprincipal.ip
zugeordnet.server_port
wurdeprincipal.port
zugeordnet.acct
wurdeprincipal.user.userid
zugeordnet.target_ip
wurdetarget.ip
zugeordnet.local_ip
wurdetarget.ip
zugeordnet.local_port
wurdetarget.port
zugeordnet.File
wurdetarget.file.full_path
zugeordnet.target_host
wurdetarget.hostname
zugeordnet.target_user_id
wurdetarget.user.userid
zugeordnet.Server_ID
wurdetarget.resource.product_object_id
zugeordnet.tzknown
,is_synced
undexe
wurdensecurity_result.detection_fields
zugeordnet.res
wurdesecurity_result.summary
zugeordnet.- Wenn der Wert des Felds
res
„“ ist, wirdstatus
mitsecurity_result.summary
abgeglichen. uid
,enterpriseId
,auid
,terminal
,subj
,grantors
undID
wurdenprincipal.resource.attribute.labels
zugeordnet.
2024-04-04
- Grok-Muster zum Parsen eines neuen Protokolltyps hinzugefügt
prod_event_type
wurdemetadata.product_event_type
zugeordnet.ip
wurdeprincipal.ip
zugeordnet.dest_ip
wurdetarget.ip
zugeordnet.target_url
wurdetarget.url
zugeordnet.sec_description
wurdesecurity_result.description
zugeordnet.action_details
wurdesecurity_result.action_details
zugeordnet.
2024-01-04
- Grok-Muster für neu aufgenommene Protokolle wurden hinzugefügt.
- Datumsblock hinzugefügt, wenn
datetime
im FormatSYSLOGTIMESTAMP
ist. softwareName
wurdeprincipal.asset.software.name
zugeordnet.swVersion
wurdeprincipal.asset.software.version
zugeordnet.port
wurdeprincipal_port
zugeordnet.user
wurde aufprincipal.user.userid
undmetadata.event_type
aufUSER_UNCATEGORIZED
festgelegt, wennuser
vorhanden ist.application
wurdeprincipal.application
zugeordnet.ip
wurdeprincipal.ip
zugeordnet.- Legen Sie
sec_result.severity
aufINFORMATIONAL
fest, wennseverity
IFMGR-5-OSTATE_DN
ist. msg
wurdemetadata.description
zugeordnet.
2023-11-02
- Neu erstellter Parser.