Mengumpulkan log pemberitahuan Palo Alto Prisma Cloud
Ringkasan
Parser ini mengekstrak log pemberitahuan dari Palo Alto Prisma Cloud dalam format JSON, yang mengubahnya menjadi UDM. Parser melakukan normalisasi data, konversi jenis, dan logika kondisional untuk mengisi kolom UDM yang sesuai. JSONPath juga menangani struktur dan array JSON bertingkat dalam data log untuk mengekstrak informasi yang relevan.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke Palo Alto Prisma Cloud.
Mengonfigurasi feed di Google SecOps untuk menyerap Pemberitahuan Palo Alto Prisma Cloud
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, PAN Prisma Cloud Alerts).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Payload pemberitahuan Palo Alto Prisma Cloud sebagai Jenis log.
- Klik Berikutnya.
- Opsional: Tentukan nilai untuk parameter input berikut:
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
\n
. - Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- Salin dan simpan kunci rahasia. Anda tidak dapat melihat kunci rahasia ini lagi. Jika perlu, Anda dapat membuat ulang kunci rahasia baru, tetapi tindakan ini akan membuat kunci rahasia sebelumnya tidak berlaku lagi.
- Dari tab Detail, salin URL endpoint feed dari kolom Endpoint Information. Anda perlu menentukan URL endpoint ini di aplikasi klien.
- Klik Done.
Membuat kunci API untuk feed webhook
Buka Konsol Google Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Batasi akses kunci API ke Google Security Operations API.
Menentukan URL endpoint
- Di aplikasi klien, tentukan URL endpoint HTTPS yang diberikan di feed webhook.
Aktifkan autentikasi dengan menentukan kunci API dan kunci secret sebagai bagian dari header kustom dalam format berikut:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Rekomendasi: Tentukan kunci API sebagai header, bukan menentukannya di URL.
Jika klien webhook Anda tidak mendukung header kustom, Anda dapat menentukan kunci API dan kunci rahasia menggunakan parameter kueri dalam format berikut:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Ganti kode berikut:
ENDPOINT_URL
: URL endpoint feed.API_KEY
: kunci API untuk mengautentikasi ke Google Security Operations.SECRET
: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Mengonfigurasi webhook Palo Alto Prisma Cloud ke Google SecOps
- Login ke Palo Alto Prisma Cloud.
- Pilih Setelan > Integrasi & Notifikasi ((and_then)) Integrasi.
- Klik Tambahkan Integrasi.
- Pilih Webhook.
- Tentukan nilai untuk parameter input berikut:
- Nama Integrasi: Berikan nama yang unik dan deskriptif (misalnya, Google SecOps)
- URL Webhook: Masukkan ENDPOINT_URL.
- Opsional: Berikan Deskripsi integrasi.
- Opsional: Aktifkan Payload Kustom > klik Berikutnya untuk meninjau atau merevisi payload kustom.
- Klik Berikutnya.
- Uji dan Simpan Integrasi.
Mengonfigurasi Pemberitahuan Palo Alto Prisma Cloud
- Di konsol Palo Alto Prisma Cloud, buka Alerts > View Alert Rules.
- Pilih aturan pemberitahuan yang ada untuk diedit.
- Opsional: Buat Notifikasi baru untuk Cloud Infrastructure.
- Opsional: Buat Pemberitahuan baru untuk Beban Kerja Cloud.
- Buka Configure Notifications.
- Pilih Webhook.
- Opsional: Pilih Saluran yang ingin Anda kirimi notifikasi pemberitahuan yang dipicu oleh aturan pemberitahuan.
- Klik Berikutnya.
- Klik Simpan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
accountId |
target.resource.id |
Nilai accountId dari log mentah. |
accountId |
target.resource.product_object_id |
Nilai accountId dari log mentah. Opsi ini akan mengganti kolom resource.id yang tidak digunakan lagi. |
alertId |
security_result.detection_fields[].key |
Kunci ditetapkan ke "alert id". |
alertId |
security_result.detection_fields[].value |
Nilai alertId dari log mentah. |
alertRuleId |
security_result.rule_id |
Nilai alertRuleId dari log mentah. |
alertRuleName |
security_result.rule_name |
Nilai alertRuleName dari log mentah. |
alertStatus |
security_result.detection_fields[].key |
Kunci ditetapkan ke "status pemberitahuan". |
alertStatus |
security_result.detection_fields[].value |
Nilai alertStatus dari log mentah. |
alertTs |
security_result.detection_fields[].key |
Kunci ditetapkan ke "alertTs". |
alertTs |
security_result.detection_fields[].value |
Nilai alertTs dari log mentah, yang dikonversi menjadi string. |
callbackUrl |
metadata.url_back_to_product |
Nilai callbackUrl dari log mentah. |
cloudType |
principal.cloud.environment |
Jika cloudType adalah "gcp" (tidak peka huruf besar/kecil), nilainya ditetapkan ke "GOOGLE_CLOUD_PLATFORM". |
complianceMetadata[].complianceId |
security_result.detection_fields[].key |
Kunci ditetapkan ke "complianceId". |
complianceMetadata[].complianceId |
security_result.detection_fields[].value |
Nilai complianceMetadata[].complianceId dari log mentah. |
complianceMetadata[].customAssigned |
security_result.detection_fields[].key |
Kunci ditetapkan ke "customAssigned". |
complianceMetadata[].customAssigned |
security_result.detection_fields[].value |
Nilai complianceMetadata[].customAssigned dari log mentah, yang dikonversi menjadi string. |
complianceMetadata[].policyId |
security_result.detection_fields[].key |
Kunci ditetapkan ke "ID Kebijakan". |
complianceMetadata[].policyId |
security_result.detection_fields[].value |
Nilai complianceMetadata[].policyId dari log mentah. |
complianceMetadata[].requirementId |
security_result.rule_id |
Nilai complianceMetadata[].requirementId dari log mentah. |
complianceMetadata[].requirementName |
security_result.summary |
Nilai complianceMetadata[].requirementName dari log mentah. |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].key |
Kunci ditetapkan ke "requirementViewOrder". |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].value |
Nilai complianceMetadata[].requirementViewOrder dari log mentah, yang dikonversi menjadi string. |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].key |
Kunci ditetapkan ke "sectionDescription". |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].value |
Nilai complianceMetadata[].sectionDescription dari log mentah. |
complianceMetadata[].sectionId |
security_result.detection_fields[].key |
Kunci ditetapkan ke "sectionId". |
complianceMetadata[].sectionId |
security_result.detection_fields[].value |
Nilai complianceMetadata[].sectionId dari log mentah. |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].key |
Kunci ditetapkan ke "sectionLabel". |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].value |
Nilai complianceMetadata[].sectionLabel dari log mentah. |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].key |
Kunci ditetapkan ke "sectionViewOrder". |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].value |
Nilai complianceMetadata[].sectionViewOrder dari log mentah, yang dikonversi menjadi string. |
complianceMetadata[].standardDescription |
security_result.detection_fields[].key |
Kunci ditetapkan ke "standardDescription". |
complianceMetadata[].standardDescription |
security_result.detection_fields[].value |
Nilai complianceMetadata[].standardDescription dari log mentah. |
complianceMetadata[].standardName |
security_result.rule_name |
Nilai complianceMetadata[].standardName dari log mentah. |
complianceMetadata[].systemDefault |
security_result.detection_fields[].key |
Kunci ditetapkan ke "systemDefault". |
complianceMetadata[].systemDefault |
security_result.detection_fields[].value |
Nilai complianceMetadata[].systemDefault dari log mentah, yang dikonversi menjadi string. |
create_time |
metadata.event_timestamp , events[].timestamp |
Nilai create_time dari log mentah. |
data.allocationId |
principal.resource.product_object_id |
Nilai data.allocationId dari log mentah. |
data.publicIp |
principal.ip |
Nilai data.publicIp dari log mentah. |
deleted |
additional.fields[].key |
Kunci ditetapkan ke "dihapus". |
deleted |
additional.fields[].value.string_value |
Nilai deleted dari log mentah, yang dikonversi menjadi string. |
description |
metadata.description |
Nilai description dari log mentah. |
firstSeen |
principal.asset.first_seen_time |
Nilai firstSeen dari log mentah, diuraikan sebagai stempel waktu (format UNIX_MS atau UNIX). |
hasFinding |
security_result.detection_fields[].key |
Kunci ditetapkan ke "hasFinding". |
hasFinding |
security_result.detection_fields[].value |
Nilai hasFinding dari log mentah, yang dikonversi menjadi string. |
lastSeen |
principal.asset.last_discover_time |
Nilai lastSeen dari log mentah, diuraikan sebagai stempel waktu (format UNIX_MS atau UNIX). |
T/A | metadata.event_type |
Tetapkan ke "USER_RESOURCE_ACCESS" jika tidak diganti oleh jenis peristiwa tertentu dari log. Jika tidak, tetapkan ke "GENERIC_EVENT". |
T/A | metadata.product_name |
Di-hardcode ke "CASB". |
T/A | metadata.vendor_name |
Di-hardcode ke "Palo Alto Networks". |
policyDescription |
security_result.detection_fields[].key |
Kunci ditetapkan ke "policyDescription". |
policyDescription |
security_result.detection_fields[].value |
Nilai policyDescription dari log mentah. |
policyId |
security_result.detection_fields[].key |
Kunci ditetapkan ke "ID Kebijakan". |
policyId |
security_result.detection_fields[].value |
Nilai policyId dari log mentah. |
policyLabels |
additional.fields[].key |
Kunci ditetapkan ke "policyLabels". |
policyLabels |
additional.fields[].value.string_value |
Nilai policyLabels dari log mentah. |
policyName |
security_result.description |
Nilai policyName dari log mentah. |
policyRecommendation |
security_result.detection_fields[].key |
Kunci ditetapkan ke "rekomendasi kebijakan". |
policyRecommendation |
security_result.detection_fields[].value |
Nilai policyRecommendation dari log mentah. |
policyType |
security_result.detection_fields[].key |
Kunci ditetapkan ke "Policy Type". |
policyType |
security_result.detection_fields[].value |
Nilai policyType dari log mentah. |
reason |
security_result.summary |
Nilai reason dari log mentah. |
recommendation |
security_result.detection_fields[].key |
Kunci ditetapkan ke "Rekomendasi". |
recommendation |
security_result.detection_fields[].value |
Nilai recommendation dari log mentah. |
resource.additionalInfo |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource additionalInfo". |
resource.additionalInfo |
principal.resource.attribute.labels[].value |
Nilai resource.additionalInfo dari log mentah. |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource cloudAccountGroups {index}". |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].value |
Nilai resource.cloudAccountGroups[] dari log mentah. |
resource.cloudType |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource cloudType". |
resource.cloudType |
principal.resource.attribute.labels[].value |
Nilai resource.cloudType dari log mentah. |
resource.data |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource data {nested_key}". |
resource.data |
principal.resource.attribute.labels[].value |
Nilai resource.data[] dari log mentah. |
resource.id |
principal.resource.product_object_id |
Nilai resource.id dari log mentah. |
resource.name |
principal.resource.name |
Nilai resource.name dari log mentah. |
resource.region |
principal.location.country_or_region |
Nilai resource.region dari log mentah. |
resource.regionId |
principal.cloud.availability_zone |
Nilai resource.regionId dari log mentah. |
resource.resourceApiName |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource resourceApiName". |
resource.resourceApiName |
principal.resource.attribute.labels[].value |
Nilai resource.resourceApiName dari log mentah. |
resource.resourceTags |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource resourceTags {nested_key}". |
resource.resourceTags |
principal.resource.attribute.labels[].value |
Nilai resource.resourceTags[] dari log mentah. |
resource.resourceTs |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource resourceTs". |
resource.resourceTs |
principal.resource.attribute.labels[].value |
Nilai resource.resourceTs dari log mentah. |
resource.resourceType |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource resourceType". |
resource.resourceType |
principal.resource.attribute.labels[].value |
Nilai resource.resourceType dari log mentah. |
resource.rrn |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "resource rrn". |
resource.rrn |
principal.resource.attribute.labels[].value |
Nilai resource.rrn dari log mentah. |
resource.url |
principal.url |
Nilai resource.url dari log mentah. |
resourceCloudService |
principal.resource.attribute.labels[].key |
Kunci ditetapkan ke "layanan cloud resource". |
resourceCloudService |
principal.resource.attribute.labels[].value |
Nilai resourceCloudService dari log mentah. |
resourceName |
principal.resource.name |
Nilai resourceName dari log mentah. |
resourceRegion |
principal.location.country_or_region |
Nilai resourceRegion dari log mentah. |
resourceRegionId |
principal.cloud.availability_zone |
Nilai resourceRegionId dari log mentah. |
resourceType |
target.resource.resource_subtype |
Nilai resourceType dari log mentah. |
severity |
security_result.severity |
Nilai severity dari log mentah, yang dikonversi ke huruf besar. Dipetakan ke nilai keparahan UDM (KRITIS, TINGGI, SEDANG, RENDAH, INFORMASI). |
source |
principal.application |
Nilai source dari log mentah. |
unifiedAssetId |
principal.asset.asset_id |
Nilai unifiedAssetId dari log mentah, diawali dengan "ASSETID:". |
Perubahan
2023-12-10
- Menambahkan pola Grok untuk mengekstrak bagian JSON.
- Memetakan "resourceId" ke "principal.resource.product_object_id".
- Memetakan "accountId" ke "target.resource.product_object_id".
- Memetakan "alertRuleName" ke "security_result.rule_name".
- Memetakan "accountName" ke "target.resource.name".
- Memetakan "hasFinding" ke "security_result.detection_fields".
- Memetakan "resourceRegionId" ke "principal.cloud.availability_zone".
- Memetakan "source" ke "principal.application".
- Memetakan "callbackUrl" ke "metadata.url_back_to_product".
- Memetakan "alertRuleId" ke "security_result.rule_id".
- Memetakan "alertId" ke "security_result.detection_fields".
- Memetakan "policyLabels" ke "additional.fields".
- Memetakan "policyName" ke "security_result.description".
- Memetakan "resourceName" ke "principal.resource.name".
- Memetakan "resourceRegion" ke "principal.location.country_or_region".
- Memetakan "policyDescription" ke "security_result.detection_fields".
- Memetakan "policyRecommendation" ke "security_result.detection_fields".
- Memetakan "resourceCloudService" ke "principal.resource.attribute.labels".
- Memetakan "resource.url" ke "principal.url".
- Memetakan "alertTs" ke "security_result.detection_fields".
- Memetakan "firstSeen" ke "principal.asset.first_seen_time".
- Memetakan "lastSeen" ke "principal.asset.last_discover_time".
- Memetakan "reason" ke "security_result.summary".
- Memetakan "alertStatus" ke "security_result.detection_fields".
- Jika nilai "severity" adalah "HIGH", tetapkan "security_result.severity" ke "HIGH".
- Jika nilai "cloudType" adalah "gcp", tetapkan "principal.cloud.environment" ke "GOOGLE_CLOUD_PLATFORM".
2023-08-17
- Parser yang baru dibuat.