Splunk – Search &Report & Alert & Dashboard hakkında
Merhaba,
Çeşitli kaynaklardan toplanmış ve indekslenmiş log(event)’lar arasından; genel olarak bilgi güvenliği süreçlerimize, özel olarak pci dss süreçlerimize veya ağda gerçekleşen başarılı başarısız erişim denemelerine dair anlamlı sonuçları derlemek için, search query’lerden faydalanıyoruz.
Indekslenmiş log’lar arasında search işlemi yaparken aşağıdaki ayrıntıları bilmek, istediğimiz sonuca ulaşmada faydalı olacaktır. Indekslenmiş log’lar arasından istenilen ayrıntılar veya istenilen verileri, “search query” ile bulunabiliyor!
Sarch,Report,Alert ve Dashboard yapılarını örnekler ile inceledikten sonra, bir adet gerçek hayat senaryosu ile yazımı tamamlayacağım.
Search’te
Wildcard (*) destekleniyor.
Örnek: action* ile action=accept , action=deny, vs. log’larını filtreleyebilirsiniz.
AND,OR,NOT (Boolean) desteklenmektedir. Bu bağlaçları içeren karmaşık search query hazırlamak isterseniz ( ) kullanabilirsiniz.
Belli bir phrase üzerine yoğunlaşmak için “ ” kullanabilirsiniz. Üstte bahsettiklerimi de kullanarak çeşitli örnekler ile devam edeceğim. Check Point’ten gelen log(event)’lara bir kaç örnek vererek başlayabilirim.
Üstteki iki ekran görüntüsünden anlaşılacağı üzere bir log ’da, çeşitli FIELD’lardan oluşan bilgi parçaları mevcut. Log’lardaki field’lar; source’a,log’un tipne göre değişebilir. Örneğin check point’ten gelen log’da dest_ip isminde bir field varken, Windows Server Application log’unda veya Exchange Server Admin Audit log’unda olmayabilir.
Şu anki test ortamımda, sadece Check Point R77 log’larını topladığım için, örneklerim Check Point ’ten gelen log’lar üzerinde olacak.
Indekslenmiş log’lar arasında search işlemine, üstte gösterilen yerlerden başlayabilirsiniz.Ana sayfada search menüsünün yer etmesi oldukça konforlu değil mi ? 🙂
Splunk’ın çalıştığı sunucunun ismi siem.nwtraders.msft ‘dir. IP adresi 172.16.1.15 ‘tir
Search örnekleri:
Üsttki search ile indeklenmiş log’ları neredeyse hiç filtrelenmemiş olarak görüyorsunuz(yani hemen her log’u görebilirsiniz. Bu şekilde bir search ile istenilen/aranan bilgiye ulaşmak pek mümkün değildir. Test ortamımda bile ~30bin log olduğunu düşünürsek, search query’mizi, istediğimizi elde etmeye yönelik olarak geliştirmeliyiz.
Üstteki search ile destination ip field’ında 204.107.141.40 adresi yazan log’ları görebiliriz. Bakınız, ilk search’e göre bulunan log sayısı hayli azaldı. İlkinde 27958 log bulunurken, bu search’te 44 log bulundu 🙂
Üstteki search ile; destination ip adresi field’ında 172.16.1.1,172.16.255.255,172.16.1.10 yazmayan top 5 destination ip adreslerini bulabiliriz. Üstteki üç adresi search ’ten çıkarmış(exclusion) olduk! Farklı amaçlar için farklı değerleri “exclude” etmeniz gerekecektir.
Search’ün sonucunu görsel olarak geliştirmek için Visualization tab’ında çalışabilirsiniz.
Pie chart örneği üstteki gibidir. Elde ettiğiniz search sonuçlarını rapor olarak kaydedebilirsiniz. İlerleyen zamanlarda search query ’leri ile uğraşmadan hazırlayacağınız raporlarınızdan sonuçlara bakabilirsiniz.
Hazırladığım search ’ü Top 5 Destination IP ismi ile rapor olarak kaydettim. Top Destination port için daha önce bir rapor hazırlamıştım.Her ikiside üstte görünüyor.
Alert hazırlama aşamasına geldik.Splunk’a; sizin belirleyeceğiniz kriterlerde bir log geldiğinde, size alert email’i göndermesini sağlayabilirsiniz.(email dışında farklı aksiyonlar da mevcut) Yine bir örnek üzerinden devam edeyim.
172.16.1.10 kaynağından, TCP 54225 port’u ile herhangi bir hedefe erişilmek istenirse, splunk’a düşecek log, [email protected] adresine mail atılsın.
Alert oluşturmak için öncelikle bu tür log’ları search ile bulabiliyor olmamız gerekir. Search işlemi aşağıdaki gibi olabilir.
10 event(log) bulundu.Bu search işlemini, sağ kısımdaki Save As menüsünden alert olarak kaydedelim.
Daha önce, search işlemlerinden iki tanesini bu menüden Report olarak kaydetmiştik. Şimdi alert ile devam edelim.
172.16.1.10 kaynağından, her hangi bir hedefin tcp 54225 portuna yapılan erişimden gerçek zamanlı haberdar olmak istiyorsanız, üstteki Alert Type seçimini Real Time olarak yapmalısınız. Alert Type zamanlanabilir. Trigger condition altındaki farklı ve esnek seçimlerden faydalanabilirsiniz.Hepsini tek tek incelemek ve yazıya dökmek yorucu olduğundan bir örnek ile devam edeceğim.
Kriter gerçekleştiğinde email gönderilmesi için Send Email kutucuğunu işaretliyoruz. Bu menüye geldiğinizde, Throttle seçeneğini okumanız faydanıza olabilir!
Alert’imizi üstteki gibi kaydetmiş olduk. İlgili log’un üremesi için bir girişimde bulundum ve email uyarısını aldım.
Alert’in tetiklenmesi ile gönderilen email’in içeriği değiştirebilirsiniz.Şimdi de dashboard ile ilgilenelim. İstenilene yönelik dashboard’u çeşitli search sonuçlarından veya daha önce kaydedilmiş raporlardan oluşturabilirsiniz.
Create New Dashboard ile devam ediyoruz.
Dashboard’umuz bir kaç “TOP X” verisinden oluşsun.Create Dashboard ile ilk adımı tamamlıyoruz.
Add panel ile yeni bir yapılandırma penceresi açarak, dashboard’da görünecek verileri belirleyelim.Content Type kısmında üç seçenek mevcut. Search string, pivot ve kayıtlı raporlar!
İsteseniz hazır raporlarınızı dashboard’a ekleyebilirsiniz. Seçim biçimi üstteki gibidir.Üstte görülen hazır iki rapordan oluşan dashboard aşağıdaki gibidir.
Indekslenen log’lara bağlı olarak farklı türde,şekilde(bar,line vs.) dashboard’lar hazırlayabilirsiniz.Her search sonucundan pie chart report hazırlamayabilirsiniz ki her veri, pie chart görseline uymayabilir.
Toplanmış ve indekslenmiş log’lar ile; search,report,alert ve dashboard yapılarını incelemiş olduk.
Gerçek hayat senoryasu olabilecek son örneğim ile yazımı tamamlayayım. Bu örnekte, mobile access(connectra) blade’inden yapılan bağlantılar ile ilgileneceğiz. SSL VPN ile bağlanan kullanıcıları,bağlanma zamananını,vpn ile bağlı kalma süresini vb. bilgileri derleyerek bir dashboard oluşturalım.
Öncelikle search query ile gerekli bilgileri topluyoruz.
Query ‘yi hazırlamak için neleri kullandık?
where isnotnull(field_name) : ilgili field boş ise o event’i(log) göstermeyelim
rename field as yeni_field_ismi : Field ismini değiştirdik , duration -> Süre gibi
table : Dashboard’a eklemek istediğimiz field’ları seçiyoruz
Not: Bu uygulama Check Point R77 ‘den alınan log(event) ‘lar ile yapılmıştır!
Üstteki search’ü, sayfanın sağ üst kısmındaki Save As ile dashboard panel olarak kaydedelim.
Dashboard’u açarak,
istatistikleri inceleyebilirsiniz.
Herkese sorunsuz ve neşeli günler dilerim.
Kaynak:
http://docs.splunk.com/
3 comments found