Bu makalemizde web sunucularına yapılan DOS (Denial Of Service), DDOS (Distrubuted Denial Of Service) ve Botnet saldırılarının nasıl minimize edilebileceğini derinlemesine inceleyeceğiz.

Günümüzde en çok kullanılan saldırı yöntemi DDOS ve Botnet
saldırılarıdır. Kötücül yazılım dağıtıcıları, hazırlamış oldukları, virüs ve backdoorları çeşitli yazılımların içine entegre ederek internet üzerinde freware (ücretsiz) yada wa.re.z olarak dağıtılmaktadır. Kullanıcılar ücretsiz olduğunu vaad eden bu yazılımları bilgisayarlarına kurduktan sonra, arka planda bu zararlı kodlar çalışır. Zararlı kodlar kullanıcıların bilgisayarında çalıştıktan sonra, bulaştıkları bilgisayarı bir zombi bilgisayar haline getirir.

Zararlı yazılım geliştiricisi, çeşitli amaçlar çerçevesinde zombie haline getirmiş olduğu bilgisayarları bir araya toplar ve bu bilgisayarlardan büyük bir botnet ağı (zombie ordusu) kurar. Daha sonra bu botnet ağı ile amaçlar çerçevesinde saldırılar düzenlenir. Saldırı düzenlenen web sunucuna bir anda binlerce istek gönderilir ve sunucu gelen bu isteklere cevap veremeyecek duruma geldiğinde, amaca ulaşılmış, saldırı tamamlanmış olur. Zararlı yazılımın bulaştığı son kullanıcı bu saldırıdan habersizdir.

Benzer bir saldırı çok kısa bir süre önce Anonymous grubu tarafından TİB (Telekomünikasyon İletişim Başkanlığı)’e büyük ölçekli bir saldırı düzenlendi. TİB sunucuları belirli bir süre yayın yapamayacak duruma getirildi. Bu tip saldırılarda, saldırıyı başlatan kişinin tespit edilmesi oldukça zordur. Çünkü saldırıyı düzenleyen kişi, saldırıyı başka bilgisayarlara yaptırdığından dolayı tespit edilmesi zorlaşıyor.



Bir web sunucu ile iletişim Resim-01’deki gibi gerçekleştirilir. Ziyaretçi, mshowto.org sitesi ile iletişime geçmek istemektedir. Bunun için mshowto.org adresine bir ping paketi gönderiyor. Gönderilen ping paketi mshowto.org için 94.73.131.139 ip adresine yollanıyor. Domain adı, ip adresine çevrilip, mshowto.org’a iletilebilmesi için 94-73-131-139.cizgi.net.tr cihazına gönderiliyor. Ardından bu cihazda gelen paketi ns1.sadecehosting.com adresindeki fiziksel sunucuya iletiyor. Web sunucusu gelen bu ping paketine ICMP Echo Reply paketi ile 77.92.152.10 ip adresinden cevap gönderiyor. Routerlar üzerinden iletilen bu ICMP Ehco Reply paketi kullanıcıya iletiliyor.

Eğer web sunucunun önüne bir firewall cihazı yerleştirilmemiş ise temel mantıkta iletişim bu şekilde kurulacaktır. Eğer bir firewall olduğunu düşünür isek sonuç (Resim-02) deki gibi olacaktır.





Ziyaretçi web sunucusuna istekte bulunur. Istek web sunucusunun önünde bulunan firewall’a iletilir. Firewall gelen paketi inceleyerek analiz eder. Paket güvenlik bir istek içeriyorsa, paket web sunucusuna iletilir, paket zararlı bir istekte bulunuyorsa, paket drop edilir.

Ancak büyük çaplı gelen saldırılarda firewall’lar çoğu zaman paketleri kaçırabilmektedir. Bu gibi durumlarda çift firewall kullanılması gerekmektedir. Dolayısı ile bu da ek maliyet anlamına gelir.

Bu makalemizde botnet, ddos saldırılarını engellemek için CloudFlare sunucularını kullanılarak, saldırı engelleme ve saldırı analizlerini inceleyeceğiz.

Öncelikl CloudFlare çalışma mantığını inceleyelim (Resim-03).





Bir web sitesine istek gönderdiğimizde, göndermiş olduğumuz istek Resim-03 1. Kısımdaki gibi domain’in çalıştığı name server’a iletilir. Web sunucusunun verdiği cevaplar da ziyaretçiye direk aktarılır. Böylelikle sunucu ile direkt bir iletişim kurulmuş olur. Bu tarz bağlantılarda, güvenlik en düşük düzeydedir. Bir ddos ve botnet saldırısı yapıldığında sunucu ile direkt iletişime geçilebildiğinden dolayı sunucu bu olaydan fiili olarak etkilenmiş olur.

2. Kısımda ise, CloudFlare sunucularına taşınmış bir web sitesi bulunmaktadır. Ziyaretçinin gönderdiği tüm istekler önce CloudFlare sunucularının ön tarafında bulunan güvenlik duvarına iletilir. Gelen bu istekler, firewall ile süzüldükten sonra ilgili web sunucusuna iletilir. Sunucunun vermiş olduğu cevaplar da aynı yol ile önce CloudFlare sunucularına iletilir, CloudFlare sunucularından ziyaretçiye iletilir. Ziyaretçi web sitesi ile fizeksel bir iletişime geçememektedir. Dolayısı ile gelecek olan tüm ddos ve botnet saldırıları bizim sunucumuza değil CloudFlare sunucularına iletilir. Bizim web sunucumuz gelen bu saldırıdan etkilenmeden çalışmasına devam etmektedir. CloudFlare burada bizim için bir köprü görevi üstlenmektedir. Biraz daha açıklayacak olursam eğer, eyupcelik.com.tr adresine gönderdiğimiz bir ping isteği uma.ns.cloudflare.com sunucusuna gönderilmiş olur. Gelen cevapta eyupcelik.com.tr adresinden uma.ns.cloudflare.com sunucusuna gönderilir, ordan da ziyaretçiye cevap yollanır. eyupcelik.com.tradresinin fiziksel olarak kullandığı ip adresi ile uma.ns.cloudflare.com adresinin kullanmış oldukları ip adresleri farklıdır. Bir saldırı yapıldığında, saldırıyı yapan kişi bunu fiziksel sunucuya yaptığını sanacaktır ama gerçekte bizim sunucumuz bundan etkilenmemiş olacaktır.



(Resim-04)’te tipik bir çalışma örneği mevcuttur. Ziyaretçi eyupcelik.com.tr adresine ping isteği gönderdiğinde bu istek önce CloudFlare sunucusundaki güvenlik duvarına iletilmiş. Firewall gelen bu isteğe olumlu cevap verdiğinde, istek uma.ns.cloudflare.com yada phil.ns.cloudflare.com sunucularına iletilmiştir. Ardından istek fiziksel sunucunun nameserverları olan ns1.eyupcelik.com.tr veya ns2.eyupcelik.com.tr adreslerinden birine iletilir. Daha sonra burdan da web sunucusunun önünde bulunan firewall cihazına yönlendirilir. Firewall cihazı isteği değerlendirir ve sonuç olumlu ise bu isteği web suncusuna iletir. Ardından ziyaretçiye geri dönüşte aynı yollar üzerinden gerçekleştirilir. Gönderilen isteğin zararlı bir istek olduğunu varsayarsak eğer, istek [B[CloudFlare sunucunun önünde bulunan firewall cihazına iletilir, firewall gelen isteğin zararlı olduğuna karar verirse eğer, isteği drop eder. Çok büyük çaplı bir saldırı (200 bin ve üzeri zombi bilgisayar ile) geldiğini düşünürsek, firewallun kaçırdığı paketler üstte anlattığım yolu izleyerek web sunucusunun önünde bulunan firewall cihazına iletilir. Bu cihazda gelen isteği kontrol eder ve zararlı ise drop ederek gelen paketi yok eder.

Şimdi CloudFlare sunucularını nasıl kullanacağımızı ve konfigürasyonunu inceleyelim. Hemen bir dipnot düşeyim, CloudFlare’i ücretsiz olarak kullanabilirsiniz.

CloudFlare adresine girip sağ üst köşede bulunan Sign Up’ı tıklıyoruz. Gelen kayıt formunu (Resim-05)’teki gibi dolduruyoruz