Mengumpulkan Google Cloud Log aktivitas pemberitahuan pemantauan

Didukung di:

Dokumen ini menjelaskan cara menyerap log Cloud Logging yang terkait dengan aktivitas pemberitahuan Cloud Monitoring ke Google Security Operations menggunakan Google Cloud Storage V2.

Cloud Monitoring menyediakan kemampuan pemberitahuan untuk resource Google Cloud. Kebijakan pemberitahuan berbasis log memberi tahu Anda saat pesan tertentu muncul di log Anda. Saat entri log memenuhi kondisi kebijakan pemberitahuan, insiden akan dibuka di Cloud Monitoring dan Anda akan menerima notifikasi untuk insiden tersebut. Integrasi ini memungkinkan Anda mengekspor entri Cloud Logging ke Google Security Operations untuk analisis dan korelasi keamanan.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • projectGoogle Cloud dengan Cloud Storage API diaktifkan
  • Izin untuk membuat dan mengelola bucket GCS
  • Izin untuk mengelola kebijakan IAM di bucket GCS
  • Izin untuk mengonfigurasi sink Cloud Logging

Membuat bucket Google Cloud Storage

Menggunakan Konsol Google Cloud

  1. Buka Konsol Google Cloud.
  2. Pilih project Anda atau buat project baru.
  3. Di menu navigasi, buka Cloud Storage > Buckets.
  4. Klik Create bucket.
  5. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Beri nama bucket Anda Masukkan nama yang unik secara global (misalnya, monitoring-logs-export)
    Location type Pilih berdasarkan kebutuhan Anda (Region, Dual-region, Multi-region)
    Location Pilih lokasi (misalnya, us-central1)
    Kelas penyimpanan Standar (direkomendasikan untuk log yang sering diakses)
    Access control Seragam (direkomendasikan)
    Alat perlindungan Opsional: Aktifkan pembuatan versi objek atau kebijakan retensi
  6. Klik Create.

Menggunakan alat command line gcloud

  • Atau, buat bucket menggunakan perintah gcloud:

    gcloud storage buckets create gs://monitoring-logs-export \
        --location=us-central1 \
        --default-storage-class=STANDARD
    
    • Ganti:
      • monitoring-logs-export: Nama bucket yang Anda perlukan (unik secara global).
      • us-central1: Region pilihan Anda.

Mengonfigurasi Cloud Logging untuk mengekspor log ke GCS

Entri log disimpan sebagai file JSON saat diarahkan ke Cloud Storage. Anda dapat mengekspor log yang terkait dengan aktivitas pemberitahuan Cloud Monitoring, seperti log audit untuk pengelolaan kebijakan pemberitahuan.

Membuat log sink

  1. Di Konsol Google Cloud, buka Logging > Logs Router.
  2. Klik Create sink.
  3. Berikan detail konfigurasi berikut:
    • Sink name: Masukkan nama deskriptif (misalnya, monitoring-alerts-to-gcs).
    • Deskripsi wastafel: Deskripsi opsional.
  4. Klik Berikutnya.
  5. Di bagian Pilih layanan sink:
    • Sink service: Pilih Bucket Cloud Storage.
    • Pilih bucket Cloud Storage: Pilih bucket (misalnya, monitoring-logs-export) dari daftar.
  6. Klik Berikutnya.
  7. Di bagian Pilih log untuk disertakan dalam sink, masukkan kueri filter untuk memilih log yang ingin Anda ekspor.

    • Contoh filter untuk log audit Cloud Monitoring:

      protoPayload.serviceName="monitoring.googleapis.com"
      logName:"cloudaudit.googleapis.com/activity"
      
    • Contoh filter untuk pemicu kebijakan pemberitahuan berbasis log:

      Jika Anda ingin mengekspor log pokok yang memicu kebijakan pemberitahuan berbasis log, gunakan filter yang cocok dengan log tertentu tersebut. Contoh:

      severity >= ERROR
      resource.type="gce_instance"
      
  8. Klik Berikutnya.

  9. Opsional: Konfigurasi filter pengecualian jika diperlukan.

  10. Klik Create sink.

Sink baru yang merutekan data log ke bucket Cloud Storage mungkin memerlukan waktu beberapa jam untuk mulai merutekan entri log. Entri log yang dirutekan disimpan ke bucket Cloud Storage dalam batch per jam. Mungkin diperlukan waktu 2 hingga 3 jam sebelum entri pertama mulai muncul.

Mengambil akun layanan Google SecOps

Google SecOps menggunakan akun layanan unik untuk membaca data dari bucket GCS Anda. Anda harus memberi akun layanan ini akses ke bucket Anda.

Mengonfigurasi feed di Google SecOps untuk menyerap log Cloud Monitoring

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Google Cloud Monitoring Alerts Logs).
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih GCP_MONITORING_ALERTS sebagai Jenis log.

  7. Klik Get Service Account. Email akun layanan yang unik akan ditampilkan, misalnya:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Salin alamat email ini untuk digunakan di langkah berikutnya.

  9. Klik Berikutnya.

  10. Tentukan nilai untuk parameter input berikut:

    • URL bucket penyimpanan: Masukkan URI bucket GCS:

      gs://monitoring-logs-export/
      
      • Ganti monitoring-logs-export dengan nama bucket GCS Anda.
    • Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda:

      • Jangan pernah: Tidak pernah menghapus file apa pun setelah transfer (direkomendasikan untuk pengujian).
      • Hapus file yang ditransfer: Menghapus file setelah transfer berhasil.
      • Hapus file yang ditransfer dan direktori kosong: Menghapus file dan direktori kosong setelah transfer berhasil.

    • Usia File Maksimum: Menyertakan file yang diubah dalam beberapa hari terakhir. Defaultnya adalah 180 hari.

    • Namespace aset: Namespace aset.

    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.

  11. Klik Berikutnya.

  12. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Memberikan izin IAM ke akun layanan Google SecOps

Akun layanan Google SecOps memerlukan peran Storage Object Viewer di bucket GCS Anda.

Menggunakan Konsol Google Cloud

  1. Buka Cloud Storage > Buckets.
  2. Klik nama bucket (misalnya, monitoring-logs-export).
  3. Buka tab Izin.
  4. Klik Grant access.
  5. Berikan detail konfigurasi berikut:
    • Add principals: Tempel email akun layanan Google SecOps.
    • Tetapkan peran: Pilih Storage Object Viewer.
  6. Klik Simpan.

Menggunakan alat command line gcloud

  • Atau, berikan izin menggunakan perintah gcloud:

    gcloud storage buckets add-iam-policy-binding gs://monitoring-logs-export \
        --member="serviceAccount:SECOPS_SERVICE_ACCOUNT_EMAIL" \
        --role="roles/storage.objectViewer"
    
    • Ganti:
      • monitoring-logs-export: Nama bucket Anda.
      • SECOPS_SERVICE_ACCOUNT_EMAIL: Email akun layanan Google SecOps.

Menggunakan alat command line gsutil (lama)

  • Beri akun layanan SecOps izin yang diperlukan untuk membaca objek dalam bucket tujuan Anda:

    gsutil iam ch serviceAccount:SECOPS_SERVICE_ACCOUNT_EMAIL:objectViewer \
        gs://monitoring-logs-export
    

Verifikasi izin

  • Untuk memverifikasi bahwa izin telah diberikan dengan benar:

    gcloud storage buckets get-iam-policy gs://monitoring-logs-export \
        --flatten="bindings[].members" \
        --filter="bindings.role:roles/storage.objectViewer"
    

    Anda akan melihat email akun layanan Google SecOps di output.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
jsonPayload.type_1 additional.fields.jsonPayload_type_1 Nilai disalin secara langsung
jsonPayload.debugInfo additional.fields.number Diekstrak dari jsonPayload.debugInfo menggunakan pola grok
jsonPayload.scheduledTime, receiveTimestamp, timestamp metadata.event_timestamp Nilai dari jsonPayload.scheduledTime jika tidak kosong, jika tidak, nilai dari receiveTimestamp jika tidak kosong, jika tidak, nilai dari timestamp jika tidak kosong, dikonversi menggunakan kecocokan tanggal
event_type metadata.event_type Nilai dari event_type jika tidak kosong, jika tidak, ditetapkan ke "GENERIC_EVENT"
insertId metadata.product_log_id Nilai disalin secara langsung
jsonPayload.targetType network.application_protocol Nilai disalin secara langsung
httpRequest.status network.http.response_code Dikonversi ke bilangan bulat
resource.labels.location principal.location.name Nilai disalin secara langsung
jsonPayload.jobName principal.url Nilai disalin secara langsung
jsonPayload.status security_result.action Tetapkan ke "BLOCK" jika jsonPayload.status == "PERMISSION_DENIED"
tingkat keseriusan, security_result.severity Ditetapkan ke INFORMATIONAL jika severity =~ (?i)INFO; LOW jika severity == "LOW"; MEDIUM jika severity == "MEDIUM"; HIGH jika severity == "HIGH"; CRITICAL jika severity == "VERY-HIGH"
jsonPayload.debugInfo security_result.summary Diekstrak dari jsonPayload.debugInfo menggunakan pola grok
logName src.url Nilai disalin secara langsung
resource.labels.project_id target.resource.attribute.labels.project_id Nilai disalin secara langsung
resource.labels.job_id target.resource.attribute.labels.resource_labels_job_id Nilai disalin secara langsung
resource.type target.resource.resource_subtype Nilai disalin secara langsung
jsonPayload.url target.url Nilai disalin secara langsung
metadata.product_name Tetapkan ke "Gcp_monitoring_alerts"
metadata.vendor_name Tetapkan ke "GCP_MONITORING_ALERTS"

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.