NetApp ONTAP-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie die NetApp ONTAP-Protokolle über Syslog erfassen können. Der Parser extrahiert Felder aus syslog-Nachrichten mithilfe von regulären Ausdrücken. Die extrahierten Felder werden dann den entsprechenden UDM-Feldern (Unified Data Model) zugeordnet, wodurch Rohprotokolldaten effektiv in ein strukturiertes Format für die Sicherheitsanalyse umgewandelt werden.
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 Administratorzugriff auf den NetApp ONTAP-Cluster.
- Prüfen Sie, ob ONTAP mit dem Syslog-Server (Bindebene) kommunizieren kann.
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: udplog: # 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: netapp_ontap 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 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-Ziel in ONTAP konfigurieren
Stellen Sie über SSH eine Verbindung zum ONTAP-Cluster her und ersetzen Sie
<ontap-cluster-ip>
durch die Verwaltungs-IP-Adresse Ihres ONTAP-Clusters:ssh admin@<ontap-cluster-ip>
Prüfen Sie die vorhandenen Ereignisfilter und ‑benachrichtigungen:
event filter show event notification show
Erstellen Sie ein Syslog-Ziel und ersetzen Sie
<syslog-server-ip>
und<syslog-server-port>
durch die Details Ihres Syslog-Servers (Bindplane):event notification destination create -name syslog-ems -syslog <syslog-server-ip> -syslog-port <syslog-server-port> -syslog-transport udp-unencrypted
Weitere Optionen für -syslog-transport:
- udp-unencrypted (Standard)
- tcp-unencrypted
- tcp-encrypted (für TLS).
Prüfen Sie das Syslog-Ziel:
event notification destination show
Vorhandene Ereignisfilter konfigurieren
Verknüpfen Sie Standardfilter mit dem Syslog-Ziel:
event notification create -filter-name no-info-debug-events -destinations syslog-ems event notification create -filter-name default-trap-events -destinations syslog-ems
Optional: Benutzerdefinierte Filter erstellen und konfigurieren
Filter für Authentifizierungsereignisse (Anmeldungen/Abmeldungen): Hier werden Protokolle erfasst, deren Beschreibung mit „Anmelden“ oder „Abmelden“ übereinstimmt:
event filter create -filter-name auth_events event filter rule add -filter-name auth_events -type include -message-name *login* -severity info event filter rule add -filter-name auth_events -type include -message-name *logout* -severity info
Filter für Felder zur Sicherheitserkennung: Erfasst Protokolle zu nmsdk_language, nmsdk_platform, nmsdk_version und netapp_version:
event filter create -filter-name security_fields event filter rule add -filter-name security_fields -type include -message-name *nmsdk_language* -severity info event filter rule add -filter-name security_fields -type include -message-name *nmsdk_platform* -severity info event filter rule add -filter-name security_fields -type include -message-name *nmsdk_version* -severity info event filter rule add -filter-name security_fields -type include -message-name *netapp_version* -severity info
Filter für Logs nach Schweregrad: Erfasst Protokolle, deren Schweregrad als „Information“ eingestuft wurde:
event filter create -filter-name severity_info event filter rule add -filter-name severity_info -type include -message-name * -severity info
Filter für Netzwerkaktivitäten: Erfasst Protokolle mit „src_ip“ und „src_port“:
event filter create -filter-name network_activity event filter rule add -filter-name network_activity -type include -message-name *src_ip* -severity info event filter rule add -filter-name network_activity -type include -message-name *src_port* -severity info
Filter für Protokolle mit URL-Ziel: Hier werden Protokolle mit URL-Informationen erfasst:
event filter create -filter-name url_target event filter rule add -filter-name url_target -type include -message-name *url* -severity info
Jeden Filter auf das Syslog-Ziel anwenden:
event notification create -filter-name auth_events -destinations syslog-ems event notification create -filter-name security_fields -destinations syslog-ems event notification create -filter-name severity_info -destinations syslog-ems event notification create -filter-name network_activity -destinations syslog-ems event notification create -filter-name url_target -destinations syslog-ems
Benachrichtigungen prüfen:
event notification show
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Code | Nicht zugeordnet | |
description | metadata.description | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. Nur vorhanden, wenn die Beschreibung „Abmelden“ oder „Anmelden“ lautet. |
intermediary_host | intermediary.hostname | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
nmsdk_language | security_result.detection_fields.value | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. Dieser Wert wird einem detection_fields-Objekt mit „key“ = „nmsdk_language“ als „value“ hinzugefügt. |
nmsdk_platform | security_result.detection_fields.value | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. Dieser Wert wird einem detection_fields-Objekt mit „key“ = „nmsdk_platform“ als „value“ hinzugefügt. |
nmsdk_version | security_result.detection_fields.value | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. Dieser Wert wird einem detection_fields-Objekt mit „key“ = „nmsdk_version“ als „value“ hinzugefügt. |
netapp_version | security_result.detection_fields.value | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. Dieser Wert wird einem detection_fields-Objekt mit „key“ = „netapp_version“ als „value“ hinzugefügt. |
product_event_type | metadata.product_event_type | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
security_result.summary | security_result.summary | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
die Ausprägung | security_result.severity | Legen Sie „INFORMATIONSMELDUNG“ fest, wenn die Wichtigkeit „info“ ist (Groß- und Kleinschreibung wird nicht berücksichtigt). |
src_ip | principal.ip | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
src_port | principal.port | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
Status | security_result.summary | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
ts | metadata.event_timestamp.seconds | Wird mit einem Grok-Muster aus der Protokollnachricht extrahiert und in einen Zeitstempel umgewandelt. |
URL | target.url | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
Nutzer | target.user.userid | Mit einem Grok-Muster aus der Protokollnachricht extrahiert. |
extensions.auth.type | Legen Sie „AUTHTYPE_UNSPECIFIED“ fest, wenn die Beschreibung „Abmelden“ oder „Anmelden“ lautet. | |
metadata.event_type | Legen Sie „USER_LOGIN“ fest, wenn die Beschreibung „Anmelden“ lautet. | |
metadata.event_type | Legen Sie „USER_LOGOUT“ fest, wenn die Beschreibung „Abmelden“ lautet. | |
metadata.event_type | Legen Sie „SCAN_UNCATEGORIZED“ fest, wenn die Beschreibung nicht „Anmelden“ oder „Abmelden“ lautet. | |
metadata.log_type | Legen Sie diesen Wert auf „NETAPP_ONTAP“ fest. | |
metadata.product_name | Legen Sie diesen Wert auf „NETAPP_ONTAP“ fest. | |
metadata.vendor_name | Legen Sie diesen Wert auf „NETAPP_ONTAP“ fest. | |
target.platform | Legt „WINDOWS“ fest, wenn nmsdk_platform „windows“ enthält (Groß- und Kleinschreibung wird nicht berücksichtigt). |
Änderungen
2023-04-03
- Neu erstellter Parser.