Mengumpulkan log Halcyon Anti-Ransomware
Dokumen ini menjelaskan cara menyerap log Halcyon Anti-Ransomware ke Google Security Operations menggunakan Google Cloud Storage V2.
Halcyon adalah platform anti-ransomware yang menggunakan AI untuk mendeteksi, mencegah, dan memulihkan diri dari serangan ransomware. Fitur ini menghasilkan pemberitahuan untuk peristiwa deteksi ransomware, upaya enkripsi, dan tindakan pemulihan. Parser memetakan kolom log berformat JSON ke Model Data Terpadu (UDM), menangani jenis peristiwa seperti operasi file, aktivitas pengguna, dan hasil keamanan.
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
- Akses istimewa ke konsol Halcyon dengan kemampuan ekspor log
Membuat bucket Google Cloud Storage
- Buka Konsol Google Cloud.
- Pilih project Anda atau buat project baru.
- Di menu navigasi, buka Cloud Storage > Buckets.
- Klik Create bucket.
Berikan detail konfigurasi berikut:
Setelan Nilai Beri nama bucket Anda Masukkan nama yang unik secara global (misalnya, halcyon-logs)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 Klik Create.
Mengekspor log Halcyon ke Google Cloud Storage
Halcyon mendukung ekspor data log dalam format JSON. Gunakan salah satu pendekatan berikut untuk mengirimkan log ke GCS.
Opsi A: Mengekspor log menggunakan Halcyon API dan mengupload ke GCS
- Login ke konsol pengelolaan Halcyon.
- Buka Settings > API Access dan buat kunci API dengan izin baca.
- Salin dan simpan API Key.
- Gunakan skrip terjadwal atau fungsi Cloud Run untuk memanggil Halcyon REST API, mengambil log peristiwa, dan menuliskannya ke GCS dalam format JSON.
Opsi B: Mengonfigurasi integrasi SIEM dan meneruskan ke GCS
- Login ke konsol pengelolaan Halcyon.
- Buka Setelan > Integrasi > SIEM.
- Konfigurasi tujuan ekspor log untuk menulis peristiwa berformat JSON ke direktori lokal atau penyimpanan perantara.
Gunakan fungsi Cloud Run untuk mengupload log secara berkala ke bucket GCS Anda.
- Pastikan file yang diekspor dalam format JSON.
- Setiap file harus berisi satu atau beberapa catatan peristiwa.
Mengambil akun layanan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Klik Konfigurasi satu feed.
- Pilih Google Cloud Storage V2 sebagai Source type.
- Pilih Halcyon Anti Ransomware sebagai Jenis log.
Klik Get Service Account. Email akun layanan yang unik akan ditampilkan, misalnya:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comSalin alamat email ini. Anda akan menggunakannya pada langkah berikutnya.
Memberikan izin IAM ke akun layanan Google SecOps
- Buka Cloud Storage > Buckets.
- Klik nama bucket Anda.
- Buka tab Izin.
- Klik Grant access.
- Berikan detail konfigurasi berikut:
- Add principals: Tempel email akun layanan Google SecOps.
- Tetapkan peran: Pilih Storage Object Viewer.
Klik Simpan.
- Jika Anda berencana menggunakan opsi penghapusan (hapus file yang ditransfer), berikan peran Storage Object Admin, bukan Storage Object Viewer.
Mengonfigurasi feed di Google SecOps untuk menyerap log Halcyon Anti-Ransomware
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Halcyon Anti-Ransomware logs). - Pilih Google Cloud Storage V2 sebagai Source type.
- Pilih Halcyon Anti Ransomware sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
Kolom Nilai URI bucket penyimpanan gs://halcyon-logs/halcyon/events/Opsi Penghapusan Sumber Pilih opsi penghapusan sesuai preferensi Anda Usia File Maksimum (Hari) Defaultnya adalah 180 hari Namespace aset Namespace aset Label penyerapan Label yang akan diterapkan ke peristiwa dari feed ini - Ganti
halcyon-logsdengan nama bucket GCS Anda yang sebenarnya. - Selalu sertakan garis miring di akhir (
/) di akhir URI.
- Ganti
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
| sshd, tty, euid, dataType, filterName, totalOccurrences, occurredAt, count, occurrences.IncorrectPasswords, occurrences.FailedPassword, occurrences.AuthFailure, policyMode, action | additional.fields | Digabungkan dengan label yang dibuat dari setiap kolom jika ada; kolom totalOccurrences, count, occurrences dikonversi menjadi string |
| dnsArtifact.uri | network.dns.questions | Digabungkan dengan array pertanyaan yang berisi nama |
| asset.id | principal.asset.asset_id | Digabungkan sebagai "ASSET:" + asset.id |
| asset.kind | principal.asset.attribute.labels | Digabungkan dengan asset_kind_label yang dibuat dari asset.kind |
| asset.name | principal.asset.hostname | Nilai disalin secara langsung |
| ipArtifact.ipAddress | principal.asset.ip | Nilai disalin secara langsung |
| summary.applicationName | principal.application | Nilai disalin secara langsung |
| phost, asset.name | principal.hostname | Nilai dari phost jika ada, ditimpa oleh asset.name jika ada |
| ipArtifact.ipAddress | principal.ip | Nilai disalin secara langsung |
| process.commandLine | principal.process.command_line | Nilai disalin secara langsung |
| modifiedFilePath, artifact.filePath, process.artifact.filePath, processes.artifact.filePath | principal.process.file.full_path | Nilai ditetapkan ke modifiedFilePath jika ada, ditimpa oleh artifact.filePath jika ada, ditimpa oleh process.artifact.filePath jika ada, ditimpa oleh processes.artifact.filePath jika ada (tanda petik dihapus untuk processes.artifact.filePath) |
| lastOccurredAt | principal.process.file.last_seen_time | Dikonversi menggunakan filter tanggal dengan format ISO8601 |
| process.artifact.kind, artifact.kind, primaryProcess.artifact.kind | principal.process.file.mime_type | Nilai dari process.artifact.kind jika ada, ditimpa oleh artifact.kind jika ada, ditimpa oleh primaryProcess.artifact.kind jika ada |
| artifact.sha256, process.artifact.sha256, processes.artifact.sha256 | principal.process.file.sha256 | Nilai dari artifact.sha256 jika ada, ditimpa oleh process.artifact.sha256 jika ada, ditimpa oleh processes.artifact.sha256 jika ada |
| process.parentPid | principal.process.parent_pid | Nilai disalin secara langsung |
| process.pid | principal.process.pid | Nilai disalin secara langsung |
| user_displayname | principal.user.user_display_name | Nilai disalin secara langsung |
| pengguna | principal.user.userid | Nilai disalin secara langsung |
| summary.artifact.filePath | target.file.full_path | Nilai disalin secara langsung |
| summary.artifact.sha256 | target.file.sha256 | Nilai disalin secara langsung |
| primaryProcess.commandLine | target.process.command_line | Nilai disalin langsung setelah menghapus tanda petik |
| primaryProcess.kind | target.process.file.mime_type | Nilai disalin secara langsung |
| primaryProcess.parentPid | target.process.parent_process.pid | Nilai disalin secara langsung |
| primaryProcess.pid | target.process.pid | Nilai disalin secara langsung |
| uid | target.user.userid | Nilai disalin secara langsung |
| id | target.asset_id | Digabungkan sebagai "ASSET:" + ID |
| tindakan | security_result.action | Huruf besar jika tindakan adalah "Blokir" atau "Izinkan" |
| reason.exitCode | security_result.action_details | Nilai disalin secara langsung |
| dxpRule, monitoringReason, tenantId | security_result.detection_fields | Digabungkan dengan label yang dibuat dari setiap kolom jika ada; garis miring terbalik dihapus untuk dxpRule |
| dxpRuleType | security_result.rule_type | Nilai disalin secara langsung |
| ipArtifact.version | security_result.rule_version | Nilai disalin secara langsung |
| msg, reason.cause | security_result.summary | Nilai dari msg jika ada, ditimpa oleh reason.cause jika ada |
| timestamp | metadata.event_timestamp | Dikonversi menggunakan filter tanggal dengan format MMM dd HH:mm:ss atau MMM d HH:mm:ss |
| phost, ipArtifact.ipAddress, asset.name, user, uid, summary.artifact.sha256, summary.artifact.filePath | metadata.event_type | Ditetapkan ke FILE_UNCATEGORIZED jika memiliki principal dan memiliki target_file; USER_UNCATEGORIZED jika memiliki principal dan memiliki target; STATUS_UPDATE jika memiliki principal; jika tidak, GENERIC_EVENT (flag berasal dari sumber) |
| jenis | metadata.product_event_type | Nilai disalin secara langsung |
| gupid, guid | metadata.product_log_id | Nilai dari gupid jika ada, ditimpa oleh guid jika ada |
| metadata.product_name | Disetel ke "Halcyon Anti Ransomware" | |
| metadata.vendor_name | Disetel ke "Halcyon" | |
primaryProcess.kind |
event.idm.read_only_udm.target.process.file.mime_type |
Dipetakan dari log perubahan |
primaryProcess.artifact.kind |
event.idm.read_only_udm.principal.process.file.mime_type |
Dipetakan dari log perubahan |
processes.artifact.filePath |
event.idm.read_only_udm.principal.process.file.full_path |
Dipetakan dari log perubahan |
processes.artifact.sha256 |
event.idm.read_only_udm.principal.process.file.sha256 |
Dipetakan dari log perubahan |
action |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
filterName |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
policyMode |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
euid |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
occurrences.AuthFailure |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
occurrences.FailedPassword |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
occurredAt |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
occurrences.IncorrectPasswords |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
guid |
event.idm.read_only_udm.metadata.product_log_id |
Dipetakan dari log perubahan |
gupid |
event.idm.read_only_udm.metadata.product_log_id |
Dipetakan dari log perubahan |
count |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
artifact.filePath |
event.idm.read_only_udm.principal.process.file.full_path |
Dipetakan dari log perubahan |
artifact.sha256 |
event.idm.read_only_udm.principal.process.file.sha256 |
Dipetakan dari log perubahan |
artifact.kind |
event.idm.read_only_udm.principal.process.file.mime_type |
Dipetakan dari log perubahan |
monitoringReason |
event.idm.read_only_udm.security_result.detection_fields |
Dipetakan dari log perubahan |
dxpRule |
event.idm.read_only_udm.security_result.detection_fields |
Dipetakan dari log perubahan |
modifiedFilePath |
event.idm.read_only_udm.principal.process.file.full_path |
Dipetakan dari log perubahan |
ipArtifact.version |
event.idm.read_only_udm.security_result.rule_version |
Dipetakan dari log perubahan |
ipArtifact.ipAddress |
event.idm.read_only_udm.principal.ip |
Dipetakan dari log perubahan |
ipArtifact.ipAddress |
event.idm.read_only_udm.principal.asset.ip |
Dipetakan dari log perubahan |
process.parentPid |
event.idm.read_only_udm.principal.process.parent_pid |
Dipetakan dari log perubahan |
dxpRuleType |
event.idm.read_only_udm.security_result.rule_type |
Dipetakan dari log perubahan |
summary.applicationName |
event.idm.read_only_udm.principal.application |
Dipetakan dari log perubahan |
process.pid |
event.idm.read_only_udm.principal.process.pid |
Dipetakan dari log perubahan |
reason.exitCode |
event.idm.read_only_udm.security_result.action_details |
Dipetakan dari log perubahan |
reason.cause |
event.idm.read_only_udm.security_result.summary |
Dipetakan dari log perubahan |
dnsArtifact_uri |
event.idm.read_only_udm.network.dns.questions |
Dipetakan dari log perubahan |
uid |
event.idm.read_only_udm.target.user.userid |
Dipetakan dari log perubahan |
tty |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
sshd |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
phost |
event.idm.read_only_udm.principal.hostname |
Dipetakan dari log perubahan |
user_displayname |
event.idm.read_only_udm.principal.user.user_display_name |
Dipetakan dari log perubahan |
msg |
event.idm.read_only_udm.security_result.summary |
Dipetakan dari log perubahan |
timestamp |
event.idm.read_only_udm.metadata.event_timestamp |
Dipetakan dari log perubahan |
user |
event.idm.read_only_udm.principal.user.userid |
Dipetakan dari log perubahan |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.