Mengumpulkan log pemberitahuan Broker Keamanan Akses Cloud (CASB) Zscaler
Dokumen ini menjelaskan cara mengumpulkan log pemberitahuan Zscaler Cloud Access Security Broker (CASB). Parser ini mengekstrak kolom dari log berformat JSON, yang menangani potensi inkonsistensi pemformatan. Fungsi ini memetakan kolom yang diekstrak ke UDM, membuat atau menggabungkan kolom dalam objek principal
, metadata
, additional
, dan security_result
, dan pada akhirnya menggabungkan semuanya ke dalam kolom @output
terpadu. Parser juga melakukan beberapa transformasi data, termasuk manipulasi string dan penguraian tanggal.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di balik proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses administratif ke ZScaler.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal Agen BindPlane
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
Jalankan perintah berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Referensi Penginstalan Tambahan
- Untuk opsi penginstalan tambahan, lihat panduan penginstalan ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps
Akses file konfigurasi:
- Cari file
config.yaml
. Biasanya, file ini berada di direktori/etc/bindplane-agent/
di Linux atau di direktori penginstalan di Windows. - Buka file menggunakan editor teks (misalnya,
nano
,vi
, atau Notepad).
- Cari file
Edit file
config.yaml
sebagai berikut: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
Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
Ganti
<customer_id>
dengan ID Pelanggan yang sebenarnya.Perbarui
/path/to/ingestion-authentication-file.json
ke jalur tempat file autentikasi disimpan di bagian Mendapatkan file autentikasi penyerapan Google SecOps.
Mulai ulang Agen BindPlane untuk menerapkan perubahan
Di Linux, untuk memulai ulang Agen BindPlane, jalankan perintah berikut:
sudo systemctl restart bindplane-agent
Di Windows, untuk memulai ulang Agen BindPlane, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi Zscaler Cloud Web Security
- Login ke konsol Admin Zscaler Analytics.
- Pilih Administrasi > Setelan > Layanan streaming Nanolog (NSS).
- Pilih Feed NSS.
- Klik Tambahkan.
Di jendela Add NSS feed yang muncul, lakukan hal berikut:
- Nama feed: masukkan nama feed.
- Jenis NSS: pilih NSS untuk web atau NSS untuk firewall, bergantung pada persyaratan Anda.
- NSS name: pilih virtual machine (VM) NSS yang mengumpulkan log dari cloud (hanya satu VM NSS yang dapat dipetakan ke feed).
- Status: pilih Enabled untuk mengaktifkan feed.
- SIEM IP: masukkan alamat IP server syslog/Bindplane.
- Port TCP SIEM: masukkan nomor port server syslog/Bindplane untuk komunikasi TCP (Zscaler hanya mendukung koneksi TCP).
- Jenis log: pilih Log web atau Log firewall berdasarkan jenis NSS yang dipilih.
- Jenis output feed: pilih Kustom.
- Format output feed: tentukan log web atau log firewall.
- Obfuscation pengguna: pilih Nonaktif untuk menampilkan nama pengguna login dalam output. Untuk nilai acak, pilih Aktifkan.
- Zona waktu: pilih zona waktu yang sesuai (zona waktu default adalah GMT).
- Log duplikat: masukkan jumlah menit yang diperlukan NSS untuk mengirim log duplikat (Anda dapat memilih waktu berdasarkan persyaratan Anda).
- Filter transaksi: ada berbagai parameter yang tersedia berdasarkan parameter tersebut, Anda dapat memfilter log yang dikirim oleh Virtual Machine NSS.
Untuk informasi selengkapnya tentang berbagai kumpulan filter, lihat bagian dokumen NSS di Portal bantuan.
Gunakan konsol admin Kebijakan atau konsol admin Analytics:
- Untuk menggunakan konsol admin Kebijakan, klik Selesai.
- Untuk menggunakan konsol admin Analytics, klik Simpan. Setelah jendela Tambahkan feed NSS ditutup, kembali ke jendela sebelumnya, dan detail feed yang ditambahkan akan ditampilkan di bagian Konfigurasi feed.
Gunakan konsol admin Kebijakan atau konsol admin Analytics:
- Untuk menggunakan konsol admin Kebijakan, lakukan tindakan berikut:
- Di bagian Konfigurasi feed, klik Simpan.
- Klik Aktifkan sekarang (status hasilnya akan muncul di jendela baru).
- Klik Done.
- Untuk menggunakan konsol admin Analytics, klik Aktifkan sekarang (status hasilnya akan muncul di bagian atas jendela).
- Untuk menggunakan konsol admin Kebijakan, lakukan tindakan berikut:
Mengonfigurasi feed log web dan firewall
Di kolom Format output feed, gunakan feed berikut:
Jika pengumpulan mendukung format yang disesuaikan, tentukan feed log web berikut:
|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 ```
Jika kolektor mendukung langganan feed firewall, tentukan feed firewall berikut:
|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
Mengonfigurasi Akses Pribadi Zscaler
- Aktivitas pengguna: pilih Jenis log.
- Template log: pilih CSV.
Aliran log: jalankan perintah berikut:
*%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*
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
applicationname |
principal.application |
Nilai applicationname dari log mentah ditetapkan ke kolom UDM ini. |
company |
principal.user.company_name |
Nilai company dari log mentah ditetapkan ke kolom UDM ini. |
datetime |
metadata.event_timestamp |
Nilai datetime dari log mentah diuraikan dan dikonversi menjadi stempel waktu, yang kemudian ditetapkan ke kolom UDM ini. Parser menggunakan beberapa format tanggal untuk menangani variasi dalam log mentah. |
dept |
principal.user.department |
Nilai dept dari log mentah ditetapkan ke kolom UDM ini. |
dlpdictcount |
additional.fields |
Jika dlpdictcount ada dan bukan "None" atau kosong dalam log mentah, kolom baru dengan kunci "dlpdictcount" dan nilai string dlpdictcount akan ditambahkan ke array additional.fields . |
dlpdictnames |
additional.fields |
Jika dlpdictnames ada dan bukan "None" atau kosong dalam log mentah, kolom baru dengan kunci "dlpdictnames" dan nilai string dlpdictnames akan ditambahkan ke array additional.fields . |
dlpenginenames |
additional.fields |
Jika dlpenginenames ada dan bukan "None" atau kosong dalam log mentah, kolom baru dengan kunci "dlpenginenames" dan nilai string dlpenginenames akan ditambahkan ke array additional.fields . |
event.extcollabnames |
additional.fields |
Jika extcollabnames ada dalam log mentah, extcollabnames akan dibagi oleh " |
event.extownername |
additional.fields |
Jika extownername ada dalam log mentah, kolom baru dengan kunci "extownername" dan nilai string extownername akan ditambahkan ke array additional.fields . |
filedownloadtimems |
additional.fields |
Jika filedownloadtimems ada dalam log mentah, kolom baru dengan kunci "Waktu Download File" dan nilai string filedownloadtimems akan ditambahkan ke array additional.fields . |
fileid |
additional.fields |
Jika fileid ada dalam log mentah, kolom baru dengan kunci "fileid" dan nilai string fileid akan ditambahkan ke array additional.fields . |
filename |
principal.process.file.full_path |
Nilai filename dari log mentah ditetapkan ke kolom UDM ini. Parser menangani karakter yang di-escape dan kasus khusus dalam nama file. |
filemd5 |
principal.process.file.md5 |
Jika filemd5 ada dan bukan "None" atau kosong dalam log mentah, nilainya akan ditetapkan ke kolom UDM ini. |
filescantimems |
additional.fields |
Jika filescantimems ada dalam log mentah, kolom baru dengan kunci "File Scan Time" dan nilai string filescantimems akan ditambahkan ke array additional.fields . |
filesource |
additional.fields |
Jika filesource ada dalam log mentah, kolom baru dengan kunci "File Source" dan nilai string filesource akan ditambahkan ke array additional.fields . Parser menangani karakter yang di-escape dan kasus khusus di filesource. |
fullurl |
principal.url |
Jika fullurl ada dan bukan "URL Tidak Diketahui" atau kosong dalam log mentah, nilainya akan ditetapkan ke kolom UDM ini. |
intcollabnames |
additional.fields |
Jika intcollabnames ada dalam log mentah, intcollabnames akan dibagi oleh " |
lastmodtime |
metadata.event_timestamp |
Jika ada dalam log mentah, lastmodtime akan diuraikan dan dikonversi menjadi stempel waktu, yang kemudian ditetapkan ke kolom UDM ini. Parser menggunakan beberapa format tanggal untuk menangani variasi dalam log mentah. |
login |
principal.user.email_addresses , principal.user.userid |
Jika login ada dan cocok dengan format alamat email, nilainya akan ditetapkan ke principal.user.email_addresses dan principal.user.userid . Jika login ada, tetapi tidak cocok dengan format alamat email, nilainya hanya ditetapkan ke principal.user.userid . Jika login tidak ada, principal.user.userid akan ditetapkan ke "t/a". |
policy |
security_result.rule_name |
Jika policy ada dan bukan "None" atau kosong dalam log mentah, nilainya akan ditetapkan ke kolom UDM ini. |
recordid |
metadata.product_log_id |
Jika recordid ada dalam log mentah, nilainya akan ditetapkan ke kolom UDM ini. |
tenant |
additional.fields |
Jika tenant ada dalam log mentah, kolom baru dengan kunci "Tenant" dan nilai string tenant akan ditambahkan ke array additional.fields . |
threatname |
security_result.threat_name |
Jika threatname ada dan bukan "None" atau kosong dalam log mentah, nilainya akan ditetapkan ke kolom UDM ini. |
(Logika Parser) | metadata.event_type |
Parser menetapkan kolom ini ke "USER_UNCATEGORIZED". |
(Logika Parser) | metadata.log_type |
Parser menetapkan kolom ini ke "ZSCALER_CASB". |
(Logika Parser) | metadata.product_name |
Parser menetapkan kolom ini ke "Zscaler CASB". |
(Logika Parser) | metadata.vendor_name |
Parser menetapkan kolom ini ke "Zscaler". |
Perubahan
2024-06-04
- Menambahkan fungsi "gsub" untuk menangani karakter escape yang tidak valid di kolom berikut: "filename", "fileid", "filemd5", dan "filesource".
2024-03-27
- Menambahkan fungsi "gsub" untuk menangani karakter escape yang tidak valid di "filename".
2024-03-05
- Memetakan "event.fileid", "event.intcollabnames", "event.extownername", "event.extcollabnames" ke "additional.fields".
2024-01-29
- Menambahkan fungsi "gsubs" untuk menangani karakter escape yang tidak valid, "," di "filesource".
- Menambahkan fungsi "gsubs" untuk menangani karakter escape yang tidak valid di "filename".
2023-12-21
- Menambahkan gsubs untuk menangani karakter yang tidak valid untuk log JSON yang tidak diuraikan.
2023-09-30
- Memetakan "event.login" ke "principal.user.userid". Jika tidak tersedia, tetapkan "principal.user.userid" ke "t/a".
- Menambahkan pemeriksaan "on_error" untuk filter "date" sebagai "event.lastmodtime" yang merupakan parameter opsional.
2022-08-16
- Parser yang baru dibuat