Nasuni File Services Platform-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Logs der Nasuni File Services Platform mithilfe eines Bindplane-Agents in Google Security Operations aufnehmen. Der Parser extrahiert Felder aus SYSLOG- und JSON-Protokollen. Dabei werden Grok-Muster verwendet, um die ursprüngliche Nachricht zu parsen, und dann ein JSON-Filter für eingebettete JSON-Daten. Die extrahierten Felder werden dem UDM zugeordnet, verschiedene Ereignistypen wie Dateilesevorgänge, Änderungen und generische Ereignisse werden verarbeitet und die Daten werden mit Anbieter- und Produktinformationen angereichert. Außerdem wird bedingte Logik auf Grundlage extrahierter Felder ausgeführt, um Ereignisse zu kategorisieren und UDM-Metadaten zu füllen.

Hinweise

  • Sie benötigen eine Google SecOps-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 erhöhte Zugriffsrechte für Claroty CTD.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. 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

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
  2. 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

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. 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
    

Weitere Installationsressourcen

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  2. Bearbeiten Sie die Datei config.yamlso:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: NASUNI_FILE_SERVICES
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. 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.

Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog in der Nasuni File Service-Plattform konfigurieren

  1. Melden Sie sich in der Web-UI der Nasuni Console an.
  2. Gehen Sie zu Konsoleneinstellungen > Syslog-Exporte.
  3. Geben Sie im Abschnitt „Netzwerk“ die folgenden Konfigurationsdetails ein:
    • Hostname: Geben Sie einen eindeutigen und aussagekräftigen Namen ein, z. B. Google SecOps-Syslog.
    • IP-Adresse: Geben Sie die Bindplane-IP-Adresse ein.
    • Port: Geben Sie die Bindplane-Konfigurationsportnummer ein (z. B. 514 für UDP).
    • Protokoll: Wählen Sie UDP aus. Je nach Bindplane-Konfiguration können Sie auch TCP auswählen.
    • Format: Wählen Sie SYSLOG+JSON aus.
  4. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
application target.application Wird ausgefüllt, wenn das Feld msg vorhanden ist und kein JSON-Objekt ist und das Feld application nicht leer ist.
event_type metadata.product_event_type Direkt aus dem Feld event_type im Rohprotokoll zugeordnet.
gid target.group.product_object_id Direkt aus dem Feld gid im Rohprotokoll zugeordnet und in einen String umgewandelt.
groupname target.group.group_display_name Direkt aus dem Feld groupname im Rohprotokoll zugeordnet.
host principal.hostname Direkt aus dem Feld host im Rohprotokoll zugeordnet.
ipaddr principal.ip Direkt aus dem Feld ipaddr im Rohprotokoll zugeordnet.
is_dir additional.fields.value.string_value (wobei „key“ is_dir ist) Direkt aus dem Feld is_dir im Rohprotokoll zugeordnet und in einen String umgewandelt. Als zusätzliches Feld hinzugefügt.
msg metadata.description Wird ausgefüllt, wenn das Feld msg vorhanden ist, kein JSON-Format hat und ipaddr und prin_port nicht daraus extrahiert werden. Wird auch für STATUS_UPDATE-Ereignisse verwendet.
newpath additional.fields.value.string_value (wobei „key“ newpath ist) Direkt aus dem Feld newpath im Rohprotokoll zugeordnet. Als zusätzliches Feld hinzugefügt.
offset additional.fields.value.string_value (wobei „key“ offset ist) Direkt aus dem Feld offset im Rohprotokoll zugeordnet und in einen String umgewandelt. Als zusätzliches Feld hinzugefügt.
path target.file.full_path Direkt aus dem Feld path im Rohprotokoll zugeordnet.
pid target.process.pid Direkt aus dem Feld pid im Rohprotokoll zugeordnet und in einen String umgewandelt.
prin_port principal.port Wird mithilfe von Grok aus dem Feld msg extrahiert, wenn msg kein JSON-Objekt ist, und in eine Ganzzahl konvertiert.
proc_id principal.process.pid Direkt aus dem Feld proc_id im Rohprotokoll zugeordnet.
product_log_id metadata.product_log_id Direkt aus dem Feld product_log_id im Rohprotokoll zugeordnet.
proto metadata.description Direkt aus dem Feld proto im Rohprotokoll zugeordnet.
resource target.resource.resource_subtype Direkt aus dem Feld resource im Rohprotokoll zugeordnet.
sequence additional.fields.value.string_value (wobei „key“ sequence ist) Direkt aus dem Feld sequence im Rohprotokoll zugeordnet und in einen String umgewandelt. Als zusätzliches Feld hinzugefügt.
sid principal.user.windows_sid Direkt aus dem Feld sid im Rohprotokoll zugeordnet.
tid target.resource.product_object_id Direkt aus dem Feld tid im Rohprotokoll zugeordnet und in einen String umgewandelt.
time metadata.event_timestamp.seconds, timestamp.seconds Der Sekundenteil des Zeitstempels wird aus dem Feld time extrahiert und sowohl in metadata.event_timestamp als auch in timestamp auf oberster Ebene eingefügt. Wird durch Logik basierend auf den Werten von ipaddr, path und event_type bestimmt. Kann FILE_READ, FILE_MODIFICATION, FILE_UNCATEGORIZED, STATUS_UPDATE oder GENERIC_EVENT sein. Hartcodiert auf NASUNI_FILE_SERVICES. Hartcodiert auf Nasuni File Services Platform. Hartcodiert auf Nasuni.
uid additional.fields.value.string_value (wobei „key“ uid ist) Direkt aus dem Feld uid im Rohprotokoll zugeordnet und in einen String umgewandelt. Als zusätzliches Feld hinzugefügt.
username principal.user.user_display_name Direkt aus dem Feld username im Rohprotokoll zugeordnet.
volume additional.fields.value.string_value (wobei „key“ volume ist) Direkt aus dem Feld volume im Rohprotokoll zugeordnet. Als zusätzliches Feld hinzugefügt.

Änderungen

2022-08-21

  • newpath wurde additional.fields zugeordnet.

2022-08-08

Optimierung:

  • Es wurde ein Grok-Muster hinzugefügt, um neue SYSLOG-Protokolle zu verarbeiten.
  • Bedingte Prüfung für event_type FILE_UNCATEGORIZED hinzugefügt.
  • event_type STATUS_UPDATE wurde hinzugefügt
  • application wurde target.application zugeordnet.
  • prin_port wurde principal.port zugeordnet.
  • host wurde principal.hostname zugeordnet.
  • proc_id wurde principal.process.pid zugeordnet.

2022-07-07

  • Neu erstellter Parser.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten