Ağ Trafiği Verilerinde Özellik Çıkarımı: NetFlow ve Zeek İle Siber Güvenlik Analizi
Bu yazıda, ağ trafiği verilerinde özellikle NetFlow ve Zeek kullanarak nasıl etkili özellikler çıkarabileceğinizi öğrenin. Siber güvenlik dünyasında önemli ipuçları.
Giriş ve Konumlandırma
Ağ trafiği analizi, günümüzde siber güvenlik alanında kritik bir öneme sahiptir. Her gün milyarlarca veri paketi, ağlar arasında hareket ederken, bu verilerin etkin bir şekilde izlenmesi ve analiz edilmesi siber tehditlerin tespitinde büyük rol oynar. Bu bağlamda, NetFlow ve Zeek gibi araçlar, ağ trafiği verilerinin gözlemlenmesi ve değerlendirilmesinde önemli bir yapı taşını temsil eder.
Ağ Trafiği Analizinin Temelleri
Ağ trafiği analizi, temelde ağ üzerinden geçen veri paketlerinin izlenmesi ve bu verilerin anlamlandırılması işlemini kapsar. Bu analiz sırasında elde edilen veriler, ağ performansını izlemek, güvenlik açıklarını tespit etmek ve olası siber saldırıları önceden tahmin etmek için kullanılır. Özellikle, ağ üzerindeki tüm veri paketlerinin ham hali (Pcap) yerine, bu paketlerin içeriklerine dair özet bilgilerin (metadata) çıkartılması, analizin verimliliğini artırır. İşte burada NetFlow ve Zeek devreye girer; bu araçlar, ağ trafiği verilerini daha yönetilebilir ve anlamlı hale getiren özellik çıkarımı işlemleri için kullanılır.
Neden Önemli?
Siber güvenlik tehditleri giderek daha karmaşık hale geliyor. Saldırganlar, sistemlere sızmak ve veri çalmak için çeşitli yöntemler kullanıyorlar. İşte tam burada ağ trafiği analizi, olası tehlikeleri erken aşamalarda tespit etme imkanı sunar. Zeek ve NetFlow gibi araçlar, kullanıcıların ağ üzerindeki işlemleri daha iyi anlamalarına yardımcı olurken, aynı zamanda tehlikeli aktivitelerin ve anormalliklerin hızlı bir şekilde belirlenmesine olanak tanır.
Bu tür analizler, aşırı ağ trafiği, şüpheli bağlantılar ve olağandışı veri akışlarını gözlemlemek için önemlidir. Özellikle, veri sızıntıları ve komuta kontrol sunucularıyla iletişim gibi siber güvenlik açığı göstergeleri tespit edilebilir. Zeek'in sağladığı detaylı log türleri ve NetFlow'un sağladığı ağ akış kayıtları, bu tür tehditlerin tespitine yönelik temel bilgileri sunar.
Siber Güvenlik ve Pentest Algısı
Siber güvenlik uzmanları ve penetrasyon test uzmanları için ağ trafiği analizi, savunma stratejilerinin oluşturulmasında ve sızma testlerinin etkinliğinin artırılmasında hayati bir rol oynamaktadır. Penetrasyon testleri sırasında, sisteme yapılan saldırılara karşı geliştirilen çözümler, genellikle ağ trafiğinin derinlemesine analiz edilmesiyle güçlendirilir. Bu, özellikle olarak, kullanıcı davranışlarının izlenmesiyle, mevcut siber güvenlik önlemlerinin ne kadar etkili olduğunu ölçmek açısından önemli bir süreçtir.
Teknolojik Bakış
Ağ trafikleri analiz edilirken, çeşitli özellikler, metrikler ve log türleri kullanılır. Zeek tarafından üretilen loglar, sistem yöneticilerine pek çok değerli bilgi sunar. Örneğin, iletilen ve alınan veri miktarlarının oranları, bağlantı süreleri, IP adreslerinin kullanım istatistikleri gibi bilgiler, olası tehditlerin ne kadar ciddiye alınması gerektiğine dair ipuçları verebilir.
Aşağıda ilişkilendirilmiş bazı log türleri ve sağladıkları bilgiler yer almaktadır:
- conn.log: Tüm TCP/UDP bağlantılarının temel metadatasını içerir.
- dns.log: Alan adı çözümleme sorgularını ve geri dönen yanıt kodlarını kaydeder.
- http.log: Web isteklerine dair detayları barındırır.
Bu log türleri, tehdit avcılarının ve siber güvenlik uzmanlarının analiz süreçlerini daha verimli hale getirmek için kritik rol oynar.
Sonuç
Ağ trafiği verilerinde özellik çıkarımı, siber güvenlik alanında etkinliği artırmak ve verimli koruma mekanizmaları geliştirmek için kaçınılmaz bir süreçtir. NetFlow ve Zeek gibi araçlar kullanılarak, ağların davranışları detaylı bir şekilde analiz edilebilir. Bu yazıda ele aldığımız konu başlıkları, okuyucuları daha teknik ve derinlemesine içeriklere yönlendirme amacı gütmektedir. Özellikle ağ trafiği verilerinin nasıl değerlendirileceği ve bu verilerden hangi tehditlerin tespit edileceği konusunda daha fazla bilgi edinme isteği yaratarak, siber güvenlik bilgimizin derinleştirilmesine katkı sağlamaktadır.
Teknik Analiz ve Uygulama
Pcap'ten Metadata'ya Geçiş
Ağ trafiği analizi için başlangıç noktası genellikle Pcap dosyalarıdır. Ancak Pcap dosyaları, ham veri içerdiğinden, analiz için daha yapılandırılmış bir forma ihtiyaç duyar. Bu noktada Zeek ve NetFlow gibi araçlar devreye girerek, ağ trafiğini özetleyen Metadata oluştururlar. Metadata, iletişimin kiminle, ne zaman ve nasıl yapıldığını özetler ve bu sayede analistlerin daha etkili bir şekilde tehdit avcılığı yapmalarına olanak sağlar.
Örneğin, Zeek'i kullanarak Pcap dosyanızdan metadata oluşturmak için aşağıdaki komutları kullanabilirsiniz:
zeek -r your_capture.pcap
Bu komut, Pcap dosyanızdaki tüm ağ trafiğini analiz edecek ve ilgili log dosyalarını oluşturacaktır. Oluşturulan log dosyalarından en yaygın olanları conn.log, dns.log ve http.log'dır.
Zeek Log Türleri
Zeek tarafından üretilen log türleri, farklı ağ aktivitelerini kaydedebilmenize olanak tanır. Örneğin:
- conn.log: Ağdaki tüm TCP/UDP bağlantılarının temel metadatasını (Süre, Byte, Durum) içerir. Bu log, bağlantı süreleri, gönderilen ve alınan bayt miktarlarını detaylı bir şekilde analiz etmenizi sağlar.
- dns.log: Tüm alan adı çözümleme sorgularını içerir. DNS sorgularından elde edilen veriler, potansiyel DNS Tunneling faaliyetlerini tespit etmede oldukça kullanışlıdır.
- http.log: Web isteklerini ve yanıt detaylarını içerir. Web tabanlı saldırıları tespit etmek için kritik bir kaynaktır.
Bu log dosyalarının her biri, daha ileri düzeyde analizler yapabilmeniz için farklı bilgiler sunar.
Veri Bilimi ve Zeek
Ağ analizi için Zeek logları, makine öğrenmesi uygulamalarında sıkça kullanılmaktadır. Zeek, ağ trafiğini anlamlandırmanızda ve istatistiksel analizler yapmanızda kritik bir rol oynar. Özellikle logların uygun bir yapı ile verilmesi, istatistiksel modelleme açısından büyük avantajlar sunar.
Örneğin, conn.log üzerinden TCP kontrol bayraklarının dağılımını analiz ederek potansiyel tarama (scanning) aktivitelerini tespit edebilirsiniz. Aşağıdaki gibi bir kod kullanarak, TCP kontrol bayraklarının dağılımını çıkartabilirsiniz:
import pandas as pd
# conn.log dosyasını oku
data = pd.read_csv('conn.log', sep='\t')
# TCP kontrol bayraklarının dağılımını hesapla
tcp_counts = data[data['proto'] == 'tcp']['flag'].value_counts()
print(tcp_counts)
Oransal Özellikler (Byte Ratio)
Ağ verilerinde oransal özellikleri ele almak, sızdırma (data exfiltration) durumlarını tespit etmek için kritik öneme sahiptir. Dışarıya gönderilen verinin (orig_bytes) içeri alınan veriye (resp_bytes) oranının aniden artması, genellikle bir sızdırma belirtisidir. Bu tür özellikleri çıkararak, anormal durumları daha hızlı bir şekilde tespit edebilirsiniz:
# Oransal özellikleri hesaplamak
data['byte_ratio'] = data['orig_bytes'] / data['resp_bytes']
print(data['byte_ratio'].describe())
Bu şekilde, ağ verilerinin dinamiklerini anlamak mümkün hale gelir.
C2 İletişimi (Beaconing)
Komut ve kontrol (C2) sunucularıyla olan düzenli iletişim, siber güvenlikte önemli bir tehdit belirtisidir. Zeek, ağ trafiğindeki bu tür düzenli ve periyodik sinyalleri tespit etmek için kullanılabilir. Özellikle belirli bir IP adresinin belirli aralıklarla bağlantı kurduğu durumlar, potansiyel bir C2 aktivitesinin göstergesi olabilir.
Bunu tespit etmek için aşağıdaki gibi bir SQL sorgusu yazılabilir:
SELECT ts, id.orig_h, COUNT(*) AS connection_count
FROM conn
WHERE id.orig_h IN (your_suspicious_ips)
GROUP BY ts, id.orig_h
HAVING COUNT(*) > threshold
Bu sorgu, belirli bir IP adresi üzerinden yapılan bağlantı sayılarını göstererek analiz yapmanızı sağlar.
Ağ Taraması Tespiti
Ağ tarama ve keşif aktivitelerini tespit edebilmek için, TCP bayraklarının istatistiksel analizi önemlidir. Zeek üzerinden elde edilen conn.log verilerini kullanarak, belirli bir sürede farklı hedef portlara yapılan bağlantı sayısını analiz edebilirsiniz. Bu analizler, ağ üzerinde gerçekleştirilen anormal aktiviteleri daha çabuk tespit etmenize yardımcı olur.
ports = data['id.resp_p'].value_counts()
print(ports[ports > threshold_connections])
Bu örnek, belirli bir hedef port üzerindeki olağan dışı bağlantıların tespit edilmesine olanak tanır.
Protokol Anomalileri ve Özellikler
Ağ protokollerinin anomalilerini tespit etmek için Zeek, protokol bazlı loglar sağlar. Örneğin, HTTP üzerinden anormal User-Agent kullanımları veya DNS sorgularındaki NXDOMAIN oranları, potansiyel tehditler hakkında bilgi verebilir.
Bu noktada, makine öğrenmesi modellerinde kullanılacak özelliklerin belirlenmesi önemlidir. Kullanıcıdan gelen ve daha önce görülmemiş rastgele User-Agent bilgileri, C2 tespiti için kritik bir özellik olabilir.
IP Adreslerinin Özellikleştirilmesi
IP adreslerini analiz ederken, coğrafi konumları veya ağ blokları gibi daha anlamlı bilgiler elde etmek faydalı olabilir. Makine öğrenmesi modellerinde doğrudan IP adresi kullanmak yerine, bu tür özelliklerin çıkarılması, analiz süreçlerini iyileştirir.
Sonuç olarak, ağ trafiği analizi için Zeek ve NetFlow kullanarak veri özelliklerini çıkarmak, siber güvenlikte önemli bir adımdır. Bu tür teknik analizler, potansiyel tehditlerin daha hızlı tespit edilmesini sağlayarak, ağ güvenliğinizi artırmanıza yardımcı olur.
Risk, Yorumlama ve Savunma
Risk Değerlendirme ve Yorumlama
Ağ güvenliği analizinde elde edilen verilerin güvenlik anlamı, sadece mevcut tehditleri anlamakla kalmaz, aynı zamanda altyapının zayıf noktalarını belirleyip bunları güçlendirme yolunda önemli bir adımdır. NetFlow ve Zeek kullanarak yapılan trafik analizi, sistemin güvenlik durumunu tespit etme ve yanlış yapılandırmalar ya da zayıflıkları tespit etme açısından kritik veriler sunar.
Yanlış Yapılandırma ve Zayıflıkların Etkisi
Yanlış yapılandırılmış sistemler, siber saldırganlar için kolay hedeftir. Örneğin, bir güvenlik duvarının yanlış yapılandırılması, istenmeyen trafik akışlarına izin verebilir. Bu noktada, Zeek'in conn.log gibi kayıtları, yapılan tüm TCP/UDP bağlantılarının metadata bilgisini tutarak bu tür sorunları tespit etmemize yardımcı olur.
Bir ağda kullanılan bazı önemli log türleri ise şunlardır:
- conn.log: Ağ bağlantılarının metadatasını içerir.
- dns.log: DNS sorguları ve yanıtlarını kaydeder.
- http.log: Web istekleri hakkında detaylı bilgi sunar.
Yanlış yapılandırma sonucunda meydana gelen bir diğer durum da hizmetlerinin maruz kaldığı potansiyel risklerdir. Örneğin, belirli bir servis üzerine yoğun bir şekilde saldırı yapılması, o hizmetin çökmesine yol açabilir. Bu bağlamda, ağ tarama davranışlarının tespit edilmesi önemli bir savunma mekanizmasıdır.
Sızan Veri Tespiti
Ağdan dışarıya veri sızdırılması, çoğu zaman kötü niyetli bir etkinliğin belirtisidir. Zeek veya NetFlow aracılığıyla elde edilen oransal özellikler (örneğin, çıkış ve giriş byte’ları ile orig_bytes ve resp_bytes arasındaki oran), bir veri sızıntısının ilk işaretlerini ortaya koyar. Anormal bir oran, ağı izleyen güvenlik uzmanlarına hızlı bir uyarı mekanizması sağlar.
Örneğin, aşağıdaki basit kod snippet'i, dışarıya gönderilen ve içeri alınan veri oranlarını hesaplamada kullanılabilir:
def calculate_data_ratio(orig_bytes, resp_bytes):
if resp_bytes == 0:
return float('inf') # Bölme hatasından kaçınmak için
return orig_bytes / resp_bytes
Bu örnek, güvenlik analistlerine hangi bağlantıların potansiyel olarak riskli olduğunu belirlemeleri için gerekli bilgiyi sunar.
Ağ Topolojisi ve Servis Tespiti
Bir ağın topolojisi ve hizmetleri hakkında bilgi toplamak, herhangi bir potansiyel zayıflığı belirlemenin bir başka önemli parçasıdır. Geçerli IP adreslerinin, coğrafi konumları ve ağ blokları gibi özellikler kullanılarak analiz edilmesi, ağ içerisindeki belirli tehditlerin tespitine yardımcı olur. Bunun yanı sıra, DNS sorgularındaki uzunluk ve karmaşıklık, özellikle Domain Generation Algorithm (DGA) kullanımını tespit etme açısından kritik öneme sahiptir.
- DNS Sorgu Uzunluğu: Uzun ve karmaşık alt alan adları (örneğin: 'x7qk9z.com'), DGA tespitinde önemli bir kriterdir.
- NXDOMAIN Oranı: Sıkça başarısız çözümleme yanıtları alınması, DGA belirtisidir.
Savunma ve Hardening Önerileri
Güvenliğin güçlendirilmesi için işletmeler, aşağıdaki önlemleri değerlendirmelidir:
- Güvenlik Duvarı Stratejileri: Ağ yapılandırmalarının doğru olduğundan emin olunmalı, güvenlik duvarları düzenli olarak gözden geçirilmelidir.
- Ağ Segmentasyonu: Farklı ağ segmentlerini ayırarak, zararlı yazılımların yayılmasını sınırlamak mümkündür.
- Eğitim ve Farkındalık: Kullanıcılar için düzenlenen eğitimler, sosyal mühendislik saldırılarına karşı daha yüksek bir direnç sağlar.
- Sürekli İzleme: Gerçek zamanlı izleme ile potansiyel tehditler anında tespit edilmeli ve gerekli önlemler alınmalıdır.
- Yazılım Güncellemeleri: Yazılımlar ve sistemler düzenli olarak güncellenmelidir. Zafiyetler onarıldıkça, sistemin güvenliği de artacaktır.
Sonuç
Ağ trafiği verilerinin analizi, siber güvenlik alanında kritik bir rol oynamaktadır. NetFlow ve Zeek kullanarak yapılan trafik analizi sürecinde elde edilen bulgular, yanlış yapılandırmaların ve potansiyel zafiyetlerin tespit edilmesi bakımdan önemlidir. İyi yapılandırılmış ve sürekli izlenen bir sistem, siber tehditlere karşı etkin bir savunma geliştirmenizi sağlar. Bu nedenle, düzenli olarak güncellemeler yapmak ve eğitimler düzenlemek kritik öneme sahiptir.