Mengumpulkan log Forseti Open Source

Versi Parser: 2.0

Didukung di:

Dokumen ini menjelaskan cara menyerap log Forseti Open Source ke Google Security Operations menggunakan Google Cloud Storage V2.

Forseti Security adalah kumpulan alat open source yang didorong oleh komunitas dan dirancang untuk meningkatkan keamanan lingkungan Google Cloud Platform. Forseti mengambil snapshot inventaris resource GCP, memindai kepatuhan kontrol akses, dan memberikan visibilitas ke dalam kebijakan Cloud IAM.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps.
  • Project GCP dengan Cloud Storage API diaktifkan.
  • Izin untuk membuat dan mengelola bucket GCS dan kebijakan IAM.
  • Deployment Forseti Security yang ada.
  • Akses ke file konfigurasi server Forseti (forseti_conf_server.yaml).

Buat 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, forseti-violations-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)
    Kontrol akses 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://forseti-violations-export \
        --location=us-central1 \
        --default-storage-class=STANDARD
    
  • Ganti forseti-violations-export dengan nama bucket unik yang diperlukan secara global.

  • Ganti us-central1 dengan wilayah pilihan Anda.

Mengonfigurasi Forseti Security untuk mengekspor pelanggaran ke GCS

Forseti Security menggunakan konfigurasi notifikasi dalam file forseti_conf_server.yaml untuk mengekspor pelanggaran pemindai ke GCS.

  1. Hubungkan ke VM server Forseti menggunakan SSH: bash gcloud compute ssh forseti-server-vm --project=YOUR_PROJECT_ID --zone=YOUR_ZONE
  2. Buka file konfigurasi untuk mengedit: bash sudo nano /home/ubuntu/forseti-security/configs/forseti_conf_server.yaml Jika menggunakan konfigurasi berbasis GCS, download terlebih dahulu: bash gsutil cp gs://YOUR_FORSETI_SERVER_BUCKET/configs/forseti_conf_server.yaml ~/forseti_conf_server.yaml
  3. Buka bagian notifier dan temukan subbagian resources.
  4. Untuk setiap jenis resource pelanggaran yang ingin Anda ekspor, konfigurasi notifikasi gcs_violations:

    notifier:
        resources:
            - resource: iam_policy_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: firewall_rule_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: cloudsql_acl_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: bucket_acl_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
            - resource: config_validator_violations
                should_notify: true
                notifiers:
                    - name: gcs_violations
                        configuration:
                            data_format: csv
                            gcs_path: gs://forseti-violations-export/violations/
    

    Parameter Utama:

    • resource: Jenis pelanggaran (misalnya, iam_policy_violations).
    • data_format: Tetapkan ke csv atau json.
    • gcs_path: Jalur Cloud Storage (harus menyertakan garis miring di akhir).
  5. Simpan file dan, jika perlu, upload kembali ke GCS.

  6. Muat ulang konfigurasi: bash forseti server configuration reload

  7. Verifikasi: bash forseti server configuration get | grep gcs_violations

Mengambil akun layanan Google SecOps

Mengonfigurasi feed di Google SecOps

  1. Buka SIEM Settings > Feeds.
  2. Klik Tambahkan Feed Baru, lalu pilih Konfigurasi satu feed.
  3. Nama feed: Masukkan nama (misalnya, Forseti Violations).
  4. Jenis sumber: Pilih Google Cloud Storage V2.
  5. Jenis log: Pilih Forseti Open Source.
  6. Klik Get Service Account.
  7. Salin email akun layanan unik (misalnya, chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com).
  8. Klik Berikutnya.
  9. Tentukan parameter input:
    • URL bucket penyimpanan: gs://forseti-violations-export/violations/
    • Opsi penghapusan sumber: Pilih sesuai preferensi Anda (misalnya, Jangan pernah untuk pengujian).
  10. Klik Berikutnya, tinjau konfigurasi, lalu klik Kirim.

Memberikan izin IAM ke akun layanan Google SecOps

Menggunakan Konsol Google Cloud

  1. Buka Cloud Storage > Buckets.
  2. Klik nama bucket Anda, lalu buka tab Permissions.
  3. Klik Grant access.
  4. Add principals: Tempel email akun layanan Google SecOps.
  5. Tetapkan peran: Pilih Storage Object Viewer. (Gunakan Storage Object Admin jika Anda memilih opsi penghapusan di feed).
  6. Klik Simpan.
  • Menggunakan alat command line gcloud

    gcloud storage buckets add-iam-policy-binding gs://forseti-violations-export \
        --member="serviceAccount:CHRONICLE_SERVICE_ACCOUNT_EMAIL" \
        --role="roles/storage.objectViewer"
    

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
data.resource_data.instanceGroupUrls about Digabungkan dari array instanceGroupUrls.
data.resource_data.nodePools.*.statusMessage metadata.description Nilai dari nodePool.statusMessage.
data.resource_type metadata.event_type Jenis tertentu untuk KMS/FW; jika tidak, GENERIC_EVENT.
data.scanner_index_id metadata.product_log_id Nilai disalin langsung sebagai string.
T/A metadata.product_name Setel ke FORSETI SECURITY.
T/A metadata.vendor_name Setel ke FORSETI.
data.resource_data.direction network.direction Tetapkan ke INBOUND jika arahnya adalah INGRESS.
data.resource_data.endpoint principal.ip Nilai disalin secara langsung.
data.full_name, serviceAccount principal.user.userid Diekstrak dari full_name atau serviceAccount.
data.violation_type security_result.category Dipetakan ke POLICY_VIOLATION atau ACL_VIOLATION.
data.rule_name security_result.rule_name Nilai disalin secara langsung.
data.full_name target.asset.attribute.cloud.project.id Diekstrak dari full_name menggunakan grok.
data.resource_type target.resource.resource_type Dipetakan ke jenis tertentu berdasarkan resource_type.

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