Merhabalar, bu yazımda IDS sistemlerinde oluşan logların nasıl göründüğünden bahsetmek istiyorum. Umarım faydalı bir yazı olur. İyi okumalar…
Snort Nedir?
Snort, açık kaynak kodlu saldırı tespit(IDS) / saldırı önleme(IPS) sistemdir. Fakat genelde IDS olarak kullanılmaktadır. İçerisinde imza tabanlı kurallar bulunmaktadır. Snort 3 farklı şekilde çalışabilmektedir;
- Sniffer: İlk snort işlevi sniffer’ter. Yani snort etkinleştirildiğinde ağdaki tek trafiği yakalar ve inceler.
- Paket Kaydı: Paket bilgilerini kaydeder belli bir dizine yazar.
- Saldırı Tespit Sistemi: Kullanıcı tanımlı kurallar yazılarak saldırı tespit yapılmasıdır.
Snort2 ve Snort3 versiyonları bulunmaktadır. İki versiyon arasında büyük fark vardır. aşağıdaki maddeler snort3 için uygulanmıştır;
- Mümkün olan en iyi performansı elde etmek için, TCP taşıma katmanı protokolünün işlenmesi tamamen yeniden yazılmıştır.
- CPU’nuzun birden fazla çekirdeği varsa, donanımı en iyi şekilde kullanmak için ölçeklendirme yeteneği çok daha basittir.
- İki soket arasında köprü oluşturma ve bir inceleme gerçekleştirme gibi ham bir yükü işleme yeteneği vardır.
- Çoklu paket işleme iş parçacığı desteği, bu Snort’un özellikle RAM açısından daha az kaynak tüketmesine izin verir.
Not: Buradaki yeniliklerin amacı büyük veri paketlerindeki kaynakların tamamının analiz edilmesini sağlamaktır. Snort2’de olası durumda sorunlarla karşılaşılmaktadır. Snort3 ise bu durumu farklı eklentilerle beraber kurarak sorunu ortadan kaldırmıştır.
Snort3 Kurulumu
İlk olarak gerekli kütüphaneleri yükleyerek, aşağıdaki eklentileri kurarak ve snort versiyonuna göre indirerek kurulumu tamamlıyoruz. Eklentilerin ne işe yaradığından bahsetmeyeceğim. Kurulan eklentilerin ne işe yaradığını araştırabilirsiniz 😀
Kurulum kısmının tamamını buraya ekleyemedim. eklentilerin ve snort kurulumunun bu şekilde olduğunu kısa bir şekilde anlatmak istedim.
Snort Kural Ekleme
https://www.snort.org/downloads#rules adresinden üye olarak snort3 e göre kuralları indirebilirsiniz. İndirdikten sonra snort.lua dosyası içersinde include kısmına kuralların yolunun bulunduğu includes.rules dizinini yazarak kural ekleme işlemini tamamlamış oluyoruz.
Snort Log Yönetimi
Snort kurulumu tamamlandıktan sonra snort üzerinde tespit edilen saldırıların logları /var/log dizini içerisinde /snort/alert_json.txt şeklinde oluşmaktadır. Snort log yolunu aşağıdaki gibi Filebeat input olarak vererek logların Filebeat üzerinde toplanmasını sağlıyoruz. Output olarak logstash vererek log içerisindeki gerekli kısımları filtreliyoruz. Ardından elasticsearche göndererek logları topluyoruz ve kibana ile logların görselleştirilmesini sağlıyoruz.
Senaryo Üzerinden Ağ Analizi
Canlı bir network üzerinden bir atak gerçekleştiriyor gibi pcap üzerinden analiz ederek hangi kural ile eşleşmiş bunları inceleyeceğiz. Snort kurallarına nasıl takılıyor, nasıl log oluşuyor bunları görmüş olacağız.
İlk görseldeki snort üzerinden düşen loglardan bir tanesidir. Açıklamada yetki yükseltme girişimi denemesi ifadesi bulunmaktadır, sid numarasını snort kuralları içerisinde sorgulama yaptığımda content: “() {“ şeklinde olduğunu görüyoruz. Burada shellshock zafiyeti ile girişimlerde bulunulduğu tespit edilmiştir.
SSH servisine yapılan brute force karşı oluşan log üzerinden sid ile kuralı görebiliyoruz. Fakat kuraldaki ifadelerin ne anlama geldiğini snort kural yazımının nasıl olduğuyla ilgili araştırmalar yaparak anlayabilirsiniz.
Elimdeki pcap çalıştırdığımda 74 alert üretildi. Fakat önemli gördüğüm logu sizlerle paylaşmak istedim. MS17_010 açığından yararlanılacak bir girişimde bulunulmuştur. Snort üzerindeki kurallar sayesinde log düşmüştür. Oluşabilecek zafiyetler için farklı faktörler oluşturularak sorun giderilmiştir, diyebiliriz. Bu blog yazımda anlatacaklarım bu kadardı vakit harcadığınız için teşekkür ederim. Diğer blog yazımda görüşmek üzere…