Saya Sergey Rublev, kepala SOC (Pusat Operasi Keamanan) di Infosecurity.
Dalam artikel ini, saya akan memeriksa secara detail proyek ambisius
Aturan Sigma , yang moto adalah: "Sigma untuk log seperti Snort untuk lalu lintas dan Yara untuk file."

Ini akan tentang tiga aspek:
- Penerapan sintaks aturan-Sigma untuk mempertahankan basis pengetahuan skrip deteksi ancaman
- Kemampuan alat pembuatan aturan untuk sistem SIEM kotak
- Nilai untuk SOC dari konten saat ini dari repositori publik aturan Sigma
Sekali waktu, jauh, jauh di galaksi
Semuanya dimulai beberapa tahun yang lalu ketika pohonnya besar, dan tim pemantau kami masih kecil. Kami menghadapi banyak pertanyaan, hampir semua tim yang tumbuh menjadi garis tiga orang melewati ini.

Alasan munculnya pertanyaan berbeda:
- Pertumbuhan tim
- Pergantian staf
- Sejumlah besar sistem heterogen untuk pemantauan
Jika Anda harus mengambil dukungan yang sudah dikonfigurasi oleh seseorang SIEM, jumlah pertanyaan bertambah seperti longsoran salju.
Gunakan Perpustakaan Kasus
Pengalaman dunia dalam membangun pusat pemantauan telah menghasilkan solusi untuk mengatur kekacauan dan namanya adalah perpustakaan studi kasus. Tujuan dari setiap kasus adalah untuk menjelaskan secara komprehensif solusi untuk suatu masalah dalam kerangka pemantauan keamanan informasi.
Komposisi pengetahuan yang ditetapkan dalam setiap kasus dapat bervariasi, kami melanjutkan dari set berikut:
- Tujuan - tugas diselesaikan oleh kasing
- Ancaman - ancaman yang ingin dideteksi oleh aturan deteksi.
- Stakeholder - orang yang tertarik dengan aturan ini: IB / IT / Bisnis
- Persyaratan Data - kumpulan data yang diperlukan untuk mengidentifikasi ancaman
- Logika - logika aturan deteksi ancaman
- Pengujian - suatu algoritma untuk menguji kebenaran aturan deteksi
- Prioritas - prioritas pemrosesan acara menurut kasus (biasanya dihitung dari potensi kerusakan akibat ancaman yang berhasil diterapkan)
- Output - Daftar tindakan untuk mengurai peringatan, deskripsi keluar yang benar dari prosedur penguraian dan komposisi data yang direkam dalam hasil penguraian
Gunakan contoh kasus untuk tugas mendeteksi komunikasi dengan server manajemen botnet (Umumnya dikenal sebagai C&C atau hanya C2):

Contohnya sangat disederhanakan, dalam kenyataannya, dengan deskripsi yang tepat, sebuah kasus tumbuh menjadi dokumen multi-halaman.
Pada saat itu, ketika jumlah kasus melebihi beberapa puluh, kami mulai mencari alat yang siap pakai untuk mempertahankan basis pengetahuan seperti itu, lebih disukai memiliki, selain ramah manusia, juga semacam antarmuka yang ramah mesin untuk bekerja.
Proyek Sigma
Proyek Sigma tentu layak dipertimbangkan dalam konteks basis pengetahuan tentang aturan deteksi insiden. Ini dimulai pada tahun 2016, dan saya telah mengikutinya hampir sejak awal.
Bahkan, proyek tersebut terdiri dari
- Sigma mengatur sendiri
- Utilitas untuk mengubah aturan menjadi kueri untuk berbagai sistem SIEM
Daftar SIEM sangat mengesankan: hampir semua solusi analisis acara populer ada. Lebih jauh tentang segala sesuatu secara terperinci dan teratur.
Sintaksis aturan
Aturan Sigma adalah dokumen YAML yang menggambarkan skenario untuk mendeteksi serangan tertentu. Secara sintaksis, aturan terdiri dari blok-blok berikut:
Informasi meta
Bagian deskriptif untuk menyusun dan menyederhanakan pencarian aturan yang diperlukan.
title: Access to ADMIN$ Share description: Detects access to $ADMIN share author: Florian Roth falsepositives: - Legitimate administrative activity level: low tags: - attack.lateral_movement - attack.t1077 status: experimental
Saya juga ingin mencatat bahwa banyak aturan yang sudah disediakan dengan tautan ke teknik serangan menurut metodologi MITER ATT & CK.
Deklarasi Sumber Data
Deskripsi sumber berdasarkan peristiwa di mana logika deteksi diterapkan.
logsource: product: windows service: security
Secara sintaksis mungkin untuk menggambarkan layanan akhir dari produk tertentu dan keseluruhan kategori sistem.
Memproses Deklarasi Logika
Pada level logika deteksi, berikut ini dijelaskan:
- Pola yang dicari
- Nilai bidang tertentu dalam log
- Kerangka waktu
- Fungsi Agregat
Logika bisa sepele, misalnya, kondisi yang dikenakan pada set bidang:
detection: selection: EventID: 5140 ShareName: Admin$ filter: SubjectUserName: '*$' condition: selection and not filter
dan cukup rumit:
detection: selection1: EventID: - 529 - 4625 UserName: '*' WorkstationName: '*' selection2: EventID: 4776 UserName: '*' Workstation: '*' timeframe: 24h condition: - selection1 | count(UserName) by WorkstationName > 3 - selection2 | count(UserName) by Workstation > 3
Sarana ekspresif dari bahasa tersebut, meskipun tidak universal, masih cukup luas dan memungkinkan Anda untuk menggambarkan sejumlah besar kasus untuk mengidentifikasi serangan.
Alat Pengembangan Aturan
Selain editor teks favorit Anda untuk YAML, WEB UI dari SOC Prime juga tersedia, yang memungkinkan Anda untuk memvalidasi sintaks dari aturan yang sudah ditulis dan membuat aturan secara manual dari blok grafik.

Sigma sebagai Alat Basis Pengetahuan
Untuk meringkas ringkasan singkat.
Saat ini, sintaks aturan terutama berkonsentrasi pada deskripsi logika deteksi ancaman dan tidak dimaksudkan untuk deskripsi yang komprehensif dari kasus penggunaan, sehingga tidak akan berfungsi untuk mempertahankan perpustakaan yang lengkap hanya menggunakan Aturan Sigma saja.
Untuk struktur use case yang telah kami pilih, Sigma menutup hanya setengah (Tujuan, Persyaratan data, Logika dan Prioritas).

Konversikan ke berbagai SIEM
Karena kami adalah penyedia layanan layanan SOC, ide untuk menjaga semua perkembangan kami sesuai dengan aturan korelasi dalam beberapa format universal dan pada tahap implementasi untuk mengkonversi ke format SIEM yang diinginkan tampak sangat menarik bagi kami.
Proyek ini mencakup utilitas konsol untuk menghasilkan permintaan acara dalam format berbagai SIEM. Pertimbangkan apa itu konversi dan apa yang ada di balik tudungnya.

Konversi berlangsung dalam 3 tahap:
- Aturan parsing - Saya pikir ini jelas: dokumen YAML diurutkan menjadi blok komponen
- Pengurangan ke Taksonomi SIEM
Perlunya tahap ini terkait dengan fakta bahwa normalisasi dalam sistem SIEM diimplementasikan dalam cara yang sedikit berbeda, sehingga deklarasi dari aturan Sigma perlu direduksi menjadi taksonomi peristiwa-peristiwa SIEM yang dipilih - Minta Pembuatan untuk SIEM
Agar tahap ini berfungsi, komponen lain diperlukan - backend untuk SIEM ini.
Bahkan, backend adalah plug-in untuk utilitas konversi, yang berisi logika untuk mengkonversi ke format permintaan akhir di SIEM. Blok deteksi dan sumber log dikonversi dengan memperhitungkan pemetaan bidang yang sebelumnya ditumpangkan, informasi tambahan khusus SIEM ditambahkan.
Akibatnya, memulai utilitas konversi terlihat seperti ini:

Parameter berikut dilewatkan:
- Target SIEM
- Aturannya
- Memetakan file untuk SIEM ini
SOC Prime juga memiliki UI siap pakai untuk fungsi konversi (
uncoder.io )

Perangkap konversi
- Setelah mempelajari mekanisme konversi, kami menemui keterbatasan yang signifikan, yang membuat kami tidak mengubah semua pengembangan ke format Sigma:
- Konverter hanya beroperasi dengan permintaan. Aturan korelasi dalam SIEM memengaruhi lebih banyak aspek: rentang waktu, agregasi, tindakan berdasarkan hasil lansiran yang diidentifikasi
- Fitur utama dari masing-masing SIEM, seperti ActiveLists, tidak diperhitungkan.
- Detail pemetaan lapangan yang tidak mencukupi - sebagai bagian dari konfigurasi pemetaan, bidang yang hanya terdiri dari beberapa sumber dijelaskan, sehingga memiliki aturan untuk beberapa lusin jenis sumber acara yang berbeda dalam basis data, Anda harus banyak berinvestasi dalam pemetaan.
Basis Aturan
Mari kita lihat apa yang dibawa oleh basis aturan Sigma yang tersedia untuk umum. Saat ini, konten secara aktif ditambahkan ke dua repositori:
- Repositori proyek utama
- SOC Prime Threat Detection Marketplace
Aturan dalam repositori memiliki persimpangan bukan nol.
SOC Prime memiliki sejumlah aturan yang berlaku untuk langganan berbayar, saya tidak menganggap konten mereka dalam artikel ini.
Untuk analitik, kita memerlukan pustaka
sigmatools untuk Python dan beberapa keterampilan pemrograman.
Untuk mem-parsing dan memuat aturan dari direktori ke kamus, Anda dapat menggunakan kode berikut:
from sigma.parser.collection import SigmaCollectionParser import pathlib import itertools def alliter(path): for sub in path.iterdir(): if sub.name.startswith("."): continue if sub.is_dir(): yield from alliter(sub) else: yield sub def get_inputs(paths, recursive): if recursive: return list(itertools.chain.from_iterable([list(alliter(pathlib.Path(p))) for p in paths])) else: return [pathlib.Path(p) for p in paths] BASE_PATH = [r'sigma\rules'] path_list = get_inputs(BASE_PATH, True) rules_map = {} for sigmafile in get_inputs(BASE_PATH, True): f = sigmafile.open(encoding='utf-8') parser = SigmaCollectionParser(f) rule = next(iter(parser)) rules_map[rule['title']] = rule
Menurunkan aturan yang sama, gambar berikut muncul:

Sebagai bagian dari daftar aturan yang unik, kami memperoleh distribusi berikut:
Menurut jenis sumber acara:Statistik yang sedikit lebih besar
- Windows ~ 80%
- Sysmon ~ 53%
- Proxy ~ 8%
- Linux ~ 4%
Pada dasarnya, konten saat ini berfokus pada sistem Windows dan Sysmon, khususnya, aturan untuk sisa sistem ada beberapa.
Dengan ketersediaan konten:Ternyata pengembang aturan Sigma ditandai sebagai stabil kurang dari 20% dari semua aturan yang ada.
Untuk meringkas
Dalam sumber yang tersedia untuk umum ada sejumlah besar aturan. Mereka secara teratur diperbarui, dan aturan untuk mendeteksi indikator, dan kadang-kadang bahkan teknik perusahaan APT paling terkenal, dengan cepat muncul.
Ada banyak batasan untuk menerapkan aturan dalam kehidupan nyata:
- Ada banyak aturan untuk Microsoft Sysmon, yang jarang digunakan di perusahaan.
- Ada banyak aturan yang benar-benar melakukan pemeriksaan IoC (hash, alamat IP, URL, Agen Pengguna). Aturan seperti itu dengan cepat menjadi usang, dan ada mekanisme yang lebih efektif untuk menemukan IoC daripada aturan.
- Banyak konten eksperimental, masing-masing, persyaratan tambahan dikenakan pengujian berkualitas tinggi sebelum commissioning.
Di Infosecurity, kami menggunakan konten aturan Sigma sebagai sumber pengetahuan tambahan untuk deteksi insiden yang lebih efektif. Jika kami menemukan sesuatu yang menarik, kami sudah akan mengimplementasikannya dalam kerangka aturan korelasi kami, yang memperhitungkan kernel tempat aturan itu bekerja (Apache Spark) dan spesifikasi infrastruktur serta sarana perlindungan yang kami gunakan.