False positive'ler ve bir kuralı daraltmak
False positive, kuralın bulmak için yazılmadığı bir etkinlik üzerine üretilen alarmdır. Her biri bir analistin zamanını alır; çok sayıda üreten bir kural kapatılır ya da görmezden gelinir, gerçek tespitler de böyle kaçırılır. Bu yüzden her kural için "saldırıyı yakalıyor mu" sorusundan sonraki soru şudur: "normal bir sistemde ne sıklıkla tetikleniyor?"
Bunu cevaplamanın tek yolu kuralı, etkinliğin yaşanmadığı sistemlerin logları üzerinde çalıştırmaktır. Bu sitedeki challenge'lar bunu temiz bir Windows 10 istemcisinin loglarıyla yapar. Bu dersteki olaylar registry yazmalarıdır (Sysmon Event ID 13, category: registry_set) ve alanları şunlardır:
TargetObject: yazılan registry değerinin tam yolu.Details: yazılan veri.Image: yazan program.
False positive'ler nereden gelir
- Fazla kısa metin.
TargetObject|contains: '\Run',\Run\ile eşleşir; ama\RunOnce\,\RuntimeVersionve\RunLogonScriptSyncile de. Anahtarı yolda çevreleyen ayraçları eklemek (\CurrentVersion\Run\) hiçbir şey kaybetmeden bunu düzeltir. - Etkinlik normalde de yapılıyor. Kurulan programlar kendilerini Run anahtarına ekler; anahtarın amacı budur. Yalnızca anahtara bakan bir kural her kurulumda tetiklenir. Bu, daha kısa bir anahtar listesiyle değil, neyin yazıldığı ya da kimin yazdığı hakkında ek koşullarla çözülür.
- Fazla geniş filtreler. Filtre normal durumları çıkarır; çıkardığı her şey, aynısını bir saldırgan yaptığında da görünmez olur (4. ders).
İş sırası
1. Seçimin etkinliği tam tarif etmesini sağlayın: doğru alan, yolun tam öğesi, doğru modifier. 2. Kuralı normal loglar üzerinde çalıştırın ve her false positive'i okuyun. 3. Saldırıyı normal durumlardan ayıran bir koşul ekleyin (ne çalışacak, nereden); ancak bundan sonra, adı belli yazılım için tam yoluyla bir filtre ekleyin. 4. Geriye kalanı falsepositives alanına yazın; alarmı ele alan kişi bilsin.
Alıştırmada 1. adım yeterli. Run anahtarı challenge'ı 2. ve 3. adımlar.