Memformat data log sebagai UDM
Semua peristiwa Unified Data Model (UDM) memiliki kumpulan kolom dan pesan umum yang dapat diisi oleh partner, terlepas dari jenis peristiwanya. Kolom ini meliputi:
- Entitas: Perangkat, pengguna, dan proses yang terlibat dalam peristiwa.
- Metadata peristiwa: Kapan peristiwa terjadi, jenis peristiwa, asalnya, dll.
- Metadata jaringan: Metadata jaringan tingkat tinggi untuk peristiwa yang berorientasi pada jaringan serta detail protokol dalam sub-pesan:
- Metadata email: Informasi di kolom kepada, dari, cc, bcc, dan kolom email lainnya.
- Metadata HTTP: Method, referral_url, useragent, dll.
- Hasil keamanan: Klasifikasi atau tindakan apa pun yang dilakukan oleh produk keamanan.
- Metadata tambahan: Data peristiwa khusus vendor yang penting dan tidak dapat direpresentasikan secara memadai dalam bagian formal model UDM dapat ditambahkan menggunakan kolom payload json berformat bebas.
Bagian berikut menjelaskan cara mengenkode dan memformat peristiwa untuk Unified Data Model (UDM).
Encoding UDM
Peristiwa UDM harus dikirimkan ke Google Security Operations menggunakan salah satu format berikut:
Untuk tujuan dokumen ini, kolom direpresentasikan menggunakan notasi titik. Misalnya, sintaksis JSON berikut:
{"menu":
{
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"}
]
}
}
}
Didokumentasikan sebagai berikut:
menu.id = "file"
menu.value = "File"
menu.popup.menuitem.value = "New"
menu.popup.menuitem.onclick = "CreateNewDoc()"
Memformat Peristiwa UDM
Untuk memformat peristiwa UDM agar siap dikirim ke Google, Anda harus menyelesaikan langkah-langkah berikut:
- Menentukan Jenis Peristiwa—Jenis peristiwa yang Anda pilih menentukan kolom yang juga harus disertakan dengan peristiwa tersebut.
- Menentukan Stempel Waktu Peristiwa—Menentukan stempel waktu peristiwa.
- Menentukan Kata Benda (Entitas)—Setiap peristiwa harus menyertakan minimal satu kata benda yang mendeskripsikan perangkat atau pengguna peserta yang terlibat dalam peristiwa.
- Menentukan Hasil Keamanan—(Opsional) Tentukan hasil keamanan dengan menyertakan detail tentang risiko dan ancaman keamanan yang ditemukan oleh sistem keamanan serta tindakan yang diambil untuk mengurangi risiko dan ancaman tersebut.
- Isi informasi peristiwa yang diperlukan dan opsional lainnya menggunakan kolom peristiwa UDM.
Menentukan Jenis Peristiwa
Nilai terpenting yang ditentukan untuk setiap peristiwa yang dikirim dalam format UDM adalah jenis peristiwa, yang ditentukan menggunakan salah satu kemungkinan nilai yang tersedia untuk Metadata.event_type. Nilai ini mencakup nilai seperti PROCESS_OPEN, FILE_CREATION, USER_CREATION, NETWORK_DNS, dll. (untuk daftar lengkap, lihat Metadata.event_type. Setiap jenis peristiwa mengharuskan Anda juga mengisi serangkaian kolom dan nilai lain dengan informasi yang terkait dengan peristiwa asli. Lihat Kolom Wajib dan Opsional untuk Setiap Jenis Peristiwa UDM untuk mengetahui detail kolom yang akan disertakan untuk setiap jenis peristiwa. Contoh berikut mengilustrasikan cara menentukan PROCESS_OPEN sebagai jenis peristiwa menggunakan notasi teks Proto3:
metadata {
event_type: PROCESS_OPEN
}
Menentukan Stempel Waktu Peristiwa
Anda harus menentukan stempel waktu GMT untuk setiap peristiwa yang dikirim dalam format UDM menggunakan Metadata.event_timestamp. Stempel harus dienkode menggunakan salah satu standar berikut:
- Untuk JSON, gunakan RFC 3339
- Stempel waktu Proto3
Contoh berikut mengilustrasikan cara menentukan stempel waktu menggunakan format RFC 3339. Untuk contoh ini, yyyy-mm-ddThh:mm:ss+hh:mm—tahun, bulan, hari, jam, menit, detik, dan selisih waktu dari waktu UTC. Selisih waktu dari UTC adalah minus 8 jam, yang menunjukkan PST.
metadata {
event_timestamp: "2019-09-10T20:32:31-08:00"
}
Menentukan Kata Benda (Entity)
Untuk setiap peristiwa UDM, Anda harus menentukan satu atau beberapa kata benda. Kata benda mewakili peserta atau entitas dalam peristiwa UDM. Kata benda dapat berupa, misalnya, perangkat/pengguna yang melakukan aktivitas yang dijelaskan dalam peristiwa, atau perangkat/pengguna yang menjadi target aktivitas tersebut yang dijelaskan dalam peristiwa. Kata benda juga dapat berupa hal-hal seperti lampiran atau URL. Terakhir, kata benda juga dapat digunakan untuk mendeskripsikan perangkat keamanan yang mengamati aktivitas yang dijelaskan dalam peristiwa (misalnya, proxy email atau router jaringan).
Peristiwa UDM harus memiliki satu atau beberapa kata benda berikut yang ditentukan:
principal: Mewakili entitas yang bertindak atau perangkat yang memulai aktivitas yang dijelaskan dalam peristiwa. Akun utama harus menyertakan minimal satu detail mesin (nama host, MAC, IP, port, ID khusus produk seperti GUID mesin CrowdStrike) atau detail pengguna (misalnya, nama pengguna), dan secara opsional menyertakan detail proses. Nama tidak boleh menyertakan salah satu kolom berikut: email, file, kunci atau nilai registry.
Jika semua peristiwa terjadi di mesin yang sama, mesin tersebut hanya perlu dijelaskan di principal. Mesin juga tidak perlu dijelaskan di target atau di src.
Contoh berikut menggambarkan cara mengisi kolom principal:
principal {
hostname: "jane_win10"
asset_id: "Sophos.AV:C070123456-ABCDE"
ip: "10.0.2.10"
port: 60671
user { userid: "john.smith" }
}
Contoh di atas menjelaskan semua yang diketahui tentang perangkat dan pengguna yang merupakan aktor utama yang dijelaskan dalam peristiwa. Contoh ini mencakup alamat IP dan nomor port perangkat, serta nama hostnya. Laporan ini juga menyertakan ID aset khusus vendor (dari Sophos) yang merupakan ID unik yang dihasilkan oleh produk keamanan pihak ketiga.
target: Mewakili perangkat target yang dirujuk oleh peristiwa, atau objek di perangkat target. Misalnya, dalam koneksi firewall dari perangkat A ke perangkat B, A dijelaskan sebagai akun utama dan B dijelaskan sebagai target. Untuk injeksi proses oleh proses C ke dalam proses target D, proses C dijelaskan sebagai akun utama dan proses D dijelaskan sebagai target.
Prinsipal Versus Target di UDM
Contoh berikut menggambarkan cara kolom untuk target diisi:
target {
ip: "198.51.100.31"
port: 80
}
Sekali lagi, jika informasi lainnya tersedia, seperti nama host, alamat IP tambahan, alamat MAC, ID aset eksklusif, dll., informasi tersebut juga harus disertakan dalam target.
Prinsipal dan target (serta kata benda lainnya) dapat mereferensikan aktor di komputer yang sama. Misalnya, proses A (prinsipal) yang berjalan di mesin X bertindak pada proses B (target) juga di mesin X.
- src: Merepresentasikan objek sumber yang ditindaklanjuti oleh peserta beserta konteks perangkat atau proses untuk objek sumber (mesin tempat objek sumber berada). Misalnya, jika pengguna U menyalin file A di komputer X ke file B di komputer Y, file A dan komputer X akan ditentukan di bagian src peristiwa UDM.
- intermediary: Merepresentasikan detail tentang satu atau beberapa aktivitas pemrosesan perangkat perantara yang dijelaskan dalam peristiwa. Hal ini mencakup detail perangkat tentang server proxy, server relay SMTP, dll.
- observer: Mewakili perangkat observer (misalnya, packet sniffer atau pemindai kerentanan berbasis jaringan), yang bukan merupakan perantara langsung, tetapi mengamati dan melaporkan peristiwa yang dimaksud.
- about: Digunakan untuk menyimpan detail tentang semua objek yang dirujuk oleh peristiwa yang tidak dijelaskan di participant, src, target, intermediary, atau observer. Misalnya, fitur ini dapat digunakan untuk melacak hal berikut:
- Lampiran file email
- Domain/URL/IP yang disematkan dalam isi email
- DLL yang dimuat selama peristiwa PROCESS_LAUNCH
Bagian entitas peristiwa UDM menyertakan informasi tentang berbagai peserta (perangkat, pengguna, objek seperti URL, file, dll.) yang dijelaskan dalam peristiwa. UDM Google Security Operations memiliki persyaratan wajib untuk mengisi kolom Kata Benda. Persyaratan ini dijelaskan dalam Kolom Wajib dan Opsional untuk Setiap Jenis Peristiwa UDM. Kumpulan kolom entitas yang harus diisi berbeda-beda berdasarkan jenis peristiwa.
Menentukan Hasil Keamanan
Anda dapat menentukan hasil keamanan secara opsional dengan mengisi kolom SecurityResult, termasuk detail tentang risiko dan ancaman keamanan yang ditemukan oleh sistem keamanan serta tindakan yang diambil untuk mengurangi risiko dan ancaman tersebut. Berikut adalah contoh beberapa jenis peristiwa keamanan yang akan memerlukan pengisian kolom SecurityResult:
- Proxy keamanan email mendeteksi upaya phishing (MAIL_PHISHING) dan memblokir (BLOCK) email tersebut.
- Firewall proxy keamanan email mendeteksi dua lampiran yang terinfeksi (SOFTWARE_MALICIOUS) dan mengarantina serta mendisinfeksi (QUARANTINE, ALLOW_WITH_MODIFICATION) lampiran tersebut, lalu meneruskan email yang telah didisinfeksi.
- Sistem SSO memfasilitasi login (AUTH_VIOLATION) yang diblokir (BLOCK).
- Sandbox malware mendeteksi spyware (SOFTWARE_MALICIOUS) dalam lampiran file lima menit setelah file dikirim (ALLOW) kepada pengguna di kotak masuknya.