MOVEit Transfer-Protokolle von Progress erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Progress MOVEit Transfer-Logs mit Bindplane in Google Security Operations aufnehmen.

Progress MOVEit Transfer ist eine Lösung für die verwaltete Dateiübertragung (Managed File Transfer, MFT), die sichere, verschlüsselte Dateiübertragungen über Protokolle wie HTTPS, FTPS und SFTP ermöglicht. Sie bietet manipulationssicheres Audit-Logging, rollenbasierte Zugriffssteuerung und Compliance-Unterstützung für Verordnungen wie HIPAA, PCI DSS und DSGVO. MOVEit Transfer zeichnet alle Dateiübertragungsaktivitäten, Nutzerauthentifizierungsereignisse und administrativen Aktionen in der Audit-Datenbank auf.

Hinweis

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

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem Progress MOVEit Transfer-Server
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Zugriff auf die Web-Admin-Konsole von Progress MOVEit Transfer auf Systemadministrator-Ebene
  • UDP-Port 514 (oder der von Ihnen ausgewählte Syslog-Port) vom MOVEit Transfer-Server zum Bindplane-Agent-Host geöffnet

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die 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 > Profile 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
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.

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
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

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

Konfigurationsdatei suchen

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/moveit_transfer:
            compression: gzip
            creds_file_path: '<CREDS_FILE_PATH>'
            customer_id: '<CUSTOMER_ID>'
            endpoint: <REGION_ENDPOINT>
            log_type: IPSWITCH_MOVEIT_TRANSFER
            raw_log_field: body
            ingestion_labels:
                log_source: moveit_transfer
    
    service:
        pipelines:
            logs/moveit_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/moveit_transfer
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter.

Exporter-Konfiguration:

  • <CREDS_FILE_PATH>: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:
    • Linux: /etc/bindplane-agent/ingestion-auth.json
    • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
  • <CUSTOMER_ID>: Google SecOps-Kundennummer, die zuvor kopiert wurde
  • <REGION_ENDPOINT>: Regionale Endpunkt-URL:

    • USA: malachiteingestion-pa.googleapis.com
    • Europa: europe-malachiteingestion-pa.googleapis.com
    • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
    • Eine vollständige Liste finden Sie unter Regionale Endpunkte.
  • Konfigurationsbeispiel

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/moveit_transfer:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: IPSWITCH_MOVEIT_TRANSFER
            raw_log_field: body
            ingestion_labels:
                log_source: moveit_transfer
    
    service:
        pipelines:
            logs/moveit_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/moveit_transfer
    

Konfigurationsdatei speichern

Speichern Sie die Datei nach dem Bearbeiten: * Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X. * Windows: Klicken Sie auf Datei > Speichern.

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

So starten Sie den Bindplane-Agent unter Linux neu:

  1. Führen Sie dazu diesen Befehl aus:

    sudo systemctl restart observiq-otel-collector
    
  2. Prüfen Sie, ob der Dienst ausgeführt wird:

    sudo systemctl status observiq-otel-collector
    
  3. Logs auf Fehler prüfen:

    sudo journalctl -u observiq-otel-collector -f
    

So starten Sie den Bindplane-Agent unter Windows neu:

  1. Wählen Sie eine der folgenden Optionen aus:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services-Konsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Syslog-Weiterleitung für Progress MOVEit Transfer konfigurieren

So konfigurieren Sie MOVEit Transfer, um Audit-Logeinträge über Syslog an den BindPlane-Agent weiterzuleiten:

  1. Melden Sie sich in der MOVEit Transfer-Web-Administrationskonsole als Nutzer mit SysAdmin-Berechtigungen an.
  2. Gehen Sie zu EINSTELLUNGEN > System > Überprüfung > Syslog. Die Seite Syslog-Einstellungen konfigurieren wird angezeigt.
  3. Wählen Sie im Abschnitt Syslog-Logging die Option Aktiviert aus. Wenn diese Option aktiviert ist, wird jeder Audit-Logeintrag an den angegebenen Syslog-Host sowie an die MOVEit Transfer-Audit-Datenbank gesendet.
  4. Geben Sie im Feld Syslog Host (Syslog-Host) die IP-Adresse oder den Hostnamen des Bindplane-Agent-Hosts ein, z. B. 192.168.1.100.
  5. Geben Sie im Feld Syslog Port (Syslog-Port) den Wert 514 ein. Wenn dieses Feld leer gelassen wird, wird der Standardport 514 verwendet.

  6. Wählen Sie im Drop-down-Menü Syslog Facility (Syslog-Einrichtung) die Einrichtung aus, unter der MOVEit Transfer-Syslog-Meldungen auf dem Remote-Syslog-Host angezeigt werden. Der Standardwert ist FTP. Die folgenden Standard-Syslog-Einrichtungen sind verfügbar:

    • KERN
    • NUTZER
    • MAIL
    • DAEMON
    • AUTH
    • SYSLOG
    • LPR
    • NEUIGKEITEN
    • UUCP
    • CRON
    • AUTHPRIV
    • FTP (Standard)
    • LOCAL0 bis LOCAL7
  7. Klicken Sie auf Logging-Einstellungen ändern, um die Konfiguration zu speichern.

  8. Klicken Sie auf Test-Syslog-Nachricht senden, um eine Testnachricht an den angegebenen Bindplane-Agent-Host zu senden. Da die BSD Syslog-Implementierung auf UDP basiert, müssen Sie manuell überprüfen, ob die Testnachricht angekommen ist. Sehen Sie dazu in den Bindplane-Agent-Logs nach.

  9. Prüfen Sie, ob die Testnachricht vom Bindplane-Agenten empfangen wurde:

    • Linux:

      sudo journalctl -u observiq-otel-collector -f
      
    • Windows:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

Firewallanforderungen

Achten Sie darauf, dass die folgende Firewallregel vorhanden ist, um Syslog-Traffic von MOVEit Transfer zum Bindplane-Agenten zuzulassen:

Richtung Protokoll Quelle Ziel Port
Ausgehend von MOVEit Transfer UDP IP-Adresse des MOVEit Transfer-Servers Bindplane-Agent-Host-IP 514

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Spalte1 metadata.collected_timestamp Konvertiert mit Mustern für den Datumsabgleich: d/M/yyyy H:mm:ss A, M/d/yyyy H:mm:ss A, MM/dd/yyyy HH:mm:ss A
Spalte1 metadata.event_timestamp Konvertiert mit Mustern für den Datumsabgleich: d/M/yyyy H:mm:ss A, M/d/yyyy H:mm:ss A, MM/dd/yyyy HH:mm:ss A
Spalte2 security_result.action_details Wert direkt kopiert
Spalte3 target.hostname, target.asset.hostname Wert direkt aus Spalte 3 kopiert
Spalte4 principal.ip, principal.asset.ip Aus „column4“ extrahiert, wobei das Grok-Muster für IP verwendet wurde
column6 target.file.full_path Wird aus „folderPath“ und „fileName“ verkettet, wenn beide vorhanden sind, andernfalls nur aus „fileName“.
column7 target.file.full_path
column15 target.file.full_path
column7 target.user.email_addresses Zusammengeführt, wenn column2 == file_sentemail
column10 metadata.description Wert direkt kopiert
column11 metadata.product_event_type Wert wird direkt kopiert, wenn er nicht „None“ ist.
column12 target.ip, target.asset.ip Aus „column12“ extrahiert, wobei das Grok-Muster für IP verwendet wurde
column16 target.file.full_path Wird aus „folderPath“ und „fileName“ verkettet, wenn beide vorhanden sind, andernfalls nur aus „fileName“.
column23 target.file.full_path
column19 target.user.user_display_name Der Wert wird direkt kopiert, wenn „column2“ == „file_sentemail“ und „column8“ == „sender“. Andernfalls wird der Wert für den Zielnutzer kopiert.
event_received_time metadata.collected_timestamp Konvertiert mit Datumsabgleichsmustern: UNIX_MS, TT/MM/JJJJ HH:mm:ss, JJJJ-MM-TT HH:mm:ss, MM/TT/JJJJ HH:mm:ss A, JJJJ/MM/TT HH:mm:ss, RFC3339, JJJJ-MM-TTTHH:mm:ss
timestamp metadata.event_timestamp Konvertiert mit Mustern für den Datumsabgleich: MMM d HH:mm:ss, MMM dd HH:mm:ss, ISO8601, yyyy-MM-dd HH:mm:ss, yyyy-MM-dd HH:mm:ss Z, MM/dd/yyyy HH:mm:ss A, yy-MM-dd HH:mm:ss, RFC3339, yyyy-MM-ddTHH:mm:ss
prin_ip principal.ip, principal.asset.ip Wert direkt kopiert
AgentVersion metadata.product_version Wert direkt kopiert
principal_host hauptkonto.hostname, hauptkonto.asset.hostname Wert direkt kopiert
Nutzername principal.user.userid Wert direkt kopiert
company_name principal.user.company_name Wert direkt kopiert
ID target.process.pid Wert direkt kopiert
InstID metadata.product_log_id Wert direkt kopiert
FileID target.resource.attribute.labels Zusammengeführt als „additional_id_2“ mit dem Schlüssel „FileID“ und dem Wert aus „FileID“
FolderID target.resource.attribute.labels Zusammengeführt als „additional_id_3“ mit dem Schlüssel „FolderID“ und dem Wert aus „FolderID“
FolderPath target.file.full_path Wird aus FolderPath und FileName verkettet, wenn beide vorhanden sind, andernfalls aus FolderPath.
FileName target.file.full_path
FileName target.resource.attribute.labels Zusammengeführt als Dateiname mit dem Schlüssel „FileName“ und dem Wert aus „FileName“
Host hauptkonto.hostname, hauptkonto.asset.hostname Wert direkt kopiert
log_level security_result.severity Auf INFORMATIONAL setzen, wenn INFO oder DEBUG, auf ERROR, wenn ERROR
source_module_name observer.resource.attribute.labels Als „source_module_label“ mit dem Schlüssel „source_module_name“ und dem Wert aus „source_module_name“ zusammengeführt
source_module_type observer.application Wert direkt kopiert
log_msg metadata.description Wert aus „log_msg“, wenn „http_method“ != GET und „file_path“ leer ist, andernfalls „log_desc“, andernfalls „description“, andernfalls „Message“
log_desc metadata.description
Beschreibung metadata.description
Nachricht metadata.description
Port principal.port Wert direkt kopiert, in Ganzzahl konvertiert
tgtport target.port Wert direkt kopiert, in Ganzzahl konvertiert
Paket principal.process.command_line Wert direkt kopiert
srcip principal.ip, principal.asset.ip Wert direkt kopiert
Nutzername principal.user.userid Wert direkt kopiert
Version metadata.product_version Wert direkt kopiert
http_method network.http.method Wert direkt kopiert
Aktion security_result.action_details Wert direkt kopiert
Zusammenfassung security_result.summary Wert direkt kopiert
security_result security_result Direkt zusammengeführt
tgtip target.ip, target.asset.ip Wert direkt kopiert
application_proto network.application_protocol In Großbuchstaben und direkt kopiert
URL network.http.referral_url Wert direkt kopiert
status_code network.http.response_code Wert direkt kopiert, in Ganzzahl konvertiert
file_path principal.process.file.full_path Wert direkt kopiert
file_size principal.process.file.size In „uinteger“ umgewandelt, wenn nicht 0
process_id principal.process.pid Wert direkt kopiert
session_id network.session_id Wert direkt kopiert
task_id additional.fields Zusammengeführt als „additional_field“ mit dem Schlüssel „TASK_ID“ und „string_value“ aus „task_id“
AgentBrand metadata.product_event_type Wert direkt kopiert
Parm1 additional.fields Zusammengeführt als „additional_field_3“ mit dem Schlüssel „Parm1“ und dem „string_value“ aus „Parm1“
Parm2 additional.fields Zusammengeführt als „additional_field_4“ mit dem Schlüssel „Parm2“ und dem „string_value“ aus „Parm2“
Fehler additional.fields Zusammengeführt als „additional_field_5“ mit dem Schlüssel „Error“ und „string_value“ aus „Error“
XFerSize target.resource.attribute.labels Zusammengeführt als „additional_field_1“ mit dem Schlüssel „XFerSize“ und dem Wert aus „XFerSize“
FolderPath metadata.event_type Auf FILE_DELETION setzen, wenn FolderPath und action_performed mit „Datei löschen“ übereinstimmen, NETWORK_HTTP, wenn tgtip oder host und application_proto == HTTP, USER_LOGIN, wenn Username oder username, STATUS_UPDATE, wenn tgtip oder host oder principal_host oder IPAddress, andernfalls GENERIC_EVENT
tgtip metadata.event_type
Host metadata.event_type
principal_host metadata.event_type
IPAddress metadata.event_type
Nutzername metadata.event_type
Nutzername metadata.event_type
tgtip metadata.event_type Auf USER_LOGIN setzen, wenn column2 == sec_signon und tgtip oder tar_host, USER_LOGOUT, wenn sec_signoff und tgtip oder tar_host, FILE_UNCATEGORIZED, wenn folder_add, FILE_CREATION, wenn file_upload oder download und tgtip und is_tgt_file_present, FILE_DELETION, wenn file_delete und srcip und is_tgt_file_present, FILE_MODIFICATION, wenn file_rename, FILE_UNCATEGORIZED, wenn file_dlhashchk, EMAIL_TRANSACTION, wenn file_sentemail und useremail, STATUS_UPDATE, wenn srcip, andernfalls GENERIC_EVENT
tar_host metadata.event_type
srcip metadata.event_type
is_tgt_file_present metadata.event_type
Spalte2 metadata.event_type
useremail metadata.event_type
security_result metadata.event_type
extensions.auth.type extensions.auth.type Auf MACHINE für Anmelde-/Abmeldeereignisse festgelegt
metadata.vendor_name metadata.vendor_name Auf „IPS“ festgelegt
metadata.product_name metadata.product_name Auf „IPSWITCH MOVEIT TRANSFER“ festlegen

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