Bir flow kaydı, ağ üzerinden geçen tek yönlü bir bağlantının özet halinde saklanmış halidir. Kaydı oluşturan anahtar yedi alandan oluşur: kaynak IP, hedef IP, kaynak port, hedef port, IP protokol numarası, ToS baytı ve giriş arayüzü. Bu anahtarın yanında paket sayısı, byte sayısı, ilk ve son paket zaman damgaları, TCP flag bilgisi ve opsiyonel olarak next-hop ile AS numarası taşınır. Yön kavramı önemli; istek ve cevap iki ayrı flow olarak görünür, bu yüzden raporlarda istemci tarafını ve sunucu tarafını ayrı satırlarda görürsünüz.
Flow kaydının anatomisi ve versiyon farkı
NetFlow v5 eski kuşak formatlardandır. Sabit alan yapısı vardır, IPv4 ile sınırlıdır ve yeni alan eklenemez. v9 ile şablon mantığı geldi; kayıtlar artık şablonlarla tanımlanıyor, IPv6 desteği ve seçenekli alanlar mümkün oldu. v9 formatı RFC 3954 dokümanında tanımlıdır. IPFIX ise bu şablonlu yapının IETF tarafından standartlaştırılmış hali, RFC 7011 kapsamındadır ve değişken uzunluklu alan tipi ile SCTP taşıma seçeneği gibi eklemeler getirir. Günümüzde "NetFlow" denince çoğu ürün v9 ya da IPFIX anlar, ikisi de şablon tabanlı olduğu için toplayıcı tarafında uyum sorunları nadirdir.
sFlow bu ailenin dışındadır. Flow tabanlı hesap yapmak yerine paket örnekleme yapar, 1/N oranında paketi yakalayıp header örneğini toplayıcıya yollar. UDP 6343 portu üzerinden çalışır ve ikinci katman bilgisini de görebilme avantajı taşır. Standart RFC 3176 ile açıklanmıştır. Switch donanımında NetFlow desteği yoksa sFlow çoğu zaman tek seçenek kalır.
Toplayıcı tarafında duranlar
Açık kaynak dünyasında en bilinen zincir nfcapd, nfdump ve NfSen üçlüsüdür. nfcapd export paketlerini dinler, zaman dilimli dosyalara yazar. nfdump bu dosyaları filtreleyip toplar, NfSen de üzerine web arayüzü ve uyarı profilleri ekler. Ntopng canlı izleme için daha uygun, pmacct ise flow verisini SQL tarafına aktaran hatlar kurmak için kullanılır. Elastiflow ise veriyi Elasticsearch içine alıp görselleştiren, hazır dashboardlarıyla işinizi kolaylaştıran bir dağıtım.
Küçük bir ayrıntı: toplayıcıya gelen export paketlerini Wireshark ile yakalayıp cflow dissector ile açabilirsiniz. Şablon ve kayıt yapısını gözle görmek istediğinizde hızlı yöntem budur.
Router üzerinde export
Klasik IOS sözdizimi hâlâ çok yerde karşınıza çıkar. Arayüz altında yön belirtirsiniz, global kısımda da toplayıcıyı:
interface GigabitEthernet0/0
ip flow ingress
ip flow egress
!
ip flow-export destination 192.0.2.10 2055
ip flow-export version 9 192.0.2.0/24 bloğu dokümantasyon için ayrılmış adres aralığıdır, örnekte bu yüzden tercih edildi. Port konfigüre edilebilir bir değerdir, 2055 yaygın gelenektir. IOS-XE tarafında ise Flexible NetFlow devreye girer; kayıt, export ve izleme nesneleri ayrı tanımlanır:
flow exporter ANALIZ
destination 192.0.2.10
transport udp 2055
!
flow record KAYIT
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match ipv4 protocol
collect counter bytes
collect counter packets
!
flow monitor IZLEYICI
exporter ANALIZ
record KAYIT
!
interface GigabitEthernet0/0
ip flow monitor IZLEYICI input Kullandığınız IOS sürümü bu iki sözdiziminden hangisini destekliyor, bu sürüme göre değişir; büyük sürümlerde mimari değişir, komutları aynen kopyalamadan önce kendi sürümünüzün dokümanına bakın.
Anomali imzaları flow verisinde nasıl görünür
Flow verisi saldırı paketinin içeriğini göstermez ama davranış kalıbını güçlü şekilde ele verir:
- SYN flood: Flow sayısı patlar, flow başına düşen byte miktarı çöker. Binlerce küçük kayıt, aynı hedef IP ve porta doğru. nfdump tarafında TCP SYN seti olup ACK olmayan kayıtları filtreleyerek bu görüntüyü yakalayabilirsiniz.
- Port taraması: Tek kaynak IP, tek hedef IP üzerinde onlarca farklı hedef port. Kayıt başına 1-2 paket, minimum byte. Zaman aralığı saniyeler düzeyinde.
- Veri sızdırma: Az sayıda kayıt, olağan dışı byte hacmi, uzun süre. Kayıt sayısı normal görünürken toplam byte grafiği sapma gösterir, bu yüzden iki metriki birlikte izlemek gerekir.
- Beaconing: Aynı kaynak-hedef çifti, düzenli aralıklarla, benzer byte büyüklüklerinde. Zaman eksenine bindirilince periyodik dalga görünür. C2 iletişiminin flow verisinde bıraktığı klasik iz budur.
Toplu saldırılarda entropi ölçümü de işe yarar. Hedef dağılımının entropisi DDoS anında düşer, çünkü trafik tek kurban noktasına toplanır. Kaynak entropisi spoofing varsa yükselir. Dağılımdaki ani entropi değişimi, eşik tabanlı alarmların yakalayamadığı yavaş saldırıları da görünür kılar.
Zaman aşımı değerleri neden kritik
Aktif zaman aşımı klasik varsayılanla 30 dakika, pasif zaman aşımı 15 saniyedir. 30 dakikayı aşan uzun ömürlü bir bağlantıda router kaydı 30 dakikada bir export eder ve sayaçlar sıfırdan devam eder, yani tek kayıtta gördüğünüz byte miktarı gerçek toplamın altındadır. Hızlı tespit istiyorsanız aktif zaman aşımını düşürmek gerekir, bedeli daha fazla kayıt ve toplayıcı üzerinde daha fazla yük olur. Bu ayarı değiştirmeden önce hacim planı yapın.
Örnekleme modunun bedeli
Yüksek trafikli arayüzlerde 1:100 gibi örnekleme oranları kullanılır. Flow sayısı bazlı sinyaller örneklenmiş veride büyük ölçüde korunur, byte hacmi ise örnekleme oranıyla çarpılarak yeniden hesaplanmalıdır. Düşük oranlı, sinsi trafik örneklemeye takılmayabilir; hassas tespit gereken noktada örnekleme oranını düşürmek veya flow yerine paket bazlı başka bir kaynağa yönelmek gerekir.
Kenar arayüzlerinde ingress yönünü izlemek çoğu kurulum için yeterli başlangıçtır. Birden fazla export noktası aynı trafiği farklı yönlerden görüyorsa toplayıcı tarafında tekrarları temizlemeyi unutmayın, yoksa aynı saldırı iki kez sayılır.
nfdump ile başlayın, birkaç hafta boyunca normal trafiğinizin profilini çıkarın, eşikleri bu profilden türetin. Üreticinin varsayılan alarm eşikleri sizin ağınızın ritmini bilmez; yanlış eşik, hem alarmları hem ekibi yorar.