Microsoft WEF yapılandırması ve Logsign Siem ile entegrasyonu

Merhaba bu yazımızda test ortamımızda bulunan bir Windows 10 client’ın event loglarını Microsoft’un WEF yapılandırmasını kullanarak önce WEF sunucumuza göndereceğiz ardından WEF sunucumuz üzerinden NXLog ile Logsign Siem sunucumuza göndereceğiz.

WEF bize ne sağlaycak?
– WEF ile yapımızda bulunan makinelerin loglarını bu makinelere ajan kurma gereksinimi duymadan bu makinelerin loglarını sadece bir group policy aracılığı ile merkezi bir noktaya yönlendirebileceğiz (WEF sunucu) ve siem üzerinde tanımlı tek kaynak üzerinden tüm bu makinelerin loglarına ulaşabileceğiz.

Öncelikle WEF sunucumuza bağlanıyoruz ve Event Viewer’ı açıyoruz. Subscription kısmına tıkladığımız zaman bize Windows Event Collector servisinin başlatılacağını ve enable edileceğini söyleyen bir uyarıyla karşılaşıyoruz ve evet diyoruz.

Ardından Windows Remote Management servisini başlatıyoruz. Bu işlemi servisler aracı üzerinden de yapabiliriz. Ben Cli’dan yapmayı tercih ettim o yüzden şu komuyu çalıştırıyorum.

winrm quickconfig -quiet

Servisin zaten çalıştığını görüyorum.
Bu servisin startup type’ının Automatic olduğundan emin oluyorum.

Ardından wevtutil ile kb cinsinden client loglarımızın birikeceği Forwarded Events kısmının maksimum log limitini artırıyorum. Bu örnekte yaklaşık 1 GB yapmış olduk.  Bu işlem fotoğrafta görülen Max Log Size kısmından da yapılabilir. Gireceğimiz değer kb cinsinden 64’ün katları olmalıdır. Eğer değilse Windows bu değeri sizin için yuvarlayacaktır.

wevtutil sl forwardedevents /ms:1000000000

Eğer Windows Server 2016 veya 2019 kullanıyorsanız Windows Remote Management için varolan ACL’leri değiştirme gerekliliği vardır. Bu işlem aşağıdaki komutlar ile yapılır.

netsh http delete urlacl url=http://+:5985/wsman/
netsh http add urlacl url=http://+:5985/wsman/ sddl=D:(A;;GX;;;S-1-5-80-569256582-2953403351-2909559716-1301513147-412116970)(A;;GX;;;S-1-5-80-4059739203-877974739-1245631912-527174227-2996563517)
netsh http delete urlacl url=https://+:5986/wsman/
netsh http add urlacl url=https://+:5986/wsman/ sddl=D:(A;;GX;;;S-1-5-80-569256582-2953403351-2909559716-1301513147-412116970)(A;;GX;;;S-1-5-80-4059739203-877974739-1245631912-527174227-2996563517)

Artık clientlerimiz için bir subscription oluşturabiliriz.

Event Viewer üzerinde sağ kısımda bulunan Create Subscription kısmına tıklıyoruz. Açılan pencerede Source Computer Initiated kısmına tıkladıktan sonra Select Computer Groups butonuna tıklayıp eklemek istediğimiz makineleri seçiyoruz.

Test ortamında tek bir Windows 10 makine ekleyeceğim için bu makineyi seçiyorum.

Ardından hangi log kategorilerini toplayacağımı belirtmek için Select Events kısmını seçiyorum.
Ben bu örnek için Application, System, Security, Setup, Powershell ve Sysmon’u seçtim.

Bu sayfada yaptığımız işlemleri kaydetmeden önce Advanced butonuna tıklıyoruz. Buradaki menüden logların bize gönderilme önceliğini optimize edebiliyoruz. Logların gönderimine öncelik verilmesi için Minimize Latency seçeneğini seçiyoruz. İletim zaten kerberos üzerinden yapıldığı için kriptolu gerçekleştiğinden ekstra bir şifrelemeye gerek duymuyoruz ve bu sebeple protokolü HTTP olarak bırakıyoruz.

WEF sunucumuz artık tanımladığımız makineden gelen logları almaya hazır vaziyette.
Client tarafında yapılması gerekli ayarları group policy üzerinden yapacağız. Bu sebeple domain controller’da oturum açıyoruz.

Group policy management console’u açtıktan sonra yeni bir GPO oluşturuyoruz. Bu örnek için adına WEF-POLICY dedim ve loglarını almak istediğim makine bu OU altında bulunduğu için CLIENTS isimli OU’ya bağladım.
Bu policy’yi düzenleyelim

İlk olarak Client makinelerde Windows Event Forwarder servisinin Event Logları okuyabilmesi için Network Service hesabını Event Log Readers grubuna üye yapıyoruz. Bunun için Computer Configuration > Policies > Windows Settings > Security Settings > Restricted Group altında NT AUTHORITY\Network Service hesabını Event Log Readers grubunun üyesi yapıyoruz.

Ardından client makinelerinin restart olması durumunda Windows Remote Management servisinin otomatik başlamasını sağlamak için Computer Configuration > Policies > Windows Settings > Security Settings > System Services > Windows Remote Management kısmını aşağıdaki fotoğrafta görüldüğü gibi ayarlıyoruz.

Aşağıdaki ayarları mevcut GPO’muza sırasıyla uyguluyoruz.

Burada collector rolündeki makinemize gönderilecek EPS miktarını belirtiyoruz. Ben bu örnekte 5000 olarak belirledim.

Computer Configuration > Policies > Administrative Templates > Windows Components > Event Forwarding >  Configure forwarder resource usage = 5000

Burada collector makinemizi belirtiyoruz. Bu örnekte makine adımız SERVER-1.okar.local.

Computer Configuration > Policies > Administrative Templates > Windows Components > Event Forwarding >  Configure target Subscription Manager = Server=http://SERVER-1.okar.local:5985/wsman/SubscriptionManager/WEC,Refresh=60

Bu kısımda ilgili grupların log access izinleri için ACL ayarlarını belirtiyoruz.

Computer Configuration > Policies > Administrative Templates > Windows Components > Event Log Service > Security > Configure log access > O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;S-1-5-20)


******************************

Windows 10 makinemizde oturum açabiliriz. gpresult ile policy’nin uygulanıp uygulanmadığını kontrol edebiliriz.

Applied Group Policy Object altında bir önceki adımda DC üzerinde oluşturduğumuz WEF-POLICY objemizin henüz okunmadığını görüyoruz.
Bu yüzden gpupdate /force ile yeni policy’mizi çekiyoruz.

WEF-POLICY objemizin client tarafından çekildiğini görüyoruz.
Şimdi WEF sunucuda bulunan subscriptionları kontol edelim.
Event Viewer kısmında bulunan Subscriptions içinde Source Computers kısmında 1 rakamını görüyoruz. Bu şu anda bize aktif olarak log gönderen 1 maknenin olduğunu gösteriyor.


Fowrarded Events sekmesini kontrol edersek bu kısmın CLIENT-1 makinesinden gelen loglarla dolmaya başladığını görebiliriz.

Şimdi bu makinenin loglarını Logsign Siem’imize yönlendirelim.
Bu işlem için NXLog yapılandırma dosyasına aşağıdaki eklemeyi yapmak gerekiyor. (NXLog kurulum ve yapılandırması bu yazının kapsamı dışında bulunduğu için ayrıntısına girilmeyecektir).

<Select Path="ForwardedEvents">*</Select>\

Yukarıda bulunan satır varolan yapılandırmaya eklendikten sonra artık Forwarded Events altında bulunan loglar da siem’e gönderilmeye başlanacaktır.
Şimdi Logsign tarafında EventSource.HostName filtresini kullanarak CLIENT-1.okar.local’den gelen logları filtreleyelim.

Fotoğrafta görüldüğü gibi CLIENT-1’in logları WEF makinemiz üzerinden siem’imize akmaya başladı.
CLIENT-1 üzerinde Test User kullanıcısı ile birkaç hatalı login hareketi yapıp inceleyelim.

Aşağıda CLIENT-1 üzerinde yaptığımız hatalı login hareketlerini görebiliriz.

Manuel olarak bir makine daha ekleyelim ve WEF üzerindeki Event Viewer’ın nasıl davrandığını gözleyelim.

CLIENT-2 eklendikten sonra WEF sunucuda Event Viewer altında bulunan Computers kolununda artık CLIENT-1’in yanında CLIENT-2’yi de görmeye başlıyoruz.

Siem tarafından da kontrol ederek log akışının CLIENT-2 için de varolduğunu görebiliyoruz.