Wazuh Dashboard üzerinde agent’lar için oluşturduğumuz grup adıyla aynı isme sahip klasörü, Wazuh Server üzerinde aşağıdaki dizin altında buluyoruz:
/var/ossec/etc/shared/test/
Buradaki
testklasörü, Dashboard’da oluşturduğunuz agent grubunun adıdır.
Bu dizin içerisine, kontrol etmek istediğimiz servise ait bir .cmd uzantılı dosya oluşturuyoruz. Örneğin ben bu makalede Windows EventLog servisini kontrol edeceğim.
Oluşturduğumuz dosyanın içeriği şu şekilde olmalıdır:
@ECHO OFF ECHO. powershell.exe -executionpolicy ByPass -Command "get-service -Name EventLog | ConvertTo-Json -Depth 1 -Compress" :Exit
Bu örnekte EventLog servisi kontrol ettim. Siz izlemek istediğiniz farklı bir servisi takip etmek istiyorsanız, sadece servis adını değiştirmeniz yeterlidir.
Agent Konfigürasyonunun Düzenlenmesi
CMD dosyasını oluşturduktan sonra tekrar Wazuh Dashboard’a dönüyoruz.
İlgili agent grubunu seçerek agent.conf dosyasını düzenliyoruz.
Dosya içeriği aşağıdaki gibi olmalıdır:
<agent_config>
<!-- Shared agent configuration here -->
<wodle name="command">
<disabled>no</disabled>
<tag>tasklist</tag>
<command>"C:\Program Files (x86)\ossec-agent\shared\eventlog.cmd"</command>
<interval>5m</interval>
<run_on_start>yes</run_on_start>
<timeout>10</timeout>
</wodle>
</agent_config>
Burada dikkat edilmesi gereken en önemli nokta, CMD dosyasının yoludur.
Wazuh Server üzerindeki shared altındaki grup ismiyle oluşan dizine eklediğiniz dosyalar, otomatik olarak o gruba bağlı tüm agent’ların kendi shared klasörleri altına kopyalanır.
Bu ayarları yaptıktan sonra decoder ve kural oluşturmamız gerekiyor.
Custom Decoder Oluşturulması
Komut çıktısı olarak aldığımız JSON verilerini Wazuh’un doğru şekilde anlamlandırması ve içerisindeki değişkenleri (Status, ServiceName vb.) ayıklayabilmesi için öncelikle bir decoder tanımlamamız gerekir.
Wazuh Server üzerinde /var/ossec/etc/decoders/local_decoder.xml dosyasını düzenleyerek veya bu dizin altında yeni bir XML dosyası oluşturarak aşağıdaki tanımlamayı ekliyoruz:
<decoder name="windows_command_tasklist"> <prematch type="pcre2">"ServiceName":"[^"]+"</prematch> </decoder> <decoder name="windows_command_tasklist_json"> <parent>windows_command_tasklist</parent> <plugin_decoder>JSON_Decoder</plugin_decoder> </decoder>
Alarm Kurallarının (Rules) Eklenmesi
Decoder tarafında veriyi ayıkladıktan sonra, servisin çalışıp çalışmama durumuna göre alarm üretecek kuralları yazmamız gerekiyor. Bu işlem için /var/ossec/etc/rules/local_rules.xml dosyasını açıyor ve aşağıdaki kural bloğunu dahil ediyoruz:
<group name="windows_tasklist_alerts,wodle,">
<!-- Ana Kural: Wodle komut çıktısını yakalar -->
<rule id="231232" level="0">
<match>"ServiceName":"EventLog"</match>
<description>Windows command tasklist logu sisteme giriş yaptı.</description>
</rule>
<!-- Çalışma Durumu (Level 3) -->
<rule id="231234" level="3">
<if_sid>231232</if_sid>
<regex>"Status":4</regex>
<description>Bilgi: Windows Olay Gunlugu (EventLog) servisi saglikli sekilde calisiyor.</description>
</rule>
<!-- Kritik Alarm Durumu (Status 4 Değilse - Level 7) -->
<rule id="231233" level="7">
<if_sid>231232</if_sid>
<regex negate="yes">"Status":4</regex>
<description>Kritik Uyari: Windows Olay Gunlugu (EventLog) servisi durdu veya calismiyor!</description>
</rule>
</group>
Yapılan tüm bu konfigürasyonların (Decoder ve Rule) devreye girebilmesi için Wazuh Manager servisinin yeniden başlatılması gerekmektedir:
systemctl restart wazuh-manager
Artık belirlediğiniz zaman aralığına göre (örneğin 5 dakikada bir) Windows EventLog servisinin durumu kontrol edilecek, servis durduğunda (Status değeri 4’ten farklı bir değer aldığında) Wazuh Dashboard ekranınızda anlık olarak Level 7 kritik alarm üreyecektir.
Dipnot
Wazuh Server üzerinde /var/ossec/etc/shared/grup_adı dizini altına eklediğiniz dosyalar, yalnızca ilgili gruba ait agent’larda çalışır. Bu yapı sayesinde merkezi ve düzenli bir servis takibi yapabilirsiniz.
Bu yöntemle Wazuh kullanarak Windows servislerini düzenli aralıklarla izleyebilir, servis durumu değişikliklerini merkezi olarak takip edebilirsiniz.
Umarım faydalı olmuştur 🚀