Forescout NAC-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Forescout Network Access Control (NAC)-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser verarbeitet sowohl Syslog- als auch CEF-formatierte Logs von Forescout NAC. Felder werden mithilfe von Grok-Mustern extrahiert, dem Unified Data Model (UDM) zugeordnet und Ereignisse werden anhand von Keywords und extrahierten Feldern kategorisiert. Dabei werden An- und Abmeldungen, Netzwerkverbindungen, E-Mail-Ereignisse und Systemstatusaktualisierungen berücksichtigt. Für die Verarbeitung von „CounterACT“- und „Virtual Firewall“-Ereignissen wird eine spezielle Logik implementiert, einschließlich der Zuordnung von Schweregraden und der Anreicherung des Nutzerkontexts.

Hinweise

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Windows 2016 oder höher oder ein Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
  • ForeScout CounterAct v8.0 oder die neueste Version muss installiert sein.
  • Das ForeScout CounterAct-Kernmodul für Erweiterungen, Syslog-Plug-in v3.5, sollte installiert sein.
  • Privilegierter Zugriff auf Forescout Appliance und CounterACT-Plug-in

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme 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-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Fenstereinbau

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

Zusätzliche Installationsressourcen

Weitere Installationsoptionen finden Sie im Installationsleitfaden.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

  1. Rufen Sie die Konfigurationsdatei auf:
    • Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    • Ö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_file_path: '/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: 'FORESCOUT_NAC'
                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 Kunden-ID.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Authentifizierungsdatei für die Aufnahme von Google SecOps abrufen gespeichert wurde.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

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

    sudo systemctl restart bindplane-agent
    
  • Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Services verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

CounterACT Syslog-Plug-in installieren

  1. Rufen Sie die Seite Forescount Base Plugins auf und laden Sie die Plug-in-Datei .fpi herunter.
  2. Speichern Sie die Datei auf dem Computer, auf dem die CounterACT Console installiert ist.
  3. Melden Sie sich in der CounterACT Console an.
  4. Wählen Sie Optionen > „Plug-ins“ > „Installieren“ aus.
  5. Suchen Sie nach der gespeicherten FPI-Datei des Plug-ins und wählen Sie sie aus.
  6. Klicken Sie auf Installieren.
  7. Akzeptieren Sie die Lizenzvereinbarung, um fortzufahren.
  8. Klicken Sie nach Abschluss der Installation auf Schließen.
  9. Wählen Sie das Plug-in im Bereich Plug-in aus und klicken Sie auf Start.
  10. Wählen Sie die CounterACT Appliances aus, auf denen das Plug-in gestartet werden soll. Es wird empfohlen, das Plug-in auf allen Appliances in der Umgebung auszuführen.
  11. Klicken Sie auf OK.
  12. Klicken Sie auf Schließen.

Syslog im Forescout CounterACT Syslog-Plug-in konfigurieren

  1. Klicken Sie im Bereich Plug-ins auf Syslog > Konfigurieren.
  2. Wählen Sie im Dialogfeld ein beliebiges Gerät oder den Enterprise Manager aus und klicken Sie auf OK.
  3. Klicken Sie unter Send Events To (Ereignisse senden an) auf Add (Hinzufügen).
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Serveradresse: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Serverport: Geben Sie die Portnummer des Bindplane-Agents ein (z. B. 514 für UDP).
    • Server Protocol: Wählen Sie UDP aus.
    • Identität: Freitextfeld zur Identifizierung der Syslog-Nachricht.
    • Optional: Einrichtung: Syslog-Nachrichteneinrichtung, die als Teil des Felds „Nachrichtenpriorität“ übertragen wird. Wenn der Wert für die Einrichtung nicht angegeben ist, wird er auf local5 festgelegt.
    • Schweregrad: Wählen Sie Info aus.
  5. Rufen Sie den Tab Syslog-Trigger auf.
  6. Aktivieren Sie nicht das Kästchen Nur Nachrichten senden, die von der Aktion „Nachricht an Syslog senden“ generiert wurden.
  7. Aktivieren Sie nur das Kästchen Include timestamp and CounterACT device identifier in all messages (Zeitstempel und CounterACT-Geräte-ID in alle Nachrichten einfügen).
  8. Klicken Sie auf Optionen, um festzulegen, welche Ereignistypen Syslog-Meldungen auslösen:
    • Logs für NAC-Richtlinien einbeziehen.
    • Ereignisse für Übereinstimmung und Nichtübereinstimmung von NAC-Richtlinien einbeziehen.
    • Wählen Sie andere Ereignisse aus, falls verfügbar.
  9. Rufen Sie den Tab Standardmäßige Aktionskonfiguration auf.
  10. Geben Sie die folgenden Konfigurationsdetails an:
    • Serveradresse: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Serverport: Geben Sie die Portnummer des Bindplane-Agents ein (z. B. 514 für UDP).
    • Server Protocol: Wählen Sie UDP aus.
    • Nachrichtenidentität: Freitextfeld zur Identifizierung der Syslog-Nachricht.
    • Optional: Einrichtung: Syslog-Einrichtung, die als Teil des Prioritätsfelds der Nachricht übertragen wird. Wenn der Wert für die Einrichtung nicht angegeben ist, wird er auf local5 gesetzt.
    • Schweregrad: Wählen Sie Info aus.
  11. Klicken Sie auf OK.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
act security_result.action_details Direkt aus dem Feld act in CEF-Logs zugeordnet.
app network.application_protocol Direkt aus dem Feld app in CEF-Logs zugeordnet.
Available_memory additional.fields Aus kv_data extrahiert, wenn event_type „Systemstatistiken“ ist. Der Schlüssel ist „Available memory“ (Verfügbarer Speicher) und der Wert ist der extrahierte String.
Available_swap additional.fields Aus kv_data extrahiert, wenn event_type „Systemstatistiken“ ist. Der Schlüssel ist „Available swap“ und der Wert ist der extrahierte String.
application_status additional.fields Wird aus kv_data extrahiert, wenn event_type „Application status“ (Anwendungsstatus) ist. Der Schlüssel ist „Application status“ (Antragsstatus) und der Wert ist der extrahierte String.
Assigned_hosts additional.fields Wird aus kv_log_data extrahiert, wenn event_type „Application status“ (Anwendungsstatus) ist. Der Schlüssel ist „Assigned hosts“ und der Wert ist der extrahierte String.
Category security_result.description Teil von security_result.description, wenn et_lower „nac policy log“ ist. Mit anderen Details verkettet.
command principal.process.command_line Aus dem Feld rnmsg in CEF-Logs extrahiert, wenn es mit „command:“ beginnt.
Connected_clients additional.fields Wird aus kv_log_data extrahiert, wenn event_type „Application status“ (Anwendungsstatus) ist. Der Schlüssel ist „Connected clients“ und der Wert ist der extrahierte String.
CPU_usage additional.fields Aus kv_data extrahiert, wenn event_type „Systemstatistiken“ ist. Der Schlüssel ist „CPU-Auslastung“ und der Wert ist der extrahierte String.
cs1 additional.fields Direkt aus dem Feld cs1 in CEF-Logs zugeordnet. Der Schlüssel ist „Compliancy Policy Name“.
cs2 additional.fields Direkt aus dem Feld cs2 in CEF-Logs zugeordnet. Der Schlüssel ist „Compliancy Policy Subrule Name“.
cs3 additional.fields Direkt aus dem Feld cs3 in CEF-Logs zugeordnet. Der Schlüssel ist „Host Compliancy Status“.
cs4 additional.fields Direkt aus dem Feld cs4 in CEF-Logs zugeordnet. Der Schlüssel ist „Compliancy Event Trigger“.
data security_result.description Wird in verschiedenen Teilen des Parsers verwendet, um Informationen zu extrahieren und zu den endgültigen UDM-Feldern beizutragen. Nicht direkt einem einzelnen UDM-Feld zugeordnet.
details security_result.description Wird in mehreren Fällen verwendet, um security_result.description zu füllen, z. B. beim Parsen von „Log“-Ereignissen und Änderungen an Nutzersitzungen. Kann für spezifische Informationen weiter analysiert werden.
Destination target.ip, target.hostname Wird aus kv_data oder data geparst. Wenn sie in eine IP-Adresse umgewandelt werden kann, wird sie target.ip zugeordnet. Andernfalls wird sie target.hostname zugeordnet.
deviceExternalId about.asset.asset_id Direkt aus dem Feld deviceExternalId in CEF-Protokollen zugeordnet, mit dem Präfix „Forescout.CommandCenter:“.
dhost target.hostname Direkt aus dem Feld dhost in CEF-Logs zugeordnet.
dmac target.mac Direkt aus dem Feld dmac in CEF-Logs zugeordnet.
dntdom target.administrative_domain Direkt aus dem Feld dntdom in CEF-Logs zugeordnet.
dst target.ip Direkt aus dem Feld dst in CEF-Logs zugeordnet.
dpt target.port Direkt aus dem Feld dpt in CEF-Logs zugeordnet.
duser target.user.user_display_name Direkt aus dem Feld duser in CEF-Logs zugeordnet.
dvc about.ip Direkt aus dem Feld dvc in CEF-Logs zugeordnet.
dvchost about.hostname Direkt aus dem Feld dvchost in CEF-Logs zugeordnet.
EM_connection_status additional.fields Wird aus kv_log_data extrahiert, wenn event_type „Application status“ (Anwendungsstatus) ist. Der Schlüssel ist „EM connection status“ und der Wert ist der extrahierte String.
Engine_status additional.fields Wird aus kv_log_data extrahiert, wenn event_type „Application status“ (Anwendungsstatus) ist. Der Schlüssel ist „Engine status“ und der Wert ist der extrahierte String.
event_type metadata.description, security_result.summary Aus der Lognachricht geparst. Wird verwendet, um den UDM-Ereignistyp und andere Felder zu bestimmen. Wenn es sich bei dem Ereignis um ein „GENERIC_EVENT“ handelt, wird es auch für die Beschreibung verwendet.
eventtype additional.fields Direkt aus dem Feld eventtype in CEF-Logs zugeordnet. Der Schlüssel ist „eventtype“.
externalId metadata.product_log_id Direkt aus dem Feld externalId in CEF-Logs zugeordnet.
from\[...\] to\[...\] principal.ip, target.ip Extrahiert Quell- und Ziel-IPs aus dem Muster „von[...] bis[...]“.
Host principal.ip, principal.hostname Wird aus kv_data geparst, wenn et_lower „block event“ ist. Wenn in eine IP-Adresse konvertierbar, wird sie principal.ip zugeordnet, andernfalls principal.hostname.
Hostname principal.hostname, principal.asset.hostname Wird principal.hostname und principal.asset.hostname zugeordnet, wenn in Ereignissen zur Erkennung von Property-Änderungen vorhanden.
Installed_Plugins additional.fields Wird aus kv_log_data extrahiert, wenn event_type „Application status“ (Anwendungsstatus) ist. Der Schlüssel ist „Installed Plugins“ und der Wert ist der extrahierte String.
iporhost intermediary.ip, intermediary.hostname Aus header_data geparst. Wenn in eine IP-Adresse konvertierbar, wird sie intermediary.ip zugeordnet, andernfalls intermediary.hostname.
Is Virtual Firewall blocking rule security_result.action, security_result.rule_name Wenn „true“, wird security_result.action auf „BLOCK“ und security_result.rule_name auf „Virtual Firewall blocking“ festgelegt.
log_description security_result.summary Direkt security_result.summary zugeordnet, sofern vorhanden.
log_type metadata.log_type Auf den konstanten Wert „FORESCOUT_NAC“ festgelegt.
MAC principal.mac Aus kv_data in Ereignissen für erkannte Property-Änderungen geparst und als MAC-Adresse formatiert.
mail_from network.email.from Direkt aus dem Feld mail_from zugeordnet, das aus mail_details extrahiert wurde.
mail_subject network.email.subject Direkt aus dem Feld mail_subject zugeordnet, das aus mail_details extrahiert wurde.
mail_to network.email.to Direkt aus dem Feld mail_to zugeordnet, das aus mail_details extrahiert wurde.
Match security_result.rule_name Direkt aus dem Feld Match zugeordnet, wenn et_lower „nac policy log“ ist.
metadata.event_type metadata.event_type Wird durch verschiedene Bedingungen im Parser bestimmt, einschließlich des Vorhandenseins bestimmter Felder und Keywords in der Log-Nachricht. Die Standardeinstellung ist GENERIC_EVENT und wird anhand der geparsten Daten aktualisiert. Beispiele sind USER_LOGIN, USER_LOGOUT, NETWORK_CONNECTION, SCAN_NETWORK, STATUS_UPDATE, EMAIL_TRANSACTION und USER_UNCATEGORIZED.
metadata.product_name metadata.product_name Für die meisten Ereignisse auf „FORESCOUT NAC“ festgelegt oder auf den Wert des Felds product, falls es vorhanden ist. Bei CEF-Ereignissen ist der Wert auf „CounterAct“ festgelegt.
metadata.vendor_name metadata.vendor_name Für die meisten Ereignisse auf „FORESCOUT“ festgelegt. Bei CEF-Ereignissen wird der Wert aus dem Feld cs1Label übernommen, sofern es vorhanden ist, oder auf „ForeScout Technologies“ festgelegt.
msg metadata.description Direkt aus dem Feld msg in CEF-Logs zugeordnet.
pid intermediary.process.pid Direkt aus dem Feld pid zugeordnet, das aus header_data extrahiert wurde.
policy_details security_result.description Teil von security_result.description, wenn et_lower „nac policy log“ ist. Mit anderen Details verkettet.
product metadata.product_name Direkt metadata.product_name zugeordnet, sofern vorhanden.
proto network.ip_protocol Direkt aus dem Feld proto in CEF-Logs zugeordnet.
Reason security_result.description Direkt aus dem Feld Reason zugeordnet, wenn et_lower „Blockereignis“ ist.
resource principal.resource.name Direkt aus dem Feld resource in CEF-Logs zugeordnet.
rnmsg security_result.description, principal.process.command_line Wenn sie mit „command:“ beginnt, wird der Teil nach „command:“ principal.process.command_line zugeordnet. Andernfalls wird sie security_result.description zugeordnet.
rt metadata.event_timestamp Direkt aus dem Feld rt in CEF-Protokollen zugeordnet und in einen Zeitstempel konvertiert.
Rule security_result.rule_id Direkt aus dem Feld Rule zugeordnet, wenn et_lower „nac policy log“ ist.
security_result.severity security_result.severity Abgeleitet aus dem Feld severity_level. 0–3 entspricht NIEDRIG, 4–6 entspricht MITTEL, 7–8 entspricht HOCH und 9–10 entspricht KRITISCH.
security_result.severity_details security_result.severity_details Direkt aus dem Feld severity in CEF-Logs zugeordnet.
Service target.port, network.ip_protocol Wird analysiert, um Port und Protokoll zu extrahieren. Der Port ist target.port und das Protokoll network.ip_protocol zugeordnet.
session_id network.session_id Direkt aus dem Feld session_id zugeordnet.
severity security_result.severity_details Direkt aus dem Feld severity in CEF-Logs zugeordnet.
severity_level security_result.severity Wird verwendet, um die security_result.severity zu bestimmen.

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