Sayfayı Yazdır | Pencereyi Kapat

HTTP-GET DDoS Atak Engelleme

Nereden Yazdırıldığı: Bilginin Adresi
Kategori: Bilgisayar Güvenliði / Computer Security
Forum Adı: Güvenlik / Security Makaleleri
Forum Tanımlaması: Bilgisayarýnýzý Her Türlü Saldýrýya Karþý Korumak Ýçin Yapmanýz Gerekenler
URL: https://www.bilgineferi.com/forum/forum_posts.asp?TID=7972
Tarih: 05-10-2024 Saat 17:03


Konu: HTTP-GET DDoS Atak Engelleme
Mesajı Yazan: megabros
Konu: HTTP-GET DDoS Atak Engelleme
Mesaj Tarihi: 24-08-2009 Saat 00:25

Bu makalede binlerce HTTP-GET isteði ile yapýlan DDoS ataklarý karþýsýnda nasýl davranmamýz gerektiði irdelenecektir. Ayrýca ataðýn boyutuna göre sýrasý ile almamýz gereken önlemler anlatýlacaktýr. Bildiðimiz gibi DDoS, birçok firmanýn baþýný aðrýtan ve bazý durumlarda önlenmesi çok güç olan bir atak türüdür. En baþta basit olarak senaryomuzu çizelim:

  • Linux Sunucu
  • Apache Web Sunucu
  • Alan ismi : www.xx.com

Yukarýda belirtildiði gibi üzerinde Apache Web Sunucusu çalýþan bir sunucumuz bulunmakta. Web sunucumuz üzerinde çalýþmakta olan www.xx.com adresine saniyede binlerce IP adresinden HTTP-GET isteði yapýlmaktadýr.
Bu durumda Apache belli bir sure sonra bu isteklere yanýt verememeye baþlayacaktýr. Eðer istekte bulunulan sayfanýn baðlandýðý bir veritabaný sunucumuz mevcut ise, bu istek veritabanýmýzýn da  yanýt verememesine sebep olacaktýr.

Peki ne yapacaðýz ?

Öncelikle þunu bilmeliyiz ki; her bir HTTP-GET isteði için ayrý bir baðlantý oluþturulmasýna gerek yoktur. Çünkü HTTP/1.1, açýlan bir baðlantý içerisinden dilediðimiz kadar istek göndermemize izin verir. Bu bilindiði gibi Request Pipelining olarak adlandýrýlmaktadýr. Bu da demek oluyor ki güvenlik duvarýmýzda (donanýmsal ya da yazýlýmsal) TCP 80 portuna gelen sadece bir HTTP-GET isteði görebiliriz ama aslýnda bu istek içerisinden binlerce istek alýyor olabiliriz.

  • Bir HTTP-GET ataðýnda öncelikle yapmamýz gereken þey web sunucumuzun loglarýný incelemek olacaktýr. Çünkü bu loglar icerisinde bizim IDP (Intrusion Detection & Prevention) sistemimiz üzerinden engelleyebilecegimiz sabit bir data bulabiliriz. Mesela sabit bir HTTP baþlýðý, referrer veya user-agent tespit edip IDP sistemimiz üzerinden engelleyebiliriz.

 

  • Eðer gelen istekler deðiþik çerezler ile geliyorsa ve bu alanda yapabileceðimiz ekstra bir þey yoksa ikinci bir önlem olarak, bir dakika icerisindeki web server loglarýna bakarak en cok istegi yapan IP adreslerini daha sistemimize ulaþmadan engelleyebiliriz. Ama örneðimizde olduðu gibi farklý kaynaklardan gelen  istekleri bu þekilde engellememiz fazla mümkün olamayacaktýr. Çünkü karþý karþýya olduðumuz atak türünde saldýrýlar binlerce farklý IP adresinden gelemekte ve bu IP adresleri sürekli deðiþmektedir.

 

  • Diðer bir yöntem olarak web sunucumuz (Apache) üzerinde çeþitli modüller kullanabiliriz. Mod_Evasive yada Mod_Choke, önerilebilecek modülleriden ikisidir. Fakat ataðýn büyüklüðüne ve getirdiði trafik yoðunluðuna göre bu modüller yetersiz kalabilir.

 

  • Bir sonraki aþama olarak IDP’ miz ya da güvenlik duvarýmýz üzerinde TCP Baðlantý Limiti (Connection Limit) koyarak ve eþik deðerini (threshold) düþürerek saniyede gelen bu aþýrý HTTP-GET isteklerini daha web sunucumuza ulaþmadan engelleyebiliriz. Bu genellikle etkili olan ve saldýrganýn baþarýsýný azaltan bir engelleme mekanizmasýdýr. Ama bu durumda gelen istek HTTP-GET isteði olduðu için güvenlik duvarýmýz ya da IDP’miz hangi isteðin dogru hangi isteðin yanlýþ olduðunu anlayamayacak ve bu durumda siteye normal olarak ulaþmak isteyen kiþilerin isteklerinin de engellenme ihtimali sozkonusu olacaktýr. Ayrýca bu iþlemde bile eðer atak çok büyük ise güvenlik sistemimizden kaçan istekler arka taraftaki web sunucumuza ulaþacak ve sitemizin saðlýklý çalýþmasýna engel olacaktýr.

 

  • TCP Baðlantý Limitleme iþleminin yaný sýra Apache sunucumuz üzerine bir Ters Vekil Sunucu (Reverse Proxy) kurup, sayfalarýn ön belleklenmesini saðlayarak gelen bu isteklerin sunucu tarafýnda herhangi bir TCP baðlantý açmadan alýnmasýný saðlayabiliriz. Nginx bu amaçla kullanýlabilecek faydalý bir yazýlýmdýr.

Bu iþlemlerin sonucunda baðlantý limiti (IDP ya da güvenlik duvarý) ile saniyede belirttigimiz limitin üzerinde gelen istekler engellenecek ve ters vekil sunucumuzun sayesinde gelen istekler daha Apache’ye ulaþmadan ön bellek üzerinden verilecektir. Ters vekil sunucumuzu kurduktan sonra IDP veya güvenlik duvarýmýz üzerinde yaptýðýmýz baðlantý limiti eþik deðerini yukarýlara çekerek testlerimizi yapabiliriz. Bu testlerin sonucunda saldýrý amaçlý baðlantýlar ile sitemize normal yollardan ulaþmak isteyen kullanýcýlar arasýnda bir denge kurulacak ve hatalý engellemelerin önü alýnacaktýr.

saygýlar..



Sayfayı Yazdır | Pencereyi Kapat