Nutanix Prism-Protokolle erfassen

Unterstützt in:

Übersicht

Dieser Parser verarbeitet Nutanix Prism-Protokolle und unterstützt sowohl JSON- als auch syslog-Formate. Es werden Felder aus verschiedenen Protokollstrukturen extrahiert, in UDM normalisiert und die Daten mit zusätzlichem Kontext wie Nutzerinformationen, Netzwerkdetails und Sicherheitsstufe angereichert. Der Parser führt außerdem bestimmte Aktionen basierend auf der HTTP-Methode und der Protokollebene aus und kategorisiert Ereignisse in UDM-Ereignistypen wie USER_LOGIN, STATUS_UPDATE und GENERIC_EVENT.

Hinweis

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen Berechtigungen für Nutanix Prism Central.
  • Sie benötigen Windows 2012 SP2 oder höher oder einen Linux-Host mit systemd.
  • Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.

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.

Google SecOps-Kundennummer abrufen

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

BindPlane-Agent installieren

  1. 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.
  2. 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.
  3. Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.

BindPlane-Agent so konfigurieren, dass er Syslog-Protokolle aufnimmt und an Google SecOps sendet

  1. Rufen Sie den Computer auf, auf dem BindPlane installiert ist.
  2. Bearbeiten Sie die Datei config.yamlso:

    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: Namespace
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Starten Sie den BindPlane-Agent mit dem folgenden Befehl neu, um die Änderungen anzuwenden: sudo systemctl bindplane restart

Syslog aus Nutanix Prism exportieren

  1. Melden Sie sich mit einem Konto mit Berechtigungen in Prism Central an.
  2. Wählen Sie im Menü Prism Central Settings (Prism Central-Einstellungen) aus.
  3. Gehen Sie zu Syslog-Server.
  4. Klicken Sie auf + Syslog-Server konfigurieren.
  5. Geben Sie im Dialogfeld Syslog-Server Werte für die Eingabeparameter an:
    • Servername: Geben Sie einen Namen für den Server ein, z. B. Google SecOps BindPlane Server.
    • IP-Adresse: Geben Sie die IP-Adresse Ihres BindPlane-Agents ein.
    • Port: Geben Sie den Port ein, auf dem der BindPlane-Agent überwacht.
    • Transport Protocol (Transportprotokoll): Wählen Sie TCP aus.
    • Klicken Sie auf Konfigurieren.
  6. Klicken Sie unter Datenquellen auf + Bearbeiten.
  7. Geben Sie im Dialogfeld Datenquellen und zugehörige Schweregrade Werte für die Eingabeparameter an:
    • Wählen Sie API-Audit, Audit und Flow aus.
    • Legen Sie für jeden Eintrag die Wichtigkeitsstufe 6 – Informativ fest.
    • Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
@timestamp metadata.event_timestamp Der Zeitstempel des Ereignisses wird aus dem Feld @timestamp geparst. Die Formate yyyy-MM-dd HH:mm:ss.SSS, yyyy-MM-ddTHH:mm:ssZ und ISO8601 werden unterstützt.
agent.id observer.asset_id Wird mit agent.type kombiniert, um die Asset-ID des Beobachters im Format „agent.type:agent.id“ zu bilden.
agent.type observer.application Die Anwendung, die für die Beobachtung verwendet wird.
agent.version observer.platform_version Die Version der Beobachter-App.
alertUid security_result.detection_fields.value Der Wert der Benachrichtigungs-UID wird dem Feld value in detection_fields zugeordnet. key ist auf „Benachrichtigungs-ID“ festgelegt.
api_version metadata.product_version Die API-Version.
clientIp principal.ip, principal.asset.ip IP-Adresse des Clients.
client_type principal.labels.value Der Wert des Clienttyps. key ist auf „client_type“ festgelegt.
defaultMsg metadata.description Die Standardnachricht.
entity_uuid metadata.product_log_id UUID der Entität.
http_method network.http.method Die HTTP-Methode. In Großbuchstaben umgewandelt.
host.architecture principal.asset.hardware.cpu_platform Die Architektur des Hosts.
host.id principal.asset_id Hat das Präfix „NUTANIX:“, um die Haupt-Asset-ID zu erstellen.
host.ip principal.ip, principal.asset.ip Host-IP-Adresse.
host.mac principal.mac MAC-Adresse des Hosts.
host.os.kernel principal.platform_patch_level Die Kernelversion des Hostbetriebssystems.
host.os.platform principal.platform Die Plattform des Hostbetriebssystems. Zugewiesen zu LINUX, WINDOWS, MAC oder UNKNOWN_PLATFORM.
host.os.version principal.platform_version Die Version des Hostbetriebssystems.
input.type network.ip_protocol Das Netzwerkprotokoll. Zu „UDP“ oder „TCP“ zugeordnet.
log.source.address principal.ip, principal.asset.ip, principal.port Wird geparst, um die Quell-IP-Adresse und den Quellport zu extrahieren.
logstash.collect.host observer.ip Die IP-Adresse des Logstash-Collectors.
logstash.collect.timestamp metadata.collected_timestamp Der Zeitstempel, der angibt, wann das Protokoll erfasst wurde.
logstash.ingest.host intermediary.hostname Der Hostname des Logstash-Aufnahmeservers.
logstash.ingest.timestamp metadata.ingested_timestamp Der Zeitstempel, der angibt, wann das Protokoll aufgenommen wurde.
logstash.irm_environment principal.labels.value Der Wert der irm-Umgebung. key ist auf „irm_environment“ festgelegt.
logstash.irm_region principal.labels.value Der Wert der IRM-Region. key ist auf „irm_region“ festgelegt.
logstash.irm_site principal.labels.value Der Wert der IRM-Website. key ist auf „irm_site“ festgelegt.
logstash.process.host intermediary.hostname Der Hostname des Logstash-Verarbeitungsservers.
operationType metadata.product_event_type Der Vorgangstyp.
originatingClusterUuid additional.fields.value.string_value Die UUID des Ursprungsclusters. key ist auf „Uuid des Ursprungsclusters“ festgelegt.
params.mac_address target.mac Die MAC-Adresse aus den Parametern.
params.requested_ip_address target.ip, target.asset.ip Die angeforderte IP-Adresse aus den Parametern.
params.vm_name target.resource.name Der VM-Name aus den Parametern.
program metadata.product_event_type Der Name des Programms.
rest_endpoint target.url Der REST-Endpunkt.
sessionId additional.fields.value.string_value Die Sitzungs-ID. key ist auf „Sitzungs-ID“ gesetzt.
syslog_host principal.hostname, principal.asset.hostname Syslog-Host.
timestamp metadata.event_timestamp Der Zeitstempel des Ereignisses.
username principal.user.user_display_name oder principal.user.userid Nutzername. Wird als User-ID verwendet, wenn http_method „POST“ ist.
uuid metadata.product_log_id UUID.
metadata.vendor_name Hartcodiert auf „Nutanix_Prism“.
metadata.product_name Hartcodiert auf „Nutanix_Prism“.
metadata.event_type Wird anhand der Parserlogik basierend auf den Werten von has_principal, has_target, audit_log, network_set und http_method ermittelt. Kann GENERIC_EVENT, USER_LOGIN, STATUS_UPDATE, USER_RESOURCE_ACCESS, RESOURCE_CREATION, USER_RESOURCE_UPDATE_CONTENT oder USER_RESOURCE_DELETION sein.
metadata.log_type Hartcodiert auf „NUTANIX_PRISM“.
extensions.auth.type Wird auf „AUTHTYPE_UNSPECIFIED“ gesetzt, wenn metadata.event_type gleich USER_LOGIN ist.
security_result.severity Wird durch die Parserlogik anhand von log_level und syslog_pri bestimmt. Kann CRITICAL, ERROR, HIGH, MEDIUM oder INFORMATIONAL sein.

Änderungen

2024-02-21

  • Wenn „inner_message“ nicht leer ist und „not_json“ auf „true“ gesetzt ist, setzen Sie „audit_log“ auf „true“, um gelöschte JSON-Protokolle zu unterstützen.
  • Die Zuordnungen „principal.ip“ und „principal.asset.ip“ wurden angeglichen.
  • Die Zuordnungen „target.ip“ und „target.asset.ip“ wurden angeglichen.
  • Die Zuordnungen „principal.hostname“ und „principal.asset.hostname“ wurden angeglichen.
  • Wenn „network_set“ auf „false“ und „has_principal“ auf „true“ festgelegt ist, „has_target“ auf „false“ und „audit_log“ auf „false“, setzen Sie „metadata.event_type“ auf „STATUS_UPDATE“.
  • Wenn „network_set“ auf „true“, „has_principal“ auf „true“, „has_target“ auf „false“ und „audit_log“ auf „false“ festgelegt ist, setzen Sie „metadata.event_type“ auf „GENERIC_EVENT“.

2024-01-12

  • Unterstützung für das neue Format von syslog-Protokollen hinzugefügt.
  • Es wurde eine bedingte Nullprüfung hinzugefügt, bevor „logstash.ingest.host“ mit „intermediary.hostname“ abgeglichen wird.
  • Es wurde eine bedingte Nullprüfung hinzugefügt, bevor „logstash.process.host“ mit „intermediary.hostname“ abgeglichen wird.
  • Es wurde eine bedingte Nullprüfung hinzugefügt, bevor „logstash.collect.host“ auf „observer.ip“ zugeordnet wurde.

2023-12-23

  • Unterstützung für einen neuen AUDIT-Protokolltyp hinzugefügt.
  • Es wurden neue Grok-Muster zum Parsen von SYSLOG- und JSON-Logs hinzugefügt.
  • „affectedEntityList“ und „alertUid“ wurden „security_result.detection_fields“ zugeordnet.
  • „clientIp“ und „params.requested_ip_address“ wurden „principal.ip“ zugeordnet.
  • „defaultMsg“ wurde auf „metadata.description“ zugeordnet.
  • „operationType“ wurde in „metadata.product_event_type“ umgewandelt.
  • „originatingClusterUuid“ und „sessionId“ wurden „additional.fields“ zugeordnet.
  • „params.mac_address“ wurde zu „principal.mac“ zugeordnet.
  • „uuid“ wurde zu „metadata.product_log_id“ zugeordnet.
  • „userName“ wurde auf „principal.user.user_display_name“ zugeordnet.
  • „params.vm_name“ wurde in „target.resource.name“ geändert.

2023-01-23

  • „logstash.ingest.host“ wurde „intermediary[0].hostname“ statt „observer.hostname“ zugeordnet.
  • „logstash.collect.host“ wurde auf „observer.ip“ zugeordnet.
  • Null-Prüfung für „logstash.ingest.host“ hinzugefügt.