Perantaian aturan
Rantai aturan memungkinkan Anda menghubungkan aturan sedemikian rupa sehingga output satu aturan berfungsi sebagai input untuk aturan lain. Kemampuan ini memungkinkan Anda membuat aturan dengan lebih kompleks dan fleksibel. Rantai aturan mengatasi batasan deteksi peristiwa terisolasi dengan menghubungkan dan menganalisis peristiwa di berbagai sumber data dan jangka waktu.
Manfaat pembuatan rantai aturan:
Mengungkap Serangan Multi-Tahap: Serangan cyber sering kali saling berhubungan. Rantai aturan membantu mengungkap narasi serangan dengan menampilkan link antara insiden yang tampaknya terisolasi. Misalnya, pembuatan rantai aturan dapat mengidentifikasi seluruh urutan serangan, seperti pelanggaran awal yang diikuti dengan eskalasi hak istimewa dan pemindahan data yang tidak sah.
Mengurangi Kelelahan Notifikasi: Prioritaskan ancaman kritis dan mitigasi kelelahan notifikasi dengan menerapkan aturan konsumen. Aturan ini menggabungkan dan memfilter pemberitahuan yang berisi derau yang dihasilkan oleh aturan produsen, sehingga memungkinkan respons yang lebih terfokus.
Meningkatkan Akurasi Deteksi: Menggabungkan insight dari peristiwa UDM, deteksi aturan lainnya, informasi entitas, temuan UEBA, dan tabel data untuk membuat logika deteksi yang akurat.
Menyederhanakan Logika Kompleks: Membagi skenario deteksi yang kompleks menjadi aturan yang dapat dikelola, saling terhubung, dan dapat digunakan kembali untuk menyederhanakan pengembangan dan pemeliharaan.
Istilah dan konsep pembuatan rantai aturan:
Deteksi: adalah hasil dari aturan dan juga dapat disebut sebagai pemberitahuan.
Rantai: adalah serangkaian aturan yang output dari satu aturan berfungsi sebagai input untuk aturan berikutnya. Misalnya, dalam rantai rule1 -> rule2 -> rule3, deteksi yang dihasilkan oleh rule1 digunakan oleh rule2 untuk menghasilkan deteksi baru, yang kemudian digunakan oleh rule3 untuk menghasilkan kumpulan deteksinya sendiri.
Aturan produsen: adalah aturan yang deteksinya digunakan sebagai input untuk aturan lain. Aturan apa pun dapat berfungsi sebagai aturan pembuat, dan tidak ada penetapan tertentu yang diperlukan. Aturan produsen menggunakan entity dan peristiwa sebagai input. Model ini tidak menggunakan deteksi sebagai input.
Aturan konsumen: adalah aturan yang menggunakan deteksi sebagai input dalam teks aturan. Aturan konsumen harus memiliki bagian kecocokan.
Aturan penautan: juga dikenal sebagai aturan konsumen.
Konsep lanjutan
Aturan deteksi peristiwa tunggal
Google SecOps tidak mengizinkan aturan deteksi peristiwa tunggal. Artinya, setiap aturan yang menggunakan deteksi sebagai sumber data harus memiliki bagian pencocokan.
Latensi deteksi
Sebaiknya hanya rantaikan aturan konsumen pada aturan peristiwa tunggal karena masalah penjadwalan. Aturan peristiwa tunggal berjalan hampir secara real time, sehingga deteksi dari aturan ini hampir selalu tersedia untuk eksekusi pertama aturan konsumen. Jika Anda membuat rantai aturan menggunakan aturan multi-peristiwa, aturan produsen mungkin akan dijalankan setelah aturan konsumen, sehingga menunda pembuatan deteksi dalam aturan konsumen.
TestRule dan Retrohunt
Menguji atau menjalankan retrohunt pada aturan konsumen hanya akan menjalankan aturan tertentu yang Anda pilih menggunakan deteksi yang ada. Untuk menjalankan rantai lengkap, Anda harus memulai retrohunt di awal rantai dan menunggu setiap operasi selesai sebelum menjalankan aturan berikutnya.
Menjalankan pengujian pada aturan tidak akan mempertahankan atau menulis deteksi ke database dan aturan konsumen mewajibkan deteksi input ada di database. Oleh karena itu, Anda tidak dapat menguji rantai aturan dalam aturan pengujian.
Membuat rantai aturan
Anda membuat rantai aturan menggunakan kombinasi aturan produsen dan aturan konsumen.
Aturan produsen
Aturan produsen adalah fondasi rantai Anda. Pola ini mengidentifikasi peristiwa atau kondisi tertentu yang, jika digabungkan, menunjukkan aktivitas berbahaya. Untuk mengonfigurasi aturan produsen, lakukan hal berikut:
Membuat aturan baru atau menggunakan kembali aturan yang sudah ada
Nonaktifkan pemberitahuan dan tetapkan
$risk_score
ke 0 di bagian hasil. Hal ini mencegah aturan ini menghasilkan notifikasi individual atau memengaruhi skor risiko entitas. Dengan menggunakan konfigurasi ini, Anda dapat memprioritaskan pemberitahuan yang lebih penting yang dihasilkan oleh aturan konsumen, yang menilai seluruh rantai peristiwa.Gunakan bagian
outcome
untuk menentukan variabel yang dapat diakses oleh aturan penautan.
Contoh aturan produsen berikut mendeteksi login yang gagal.
rule failed_login {
meta:
events:
$e.metadata.event_type = "USER_LOGIN"
any $e.security_result.action = "BLOCK"
outcome:
$risk_score = 0
$target_user = $e.target.user.userid
condition:
$e
}
Aturan ini mengidentifikasi login yang diblokir dan memberikan pengguna terkait.
Aturan rantai
Menulis aturan yang menggunakan deteksi sebagian besar sama dengan aturan yang menggunakan UDM,
kecuali sumber dan kolom yang tersedia berbeda. Untuk mereferensikan
kolom deteksi, gunakan kata kunci detection
sebagai sumber: $eventname.detection.field1.field2
.
Subkolom yang tersedia di sumber detection
dapat ditemukan di
resource koleksi.
Berikut adalah kolom umum dalam koleksi
$d.detection.detection.rule_id
$d.detection.detection.detection_fields["match_var_name"]
$d.detection.detection.outcomes["outcome_name"]
Contoh aturan berikut mendeteksi login tanpa MFA, enumerasi, dan eksfiltrasi.
rule login_enumeration_exfiltration {
meta:
description = "Detects when a user logs in without multifactor authentication (MFA) and then performs enumeration and exfiltration"
rule_name = "Login Without MFA, Enumeration, Exfiltration"
severity = "High"
events:
// Detection with name "Console Login Without MFA"
// The affected user is saved as $target_user
$login_without_mfa.detection.detection.rule_name = /Console Login Without MFA/
$target_user = $login_without_mfa.detection.detection.outcomes["target_user"]
// Any detection with a rule name containing 'enumeration'
// The user performing enumeration is the user that logged in without mfa
$enumeration.detection.detection.rule_name = /enumeration/ nocase
$enumeration.detection.detection.outcomes["principal_users"] = $target_user
// Any detection with the mitre tactic 'TA0010' (Exfiltration)
// The user performing exfiltration is the user that logged in without mfa
$exfiltration.detection.detection.rule_labels["tactic"] = "TA0010"
$exfiltration.detection.detection.outcomes["principal_users"] = $target_user
match:
// Looks for detections over a 24 hour period
$target_user over 24h
condition:
// All 3 must occur for a single user
$login_without_mfa and $enumeration and $exfiltration
}
Deteksi hierarkis
Rantai aturan memungkinkan Anda membuat sistem deteksi hierarkis. Aturan produsen level bawah mengidentifikasi setiap peristiwa yang mencurigakan. Outputnya kemudian dimasukkan ke dalam aturan konsumen atau rantai tingkat yang lebih tinggi. Aturan ini menghubungkan informasi ini dengan data dari sumber lain untuk mendeteksi pola serangan multi-tahap yang mungkin terlewatkan oleh aturan peristiwa tunggal. Google Security Operations mendukung hingga tiga tingkat rantai, yang memberikan keseimbangan antara kecanggihan deteksi dan kompleksitas yang dapat dikelola.
Contoh:
Level 1: Aturan produsen mendeteksi setiap peristiwa mencurigakan. Misalnya, login gagal, akses file yang tidak biasa.
Level 2: Aturan penautan mengaitkan deteksi Level 1. Misalnya, login gagal diikuti dengan akses file yang mencurigakan.
Tingkat 3: Aturan rantai tingkat lebih tinggi menggabungkan deteksi Tingkat 2 dan data lainnya untuk deteksi yang lebih canggih. Misalnya, deteksi level 2 terkait autentikasi serta deteksi level 2 terkait postur keamanan perangkat yang digunakan.
Pertimbangan saat mengubah aturan produsen
Saat aturan produsen diperbarui dalam rantai aturan, versi baru aturan produsen akan dibuat. Hal ini berlaku untuk pembaruan logika (kondisi, peristiwa, hasil) dan pembaruan metadata (nama, deskripsi, tingkat keparahan). Aturan konsumen akan terus beroperasi menggunakan versi baru. Penting untuk menguji aturan produsen yang diperbarui dan aturan konsumen downstream-nya untuk memastikan perilaku yang diinginkan.
Batasan
Rantai aturan memiliki batasan berikut.
Aturan khusus deteksi dan skor risiko entity
Aturan khusus deteksi (aturan yang hanya menggunakan data deteksi sebagai sumber, bukan data peristiwa atau entity) tidak berkontribusi pada skor risiko entity. Setiap skor risiko yang ditetapkan untuk aturan khusus deteksi hanya berlaku untuk deteksi yang dibuat oleh aturan tersebut. Skor ini tidak akan berkontribusi pada skor risiko entity gabungan.
Dukungan tampilan kasus untuk pembuatan rantai aturan
Notifikasi gabungan tidak didukung dalam tampilan kasus.