Sigma Kural Yapısı

Huseyin Rencber
Dec 21, 2019 · 4 min read

Uzun aradan sonra tekrar yazmaya devam :) Bu yazımda sigma kural yapısı ve splunk, qradar gibi siem sistemlerinde kullanmanız için nasıl dönüştürebileceğinizden bahsedeceğim.

Sigma için Siem teknolojilerindeki log formatlarınıza dönüştürürken arada köprü olacak bir imza formatıdır diyebiliriz. Sigma, ağ trafiğini ve dosyaları incelerken kullandığımız ortak araçlar gibi logları incelerken de bir altyapı oluşturması için Florian Roth & Thomas Patzke tarafından yazılmıştır.

Sigma log dosyaları için oluşturulan ortak formattır, Snort’un ağ trafiği ve YARA’nın dosyalar için kullanıldığı gibi. Yara nedir derseniz kısaca şuraya, snort için de önceki yazıma bakabilirsiniz.

Ağ trafiğini incelerken ;

Tam PCAP, Metadata, IDS, NetFlow
Tespit etme:
• Tehdit verileri eşleşmesi
• Protokol / metadata anormallik tespiti
• IDS imzaları ( Snort-Suricata) kulla

Dosya analizi yaparken ;

Dosya sınıflandırma, analizi ve simülasyon
Tespit etme:
• AV İmzaları / Machine Learning tabanlı algılama
• Statik & Dinamik Analiz
• YARA imzaları kullanırız.

Log analizi yaparken siemleri ve sigmayı kullanabiliriz. Sigma kural biçimi çok esnektir, yazması kolaydır ve hemen her türlü log turune uygulanabilir. Splunk, Qradar, Elastic vb…

Kural Formatı

Düz metin YAML dosyasıdır. Zorunlu alanlar ve isteğe bağlı alanlar olarak ikiye ayırabiliriz, toplam 4 ana bölumden oluşur.

  • Metadata ( title, status, description, references, tags ) den oluşur.
  • Log Source ( category, type, brand, product, service ..)
  • Detection ( search identifier , list of Selectors )
  • Condition ( Seçici eşleşmesi için mantık — Selectors match )

Title ve Log source örneği, kırmızı alanlar asıl gerekli olanlar. Title alanında durumunu, tanımını, referansları belirtebilirsiniz. Log source alanında urun( windows, symantec ), kategorisi (proxy, firewall) , servisi (SSH, powershell ) vb tanımları yapabilirsiniz.

Title & Log source

Condition alanında kural eşleşmesi için mantık belirtilir, Detection alanında ilgilenilen öğeleri içeren nesneler yazılır. Loglardaki search identifier temsil eden bir dizi arama kimliğidir.

Detection & Condition

Title

Kuralın tespit etmesi gerekenleri içermesi gereken kural için kısa bir başlık (en fazla 256 karakter).

Sigma kuralları id özelliğinde global olarak benzersiz bir tanımlayıcı ile tanımlanmalıdır. Bu amaçla rastgele oluşturulan UUID’ler (sürüm 4) önerilir, ancak zorunlu değildir. Bunun bir örneği:

id: 929a690e-bef0-4204-a928-ef5e620d6fcc

Status : Kuralın durumunu bildirir:

Description : Kuralın ve tespit edilebilecek kötü amaçlı etkinliğin kısa bir açıklaması (maks. 65,535 karakter)

License : SPDX Kimliği spesifikasyonuna göre kuralın lisansı.

Author: Kuralın yazarı

References : Kuralın türetildiği kaynak

Log Source

Bu bölümde, detection uygulanacağı logları açıklanmaktadır. Log kaynağını, platformu, uygulamayı ve algılamada gerekli olan türü açıklar.

Category: Güvenlik duvarları veya web sunucusu günlükleri gibi belirli bir ürün grubu tarafından yazılan tüm günlük dosyalarını seçmek için kullanılır. Otomatik dönüşüm, anahtar kelimeyi birden çok endeks için seçici olarak kullanır.

Product : Belirli bir ürünün tüm günlük çıktılarını seçmek için kullanılır.

Service :Product kısmının alt alanlarını belirtmek için kullanılır.

  • category — firewall, web, antivirus
  • product — windows, apache, check point fw1
  • service — sshd, applocker

Detection

Search-Identifier , iki farklı veri yapısından oluşabilen bir tanım — listeler ve haritalar.

List :Listeler, tam günlük iletisine uygulanan ve mantıksal ‘VEYA’ ile bağlantılı dizeler içerir.

detection:
keywords:
-'rm *bash_history'
-'echo "" > *bash_history'

Maps: Haritalar, logda bir alan ve değer bir dize veya tamsayı değeri olduğu anahtar / değer çiftlerinden oluşur. Harita listeleri mantıksal bir ‘VEYA’ ile birleştirilir. Bir haritanın tüm öğeleri mantıklı bir ‘VE’ ile birleştirilir.

detection:
selection:
- record_type: 'TXT'
answer:
-'*IEX*'
-'*Invoke-Expression*'
condition: selection

Timeframe:Gün, saat, dakika, saniye için tipik kısaltmaları kullanan göreli bir zaman dilimi tanımı.

Condition

Alanında kural eşleşmesi için mantık belirtilir, and or pipe count max avg vb

condition: selection
-selection | count(dst_port) by src_ip > 10
-selection | count(dst_ip) by src_ip > 10

Sigma kuralının nasıl yazılacağına dair aşağıdaki bağlantıdan erişim sağlayabilirsiniz.

Uncoder.IO, SOC Analistlerine, Tehdit Avcılarına ve SIEM Mühendislerine yardımcı olmak için SIEM e özel kaydedilmiş aramalar, filtreler, sorgular, API istekleri, korelasyon ve Sigma kurallarının online çevirmenizi sağlayan bir araçtır. Aşağıda örnek olarak seçtiğim sigma kuralını dönüştürelim.

Sol alanda sigma kuralını yazdıktan sonra sağ alanda Qradar, Splunk veya Arcsight tercih ederek istediğimiz log turune çeviriyoruz.

Aşağıdaki gibi log turlerine dönüştürebilirsiniz.

Dikkat edilmesi gereken noktalar, log source type larınızı seçmeniz ayrıca payload olarak aratacağından performans kriterini değerlendirmeniz gerekecektir.

Referanslar:

https://www.sans.org/cyber-security-summit/archives/file/summit-archive-1544043890.pdf

Huseyin Rencber

Written by

Cyber Security Researcher

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade