Mengumpulkan log CASB Symantec CloudSOC
Dokumen ini menjelaskan cara menyerap log Symantec CloudSOC ke
Google Security Operations menggunakan Bindplane. Parser mengekstrak log dari syslog atau pesan berformat JSON. Proses ini melakukan beberapa operasi utama: mengurai kolom pesan, mengonversi pesan ke JSON jika perlu, mengekstrak kolom, memetakannya ke Model Data Terpadu (UDM), dan memperkaya peristiwa dengan konteks tambahan seperti stempel waktu dan detail hasil keamanan. Parser juga menangani
berbagai format log dan melakukan tindakan tertentu berdasarkan kolom activity_type
untuk mengategorikan peristiwa dengan benar.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps
- Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
- Jika dijalankan di belakang proxy, port firewall terbuka
- Akses istimewa ke Symantec CloudSOC
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. 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.
Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya 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: 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: '/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 ingestion_labels: log_type: 'SYMANTEC_CASB' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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 Dapatkan file autentikasi penyerapan Google SecOps.
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart bindplane-agent
Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi Syslog di Symantec CASB
- Login ke host Symantec CloudSOC Anda.
Jalankan perintah berikut untuk mengidentifikasi logger yang digunakan sistem:
ls –d /etc/*syslog*
Buka bagian yang sesuai, sesuai dengan respons untuk perintah sebelumnya:
- syslog.conf: Syslog Lama.
- syslog-ng.conf: Syslog-ng.
Konfigurasi Syslog lama
Buka file
syslogd
, yang biasanya terletak di direktori/etc/default
menggunakan editorvi
.vi /etc/default/syslogd
Pastikan nilai
SYSLOGD
berisi tanda-r
.SYSLOGD="-r"
Simpan file dan keluar dari editor:
- Beralih ke mode perintah dengan menekan tombol Esc.
- Tekan
:
(titik dua) untuk membuka kolom perintah. - Ketik
wq
setelah titik dua, lalu tekan Enter.
Buka file
services
, yang biasanya terletak di direktori/etc
menggunakan editorvi
.vi /etc/services
Edit nilai port untuk layanan syslog:
syslog 514/udp
Simpan file dan keluar dari editor:
- Beralih ke mode perintah dengan menekan tombol Esc.
- Tekan
:
(titik dua) untuk membuka kolom perintah. - Ketik
wq
setelah titik dua, lalu tekan Enter.
Buka file
syslog.conf
, yang biasanya berada di direktori/etc
menggunakan editorvi
.vi /etc/syslog.conf
Perbarui konfigurasi untuk meneruskan semua log ke Google SecOps.
*.* @bindplane_agent_host
Simpan file dan keluar dari editor:
- Beralih ke mode perintah dengan menekan tombol Esc.
- Tekan
:
(titik dua) untuk membuka kolom perintah. - Ketik
wq
setelah titik dua, lalu tekan Enter.
Buka file
hosts
, yang biasanya berada di direktori/etc
menggunakan editorvi
.vi /etc/hosts
Buat entri DNS lokal untuk
bindplane_agent_host
.0.0.0.0 bindplane_agent_host
Simpan file dan keluar dari editor:
- Beralih ke mode perintah dengan menekan tombol Esc.
- Tekan
:
(titik dua) untuk membuka kolom perintah. - Ketik
wq
setelah titik dua, lalu tekan Enter.
Mulai ulang layanan daemon syslog.
Konfigurasi syslog-ng
Buka file
syslog-ng.conf
, yang biasanya berada di direktori/etc
menggunakan editorvi
.vi /etc/syslog-ng.conf
Tambahkan kode berikut ke bagian akhir file:
destination d____ { udp("bindplane_agent_host" port(514));}; log {source(s_src); destination(d____);};
Buka file
hosts
, yang biasanya berada di direktori/etc
menggunakan editorvi
.vi /etc/hosts
Buat entri DNS lokal untuk
bindplane_agent_host
.0.0.0.0 bindplane_agent_host
Simpan file dan keluar dari editor:
- Beralih ke mode perintah dengan menekan tombol Esc.
- Tekan
:
(titik dua) untuk membuka kolom perintah. - Ketik
wq
setelah titik dua, lalu tekan Enter.
Mulai ulang layanan daemon syslog-ng.
Tabel pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
_domain |
target.hostname |
Nilai kolom _domain |
_domain |
target.asset.hostname |
Nilai kolom _domain |
_id |
metadata.product_log_id |
Nilai kolom _id |
actions_taken |
security_result.detection_fields[].value |
Nilai kolom actions_taken . Kunci dibuat secara dinamis sebagai Action_ + indeks. |
activity_type |
metadata.product_event_type |
Nilai kolom activity_type jika product_data.activity_type kosong, atau nilai product_data.activity_type jika tidak kosong. |
collector_device_ip |
principal.ip |
Nilai kolom collector_device_ip , jika bukan Unknown IP . |
collector_device_ip |
principal.asset.ip |
Nilai kolom collector_device_ip , jika bukan Unknown IP . |
collector_device_name |
principal.hostname |
Nilai kolom collector_device_name . |
collector_device_name |
principal.asset.hostname |
Nilai kolom collector_device_name . |
content_checks.dlp.raw_response.contentdetails[].contentBlockId |
security_result.detection_fields[].value |
Nilai content_checks.dlp.raw_response.contentdetails[].contentBlockId . Kunci dibuat secara dinamis sebagai contentBlockId_ + indeks. |
content_checks.dlp.raw_response.contentdetails[].topLevelFileType |
security_result.detection_fields[].value |
Nilai content_checks.dlp.raw_response.contentdetails[].topLevelFileType . Kunci dibuat secara dinamis sebagai topLevelFileType_ + indeks. |
content_checks.dlp.raw_response.requestid |
security_result.detection_fields[].value |
Nilai content_checks.dlp.raw_response.requestid . Kuncinya adalah Request ID . |
content_checks.dlp.raw_response.responseaction |
security_result.detection_fields[].value |
Nilai content_checks.dlp.raw_response.responseaction . Kuncinya adalah Response Action . |
content_checks.dlp.raw_response.violation[].name |
security_result.detection_fields[].value |
Nilai content_checks.dlp.raw_response.violation[].name . Kunci dibuat secara dinamis sebagai Violation_Policy_Name_ + indeks. |
content_checks.dlp.raw_response.violation[].policyId |
security_result.detection_fields[].value |
Nilai content_checks.dlp.raw_response.violation[].policyId . Kunci dibuat secara dinamis sebagai Violation_Policy_ID_ + indeks. |
content_checks.dlp.updated_timestamp |
additional.fields[].value.string_value |
Nilai content_checks.dlp.updated_timestamp . Kuncinya adalah Updated TimeStamp . |
content_checks.filename |
target.file.full_path |
Nilai content_checks.filename . |
content_checks.mimetype |
target.file.mime_type |
Nilai content_checks.mimetype . |
content_checks.risktype_list[] |
security_result.detection_fields[].value |
Nilai content_checks.risktype_list[] . Kunci dibuat secara dinamis sebagai RiskType_ + indeks. |
content_checks.vba_macros.expressions[].values[].key |
security_result.detection_fields[].key |
Nilai content_checks.vba_macros.expressions[].values[].key yang digabungkan dengan indeks. |
content_checks.vba_macros.expressions[].values[].value |
security_result.detection_fields[].value |
Nilai content_checks.vba_macros.expressions[].values[].value . |
content_checks.vk_content_iq_violations[] |
security_result.detection_fields[].value |
Nilai content_checks.vk_content_iq_violations[] . Kunci dibuat secara dinamis sebagai content_violation_ + indeks. |
content_checks.vk_dlp_policy_violations[] |
security_result.detection_fields[].value |
Nilai content_checks.vk_dlp_policy_violations[] . Kunci dibuat secara dinamis sebagai dlp_policy_violation_ + indeks. |
content_checks.vk_encryption |
security_result.detection_fields[].value |
Nilai content_checks.vk_encryption . Kuncinya adalah vk_encryption . |
content_checks.vk_glba |
security_result.detection_fields[].value |
Nilai content_checks.vk_glba . Kuncinya adalah vk_glba . |
content_checks.vk_hipaa |
security_result.detection_fields[].value |
Nilai content_checks.vk_hipaa . Kuncinya adalah vk_hipaa . |
content_checks.vk_pci |
security_result.detection_fields[].value |
Nilai content_checks.vk_pci . Kuncinya adalah vk_pci . |
content_checks.vk_pii |
security_result.detection_fields[].value |
Nilai content_checks.vk_pii . Kuncinya adalah vk_pii . |
content_checks.vk_source_code |
security_result.detection_fields[].value |
Nilai content_checks.vk_source_code . Kuncinya adalah vk_source_code . |
content_checks.vk_vba_macros |
security_result.detection_fields[].value |
Nilai content_checks.vk_vba_macros . Kuncinya adalah vk_vba_macros . |
content_checks.vk_virus |
security_result.detection_fields[].value |
Nilai content_checks.vk_virus . Kuncinya adalah vk_virus . |
content_checks.violations |
security_result.detection_fields[].value |
Nilai content_checks.violations . Kuncinya adalah violations . |
created_timestamp |
additional.fields[].value.string_value |
Nilai created_timestamp . Kuncinya adalah Created TimeStamp . |
date |
metadata.event_timestamp.seconds |
Detik epoch yang diekstrak dari kolom date . |
device_ip |
target.ip |
Nilai kolom device_ip , jika bukan Unknown IP . |
device_ip |
target.asset.ip |
Nilai kolom device_ip , jika bukan Unknown IP . |
file_size |
target.file.size |
Nilai file_size atau product_data.file_size jika yang pertama kosong. Dikonversi menjadi bilangan bulat yang tidak bertanda tangan. |
file_url |
target.file.full_path |
Nilai product_data.file_url . |
group_name |
target.group.group_display_name |
Nama tampilan yang diekstrak dari kolom group_name . |
hosts[] |
principal.ip |
Nilai kolom hosts , dipisahkan dengan koma. |
inserted_timestamp |
additional.fields[].value.string_value |
Nilai inserted_timestamp . Kuncinya adalah Inserted TimeStamp . |
instance |
principal.hostname |
Nilai pertama kolom instance jika berupa array, atau nilai kolom instance jika berupa string. |
instance |
principal.asset.hostname |
Nilai pertama kolom instance jika berupa array, atau nilai kolom instance jika berupa string. |
ioi_code |
security_result.summary |
Nilai kolom ioi_code . |
_latency |
security_result.detection_fields[].value |
Nilai kolom _latency . Kuncinya adalah Latency . |
locations |
security_result.detection_fields[].value |
Nilai kolom locations . Kuncinya adalah Locations . |
log_name |
intermediary.asset.asset_id |
ID log yang diekstrak dari kolom log_name , diberi awalan dengan logid: . |
mailbox_owner |
target.user.userid |
Nilai product_data.mailbox owner . |
metadata.log_type |
metadata.log_type |
Hardcode ke SYMANTEC_CASB . |
metadata.product_name |
metadata.product_name |
Hardcode ke SYMANTEC_CASB . |
metadata.vendor_name |
metadata.vendor_name |
Hardcode ke SYMANTEC . |
msg |
metadata.description |
Nilai kolom msg atau kolom message jika msg tidak ada. |
name |
security_result.detection_fields[].value |
Nilai kolom name . Kuncinya adalah Name . |
object_name |
security_result.detection_fields[].value |
Nilai kolom object_name . Kuncinya adalah Object Name . |
object_type |
target.resource.name |
Nilai kolom object_type . |
org_unit |
security_result.detection_fields[].value |
Nilai kolom org_unit . Kuncinya adalah org_unit ID . |
policy_action |
security_result.action_details |
Nilai kolom policy_action . |
policy_type |
security_result.detection_fields[].value |
Nilai kolom policy_type . Kuncinya adalah policy_type . |
policy_violated |
security_result.detection_fields[].value |
Nilai kolom policy_violated . Kuncinya adalah policy_violated . |
product_data._domain |
target.hostname |
Nilai product_data._domain . |
product_data._domain |
target.asset.hostname |
Nilai product_data._domain . |
product_data.activity_type |
metadata.product_event_type |
Nilai product_data.activity_type . |
product_data.file url |
target.file.full_path |
Nilai product_data.file url . |
product_data.file_size |
target.file.size |
Nilai product_data.file_size . |
product_data.group |
target.group.group_display_name |
Nilai product_data.group . |
product_data.location |
principal.location.country_or_region |
Nilai product_data.location . |
product_data.logon error |
security_result.summary |
Nilai product_data.logon error . |
product_data.mailbox owner |
target.user.userid |
Nilai product_data.mailbox owner . |
product_data.name |
target.file.full_path |
Nilai product_data.name . |
product_data.object_name |
target.file.full_path |
Nilai product_data.object_name . |
product_data.originatingserver product_data.service |
target.application |
Nilai product_data.service . |
product_data.site url |
target.url |
Nilai product_data.site url . |
product_data.target |
target.user.userid |
Nilai product_data.target . |
product_data.useragent |
network.http.user_agent |
Nilai product_data.useragent . |
product_name |
intermediary.application |
Nilai kolom product_name . |
product_uid |
metadata.product_name |
Nilai kolom product_uid . |
responsible_logs |
additional.fields[].value.string_value |
Nilai kolom responsible_logs . Kuncinya adalah responsible_logs . |
resource_id |
target.resource.product_object_id |
Nilai kolom resource_id . |
risks |
security_result.detection_fields[].value |
Nilai kolom risks . Kuncinya adalah Risks . |
security_result.action |
security_result.action |
Diperoleh dari product_data.logon error . Tetapkan ke BLOCK jika product_data.logon error adalah BlockedByConditionalAccess . |
security_result.severity |
security_result.severity |
Nilai huruf besar dari kolom severity , jika merupakan salah satu tingkat keparahan yang didukung. |
security_result.severity_details |
security_result.severity_details |
Nilai kolom severity , jika bukan salah satu tingkat keparahan yang didukung. |
security_result.summary |
security_result.summary |
Nilai kolom ioi_code atau product_data.logon error jika ioi_code tidak ada. |
service |
target.application |
Nilai kolom service jika product_data.service kosong. |
site_url |
target.url |
Nilai product_data.site url . |
source |
principal.resource.attribute.labels[].value |
Nilai kolom source . Kuncinya adalah Source . |
sub_feature |
additional.fields[].value.string_value |
Nilai kolom sub_feature . Kuncinya adalah Sub Feature . |
target.application |
target.application |
Diperoleh berdasarkan product_data.activity_type dan kehadiran subjek dan target. |
target.resource.name |
target.resource.name |
Diperoleh berdasarkan product_data.activity_type dan kehadiran subjek dan target. |
threat_score |
security_result.detection_fields[].value |
Nilai kolom threat_score . Kuncinya adalah Threat Score . |
transaction_id |
security_result.detection_fields[].value |
Nilai kolom transaction_id . Kuncinya adalah Transaction ID . |
updated_timestamp |
additional.fields[].value.string_value |
Nilai updated_timestamp atau content_checks.dlp.updated_timestamp jika yang pertama kosong. Kuncinya adalah Updated TimeStamp . |
user |
principal.user.userid |
Nilai kolom user . |
user_email |
target.user.userid |
Nilai kolom user_email . |
user_mail |
target.user.userid |
Nilai kolom user_mail yang diekstrak dari kolom msg . |
user_name |
principal.user.user_display_name |
Nilai kolom user_name . |
user_uid |
principal.user.userid atau target.user.userid |
Nilai kolom user_uid . Dipetakan ke principal.user.userid jika product_data.activity_type bukan InvalidLogin atau Login , jika tidak dipetakan ke target.user.userid . |
uuid |
intermediary.asset.product_object_id |
Nilai kolom uuid . |
version |
metadata.product_version |
Nilai kolom version . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.