Mengumpulkan log WatchGuard Fireware
Ringkasan
Parser ini mengekstrak log WatchGuard Fireware dalam format JSON atau nilai kunci (KV), yang mengubahnya menjadi UDM. Log ini menangani log "Traffic" dan "Event" secara berbeda, menggunakan filter grok dan kv untuk mengekstrak kolom dan memetakan ke UDM, dengan logika spesifik untuk berbagai nilai msg_id
dan nama peristiwa, menangani protokol jaringan, tindakan pengguna, hasil keamanan, dan detail relevan lainnya. Proses ini juga memproses grup kedua entri syslog, mengekstrak informasi serupa, dan memetakan ke format UDM.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke Watchguard.
- Pastikan Anda memiliki Windows 2012 SP2 atau yang lebih baru atau host Linux dengan systemd.
- Jika berjalan di balik proxy, pastikan port firewall terbuka.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer.
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
- Untuk penginstalan Windows, jalankan skrip berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
. - Untuk penginstalan Linux, jalankan skrip berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
. - Opsi penginstalan tambahan dapat ditemukan di panduan penginstalan ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps
- Akses komputer tempat BindPlane diinstal.
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: testNamespace raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Mulai ulang Agen BindPlane untuk menerapkan perubahan menggunakan perintah berikut:
sudo systemctl bindplane restart
Menambahkan konfigurasi server Syslog ke Watchguard
- Login ke UI Watchguard.
- Pilih System > Logging.
- Klik tab Syslog Server.
- Centang kotak Kirim pesan log ke server syslog ini.
- Klik Tambahkan.
Tentukan nilai untuk parameter input di dialog Syslog Server:
- Alamat IP: ketik alamat IP server.
- Port: ubah port server syslog default (514), ketik port yang berbeda untuk server Anda.
- Format Log: pilih Syslog dari menu drop-down.
- Opsional: Deskripsi: ketik deskripsi untuk server (misalnya, ekspor Google SecOps).
- Opsional: Stempel waktu: centang kotak centang untuk menyertakan tanggal dan waktu terjadinya peristiwa di Firebox dalam detail pesan log.
- Opsional: Nomor seri perangkat centang kotak untuk menyertakan nomor seri Firebox dalam detail pesan log.
- Fasilitas syslog: untuk setiap jenis pesan log, pilih prioritas dari drop-down (misalnya, pesan syslog prioritas tinggi, seperti alarm, pilih Local0).
- Opsional: Pulihkan Default: untuk memulihkan setelan default.
Klik Simpan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
action |
security_result.action_details |
Nilai action dari log mentah ditetapkan ke security_result.action_details . |
action |
target.labels.value |
Nilai action dari log mentah ditetapkan ke target.labels.value , dengan target.labels.key adalah "Tindakan atas resource". |
arg |
target.file.full_path |
Nilai arg dari log mentah ditetapkan ke target.file.full_path . |
app_cat_id |
about.labels.value |
Nilai app_cat_id dari log mentah ditetapkan ke about.labels.value , dengan about.labels.key adalah "app_cat_id". |
app_cat_name |
target.application |
Digunakan bersama dengan app_name untuk membentuk nilai target.application (misalnya, "Google - Layanan web"). |
app_id |
about.labels.value |
Nilai app_id dari log mentah ditetapkan ke about.labels.value , dengan about.labels.key adalah "app_id". |
app_name |
target.application |
Digunakan bersama dengan app_cat_name untuk membentuk nilai target.application (misalnya, "Google - Layanan web"). |
cats |
security_result.category_details |
Nilai cats dari log mentah ditetapkan ke security_result.category_details . |
cert_issuer |
network.tls.server.certificate.issuer |
Nilai cert_issuer dari log mentah ditetapkan ke network.tls.server.certificate.issuer . |
cert_subject |
network.tls.server.certificate.subject |
Nilai cert_subject dari log mentah ditetapkan ke network.tls.server.certificate.subject . |
cn |
network.tls.server.certificate.subject |
Nilai cn dari log mentah ditetapkan ke network.tls.server.certificate.subject . |
conn_action |
security_result.action_details |
Nilai conn_action dari log mentah ditetapkan ke security_result.action_details . |
content_type |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
description |
metadata.description |
Nilai description yang berasal dari log mentah ditetapkan ke metadata.description . |
dhcp_type |
network.dhcp.type |
Nilai dhcp_type dari log mentah dipetakan ke jenis DHCP yang sesuai di network.dhcp.type (misalnya, "REQUEST", "ACK"). |
dst_host |
target.hostname |
Nilai dst_host dari log mentah ditetapkan ke target.hostname . |
dst_ip |
target.ip |
Nilai dst_ip dari log mentah ditetapkan ke target.ip . |
dst_mac |
target.mac |
Nilai dst_mac dari log mentah ditetapkan ke target.mac . |
dst_port |
target.port |
Nilai dst_port dari log mentah ditetapkan ke target.port . |
dst_user |
target.user.user_display_name |
Nilai dst_user dari log mentah ditetapkan ke target.user.user_display_name . |
dstname |
target.administrative_domain |
Nilai dstname dari log mentah ditetapkan ke target.administrative_domain . |
duration |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
elapsed_time |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
endpoint |
intermediary.labels.value |
Nilai endpoint dari log mentah ditetapkan ke intermediary.labels.value , dengan intermediary.labels.key adalah "Gateway-Endpoint". |
event_name |
principal.application |
Nilai event_name dari log mentah ditetapkan ke principal.application . |
firewall_id |
intermediary.asset_id |
Nilai firewall_id dari log mentah diawali dengan "Firewall ID : " dan ditetapkan ke intermediary.asset_id . |
firewall_name |
principal.asset_id |
Nilai firewall_name dari log mentah diawali dengan "Firewall: " dan ditetapkan ke principal.asset_id . |
firewallname |
intermediary.hostname |
Nilai firewallname dari log mentah ditetapkan ke intermediary.hostname . |
firewallname |
principal.hostname |
Nilai firewallname dari log mentah ditetapkan ke principal.hostname . |
fqdn_dst_match |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
geo |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
geo_dst |
target.location.country_or_region |
Nilai geo_dst dari log mentah ditetapkan ke target.location.country_or_region . |
geo_src |
principal.location.country_or_region |
Nilai geo_src dari log mentah ditetapkan ke principal.location.country_or_region . |
host |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
ike_policy |
security_result.rule_id |
Nilai ike_policy dari log mentah ditetapkan ke security_result.rule_id . |
ike_policy_version |
security_result.rule_version |
Nilai ike_policy_version dari log mentah ditetapkan ke security_result.rule_version . |
intermediary_host |
intermediary.hostname |
Nilai intermediary_host dari log mentah ditetapkan ke intermediary.hostname . |
ipaddress |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
ipsec_policy |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
ipsec_policy_version |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
keyword |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
line |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
log_message |
metadata.description |
Nilai log_message dari log mentah ditetapkan ke metadata.description jika deskripsi lain yang lebih spesifik tidak tersedia. |
log_reason |
security_result.summary |
Nilai log_reason dari log mentah ditetapkan ke security_result.summary . |
log_type |
metadata.log_type |
Nilai log_type dari log mentah ditetapkan ke metadata.log_type . Selalu tetapkan ke "WATCHGUARD". |
msg |
security_result.summary |
Nilai msg dari log mentah ditetapkan ke security_result.summary . |
msg_id |
metadata.product_event_type |
Nilai msg_id dari log mentah ditetapkan ke metadata.product_event_type . |
new_action |
security_result.action_details |
Digunakan dengan conn_action untuk membentuk nilai security_result.action_details (misalnya, "ProxyReplace: IP protocol - HTTPS-Client.DPI-Off"). |
op |
network.http.method |
Nilai op dari log mentah ditetapkan ke network.http.method . |
path |
target.url |
Nilai path dari log mentah ditetapkan ke target.url . |
pid |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
policy_name |
intermediary.resource.name |
Nilai policy_name dari log mentah ditetapkan ke intermediary.resource.name . |
policy_name |
security_result.rule_name |
Nilai policy_name dari log mentah ditetapkan ke security_result.rule_name . |
policyname_label.value |
security_result.rule_labels.value |
Nilai policy_name dari log mentah ditetapkan ke security_result.rule_labels.value , dengan security_result.rule_labels.key adalah "PolicyName". |
prin_host |
principal.hostname |
Nilai prin_host dari log mentah ditetapkan ke principal.hostname . |
proc_id |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
protocol |
network.ip_protocol |
Nilai protocol dari log mentah, yang dikonversi ke huruf besar, ditetapkan ke network.ip_protocol . Penanganan khusus untuk "EXTERNAL ICMP" yang dipetakan ke "ICMP". |
proxy_act |
security_result.rule_id |
Nilai proxy_act dari log mentah ditetapkan ke security_result.rule_id . |
proxy_act |
security_result.rule_name |
Nilai proxy_act dari log mentah ditetapkan ke security_result.rule_name . |
query_name |
network.dns.questions.name |
Nilai query_name dari log mentah ditetapkan ke network.dns.questions.name . |
query_type |
network.dns.questions.type |
Nilai query_type dari log mentah ditetapkan ke network.dns.questions.type . Penanganan khusus untuk jenis kueri numerik dan pemetaan ke jenis kueri DNS standar. |
rc |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
reason |
security_result.summary |
Nilai reason dari log mentah ditetapkan ke security_result.summary . |
record_type |
network.dns.answers.type |
Nilai record_type dari log mentah dipetakan ke jenis data DNS yang sesuai di network.dns.answers.type . |
redirect_action |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
reputation |
additional.fields.value.string_value |
Nilai reputation dari log mentah ditetapkan ke additional.fields.value.string_value , dengan additional.fields.key adalah "reputasi". |
response |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
response_code |
network.dns.response_code |
Nilai response_code dari log mentah dipetakan ke kode respons DNS yang sesuai di network.dns.response_code . |
route_type |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
rule_name |
security_result.rule_name |
Nilai rule_name dari log mentah ditetapkan ke security_result.rule_name . |
rcvd_bytes |
network.received_bytes |
Nilai rcvd_bytes dari log mentah ditetapkan ke network.received_bytes . |
sent_bytes |
network.sent_bytes |
Nilai sent_bytes dari log mentah ditetapkan ke network.sent_bytes . |
server_ssl |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
severity |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
sig_vers |
network.tls.server.certificate.version |
Nilai sig_vers dari log mentah ditetapkan ke network.tls.server.certificate.version . |
signature_cat |
additional.fields.value.string_value |
Nilai signature_cat dari log mentah ditetapkan ke additional.fields.value.string_value , dengan additional.fields.key adalah "signature_cat". |
signature_id |
additional.fields.value.string_value |
Nilai signature_id dari log mentah ditetapkan ke additional.fields.value.string_value , dengan additional.fields.key adalah "signature_id". |
signature_name |
additional.fields.value.string_value |
Nilai signature_name dari log mentah ditetapkan ke additional.fields.value.string_value , dengan additional.fields.key adalah "signature_name". |
sni |
network.tls.client.server_name |
Nilai sni dari log mentah ditetapkan ke network.tls.client.server_name . |
src_ctid |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
src_host |
principal.hostname |
Nilai src_host dari log mentah ditetapkan ke principal.hostname . |
src_ip |
principal.ip |
Nilai src_ip dari log mentah ditetapkan ke principal.ip . |
src_ip_nat |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
src_mac |
principal.mac |
Nilai src_mac dari log mentah ditetapkan ke principal.mac . |
src_port |
principal.port |
Nilai src_port dari log mentah ditetapkan ke principal.port . |
src_user |
principal.user.user_display_name |
Nilai src_user dari log mentah ditetapkan ke principal.user.user_display_name . |
src_user_name |
principal.user.user_display_name |
Nilai src_user_name dari log mentah ditetapkan ke principal.user.user_display_name . |
src_vpn_ip |
principal.ip |
Nilai src_vpn_ip dari log mentah ditetapkan ke principal.ip . |
srv_ip |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
srv_port |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
ssl_offload |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
tcp_info |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
time |
metadata.event_timestamp.seconds , timestamp.seconds |
Nilai time dari log mentah diuraikan dan digunakan untuk mengisi metadata.event_timestamp.seconds dan timestamp.seconds . |
time1 |
metadata.event_timestamp.seconds , timestamp.seconds |
Nilai time1 dari log mentah diuraikan dan digunakan untuk mengisi metadata.event_timestamp.seconds dan timestamp.seconds . |
tls_profile |
about.labels.value |
Nilai tls_profile dari log mentah ditetapkan ke about.labels.value , dengan about.labels.key adalah "tls_profile". |
tls_version |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
user_name |
principal.user.userid , principal.user.user_display_name |
Nilai user_name dari log mentah ditetapkan ke principal.user.userid atau principal.user.user_display_name bergantung pada konteks. |
user_type |
Tidak dipetakan | Tidak dipetakan ke objek IDM dalam contoh UDM yang diberikan. |
(T/A) | intermediary.resource.type |
Selalu ditetapkan ke "ACCESS_POLICY". |
(T/A) | metadata.event_type |
Ditentukan oleh logika parser berdasarkan msg_id , log_type , event_name , dan kolom lainnya. Dapat berupa NETWORK_CONNECTION , SERVICE_MODIFICATION , NETWORK_SMTP , NETWORK_DNS , NETWORK_HTTP , USER_LOGIN , USER_LOGOUT , USER_RESOURCE_UPDATE_CONTENT , RESOURCE_PERMISSIONS_CHANGE , RESOURCE_CREATION , GENERIC_EVENT , STATUS_UPDATE , atau USER_UNCATEGORIZED . |
(T/A) | metadata.product_name |
Selalu tetapkan ke "Fireware". |
(T/A) | metadata.vendor_name |
Selalu tetapkan ke "Watchguard". |
(T/A) | security_result.action |
Ditentukan oleh logika parser berdasarkan disposition . Dapat berupa "ALLOW" atau "BLOCK". |
(T/A) | extensions.auth.type |
Tetapkan ke "AUTHTYPE_UNSPECIFIED" untuk peristiwa login/logout pengguna, dan "VPN" untuk peristiwa jaringan yang terkait dengan VPN. |
(T/A) | network.application_protocol |
Ditentukan oleh logika parser berdasarkan msg_id dan event_name . Dapat berupa "DNS", "DHCP", "HTTP", atau "HTTPS". |
(T/A) | network.dns.questions.type |
Tetapkan ke 1 untuk kueri data "A". |
(T/A) | target.labels.key |
Tetapkan ke "Action over resource" saat action dipetakan ke target.labels.value . |
(T/A) | intermediary.labels.key |
Tetapkan ke "Nama Anggota Firewall" saat prin_host dipetakan ke intermediary.labels.value . |
(T/A) | intermediary.labels.key |
Tetapkan ke "Gateway-Endpoint" saat endpoint dipetakan ke intermediary.labels.value . |
(T/A) | principal.labels.key |
Tetapkan ke "Gateway" saat gateway dipetakan ke principal.labels.value . |
(T/A) | target.labels.key |
Tetapkan ke "Gateway" saat gateway dipetakan ke target.labels.value . |
(T/A) | principal.labels.key |
Tetapkan ke "status" saat status dipetakan ke principal.labels.value . |
(T/A) | target.labels.key |
Tetapkan ke "Status Gateway" saat status dipetakan ke target.labels.value . |
(T/A) | additional.fields.key |
Tetapkan ke "signature_name", "signature_cat", "signature_id", atau "reputation" saat nilai yang sesuai dipetakan dari log mentah. |
Perubahan
2023-12-03
- Mengubah pola Grok untuk mengurai kolom baru.
- Mengubah beberapa pola Grok untuk mengurai pola baru "identified_log".
- Menambahkan pola Grok baru untuk mengurai "identified_log" yang memiliki nilai "msg_id" sebagai "1600-0066".
2023-11-27
- Memetakan "signature_name" ke "additional.fields" untuk log yang memiliki "msg_id" sama dengan "3000-0150".
- Memetakan "signature_id", "signature_cat" ke "additional.fields".
2023-11-24
- Mengubah beberapa pola Grok untuk mengurai kolom baru.
- Memetakan "firewallname" ke "event.idm.read_only_udm.intermediary.hostname".
- Memetakan "firewall_id" ke "event.idm.read_only_udm.intermediary.asset_id".
- Memetakan "prin_host" ke "event.idm.read_only_udm.intermediary.labels"
2023-11-10
- Menghapus kode duplikat.
- Memetakan "signature_name" ke "additional.fields".
2023-09-28
- Perbaikan bug:
- Mengubah filter "date" untuk mendukung format berikut "yyyy-MM-dd HH:mm:ss", "MMM d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601", "yyyy-MM-ddTHH:mm:ss".
2023-05-25
- Perbaikan bug:
- Mengubah pemetaan untuk kolom "src_vpn_ip" dari "principal.ip" menjadi "target.ip" untuk peristiwa "Menerima pesan DPD dari host target melalui gateway".
2023-05-04
- Peningkatan - Menambahkan pola Grok untuk menangani log yang tidak diuraikan dengan peristiwa 'dnsmasq', 'dhcpd', 'iked', 'admd'.
2023-01-20
- Peningkatan - Menambahkan grok untuk menangani log yang tidak diuraikan.
- Memetakan "dst_port" ke target.port.
- Memetakan "src_port" ke principal.port.
- Memetakan "rcvd_bytes" ke network.received_bytes.
- Memetakan "geo_src" ke principal.location.country_or_region.
- Memetakan "geo_dst" ke target.location.country_or_region.
- Memetakan "prin_host" ke "principal.hostname".
- Menambahkan pemeriksaan bersyarat untuk "dhcp_type", "intermediary_host", "protocol"
- Untuk "msg_id" sama dengan "1600-0066"
- Menambahkan pola grok untuk "msg_id" yang sama dengan "1600-0066".
- Memetakan "description" ke "metadeta.description".
- Untuk "msg_id" sama dengan "2DFF-0000"
- Memetakan "proxy_act" ke "security_result.rule_name".
2022-12-17
- Peningkatan - Memetakan nama firewall ke "principal.asset_id" untuk log yang berisi Member1.
- Mengubah "event_type" dari "SERVICE_MODIFICATION" menjadi "NETWORK_CONNECTION".
- Memetakan "src_user" ke "principal.user.email_addresses" jika merupakan Email, atau memetakan ke "principal.user.user_display_name".
2022-12-16
- Peningkatan -
- Menambahkan grok untuk menangani log yang tidak diuraikan dengan event_name 'firewall'.
- Mengurangi jenis GENERIC_EVENT.
2022-11-16
- Peningkatan - Memetakan kolom 'reason' ke 'security_result.action_details'.
- Menambahkan grok untuk menangani log yang tidak diuraikan dengan event_name 'firewall'.
- Menambahkan blok kondisional tambahan untuk mengurai log dengan event_name 'loggerd', 'sigd', 'sessiond', 'admd', 'iked'.
2022-11-07
- Perbaikan bug:
- Jalur yang dipetakan diberikan di header http dari 'target.file.full_path' ke 'target.url'.
2022-06-17
- Peningkatan - Log yang diuraikan dengan peristiwa yang terkait dengan "firewall", "http-proxy", "https-proxy".