VSFTPD-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie VSFTPD-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser verwendet Grok-Muster, um Felder aus den Logs zu extrahieren und sie der UDM zuzuordnen. Es verarbeitet verschiedene Log-Typen, darunter Anmeldungen, Uploads, Downloads und Verzeichnisvorgänge, und reichert die Daten mit zusätzlichem Kontext wie SSL/TLS-Informationen und Aktionen (zulassen/blockieren) an. Außerdem werden bestimmte Transformationen für verschiedene Logmeldungstypen durchgeführt, z. B. das Extrahieren von Antwortcodes und ‑beschreibungen sowie das Umwandeln von Dateigrößen in Ganzzahlen.

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, müssen die Firewallports geöffnet sein.
  • Privilegierter Zugriff auf den Host mit VSFTPD

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 sie 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
            log_type: 'VSFTPD'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
    • Ersetzen Sie <customer_id> durch die tatsächliche Kunden-ID.
    • 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
    

Syslog auf VSFTPD konfigurieren

  1. Melden Sie sich beim VSFTPD-Host an.
  2. Führen Sie den folgenden Befehl aus, um rsyslog unter Ubuntu/Debian zu installieren:

    sudo apt install rsyslog
    
  3. Führen Sie den folgenden Befehl aus, um rsyslog in CentOS/RHEL zu installieren:

    sudo yum install rsyslog
    
  4. Bearbeiten Sie die vsftpd-Konfiguration, um Syslog zu verwenden:

    sudo vi /etc/vsftpd.conf
    
  5. Achten Sie darauf, dass die folgenden Parameter festgelegt sind:

    syslog_enable=YES
    xferlog_enable=NO
    log_ftp_protocol=YES
    
  6. Speichern Sie die Datei und beenden Sie den Vorgang.

  7. Starten Sie vsftpd neu:

    sudo systemctl restart vsftpd
    
  8. Bearbeiten Sie die rsyslog-Konfiguration, um Logs an den BindPlane-Agenten weiterzuleiten:

    sudo nano /etc/rsyslog.d/90-vsftpd.conf
    
  9. Fügen Sie die folgende Zeile hinzu, um Logs über UDP weiterzuleiten (Standardport 514):

    if ($programname == 'vsftpd') then @@BINDPLANE_IP:514
    
  10. Ersetzen Sie BINDPLANE_IP durch die tatsächliche IP-Adresse des Bindplane-Agents.

    • Verwenden Sie @ für UDP und @@ für TCP.
  11. Starten Sie rsyslog neu:

    sudo systemctl restart rsyslog
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
certificate security_result.detection_fields.key: „cert“
security_result.detection_fields.value: Wert von certificate
Der Wert des Feldes certificate wird einem security_result.detection_fields-Objekt mit dem Schlüssel „cert“ zugeordnet.
cipher network.tls.cipher Der Wert des Felds cipher wird direkt zugeordnet.
client_ip principal.ip Der Wert des Felds client_ip wird direkt zugeordnet.
date metadata.event_timestamp Wird zusammen mit month, year und time verwendet, um die metadata.event_timestamp zu erstellen. Das Format wird aus dem Feld timestamp im Rohlog abgeleitet, geparst und in ein Zeitstempelobjekt konvertiert.
day metadata.event_timestamp Wird zusammen mit month, year und time verwendet, um die metadata.event_timestamp zu erstellen.
desc metadata.description Der Wert des Felds desc (aus dem Feld type extrahiert) wird direkt zugeordnet. Dies gilt für die Vorgänge „MKDIR“, „RMDIR“ und „DELETE“.
description network.ftp.command
security_result.description
target.file.full_path
Wenn type „FTP-Befehl“ ist, wird der Wert network.ftp.command zugeordnet. Wenn type „DEBUG“ ist und nicht mit bestimmten SSL-Mustern übereinstimmt, wird es security_result.description zugeordnet. Wenn type mit „OK“ beginnt und nicht „OK LOGIN“ ist und im Log ein Dateivorgang (MKDIR, RMDIR, DELETE) beschrieben wird, wird es target.file.full_path zugeordnet.
file_name target.file.full_path Der Wert des Felds file_name wird direkt zugeordnet.
file_size network.received_bytes
network.sent_bytes
Wenn type „OK DOWNLOAD“ oder „FAIL DOWNLOAD“ ist, wird der Wert in eine vorzeichenlose Ganzzahl konvertiert und network.received_bytes zugeordnet. Wenn type „OK UPLOAD“ oder „FAIL UPLOAD“ ist, wird der Wert in eine vorzeichenlose Ganzzahl konvertiert und network.sent_bytes zugeordnet. Auf „USER_LOGIN“ festlegen, wenn type „OK LOGIN“ ist. Auf „FILE_UNCATEGORIZED“ festlegen, wenn type mit Dateivorgängen zusammenhängt („OK UPLOAD“, „OK DOWNLOAD“, „FAIL DOWNLOAD“, „OK MKDIR“, „OK RMDIR“, „OK DELETE“, „FAIL UPLOAD“). Für alle anderen type-Werte auf „STATUS_UPDATE“ festlegen. Immer auf „VSFTPD“ festgelegt. Immer auf „VSFTPD“ festgelegt. Immer auf „VSFTPD“ festgelegt.
month metadata.event_timestamp Wird zusammen mit day, year und time verwendet, um die metadata.event_timestamp zu erstellen.
pid principal.process.pid Der Wert des Felds pid wird direkt zugeordnet.
response_code network.http.response_code Der Wert des Felds response_code wird in eine Ganzzahl konvertiert und zugeordnet.
reused_status security_result.detection_fields.key: „reused status“
security_result.detection_fields.value: Wert von reused_status
Der Wert des Felds reused_status wird dem security_result.detection_fields-Objekt mit dem Schlüssel „reused status“ zugeordnet.
speed additional.fields.key: „download_speed“ oder „upload_speed“
additional.fields.value.string_value: Wert von speed
Wenn type „OK DOWNLOAD“ oder „FAIL DOWNLOAD“ ist, wird der Wert mit dem Schlüssel „download_speed“ additional.fields zugeordnet. Wenn type „OK UPLOAD“ oder „FAIL UPLOAD“ ist, wird der Wert mit dem Schlüssel „upload_speed“ additional.fields zugeordnet.
ssl_shutdown_state security_result.detection_fields.key: „SSL Shutdown State“
security_result.detection_fields.value: Wert von ssl_shutdown_state
Der Wert des Feldes ssl_shutdown_state wird einem security_result.detection_fields-Objekt mit dem Schlüssel „SSL Shutdown State“ zugeordnet.
ssl_version network.tls.version Der Wert des Felds ssl_version wird direkt zugeordnet.
time metadata.event_timestamp Wird zusammen mit day, month und year verwendet, um die metadata.event_timestamp zu erstellen.
type metadata.description
security_result.action_details
Der Wert des Felds type wird metadata.description zugeordnet, außer wenn er „OK LOGIN“ ist. Sie wird auch security_result.action_details zugeordnet, wenn sie eine Zulassungs- oder Blockierungsaktion angibt (beginnt mit „OK“ oder „FAIL“).
userid principal.user.userid
target.user.userid
Wenn type „OK LOGIN“ ist, wird der Wert target.user.userid zugeordnet. Andernfalls wird sie principal.user.userid zugeordnet.
year metadata.event_timestamp Wird zusammen mit day, month und time verwendet, um die metadata.event_timestamp zu erstellen. Wird auf „NETWORK“ festgelegt, wenn type „OK LOGIN“ ist. Wird auf „MACHINE“ gesetzt, wenn type „OK LOGIN“ ist. Auf „ALLOW“ setzen, wenn type mit „OK“ beginnt. Auf „BLOCK“ setzen, wenn type mit „FAIL“ beginnt.

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