Mengumpulkan log pemberitahuan Broker Keamanan Akses Cloud (CASB) Zscaler

Didukung di:

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

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Proses Transfer. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal Agen BindPlane

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. 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

Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps

  1. 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).
  2. 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
    
  3. Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.

  4. Ganti <customer_id> dengan ID Pelanggan yang sebenarnya.

  5. 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

  1. Login ke konsol Admin Zscaler Analytics.
  2. Pilih Administrasi > Setelan > Layanan streaming Nanolog (NSS).
  3. Pilih Feed NSS.
  4. Klik Tambahkan.
  5. Di jendela Add NSS feed yang muncul, lakukan hal berikut:

    1. Nama feed: masukkan nama feed.
    2. Jenis NSS: pilih NSS untuk web atau NSS untuk firewall, bergantung pada persyaratan Anda.
    3. NSS name: pilih virtual machine (VM) NSS yang mengumpulkan log dari cloud (hanya satu VM NSS yang dapat dipetakan ke feed).
    4. Status: pilih Enabled untuk mengaktifkan feed.
    5. SIEM IP: masukkan alamat IP server syslog/Bindplane.
    6. Port TCP SIEM: masukkan nomor port server syslog/Bindplane untuk komunikasi TCP (Zscaler hanya mendukung koneksi TCP).
    7. Jenis log: pilih Log web atau Log firewall berdasarkan jenis NSS yang dipilih.
    8. Jenis output feed: pilih Kustom.
    9. Format output feed: tentukan log web atau log firewall.
    10. Obfuscation pengguna: pilih Nonaktif untuk menampilkan nama pengguna login dalam output. Untuk nilai acak, pilih Aktifkan.
    11. Zona waktu: pilih zona waktu yang sesuai (zona waktu default adalah GMT).
    12. Log duplikat: masukkan jumlah menit yang diperlukan NSS untuk mengirim log duplikat (Anda dapat memilih waktu berdasarkan persyaratan Anda).
    13. 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.

  6. Gunakan konsol admin Kebijakan atau konsol admin Analytics:

    1. Untuk menggunakan konsol admin Kebijakan, klik Selesai.
    2. 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.
  7. Gunakan konsol admin Kebijakan atau konsol admin Analytics:

    1. 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.
    2. Untuk menggunakan konsol admin Analytics, klik Aktifkan sekarang (status hasilnya akan muncul di bagian atas jendela).

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

  1. Aktivitas pengguna: pilih Jenis log.
  2. Template log: pilih CSV.
  3. 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