Mengumpulkan log Traps Palo Alto Networks
Dokumen ini menjelaskan cara mengumpulkan log Palo Alto Networks Traps ke Google Security Operations menggunakan Bindplane. Parser menangani log dalam format CSV dan nilai kunci, lalu mengubahnya menjadi UDM. Alat ini menggunakan parsing grok dan CSV untuk mengekstrak kolom, melakukan logika bersyarat berdasarkan pesan log atau nilai kolom tertentu untuk dipetakan ke kolom UDM, dan menangani berbagai jenis peristiwa seperti pembaruan status, pemindaian jaringan, dan pembuatan proses.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd. - Jika beroperasi dari balik proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses istimewa ke Cortex XDR.
Mendapatkan kredensial Google SecOps untuk agen Bindplane
Untuk mengautentikasi agen Bindplane ke Google SecOps, pilih salah satu metode berikut:
- Deployment baru: Gunakan Chronicle API (Opsi 1).
- Deployment lama: Terus gunakan file autentikasi penyerapan (Opsi 2) hingga Ingestion API dihentikan pada 20 Juli 2027.
Opsi 1: Membuat akun layanan untuk Chronicle API (direkomendasikan)
- Login ke konsolGoogle Cloud dan pilih project Google Cloud yang ditautkan ke instance Google SecOps Anda.
- Buka IAM & Admin > Service Accounts.
- Klik Create service account.
- Berikan detail konfigurasi berikut:
- Nama akun layanan: Masukkan nama untuk akun (misalnya,
bindplane-ingest). - Deskripsi akun layanan: Masukkan deskripsi (misalnya,
Bindplane agent log ingestion).
- Nama akun layanan: Masukkan nama untuk akun (misalnya,
- Klik Create and continue.
- Di bagian Grant this service account access to project, klik Select a role, lalu pilih Chronicle Editor.
- Klik Continue lalu klik Done.
- Klik akun layanan yang Anda buat, lalu buka tab Keys.
- Klik Add key > Create new key.
- Pilih JSON, lalu klik Create. File kunci didownload ke komputer Anda.
- Simpan file kunci sebagai
ingestion-auth.jsondi direktori Bindplane collector (/opt/observiq-otel-collector/ingestion-auth.jsondi Linux atauC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsondi Windows), atau perbaruicreds_file_pathdiconfig.yamlagar sesuai dengan jalur tempat Anda menyimpannya. - Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.
Opsi 2: Mendownload file autentikasi penyerapan (lama)
- Login ke konsol Google SecOps.
- Buka SIEM Settings > Collection Agents.
- 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
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/opt/observiq-otel-collector/di Linux atau di direktori penginstalan di Windows. - Buka file menggunakan editor teks (misalnya,
nano,vi, atau Notepad).
- Cari file
Edit file
config.yamlsebagai berikut:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' 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: chronicle.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: PAN_EDR raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labelsGanti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
Ganti
<LOCATION>dengan region instance Google SecOps Anda (misalnya,us,europe, atauasia-southeast1). Pengekspor akan mengawalichronicle.googleapis.comdengan nilai ini.Ganti
<PROJECT_NUMBER>dengan nomor project dari IAM & Admin > Settings.Ganti
<customer_id>dengan ID pelanggan yang sebenarnya.Ganti
/path/to/ingestion-authentication-file.jsondengan jalur tempat file kunci akun layanan (Opsi 1) disimpan di bagian Mendapatkan kredensial Google SecOps untuk agen Bindplane.
Pengekspor API penyerapan lama
Jika Anda menggunakan file autentikasi penyerapan dari Opsi 2, ganti blok
exportersdengan kode berikut. Tetapkancredske jalur file autentikasi penyerapan, dan jika instance Anda berada di luar Amerika Serikat, gantimalachiteingestion-pa.googleapis.comdengan endpoint regional Anda (misalnya,europe-malachiteingestion-pa.googleapis.com).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: PAN_EDR raw_log_field: body
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart bindplane-agentUntuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi Palo Alto Networks Traps
- Login ke konsol Cortex XDR ESM.
- Pilih Settings > ESM > Syslog.
- Centang kotak Enable syslog.
- Berikan detail konfigurasi berikut:
- Server syslog: masukkan alamat IP agen Bindplane.
- Syslog port: masukkan nomor port yang dikonfigurasi di Bindplane; misalnya,
514. - Protokol Syslog: pilih CEF.
- Tetapkan Keep-alive timeout ke 0.
- Communication protocol: pilih UDP.
- Di bagian Peristiwa keamanan, centang kotak berikut:
- Acara pencegahan
- Peristiwa notifikasi
- Peristiwa pasca-deteksi
- Klik Periksa konektivitas > Simpan.
Tabel Pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
agentId |
event.idm.read_only_udm.additional.fields.value.string_value |
Nilai agentId dari log mentah dipetakan ke kolom string_value dalam struktur bertingkat di bagian additional.fields. key untuk kolom ini ditetapkan ke Agent ID. |
agentIp |
event.idm.read_only_udm.target.ip |
Nilai agentIp dari log mentah dipetakan ke kolom target.ip. |
cat |
event.idm.read_only_udm.security_result.rule_name |
Nilai cat dari log mentah dipetakan ke kolom security_result.rule_name. |
class |
event.idm.read_only_udm.security_result.category_details |
Digunakan bersama dengan subClass untuk mengisi security_result.category_details dengan format class: subClass. |
cs1 |
event.idm.read_only_udm.principal.application, event.idm.read_only_udm.principal.user.email_addresses |
Jika cs1Label adalah email, dan cs1 adalah alamat email yang valid, alamat tersebut dipetakan ke principal.user.email_addresses. Jika cs1Label adalah Initiated by, nilai tersebut akan dipetakan ke principal.application. |
cs2 |
event.idm.read_only_udm.principal.process.command_line, event.idm.read_only_udm.security_result.description |
Jika cs2Label adalah subtype, maka akan dipetakan ke security_result.description. Jika cs2Label adalah Initiator CMD, nilai tersebut akan dipetakan ke principal.process.command_line. |
cs3 |
event.idm.read_only_udm.security_result.action_details |
Jika cs3Label adalah result, nilai tersebut akan dipetakan ke security_result.action_details. |
customerId |
event.idm.read_only_udm.additional.fields.value.string_value |
Nilai customerId dari log mentah dipetakan ke kolom string_value dalam struktur bertingkat di bagian additional.fields. key untuk kolom ini ditetapkan ke Customer ID. |
date_time |
event.idm.read_only_udm.metadata.event_timestamp.seconds |
Diuraikan dan dikonversi menjadi stempel waktu, lalu dipetakan ke metadata.event_timestamp.seconds. |
desc |
event.idm.read_only_udm.metadata.description |
Nilai desc dari log mentah dipetakan ke kolom metadata.description. |
deviceName |
event.idm.read_only_udm.target.hostname |
Nilai deviceName dari log mentah dipetakan ke kolom target.hostname. |
email_receiver |
event.idm.read_only_udm.network.email.to |
Diekstrak dari kolom msg jika berisi alamat email dan dipetakan ke network.email.to. |
endpoint_desc |
event.idm.read_only_udm.target.resource.attribute.labels.value |
Diperoleh dari isEndpoint: Yes, host is an endpoint. jika isEndpoint adalah 1, No, host is not an endpoint jika isEndpoint adalah 0. key disetel ke Is Endpoint. |
eventType |
event.idm.read_only_udm.metadata.product_event_type, event.idm.read_only_udm.metadata.event_type |
Nilai eventType dari log mentah dipetakan ke kolom metadata.product_event_type. Juga digunakan untuk mendapatkan metadata.event_type berdasarkan nilainya (misalnya, Management Audit Logs menghasilkan EMAIL_TRANSACTION, XDR Analytics BIOC atau Behavioral Threat menghasilkan SCAN_NETWORK). |
facility |
event.idm.read_only_udm.additional.fields.value.string_value |
Nilai facility dari log mentah dipetakan ke kolom string_value dalam struktur bertingkat di bagian additional.fields. key untuk kolom ini ditetapkan ke Facility. |
fileHash |
event.idm.read_only_udm.principal.process.file.sha256 |
Nilai fileHash dari log mentah, yang dikonversi menjadi huruf kecil, dipetakan ke kolom principal.process.file.sha256. |
filePath |
event.idm.read_only_udm.principal.process.file.full_path |
Nilai filePath dari log mentah dipetakan ke kolom principal.process.file.full_path. |
friendlyName |
event.idm.read_only_udm.metadata.description |
Nilai friendlyName dari log mentah dipetakan ke kolom metadata.description. |
interm_ip |
event.idm.read_only_udm.intermediary.ip |
Nilai interm_ip dari log mentah dipetakan ke kolom intermediary.ip. |
isEndpoint |
event.idm.read_only_udm.target.resource.attribute.labels.value |
Digunakan untuk mendapatkan target.resource.attribute.labels.value. |
isVdi |
event.idm.read_only_udm.target.resource.resource_type |
Jika isVdi adalah 1, target.resource.resource_type ditetapkan ke VIRTUAL_MACHINE. |
msg |
event.idm.read_only_udm.security_result.summary |
Nilai msg dari log mentah dipetakan ke kolom security_result.summary. Juga digunakan untuk mengekstrak email_receiver. |
msgTextEn |
event.idm.read_only_udm.security_result.description |
Nilai msgTextEn dari log mentah dipetakan ke kolom security_result.description. |
osType |
event.idm.read_only_udm.target.platform, event.idm.read_only_udm.target.resource.attribute.labels.value |
Jika osType adalah 1, target.platform ditetapkan ke WINDOWS. Jika osType adalah 2, target.platform disetel ke MAC. Jika osType adalah 4, target.platform ditetapkan ke LINUX. Jika osType adalah 3, nilainya akan dipetakan ke target.resource.attribute.labels.value dengan key OS. |
osVersion |
event.idm.read_only_udm.target.platform_version |
Nilai osVersion dari log mentah dipetakan ke kolom target.platform_version. |
product_version |
event.idm.read_only_udm.metadata.product_version |
Nilai product_version dari log mentah dipetakan ke kolom metadata.product_version. |
proto |
event.idm.read_only_udm.network.ip_protocol |
Jika proto adalah udp, network.ip_protocol disetel ke UDP. |
recordType |
event.idm.read_only_udm.additional.fields.value.string_value |
Nilai recordType dari log mentah dipetakan ke kolom string_value dalam struktur bertingkat di bagian additional.fields. key untuk kolom ini ditetapkan ke Record Type. |
regionId |
event.idm.read_only_udm.principal.location.country_or_region |
Jika regionId adalah 10, principal.location.country_or_region ditetapkan ke Americas (N. Virginia). Jika regionId adalah 70, principal.location.country_or_region ditetapkan ke EMEA (Frankfurt). |
request |
event.idm.read_only_udm.target.url |
Nilai request dari log mentah dipetakan ke kolom target.url. |
sec_category_details |
event.idm.read_only_udm.security_result.category_details |
Nilai sec_category_details dari log mentah dipetakan ke kolom security_result.category_details. |
sec_desc |
event.idm.read_only_udm.security_result.description |
Nilai sec_desc dari log mentah dipetakan ke kolom security_result.description. |
serverHost |
event.idm.read_only_udm.principal.hostname |
Nilai serverHost dari log mentah dipetakan ke kolom principal.hostname. |
severity |
event.idm.read_only_udm.security_result.severity |
Dipetakan ke security_result.severity dengan logika berikut: 2 -> CRITICAL, 3 -> ERROR, 4 -> MEDIUM, 5 -> LOW, 6 -> INFORMATIONAL. |
severity_val |
event.idm.read_only_udm.security_result.severity, event.idm.read_only_udm.security_result.severity_details |
Jika severity_val adalah 0, security_result.severity_details ditetapkan ke UNKNOWN_SEVERITY. Jika tidak, akan dipetakan ke security_result.severity dengan logika berikut: 6 -> RENDAH, 8 -> SEDANG, 9 -> TINGGI. |
shost |
event.idm.read_only_udm.principal.hostname |
Nilai shost dari log mentah dipetakan ke kolom principal.hostname. |
src_ip |
event.idm.read_only_udm.principal.ip |
Nilai src_ip dari log mentah dipetakan ke kolom principal.ip. |
subClass |
event.idm.read_only_udm.security_result.category_details |
Digunakan bersama dengan class untuk mengisi security_result.category_details. |
suser |
event.idm.read_only_udm.principal.user.user_display_name |
Nilai suser dari log mentah, dengan tanda kurung, garis miring terbalik, dan tanda petik tunggal yang dihapus, dipetakan ke kolom principal.user.user_display_name. |
targetprocesscmd |
event.idm.read_only_udm.target.process.command_line |
Nilai targetprocesscmd dari log mentah dipetakan ke kolom target.process.command_line. |
targetprocessname |
event.idm.read_only_udm.target.application |
Nilai targetprocessname dari log mentah dipetakan ke kolom target.application. |
targetprocesssha256 |
event.idm.read_only_udm.target.process.file.sha256 |
Nilai targetprocesssha256 dari log mentah, yang dikonversi menjadi huruf kecil, dipetakan ke kolom target.process.file.sha256. |
tenantname |
event.idm.read_only_udm.target.resource.attribute.labels.value |
Nilai tenantname dari log mentah dipetakan ke kolom value dalam struktur bertingkat di bagian target.resource.attribute.labels. key untuk kolom ini ditetapkan ke Tenant name. |
event.idm.read_only_udm.metadata.event_type |
Setel ke STATUS_UPDATE secara default. Diubah menjadi EMAIL_TRANSACTION jika eventType adalah Management Audit Logs. Diubah menjadi SCAN_NETWORK jika eventType adalah XDR Analytics BIOC atau Behavioral Threat, atau jika desc adalah Behavioral Threat. Diubah menjadi SCAN_PROCESS jika desc adalah Suspicious Process Creation. Tetapkan ke Palo Alto Networks. Tetapkan ke Cortex XDR. Tetapkan ke PAN_EDR. Tetapkan ke NETWORK_SUSPICIOUS jika eventType adalah XDR Analytics BIOC atau Behavioral Threat, atau jika desc adalah Behavioral Threat. |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.