Atribut dengan informasi meta
Judul (atribut judul)
Judul secara singkat menggambarkan esensi aturan tersebut. Bidang teks ini memiliki panjang hingga 256 karakter. Di sini Anda harus memberikan deskripsi terpendek dan paling luas. Ikuti pedoman ini:
- Jangan gunakan konstruksi seperti "Mendeteksi ..." sebagai tajuk Anda. Dan tanpa ini, jelas bahwa aturan tersebut mendeteksi sesuatu.
- Gunakan judul yang luas tidak lebih dari 50 karakter.
- Tuliskan penjelasan dan komentar penting di kolom deskripsi (akan kami pertimbangkan lebih lanjut).
Deskripsi mendetail dan penjelasan tambahan untuk aturan (atribut deskripsi)
Jika judul berisi penjelasan singkat tentang aturan untuk pemahaman umum tentang tujuannya, maka di bidang deskripsi Anda dapat menentukan semua nuansa dan fitur yang dimasukkan penulis ke dalam aturan ini. Ini juga menjelaskan secara singkat serangan yang diusulkan untuk dideteksi menggunakan aturan ini. Panjang maksimum bidang ini adalah 65.535 karakter.
Pengenal unik aturan dan pengidentifikasi aturan terkait (id, relative)
Karena nilai spesifik dari atribut judul dan deskripsi dapat berubah-ubah, termasuk yang sama untuk dua aturan berbeda (jangan pernah lakukan itu), mereka tidak cocok untuk mengidentifikasi aturan secara unik. Diperlukan pengenal yang lebih formal dan unik. Pengenal unik universal (UUID) digunakan di sebagian besar produk untuk mengatasi masalah ini. Penulis Sigma menyarankan pengembang aturan untuk mengikuti jalur yang sama, namun, skema pembuatan pengenal apa pun dapat digunakan untuk aturan privat. Di repositori publik, UUID yang disebutkan di atas dipilih sebagai skema untuk membuat pengenal. Kami mengikuti pendekatan yang sama dalam aturan contoh di bagian pertama artikel. Jika Anda ingin menerbitkan aturan Anda di masa depan atau mengirim permintaan untuk menambahkannya ke repositori resmi,maka kami menyarankan Anda untuk mengikuti skema yang sama untuk membuat pengenal aturan.
Pengenal unik dapat dibuat dengan berbagai cara, di Windows cara termudah adalah dengan menjalankan kode PowerShell berikut:
PS C:\> "id: $(New-Guid)"
id: b2ddd389-f676-4ac4-845a-e00781a48e5f
Di sistem operasi berbasis kernel Linux, Anda dapat menggunakan utilitas uuidgen:
$ echo “id: `uuidgen`”
id: b2ddd389-f676-4ac4-845a-e00781a48e5f
Jika Anda membuat perubahan signifikan pada aturan, pengenalnya harus diubah. Situasi untuk membuat pengenal baru:
- mengubah logika aturan;
- warisan aturan dari yang sudah ada sambil mempertahankan yang asli (ini juga berlaku untuk situasi perbaikan aturan);
- aturan penggabungan.
Untuk kasus pewarisan dan penggabungan aturan, ada pengenal khusus yang terkait dengan empat kemungkinan nilai tipe (atribut tipe).
Mari pertimbangkan situasi hipotetis di mana kami mungkin merasa berguna untuk menggunakan pengenal terkait. Untuk kejelasan, alih-alih pengidentifikasi panjang dalam format UUID, kami hanya akan menulis X, Y, Z.
Dalam kasus pertama, aturan baru (id: X) diturunkan dari yang sudah ada (id: Y). Ini bisa terjadi jika kita telah meningkatkan logika kerja di aturan baru, tetapi karena alasan tertentu kami ingin mempertahankan aturan lama. Jadi, aturan kami memiliki aturan induk yang disimpan dan dapat digunakan di masa mendatang:
Kasus kedua mirip dengan yang pertama kecuali satu fakta: aturan lama tidak dipertahankan. Artinya, kami menulis ulang aturan secara radikal, dan itu perlu untuk menetapkan pengenal baru, dan yang lama sudah usang (usang) dan tidak akan digunakan lagi. Jadi, kami memiliki aturan (id: Y) yang kami tulis ulang, dan kami memutuskan bahwa kami tidak lagi membutuhkannya. Aturan baru menerima pengenal (id: X). Dalam aturan Sigma, situasi serupa akan terlihat seperti ini:
Dalam kasus ketiga, pertimbangkan situasi di mana aturan baru muncul sebagai hasil dari penggabungan dua atau lebih aturan yang ada. Aturan baru (id: X) adalah hasil dari penggabungan dua aturan (id: Y, Z). Penting untuk diperhatikan bahwa kedua aturan induk yang terlibat dalam penggabungan akan dipertahankan dan dapat digunakan lebih lanjut. Dalam aturan Sigma, situasi serupa mungkin terlihat seperti ini:
Meskipun urutan aturan tidak ditentukan selama penggabungan, dalam komentar kami telah menomori mereka untuk kejelasan.
Jenis keempat adalah ganti nama. Seperti namanya, jenis asosiasi antara pengenal ini diterapkan saat mengganti nama aturan lama. Nyatanya, jenis ini tidak digunakan dalam praktiknya. Sebagai contoh penggunaan, penulis mengutip kasus perubahan skema untuk membuat pengidentifikasi (kami ingat bahwa UUID bukan satu-satunya skema penamaan yang mungkin).
Status siap aturan (atribut status)
Menurut spesifikasi, aturan dapat berupa salah satu dari tiga kondisi:
- stabil - aturan dapat digunakan dalam infrastruktur nyata untuk mendeteksi serangan, tidak diperlukan modifikasi;
- uji - aturannya hampir stabil, tetapi diperlukan sedikit penyesuaian;
- eksperimental - aturan semacam itu dapat menghasilkan positif palsu dalam jumlah besar, tetapi pada saat yang sama dapat mengungkapkan peristiwa yang menarik.
Biasanya, sebelum menjalankan aturan pada infrastruktur nyata, aturan tersebut berstatus eksperimental, karena belum diketahui secara pasti seberapa sering aturan tersebut akan menghasilkan kesalahan. Selanjutnya, setelah beberapa bulan pengujian, jika aturan ditulis dengan baik dan tidak menghasilkan kesalahan (atau ada yang dapat diabaikan), itu ditransfer ke kategori stabil. Jika tidak, koreksi dilakukan dan diperiksa lagi. Tidak ada aturan dengan status pengujian di repositori Sigma resmi.
Lisensi di mana aturan didistribusikan (atribut lisensi)
Lisensi di mana aturan didistribusikan. Bidang ini berasal dari dunia perangkat lunak bebas. Parameter ini jarang ditentukan, tetapi jika ditentukan, harus sesuai dengan spesifikasi ID SPDX.
Pembuat aturan (atribut penulis)
Bidang ini mencantumkan semua penulis aturan. Bentuk yang dianggap baik untuk menunjukkan tidak hanya orang yang menulis aturan itu sendiri, tetapi juga penulis ide asli pendeteksian.
Tautan ke studi yang membantu mengembangkan aturan (atribut referensi)
Saat menulis aturan Sigma, biasanya menyertakan tautan ke artikel, tweet, dan penelitian asli yang membantu atau menginspirasi pembuatan aturan. Selain untuk mengekspresikan rasa hormat terhadap karya orang lain, tautan semacam itu nantinya membantu untuk memahami cara kerja aturan tersebut.
Bidang peristiwa berguna untuk analitik untuk menunjukkan ketika aturan dipicu (atribut bidang)
Karena pembuat aturan memiliki pemahaman mendalam tentang algoritme serangan dan peristiwa yang dihasilkan selama pelaksanaannya, ia dapat memilih daftar bidang dari peristiwa yang akan membantu operator SOC atau karyawan lain dari tim keamanan informasi untuk memahami insiden tersebut.
Kasus positif palsu dari aturan (atribut falsepositives)
Bidang falsepositives agak tidak biasa untuk aturan deteksi. Ini tidak memengaruhi jalannya validasi acara dengan cara apa pun, tetapi melakukan dua hal yang berguna:
- Bantu pengguna menentukan apakah pemicu aturan yang diberikan adalah kesalahan.
- Ingatkan pengembang aturan sekali lagi bahwa aturannya dapat dipicu secara tidak benar. Pemikiran seperti itu dapat membantu pengembang menulis aturan yang lebih tepat.
Berbagai tag dan tag (atribut tag)
Biasanya bidang ini digunakan untuk tag MITRE ATT & CK dan CAR. Kami sangat menyarankan agar Anda segera mengklasifikasikan aturan Anda, karena markup tersebut memungkinkan Anda untuk mengintegrasikan aturan Sigma dengan proyek keamanan informasi lainnya. Namun, format tidak membatasi pembuat aturan hanya untuk label seperti itu, Anda dapat meletakkannya.
Kumpulan aturan
Menurut standar YAML, satu file (dalam terminologinya, stream) dapat berisi beberapa dokumen YAML. Ini dicapai berkat tag dokumen YAML - tiga tanda hubung (“---"). Untuk format Sigma, dokumen ini dapat berupa aturan Sigma independen atau dokumen tindakan.
Dengan kasus pertama, semuanya sederhana: satu file berisi aturan Sigma lengkap yang dipisahkan satu sama lain oleh label dokumen YAML (contoh rules / proxy / proxy_ursnif_malware.yml ) Kasus
kedua lebih rumit: Dokumen YAML diperlakukan sebagai dokumen tindakan jika atribut tindakan tingkat atas memiliki salah satu dari tiga nilai berikut:
- global — , YAML- . action- . : , Sigma- ;
- reset — , action-;
- repeat — repeat .
Catatan : atribut tindakan dapat muncul di manapun dalam aturan.
Kasus penggunaan yang paling umum untuk kumpulan aturan adalah untuk menentukan beberapa aturan Sigma untuk kejadian serupa, seperti Windows Security EventID 4688 dan Sysmon EventID 1. Kedua kejadian muncul sebagai hasil dari pembuatan proses, mereka hanya memiliki sumber yang berbeda. Kumpulan aturan Sigma untuk skenario tertentu dapat berisi tiga dokumen tindakan:
- Dokumen tindakan global yang mendefinisikan bidang metadata umum dan indikator deteksi.
- Aturan yang menentukan sumber Log Peristiwa Keamanan Windows dan peristiwa EventID = 4688.
- Aturan yang mendefinisikan sumber Windows Sysmon Event Log dan event EventID = 1.
Solusi alternatifnya bisa jadi:
- Dokumen tindakan global yang mendefinisikan bidang metadata umum.
- Windows Security Event Log ( EventID=4688) .
- Action- repeat, logsource EventID , . 2.
action-
Di bagian ini, kami akan menjelaskan secara rinci bagaimana Sigma menghasilkan aturan ringkasan berdasarkan nilai atribut tindakan. Dokumen YAML yang berisi atribut tindakan dengan nilai global dianggap sebagai dokumen global dalam file ini, dan kolomnya akan ditambahkan ke semua dokumen lainnya.
Catatan : jika dokumen saat ini berisi atribut tindakan dengan nilai reset, maka bidang dokumen global tidak akan ditambahkan ke dalamnya.
Logika untuk bekerja dengan dokumen global adalah sebagai berikut: segera setelah parser menemukan dokumen global (dokumen yang berisi atribut tindakan dengan nilai global), ia menambahkan bidangnya ke buffer khusus dan melanjutkan ke dokumen berikutnya. Sebut saja buffer khusus ini GLOBALYAML, ini akan membantu di masa mendatang untuk merujuknya dalam diagram.
Penting: Karena batas dokumen ditentukan oleh tanda "---", penting untuk menempatkan tanda ini dengan benar di file.
Pada contoh di bawah ini, dokumen YAML pertama berisi atribut tindakan dengan nilai global. Batas-batas dokumen ini meluas ke tanda dokumen pertama. Jadi, seluruh dokumen pertama ditulis ke buffer global. Bidang penyangga ini kemudian ditambahkan ke setiap dokumen berikutnya. Hasilnya, kami mendapatkan dua aturan pada keluaran. Skema 1. Memproses aturan sederhana dengan penugasan yang benar dari label dokumen YAML Tetapi jika Anda menghapus atau melupakan label pertama, maka semua field dari YAML DOCUMENT 2 akan dimasukkan ke dalam dokumen global. Akibatnya, kita hanya mendapatkan satu aturan dengan kumpulan pengenal pencarian yang salah di keluaran. Oleh karena itu, sangat penting untuk memberi label pada dokumen YAML dengan benar dalam aturan gabungan tersebut.
Skema 2. Pemrosesan aturan sebelumnya - jika Anda lupa meletakkan label pertama dari dokumen YAML
Perlu dicatat bahwa dokumen global tidak selalu datang di awal. Jika Anda melihat dua skema sebelumnya, maka tidak selalu YAML DOKUMEN 1. Selain itu, tidak harus dalam bentuk tunggal. Diagram berikut menggambarkan hal ini dengan jelas. Skema 3. Memproses aturan yang berisi berbagai opsi untuk menentukan dokumen YAML global Jadi, kami telah mempertimbangkan masalah yang terkait dengan penempatan yang benar dari label dokumen YAML. Kami juga melihat bahwa Anda dapat menyetel dokumen YAML global dengan berbagai cara menggunakan atribut action dengan nilai global. Selanjutnya, mari kita lihat skema untuk mengubah aturan menggunakan dua nilai yang tersisa dari atribut tindakan - reset dan ulangi.
Skema 4. Memproses aturan yang berisi atribut tindakan dengan nilai reset dan pengulangan
Apa lagi yang perlu dikatakan tentang proyek Sigma
Sigma bukan hanya seperangkat aturan yang diformat yang kita bahas dalam seri ini.
Dalam publikasi kami, kami berfokus pada penjelasan format dan sintaks aturan. Tetapi aturannya hanya satu setengah dari proyek, yang kedua adalah backend yang digunakan oleh konverter sigmac. Biasanya, konverter ini dapat dianggap sebagai "adaptor" dengan input universal dan output tertentu. Kehadiran "adaptor" yang membuat format deskripsi universal sangat berguna. Dalam situasi ini, tidak masalah sistem pendukung mana yang Anda gunakan, Sigma memungkinkan Anda untuk mendeskripsikan ide dan algoritme pendeteksian, sementara satu atau beberapa backend untuk konverter sigmac bertanggung jawab atas sintaks spesifik sistem target dan pemetaan bidang.
Namun, jangan berasumsi bahwa dengan mendownload aturan dan mengubahnya menjadi sintaks dari sistem target yang diperlukan, Anda akan menyelesaikan semua masalah yang terkait dengan pengisian sistem Anda dengan keahlian. Kami akan membahas secara singkat mengapa Sigma bukan solusi out-of-the-box saat ini, dan mengapa perlu untuk memahami sintaks aturan.
Tantangan Sigma Saat Ini
Sigma adalah proyek yang berkembang secara aktif, dan seperti proyek yang sedang berkembang, Sigma memiliki tantangannya sendiri. Secara pribadi, saya melihatnya sebagai titik perkembangan dan area pertumbuhan. Nah, karena ini adalah proyek open source, penggabungan kekuatan dapat memberikan kontribusi yang signifikan untuk pengembangan bagian-bagian tertentu dari proyek tersebut. Saya akan membuat daftar apa yang saat ini saya rujuk ke panggilan utama kerangka kerja:
- . .
- , Windows- (. ). , .
- Wiki , . .
- experimental — , .
- .
- , .
Dari pengalaman saya sendiri, saya akan mengatakan bahwa ketika saya mengenal proyek Sigma dan berpartisipasi dalam OSCD, item pertama dalam daftar ternyata yang paling signifikan. Ternyata perbedaan sintaks di MaxPatrol SIEM dan di Sigma tidak berakhir hanya pada semantik kata kunci dan desain aturan korelasi. Beberapa ide kami tidak dapat dijelaskan dalam sintaks Sigma, karena pada tahap ini tidak ada kemungkinan korelasi peristiwa. Mekanisme korelasi memungkinkan Anda untuk mencari nilai umum bidang acara dan menghubungkan kejadian tersebut satu sama lain. Ini berguna ketika kita ingin membangun hubungan antar kejadian secara akurat. Misalnya, untuk melacak peristiwa dalam satu sesi pengguna. Untuk melakukan ini, Anda perlu mengikat peristiwa dengan nilai bidang LogonID atau yang setara.
Perlu dicatat bahwa deteksi titik atau deteksi berdasarkan peristiwa yang tidak terkait langsung dijelaskan dengan sangat sukses menggunakan Sigma.
Salah satu cara untuk membantu mengatasi masalah ini dan masalah lainnya adalah dengan secara aktif berpartisipasi dalam salah satu OSCD Sprint. Dan karena ada banyak tugas, setiap orang akan dapat menemukan apa yang menarik baginya.
Sprint baru segera hadir, bergabunglah dengan kami!
Kami mengucapkan terima kasih kepada penyelenggara sprint pertama atas penyelenggaraan acara yang berkualitas tinggi dan sikap penuh perhatian terhadap para peserta. Apa satu-satunya kartu pos yang dipersonalisasi yang diisi dengan tangan dan dikirim ke setiap peserta! Untuk bagian kami, kami berencana untuk terus berpartisipasi dalam sprint baru dan memberikan kontribusi yang layak ke repositori Sigma.
Setelah membaca seri artikel kami dan membiasakan diri dengan format aturan, Anda akan dapat menerapkan keahlian Anda untuk kepentingan seluruh komunitas keamanan informasi.
Pastikan untuk bergabung dengan sprint kedua. Berpartisipasilah secara individu dan kumpulkan tim, mari kita buat dunia lebih aman bersama!
Kontak Inisiatif OSCD:
Penulis : Anton Kutepov, spesialis dari departemen layanan ahli dan pengembangan Teknologi Positif (PT Expert Security Center)