Bir sabah sitenize giremediğinizi, paneliniz açılmadığını ya da müşterilerinizin "sayfanız açılmıyor" diye yazdığını fark ettiğinizde akla gelen ilk ihtimallerden biri sunucu arızası, ikincisi ise bir DDoS saldırısıdır. Aslında ikisi bazen aynı anda yaşanır: saldırı sunucuyu öyle bir yükün altına sokar ki servis fiilen çökmüş gibi davranır. Bu yazıda DDoS'un ne olduğunu, DoS ile farkını, saldırıların hangi katmanları hedef aldığını, botnet mantığının nasıl işlediğini, bir saldırının erken belirtilerini ve gerçekçi korunma yöntemlerini — CDN/scrubbing, hız sınırlama, WAF ve altyapı planlaması dahil — adım adım ele alacağız.
Amaç sizi paranoyaya sürüklemek değil; DDoS'un nasıl çalıştığını anlayan bir yönetici, hem doğru önlemi seçer hem de saldırı anında paniklemeden doğru adımları atar.
DDoS Saldırısı Nedir?#
DDoS (Distributed Denial of Service — Dağıtık Hizmet Engelleme), bir hedefe (web sitesi, API, oyun sunucusu, DNS sunucusu vb.) aynı anda çok sayıda farklı kaynaktan gönderilen trafikle o hedefin normal kullanıcılara hizmet veremez hale getirilmesidir. Saldırının amacı veri çalmak değildir; amaç, sunucunun, ağın ya da uygulamanın kapasitesini tüketerek meşru talepleri işleyemez hale getirmektir.
Kritik nokta şudur: DDoS bir güvenlik açığından (ör. SQL injection) faydalanmaz. Sisteminizde "hata" olmasa bile, sadece kapasitenizin çok üzerinde istek göndererek sizi devre dışı bırakabilir. Bu yüzden "kodumuz güvenli, başımıza gelmez" düşüncesi yanıltıcıdır — DDoS'a karşı asıl savunma kod kalitesi değil, ağ ve altyapı seviyesinde alınan önlemlerdir.
DoS ile DDoS Arasındaki Fark#
DoS (Denial of Service), tek bir kaynaktan (tek IP, tek makine) yapılan hizmet engelleme saldırısıdır. Günümüzde neredeyse hiç görülmez, çünkü:
- Tek bir kaynağın bant genişliği genellikle hedefi devirmeye yetmez.
- Kaynak IP tek olduğu için engellemek (firewall'da bloklamak) çok kolaydır.
DDoS ise aynı saldırıyı yüzlerce, binlerce, hatta milyonlarca farklı IP adresinden eş zamanlı yapar. Bu dağıtıklık iki şeyi mümkün kılar: toplam saldırı hacmini katbekat artırmak ve "kötü IP'yi engelle" gibi basit önlemleri işe yaramaz hale getirmek — çünkü engellenecek tek bir IP yoktur, binlercesi vardır.
Saldırı Katmanları: L3/L4 ve L7#
DDoS saldırılarını anlamanın en pratik yolu OSI modelindeki hangi katmanı hedeflediklerine bakmaktır. Bu ayrım, doğru savunmayı seçmek için de belirleyicidir.
Hacimsel Saldırılar (L3/L4)#
Ağ katmanı (L3) ve taşıma katmanı (L4) saldırıları, hedefin internet bağlantısını veya ağ ekipmanını ham trafik hacmiyle boğmayı amaçlar. Ölçüm birimi genellikle Gbps (saniyede gigabit) veya pps (saniyede paket)'tir.
Yaygın örnekler:
- UDP Flood: Hedefe rastgele portlara büyük miktarda UDP paketi gönderilir; sunucu her paket için "bu portta dinleyen var mı" kontrolü yaparken kaynak tüketir.
- SYN Flood: TCP üçlü el sıkışmasının ilk paketi (
SYN) sahte kaynak IP'lerle art arda gönderilir; sunucu her birineSYN-ACKyanıtı verip karşı tarafın son adımı (ACK) atmasını bekler, ama bu yanıt hiçbir zaman gelmez. Sonuçta sunucunun yarım kalmış bağlantıları tuttuğu tablo (backlog) dolar ve yeni, gerçek bağlantı talepleri kabul edilemez hale gelir. - DNS/NTP/Memcached Amplification (Yükseltme): Saldırgan, hedefin IP'sini kaynak adresi gibi göstererek (IP spoofing) küçük bir sorguyu açık DNS/NTP/Memcached sunucularına gönderir; bu sunucular çok daha büyük bir yanıtı doğrudan kurbana yollar. Yükseltme oranı kullanılan protokole göre değişir — DNS'te birkaç onlarca kat, yanlış yapılandırılmış bir Memcached sunucusunda ise on binlerce kata kadar çıkabilir; yani saldırgan 1 Mbps'lik trafikle kurbana onlarca, hatta yüzlerce Mbps'lik yük bindirebilir. Bu yüzden "amplifikasyon" (yükseltme) denir.
Bu tür saldırılar genelde scrubbing (trafik temizleme) merkezleri veya CDN'ler tarafından, trafik sizin sunucunuza hiç ulaşmadan filtrelenerek durdurulur; kendi sunucunuzda alacağınız önlemler bu hacme çoğu zaman yetişemez.
Uygulama Katmanı Saldırıları (L7)#
L7 (uygulama katmanı) saldırıları çok daha sinsidir çünkü hacimsel değildir — az sayıda ama "gerçek kullanıcı gibi görünen" istekle sunucunun CPU, veritabanı veya bellek kaynağını tüketirler. Ölçüm birimi genellikle rps (saniyede istek)'tir.
Örnekler:
- HTTP Flood: Normal bir tarayıcı gibi
GET/POSTistekleri gönderilir, ama saniyede binlerce kez. Her istek web sunucusunda bir işlem (PHP-FPM worker, veritabanı sorgusu) tetikler. - Slowloris: Bağlantıyı açar ama HTTP isteğini hiç tamamlamaz — başlık satırlarını kasıtlı olarak çok yavaş, birer birer göndererek sunucuyu "istek az sonra bitecek" sanıp bağlantıyı açık tutmaya zorlar. Sunucunun eşzamanlı bağlantı/worker limiti bu şekilde yarım kalmış isteklerle dolar ve yeni gerçek ziyaretçiler için yer kalmaz. Tek makineden, düşük bant genişliğiyle bile etkili olabilmesi onu ilginç kılar; olay tabanlı (event-driven) web sunucuları (ör. Nginx) bu saldırıya klasik iş parçacığı tabanlı sunuculardan daha dayanıklıdır.
- Arama/filtre uç noktalarını hedefleme: Sitenizin en "pahalı" işlemini (örneğin karmaşık bir arama sorgusu veya rapor oluşturma) bilerek tekrar tekrar tetiklemek, az istekle veritabanını kilitleyebilir.
L7 saldırıları, trafiğin "meşru" görünmesi nedeniyle basit ağ filtreleriyle ayırt edilmesi zordur; burada devreye davranışsal analiz yapan bir web uygulama güvenlik duvarı (WAF) girer.
Botnet Mantığı: Trafik Nereden Geliyor?#
DDoS'un "dağıtık" kısmını mümkün kılan şey genellikle bir botnet'tir: kötü amaçlı yazılımla ele geçirilmiş, sahibinin haberi bile olmadan uzaktan komuta edilen binlerce cihazdan oluşan bir ağ. Bu cihazlar klasik bilgisayarlar olabileceği gibi, güvenliği zayıf IoT cihazları (IP kamera, router, DVR) da olabilir — nitekim tarihteki en büyük saldırılardan biri olan Mirai botnet'i tam olarak bu tür cihazlardan oluşuyordu.
Botnet'in işleyişi kabaca şöyledir:
- Saldırgan (botmaster), zafiyetli cihazlara zararlı yazılım bulaştırarak onları "bot" haline getirir.
- Bir komuta-kontrol (C2) sunucusu üzerinden botlara aynı anda "şu hedefe, şu tipte saldırıyı, şu an başlat" komutu gönderilir.
- Binlerce bot eş zamanlı olarak hedefe trafik göndermeye başlar.
Bunun yanında kiralık "DDoS-for-hire" / booter servisleri de vardır — teknik bilgisi olmayan biri bile küçük bir ücret karşılığında dakikalarca süren bir saldırı satın alabilir. Bu, DDoS'u yalnızca büyük şirketlerin değil, küçük ve orta ölçekli her sitenin karşılaşabileceği bir risk haline getirir.
Bir DDoS Saldırısının Belirtileri#
Her ani yavaşlama DDoS değildir — trafik artışı, kötü yazılmış bir sorgu ya da eksik kaynak da benzer belirtiler verebilir. Ancak aşağıdaki kombinasyon şüpheyi güçlendirir:
- Sitenin veya API'nin aniden, kademeli değil sıçramalı biçimde yavaşlaması ya da tamamen erişilemez hale gelmesi.
- Sunucu kaynak kullanımında (CPU, bellek, bağlantı sayısı) açıklanamayan ani bir tırmanış.
- Erişim loglarında aynı zaman diliminde, benzer user-agent veya benzer isteklerle gelen olağandışı sayıda farklı IP.
- Belirli bir uç noktaya (özellikle giriş sayfası, arama, sepet gibi "pahalı" işlemler) yoğunlaşmış istek trafiği.
- E-posta veya diğer servislerinizin de aynı sunucuyu paylaşıyorsa aynı anda yavaşlaması.
Şüphelendiğinizde ilk yapılacak şey sunucu ve web sunucusu (Nginx/Apache) loglarını hızlıca incelemektir:
# Son 1 dakikada en çok istek atan IP'leri bul (Nginx access log)
awk -v d="$(date -d '1 minute ago' '+%d/%b/%Y:%H:%M')" '$4 ~ d' /var/log/nginx/access.log \
| awk '{print $1}' | sort | uniq -c | sort -rn | head -20
Bu tek komut bile bazen saldırıyı mı yoksa gerçek bir trafik patlamasını mı (ör. bir haberde paylaşılma) yaşadığınızı ayırt etmenize yardımcı olur: gerçek trafik çok çeşitli IP ve user-agent'tan gelirken, saldırı trafiği genelde bir örüntü taşır.
Korunma Yöntemleri#
Tek bir "sihirli düğme" yoktur; etkili koruma katmanlı çalışır. Aşağıdaki yöntemler birlikte kullanıldığında en iyi sonucu verir.
1. CDN ve Scrubbing (Trafik Temizleme)#
Hacimsel (L3/L4) saldırılara karşı en etkili yöntem, trafiği sizin sunucunuza ulaşmadan önce büyük bir ağ üzerinden geçirmektir. Bir CDN (İçerik Dağıtım Ağı) veya özel bir scrubbing merkezi, gelen tüm trafiği önce kendi geniş kapasiteli altyapısında karşılar, kötü niyetli paketleri ayıklar ve yalnızca temiz trafiği sunucunuza iletir. Bu sayede kendi sunucunuzun bant genişliği hiçbir zaman doğrudan saldırıya maruz kalmaz. Cloudflare bunun en bilinen örneğidir; Clou.TR'de sunuculara yönelik DDoS koruma hizmeti de bu mantıkla, trafiği ağ katmanında filtreleyerek çalışır.
2. Hız Sınırlama (Rate Limiting)#
Uygulama katmanı saldırılarına karşı en temel savunma, bir IP'nin (veya oturumun) belirli bir sürede kaç istek yapabileceğini sınırlamaktır. Nginx üzerinde basit bir örnek:
# http bloğunda: IP başına saniyede 5 istek, 10 isteklik patlama payı
limit_req_zone $binary_remote_addr zone=genel:10m rate=5r/s;
server {
location /giris {
limit_req zone=genel burst=10 nodelay;
limit_req_status 429;
}
}
Bu kural özellikle giriş sayfası, arama ve form gönderimi gibi "pahalı" uç noktalarda saldırganın etkisini ciddi biçimde azaltır. Aynı mantığı API Gateway veya uygulama seviyesinde (ör. IP + kullanıcı bazlı sliding-window sayaç) de uygulayabilirsiniz.
3. Web Uygulama Güvenlik Duvarı (WAF)#
WAF, gelen HTTP isteklerini imza ve davranış kurallarıyla analiz ederek kötü niyetli örüntüleri (anormal istek hızı, şüpheli user-agent, bilinen bot imzaları, eksik/garip başlıklar) gerçek zamanlı engeller. L7 saldırılarında rate limiting'in yakalayamadığı daha ince örüntüleri (ör. isteklerin çok sayıda farklı IP'ye dağılmış ama aynı davranışsal imzayı taşıması) tespit etmede kritik rol oynar. WAF'ın nasıl çalıştığını ve hangi kural setlerini kullandığını web uygulama güvenlik duvarı (WAF) yazımızda detaylıca anlattık; Clou.TR'nin WAF hizmeti de bu koruma katmanını sunucu önüne yönetilen kurallarla ekler.
4. Aşırı Sağlama (Over-provisioning) ve Yük Dağıtımı#
Kaynak yönünden esneklik, küçük-orta ölçekli saldırıları "sorun bile etmeden" atlatmanın basit bir yoludur:
- Ani trafik patlamalarını karşılayabilecek yedek kapasiteye sahip bir VDS veya sanal sunucu planı seçmek, sınırda çalışan bir paylaşımlı hosting hesabına göre çok daha fazla tolerans sağlar.
- Statik içerik (görsel, CSS/JS) mümkünse bir CDN üzerinden sunulmalı ki uygulama sunucusu her istekte gereksiz yük almasın.
- Veritabanı bağlantı havuzu ve web sunucusu worker limitleri gerçekçi ama saldırıya açık kapı bırakmayacak şekilde ayarlanmalı — hem çok düşük (meşru trafikte darboğaz) hem çok yüksek (kaynak tükenmesine açık) limitlerden kaçının.
Temel sunucu sertleştirme adımlarını (firewall, gereksiz servisleri kapatma, güncel tutma) merak ediyorsanız sunucu güvenliği temelleri yazımıza göz atabilirsiniz — DDoS koruması, genel güvenlik hijyeninin üzerine inşa edilen bir katmandır, onun yerine geçmez.
5. DNS ve Altyapı Çeşitlendirmesi#
DNS sunucunuz da bir DDoS hedefi olabilir — DNS düşerse site fiilen erişilemez hale gelir, sunucunuz sapasağlam olsa bile. Bu yüzden:
- Yönetilen, DDoS korumalı bir DNS altyapısı kullanmak (çoğu CDN sağlayıcısı bunu dahil eder).
- Kritik servisleri (web, e-posta, API) mümkünse ayrı IP/sunuculara dağıtmak — tek bir hacimsel saldırının tüm iş sürekliliğinizi aynı anda vurmasını engeller.
Saldırı Anında Ne Yapmalı?#
Saldırı başladığında panik yerine sıralı hareket etmek fark yaratır:
- Doğrulayın: Loglara bakarak gerçekten anormal bir trafik örüntüsü mü yoksa organik bir trafik patlaması mı olduğunu teyit edin.
- CDN/koruma katmanını devreye alın: Zaten bir CDN veya scrubbing hizmeti kullanıyorsanız "under attack" / agresif mod gibi seçenekleri etkinleştirin; kullanmıyorsanız bu aşamada hızlıca devreye almak en etkili tek adımdır.
- Hosting sağlayıcınıza haber verin: Sunucu sağlayıcınızın ağ seviyesinde ek filtreleme yapabilme ihtimali vardır; support ekibiyle hızlıca iletişime geçin.
- Geçici olarak sıkılaştırın: Rate limiting eşiklerini geçici olarak düşürün, kritik olmayan uç noktaları (ör. ağır raporlama sayfaları) geçici süreliğine kapatın.
- Kanıt toplayın: Log örneklerini, zaman damgalarını ve etkilenen uç noktaları kaydedin — hem sağlayıcınızla iletişimde hem ileride benzer bir saldırıyı önceden tespit etmek için işinize yarar.
- Saldırı sonrası inceleyin: Hangi uç nokta hedef alındı, mevcut önlemler neden yetersiz kaldı, hangi eşikler değişmeli — bu sorulara cevap bulup savunmanızı güncelleyin. Bu incelemenin çıktısı somut olmalı: örneğin rate limiting eşiğini kalıcı olarak düşürmek, belirli bir uç noktayı önbelleğe almak veya WAF'a yeni bir kural eklemek gibi.
Sıkça Sorulan Sorular#
DDoS saldırısı yasal mı, kimler yapabilir?#
Hayır, DDoS saldırısı düzenlemek dünyanın çoğu ülkesinde olduğu gibi Türkiye'de de suçtur ve ciddi cezai yaptırımları vardır. Teknik bariyerin düşük olması (kiralık "booter" servisleri, hazır araçlar) saldırının yasal olduğu anlamına gelmez.
Küçük bir site DDoS hedefi olur mu?#
Evet. Rakip engelleme, kişisel husumet, "eğlence" amaçlı saldırılar veya otomatik tarama araçlarının rastgele hedef seçmesi gibi nedenlerle küçük ölçekli siteler de sık sık hedef olur; büyüklük tek başına koruma sağlamaz.
DDoS saldırısı veri çalar mı?#
Klasik bir DDoS saldırısının tek başına amacı hizmeti kesmektir, veri çalmak değildir. Ancak bazı saldırganlar DDoS'u dikkat dağıtma amacıyla kullanıp aynı anda başka bir güvenlik açığından faydalanmayı deneyebilir; bu yüzden saldırı sırasında diğer güvenlik loglarını da izlemek önemlidir.
Ücretsiz Cloudflare planı yeterli mi?#
Küçük-orta ölçekli, hacimsel olmayan çoğu saldırı için ücretsiz katman faydalı bir ilk katmandır, ama gelişmiş L7 kuralları, özel kural setleri ve öncelikli destek genelde ücretli planlarda gelir. Kritik iş süreçleri için yönetilen bir koruma hizmetiyle desteklemek daha güvenlidir.
Rate limiting tek başına yeterli mi?#
Hayır. Rate limiting L7 saldırılarında etkili bir ilk savunma hattıdır ama hacimsel (L3/L4) saldırılara karşı sunucu seviyesinde alınan bir önlem yetişemez; o katman için trafiğin sunucuya ulaşmadan filtrelenmesi (CDN/scrubbing) gerekir.
Saldırı sırasında sunucuyu yeniden başlatmak yardımcı olur mu?#
Genelde hayır — saldırı devam ederken yeniden başlatma yalnızca kısa bir kesinti daha yaratır, kaynak dolduğu anda sorun tekrar başlar. Öncelik saldırının kaynağını yönlendirmek/filtrelemek olmalı, sunucuyu döndürmek değil.
DDoS saldırıları öngörülemez ama savunması öngörülebilir: katmanlı bir yaklaşım — CDN/scrubbing, rate limiting, WAF ve yeterli kaynak — çoğu senaryoda hizmetinizi ayakta tutar. Sunucunuzu bu katmanlarla desteklemek isterseniz Clou.TR'nin DDoS koruma hizmetine göz atabilirsiniz.