Menggunakan gabungan dalam Penelusuran
Gabungan membantu mengorelasikan data dari berbagai sumber untuk memberikan lebih banyak konteks bagi penyelidikan. Dengan menautkan peristiwa, entitas, dan data terkait lainnya, Anda dapat menyelidiki skenario serangan yang kompleks.
Dokumen ini menjelaskan cara menggunakan operasi gabung di Google Security Operations. Dokumen ini juga mencakup jenis gabungan yang didukung, kasus penggunaan, dan praktik terbaik.
Membuat gabungan
Hanya gabungan berbasis statistik yang didukung. Anda harus menentukannya di bagian kecocokan kueri dengan jangka waktu korelasi hingga 48 jam.
Anda dapat membuat gabungan dengan menghubungkan kolom secara langsung (misalnya, $e1.hostname = $e2.hostname
) atau menggunakan variabel placeholder. Saat
menentukan gabungan di bagian match
, Anda harus menggunakan variabel placeholder.
Contoh kueri berikut menggabungkan dua kolom dengan tanda sama dengan (=
) dan
variabel placeholder bersama:
Contoh 1:
events:
// Assign a value from the first event to the placeholder variable $user
$user = $e1.principal.user.userid
// The second assignment creates an implicit join, linking $e2 to $e1
// where the user ID is the same.
$user = $e2.principal.user.userid
match:
$user over 1h
condition:
$e1 and $e2
Contoh 2:
$e1.principal.ip = $ip
$e1.metadata.event_type = "USER_LOGIN"
$e1.principal.hostname = $host
$e2.target.ip = $ip
$e2.principal.hostname = "altostrat"
$e2.target.hostname = $host
match:
$ip, $host over 5m
Jenis gabungan yang didukung
Bagian ini menjelaskan berbagai jenis gabungan yang dapat Anda gunakan.
Penggabungan event-event
Penggabungan peristiwa-peristiwa menghubungkan dua peristiwa Universal Data Model (UDM) yang berbeda.
Kueri contoh berikut menautkan peristiwa USER_LOGIN
dengan peristiwa lain untuk
menemukan nama host (altostrat
) yang berinteraksi dengan pengguna, berdasarkan
alamat IP umum:
$e1.principal.ip = $ip
$e1.metadata.event_type = "USER_LOGIN"
$e2.target.ip = $ip
$e2.principal.hostname = "altostrat"
match:
$ip over 5m
Gabungan Event-ECG
Gabungan Event-ECG menghubungkan peristiwa UDM dengan entitas dari Entity Context
Graph (ECG). Contoh kueri berikut menemukan peristiwa NETWORK_CONNECTION
dan
ASSET
dari grafik entitas yang memiliki nama host yang sama dalam jangka waktu 1 jam:
events:
$e1.metadata.event_type = "NETWORK_CONNECTION"
$g1.graph.metadata.entity_type = "ASSET"
$e1.principal.asset.hostname = $g1.graph.entity.asset.hostname
$x = $g1.graph.entity.asset.hostname
match:
$x over 1h
condition:
$e1 and $g1
Gabungan datatable-event
Penggabungan datatable-event menghubungkan peristiwa UDM dengan entri dalam tabel data kustom.
Hal ini berguna untuk memeriksa data peristiwa live terhadap daftar yang ditentukan pengguna, seperti alamat IP atau aktor ancaman berbahaya yang diketahui. Contoh kueri berikut menggabungkan peristiwa NETWORK_CONNECTION
dengan tabel data untuk menemukan koneksi yang melibatkan alamat IP tertentu dari daftar tersebut:
$ip = %DATATABLE_NAME.COLUMN_NAME
$ip = $e1.principal.ip
$e1.metadata.event_type = "NETWORK_CONNECTION"
match:
$ip over 1h
Praktik terbaik
Kueri gabungan dapat menggunakan banyak resource karena menggabungkan banyak hasil. Filter yang luas dan umum dapat menyebabkan kueri gagal, terkadang setelah penundaan yang lama, misalnya:
target.ip != null
metadata.event_type = "NETWORK_CONNECTION"
(jika jenis acara ini sangat umum di lingkungan Anda)
Sebaiknya gabungkan filter umum dengan filter yang lebih spesifik untuk mengurangi
jumlah total peristiwa yang perlu diproses kueri. Filter luas seperti
target.ip != null
harus dipasangkan dengan filter yang lebih spesifik untuk meningkatkan
performa kueri, misalnya:
$e1.metadata.log_type = $log
$e1.metadata.event_type = "USER_LOGIN"
$e1.target.ip != ""
$e2.metadata.log_type = $log
$e2.principal.ip = "10.0.0.76"
$e2.target.hostname != "altostrat"
match:
$log over 5m
Jika kueri Anda masih lambat, Anda juga dapat mengurangi rentang waktu keseluruhan kueri (misalnya, dari 30 hari menjadi satu minggu).
Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik YARA-L.
Batasan
Batasan berikut berlaku saat menggunakan gabungan:
Anda dapat menggunakan maksimal dua peristiwa UDM per kueri.
Anda dapat menggunakan maksimum satu peristiwa EKG per kueri.
Anda dapat menggunakan maksimum dua Tabel Data per kueri.
Anda tidak dapat menggabungkan peristiwa tabel data, UDM, dan ECG dalam satu kueri.
Rentang waktu kueri maksimum adalah 90 hari.
Jendela waktu
match
maksimum adalah 48 jam.Gabungan didukung di antarmuka pengguna dan
EventService.UDMSearch
API, tetapi tidak diSearchService.UDMSearch
API.
Kasus penggunaan umum
Bagian ini mencantumkan beberapa cara umum untuk menggunakan gabungan.
Mendeteksi pencurian dan penggunaan kredensial
Tujuan: Temukan instance saat pengguna berhasil login, lalu dengan cepat menghapus file sistem penting. Hal ini dapat menunjukkan pengambilalihan akun atau aktivitas orang dalam yang berbahaya.
Jenis gabungan: Gabungan Acara-Acara
Deskripsi: Kueri ini menghubungkan dua peristiwa berbeda yang tidak mencurigakan jika terjadi secara terpisah, tetapi menjadi sangat mencurigakan jika terjadi bersamaan. Pertama-tama,
cari peristiwa USER_LOGIN
, lalu peristiwa FILE_DELETION
. Keduanya digabungkan
oleh user.userid
umum dengan jangka waktu singkat.
Contoh kueri:
// Event 1: A user successfully logs in
$e1.metadata.event_type = "USER_LOGIN"
$e1.security_result.action = "ALLOW"
$e1.principal.user.userid = $user
// Event 2: The same user deletes a critical file
$e2.metadata.event_type = "FILE_DELETION"
$e2.target.file.full_path = /etc\/passwd|C:\\Windows\\System32\\/
$e2.principal.user.userid = $user
match:
$user over 10m
condition:
$e1 and $e2
Mengidentifikasi koneksi berisiko dari aset penting
Tujuan: Memperkaya data jaringan aktif dengan informasi aset untuk menemukan koneksi keluar dari server yang tidak boleh berkomunikasi dengan domain eksternal yang jarang muncul (misalnya, server database produksi).
Jenis gabungan: Gabungan Event-ECG
Deskripsi: Satu koneksi jaringan ke domain langka mungkin tidak menjadi
prioritas tinggi. Namun, kueri ini meningkatkan pentingnya peristiwa tersebut dengan menggabungkannya dengan Entity Context Graph (ECG). Secara khusus, alat ini mencari peristiwa NETWORK_CONNECTION
yang berasal dari aset yang diberi label "Server Database Kritis" dalam grafik entity.
Contoh kueri:
events:
$e.metadata.event_type = "NETWORK_CONNECTION"
$e.target.domain.prevalence.day_count <= 5
$asset.graph.metadata.entity_type = "ASSET"
$asset.graph.entity.asset.labels.value = "Critical Database Server"
$e.principal.asset.hostname = $asset.graph.entity.asset.hostname
$host = $e.principal.asset.hostname
match:
$host over 1h
condition:
$e and $asset
Mencari IOC pelaku ancaman
Tujuan: Secara aktif menelusuri Indikator Gangguan (IoC) dengan memeriksa semua kueri DNS aktif terhadap daftar domain yang diketahui digunakan oleh aktor ancaman tertentu.
Jenis gabungan: Gabungan Datatable-Event
Deskripsi: Tim intelijen ancaman Anda mengelola tabel data bernama
ThreatActor_Domains
yang mencantumkan domain berbahaya. Kueri ini menggabungkan semua peristiwa NETWORK_DNS_QUERY
real-time dengan tabel data ini. Hal ini akan segera menampilkan
setiap instance saat host di jaringan Anda mencoba menyelesaikan domain dari
daftar informasi ancaman Anda.
Contoh kueri:
// Datatable: Get the list of malicious domains
$domain = $ip = %DATATABLE_NAME.COLUMN_NAME
// Event: A DNS query is made
$e.metadata.event_type = "NETWORK_DNS"
$e.network.dns.questions.name = $domain
match:
$domain over 5m
condition:
$e
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.