DDoS Saldırısı Nedir ve Neden Ciddiye Alınmalıdır?
DDoS (Distributed Denial of Service) saldırısı, devasa miktarda sahte trafiği bir hedefe yönlendirerek çevrimiçi bir hizmeti kullanılamaz hale getirme girişimidir. Bu saldırının basit DoS'tan temel farkı dağıtık olmasıdır: saldırgan, sunucunuza eşzamanlı istek göndermek için binlerce veya milyonlarca virüslü cihazdan (botnet) oluşan bir ağ kullanır. Sonuç olarak, sunucu kaynakları — bant genişliği, işlemci, bellek veya ağ bağlantıları — doygunluğa ulaşır ve gerçek kullanıcılar hizmete erişemez hale gelir.
Önemli bir nokta, DDoS saldırısının mutlaka sunucuya sızma anlamına gelmediğidir. Saldırgan genellikle veri çalmayı hedeflemez; asıl amacı hizmet kesintisi yaratmak, marka itibarını zedelemek veya sizi fidye ödemeye zorlamaktır. İstatistikler, orta ölçekli işletmeler için hizmet kesintisinin dakika başına ortalama maliyetinin birkaç yüz bin liradan birkaç milyon liraya kadar değişebileceğini gösteriyor — ve bu sadece doğrudan maliyettir; müşteri güveni kaybının maliyeti ayrıca hesaplanmalıdır.
DDoS saldırısıyla etkili bir şekilde mücadele etmek için öncelikle saldırının OSI modelinin hangi katmanında gerçekleştiğini bilmeniz gerekir. Çünkü ağ katmanı koruma çözümü, uygulama katmanı korumasından tamamen farklıdır. Aşağıda, üç ana saldırı katmanını inceleyeceğiz ve ardından gerçekten işe yarayan çözümlere geçeceğiz.
Hedef Katmana Göre DDoS Saldırı Türleri
DDoS saldırıları, saldırdıkları OSI katmanına göre sınıflandırılabilir. Her katmanın kendine özgü özellikleri vardır ve mücadele yöntemi de farklıdır.
Ağ ve Aktarım Katmanı Saldırıları (L3/L4)
Bu saldırılar ağ altyapısını hedef alır ve amaçları bant genişliğini doyurmak veya bağlantı tablolarını doldurmaktır. En bilinen türleri şunlardır:
- UDP Flood Saldırısı: Saldırgan, sunucunun rastgele portlarına devasa miktarda UDP paketi gönderir. Sunucu, her paket için "porta erişilemiyor" yanıtı olan ICMP mesajı göndermek zorunda kalır ve bu da kaynak tüketimine yol açar.
- SYN Flood Saldırısı: Saldırgan, sahte (Spoofed) IP adresleriyle TCP bağlantı istekleri gönderir ve Handshake aşamasını asla tamamlamaz. Yarı açık bağlantı kuyruğu (SYN Queue) dolar ve gerçek yeni bağlantılar reddedilir.
- ICMP (Ping) Flood Saldırısı: Sunucuya yoğun miktarda ping paketi gönderilmesidir. Gelişmiş bir varyantı olan Smurf Attack, saldırıyı güçlendirmek için ağın yayın adresini kullanır.
- NTP Amplification Saldırısı: Saldırgan, genel NTP sunucularına küçük istekler gönderir ve kurbanın IP adresini sahteler. NTP sunucusunun 500 kata kadar daha büyük olabilen yanıtı kurbana yönlendirilir.
L3/L4 saldırıları genellikle bant genişliği (Bandwidth) ile ölçülür — örneğin saniyede 50 gigabit veya saniyede 10 milyon paket. Bu saldırılar normal bir güvenlik duvarıyla durdurulamaz çünkü güvenlik duvarının kendisi de bir darboğaz noktası haline gelir.
Uygulama Katmanı Saldırıları (L7)
Bu saldırılar daha akıllıcadır ve web sunucusunun veya uygulamanın işlemci kaynaklarını tüketmeyi hedefler. Bu saldırıların trafik hacmi genellikle düşüktür (belki saniyede sadece birkaç bin istek) ancak her istek çok ağırdır:
- HTTP Flood: Sitenin ağır sayfalarına GET veya POST istekleri gönderilmesidir. Saldırgan botnet kullanabilir veya LOIC gibi araçlarla görünüşte meşru istekler gönderebilir.
- Slowloris: Saldırgan HTTP bağlantılarını açık tutar ve başlıkları çok yavaş gönderir. Sunucu isteğin tamamlanmasını bekler ve zamanla tüm izin verilen bağlantılarını kaybeder.
- Slow POST Saldırısı: Slowloris'e benzer ancak istek gövdesini çok düşük hızda (örneğin her 10 saniyede 1 bayt) göndererek çalışır.
- API Saldırısı: Karmaşık veritabanı sorguları çalıştıran arama veya rapor üretimi gibi ağır bir endpoint'in tekrar tekrar çağrılmasıdır.
L7 saldırılarını tespit etmek daha zordur çünkü trafik normal kullanıcı davranışına benzer. Normal bir HTTP isteği ile saldırı isteği yapısal olarak tamamen aynı olabilir.
Karma ve Yeni Saldırılar
Günümüzde ciddi saldırıların çoğu karma niteliktedir. Saldırgan önce güvenlik ekibinin dikkatini çekmek için L4 saldırısıyla bant genişliğini doyurur ve aynı zamanda L7 saldırısıyla WAF engelini aşmaya çalışır. Bazı yeni saldırılar, filtrelenmesi daha karmaşık olan QUIC veya WebSocket protokollerini kullanır.
DDoS Saldırısını Gerçekten Ne Engeller?
Yaygın çözümlerin çoğu — bant genişliğini artırmak veya donanımsal güvenlik duvarı kullanmak gibi — modern saldırılara karşı pek etkili değildir. Aşağıda pratikte işe yarayan çözümleri inceliyoruz.
Ağ Ucunda Trafik Filtreleme (Edge Filtering)
DDoS saldırısıyla mücadelede en önemli ilke, saldırı trafiğinin ana sunucunuza ulaşmamasıdır. Saldırı altyapınıza ulaşırsa, iş işten geçmiş demektir. Standart çözüm, trafiği ağın ucunda — yani veri merkezinin internete bağlandığı noktada — filtrelemektir.
Cloudflare, Akamai gibi bulut hizmetleri veya benzer yerel hizmetler, trafiğinizi kendi ağları üzerinden yönlendirir. Saldırı başladığında, sahte trafik ağ ucunda tespit edilip atılır ve sunucunuza yalnızca sağlıklı trafik ulaşır. Bu işlem şu tekniklerle yapılır:
- Davranışsal Analiz: Anormallikleri tespit etmek için paket hızı, yeni bağlantı hızı ve zamansal desenlerin incelenmesi.
- Protokol Doğrulama: TCP paketlerinin üç aşamalı Handshake'i tamamlayıp tamamlamadığının kontrol edilmesi. İlgili ACK'sı olmayan SYN paketleri atılır.
- IP Kara Listesi: Daha önce saldırılarda kullanılmış bilinen IP adreslerinin engellenmesi.
- Hız Sınırlama (Rate Limiting): Her IP'nin birim zamanda gönderebileceği istek sayısının sınırlandırılması.
Önemli not: Hizmetiniz İran'da ise ve hedef kitleniz de İran'da ise, yaptırımlar veya ağ gecikmesi (Latency) nedeniyle yabancı hizmetleri kullanmak pratik olmayabilir. Bu durumda yerel DDoS koruma hizmetlerini kullanmalısınız. ServerNet gibi şirketler, web ve bulut barındırma hizmetlerinin yanı sıra müşterilerine DDoS saldırısıyla mücadele çözümleri de sunmaktadır; bu, İranlı işletmeler için uygun bir seçenek olabilir.
Sunucu ve Yazılımın Doğru Yapılandırılması
Hiçbir bulut hizmeti, doğru yapılandırılmış bir sunucunun yerini tutamaz. Aşağıdaki ayarları mutlaka sunucunuzda uygulayın:
- Linux Çekirdek Parametrelerinin Ayarlanması:
/etc/sysctl.confdosyasında SYN Flood'a karşı direnci artırmak için aşağıdaki değerleri ayarlayın:
Ardındannet.ipv4.tcp_syncookies = 1 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.rp_filter = 1sysctl -pkomutuyla değişiklikleri uygulayın. - Eşzamanlı Bağlantı Sınırlaması: iptables ile her IP'den gelen eşzamanlı bağlantı sayısını sınırlayabilirsiniz:
Bu kural, her IP'nin 80 portuna en fazla 50 eşzamanlı bağlantı kurmasına izin verir.iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT - Nginx ile İstek Hızı Sınırlaması: Sunucu bloğunuzda şu ayarı yapın:
Bu ayar, her IP'nin saniyede en fazla 10 istek göndermesine izin verir.limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s; server { location / { limit_req zone=req_limit burst=20 nodelay; } } - WAF Etkinleştirme: Nginx kullanıyorsanız, ModSecurity modülünü kurun ve OWASP CRS kurallarını etkinleştirin. Bu, birçok L7 saldırısını engeller.
Ölçeklenebilir ve Dağıtık Altyapı
Hizmetiniz tek bir sunucuda çalışıyorsa, en iyi filtre bile bant genişliği doygunluğunu engelleyemez. Aşağıdaki çözümleri değerlendirin:
- CDN Kullanımı: Sitenizin statik içeriğini CDN'ye yerleştirin, böylece statik istekler ana sunucuya ulaşmaz.
- Yük Dengeleme (Load Balancing): Trafiği birden fazla sunucuya dağıtın, böylece biri çökerse diğerleri yanıt verebilir.
- Mikroservis Mimarisi: Büyük bir monolit yerine hizmetleri ayırın, böylece bir bölüme yapılan saldırı tüm sistemi çökertmez.
DDoS Saldırısıyla Mücadelede Yaygın Hatalar
Yıllar boyunca müşterilerle çalışırken, saldırıların sonuçlarını çok daha kötüleştiren birkaç hatayı defalarca gördüm:
- Saldırının Başlamasını Beklemek: Birçok işletme, ilk saldırıdan sonra çözüm düşünmeye başlar. Ancak DDoS koruma hizmetinin kurulması zaman alır ve saldırı sırasında artık çok geçtir. Koruma altyapısı saldırıdan önce hazır olmalıdır.
- Yalnızca Donanımsal Güvenlik Duvarına Güvenmek: Normal güvenlik duvarları normal trafik için tasarlanmıştır ve yüksek hacimli saldırılarda ilk çökme noktası olurlar.
- Portları Tamamen Kapatmak: Bazı ekipler saldırı sırasında tüm portları kapatır. Bu, gerçek kullanıcılar için de hizmeti kullanılamaz hale getirir ve pratikte saldırının amacına ulaşmasıyla aynı sonucu doğurur.
- Günlükleri (Log) İhmal Etmek: Her saldırıdan sonra sunucu ve güvenlik duvarı günlüklerini inceleyerek saldırı desenini tanıyın. Bu bilgi, bir sonraki saldırıda filtreleri daha hassas ayarlamak için hayati önem taşır.
Özet: Uygulama Planınız
DDoS saldırısına karşı gerçek koruma için şu adımları sırasıyla izleyin:
- Hizmetinizin hangi katmanlarda daha savunmasız olduğunu değerlendirin. Yüksek trafikli bir e-ticaret siteniz varsa, L7 saldırıları muhtemelen daha önemlidir; oyun veya yayın hizmeti sunuyorsanız, L3/L4 saldırıları ana riski oluşturur.
- Ağ ucu koruma altyapısını herhangi bir saldırıdan önce kurun. Bu işi uzman bir şirkete bırakın veya hazır hizmetlerden yararlanın.
- Sunucu ayarlarını yukarıdaki talimatlara göre uygulayın ve sunucu direncini
ab(Apache Bench) veyawrkgibi araçlarla test edin. - Bir olay müdahale planı yazın: kim sorumlu, kimi arayacaksınız ve hangi adımları sırayla uygulayacaksınız.
- Periyodik olarak (örneğin her 3 ayda bir) düşük hacimli simüle edilmiş bir saldırı gerçekleştirerek altyapınızın hâlâ çalıştığından emin olun.
DDoS saldırısı gerçek ve sürekli bir tehdittir, ancak saldırı katmanlarını doğru anlayarak ve uygun çözümleri kullanarak riski en aza indirebilirsiniz. Anahtar nokta, korumanın saldırıdan önce hazır olması gerektiğidir, sonrasında değil.
Yorumlar 0
Henüz yorum yok — ilk siz olun!