Konuyu Açan
#1
Python Firewall Log Analizi
1) Veri toplama ve yapı
2) Ön işleme ve normalleştirme
3) Desenler ve metrikler
4) Uyarı ve özet çıktı
5) Basit bir Python örneği (kurgusal, ana hatlar)
6) Sonuç ve güvenlik perspektifi
Bu yaklaşım sizin kullanım senaryonuza nasıl uyarlanır? Özellikle hangi firewall cihazları ve log formatlarıyla çalışıyorsunuz, ve hangi metrikler sizin için en değerli?
Günlük kayıtları, güvenlik duruşunu anlamak ve potansiyel tehditleri erken fark etmek için kritik bir girdi sağlar. Özellikle firewall logları, hangi IP’ler hangi bağlantı denemelerini yaptı, hangi kurallar tetiklendi ve hangi portlar yoğunluk gösterdi gibi sorulara yanıt verir. Bu başlık altında, Python ile güvenlik odaklı bir log analizi geliştirmek için temel bir yaklaşımı paylaşacağım; akış şu şekilde ilerler: veri toplama, ön işleme, desenli olay başlıklarının çıkarılması, istatistiksel özetler ve basit uyarı mekanizmaları.
1) Veri toplama ve yapı
- Firewall logları genelde syslog ya da özel dosya formatlarında bulunur. Kaynak belirtilirken, tarih ve zaman damgası, kaynak IP, hedef IP, protokol, port, eylem (allow/deny) ve tetiklenen kural gibi alanların bulunduğunu varsayalım.
- Python tarafında, log dosyasını satır satır okumak için basit bir akış kullanılır. Kaydın parçası olarak zaman damgasını parse etmek için datetime ve regex yardımcı olur.
- Örneğin, aşağıdaki gibi bir satır şeması olabilir: "Jan 12 12:34:56 FW1 DENY TCP 203.0.113.45:34567 -> 198.51.100.10:22"
2) Ön işleme ve normalleştirme
- Zaman dili ve zaman damgası standardizasyonu: UTC’ye çevirme veya kısa zaman dilimlerinde karşılaştırma.
- IP adreslerini normalize etmek için ipaddress modülü kullanılır; blok listesi karşılaştırmaları için hızlı yapılar oluşturulur.
- İlgili alanlar ayrıştırılır: kaynak_ip, hedef_ip, port, protokol, eylem, kural_id. Bu sayede sonrasında hızlı filtreleme mümkün olur.
3) Desenler ve metrikler
- Sık görülen kaynaklar: en fazla oturum girişimi yapan IP’ler, en sık hedeflenen portlar, hangi protokoller tercih ediliyor.
- Başarılı/engellenen denemelerin zaman serisi analizi: belirli bir saatte olağan dışı yoğunluk var mı?
- Ağ içi ve dışı tarama davranışları için etiketsiz aramalar: tek bir kaynaktan çok sayıda farklı hedef porta yönelen trafik, tarama göstergesi olarak değerlendirilebilir.
4) Uyarı ve özet çıktı
- Basit bir eşik tabanlı uyarı sistemi kurulur: örneğin belirli bir süre içinde aynı kaynaktan N adet engelleme kaydı varsa alarm üret.
- Çıktılar, JSON veya CSV olarak kaydedilebilir; görselleştirme için zaman serisiyle hızlı özetler elde edilir.
5) Basit bir Python örneği (kurgusal, ana hatlar)
KOD
1234567891011121314
import re
from datetime import datetime
import ipaddress
log_line = "Jan 12 12:34:56 FW1 DENY TCP 203.0.113.45:34567 -> 198.51.100.10:22"
pattern = re.compile(r'(?P\w{3}) (?P\d{1,2}) (?P\d{2}:\d{2}:\d{2}) (?P\S+) (?P\w+) (?P\w+) (?P\S+):(?P\d+) -> (?P\S+):(?P\d+)')
m = pattern.match(log_line)
if m:
data = m.groupdict()
ts = datetime.strptime(f"{data['month']} {data['day']} {data['time']}", "%b %d %H:%M:%S").replace(year=2024)
src_ip = ipaddress.ip_address(data['src'])
dst_ip = ipaddress.ip_address(data['dst'])
print(ts, data['action'], data['proto'], src_ip, ":", data['srcp'], "->", dst_ip, ":", data['dstp'])
6) Sonuç ve güvenlik perspektifi
- Log analizi, olay öykülerini ortaya koyar; hangi kaynaklardan hangi hedeflere yönelik yoğunluklar var, hangi kurallar en çok tetikleniyor gibi soruları netleştirir.
- Özellikle otomatik özetler ve uyarılar, olay müdahale sürelerini düşürür. Ancak yanlış pozitifleri azaltmak için kuralları kontekst içinde değerlendirmek gerekir.
Bu yaklaşım sizin kullanım senaryonuza nasıl uyarlanır? Özellikle hangi firewall cihazları ve log formatlarıyla çalışıyorsunuz, ve hangi metrikler sizin için en değerli?
