Ana Sayfa » Security » Apache HTTP DoS Tool ve Önlemler

Apache HTTP DoS Tool ve Önlemler


BerbatKötüİdare EderGüzelHarika (Henüz Puan Verilmedi. Oy kullanarak siz de katkı yapabilirsiniz.)
Loading...
Geçen günlerde,  enteresan bir HTTP DoS tool'u yayınlandı.  Perl ile yazılmış ve kullanımı çok kolay olan bu tool ile gibi istekleri karşılamak için birden fazla süreç çalıştıran web sunucularını hizmet veremez hale getirmek oldukça basit. HTTP request sent, awaiting response…

Bu tool, diğer DoS saldırılarında da olduğu gibi sunucunun kaynaklarının tükenmesine ve bir müddet sonra  hizmet veremez duruma gelmesine sebep oluyor fakat bu işi, tamamlanmamış http istek paketleri göndererek yapıyor. Yani, hedef sunucu gelen http isteklerinin tamamlanmasını bekliyor ancak istekler sürekli geliyor olmasına rağmen tamamlanmadığından ve tamamlanması için kurulu olan bağlantı sonlandırılmadığından dolayı çok kısa bir süre sonra sunucu yeni ve legal isteklere yanıt veremez duruma geliyor.

Bu tool ile yapılacak  bir saldırıdan korunnmak için  bir iki yöntem mevcut, bu yazıda bu konuya değinmek istiyorum.

Nereden nasıl bulunabileceğine ve kullanılabileceğine değinmeyeceğim bu , 1.x ve 2.x, squid, dhttpd, GoAhead gibi web sunucularını etkiliyor. Ben default ayarlarla çalışan bir 2.0 üzerinde test ettim ve sunucunun down olması bir kaç saniyeyi bulmadı.  Script tarafından gönderilen paketler tamamlanmamış http istekleri olduğundan dolayı, bu dos attack'ı sırasında apache'nin log dosyalarına herhangi bir şey yazılmıyor; yani ilk etapta loglardan bir şey çıkarmak mümkün olamayabilir.

Saldırı tipi DoS olduğundan ve sürekli aynı ip adresinden geliyor olduğu için saldırı sırasında engellemek kolay. Web sunucunuza açılmış olan connection'lara baktığınız zaman saldırıya ait bağlantıları kolayca tespit edebilir, 'unuzdan erişimini engelleyebilirsiniz.

Ancak, saldırıya maruz kalsanız bile  etkilenmemek için aşağıdaki işlemlerden birisi uygulanabilir.

IDS/IPS Kuralı Oluşturmak

Gönderilen istek parçaları tamamen legal, yani önde bir IDS ya da IPS çalıştırıyor olsanız bile sisteminiz bu legal durumlardan şüpelenmeyebilir. Fakat kendi IDS kuralınızı yazarak saldırının önüne geçebilirsiniz.  İlgili atağa ait http isteği şu şekilde.

"GET / HTTP/1.1" 400 348 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;
Trident/4.0; . CLR 1.1.4322; . CLR 2.0.503l3; . CLR 3.0.4506.2152;
.NET CLR 3.5.30729; MSOffice 12)"

Bir IPS'iniz varsa, bu tool ile yapılacak olası bir saldırıdan etkilenmemenin en güzel yolu kendi kuralınızı yazmak ve yukarıda geçen http requestlerin bulunduğu paketleri drop etmektir. Ancak bir IPS kullanmıyorsanız, aşağıdaki diğer yöntemlere de göz atabilirisiniz.

Apache'de Timout Değerini Aşağı Çekmek

Normalde, apache'nin default timeout değer 300 sn (5 dakika) hal böyle olunca ilgili tool ile kurulan bağlantılar 5 dakika süreyle aktif olacaktır, bağlantıların timeout'a düşmesinden sonra ise yenileri açılacaktır.

Eğer bu değeri daha düşük bir süreye set ederseniz, tamamlanmayan http requestlerina ait bağlantılar çabucak sonlandırılacaktır. Timeout değerini 5 saniyeye set ederek yaptığım denemelerde apache, saldırı altında sorunsuz olarak hizmet vermeye devam etti.

Ancak, sonuç olarak timeout değerini 5 saniye gibi düşük bir değere set etmek, yavaş ya da sorunlu bağlantıya sahip olan kullnıcıları da etkileyebilecek bir durumdur. Böyle durumlarda ilgili web sitesini görüntüleyemeyebilirler.

Ayrıca, scriptin timeout değerini belirlemeye yarayan bir parametresi de bulunuyor. Yani saldırgan timeout değerini tam olarak tahmin edebilir ya da oldukça düşük tutarsa, daha çok band genişliği harcayacak olmasına rağmen başarılı olur.

Fakat bu yöntem ile en azından lamer'ların yapacağı saldırıların önüne geçebilirsiniz.

FreeBSD accf_http Modülünü Devreye Almak

Eğer apache sunucunuz FreeBSD üzerinde çalışıyorsa alınabilecek önlemlerden birisi de accf_http kernel modülünü devreye almaktır. Bu modül temel olarak, gelen bağlantılar için http istekleri tam olarak tamamlanana kadar bir tampon oluşturuyor. Sonuç olarak script aracılığı ile açılan tamamlanmamış http isteklerine ait bağlantılar, apache'ye iletilmiyor ve bu şekilde saldırı riskini azaltmanız mümkün.

accf_http modülünü devreye aldıktan sonra yaptığım testlerde, yaklaşık 50bin tamamlanmamış http isteğinin gönderilmesinin ardından sunucunun durumdan etkilenmeden hizmet vermeye devam ettiğini gözlemledim. Dolayısı ile kullanılabilicek bir yöntem.

Şu şekilde hemen devreye alabilirsiniz:

# kldload accf_http

Ayrıca, açılışlarda devreye alınması için

/boot/loader.conf dosyanıza

accf_http_load="YES"

satırını ekleyebilirsiniz.

Apache'de mod_limitipconn Modülünü Devreye Almak

limitpcon modülü, belirli bir ip'den gelecek maksimum bağlantı isteğinin set edilmesine yarıyor. Yani bu modülü devreye aldıktan sonra, tek bir ip'den açılabilecek bağlantı sayısını belirleyebiliyorsunuz. Her ne kadar benzer bir işlemm pf ya da iptables gibi 'lar üzerinden yapılabiliyor olsa da bir 'unuz yoksa bu yöntemi kullanabilirsiniz.

Ancak, büyük bir lokal ağdan ya da proxy arkasından çok sayıda kişi apache sunucunuza bağlanıyorlarsa bu modül ilgili kişilerin de erişimini engelleyebilir.

Modül'ün nasıl kurulup kullanılabileceği ile ilgili detaylar için aşağdaki adrese bakabilirsiniz.

http://dominia.org/djao/limitipconn.html

IIS 6.0/7.0 ya da lighttpd kullanıyorsanız endişelenmenize gerek yok. Zira bu sunucular threaded process mantığı ile çalışmadıkları için olası bir saldırıdan etkilenmemekteler.

Visited 744 times, 1 visit(s) today
Kategoriler: Security |

Bu yazılar da ilginizi çekebilir:


- Video: Dns Cache Poisoning Attack
- DNS Cache Poisoning
- IPFIREWALL ve Snort_Inline ile IPS – Part 1: IPFW Kurulumu
- IPFIREWALL ve Snort_Inline ile IPS – Part 2: Snort_Inline Kurulumu
- Squid ve IPFIREWALL ile Transparan Proxy Kurulumu

Yorumlar


  1. Özkan ŞENOVA | (Haziran 22nd, 2009 11:41 am)

    mod_vhost_limit’ de işe yarıyor bu konuda. Tanımlanmış bir virtualhost’a aynı anda kaç connection açılabileceğini belirleyebiliyorsunuz.

    [Cevapla]

  2. Hakan | (Aralık 28th, 2010 5:24 pm)

    Bu sitede http://www.astalavista.com/files/file/11803-fwsnort-11-application-layer-idsips-with-iptables/

    Application Layer mevcut biraz bilgi verebilirmisiniz. Kursak faydası olur mu?

    [Cevapla]

  3. Hakan | (Aralık 28th, 2010 5:59 pm)

    Benim loglarda bunlar var. Saldırı mı bunlar?
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.
    2 329458 11.83%
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Tri
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.
    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Hayir bunlar saldiri ile alakali loglar degil. Rahat olabilirsiniz.

    [Cevapla]

  4. hakan | (Şubat 24th, 2011 2:42 am)

    saldırı olduğunu nasıl ve nerden alayabiliriz yani log dosyalarında ne yer alır bu gibi durumlarda veya başka bi yerlerde ?

    [Cevapla]

Trackbacks

Yorumda bulunun.