Konuyu Açan
#1
Python SSH Loglarında Anomali Tespiti
Bu konu üzerinde kendi parser taslağınızı ya da kullandığınız özellikleri paylaşmak isterseniz, hangi log formatını hedeflediğinizi ve hangi eşiklerle çalıştığınızı belirtin; benzer senaryolarda hangi tuning adımlarının işe yaradığını karşılıklı olarak inceleyebiliriz.
Gelen SSH logları, güvenlik olaylarının erken işaretlerini taşıyabilir; doğru bir yöntemle bu verileri analiz etmek ise saldırıların saptanması ve savunmanın güçlendirilmesi açısından kritik olabilir.
- Giriş ve neden önemli: SSH logları, bağlantı denemelerinin sayısı, başarısız girişimler, kilitlenen kullanıcılar ve oturum açma süreleri gibi metrikler içerir. Anomali tespiti bu metriklerdeki sapmaları saptayarak normalden sapma gösteren olayları öne çıkarır. Basit raporlama yerine, triggere bağlı uyarılar ve geçmiş trendlerle hareket etmek daha güvenilir sonuç verir.
- Veri toplamadan başlayalım: /var/log/auth.log veya /var/log/secure gibi kaynaklardan son 24–72 saatlik veriyi almak, IP adresi, kullanıcı adı, zaman damgası ve başarı/başarısızlık gibi alanları çıkarmak gerekir. Python için basit bir parser taslağı şu veri akışını bekler:
KOD123456
log_lines = open('/var/log/auth.log','r').read().splitlines() records = [] for line in log_lines: if 'sshd' in line: # örnek ayrıştırma: zaman, IP, kullanıcı, durum records.append(parse_line(line)) - Anomali ölçütleri:
- Sık gelen başarısız denemeler: dakikada belirli bir eşik üzerinde başarısız deneme varsa alarm.
- Belirli IP’lerden yoğun oturum açma: aynı IP’den kısa süre içinde çok sayıda başarılı veya başarısız oturum.
- Zaman paternleri: gece yarısı veya alışılmadık saatlerdeki yoğunluk.
- Kullanıcı bazlı sapmalar: çoğunlukla root veya privileged kullanıcılar üzerinden anormal erişim.
- Yöntemler ve araçlar:
- Basit istatistikler ile z-skor veya IQR tabanlı aykırı değer tespiti.
- Zaman serisi modelleri: ARIMA/Prophet gibi modellerle normalleşmiş trende göre sapmayı yakalamak.
- Anomali skorları için tek boyutlu bir endeks yerine çoklu özellikleri bir araya getirmek: IP, kullanıcı, zaman, deneme sayısı.
- Somut Python örneği:
- Veriyi temizlemek için regex kullanabilir, daha sonra skor hesaplamak için basit bir hareketli ortalama ve eşik tabanlı alarm kurabiliriz.
- Uzun vadeli güvenlik operasyonları için çıktı olarak JSON/CSV akışını üreterek SIEM’e entegre etmek mantıklıdır.
- Uygulama örnek senaryoları:
- Bir kurumun günlük SSH erişimlerinde, normal saatlerde artış gösteren başarısız denemeler tespit edildiğinde, güvenlik ekibi arşivlenmiş logları inceleyebilir.
- Belirli bir dışa açık IP’den gelen ardışık denemeler, brute-force ihtimaline karşı özel takip listesine alınabilir.
- En iyi uygulamalar:
- Log kaydını güvenli biçimde geri kazanımlı tutmak.
- Privilege escalation riskini azaltacak yapılandırma kontrolleri (kullanıcı izinleri, rate limiting, fail2ban benzeri korumalar).
- Model güncellemesini periyodik yapmak ve nadir görülen olayları gözden kaçırmamak.
- Sonuç ve bakış: Anomali tespiti için temel yaklaşım, veriyi anlamlı özelliklerle zenginleştirmek ve davranışsal normu modellemektir; bu sayede olağan dışı aktiviteler daha hızlı fark edilir.
Bu konu üzerinde kendi parser taslağınızı ya da kullandığınız özellikleri paylaşmak isterseniz, hangi log formatını hedeflediğinizi ve hangi eşiklerle çalıştığınızı belirtin; benzer senaryolarda hangi tuning adımlarının işe yaradığını karşılıklı olarak inceleyebiliriz.
