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 dari serangan ransomware. Alat ini menghasilkan pemberitahuan untuk peristiwa deteksi ransomware, upaya enkripsi, dan tindakan pemulihan. Parser memetakan kolom log berformat JSON ke Model Data Terpadu (UDM), yang 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 yang 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 Memberi nama bucket Anda Masukkan nama yang unik secara global (misalnya, halcyon-logs)Location type Pilih sesuai kebutuhan Anda (Region, Dual-region, Multi-region) Location Pilih lokasi (misalnya, us-central1)Storage class Standard (direkomendasikan untuk log yang sering diakses) Kontrol akses Seragam (direkomendasikan) Alat perlindungan Opsional: Mengaktifkan 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: Ekspor log menggunakan Halcyon API dan upload ke GCS
- Login ke konsol pengelolaan Halcyon.
- Buka Settings > API Access dan buat kunci API dengan izin baca.
- Salin dan simpan kunci API.
- Gunakan skrip terjadwal atau fungsi Cloud Run untuk memanggil Halcyon REST API, mengambil log peristiwa, dan menulisnya ke GCS dalam format JSON.
Opsi B: Mengonfigurasi integrasi SIEM dan meneruskan ke GCS
- Login ke konsol pengelolaan Halcyon.
- Buka Settings > Integrations > SIEM.
- Konfigurasikan 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 data peristiwa.
Mengambil akun layanan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
- Klik Tambahkan Feed Berita Baru.
- Klik Konfigurasi satu feed.
- Pilih Google Cloud Storage V2 sebagai Source type.
- Pilih Halcyon Anti Ransomware sebagai Log type.
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.
- Assign roles: Pilih Storage Object Viewer.
Klik Simpan.
- Jika Anda berencana menggunakan opsi penghapusan (menghapus 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 > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
- Klik Tambahkan Feed Berita 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 Log type.
- 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 berita baru Anda di layar Finalize, lalu klik Submit.
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 langsung |
| ipArtifact.ipAddress | principal.asset.ip | Nilai disalin langsung |
| summary.applicationName | principal.application | Nilai disalin langsung |
| phost, asset.name | principal.hostname | Nilai dari phost jika ada, ditimpa oleh asset.name jika ada |
| ipArtifact.ipAddress | principal.ip | Nilai disalin langsung |
| process.commandLine | principal.process.command_line | Nilai disalin 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 langsung |
| process.pid | principal.process.pid | Nilai disalin langsung |
| user_displayname | principal.user.user_display_name | Nilai disalin langsung |
| pengguna | principal.user.userid | Nilai disalin langsung |
| summary.artifact.filePath | target.file.full_path | Nilai disalin langsung |
| summary.artifact.sha256 | target.file.sha256 | Nilai disalin langsung |
| primaryProcess.commandLine | target.process.command_line | Nilai disalin langsung setelah menghapus tanda petik |
| primaryProcess.kind | target.process.file.mime_type | Nilai disalin langsung |
| primaryProcess.parentPid | target.process.parent_process.pid | Nilai disalin langsung |
| primaryProcess.pid | target.process.pid | Nilai disalin langsung |
| uid | target.user.userid | Nilai disalin 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 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 langsung |
| ipArtifact.version | security_result.rule_version | Nilai disalin 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 | Setel ke FILE_UNCATEGORIZED jika has_principal dan has_target_file; USER_UNCATEGORIZED jika has_principal dan has_target; STATUS_UPDATE jika has_principal; jika tidak, GENERIC_EVENT (flag yang berasal dari sumber) |
| jenis | metadata.product_event_type | Nilai disalin langsung |
| gupid, guid | metadata.product_log_id | Nilai dari gupid jika ada, ditimpa oleh guid jika ada |
| metadata.product_name | Tetapkan ke "Halcyon Anti Ransomware" | |
| metadata.vendor_name | Setel 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.