BlueCat-DDI-Protokolle erfassen
Dieser Parser verarbeitet sowohl LEEF- als auch nicht LEEF-formatierte Syslog-Nachrichten von Bluecat DDI (DNS, DHCP, IPAM). Es werden Felder aus verschiedenen Protokolltypen (z. B. named, dhcpd, audit und CRON) mithilfe von Grok-Mustern und bedingter Logik extrahiert, basierend auf dem Protokolltyp dem UDM zugeordnet und DNS-, DHCP- oder nutzerbezogene Felder entsprechend ausgefüllt.
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 Lese- und Schreibzugriff auf Bluecat.
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.
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
- Führen Sie für die Windows-Installation das folgende Script aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Führen Sie für die Linux-Installation das folgende Script aus:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
BindPlane-Agent so konfigurieren, dass er Syslog-Protokolle aufnimmt und an Google SecOps sendet
- Rufen Sie den Computer auf, auf dem BindPlane installiert ist.
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: bluceat_ddi raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Starten Sie den BindPlane-Agent neu, um die Änderungen anzuwenden:
sudo systemctl restart bindplane
Syslog in Bluecat DDI konfigurieren
- Melden Sie sich im Bluecat Address Manager (BAM) an.
- Wählen Sie im Menü Konfiguration eine Konfiguration aus.
- Wählen Sie den Tab Server aus.
- Klicken Sie unter Server auf den Namen eines BDDS.
- Der Tab Details für den Server sollte geöffnet werden.
- Klicken Sie auf das Menü Servername.
- Wählen Sie Dienstkonfiguration aus.
- Klicken Sie auf Diensttyp > Syslog. Der Adressmanager fragt den Server ab und gibt die aktuellen Werte zurück.
- Legen Sie unter Allgemein die folgenden Werte fest:
- Syslog-Server: Die IP-Adresse Ihres Syslog-Servers (Bindebene).
- Syslog-Port: Der Port Ihres Syslog-Servers (BindPlane).
- Syslog-Transport: Wählen Sie je nach Bindplane-Konfiguration entweder TCP oder UDP aus.
- Klicken Sie auf Hinzufügen.
- Der neu hinzugefügte syslog-Server wird in der Liste angezeigt.
- Klicken Sie auf Aktualisieren.
Syslog-Einstellungen in BlueCat DDI konfigurieren
- Melden Sie sich im BlueCat Address Manager an.
- Gehen Sie zu Konfiguration > Systemeinstellungen > Protokollierung.
- Suchen Sie in den Einstellungen für die Protokollierung den Abschnitt Syslog-Server.
- Klicken Sie auf Syslog-Server hinzufügen.
- Geben Sie die erforderlichen Werte an:
- Servername: Ein eindeutiger Name für den syslog-Server (z. B. BindplaneServer).
- IP-Adresse: Die IP-Adresse oder der Hostname des syslog-Servers.
- Protokoll: Wählen Sie TCP, UDP (Standard) oder TLS (je nach syslog-Konfiguration) aus.
- Port: Geben Sie den Port für die syslog-Kommunikation an (Standard: 514 für UDP/TCP, 6514 für TLS).
- Konfigurieren Sie die Protokollierungsebene. Wählen Sie je nach Bedarf die passende Stufe aus. Folgende Optionen sind verfügbar:
- Notfall: Kritische Probleme, die sofort behoben werden müssen
- Warnung: Warnungen, die sofortige Maßnahmen erfordern
- Kritisch: kritische Bedingungen
- Fehler: Fehlerereignisse
- Warnung: Ereignisse vom Typ „Warnung“
- Hinweis: Normale, aber signifikante Ereignisse
- Info: Mitteilungen
- Debug: Detaillierte Informationen zur Fehlerbehebung
- Optional: Fügen Sie eine benutzerdefinierte Syslog-Einrichtung hinzu, um Protokolle zu kategorisieren (z. B. local0 oder local1).
- Speichern Sie die Konfiguration.
Syslog-Einstellungen auf DDI-Appliances anwenden
- Klicken Sie auf Server > Server verwalten.
- Wählen Sie die DNS-/DHCP-Server aus, auf denen das syslog aktiviert werden soll.
- Klicken Sie auf Server bearbeiten.
- Im Bereich Logging:
- Wählen Sie den zuvor konfigurierten syslog-Server aus.
- Aktivieren Sie das Logging für bestimmte Dienste, z. B. DNS-Abfragen oder DHCP-Leases.
- Speichern Sie die Änderungen.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
client_ip |
network.dhcp.ciaddr |
Wird aus der DHCPREQUEST-Nachricht extrahiert. Wird nur für DHCPREQUEST-Nachrichten ausgefüllt. |
client_mac |
principal.mac |
Aus DHCP-Nachrichten (DHCPDISCOVER, DHCPREQUEST, DHCPRELEASE) extrahiert. |
client_mac |
target.mac |
Aus DHCP-Nachrichten (DHCPOFFER, DHCPNAK) extrahiert. |
client_mac |
network.dhcp.chaddr |
Aus DHCP-Nachrichten extrahiert (DHCPREQUEST, DHCPOFFER, DHCPACK, DHCPNAK, DHCPRELEASE). |
cmd |
target.process.command_line |
Aus CRON-Protokollen extrahiert. Und-Zeichen und Leerzeichen werden entfernt. |
description |
metadata.description |
Aus verschiedenen Protokolltypen extrahiert, um zusätzlichen Kontext zu bieten. |
description |
metadata.description |
Aus syslog-ng-Protokollen extrahiert, um zusätzlichen Kontext bereitzustellen. |
file_path |
target.file.full_path |
Aus verschiedenen Protokolltypen extrahiert, stellt den vollständigen Pfad zu einer Datei dar. |
file_path |
target.process.file.full_path |
Aus agetty-Protokollen extrahiert, der vollständige Pfad zu einer Datei, die sich auf einen Prozess bezieht. |
inner_message |
metadata.description |
Wird als Beschreibung für GENERIC_EVENTs verwendet, wenn der Vorgangstyp nicht definiert ist, und für MEM-MON-Protokolle. |
metadata.event_type |
Wird vom Parser basierend auf dem Protokolltyp und dem Inhalt bestimmt. Mögliche Werte: NETWORK_DNS, NETWORK_DHCP, USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE, NETWORK_CONNECTION. Immer „BLUECAT_DDI“. | |
metadata.vendor_name |
Immer „Bluecat Networks“. | |
metadata.product_name |
Immer „Bluecat DDI“. | |
metadata.event_timestamp |
Kopiert aus dem geparsten Zeitstempel des Logeintrags. | |
network.protocol |
Legen Sie „DNS“ für DNS-Protokolle und „DHCP“ für DHCP-Protokolle fest. | |
network.dns.answers |
Ein Array mit Antworteinträgen. Das Feld data in answers wird mit target_ip ausgefüllt, sofern vorhanden. |
|
network.dns.questions |
Ein Array mit Frageneinträgen. Das Feld name wird mit dem target_host ausgefüllt, das Feld type wird aus den Feldern query_type oder question_type abgeleitet und das Feld class wird aus dem Feld qclass abgeleitet. |
|
network.dns.recursive |
Wird auf „true“ gesetzt, wenn rec_flag „+“ ist. |
|
qclass |
network.dns.questions.class |
Aus DNS-Abfrageprotokollen extrahiert und mithilfe der Datei dns_query_class_mapping.include einem Ganzzahlwert zugeordnet. |
query_type |
network.dns.questions.type |
Aus DNS-Abfrageprotokollen extrahiert und mithilfe der Datei dhcp_qtype_mapping.include einem Ganzzahlwert zugeordnet. |
relay_ip |
intermediary.ip |
Aus DNS- und DHCP-Protokollen extrahiert, entspricht der IP-Adresse eines Relay- oder Zwischenservers. |
server_host |
target.hostname |
Aus verschiedenen Protokolltypen extrahiert, entspricht dem Hostnamen des Servers. |
server_host |
network.dhcp.sname |
Aus DHCP-Protokollen extrahiert, entspricht dem Server-Hostnamen. |
server_host |
principal.hostname |
Aus systemd, agetty und einigen Audit-Logs extrahiert, entspricht dem Hostnamen des Hauptkontos. |
server_ip |
target.ip |
Aus LEEF-formatierten Protokollen extrahiert, entspricht der IP-Adresse des Servers. |
src_ip |
principal.ip |
Aus verschiedenen Protokolltypen extrahiert, entspricht der Quell-IP-Adresse. |
src_ip |
network.dhcp.yiaddr |
Wird in DHCPINFORM-Nachrichten verwendet, um das yiaddr-Feld auszufüllen. |
src_port |
principal.port |
Aus verschiedenen Protokolltypen extrahiert, die den Quellport darstellen. |
src_user |
principal.user.userid |
Aus CRON- und Audit-Logs extrahiert, entspricht der Nutzer-ID. |
target_host |
target.hostname |
Aus verschiedenen Protokolltypen extrahiert, die den Ziel-Hostnamen darstellen. |
target_host |
network.dns.questions.name |
Wird in DNS-Logs verwendet, um den Namen der Anfrage einzugeben. |
target_ip |
target.ip |
Aus verschiedenen Protokolltypen extrahiert, die die Ziel-IP-Adresse darstellen. |
target_ip |
network.dhcp.ciaddr |
Wird in BOOTREQUEST-Nachrichten verwendet, um das Feld „ciaddr“ auszufüllen. |
target_ip |
network.dns.answers.data |
Wird in DNS-Protokollen verwendet, um die Antwortdaten zu füllen. |
tgt_port |
target.port |
Aus syslog-ng-Protokollen extrahiert, entspricht dem Zielport. |
Änderungen
2022-11-08
- Grok-Regel für neu aufgenommene Protokolle mit dem Log-Typ „agetty“, „syslog-ng“ und „systemd“ hinzugefügt.
- Grok-Muster für „log_type“ hinzugefügt: „named“, „systemd“, „CRON“, „agetty“, „syslog-ng“ und die entsprechenden Zuordnungen für die Felder im oben genannten „log_type“.
2022-09-01
event_type
wurde von „GENERIC_EVENT“ in „USER_UNCATEGORIZED“ geändert, um den Prozentsatz der allgemeinen Ereignisse zu reduzieren.
2022-08-16
- UDM-Zuordnung hinzugefügt
metadata.vendor_name
zu „Bluecat Networks“metadata.product_name
zu „Bluecat DDI“
2022-05-05
- Es wurden Prüfungen für das Feld
query_type
hinzugefügt.