İçeriğe geç

Event Viewer XML Filtering ile Log Analizi

Last updated on 22 Şubat 2019

Karşılaştığımız bir problemin kaynağını bulmak için herkesin ilk baktığı araçlardan biri Event Viewer oluyordur. Ama Event Viewer’ı açtığımızda bizi milyonlarca event karşılıyor ve biz bunlar arasından analiz yapıp problemin kaynağını bulmaya çalışıyoruz. Event Viewer GUI ile sunduğu filtreleme parametreleri (zaman aralığı, kaynak, ID vb.) çoğu zaman aradığımız veri log kaydının içeriğinde bulunduğu için yeterli olmuyor. İşte bu gibi durumlarda çözüm olarak Windows Vista/2008 ile gelen Custom View kullanabiliriz. Event Viewer üzerinden oluşturabildiğimiz Custom View’lar XML Filtering kullanmamızı sağlayarak sadece ihtiyacımız olan logları filtrelememizi sağlıyor.

Örneğin NTLM protokolünü kullanarak login olan bilgisayar ve kullanıcıları bulmak isteyelim, bunun için aşağıdaki şekilde bir Custom View yapabiliriz.

Custom View Oluşturulması

Event Viewer aracını açtıktan sonra sağ bölümde yer alan Actions Pane üzerinden Create Custom View seçiyoruz.

Resim-1

Karşımıza çıkan Create Custom View penceresinden XML sekmesini seçip altta bulunan Edit query manually işaretini seçip çıkan uyarıya Yes diyoruz.

Resim-2

Şimdi sıra geldi sorgumuzu yazmaya, örnek olarak sadece NTLM V1 protokolünü kullanarak oturum açmış kullanıcı ve bilgisayarlar ile ilgili logları filtreleyebiliriz. Bu XML sorgusunda Select etiketinin Path özelliği ile filtrelenecek Log Channel ismi veya log dosyasının yolu belirtilir. Sorgu ile Event ID’si 4624 olan ve Event Data LmPackageName alanı “NTLM V1” olan eventları filtrelemiş olduk. Select yerine Suppress etiketi ile sonuçtan hariç tutmak istediğimiz loglar için sorgu yazabiliriz.

<QueryList>
    <Query Id="0">
        <Select Path="Security">
        *[
          EventData[Data[@Name='LmPackageName']='NTLM V1']
          and
          System[(EventID = 4624)]
        ]
        </Select>
    </Query>
</QueryList>

Sorgularımızı standard and/or operatorlerini kullanarak bir adım ileriye götürebiliriz. LmPackageName gibi kullanabileceğimiz filtreleme seçeneklerini filtrelemek istediğimiz event’ı seçip Details sekmesinde XML View seçerek Event verisinin XML metadatasını görebiliriz.

Windows Event Log Xpath 1.0’ın altkümesini destekler. Fakat bazı sınırlamalar vardır. Standard operatörleri OR, AND, =, !=, <=, <, >=, >, ve parantez kullanımını destekler. Burada “<”, “>” karakterlerini yazmak için “&lt;”, “&gt;” HTML karakter karşılıklarını kullanırız. Bunun yanında Position, Band, Timediff fonksiyonlarını destekler, Starts-With ve Contains fonksiyonlarını desteklemez. Sorguyu filtrelemek istediğimiz veriyi tam olarak yazmamız gerekir, * karakterini kullanamayız, bu yüzden or operatorü ile birden fazla veri yazarak arayabiliriz. Örneğin “NTLM V1” ve “NTLM V2” her ikisini birden ve aynı zamanda Ip adresi “10.10.10.1”den gelen logları aramak için sorguyu aşağıdaki şekilde değiştirebiliriz.

*[
  EventData[
            Data[@Name='LmPackageName'] and (Data='NTLM V1' or Data='NTLM V2')
            and
            Data[@Name='IpAddress']='10.10.10.1'
           ]
  and
  System[(EventID = 4624) and (TimeCreated[timediff(@SystemTime) &lt;= 86400000])]
]

Yukarıdaki sorguda Timediff fonksiyonu kullandık. Timediff fonksiyonu şuanki zaman ile TimeCreated alanında yazan tarih arasındaki farkı milisaniye cinsinden bulmak için kullanılır. Bu sayede son 1 günlük logları getirmiş olduk.

Sorgumuzu daha da genişletmek için, mesela “NTLM V1” ve “NTLM V2″nin LmPackageName gibi hangi alanlarda geçtiğini bilmiyor isek aşağıdaki sorgu ile EventData’nın içeriğinde arama yapabiliriz.

*[
  EventData[Data and (Data='NTLM V1' or Data='NTLM V2')]
  and
  System[(EventID = 4624) and (TimeCreated[timediff(@SystemTime) &lt;= 86400000])]
]

Aşağıdaki sorguyu birden fazla log channel’da filtreleme yapmak için kullanabiliriz.

<QueryList>
    <Query Id="0">
        <Select Path="Security">*[System[(EventID='4624')]]>/Select>
        <Select Path="Application">*[System[(EventID='1704')]]>/Select>
    </Query>
</QueryList>

Son adım olarak sorgumuzu yazdıktan sonra Ok tıklayıp Custom View’ı vereceğimiz anlamlı bir isim ile kaydediyoruz. All Users seçeneğini işaretleyip tüm kullanıcılar için görülmesini sağlayabiliriz.

Resim-3

Custom View’ler ile yapacağımız XML sorguları ilk başta zor gelsede bir kere yazdıktan sonra sonraki kullanımlarımızda büyük yararı olacaktır.

Kategori:Windows

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


The reCAPTCHA verification period has expired. Please reload the page.