Bugün sadece "bant genişliğini doldurmak"tan çok daha karmaşık yöntemlerle karşımıza çıkıyor. Bir sistemi erişilemez hale getirmek için kullanılan bu yöntemleri anlamak, doğru savunma hattını kurmanın ilk adımıdır.
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.

 Protokol Saldırıları

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.

Uygulama Katmanı (L7) Saldırıları

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.

Teknik Bakış: Kod ve Konfigürasyon Örnekleri

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:


CODE TERMINAL
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:


CODE TERMINAL
# 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


CODE TERMINAL
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?

  1. 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).

  2. 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.

  3. WAF (Web Application Firewall): L7 saldırılarını tespit etmek için dinamik analiz yapan bir WAF katmanı ekleyin.

  4. 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.

TR Siber Ekibi Yazar · TR Siber Ekibi
← Ana sayfaya dön