Mengumpulkan log Forcepoint Proxy
Dokumen ini menjelaskan cara menyerap log Forcepoint Proxy ke Google Security Operations menggunakan BindPlane. Parser pertama-tama membersihkan pesan log input dan mengekstrak key-value pair menggunakan pola grok dan ekspresi reguler. Kemudian, kolom yang diekstrak dipetakan ke Model Data Terpadu (UDM) berdasarkan kondisi dan nilai kolom tertentu, menangani berbagai format log dan kasus ekstrem untuk memastikan representasi data yang konsisten.
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 belakang proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses istimewa ke Forcepoint Proxy.
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 ini.
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: FORCEPOINT_WEBPROXY 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 Forcepoint Web Security Suite
- Login ke konsol Forcepoint.
- Buka Web > Setelan > Umum.
- Klik Integrasi SIEM.
- Centang kotak Aktifkan integrasi SIEM untuk server kebijakan ini.
- Berikan detail konfigurasi berikut:
- Alamat IP atau nama host: masukkan alamat IP agen Bindplane.
- Nomor port: masukkan nomor port yang dikonfigurasi di agen BindPlane; misalnya,
514
. - Protokol transport: pilih protokol UDP.
- Format SIEM: pilih Syslog/CEF (Arcsight).
- Klik Ok.
- Klik Save and deploy.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
tindakan | security_result.summary | Jika action_msg tidak kosong, pesan ini dipetakan ke security_result.summary. Jika tidak, jika tindakan tidak kosong, tindakan akan dipetakan ke security_result.summary. Jika tidak, jika act tidak kosong, act akan dipetakan ke security_result.summary. |
action_msg | security_result.summary | Jika action_msg tidak kosong, pesan ini dipetakan ke security_result.summary. Jika tidak, jika tindakan tidak kosong, tindakan akan dipetakan ke security_result.summary. Jika tidak, jika act tidak kosong, act akan dipetakan ke security_result.summary. |
aplikasi | target.application | Jika destinationServiceName tidak kosong, kolom ini dipetakan ke app_name. Jika tidak, jika aplikasi tidak kosong dan tidak berisi http atau HTTP , aplikasi akan dipetakan ke app_name. Terakhir, app_name dipetakan ke target.application. |
bytes_in | network.received_bytes | Jika in tidak kosong, maka akan dipetakan ke bytes_in. Terakhir, bytes_in dipetakan ke network.received_bytes. |
bytes_out | network.sent_bytes | Jika out tidak kosong, out dipetakan ke bytes_out. Terakhir, bytes_out dipetakan ke network.sent_bytes. |
kucing | security_result.category_details | Jika cat tidak kosong, cat dipetakan ke kategori. Terakhir, kategori dipetakan ke security_result.category_details. |
cn1 | security_result.detection_fields.value | Jika cn1 tidak kosong, cn1 dipetakan ke security_result.detection_fields.value dengan kunci Disposition Number . |
ContentType | target.file.mime_type | Jika contentType tidak kosong, contentType akan dipetakan ke ContentType. Terakhir, ContentType dipetakan ke target.file.mime_type. |
cs1 | target_role.description | cs1 dipetakan ke target_role.description. |
cs2 | security_result.category_details | Jika cs2 tidak kosong dan bukan 0 , cs2 dipetakan ke security_result.category_details dengan awalan Dynamic Category: . |
cs3 | target.file.mime_type | cs3 dipetakan ke target.file.mime_type. |
deskripsi | metadata.description | Jika deskripsi tidak kosong, deskripsi akan dipetakan ke metadata.description. |
destinationServiceName | target.application | Jika destinationServiceName tidak kosong, kolom ini dipetakan ke app_name. Terakhir, app_name dipetakan ke target.application. |
deviceFacility | metadata.product_event_type | Jika product_event dan deviceFacility tidak kosong, keduanya digabungkan dengan - dan dipetakan ke metadata.product_event_type. Jika tidak, product_event dipetakan ke metadata.product_event_type. |
disposisi | security_result.detection_fields.value | Jika disposisi tidak kosong, disposisi dipetakan ke security_result.detection_fields.value dengan kunci Disposition Number . |
dst | target.ip | Jika dst tidak kosong dan dvchost kosong, maka akan dipetakan ke dst_ip. Terakhir, dst_ip dipetakan ke target.ip. |
dst_host | target.hostname | Jika dst tidak kosong dan dvchost kosong, maka akan dipetakan ke dst_host. Terakhir, dst_host dipetakan ke target.hostname. |
dst_ip | target.ip | Jika dst tidak kosong dan dvchost kosong, maka akan dipetakan ke dst_ip. Terakhir, dst_ip dipetakan ke target.ip. |
dst_port | target.port | Jika dst tidak kosong dan dvchost kosong, maka akan dipetakan ke dst_port. Terakhir, dst_port dipetakan ke target.port. |
durasi | network.session_duration.seconds | Jika durasi tidak kosong dan bukan 0 , durasi dipetakan ke network.session_duration.seconds. |
dvchost | intermediary.ip | Jika dvchost tidak kosong, dvchost dipetakan ke int_ip. Terakhir, int_ip dipetakan ke intermediary.ip jika merupakan alamat IP yang valid, atau dipetakan ke intermediary.hostname. |
file_path | target.file.full_path | Jika file_path tidak kosong, file_path dipetakan ke target.file.full_path. |
host | principal.ip | Jika host tidak kosong, host akan dipetakan ke src. Terakhir, src dipetakan ke principal.ip. |
http_method | network.http.method | Jika requestMethod tidak kosong, requestMethod akan dipetakan ke http_method. Jika tidak, jika metode tidak kosong, metode akan dipetakan ke http_method. Terakhir, http_method dipetakan ke network.http.method. |
http_proxy_status_code | network.http.response_code | Jika http_response kosong atau 0 atau - , dan http_proxy_status_code tidak kosong, maka akan dipetakan ke network.http.response_code. |
http_response | network.http.response_code | Jika http_response tidak kosong dan bukan 0 dan bukan - , maka akan dipetakan ke network.http.response_code. |
http_user_agent | network.http.user_agent | Jika http_user_agent tidak kosong dan bukan - , http_user_agent dipetakan ke network.http.user_agent. |
in | network.received_bytes | Jika in tidak kosong, maka akan dipetakan ke bytes_in. Terakhir, bytes_in dipetakan ke network.received_bytes. |
int_host | intermediary.hostname | Jika int_ip tidak kosong dan int_host tidak kosong serta berbeda dari int_ip, maka akan dipetakan ke intermediary.hostname. |
int_ip | intermediary.ip | Jika dvchost tidak kosong, dvchost dipetakan ke int_ip. Terakhir, int_ip dipetakan ke intermediary.ip jika merupakan alamat IP yang valid, atau dipetakan ke intermediary.hostname. |
level | target_role.name | Jika level tidak kosong dan peran kosong, level akan dipetakan ke peran. Terakhir, peran dipetakan ke target_role.name. |
log_level | security_result.severity | Jika tingkat keparahan adalah 1 atau log_level berisi info atau message berisi notice , security_result.severity disetel ke INFORMATIONAL . Jika tingkat keparahan adalah 7 , security_result.severity ditetapkan ke HIGH . |
loginID | principal.user.userid | Jika loginID tidak kosong, loginID akan dipetakan ke pengguna. Terakhir, jika pengguna tidak kosong dan bukan - , serta tidak berisi LDAP , maka akan dipetakan ke principal.user.userid. |
metode | network.http.method | Jika requestMethod tidak kosong, requestMethod akan dipetakan ke http_method. Jika tidak, jika metode tidak kosong, metode akan dipetakan ke http_method. Terakhir, http_method dipetakan ke network.http.method. |
NatRuleId | security_result.detection_fields.value | Jika NatRuleId tidak kosong, NatRuleId dipetakan ke security_result.detection_fields.value dengan kunci NatRuleId . |
keluar | network.sent_bytes | Jika out tidak kosong, out dipetakan ke bytes_out. Terakhir, bytes_out dipetakan ke network.sent_bytes. |
pid | target.process.pid | Jika pid tidak kosong, pid akan dipetakan ke target.process.pid. |
kebijakan | target_role.description | Jika Kebijakan tidak kosong, kebijakan akan dipetakan ke kebijakan. Jika kebijakan tidak kosong dan bukan - , kebijakan akan dipetakan ke target_role.description. |
Kebijakan | target_role.description | Jika Kebijakan tidak kosong, kebijakan akan dipetakan ke kebijakan. Jika kebijakan tidak kosong dan bukan - , kebijakan akan dipetakan ke target_role.description. |
product_event | metadata.product_event_type | Jika produk tidak kosong, produk dipetakan ke product_event. Jika product_event dan deviceFacility tidak kosong, keduanya digabungkan dengan - dan dipetakan ke metadata.product_event_type. Jika tidak, product_event dipetakan ke metadata.product_event_type. |
proxyStatus-code | network.http.response_code | Jika http_response kosong atau 0 atau - , dan http_proxy_status_code kosong serta proxyStatus-code tidak kosong, maka akan dipetakan ke network.http.response_code. |
refererUrl | network.http.referral_url | Jika refererUrl tidak kosong dan bukan - , maka akan dipetakan ke network.http.referral_url. |
requestClientApplication | network.http.user_agent | Jika requestMethod tidak kosong, maka akan dipetakan ke http_user_agent. Terakhir, http_user_agent dipetakan ke network.http.user_agent. |
requestMethod | network.http.method | Jika requestMethod tidak kosong, requestMethod akan dipetakan ke http_method. Terakhir, http_method dipetakan ke network.http.method. |
peran | target_role.name | Jika level tidak kosong dan peran kosong, level akan dipetakan ke peran. Terakhir, peran dipetakan ke target_role.name. |
RuleID | security_result.rule_id | Jika RuleID tidak kosong, RuleID dipetakan ke security_result.rule_id. |
serverStatus-code | network.http.response_code | Jika http_response kosong atau 0 atau - , dan http_proxy_status_code kosong serta proxyStatus-code tidak kosong, maka akan dipetakan ke network.http.response_code. |
tingkat keseriusan, | security_result.severity | Jika tingkat keparahan adalah 1 atau log_level berisi info atau message berisi notice , security_result.severity disetel ke INFORMATIONAL . Jika tingkat keparahan adalah 7 , security_result.severity ditetapkan ke HIGH . |
spt | principal.port | Jika spt tidak kosong, spt dipetakan ke src_port. Terakhir, src_port dipetakan ke principal.port. |
src | principal.ip | Jika src_host tidak kosong, src_host akan dipetakan ke source_ip_temp. Jika source_ip_temp adalah alamat IP yang valid dan src kosong, alamat IP tersebut dipetakan ke src. Jika host tidak kosong, host akan dipetakan ke src. Terakhir, src dipetakan ke principal.ip. |
src_host | principal.hostname | Jika src_host tidak kosong, src_host akan dipetakan ke source_ip_temp. Jika source_ip_temp bukan alamat IP yang valid, alamat IP tersebut dipetakan ke principal.hostname. Jika source_ip_temp adalah alamat IP yang valid dan src kosong, alamat IP tersebut dipetakan ke src. Terakhir, src dipetakan ke principal.ip. |
src_port | principal.port | Jika src_port tidak kosong, src_port dipetakan ke principal.port. |
suser | principal.user.userid | Jika loginID tidak kosong, loginID akan dipetakan ke pengguna. Jika suser tidak kosong, suser akan dipetakan ke user. Terakhir, jika pengguna tidak kosong dan bukan - , serta tidak berisi LDAP , maka akan dipetakan ke principal.user.userid. |
url | target.url | Jika url tidak kosong, url akan dipetakan ke target.url. |
pengguna | principal.user.userid | Jika loginID tidak kosong, loginID akan dipetakan ke pengguna. Jika suser tidak kosong, suser akan dipetakan ke user. Jika tidak, jika usrName tidak kosong, maka akan dipetakan ke user. Terakhir, jika pengguna tidak kosong dan bukan - , serta tidak berisi LDAP , maka akan dipetakan ke principal.user.userid. |
usrName | principal.user.userid | Jika loginID tidak kosong, loginID akan dipetakan ke pengguna. Jika suser tidak kosong, suser akan dipetakan ke user. Jika tidak, jika usrName tidak kosong, maka akan dipetakan ke user. Terakhir, jika pengguna tidak kosong dan bukan - , serta tidak berisi LDAP , maka akan dipetakan ke principal.user.userid. |
kapan | metadata.event_timestamp | Jika when tidak kosong, parameter ini akan diuraikan dan dipetakan ke metadata.event_timestamp. |
metadata.log_type | Nilai FORCEPOINT_WEBPROXY di-hardcode ke metadata.log_type. |
|
metadata.product_name | Nilai Forcepoint Webproxy di-hard code ke metadata.product_name. |
|
metadata.vendor_name | Nilai Forcepoint di-hardcode ke metadata.vendor_name. |
|
network.application_protocol | Jika dst_port adalah 80 , network.application_protocol disetel ke HTTP . Jika dst_port adalah 443 , network.application_protocol disetel ke HTTPS . |
|
principal.user.group_identifiers | Jika pengguna tidak kosong dan bukan - serta berisi LDAP , bagian OU dari string pengguna akan diekstrak dan dipetakan ke principal.user.group_identifiers. |
|
principal.user.user_display_name | Jika pengguna tidak kosong dan bukan - serta berisi LDAP , bagian nama pengguna dari string pengguna akan diekstrak dan dipetakan ke principal.user.user_display_name. |
|
security_result.action | Jika action_msg, action, atau act tidak kosong, sec_action akan disetel ke ALLOW atau BLOCK berdasarkan nilainya. Terakhir, sec_action dipetakan ke security_result.action. |
|
security_result.category_details | Jika cat tidak kosong, cat dipetakan ke kategori. Terakhir, kategori dipetakan ke security_result.category_details. Jika cs2 tidak kosong dan bukan 0 , cs2 dipetakan ke security_result.category_details dengan awalan Dynamic Category: . |
|
security_result.detection_fields.key | Nilai Disposition Number di-hardcode ke security_result.detection_fields.key saat memetakan disposisi atau cn1. Nilai NatRuleId dikodekan secara permanen ke dalam security_result.detection_fields.key saat memetakan NatRuleId. Nilai Category Number dikodekan secara permanen ke dalam security_result.detection_fields.key saat memetakan category_no. |
|
security_result.severity | Jika tingkat keparahan adalah 1 atau log_level berisi info atau message berisi notice , security_result.severity disetel ke INFORMATIONAL . Jika tingkat keparahan adalah 7 , security_result.severity ditetapkan ke HIGH . |
|
target_role.description | Jika Kebijakan tidak kosong, kebijakan akan dipetakan ke kebijakan. Jika kebijakan tidak kosong dan bukan - , kebijakan akan dipetakan ke target_role.description. |
|
target_role.name | Jika level tidak kosong dan peran kosong, level akan dipetakan ke peran. Terakhir, peran dipetakan ke target_role.name. | |
category_no | security_result.detection_fields.value | Jika category_no tidak kosong, category_no dipetakan ke security_result.detection_fields.value dengan kunci Category Number . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.