Mengumpulkan log Cloud Intrusion Detection System (Cloud IDS)
Dokumen ini menjelaskan cara mengekspor dan menyerap log Cloud IDS ke Google Security Operations menggunakan Cloud Storage. Parser mengubah log Cloud IDS berformat JSON mentah dari Google Cloud menjadi format UDM terstruktur. Alat ini mengekstrak kolom yang relevan, memetakan kolom tersebut ke skema UDM, mengategorikan peristiwa, dan memperkaya data dengan konteks tambahan seperti arah jaringan dan jenis resource.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Cloud IDS disiapkan dan aktif di lingkungan Google Cloud Anda.
- Pastikan Anda memiliki akses dengan hak istimewa ke Google Cloud dan izin yang sesuai untuk mengakses Cloud IDS.
Membuat bucket Cloud Storage
- Login ke konsol Google Cloud.
Buka halaman Cloud Storage Buckets.
Klik Buat.
Di halaman Buat bucket, masukkan informasi bucket Anda. Setelah menyelesaikan setiap langkah berikut, klik Lanjutkan untuk melanjutkan ke langkah berikutnya:
Di bagian Mulai, lakukan tindakan berikut:
- Masukkan nama unik yang memenuhi persyaratan nama bucket; misalnya, gcp-ids-logs.
Untuk mengaktifkan namespace hierarkis, klik panah peluas untuk meluaskan bagian Optimalkan untuk beban kerja yang berorientasi pada file dan intensif data, lalu pilih Aktifkan Namespace hierarkis di bucket ini.
Untuk menambahkan label bucket, klik panah peluas untuk meluaskan bagian Labels.
Klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.
Di bagian Pilih tempat untuk menyimpan data, lakukan hal berikut:
- Pilih Jenis lokasi.
Gunakan menu jenis lokasi untuk memilih Location tempat data objek dalam bucket Anda akan disimpan secara permanen.
Untuk menyiapkan replikasi lintas bucket, luaskan bagian Menyiapkan replikasi lintas bucket.
Di bagian Pilih kelas penyimpanan untuk data Anda, pilih kelas penyimpanan default untuk bucket, atau pilih Autoclass untuk pengelolaan kelas penyimpanan otomatis untuk data bucket Anda.
Di bagian Choose how to control access to objects, pilih not untuk menerapkan public access prevention, dan pilih access control model untuk objek bucket Anda.
Di bagian Pilih cara melindungi data objek, lakukan hal berikut:
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket.
- Untuk memilih cara enkripsi data objek, klik panah peluas berlabel Enkripsi data, lalu pilih Metode enkripsi data.
Klik Buat.
Mengonfigurasi ekspor log Cloud IDS
- Login ke konsol Google Cloud.
- Buka Logging > Router Log.
- Klik Create Sink.
Berikan parameter konfigurasi berikut:
- Sink Name: masukkan nama yang bermakna; misalnya,
google-cloud-ids-logs-sink
. - Sink Destination: pilih Cloud Storage dan berikan Google Cloud URI bucket penyimpanan; misalnya,
gs://gcp-ids-logs
. Filter Log:
logName="projects/<your-project-id>/logs/cloud-ids"
- Sink Name: masukkan nama yang bermakna; misalnya,
Klik Buat.
Mengonfigurasi izin untuk Cloud Storage
- Buka IAM & Admin > IAM.
- Temukan akun layanan Cloud Logging.
- Berikan roles/storage.admin di bucket.
Mengonfigurasi feed di Google SecOps untuk menyerap log Cloud IDS
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, GCP IDS Logs.
- Pilih Google Cloud Storage sebagai Source type.
- Pilih GCP IDS sebagai Log type.
- Klik Dapatkan Akun Layanan di samping kolom Chronicle Service Account.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- Storage Bucket URI: URL bucket Cloud Storage; misalnya,
gs://gcp-ids-logs
. - URI Adalah: pilih Direktori yang menyertakan subdirektori.
Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
Namespace aset: namespace aset.
Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Storage Bucket URI: URL bucket Cloud Storage; misalnya,
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
insertId | metadata.product_log_id | Pemetaan langsung. |
jsonPayload.alert_severity | security_result.severity | Pemetaan langsung. |
jsonPayload.alert_time | metadata.event_timestamp | Pemetaan langsung. |
jsonPayload.application | principal.application | Pemetaan langsung, hanya jika arahnya adalah server ke klien. |
jsonPayload.application | target.application | Pemetaan langsung, hanya jika arahnya adalah klien ke server atau logName berisi traffic . |
jsonPayload.category | security_result.category | Dipetakan berdasarkan nilai 'jsonPayload.category': - 'dos': NETWORK_DENIAL_OF_SERVICE - 'info-leak': NETWORK_SUSPICIOUS - 'protocol-anomaly': NETWORK_MALICIOUS - 'backdoor', 'spyware', 'trojan': SOFTWARE_MALICIOUS |
jsonPayload.category | security_result.category_details | Pemetaan langsung. |
jsonPayload.cves | extensions.vulns.vulnerabilities.cve_id | Pemetaan langsung, melakukan iterasi pada array. |
jsonPayload.destination_ip_address | target.ip | Pemetaan langsung. |
jsonPayload.destination_port | target.port | Pemetaan langsung. |
jsonPayload.details | extensions.vulns.vulnerabilities.description | Pemetaan langsung. |
jsonPayload.details | security_result.detection_fields.value | Dipetakan jika 'jsonPayload.repeat_count' ada. Kunci ditetapkan ke 'repeat_count'. |
jsonPayload.direction | network.direction | Dipetakan berdasarkan nilai 'jsonPayload.direction': - 'client-to-server': OUTBOUND - 'server-to-client': INBOUND |
jsonPayload.elapsed_time | network.session_duration.seconds | Pemetaan langsung. |
jsonPayload.ip_protocol | network.ip_protocol | Pemetaan langsung, mengonversi ke huruf besar, lalu memetakan ke nomor protokol. |
jsonPayload.name | security_result.threat_name | Pemetaan langsung. |
jsonPayload.network | principal.resource.name | Pemetaan langsung, hanya jika arahnya adalah server ke klien. |
jsonPayload.network | target.resource.name | Pemetaan langsung, hanya jika arahnya adalah klien ke server atau logName berisi traffic . |
jsonPayload.repeat_count | security_result.detection_fields.value | Dipetakan jika ada. Kunci ditetapkan ke 'repeat_count'. |
jsonPayload.session_id | network.session_id | Pemetaan langsung. |
jsonPayload.source_ip_address | principal.ip | Pemetaan langsung. |
jsonPayload.source_port | principal.port | Pemetaan langsung. |
jsonPayload.start_time | about.labels.value | Dipetakan jika ada. Kunci ditetapkan ke 'start_time'. |
jsonPayload.start_time | additional.fields.value.string_value | Dipetakan jika ada. Kunci ditetapkan ke 'start_time'. |
jsonPayload.threat_id | security_result.threat_id | Pemetaan langsung. |
jsonPayload.total_bytes | about.labels.value | Dipetakan jika ada. Kunci ditetapkan ke 'total_bytes'. |
jsonPayload.total_bytes | additional.fields.value.string_value | Dipetakan jika ada. Kunci ditetapkan ke 'total_bytes'. |
jsonPayload.total_packets | about.labels.value | Dipetakan jika ada. Kunci ditetapkan ke 'total_packets'. |
jsonPayload.total_packets | additional.fields.value.string_value | Dipetakan jika ada. Kunci ditetapkan ke 'total_packets'. |
jsonPayload.type | security_result.detection_fields.value | Dipetakan jika ada. Kunci ditetapkan ke 'type'. |
jsonPayload.uri_or_filename | target.file.full_path | Pemetaan langsung. |
logName | security_result.category_details | Pemetaan langsung. |
receiveTimestamp | metadata.collected_timestamp | Pemetaan langsung. |
resource.labels.id | observer.resource.product_object_id | Pemetaan langsung. |
resource.labels.location | observer.location.name | Pemetaan langsung. |
resource.labels.resource_container | observer.resource.name | Pemetaan langsung. |
resource.type | observer.resource.resource_subtype | Pemetaan langsung. |
metadata.event_type | Ditentukan oleh serangkaian aturan bersyarat berdasarkan keberadaan dan nilai kolom lain, yang ditetapkan secara default ke 'GENERIC_EVENT'. | |
metadata.vendor_name | Nilai statis: Google Cloud Platform . |
|
metadata.product_name | Nilai statis: GCP_IDS . |
|
metadata.log_type | Nilai statis: GCP_IDS . |
|
extensions.vulns.vulnerabilities.vendor | Nilai statis: GCP_IDS , ditambahkan untuk setiap CVE di 'jsonPayload.cves'. |
|
principal.resource.resource_type | Nilai statis: VPC_NETWORK , ditambahkan jika 'jsonPayload.network' ada dan arahnya adalah server ke klien. |
|
target.resource.resource_type | Nilai statis: VPC_NETWORK , ditambahkan jika 'jsonPayload.network' ada dan arahnya adalah klien ke server atau logName berisi traffic . |
|
observer.resource.resource_type | Nilai statis: CLOUD_PROJECT , ditambahkan jika 'resource.labels.resource_container' atau 'resource.type' ada. |
|
observer.resource.attribute.cloud.environment | Nilai statis: GOOGLE_CLOUD_PLATFORM , ditambahkan jika 'resource.labels.resource_container' atau 'resource.type' ada. |
|
is_alert | Benar jika 'jsonPayload.alert_severity' adalah 'CRITICAL', salah jika tidak. | |
is_significant | Benar jika 'jsonPayload.alert_severity' adalah 'CRITICAL', salah jika tidak. |
Perubahan
2024-05-01
- Menambahkan pemetaan tambahan untuk
noun.labels
yang tidak digunakan lagi.
2023-12-13
- Mempromosikan parser GCP_IDS ke default.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.