BeyondTrust Secure Remote Access-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie BeyondTrust Secure Remote Access-Logs mit Bindplane erfassen. Der Parser verarbeitet zwei Syslog-Formate. Beim ersten Format werden Schlüssel/Wert-Paare in einer strukturierten Nachricht verwendet, beim zweiten Format werden Felder durch senkrechte Striche getrennt. Der Parser extrahiert relevante Felder aus beiden Formaten und ordnet sie dem UDM zu. Außerdem werden Ereignistypen anhand der extrahierten Keywords kategorisiert und es wird eine spezielle Logik für An- und Abmeldeereignisse sowie Authentifizierungstypen verwendet.

Hinweise

  • Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
  • Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
  • Sie benötigen privilegierten Zugriff auf BeyondTrust Secure Remote Access.

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

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

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

  1. Greifen Sie auf die Konfigurationsdatei zu:

    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: BEYONDTRUST_REMOTE_ACCESS
                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 Google SecOps-Aufnahmeauthentifizierungsdatei 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 Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

BeyondTrust-Remotesupport konfigurieren

  1. Melden Sie sich in der BeyondTrust-Web-UI an.
  2. Wählen Sie Appliance> Sicherheit> Appliance-Verwaltung aus.
  3. Führen Sie im Abschnitt Syslog folgende Schritte aus:
    • Nachrichtenformat: Wählen Sie Legacy-BSD-Format aus.
    • Remote-Syslog-Server: Geben Sie die Bindplane-IP-Adresse und den Port ein.
  4. Klicken Sie auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
datetime metadata.event_timestamp Der Zeitstempel wird aus dem Feld datetime im RFC3339-Format geparst, wenn das Feld when nicht vorhanden ist.
deviceHost target.hostname Der Wert von deviceHost wird direkt target.hostname zugeordnet.
dstHost target.ip Der Wert von dstHost wird direkt target.ip zugeordnet, nachdem er als gültige IP-Adresse bestätigt wurde.
dstPriv additional.fields.[key=dstPriv].value.string_value Der Wert von dstPriv wird in das Feld additional mit dem Schlüssel dstPriv eingefügt.
dstUid target.user.userid Der Wert von dstUid wird direkt target.user.userid zugeordnet.
dstUser target.user.user_display_name Der Wert von dstUser wird direkt target.user.user_display_name zugeordnet.
eventName metadata.event_type Wenn eventName login ist (ohne Berücksichtigung der Groß- und Kleinschreibung), wird metadata.event_type auf USER_LOGIN gesetzt. Wenn eventName logout ist (ohne Berücksichtigung der Groß- und Kleinschreibung), wird metadata.event_type auf USER_LOGOUT gesetzt. Andernfalls wird metadata.event_type auf USER_UNCATEGORIZED gesetzt, wenn eventName nicht leer ist. Wenn eventName leer ist und die Nachricht mit dem zweiten Grok-Muster übereinstimmt, wird metadata.event_type auf GENERIC_EVENT festgelegt. Wenn eventName leer ist und die Nachricht mit dem ersten Grok-Muster übereinstimmt, wird metadata.event_type auf GENERIC_EVENT gesetzt. Wenn srcUid, userid oder who nicht leer sind, wird metadata.event_type auf USER_CHANGE_PERMISSIONS festgelegt. Wenn deviceHost oder site nicht leer sind, wird metadata.event_type auf USER_UNCATEGORIZED gesetzt. Andernfalls wird metadata.event_type auf GENERIC_EVENT gesetzt.
event_name additional.fields.[key=event_name].value.string_value Der Wert von event_name wird in das Feld additional mit dem Schlüssel event_name eingefügt.
event_name metadata.product_event_type Der Wert von event_name wird in Verbindung mit dem Feld id verwendet, um metadata.product_event_type im Format [id] -event_name`` auszufüllen.
externalKeyLabel additional.fields.[key=externalKeyLabel].value.string_value Der Wert von externalKeyLabel wird in das Feld additional mit dem Schlüssel externalKeyLabel eingefügt.
id metadata.product_event_type Der Wert von id wird in Verbindung mit dem Feld event_name verwendet, um metadata.product_event_type im Format [id] -event_name`` auszufüllen.
jumpGroupId additional.fields.[key=jumpGroupId].value.string_value Der Wert von jumpGroupId wird in das Feld additional mit dem Schlüssel jumpGroupId eingefügt.
jumpGroupName additional.fields.[key=jumpGroupName].value.string_value Der Wert von jumpGroupName wird in das Feld additional mit dem Schlüssel jumpGroupName eingefügt.
jumpGroupType additional.fields.[key=jumpGroupType].value.string_value Der Wert von jumpGroupType wird in das Feld additional mit dem Schlüssel jumpGroupType eingefügt.
jumpointId additional.fields.[key=jumpointId].value.string_value Der Wert von jumpointId wird in das Feld additional mit dem Schlüssel jumpointId eingefügt.
jumpointName additional.fields.[key=jumpointName].value.string_value Der Wert von jumpointName wird in das Feld additional mit dem Schlüssel jumpointName eingefügt.
kv_data Verschiedene UDM-Felder Das Feld kv_data wird in Schlüssel/Wert-Paare aufgeteilt, die dann anhand ihrer Schlüssel verschiedenen UDM-Feldern zugeordnet werden (z.B. eventName, when, who, who_ip, site, target, status, reason).
kvdata Verschiedene UDM-Felder Das Feld kvdata wird in Schlüssel/Wert-Paare aufgeteilt, die dann anhand ihrer Schlüssel verschiedenen UDM-Feldern zugeordnet werden (z.B. msg, srcUser, srcUid, srcHost, dstUser, dstUid, dstHost, sessionId, jumpointId, jumpointName, jumpGroupId, jumpGroupName, jumpGroupType, externalKeyLabel, dstPriv).
message Verschiedene UDM-Felder Das Feld message wird mit Grok-Mustern analysiert, um verschiedene Felder zu extrahieren, die dann UDM-Feldern zugeordnet werden.
msg metadata.description Der Wert von msg wird direkt metadata.description zugeordnet.
product_event_type metadata.product_event_type Der Wert von product_event_type wird direkt metadata.product_event_type zugeordnet.
product_log_id metadata.product_log_id Der Wert von product_log_id wird direkt metadata.product_log_id zugeordnet.
process_id principal.process.pid Der Wert von process_id wird direkt principal.process.pid zugeordnet.
reason security_result.description Der Wert von reason wird direkt security_result.description zugeordnet.
segment_number additional.fields.[key=segment_number].value.string_value Der Wert von segment_number wird in das Feld additional mit dem Schlüssel segment_number eingefügt.
sessionId network.session_id Der Wert von sessionId wird direkt network.session_id zugeordnet.
site target.hostname Der Wert von site wird direkt target.hostname zugeordnet.
site_id additional.fields.[key=site_id].value.string_value Der Wert von site_id wird in das Feld additional mit dem Schlüssel site_id eingefügt.
srcHost principal.ip Der Wert von srcHost wird direkt principal.ip zugeordnet, nachdem er als gültige IP-Adresse bestätigt wurde.
srcUid principal.user.userid Der Wert von srcUid wird direkt principal.user.userid zugeordnet.
srcUser principal.user.user_display_name Der Wert von srcUser wird direkt principal.user.user_display_name zugeordnet.
status security_result.action Wenn status failure ist (ohne Berücksichtigung der Groß- und Kleinschreibung), wird security_result.action auf BLOCK gesetzt. Andernfalls wird security_result.action auf ALLOW gesetzt.
status security_result.action_details Der Wert von status wird direkt security_result.action_details zugeordnet.
target target.application Der Wert von target wird direkt target.application zugeordnet. rep_client wird durch Representative Console und web/login durch Web/Login ersetzt.
target extensions.auth.type Wenn target rep_client ist, wird extensions.auth.type auf MACHINE gesetzt. Wenn target web/login ist, wird extensions.auth.type auf SSO gesetzt. Andernfalls wird extensions.auth.type auf AUTHTYPE_UNSPECIFIED gesetzt.
timestamp metadata.event_timestamp Das timestamp aus dem Rohlog wird als Fallback verwendet, wenn weder datetime noch when vorhanden sind.
total_segments additional.fields.[key=total_segments].value.string_value Der Wert von total_segments wird in das Feld additional mit dem Schlüssel total_segments eingefügt.
device_product additional.fields.[key=device_product].value.string_value Der Wert von device_product wird in das Feld additional mit dem Schlüssel device_product eingefügt.
device_vendor additional.fields.[key=device_vendor].value.string_value Der Wert von device_vendor wird in das Feld additional mit dem Schlüssel device_vendor eingefügt.
device_version metadata.product_version Der Wert von device_version wird direkt metadata.product_version zugeordnet.
when metadata.event_timestamp Der Zeitstempel wird aus dem Feld when im UNIX-Format geparst, sofern vorhanden.
who principal.user.userid Wenn das Feld who mit dem Regex-Muster übereinstimmt, wird der extrahierte userid principal.user.userid zugeordnet. Andernfalls wird das gesamte Feld who dem Feld principal.user.userid zugeordnet.
who principal.user.user_display_name Wenn das Feld who mit dem Regex-Muster übereinstimmt, wird der extrahierte user_display_name principal.user.user_display_name zugeordnet.
who_ip principal.ip Der Wert von who_ip wird direkt principal.ip zugeordnet.
(Parserlogik) metadata.log_type Der Protokolltyp ist auf BEYONDTRUST_REMOTE_ACCESS festgelegt.
(Parserlogik) metadata.product_name Der Produktname ist auf BeyondTrust Secure Remote Access festgelegt.
(Parserlogik) metadata.vendor_name Der Name des Anbieters ist auf BeyondTrust festgelegt.
(Parserlogik) security_result.summary Der Wert wird im Format User %{eventName} abgeleitet.
(Parserlogik) extensions.auth.mechanism Wenn method using password enthält, wird der Mechanismus auf USERNAME_PASSWORD festgelegt. Wenn method using elevate enthält, wird der Mechanismus auf REMOTE festgelegt.

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