Mengumpulkan log Traps Palo Alto Networks

Didukung di:

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.
  1. Login ke konsolGoogle Cloud dan pilih project Google Cloud yang ditautkan ke instance Google SecOps Anda.
  2. Buka IAM & Admin > Service Accounts.
  3. Klik Create service account.
  4. Berikan detail konfigurasi berikut:
    • Nama akun layanan: Masukkan nama untuk akun (misalnya, bindplane-ingest).
    • Deskripsi akun layanan: Masukkan deskripsi (misalnya, Bindplane agent log ingestion).
  5. Klik Create and continue.
  6. Di bagian Grant this service account access to project, klik Select a role, lalu pilih Chronicle Editor.
  7. Klik Continue lalu klik Done.
  8. Klik akun layanan yang Anda buat, lalu buka tab Keys.
  9. Klik Add key > Create new key.
  10. Pilih JSON, lalu klik Create. File kunci didownload ke komputer Anda.
  11. Simpan file kunci sebagai ingestion-auth.json di direktori Bindplane collector (/opt/observiq-otel-collector/ingestion-auth.json di Linux atau C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json di Windows), atau perbarui creds_file_path di config.yaml agar sesuai dengan jalur tempat Anda menyimpannya.
  12. Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.

Opsi 2: Mendownload file autentikasi penyerapan (lama)

  1. Login ke konsol Google SecOps.
  2. Buka SIEM Settings > Collection Agents.
  3. Download file autentikasi penyerapan.
  4. Simpan file dengan aman di sistem tempat agen BindPlane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal agen Bindplane

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. 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

Mengonfigurasi agen Bindplane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:

    1. Cari file config.yaml. Biasanya, file ini berada di direktori /opt/observiq-otel-collector/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. 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:
            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_labels
    
  3. Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.

  4. Ganti <LOCATION> dengan region instance Google SecOps Anda (misalnya, us, europe, atau asia-southeast1). Pengekspor akan mengawali chronicle.googleapis.com dengan nilai ini.

  5. Ganti <PROJECT_NUMBER> dengan nomor project dari IAM & Admin > Settings.

  6. Ganti <customer_id> dengan ID pelanggan yang sebenarnya.

  7. Ganti /path/to/ingestion-authentication-file.json dengan 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 exporters dengan kode berikut. Tetapkan creds ke jalur file autentikasi penyerapan, dan jika instance Anda berada di luar Amerika Serikat, ganti malachiteingestion-pa.googleapis.com dengan 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-agent
    
  • Untuk 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

  1. Login ke konsol Cortex XDR ESM.
  2. Pilih Settings > ESM > Syslog.
  3. Centang kotak Enable syslog.
  4. 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.
  5. Di bagian Peristiwa keamanan, centang kotak berikut:
    • Acara pencegahan
    • Peristiwa notifikasi
    • Peristiwa pasca-deteksi
  6. 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.