Mengumpulkan log Forcepoint Web Security
Dokumen ini menjelaskan cara menyerap log Forcepoint Web Security ke Google Security Operations menggunakan agen Bindplane.
Forcepoint Web Security adalah proxy web dan gateway keamanan yang menghasilkan pesan syslog dalam CEF (Common Event Format) untuk akses web, peristiwa keamanan, autentikasi, dan penerapan kebijakan. Parser mengekstrak kolom dari log berformat CEF dan syslog, lalu memetakannya ke Model Data Terpadu (UDM).
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Windows Server 2016 atau yang lebih baru, atau host Linux dengan
systemd - Konektivitas jaringan antara agen Bindplane dan Forcepoint Web Security
- Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
- Akses administratif ke Forcepoint Security Manager atau antarmuka pengelolaan appliance
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 agen 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
Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.
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" /quietTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sc query observiq-otel-collectorLayanan akan ditampilkan sebagai RUNNING.
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.shTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sudo systemctl status observiq-otel-collectorLayanan akan ditampilkan sebagai aktif (berjalan).
Referensi penginstalan tambahan
Untuk opsi penginstalan dan pemecahan masalah tambahan, lihat Panduan penginstalan agen BindPlane.
Mengonfigurasi agen Bindplane untuk menyerap syslog dan mengirimkannya ke Google SecOps
Anda dapat mengonfigurasi agen Bindplane untuk menerima pesan syslog melalui TCP (direkomendasikan) atau UDP.
Cari file konfigurasi
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edit file konfigurasi
Ganti seluruh konten config.yaml dengan konfigurasi untuk protokol yang Anda pilih:
Opsi A: Konfigurasi TCP (Direkomendasikan)
receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/forcepoint_webproxy: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: FORCEPOINT_WEBPROXY raw_log_field: body service: pipelines: logs/forcepoint_tcp_to_chronicle: receivers: - tcplog exporters: - chronicle/forcepoint_webproxyOpsi B: Konfigurasi UDP
receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/forcepoint_webproxy: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: FORCEPOINT_WEBPROXY raw_log_field: body service: pipelines: logs/forcepoint_udp_to_chronicle: receivers: - udplog exporters: - chronicle/forcepoint_webproxy
Parameter konfigurasi
Ganti placeholder berikut:
Konfigurasi penerima:
listen_address: Alamat IP dan port yang akan diproses:0.0.0.0untuk mendengarkan di semua antarmuka (direkomendasikan)- Port
514adalah port syslog standar (memerlukan root di Linux; gunakan1514untuk non-root)
Konfigurasi eksportir:
creds_file_path: Jalur lengkap ke file autentikasi penyerapan:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID Pelanggan yang disalin dari konsol Google SecOpsendpoint: URL endpoint regional:- Amerika Serikat:
malachiteingestion-pa.googleapis.com - Eropa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Lihat Endpoint Regional untuk mengetahui daftar lengkapnya
- Amerika Serikat:
Simpan file konfigurasi
- Setelah mengedit, simpan file:
- Linux: Tekan
Ctrl+O, laluEnter, laluCtrl+X - Windows: Klik File > Save
- Linux: Tekan
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart observiq-otel-collectorPastikan layanan sedang berjalan:
sudo systemctl status observiq-otel-collectorPeriksa log untuk mengetahui error:
sudo journalctl -u observiq-otel-collector -f
Untuk memulai ulang agen Bindplane di Windows, pilih salah satu opsi berikut:
Command Prompt atau PowerShell sebagai administrator:
net stop observiq-otel-collector && net start observiq-otel-collectorKonsol layanan:
- Tekan
Win+R, ketikservices.msc, lalu tekan Enter. - Temukan observIQ OpenTelemetry Collector.
- Klik kanan, lalu pilih Mulai Ulang.
Pastikan layanan sedang berjalan:
sc query observiq-otel-collectorPeriksa log untuk mengetahui error:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Tekan
Mengonfigurasi penerusan syslog di Forcepoint Web Security
Konfigurasi Forcepoint Web Security untuk meneruskan log ke agen BindPlane dalam format CEF (Common Event Format).
Menggunakan Forcepoint Security Manager
- Login ke Forcepoint Security Manager dengan kredensial administratif.
- Buka Setelan > Logging.
- Di navigasi kiri, pilih Server Log.
- Klik Tambahkan untuk membuat konfigurasi server log baru.
- Berikan detail konfigurasi berikut:
- Server Type: Pilih Syslog Server atau CEF Server.
- Name: Masukkan nama deskriptif (misalnya,
Google Security Operations Bindplane CEF). - Host: Masukkan alamat IP atau nama host agen Bindplane.
- Port: Masukkan nomor port agen Bindplane (misalnya,
514). - Protokol: Pilih protokol yang cocok dengan konfigurasi Bindplane Anda:
- Pilih TCP jika Anda mengonfigurasi penerima
tcplogdi Bindplane (direkomendasikan). - Pilih UDP jika Anda mengonfigurasi penerima
udplogdi Bindplane.
- Pilih TCP jika Anda mengonfigurasi penerima
- Format: Pilih CEF (Common Event Format).
- Fasilitas: Pilih Local0 (atau fasilitas lain yang tersedia).
- Tingkat keparahan: Pilih Informasi (untuk merekam semua tingkat log).
- Di bagian Kategori Log atau Jenis Peristiwa, pilih peristiwa yang akan diteruskan:
- Log Akses Web (log transaksi)
- Peristiwa Keamanan (deteksi ancaman)
- Peristiwa Autentikasi (login/logout pengguna)
- Peristiwa Sistem (perubahan sistem dan konfigurasi)
- Atau pilih Semua Peristiwa untuk meneruskan semua jenis log yang tersedia.
- Opsional: Konfigurasi setelan tambahan:
- Ukuran Batch: Setel ke
1untuk penerusan real-time atau lebih tinggi untuk pemrosesan batch. - Message Format: Pastikan format CEF dipilih.
- Sertakan Informasi Pengguna: Aktifkan untuk menyertakan identitas pengguna dalam log.
- Ukuran Batch: Setel ke
- Klik Test Connection untuk memverifikasi konektivitas ke agen Bindplane.
- Klik Simpan untuk menerapkan konfigurasi.
- Klik Deploy untuk mengirimkan konfigurasi ke semua gateway Forcepoint Web Security.
Menggunakan Forcepoint Web Security Appliance (konfigurasi langsung)
Jika Anda mengonfigurasi langsung di appliance:
- Login ke antarmuka pengelolaan Forcepoint Web Security Appliance.
- Buka System > Log Server.
- Klik Tambahkan atau Edit untuk membuat atau mengubah server log.
- Berikan detail konfigurasi berikut:
- Alamat Server: Masukkan alamat IP agen Bindplane.
- Port: Masukkan
514(atau port kustom Anda). - Protocol: Pilih TCP atau UDP agar sesuai dengan konfigurasi Bindplane Anda.
- Format: Pilih CEF atau Common Event Format.
- Fasilitas: Pilih Local0.
- Di bagian Jenis Log, pilih log yang akan diteruskan:
- Log Akses
- Log Keamanan
- Log Admin
- Klik Terapkan atau Simpan.
- Jika menggunakan beberapa perangkat, ulangi konfigurasi ini di setiap perangkat.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
action |
security_result.summary |
Jika action_msg tidak kosong, action_msg akan dipetakan ke security_result.summary. Jika tidak, jika action tidak kosong, action 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, action_msg akan dipetakan ke security_result.summary. Jika tidak, jika action tidak kosong, action akan dipetakan ke security_result.summary. Jika tidak, jika act tidak kosong, act akan dipetakan ke security_result.summary. |
app |
target.application |
Jika destinationServiceName tidak kosong, destinationServiceName akan dipetakan ke app_name. Jika tidak, jika app tidak kosong dan tidak berisi http atau HTTP, maka akan dipetakan ke app_name. Terakhir, app_name dipetakan ke target.application. |
bytes_in |
network.received_bytes |
Jika in tidak kosong, in akan dipetakan ke bytes_in. Terakhir, bytes_in dipetakan ke network.received_bytes. |
bytes_out |
network.sent_bytes |
Jika out tidak kosong, out akan dipetakan ke bytes_out. Terakhir, bytes_out dipetakan ke network.sent_bytes. |
cat |
security_result.category_details |
Jika cat tidak kosong, cat akan dipetakan ke category. Terakhir, category dipetakan ke security_result.category_details. |
category_no |
security_result.detection_fields.value |
Jika category_no tidak kosong, category_no akan dipetakan ke security_result.detection_fields.value dengan kunci Category Number. |
cn1 |
security_result.detection_fields.value |
Jika cn1 tidak kosong, cn1 akan 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 akan dipetakan ke security_result.category_details dengan awalan Dynamic Category:. |
cs3 |
target.file.mime_type |
cs3 dipetakan ke target.file.mime_type. |
description |
metadata.description |
Jika description tidak kosong, description akan dipetakan ke metadata.description. |
destinationServiceName |
target.application |
Jika destinationServiceName tidak kosong, destinationServiceName akan dipetakan ke app_name. Terakhir, app_name dipetakan ke target.application. |
deviceFacility |
metadata.product_event_type |
Jika product_event dan deviceFacility tidak kosong, keduanya akan digabungkan dengan - dan dipetakan ke metadata.product_event_type. Jika tidak, product_event dipetakan ke metadata.product_event_type. |
disposition |
security_result.detection_fields.value |
Jika disposition tidak kosong, disposition akan dipetakan ke security_result.detection_fields.value dengan kunci Disposition Number. |
dst |
target.ip |
Jika dst tidak kosong dan dvchost kosong, maka dipetakan ke dst_ip. Terakhir, dst_ip dipetakan ke target.ip. |
dst_host |
target.hostname |
Jika dst tidak kosong dan dvchost kosong, maka dipetakan ke dst_host. Terakhir, dst_host dipetakan ke target.hostname. |
dst_ip |
target.ip |
Jika dst tidak kosong dan dvchost kosong, maka dipetakan ke dst_ip. Terakhir, dst_ip dipetakan ke target.ip. |
dst_port |
target.port |
Jika dst tidak kosong dan dvchost kosong, maka dipetakan ke dst_port. Terakhir, dst_port dipetakan ke target.port. |
duration |
network.session_duration.seconds |
Jika duration tidak kosong dan bukan 0, maka akan dipetakan ke network.session_duration.seconds. |
dvchost |
intermediary.ip |
Jika dvchost tidak kosong, dvchost akan 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 akan 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 method tidak kosong, method 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 -, maka akan dipetakan ke network.http.user_agent. |
in |
network.received_bytes |
Jika in tidak kosong, in 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 akan 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 role kosong, maka akan dipetakan ke role. Terakhir, role dipetakan ke target_role.name. |
log_level |
security_result.severity |
Jika severity adalah 1 atau log_level berisi info atau message berisi notice, security_result.severity ditetapkan ke INFORMATIONAL. Jika severity adalah 7, security_result.severity ditetapkan ke HIGH. |
loginID |
principal.user.userid |
Jika loginID tidak kosong, loginID akan dipetakan ke user. Terakhir, jika user tidak kosong dan bukan -, serta tidak berisi LDAP, maka akan dipetakan ke principal.user.userid. |
method |
network.http.method |
Jika requestMethod tidak kosong, requestMethod akan dipetakan ke http_method. Jika tidak, jika method tidak kosong, method akan dipetakan ke http_method. Terakhir, http_method dipetakan ke network.http.method. |
NatRuleId |
security_result.detection_fields.value |
Jika NatRuleId tidak kosong, NatRuleId akan dipetakan ke security_result.detection_fields.value dengan kunci NatRuleId. |
out |
network.sent_bytes |
Jika out tidak kosong, out akan 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. |
policy |
target_role.description |
Jika Policy tidak kosong, Policy akan dipetakan ke policy. Jika policy tidak kosong dan bukan -, maka akan dipetakan ke target_role.description. |
Policy |
target_role.description |
Jika Policy tidak kosong, Policy akan dipetakan ke policy. Jika policy tidak kosong dan bukan -, maka akan dipetakan ke target_role.description. |
product_event |
metadata.product_event_type |
Jika product tidak kosong, product akan dipetakan ke product_event. Jika product_event dan deviceFacility tidak kosong, keduanya akan 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, requestMethod 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. |
role |
target_role.name |
Jika level tidak kosong dan role kosong, maka akan dipetakan ke role. Terakhir, role dipetakan ke target_role.name. |
RuleID |
security_result.rule_id |
Jika RuleID tidak kosong, RuleID akan 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. |
severity |
security_result.severity |
Jika severity adalah 1 atau log_level berisi info atau message berisi notice, security_result.severity ditetapkan ke INFORMATIONAL. Jika severity adalah 7, security_result.severity ditetapkan ke HIGH. |
spt |
principal.port |
Jika spt tidak kosong, spt akan 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 akan dipetakan ke principal.port. |
suser |
principal.user.userid |
Jika loginID tidak kosong, loginID akan dipetakan ke user. Jika suser tidak kosong, suser akan dipetakan ke user. Terakhir, jika user 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. |
user |
principal.user.userid |
Jika loginID tidak kosong, loginID akan dipetakan ke user. Jika suser tidak kosong, suser akan dipetakan ke user. Jika tidak, jika usrName tidak kosong, usrName akan dipetakan ke user. Terakhir, jika user 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 user. Jika suser tidak kosong, suser akan dipetakan ke user. Jika tidak, jika usrName tidak kosong, usrName akan dipetakan ke user. Terakhir, jika user tidak kosong dan bukan -, serta tidak berisi LDAP, maka akan dipetakan ke principal.user.userid. |
when |
metadata.event_timestamp |
Jika when tidak kosong, when akan diuraikan dan dipetakan ke metadata.event_timestamp. |
| T/A | metadata.log_type |
Nilai FORCEPOINT_WEBPROXY di-hardcode ke dalam metadata.log_type. |
| T/A | metadata.product_name |
Nilai Forcepoint Webproxy di-hardcode ke dalam metadata.product_name. |
| T/A | metadata.vendor_name |
Nilai Forcepoint di-hardcode ke dalam metadata.vendor_name. |
| T/A | network.application_protocol |
Jika dst_port adalah 80, network.application_protocol ditetapkan ke HTTP. Jika dst_port adalah 443, network.application_protocol ditetapkan ke HTTPS. |
| T/A | principal.user.group_identifiers |
Jika user tidak kosong dan bukan - serta berisi LDAP, bagian OU dari string pengguna akan diekstrak dan dipetakan ke principal.user.group_identifiers. |
| T/A | principal.user.user_display_name |
Jika user tidak kosong dan bukan - serta berisi LDAP, bagian nama pengguna dari string pengguna akan diekstrak dan dipetakan ke principal.user.user_display_name. |
| T/A | security_result.action |
Jika action_msg, action, atau act tidak kosong, sec_action akan ditetapkan ke ALLOW atau BLOCK berdasarkan nilainya. Terakhir, sec_action dipetakan ke security_result.action. |
| T/A | security_result.detection_fields.key |
Nilai Disposition Number di-hardcode ke security_result.detection_fields.key saat memetakan disposition atau cn1. Nilai NatRuleId di-hardcode ke security_result.detection_fields.key saat memetakan NatRuleId. Nilai Category Number di-hardcode ke security_result.detection_fields.key saat memetakan category_no. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.