Mengumpulkan log Cloudflare Page Shield
Versi Parser: 1.0
Dokumen ini menjelaskan cara menyerap log Cloudflare Page Shield ke Google Security Operations menggunakan Amazon S3.
Page Shield membantu mengelola resource yang dimuat oleh pengunjung situs Anda, termasuk skrip, koneksinya, dan cookie, serta memicu notifikasi pemberitahuan saat resource berubah atau dianggap berbahaya.
Sebelum memulai
- Instance Google SecOps
- Akun Cloudflare dengan Page Shield diaktifkan
- Akses istimewa ke dasbor Cloudflare
- Akses istimewa ke AWS (S3, IAM)
Opsi ini menggunakan Cloudflare Logpush untuk mengekspor peristiwa Page Shield ke Amazon S3, yang kemudian diserap oleh Google SecOps.
Mengaktifkan Page Shield
- Login ke dasbor Cloudflare.
- Pilih akun dan domain Anda.
- Buka Security > Page Shield.
- Klik Enable Page Shield.
Membuat bucket Amazon S3
- Buka konsol Amazon S3.
- Klik Create Bucket.
- Berikan detail konfigurasi berikut:
- Bucket Name: Masukkan nama yang bermakna untuk bucket (misalnya,
cloudflare-pageshield-logs). - Region: Pilih region AWS yang Anda inginkan (misalnya,
us-east-1).
- Bucket Name: Masukkan nama yang bermakna untuk bucket (misalnya,
- Klik Create.
- Simpan nama dan region bucket untuk referensi pada masa mendatang.
Membuat pengguna IAM dengan akses S3
- Buka IAM console.
- Klik Pengguna > Tambahkan pengguna.
- Masukkan nama pengguna (misalnya,
chronicle-s3-user). - Pilih Akses terprogram.
- Klik Berikutnya: Izin.
- Pilih Attach existing policies directly.
- Telusuri dan pilih kebijakan AmazonS3FullAccess.
- Klik Berikutnya: Tanda.
- Klik Berikutnya: Tinjau.
- Klik Create user.
- Klik Download .csv file untuk menyimpan Access Key ID dan Secret Access Key.
Mengonfigurasi kebijakan bucket S3 untuk Cloudflare
- Di konsol Amazon S3, pilih bucket Anda.
- Klik Permissions > Bucket policy.
- Klik Edit.
Tempel kebijakan berikut, dengan mengganti
<BUCKET_NAME>dengan nama bucket Anda:{ "Id": "Policy1506627184792", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1506627150918", "Action": ["s3:PutObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::<BUCKET_NAME>/*", "Principal": { "AWS": ["arn:aws:iam::391854517948:user/cloudflare-logpush"] } } ] }Klik Simpan perubahan.
Membuat tugas Logpush Cloudflare
- Login ke dasbor Cloudflare.
- Pilih akun dan domain Anda.
- Buka Analytics & Logs > Logs.
- Klik Create a Logpush job.
- Di Select a destination, pilih Amazon S3.
- Masukkan informasi tujuan berikut:
- Bucket name: Masukkan nama bucket S3 Anda (misalnya,
cloudflare-pageshield-logs). - Bucket region: Pilih region yang cocok dengan bucket S3 Anda.
- Jalur bucket (opsional): Masukkan awalan jalur (misalnya,
pageshield/).
- Bucket name: Masukkan nama bucket S3 Anda (misalnya,
- Klik Lanjutkan.
- Untuk membuktikan kepemilikan, Cloudflare akan mengirimkan file ke tujuan yang Anda tentukan. Untuk menemukan token, pilih tombol Open di tab Ringkasan pada file verifikasi kepemilikan, lalu tempelkan ke dasbor Cloudflare untuk memverifikasi akses Anda ke bucket. Masukkan Token Kepemilikan, lalu pilih Lanjutkan.
- Di Select a dataset, pilih Page Shield events.
- Klik Berikutnya.
- Konfigurasi tugas logpush Anda:
- Job name: Masukkan nama deskriptif (misalnya,
pageshield-to-s3). - If logs match: Biarkan kosong untuk menyertakan semua peristiwa atau konfigurasikan filter sesuai kebutuhan.
- Kirim kolom berikut: Pilih Semua kolom atau pilih kolom tertentu.
- Job name: Masukkan nama deskriptif (misalnya,
- Klik Kirim.
Mengonfigurasi feed di Google SecOps untuk menyerap log Page Shield
- Buka Setelan > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
- Klik Tambahkan Feed Berita Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Cloudflare Page Shield S3). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih Cloudflare Page Shield sebagai Log type.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
S3 URI: Masukkan URI bucket dalam format:
s3://<BUCKET_NAME>/<BUCKET_PATH>/Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda:
- Never: Tidak pernah menghapus file apa pun setelah transfer.
- Delete transferred files: Menghapus file setelah transfer berhasil.
- Delete transferred files and empty directories: Menghapus file dan direktori kosong setelah transfer berhasil.
Usia File Maksimum: Sertakan file yang diubah dalam jumlah hari terakhir. Defaultnya adalah 180 hari.
Access Key ID: Kunci akses pengguna dengan akses ke bucket S3.
Secret Access Key: Kunci rahasia pengguna dengan akses ke bucket S3.
Namespace aset: Namespace aset.
Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
Klik Berikutnya.
Tinjau konfigurasi feed berita baru Anda di layar Finalize, lalu klik Submit.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
| URLContainsCDNCGIPath | event.idm.read_only_udm.additional.fields.CGI_label | Nilai yang diambil dari URLContainsCDNCGIPath, ditetapkan sebagai string_value dalam label dengan kunci "CGI" |
| Tindakan | event.idm.read_only_udm.additional.fields.action_label | Nilai yang diambil dari Action, ditetapkan sebagai string_value dalam label dengan kunci "action" |
| resource.first_page_url | event.idm.read_only_udm.additional.fields.first_page_label | Nilai yang diambil dari resource.first_page_url, ditetapkan sebagai string_value dalam label dengan kunci "first_page_url" |
| resource.last_page_url | event.idm.read_only_udm.additional.fields.last_page_label | Nilai diambil dari resource.last_page_url, ditetapkan sebagai string_value dalam label dengan kunci "last_page_url" |
| nama | event.idm.read_only_udm.additional.fields.name_label | Nilai diambil dari nama, ditetapkan sebagai string_value dalam label dengan kunci "name" |
| ts | event.idm.read_only_udm.metadata.event_timestamp | Dikonversi dari ts (UNIX) ke stempel waktu |
| event.idm.read_only_udm.metadata.event_type | Diperoleh berdasarkan has_principal, has_target, has_target_user: NETWORK_CONNECTION jika ada principal dan target; USER_UNCATEGORIZED jika ada target_user; STATUS_UPDATE jika ada principal; jika tidak, GENERIC_EVENT | |
| resource.url | event.idm.read_only_udm.network.http.referral_url | Nilai diambil dari resource.url |
| Host | event.idm.read_only_udm.principal.asset.hostname | Nilai diambil dari Host atau host.hostname |
| Host | event.idm.read_only_udm.principal.hostname | Nilai diambil dari Host atau host.hostname |
| alert_type | event.idm.read_only_udm.principal.resource.attribute.labels.alert_type_label | Nilai yang diambil dari alert_type, ditetapkan sebagai nilai dalam label dengan kunci "alert_type" |
| resource.cryptomining_score | event.idm.read_only_udm.principal.resource.attribute.labels.crypto_label | Nilai diambil dari resource.cryptomining_score, ditetapkan sebagai nilai dalam label dengan kunci "cryptominingscore%{index2}" |
| resource.dataflow_score | event.idm.read_only_udm.principal.resource.attribute.labels.dataflow_label | Nilai diambil dari resource.dataflow_score, ditetapkan sebagai nilai dalam label dengan kunci "dataflowscore%{index2}" |
| policie.description | event.idm.read_only_udm.principal.resource.attribute.labels.desc_label | Nilai yang diambil dari policie.description, ditetapkan sebagai nilai dalam label dengan kunci "description_%{index}" |
| version.fetched_at | event.idm.read_only_udm.principal.resource.attribute.labels.fetched_at_label | Nilai diambil dari version.fetched_at, ditetapkan sebagai nilai dalam label dengan kunci "fetchedat%{index2}" |
| version.hash | event.idm.read_only_udm.principal.resource.attribute.labels.hash_label | Nilai yang diambil dari version.hash, ditetapkan sebagai nilai dalam label dengan kunci "hash_%{index2}" |
| policie.id | event.idm.read_only_udm.principal.resource.attribute.labels.id_label | Nilai diambil dari policie.id, ditetapkan sebagai nilai dalam label dengan kunci "policyid%{index}" |
| data.options.remove_dashboard_links | event.idm.read_only_udm.principal.resource.attribute.labels.remove_dash_label | Nilai diambil dari data.options.remove_dashboard_links, ditetapkan sebagai nilai dalam label dengan kunci "remove_dashboard_links" |
| resource.resource_type | event.idm.read_only_udm.principal.resource.attribute.labels.res_type_label | Nilai yang diambil dari resource.resource_type, ditetapkan sebagai nilai dalam label dengan kunci "resourcetype%{index2}" |
| data.type | event.idm.read_only_udm.principal.resource.attribute.labels.type_label | Nilai yang diambil dari data.type, ditetapkan sebagai nilai dalam label dengan kunci "type" |
| data.zones | event.idm.read_only_udm.principal.resource.attribute.labels.zones_label | Nilai diambil dari data.zones, ditetapkan sebagai nilai dalam label dengan kunci "zones" |
| resource.id | event.idm.read_only_udm.principal.resource.id | Nilai diambil dari resource.id |
| PageURL | event.idm.read_only_udm.principal.url | Nilai diambil dari PageURL |
| account_id | event.idm.read_only_udm.principal.user.product_object_id | Nilai diambil dari account_id |
| policy_id | event.idm.read_only_udm.security_result.detection_fields.policy_id_label | Nilai yang diambil dari policy_id, ditetapkan sebagai nilai dalam label dengan kunci "policy_id" |
| policy_name | event.idm.read_only_udm.security_result.detection_fields.policy_name_label | Nilai yang diambil dari policy_name, ditetapkan sebagai nilai dalam label dengan kunci "policy_name" |
| teks biasa | event.idm.read_only_udm.security_result.description | Nilai diambil dari teks |
| resource.first_seen_at | event.idm.read_only_udm.security_result.first_discovered_time | Dikonversi dari resource.first_seen_at ke stempel waktu ISO8601 |
| PolicyID | event.idm.read_only_udm.security_result.rule_name | Nilai diambil dari PolicyID |
| data.severity | event.idm.read_only_udm.security_result.severity | Berasal dari data.severity: jika "INFO" → "INFORMATIONAL"; jika "WARN" → "MEDIUM"; jika tidak, "UNKNOWN_SEVERITY" |
| URL | event.idm.read_only_udm.target.url | Nilai diambil dari URL |
| URLHost | event.idm.read_only_udm.target.user.email_addresses | Nilai diambil dari URLHost jika cocok dengan pola email |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.