Mengumpulkan log Cloudflare WAF
Parser ini mengekstrak kolom dari log JSON Web Application Firewall (WAF) Cloudflare, mengubah, dan memetakan kolom tersebut ke Unified Data Model (UDM). Fungsi ini menangani berbagai tindakan Cloudflare, memperkaya data dengan metadata dan informasi jaringan sebelum menyusun output ke dalam format UDM.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke Google Cloud.
- Pastikan Anda memiliki paket Cloudflare Enterprise.
- Pastikan Anda memiliki akses dengan hak istimewa ke Cloudflare.
Membuat Google Cloud Bucket Penyimpanan
- Login ke konsol Google Cloud
Buka halaman Cloud Storage Buckets.
Klik Buat.
Konfigurasikan bucket:
- Name: masukkan nama unik yang memenuhi persyaratan nama bucket (misalnya, cloudflare-waf).
- Choose where to store your data: pilih lokasi.
- Pilih kelas penyimpanan untuk data Anda: pilih kelas penyimpanan default untuk bucket, atau pilih Autoclass untuk pengelolaan kelas penyimpanan otomatis.
- Pilih cara mengontrol akses ke objek: pilih tidak untuk menerapkan pencegahan akses publik, dan pilih model kontrol akses untuk objek bucket Anda.
- Kelas penyimpanan: Pilih berdasarkan kebutuhan Anda (misalnya, Standar).
Klik Buat.
Memberikan izin bucket kepada pengguna IAM Cloudflare
- Di Google Cloud, buka Storage > Browser > Bucket > Permissions.
- Tambahkan akun logpush@cloudflare-data. dengan izin Storage Object Admin.
Membuat Tugas Logpush untuk Log WAF menggunakan UI Cloudflare
- Login ke Cloudflare.
- Buka Analytics & Logs > Logpush.
- Pilih Buat tugas Logpush.
- Di Pilih tujuan, pilih Google Cloud Penyimpanan.
- Masukkan detail tujuan berikut:
- Bucket: Google Cloud Nama bucket penyimpanan
- Jalur: Lokasi bucket dalam penampung penyimpanan
- Pilih Atur log ke dalam subfolder harian
- Klik Lanjutkan.
- Pilih set data Keamanan (WAF) untuk dikirim ke penyimpanan.
- Konfigurasi tugas logpush:
- Masukkan Nama tugas.
- Di bagian Jika log cocok, Anda dapat memilih peristiwa yang akan disertakan dan/atau dihapus dari log. Lihat Filter untuk mengetahui informasi selengkapnya. Tidak semua set data memiliki opsi ini.
- Di kolom Kirim yang berikut, Anda dapat memilih untuk mengirim semua log ke tujuan penyimpanan atau memilih log yang ingin dikirim secara selektif.
- Klik Kirim.
Mengonfigurasi feed di Google SecOps untuk menyerap log Cloudflare WAF
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, Cloudflare WAF Logs).
- Pilih Google Cloud Storage sebagai Source type.
- Pilih Cloudflare WAF sebagai Jenis log.
- Klik Get Service Account.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- GCS URI: URL Cloud Storage.
- URI adalah: pilih Direktori yang menyertakan subdirektori.
- Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
- Namespace aset: namespace aset.
- Label penyerapan: label yang akan diterapkan ke peristiwa dari feed ini.
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
Action |
security_result.action_details |
Nilai Action dari log mentah langsung ditetapkan ke kolom UDM ini. |
Action |
security_result.action |
Nilai kolom ini berasal dari kolom Action dalam log mentah. Jika Action adalah "allow", kolom UDM akan ditetapkan ke ALLOW . Jika Action adalah "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved", atau "managedchallengeinteractivesolved", kolom UDM ditetapkan ke ALLOW_WITH_MODIFICATION . Jika Action adalah "drop", "block", atau "connectionclose", kolom UDM akan ditetapkan ke BLOCK . Jika Action adalah "challengefailed" atau "jschallengefailed", kolom UDM ditetapkan ke FAIL . Jika tidak, nilai ini akan ditetapkan ke UNKNOWN_ACTION . |
ClientASN |
network.asn |
Nilai ClientASN dari log mentah langsung ditetapkan ke kolom UDM ini setelah dikonversi menjadi string. |
ClientASNDescription |
additional.fields.key |
Kunci ditetapkan secara statis ke "ClientASNDescription". |
ClientASNDescription |
additional.fields.value.string_value |
Nilai ClientASNDescription dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientCountry |
principal.location.country_or_region |
Nilai ClientCountry dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientIP |
principal.ip |
Nilai ClientIP dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientRefererHost |
intermediary.hostname |
Nilai ClientRefererHost dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientRefererPath |
network.http.referral_url |
Nilai ClientRefererPath dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientRequestHost |
target.hostname |
Nilai ClientRequestHost dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientRequestMethod |
network.http.method |
Nilai ClientRequestMethod dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientRequestPath |
target.file.full_path |
Nilai ClientRequestPath dari log mentah langsung ditetapkan ke kolom UDM ini. |
ClientRequestProtocol |
network.application_protocol |
Bagian protokol ClientRequestProtocol (mis., "HTTP" dari "HTTP/1.1") diekstrak menggunakan grok, dikonversi menjadi huruf besar, dan ditetapkan ke kolom UDM ini. |
ClientRequestUserAgent |
network.http.user_agent |
Nilai ClientRequestUserAgent dari log mentah langsung ditetapkan ke kolom UDM ini. |
Datetime |
metadata.event_timestamp |
Nilai Datetime dari log mentah diuraikan sebagai stempel waktu RFC 3339 dan ditetapkan ke kolom UDM ini. |
EdgeColoCode |
additional.fields.key |
Kunci ditetapkan secara statis ke "EdgeColoCode". |
EdgeColoCode |
additional.fields.value.string_value |
Nilai EdgeColoCode dari log mentah langsung ditetapkan ke kolom UDM ini. |
EdgeResponseStatus |
network.http.response_code |
Nilai EdgeResponseStatus dari log mentah langsung ditetapkan ke kolom UDM ini dan dikonversi menjadi bilangan bulat. |
Kind |
metadata.product_event_type |
Nilai Kind dari log mentah langsung ditetapkan ke kolom UDM ini. |
Metadata.filter |
target.resource.attribute.labels.value |
Nilai Metadata.filter dari log mentah ditetapkan ke kolom value label dalam target.resource.attribute.labels . key untuk label ini ditetapkan secara statis ke "Filter metadata". |
Metadata.type |
target.resource.attribute.labels.value |
Nilai Metadata.type dari log mentah ditetapkan ke kolom value label dalam target.resource.attribute.labels . key untuk label ini ditetapkan secara statis ke "Jenis metadata". Nilai kolom ini berasal berdasarkan keberadaan dan nilai ClientIP , ClientRequestHost , dan app_protocol . Lihat kode parser untuk logika tertentu. Secara statis ditetapkan ke "Cloudflare". Secara statis ditetapkan ke "Aggregator log Cloudflare". Secara statis disetel ke "CLOUDFLARE_WAF". |
RayID |
metadata.product_log_id |
Nilai RayID dari log mentah langsung ditetapkan ke kolom UDM ini. |
RuleID |
security_result.rule_id |
Nilai RuleID dari log mentah langsung ditetapkan ke kolom UDM ini. |
Source |
security_result.rule_name |
Nilai Source dari log mentah langsung ditetapkan ke kolom UDM ini. |
timestamp |
metadata.event_timestamp , events.timestamp |
Nilai timestamp dari log mentah langsung ditetapkan ke kolom UDM ini. |
Perubahan
2024-08-08
- Mengekstrak data dari "ClientRequestHost" dan "ClientRequestURI", menggabungkannya, dan memetakan hasilnya ke "target.url".
2023-08-30
- Memulai kolom "ClientRequestPath".
2023-02-02
- Memvalidasi nilai 'security_result' sebelum digabungkan ke peristiwa.
2022-09-16
- Memetakan kolom 'Action' ke 'security_result.action_details'.
- Memetakan 'security_result.action' ke 'ALLOW_WITH_MODIFICATION' saat tindakan berisi "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved", "managedchallengeinteractivesolved".
- Memetakan 'security_result.action' ke 'BLOCK' saat tindakan berisi "drop", "block", "connectionclose".
- Memetakan 'security_result.action' ke 'GAGAL' jika tindakan berisi "challengefailed", "jschallengefailed".
2022-07-25
- Parser yang baru dibuat