DDoS Saldırı Kategorileri
Saldırıları genellikle hedef aldıkları katmana (OSI Modeli) göre üç ana başlıkta inceleyebiliriz:
Volumetrik (Hacimsel) Saldırıları;
Bu saldırıların amacı, hedefin bant genişliğini tamamen tüketmektir. Genellikle botnetler veya "Yansıtma" (Amplification) teknikleri kullanılır.
UDP Flood: Sahte kaynak IP adresleriyle hedefe çok sayıda UDP paketi gönderilir.
DNS Amplification: Küçük bir DNS sorgusuna dönen devasa cevapların kurbanın IP adresine yönlendirilmesidir.
Sunucunun veya firewall cihazının kaynaklarını (CPU, RAM, Bağlantı Tablosu) tüketmeyi hedefler.
SYN Flood: TCP "Üçlü El Sıkışma" (3-way handshake) sürecini suistimal eder. Saldırgan sürekli SYN gönderir ama ACK dönmez, sunucu bağlantıları "yarı açık" (half-open) bekletirken kaynakları tükenir.
En sinsi saldırı türüdür. Bant genişliğini doldurmak yerine, doğrudan web sunucusunun veya veritabanının bir işlemi gerçekleştirmesini sağlayarak onu kilitler.
HTTP Flood: Bir web sayfasını saniyede binlerce kez yenilemek veya karmaşık veritabanı sorguları içeren bir formu sürekli doldurmak gibi düşünebiliriz.
Saldırıyı anlamak için "mutfakta" neler olduğunu bilmek gerekir. İşte bazı teknik detaylar:
Python ile SYN Paketi Analizi (Eğitim Amaçlı)
Bir saldırganın scapy kütüphanesi kullanarak nasıl düşük seviyeli bir paket oluşturabildiğini görelim. Bu mantığı anlamak, firewall kurallarınızı yazarken size yardımcı olur:
from scapy.all import IP, TCP, send
# Hedef IP ve Port
target_ip = "192.168.1.100"
target_port = 80
# Sahte bir IP üzerinden SYN paketi oluşturma
def syn_packet_demo():
packet = IP(src="10.0.0.5", dst=target_ip) / TCP(sport=1234, dport=target_port, flags="S")
send(packet, verbose=False)
print(f"SYN paketi gönderildi: {target_ip}:{target_port}")
# Bu işlem döngüye girdiğinde klasik bir SYN Flood oluşur.Nginx Üzerinde Rate Limiting (Savunma)
Uygulama katmanı saldırılarını engellemek için Nginx üzerinde istek sınırlaması yapmak en etkili yöntemlerden biridir:
# http bloğu içine eklenirlimit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;
server { location /login { # Kullanıcı başına saniyede 5 istek, 10 isteğe kadar esneme payı limit_req zone=mylimit burst=10 nodelay; proxy_pass http://my_backend; }}UnrealIRCd Spamfilter Örneği
spamfilter { regex "^.*(attack|ddos|flood).*$"; target { private; channel; }; action kill; reason "DDoS/Flood içerikli saldırı girişimi tespit edildi.";};Savunma Stratejileri: Nasıl Hayatta Kalınır?
Anycast Network Kullanımı: Gelen trafiği tek bir merkeze değil, dünya genelindeki onlarca veri merkezine yayarak saldırının etkisini minimize edin (Cloudflare, Akamai gibi).
Stateful Inspection: Güvenlik duvarlarınızın paketleri sadece içeriğine göre değil, bağlantı durumuna (state) göre kontrol ettiğinden emin olun.
WAF (Web Application Firewall): L7 saldırılarını tespit etmek için dinamik analiz yapan bir WAF katmanı ekleyin.
Bant Genişliği Analizi: Trafikteki ani yükselmeleri (anomaly detection) izleyen otomatik scriptler geliştirin.
Sonuç: DDoS ile mücadele bir varış noktası değil, sürekli devam eden bir süreçtir. Kendi sunucularınızda düzenli olarak zafiyet taramaları yapmak ve log analizlerini otomatize etmek, saldırı anında "oyun dışı" kalmanızı önleyecektir.