Brocade ServerIron-Protokolle erfassen
Dieser Parser extrahiert Felder aus Brocade ServerIron-Syslog-Nachrichten mithilfe von regulären Ausdrücken und ordnet sie dem Unified Data Model (UDM) zu. Er unterstützt verschiedene Protokollformate, einschließlich Netzwerkstatus, Nutzerauthentifizierung und Sicherheitsereignisse. Der Parser führt bei Bedarf Datentypkonvertierungen und Datenanreicherungen durch.
Hinweise
- 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 Berechtigungen für die Brocade ServerIron-Instanz.
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: Brocade_ServerIron 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-Export von Brocade ServerIron ADX konfigurieren
Melden Sie sich auf dem ADX-Gerät an und wechseln Sie in den Modus für die globale Konfiguration:
enable configure terminal
Syslog-Protokollierung aktivieren:
logging on
Geben Sie die IP-Adresse oder den Hostnamen und den Port des syslog-Servers an, einschließlich des gewünschten Protokolls (Bindebene):
logging host <syslog-server-ip> [udp | tcp] port <port-number>
Beispiel für TCP auf Port 54525:
logging host 10.10.10.10 tcp port 54525
Optional: Legen Sie die Syslog-Facility (local0 bis local7) fest:
logging facility local0
Legen Sie die Mindestschweregradstufe der Protokolle fest, die an den Syslog-Server gesendet werden sollen:
logging trap <severity-level>
Speichern Sie die Konfiguration:
write memory
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
%{GREEDYDATA} | metadata.description | Das Feld %{GREEDYDATA} wird metadata.description zugeordnet, wenn es dem Muster „-- %{GREEDYDATA} --“ entspricht. |
%{GREEDYDATA:auth_result} | security_result.description | Das Feld „%{GREEDYDATA:auth_result}“ wird mit dem Feld „%{GREEDYDATA:desc}“ zusammengeführt, um „security_result.description“ zu bilden, wenn „%{GREEDYDATA:desc}“ vorhanden ist. |
%{GREEDYDATA:desc} | security_result.description | Das Feld %{GREEDYDATA:desc} wird verwendet, um das Feld „security_result.description“ zu füllen. Je nach Rohprotokollformat kann es mit anderen Feldern zusammengeführt werden. |
%{GREEDYDATA:login_to} | security_result.description | Das Feld „%{GREEDYDATA:login_to}“ wird mit dem Feld „%{GREEDYDATA:desc}“ zusammengeführt, um „security_result.description“ zu bilden, wenn „%{GREEDYDATA:desc}“ vorhanden ist. |
%{GREEDYDATA:user} | target.user.userid | Das Feld „%{GREEDYDATA:user}“ wird „target.user.userid“ zugeordnet. |
%{HOST:principal_host} | principal.hostname | Das Feld %{HOST:principal_host} ist principal.hostname zugeordnet. |
%{HOST:target_host} | target.hostname | Das Feld %{HOST:target_host} ist target.hostname zugeordnet. |
%{INT:http_port} | additional.fields.value.string_value | Das Feld „%{INT:http_port}“ ist mit „additional.fields.value.string_value“ mit dem Schlüssel „HTTP-Port“ verknüpft. |
%{INT:target_port} | target.port | Das Feld „%{INT:target_port}“ wird „target.port“ zugeordnet und in eine Ganzzahl umgewandelt. |
%{INT:telnet_port} | additional.fields.value.string_value | Das Feld „%{INT:telnet_port}“ ist mit „additional.fields.value.string_value“ mit dem Schlüssel „Telnet Port“ verknüpft. |
%{INT:tftp_port} | additional.fields.value.string_value | Das Feld „%{INT:tftp_port}“ ist dem Schlüssel „TFTP-Port“ zugeordnet. |
%{IP:principal_ip} | principal.ip | Das Feld %{IP:principal_ip} ist principal.ip zugeordnet. |
%{IP:target_ip} | target.ip | Das Feld „%{IP:target_ip}“ ist „target.ip“ zugeordnet. |
%{IPV4:principal_ip} | principal.ip | Das Feld %{IPV4:principal_ip} wird mit „principal.ip“ abgeglichen. |
%{IPV4:target_ip} | target.ip | Das Feld „%{IPV4:target_ip}“ wird auf „target.ip“ zugeordnet. |
%{MAC:principal_mac} | principal.mac | Das Feld %{MAC:principal_mac} wird in das Format [0–9a–f]{2}:[0–9a–f]{2}:[0–9a–f]{2}:[0–9a–f]{2}:[0–9a–f]{2}:[0–9a–f]{2} umgewandelt und dann principal.mac zugeordnet. |
%{USERNAME:target_host} | target.hostname | Das Feld %{USERNAME:target_host} wird auf „target.hostname“ zugeordnet. |
%{USERNAME:user} | target.user.userid | Das Feld „%{USERNAME:user}“ ist „target.user.userid“ zugeordnet. |
%{WORD:auth_result} | security_result.description | Das Feld „%{WORD:auth_result}“ wird mit dem Feld „%{GREEDYDATA:desc}“ zusammengeführt, um „security_result.description“ zu bilden, wenn „%{GREEDYDATA:desc}“ vorhanden ist. |
%{WORD:proto} | network.application_protocol | Das Feld „%{WORD:proto}“ wird dem Attribut „network.application_protocol“ zugeordnet, wenn sein Wert „SSH“ ist. |
timestamp | metadata.event_timestamp | Das Zeitstempelfeld wird mit einem Grok-Muster aus den Rohprotokolldaten geparst und in ein Zeitstempelobjekt umgewandelt. |
extensions.auth.type | Der Wert wird auf „MACHINE“ gesetzt, wenn das Feld „proto“ nicht leer ist und das Feld „auth_action“ entweder „logout“ oder „login“ ist. | |
metadata.description | Das Feld wird mit dem Wert des Felds „metadata_description“ ausgefüllt, sofern es nicht leer ist. | |
metadata.event_type | Das Feld wird anhand der Werte anderer Felder mithilfe von bedingten Logik ausgefüllt: – STATUS_STARTUP: wenn „target_port_status“ „up“ ist. – STATUS_SHUTDOWN: Wenn „target_port_status“ den Wert „down“ hat. – USER_LOGOUT: Wenn „proto“ nicht leer ist und „auth_action“ „logout“ ist. – USER_LOGIN: Wenn „proto“ nicht leer ist und „auth_action“ „login“ ist. – STATUS_UPDATE: wenn „metadata_description“ mit „state changed“ übereinstimmt. – GENERIC_EVENT: Wenn keine der oben genannten Bedingungen erfüllt ist. |
|
metadata.log_type | Der Wert ist auf „BROCADE_SERVERIRON“ hartcodiert. | |
metadata.product_name | Der Wert ist auf „ServerIron“ hartcodiert. | |
metadata.vendor_name | Der Wert ist auf „Brocade“ hartcodiert. | |
security_result.action | Der Wert wird auf „BLOCK“ gesetzt, wenn das Feld „desc“ den Wert „fail“ oder das Feld „auth_result“ den Wert „fail“ oder „rejected“ enthält. |
Änderungen
2022-01-13
- Neu hinzugefügter Parser.