Zscaler Cloud Access Security Broker (CASB)-Benachrichtigungsprotokolle erfassen
In diesem Dokument wird beschrieben, wie Sie die Benachrichtigungsprotokolle des Zscaler Cloud Access Security Broker (CASB) erfassen. Dieser Parser extrahiert Felder aus JSON-formatierten Protokollen und behandelt mögliche Formatierungsinkonsistenzen. Es ordnet extrahierte Felder dem UDM zu, erstellt oder verschmilzt Felder in principal
-, metadata
-, additional
- und security_result
-Objekten und führt sie schließlich in einem einheitlichen @output
-Feld zusammen. Der Parser führt auch mehrere Datentransformationen durch, einschließlich Stringmanipulation und Datums-Parsing.
Hinweis
- Sie benötigen eine Google Security Operations-Instanz.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Sie benötigen Administratorzugriff auf ZScaler.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei zur Authentifizierung der Datenaufnahme 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 Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die 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 in diesem Installationsleitfaden.
BindPlane-Agent so konfigurieren, dass er Syslog-Protokolle aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Unter Linux befindet es sich normalerweise im Verzeichnis/etc/bindplane-agent/
, 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: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: vmware_nsx raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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 Kundennummer.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.
BindPlane-Agent neu starten, um die Änderungen anzuwenden
Führen Sie unter Linux den folgenden Befehl aus, um den BindPlane-Agent neu zu starten:
sudo systemctl restart bindplane-agent
Unter Windows können Sie den BindPlane-Agenten entweder über die Konsole Dienste oder über den folgenden Befehl neu starten:
net stop BindPlaneAgent && net start BindPlaneAgent
Zscaler Cloud Web Security konfigurieren
- Melden Sie sich in der Admin-Konsole von Zscaler Analytics an.
- Wählen Sie Verwaltung > Einstellungen > Nanolog-Streamingdienst (NSS) aus.
- Wählen Sie NSS-Feeds aus.
- Klicken Sie auf Hinzufügen.
Führen Sie im angezeigten Fenster NSS-Feed hinzufügen die folgenden Schritte aus:
- Feedname: Geben Sie den Feednamen ein.
- NSS-Typ: Wählen Sie je nach Ihren Anforderungen entweder NSS für das Web oder NSS für die Firewall aus.
- NSS-Name: Wählen Sie die NSS-VM aus, die Protokolle aus der Cloud erfasst. Einem Feed kann nur eine NSS-VM zugeordnet werden.
- Status: Wählen Sie Aktiviert aus, um den Feed zu aktivieren.
- SIEM-IP: Geben Sie die IP-Adresse des syslog-Servers/Bindplanes ein.
- SIEM-TCP-Port: Geben Sie die Portnummer des Syslog-Servers/Bindplanes für die TCP-Kommunikation ein. Zscaler unterstützt nur die TCP-Verbindung.
- Logtyp: Wählen Sie je nach ausgewähltem NSS-Typ Webprotokoll oder Firewallprotokolle aus.
- Feedausgabetyp: Wählen Sie Benutzerdefiniert aus.
- Feed-Ausgabeformat: Geben Sie das Webprotokoll oder Firewallprotokoll an.
- User obfuscation (Nutzerverschleierung): Wählen Sie Disabled (Deaktiviert) aus, um die Anmeldenamen in der Ausgabe anzuzeigen. Wählen Sie für Zufallszahlen Aktiviert aus.
- Zeitzone: Wählen Sie die richtige Zeitzone aus. Die Standardzeitzone ist GMT.
- Duplizierte Protokolle: Geben Sie die Anzahl der Minuten ein, die NSS für das Senden der duplizierten Protokolle benötigt. Sie können die Zeit entsprechend Ihren Anforderungen auswählen.
- Transaktionsfilter: Es gibt verschiedene Parameter, anhand derer Sie die von der NSS-VM gesendeten Protokolle filtern können.
Weitere Informationen zu den verschiedenen Filtersätzen finden Sie im Abschnitt zu NSS-Dokumenten im Hilfeportal.
Verwenden Sie die Policy Admin Console oder die Analytics Admin Console:
- Klicken Sie auf Fertig, um die Richtlinien-Admin-Konsole zu verwenden.
- Wenn Sie die Analytics-Admin-Konsole verwenden möchten, klicken Sie auf Speichern. Nachdem Sie das Fenster NSS-Feed hinzufügen geschlossen haben, kehren Sie zum vorherigen Fenster zurück. Die hinzugefügten Feeddetails werden dann im Bereich Feeds konfigurieren angezeigt.
Verwenden Sie die Policy Admin Console oder die Analytics Admin Console:
- So verwenden Sie die Policy Admin Console:
- Klicken Sie im Bereich Feeds konfigurieren auf Speichern.
- Klicken Sie auf Jetzt aktivieren. Der Status des Ergebnisses wird in einem neuen Fenster angezeigt.
- Klicken Sie auf Fertig.
- Wenn Sie die Analytics-Admin-Konsole verwenden möchten, klicken Sie auf Jetzt aktivieren. Der Status des Ergebnisses wird oben im Fenster angezeigt.
- So verwenden Sie die Policy Admin Console:
Web- und Firewall-Logfeed konfigurieren
Verwenden Sie im Feld Feedausgabeformat die folgenden Feeds:
Wenn der Dispatcher ein benutzerdefiniertes Format unterstützt, geben Sie den folgenden Webprotokollfeed an:
|ZSCALER|DATE|%s{mon} %d{dd} %02d{hh}:%02d{mm}:%02d{ss}|NSSFEEDIP|%s{nsssvcip}|CLIENTINTIP|%s{cintip}|RECORDID|%d{recordid}|LOGINNAME|%s{login}|PROTOCOL|%s{proto}|URL|%s{url}|HOST|%s{host}|ACTION|%s{action}|REASON|%s{reason}|RISKSCORE|%d{riskscore}|APPNAME|%s{appname}|APPCLASS|%s{appclass}|REQSIZE|%d{reqsize}|RESPSIZE|%d{respsize}|CTIME|%d{ctime}|URLCLASS|%s{urlclass}|SUPERCAT|%s{urlsupercat}|URLCAT|%s{urlcat}|MALWARECAT|%s{malwarecat}|MALWARECLASS|%s{malwareclass}|THREATNAME|%s{threatname}|FILETYPE|%s{filetype}|FILECLASS|%s{fileclass}|DLPENGINE|%s{dlpeng}|DLPDICT|%s{dlpdict}|BWTHROTTLE|%s{bwthrottle}|LOCATION|%s{location}|DEPARTMENT|%s{dept}|CLIENTIP|%s{cip}|DESTINATIONIP|%s{sip}|REQMETHOD|%s{reqmethod}|RESPCODE|%s{respcode}|USERAGENT|%s{ua}|REFERER|%s{referer}|MD5HASH|%s{bamd5}|DLPRULENAME|%s{dlprulename}|DLPMD5|%s{dlpmd5}|DLPIDENTIFIER|%d{dlpidentifier}|DLPDICTHITCOUNT|%s{dlpdicthitcount}|\n ```
Wenn der Collector das Abonnieren von Firewall-Feeds unterstützt, geben Sie den folgenden Firewall-Feed an:
|ZSCALERFIREWALL|DATE|%s{mon}%d{dd} %02d{hh}:%02d{mm}:%02d{ss}|CLIENTIP|%s{csip}|RECORDID|%d{recordid}|LOGINNAME|%s{login}|PROTOCOL|%s{ipproto}|ACTION|%s{action}|DESTINATIONIP|%s{cdip}|SOURCEPORT|%d{csport}|DESTINATIONPORT|%d{cdport}|CLIENTTUNIP|%s{tsip}|CLIENTTUNPORT|%d{tsport}|LOCATION|%s{location}|DEPARTMENT|%s{dept}|DESTINATIONCOUNTRY|%s{destcountry}|INCOMINGBYTES|%ld{inbytes}|NETWORKAPP|%s{nwapp}|NETWORKSVC|%s{nwsvc}|RULELABEL|%s{rulelabel}|NATTING|%s{dnat}|SESSIONDURATION|%d{duration}|AGGREGATEDSESSION|%d{numsessions}|AVERAGEDURATION|%d{avgduration}|TUNNELTYPE|%s{ttype}|SERVERDESTPORT|%d{sdport}|SERVERSOURCEIP|%s{ssip}|SERVERSOURCEPORT|%d{ssport}|IPCAT|%s{ipcat}|\n
Zscaler Private Access konfigurieren
- Nutzeraktivität: Wählen Sie Protokolltyp aus.
- Protokollvorlage: Wählen Sie CSV aus.
Protokollstream: Führen Sie den folgenden Befehl aus:
*%s{LogTimestamp:time} User Activity zpa-lss: %s{Username},%d{ServicePort},%s{ClientPublicIP},%s{ClientCountryCode},%s{ConnectionStatus},%d{IPProtocol},%s{ClientZEN},%s{Policy},%s{Connector},%s{ConnectorZEN},%s{ConnectorIP},%s{Host},%s{ServerIP},%s{TimestampConnectionStart:iso8601},%d{ServerPort}\n*
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
applicationname |
principal.application |
Dem UDM-Feld wird der Wert applicationname aus dem Rohprotokoll zugewiesen. |
company |
principal.user.company_name |
Dem UDM-Feld wird der Wert company aus dem Rohprotokoll zugewiesen. |
datetime |
metadata.event_timestamp |
Der Wert von datetime aus dem Rohprotokoll wird analysiert und in einen Zeitstempel umgewandelt, der dann diesem UDM-Feld zugewiesen wird. Der Parser verwendet mehrere Datumsformate, um Abweichungen im Rohprotokoll zu verarbeiten. |
dept |
principal.user.department |
Dem UDM-Feld wird der Wert dept aus dem Rohprotokoll zugewiesen. |
dlpdictcount |
additional.fields |
Wenn dlpdictcount im Rohprotokoll vorhanden ist und nicht „None“ oder leer ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „dlpdictcount“ und dem Stringwert dlpdictcount hinzugefügt. |
dlpdictnames |
additional.fields |
Wenn dlpdictnames im Rohprotokoll vorhanden ist und nicht „None“ oder leer ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „dlpdictnames“ und dem Stringwert dlpdictnames hinzugefügt. |
dlpenginenames |
additional.fields |
Wenn dlpenginenames im Rohprotokoll vorhanden ist und nicht „None“ oder leer ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „dlpenginenames“ und dem Stringwert dlpenginenames hinzugefügt. |
event.extcollabnames |
additional.fields |
Wenn extcollabnames im Rohprotokoll vorhanden ist, wird es durch „ |
event.extownername |
additional.fields |
Wenn extownername im Rohprotokoll vorhanden ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „extownername“ und dem Stringwert extownername hinzugefügt. |
filedownloadtimems |
additional.fields |
Wenn filedownloadtimems im Rohprotokoll vorhanden ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „Dateidownloadzeit“ und dem Stringwert filedownloadtimems hinzugefügt. |
fileid |
additional.fields |
Wenn fileid im Rohprotokoll vorhanden ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „fileid“ und dem Stringwert fileid hinzugefügt. |
filename |
principal.process.file.full_path |
Dem UDM-Feld wird der Wert filename aus dem Rohprotokoll zugewiesen. Der Parser verarbeitet Escape-Zeichen und Sonderfälle im Dateinamen. |
filemd5 |
principal.process.file.md5 |
Wenn filemd5 im Rohprotokoll vorhanden ist und nicht „Kein“ oder leer ist, wird sein Wert diesem UDM-Feld zugewiesen. |
filescantimems |
additional.fields |
Wenn filescantimems im Rohprotokoll vorhanden ist, wird dem additional.fields -Array ein neues Feld mit dem Schlüssel „Dateisuchzeit“ und dem Stringwert filescantimems hinzugefügt. |
filesource |
additional.fields |
Wenn filesource im Rohprotokoll vorhanden ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „Dateiquelle“ und dem Stringwert filesource hinzugefügt. Der Parser verarbeitet Escape-Zeichen und Sonderfälle in der Dateiquelle. |
fullurl |
principal.url |
Wenn fullurl im Rohprotokoll vorhanden ist und nicht „Unbekannte URL“ oder leer ist, wird sein Wert diesem UDM-Feld zugewiesen. |
intcollabnames |
additional.fields |
Wenn intcollabnames im Rohprotokoll vorhanden ist, wird es durch „ |
lastmodtime |
metadata.event_timestamp |
Wenn lastmodtime im Rohprotokoll vorhanden ist, wird es geparst und in einen Zeitstempel umgewandelt, der dann diesem UDM-Feld zugewiesen wird. Der Parser verwendet mehrere Datumsformate, um Abweichungen im Rohprotokoll zu verarbeiten. |
login |
principal.user.email_addresses , principal.user.userid |
Wenn login vorhanden ist und dem Format einer E-Mail-Adresse entspricht, wird ihr Wert sowohl principal.user.email_addresses als auch principal.user.userid zugewiesen. Wenn login vorhanden ist, aber nicht dem Format einer E-Mail-Adresse entspricht, wird sein Wert nur principal.user.userid zugewiesen. Wenn login nicht vorhanden ist, wird principal.user.userid auf „–“ festgelegt. |
policy |
security_result.rule_name |
Wenn policy im Rohprotokoll vorhanden ist und nicht „Kein“ oder leer ist, wird sein Wert diesem UDM-Feld zugewiesen. |
recordid |
metadata.product_log_id |
Wenn recordid im Rohprotokoll vorhanden ist, wird sein Wert diesem UDM-Feld zugewiesen. |
tenant |
additional.fields |
Wenn tenant im Rohprotokoll vorhanden ist, wird dem Array additional.fields ein neues Feld mit dem Schlüssel „Tenant“ und dem Stringwert tenant hinzugefügt. |
threatname |
security_result.threat_name |
Wenn threatname im Rohprotokoll vorhanden ist und nicht „Kein“ oder leer ist, wird sein Wert diesem UDM-Feld zugewiesen. |
(Parser Logic) | metadata.event_type |
Der Parser setzt dieses Feld auf „USER_UNCATEGORIZED“. |
(Parser Logic) | metadata.log_type |
Der Parser setzt dieses Feld auf „ZSCALER_CASB“. |
(Parser Logic) | metadata.product_name |
Der Parser setzt dieses Feld auf „Zscaler CASB“. |
(Parser Logic) | metadata.vendor_name |
Der Parser setzt dieses Feld auf „Zscaler“. |
Änderungen
2024-06-04
- Die Funktion „gsub“ wurde hinzugefügt, um ungültige Escape-Zeichen in den folgenden Feldern zu verarbeiten: „filename“, „fileid“, „filemd5“ und „filesource“.
2024-03-27
- Die Funktion „gsub“ wurde hinzugefügt, um ungültige Escape-Zeichen in „filename“ zu verarbeiten.
2024-03-05
- „event.fileid“, „event.intcollabnames“, „event.extownername“ und „event.extcollabnames“ wurden in „additional.fields“ zugeordnet.
2024-01-29
- Die Funktion „gsubs“ wurde hinzugefügt, um das ungültige Escape-Zeichen „,“ in „filesource“ zu verarbeiten.
- Die Funktion „gsubs“ wurde hinzugefügt, um ungültige Escape-Zeichen in „filename“ zu verarbeiten.
2023-12-21
- Gsubs wurde hinzugefügt, um ungültige Zeichen in nicht geparsten JSON-Protokollen zu verarbeiten.
2023-09-30
- „event.login“ wurde „principal.user.userid“ zugeordnet. Wenn nicht verfügbar, setzen Sie „principal.user.userid“ auf „–“.
- Für den „Datum“-Filter wurde die „on_error“-Prüfung „event.lastmodtime“ hinzugefügt, ein optionaler Parameter.
2022-08-16
- Neu erstellter Parser