VSFTPD-Logs erfassen
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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- 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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- 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
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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
- 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).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
- Melden Sie sich beim VSFTPD-Host an.
Führen Sie den folgenden Befehl aus, um rsyslog unter Ubuntu/Debian zu installieren:
sudo apt install rsyslog
Führen Sie den folgenden Befehl aus, um rsyslog in CentOS/RHEL zu installieren:
sudo yum install rsyslog
Bearbeiten Sie die vsftpd-Konfiguration, um Syslog zu verwenden:
sudo vi /etc/vsftpd.conf
Achten Sie darauf, dass die folgenden Parameter festgelegt sind:
syslog_enable=YES xferlog_enable=NO log_ftp_protocol=YES
Speichern Sie die Datei und beenden Sie den Vorgang.
Starten Sie vsftpd neu:
sudo systemctl restart vsftpd
Bearbeiten Sie die rsyslog-Konfiguration, um Logs an den BindPlane-Agenten weiterzuleiten:
sudo nano /etc/rsyslog.d/90-vsftpd.conf
Fügen Sie die folgende Zeile hinzu, um Logs über
UDP
weiterzuleiten (Standardport514
):if ($programname == 'vsftpd') then @@BINDPLANE_IP:514
Ersetzen Sie
BINDPLANE_IP
durch die tatsächliche IP-Adresse des Bindplane-Agents.- Verwenden Sie
@
für UDP und@@
für TCP.
- Verwenden Sie
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