Python ile SSH Log Analizi

0 Yanıt 0 Görüntülenme
·
Katılımcılar
Konuyu Açan #1
SSH (Secure Shell) logları, sistem güvenliğini sağlamak ve olası saldırıları tespit etmek için kritik bilgiler içerir. Bu logların analizi, saldırgan girişimleri, brute-force saldırıları veya başarısız oturum denemelerini tespit etmede önemli bir yer tutar. Python, esnek ve güçlü kütüphaneleri sayesinde bu logların otomatik analizinde sıklıkla tercih edilen dildir.


İlk adım olarak, genellikle /var/log/auth.log veya /var/log/secure gibi dosyalarda bulunan SSH loglarını düzenli biçimde toplamamız gerekir. Bu loglar, genellikle başarısız giriş denemeleri, başarılı girişler ve çeşitli hata mesajlarını içerir. Python ile bu dosyaları okuyup, belirli kalıpları (regex kullanımıyla) aramak ve özetlemek mümkündür.

Örneğin, başarısız giriş denemelerini tespit etmek ve IP adreslerine göre saymak için şu temel yapıyı kullanabiliriz:

KOD
12345678910111213141516171819202122232425import re  
  
[b]Log dosyasını açıp satır satır okuyalım[/b]
with open('/var/log/auth.log', 'r') as log_file:  
    logs = log_file.readlines()  
  
[b]Regex ile başarısız girişleri yakala[/b]
fail_pattern = re.compile(r'Failed password for (?:invalid user )?(\S+) from (\d+\.\d+\.\d+\.\d+)')  
  
failures = {}  
  
for line in logs:  
    match = fail_pattern.search(line)  
    if match:  
        user, ip = match.groups()  
        if ip in failures:  
            failures[ip] += 1  
        else:  
            failures[ip] = 1  
  
[b]En çok başarısız giriş denemesi yapan IP’leri listele[/b]
sorted_failures = sorted(failures.items(), key=lambda item: item[1], reverse=True)  
  
for ip, count in sorted_failures[:10]:  
    print(f"IP: {ip} - Failures: {count}")  


Bu temel örnek, saldırganların kullandığı IP adreslerini ve deneme sayılarını hızlıca görmemizi sağlar. Ayrıca, zaman damgalarını, kullanıcı adlarını veya başarılı girişleri de analiz ederek, saldırı kalıplarını daha detaylı inceleyebilirsiniz. Otomatik raporlama veya uyarı sistemleri kurmak için bu verileri JSON veya CSV formatına dönüştürmek de mümkündür.

Gelişmiş analizlerde, logların zaman serisi analizi, saldırı sıklığı veya coğrafi konumlandırma gibi ek bilgiler de entegre edilerek, sistem güvenliğine dair kapsamlı içgörüler elde edilebilir. Python’un pandas ve matplotlib gibi kütüphaneleriyle bu verileri görselleştirmek, saldırı trendlerini daha iyi anlamamıza olanak tanır.

Sonuç olarak, Python ile SSH log analizi, otomasyon ve güvenlik açısından önemli bir araçtır. Bu temel yaklaşımlar, sistem yöneticilerinin ve güvenlik uzmanlarının olaylara hızlı yanıt vermesine yardımcı olur.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
Toplam: 1 (üyeler: 1, misafirler: 0)
0 alıntı seçildi