Bir DDoS saldırısının size nasıl zarar verdiğini anlamak, onu durdurmanın ilk şartıdır. "Sunucuya saldırı geldi" cümlesi tek başına hiçbir şey anlatmaz; UDP flood, SYN flood ve amplification tamamen farklı mekanizmalarla çalışır, farklı kaynakları tüketir ve farklı savunmalar gerektirir. Birini durduran önlem diğerine karşı hiçbir işe yaramayabilir. Bu rehberde bu üç saldırı türünün paket seviyesinde nasıl çalıştığını, birbirinden nasıl ayırt edileceğini ve her birine karşı hangi katmanda savunma yapılması gerektiğini anlatıyoruz.
Saldırıları anlamanın en pratik yolu, hedefledikleri kaynağı sormaktır. Üç kaynak vardır ve üçü de bittiğinde sunucunuz erişilemez hale gelir:
UDP flood ve amplification öncelikle bant genişliğini hedefler. SYN flood ise bant genişliği tüketmeden bağlantı durumunu tüketir; bu yüzden çok küçük bir trafik hacmiyle bile etkili olabilir. Bu ayrım, katman tartışmasının temelidir; konunun geniş çerçevesi için Layer 4 ve Layer 7 DDoS saldırıları karşılaştırmamıza göz atabilirsiniz.
Normal bir TCP bağlantısı üç adımda kurulur. İstemci SYN paketi gönderir, sunucu SYN-ACK ile yanıtlar, istemci ACK ile onaylar. İkinci adımda sunucu bir sorun yaşar: istemcinin son onayını beklerken bu bağlantıyı hatırlamak zorundadır. Bunun için çekirdekte bir kayıt açar ve bağlantıyı "yarı açık" (half-open) olarak işaretler.
SYN flood saldırısında saldırgan binlerce SYN paketi gönderir ama hiçbirine ACK ile yanıt vermez. Üstelik kaynak IP adreslerini taklit ettiği (spoofing) için sunucunun gönderdiği SYN-ACK paketleri var olmayan veya ilgisiz adreslere gider. Sunucu her biri için bir kayıt açar ve zaman aşımına kadar bekler.
Sonuç: yarı açık bağlantı kuyruğu (backlog) dolar. Kuyruk dolduğunda sunucu meşru kullanıcıların SYN paketlerini de reddetmeye başlar. Dışarıdan bakan biri için sunucu tamamen kapalıdır, oysa hattınız neredeyse boştur. SYN flood'un sinsiliği buradadır: trafik grafiğinizde dramatik bir yükseliş görmeyebilirsiniz.
Bu saldırıya karşı geliştirilen klasik savunma SYN cookies'tir. Fikir zariftir: sunucu yarı açık bağlantı için hafızada yer ayırmak yerine, bağlantıya ait bilgiyi SYN-ACK paketinin sıra numarasına şifreleyerek gömer ve kaydı silmesi gerekmez. İstemci gerçekten ACK ile dönerse sunucu bu numaradan bağlantıyı yeniden inşa eder. Sahte SYN paketleri hiçbir zaman geri dönmeyeceği için hiçbir kaynak tüketmemiş olur. Linux'ta bu davranış net.ipv4.tcp_syncookies ayarıyla yönetilir ve modern dağıtımların çoğunda varsayılan olarak açıktır.
UDP'nin el sıkışması yoktur. Paket gelir, işlenir, biter. Bu tasarım gecikmeyi düşürdüğü için oyun sunucuları, DNS ve VoIP gibi hizmetler UDP kullanır. Aynı tasarım güvenlik açısından iki sorun doğurur.
Birincisi, kaynak IP adresi kolayca taklit edilebilir. TCP'de el sıkışma sahte adresle tamamlanamaz, ama UDP'de böyle bir doğrulama adımı yoktur. İkincisi, sunucunun paketi işlemeden önce göndereni doğrulama şansı yoktur.
Saldırgan hedefin rastgele veya belirli portlarına yüksek hacimde UDP paketi gönderir. İki farklı zarar oluşur:
Oyun sunucularının bu kadar sık hedef olmasının sebebi budur: port zaten açıktır, protokol zaten UDP'dir ve tek çekirdekli oyun döngüsü darboğaz oluşturur. Oyun sunucusu senaryosunda Cloudflare gibi HTTP tabanlı çözümlerin neden yetersiz kaldığını Cloudflare ve UDP gerçeği yazımızda ayrıntılı olarak ele aldık.
Amplification, saldırganın elindeki bant genişliğini kat kat büyütmesini sağlayan yöntemdir. En tehlikeli hacimsel saldırılar bu teknikle üretilir.
İki kavram sıkça karıştırılır:
İkisi birlikte kullanıldığında saldırgan, kendi hattının kapasitesinin kat kat üstünde bir trafiği hedefe yönlendirebilir.
İstismar edilen protokoller, internete açık bırakılmış ve kimlik doğrulaması yapmayan UDP servisleridir:
monlist komutu tek istekle uzun bir istemci listesi döndürür.Büyütme oranı, protokole ve yapılandırmaya göre onlarca kattan on binlerce kata kadar değişir. Bu yüzden savunma tartışması genellikle "kaç kat" sorusundan çok "hattım dolduğunda ne oluyor" sorusuna odaklanır.
Amplification trafiği, teknik olarak meşru sunuculardan gelir. Kaynak adresler gerçek DNS veya NTP sunucularına aittir. Bu yüzden basit bir IP kara listesi işe yaramaz; hem liste sürekli değişir hem de yanlışlıkla gerçek altyapıyı engelleyebilirsiniz. Ayrıca trafik sunucunuza ulaştığında hattınız çoktan dolmuş olur.
Saldırı anında hangisiyle karşı karşıya olduğunuzu hızlıca anlamak için şu ipuçlarına bakın:
netstat veya ss çıktısında çok sayıda SYN_RECV durumu görürsünüz.UDP flood ve amplification saldırılarında paketler sunucunuza ulaştığında iş işten geçmiştir. Bu yüzden filtrelemenin yukarı akışta, trafik hattınıza girmeden yapılması gerekir. Bu, barındırma sağlayıcınızın altyapısına bağlı bir konudur; oyun sunucusu hizmetlerimiz ve fiziksel sunucu çözümlerimiz DDoS korumalı ağ altyapısı üzerinde çalışır.
Filtreden sızan artık trafiği sindirebilmek için işlemci ve depolama tarafında paya ihtiyacınız vardır. Özellikle oyun sunucuları ana döngüyü tek çekirdekte çalıştırdığı için yüksek tek çekirdek performansı belirleyicidir. AMD Ryzen 9 9950X tabanlı Türkiye lokasyonlu VDS seçenekleri DDR5 bellek ve NVMe M2 SSD ile bu senaryoya göre yapılandırılmıştır.
SYN flood az trafikle bağlantı tablosunu doldurur; UDP flood ise doğrudan hattınızı doldurmayı hedefler. Birincisi sunucu ayarlarıyla önemli ölçüde azaltılabilir, ikincisi ağ seviyesinde filtreleme gerektirir.
Hayır. Paketler zaten hattınıza ulaşmış olur; güvenlik duvarı onları düşürse bile bant genişliği tüketilmiştir. Ayrıca oyun sunucunuz da UDP kullandığı için meşru oyuncuları engellemiş olursunuz.
O sunucular genellikle kurban değil, kötü yapılandırılmış üçüncü taraflardır. Sahiplerine bildirim yapmak uzun vadede internet için faydalıdır ama devam eden bir saldırıyı durdurmaz.
Çünkü kaynak adres doğrulaması ağ operatörlerinin isteğine bağlıdır ve dünya genelinde her yerde uygulanmaz. Bu yüzden yansıtmalı saldırılar hâlâ etkilidir.
Paket sayısı, bant genişliği ve bağlantı durumu sayaçlarını birlikte izleyin. Bu üçünün hangisinin anormal olduğu, saldırının türünü doğrudan gösterir.
Evet. Aynı makinede web sitesi, veritabanı veya ses sunucusu çalışıyorsa hepsi aynı hattı paylaştığı için birlikte etkilenir. Mümkünse kritik hizmetleri ayırın.
SYN flood, TCP el sıkışmasının yarım bırakılmasıyla bağlantı tablosunu doldurur ve az trafikle büyük hasar verir; savunması büyük ölçüde sunucu tarafındadır. UDP flood, bağlantısız protokolün doğrulama yapamamasından yararlanarak hem hattınızı hem CPU'nuzu tüketir. Amplification ise saldırganın küçük isteklerle üçüncü taraf sunuculardan dev yanıtlar ürettiği, en yüksek hacimlere ulaşan yöntemdir. Son ikisi için tek gerçekçi savunma, trafiğin ağ seviyesinde, sunucunuza ulaşmadan filtrelenmesidir. Sunucu içi sıkılaştırma ve donanım payı bunu tamamlar, yerine geçmez.
Projenizi DDoS korumalı bir ağ altyapısı üzerinde barındırmak istiyorsanız oyun sunucusu paketlerimizi inceleyebilir, mevcut yapınıza uygun çözümü birlikte belirlemek için bizimle iletişime geçebilirsiniz. 7/24 destek ekibimiz saldırı anında ne yapmanız gerektiği konusunda da yanınızdadır.