Mengumpulkan log IOC Palo Alto Networks
Dokumen ini menjelaskan cara menyerap indikator penyusupan (IOC) Palo Alto Networks ke Google Security Operations menggunakan STIX melalui TAXII. Skrip penyerapan stix_taxii (fungsi Cloud Run) menarik indikator dari server TAXII 2.1 Palo Alto secara terjadwal dan mengirimkannya ke Google SecOps menggunakan jenis log STIX.
Palo Alto Networks mengekspos IOC sebagai feed STIX 2.1 melalui TAXII dari Cortex XSOAR atau XSIAM Threat Intelligence Management (TIM). Parser STIX di Google SecOps memetakan jenis indikator umum (alamat IPv4, domain, URL, hash file, dan alamat email) ke UDM.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps, serta file autentikasi penyerapan Google SecOps (JSON akun layanan) dan ID Pelanggan.
- Project Google Cloud dengan penagihan diaktifkan dan izin untuk membuat akun layanan, secret Secret Manager, Cloud Run Functions, dan tugas Cloud Scheduler.
Palo Alto Cortex XSOAR atau XSIAM dengan lisensi Threat Intelligence Management (TIM), dan akses istimewa untuk mengonfigurasi integrasi.
Menyiapkan feed Palo Alto TAXII 2.1 di Cortex TIM
Integrasi Server TAXII2 memublikasikan indikator Cortex XSOAR atau XSIAM Anda sebagai feed TAXII 2.1 keluar yang ditarik oleh skrip penyerapan.
- Di Cortex XSOAR atau XSIAM, instal paket konten TAXII Server dari Settings & Info > Settings > Integrations > Marketplace.
- Buka Settings > Integrations > Instances, telusuri TAXII2 Server, lalu klik Add instance.
- Berikan detail konfigurasi berikut:
- Name: Masukkan nama untuk instance (misalnya,
SecOps-TAXII). - Long Running Instance: Aktifkan opsi ini.
- Versi Server TAXII2: Pilih 2.1.
- Kredensial: Tetapkan nama pengguna dan sandi yang digunakan skrip penyerapan untuk autentikasi HTTP Basic.
- Name: Masukkan nama untuk instance (misalnya,
Di kolom Collection JSON, tempelkan kode berikut. API ini memublikasikan satu koleksi bernama
SecOpsIOCsyang berisi jenis indikator yang didukung parserSTIX:{ "SecOpsIOCs": { "query": "type:IP or type:Domain or type:URL or type:File or type:Email", "description": "Indicators exported to Google SecOps" } }Klik Simpan & keluar, lalu aktifkan instance. Pastikan status instance ditampilkan sebagai berjalan.
Di playground Google SecOps atau panel perintah integrasi, jalankan perintah berikut dan simpan outputnya:
!taxii-server-info !taxii-server-list-collectionsDari output perintah, simpan nilai berikut untuk langkah deployment:
- URL Discovery: URL root API yang ditampilkan oleh
!taxii-server-info(misalnya,https://ext-TENANT.crtx.REGION.paloaltonetworks.com/xsoar/instance/execute/SecOps-TAXII/threatintel/). - Nama koleksi:
SecOpsIOCs. - Nama pengguna dan Sandi: Kredensial autentikasi Dasar yang Anda tetapkan.
- URL Discovery: URL root API yang ditampilkan oleh
Aktifkan Google Cloud API yang diperlukan
Di konsol Google Cloud , buka Cloud Shell dan jalankan:
gcloud services enable \ cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ cloudscheduler.googleapis.com \ secretmanager.googleapis.com
Menyimpan kredensial di Secret Manager
Skrip ini membaca JSON akun layanan Google SecOps dan sandi TAXII dari Secret Manager.
Buat secret akun layanan penyerapan Google SecOps dari file autentikasi penyerapan Anda:
gcloud secrets create secops-ingestion-sa --data-file=./ingestion-auth.jsonBuat secret sandi TAXII:
printf '%s' 'YOUR_TAXII_PASSWORD' | gcloud secrets create taxii-password --data-file=-Simpan kedua nama resource dalam bentuk
projects/PROJECT_ID/secrets/SECRET_NAME/versions/latest. Anda menggunakannya di.env.yml.
Buat akun layanan untuk fungsi
Buat akun layanan runtime untuk fungsi Cloud Run:
gcloud iam service-accounts create stix-taxii-sa \ --display-name="STIX/TAXII ingestion function"Beri akses ke dua secret:
gcloud secrets add-iam-policy-binding secops-ingestion-sa \ --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor" gcloud secrets add-iam-policy-binding taxii-password \ --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"
Men-deploy skrip penyerapan
Skrip penyerapan stix_taxii adalah fungsi Cloud Run yang menarik indikator dari server TAXII dan menyalurkannya ke Google SecOps menggunakan Ingestion API. Log ini selalu di-ingest menggunakan jenis log STIX.
Di Cloud Shell, clone repositori skrip penyerapan:
git clone https://github.com/chronicle/ingestion-scripts.git cp -r ingestion-scripts/common ingestion-scripts/stix_taxii/common cd ingestion-scripts/stix_taxiiBuat file bernama
.env.ymldengan konten berikut. Ganti nilai placeholder dengan nilai yang Anda simpan sebelumnya:CHRONICLE_CUSTOMER_ID: "YOUR_CUSTOMER_ID" CHRONICLE_REGION: "us" CHRONICLE_SERVICE_ACCOUNT: "projects/PROJECT_ID/secrets/secops-ingestion-sa/versions/latest" TAXII_VERSION: "2.1" TAXII_DISCOVERY_URL: "https://ext-TENANT.crtx.REGION.paloaltonetworks.com/xsoar/instance/execute/SecOps-TAXII/threatintel/" TAXII_COLLECTION_NAMES: "SecOpsIOCs" TAXII_USERNAME: "YOUR_TAXII_USERNAME" TAXII_PASSWORD_SECRET_PATH: "projects/PROJECT_ID/secrets/taxii-password/versions/latest" POLL_INTERVAL: "60"Deploy fungsi tersebut:
gcloud functions deploy stix-taxii-ingestion \ --gen2 \ --entry-point main \ --trigger-http \ --runtime python312 \ --region us-central1 \ --service-account stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com \ --timeout 540 \ --memory 512MB \ --no-allow-unauthenticated \ --env-vars-file .env.ymlSimpan URL pemicu fungsi dari output deployment (misalnya,
https://us-central1-PROJECT_ID.cloudfunctions.net/stix-taxii-ingestion).
Menjadwalkan fungsi dengan Cloud Scheduler
Beri akun layanan izin untuk memanggil fungsi:
gcloud functions add-invoker-policy-binding stix-taxii-ingestion \ --region=us-central1 \ --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com"Buat tugas penjadwal yang memanggil fungsi setiap jam (sesuaikan frekuensi dengan
POLL_INTERVAL):gcloud scheduler jobs create http stix-taxii-scheduler \ --location=us-central1 \ --schedule="0 */1 * * *" \ --uri="FUNCTION_TRIGGER_URL" \ --http-method=POST \ --oidc-service-account-email="stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com" \ --oidc-token-audience="FUNCTION_TRIGGER_URL"
Memverifikasi deployment
Memicu sesi awal:
gcloud scheduler jobs run stix-taxii-scheduler --location=us-central1Tinjau log fungsi:
gcloud functions logs read stix-taxii-ingestion --region=us-central1 --gen2 --limit=50Di Google SecOps, telusuri peristiwa dengan jenis log
STIXuntuk mengonfirmasi bahwa indikator telah di-ingest.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
observable.object.properties.type |
categorization |
Dipetakan secara langsung |
type |
categorization |
Dipetakan secara langsung |
x_ctix_confidence_score |
confidence_score |
Diganti nama/dipetakan |
name |
domain_and_ports.domain |
Dipetakan secara langsung |
observable.object.properties.value |
domain_and_ports.domain |
Dipetakan secara langsung |
value |
domain_and_ports.domain |
Dipetakan secara langsung |
type |
feed_name |
Dipetakan: "ipv4","ipv4-addr", "scan_ip", "mal_ip" → STIX-IOC, `"phish_domain", "domain", "... |
src_ip |
ip_and_ports.ip_address |
Dipetakan secara langsung |
value |
ip_and_ports.ip_address |
Dipetakan secara langsung |
src_port |
ip_and_ports.ports |
Digabung |
type |
ip_and_ports.ports |
Dipetakan: "ipv4","ipv4-addr", "scan_ip", "mal_ip" → src_port, ipv4-addr → src_port |
created |
metadata.event_timestamp |
Diurai sebagai ISO8601 |
modified |
metadata.event_timestamp |
Diuraikan sebagai ISO8601 |
timestamp |
metadata.event_timestamp |
Diuraikan sebagai ISO8601 |
valid_from |
metadata.event_timestamp |
Diuraikan sebagai ISO8601 |
valid_until |
metadata.event_timestamp |
Diuraikan sebagai ISO8601 |
| T/A | feed_name |
Konstanta: STIX-IOC |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.