Şubat 22, 2020

Slowloris Nedir ve Nasıl çalışır, Nasıl Önlem Alınır?

Slowloris Nedir ve Nasıl çalışır?

Slowloris temel olarak iş parçacığı sunucularını etkileyen bir HTTP Hizmet Reddi saldırısıdır.

Şöyle çalışır:
1- Çok sayıda HTTP isteği yapmaya başlıyoruz.
2- Bağlantıları açık tutmak için başlıkları düzenli aralıklarla (~ 15 saniyede bir) gönderiyoruz.
3- Sunucu bir bağlantıyı kapatırsa, aynı şeyi yapmaya devam eden yeni bir bağlantı oluştururuz. Ayrıca sunucu bir bağlantıyı kapatmazsa biz asla bağlantıyı kapatmıyoruz.

Bu işlemler, sunucu iş parçacığı havuzunu tüketir ve sunucu başkalarına yanıt veremez.

 

Slowloris 7. uygulama katmanına yapılan bir protokol saldırısıdır. Avantajlarından birisi çok fazla bant genişliğine ihtiyaç duymamasıdır ki bu da bizim slowloris’i çalıştırıp başka şeylere göz atarken problem yaşamamamızı sağlar. (örn. Web’e girmek, oyun oynamak vs.)

Peki gerçekten de arka planda olay nasıl işliyor?

Bir web sitesine girdiğimizde web sitesine “get” isteği gönderiyoruz ve “index.html’i ver” diyoruz.

Ardından sunucu da bizlere “index.html”i gönderiyor.

Daha sonra “index.html” okudum, şimdi biliyorum ki “header.jpeg”e ihtiyacım var.

Bu yüzden başka bir get isteği göndeririz ve bu kısa sohbetleri sürekli olarak devam eder.

Bu sohbetler olurken bizde siteye hakkımızda bir kaç bilgi veriyoruz. Örn: Firefox vb. bir tarayıcı kullanıyorum vs.. Ve bu gönderim işlemi daima “twocarriage (/r) returnline (/n) feeds” /r/n ile biter. Bu iki sinyal http isteğinin sonlandığını gösterir.

Tam bu noktada, Slowloris’in yapımcısı Rsanke düşünüyor ki, eğer ben bu bitiş sinyallerini hiç göndermezsem ne olur? Web sitesini beni bekleyecek şekilde bekletebilir miyim? Olabildiğince yavaş hareket edebilir miyim? Ve bunu yaparken onları çökertebilir miyim? Ve evet, yapabilir.

Slowloris’in burada yaptığı siteye kendisi hakkındaki bilgileri olabildiğince yavaş vermesidir. Örneğin siteden index.html’i ister ve geri dönüt olarak sadece bir boşluk, sıfır ya da rastgele sayılar gönderir. Ve site bir süre bekler, daha sonra site bizim siteden ayrıldığımızı varsayacakken slowloris hala burada olduğunu belirtir ve bunu işlemi tekrar etmeye devam eder. Ve diğer iş parçacıklarında açtığı diğer bağlantılar ile sitedeki bütün bağlantıları meşgul etmeye çalışır. Ve bu işlemlerin bir güvenlik duvarı veya onun gibi bir şey ile tespit edilmesi oldukça zordur. Çünkü burada yapılan doğrulanmış HTTP istekleri göndermekten başka bir şey değildir. Tek sorun isteklerin süper yavaş olmasıdır. Bu siteye çok kötü bir internet bağlantımızın olduğunu söylemek gibi bir şeydir.

Bu işlemden bütün web sunucuları etkilenmez, çoğunlukla apache etkilenir ki günümüzde internet sunucularının yarısı apachedir. Ancak, Apache 2.2.15, geliştiriciler tarafından desteklenen bir çözüm olan mod_reqtimeout modülünü içerir. Bu modül uzun süre bekleyen işlemlerin sonlandırılmasını sağlayarak saldırıyı engeller.

Apache geliştiricilerinin buradaki çalışma sistemi şu şekildedir. Her eş zamanlı bağlantıya hizmet etmek için yeni bir iş parçacağı başlatmanın iyi bir fikir olduğunu düşünürler ve bu nedenle bir HTTP isteği ile bir bağlantı geldiğinde, bu isteği işleyen yeni bir iş parçacığı oluşturdular ve bağlantı gittiğinde iş parçacığı sonlanacak şekilde programladılar.

Sitemiz slowloris’e karşı savunmasız mı? Nasıl test edebiliriz?

Bunun içi yazılmış bir tool olduğu için testi kolayca yapabiliriz.

Öncelikle uygulama güncellemelerini alıyoruz ve aracı kuruyoruz.

 

Test sırasında da sunucu uygun kısmında YES yazıyor ise, sunucunuzun slowlorise karşı koruması vardır.

NO yazıyor ise önlem almanızı öneririz.

Testten sonra arkada neler olduğunu görmek için output dosyasını inceleyebilirsiniz.

Slowloris’e Karşı Sitemizi Nasıl Savunabiliriz?

Slowloris saldırısı nasıl azaltılır?

Slowloris’e karşı savunmasız olan web sunucuları için, bazı etkileri hafifletmenin yolları vardır. Savunmasız sunucular için azaltma seçenekleri 3 genel kategoriye ayrılabilir:

Sunucu kullanılabilirliğini artırın – Sunucunun herhangi bir anda izin vereceği maksimum istemci sayısını artırmak, saldırganın sunucuyu aşırı yüklemeden önce yapması gereken bağlantı sayısını artıracaktır. Gerçekçi olarak, bir saldırgan, artıştan bağımsız olarak sunucu kapasitesini aşmak için saldırı sayısını ölçekleyebilir.
Gelen talepleri hız sınırı – Belirli kullanım faktörlerine göre erişimi kısıtlamak, Slowloris saldırısını azaltmaya yardımcı olacaktır. Tek bir IP adresinin yapmasına izin verilen maksimum bağlantı sayısını sınırlama, yavaş aktarım hızlarını sınırlama ve bir istemcinin bağlantıda kalmasına izin verilen maksimum süreyi sınırlama gibi teknikler düşük ve yavaş saldırıların etkinliğini sınırlama yaklaşımlarıdır.
Bulut tabanlı koruma – Kaynak sunucuyu koruyarak, ters proxy olarak işlev görebilen bir hizmet kullanın.

Web sunucusunun izin vereceği maksimum istemci sayısını artırın
Tek bir IP adresinin denemesine izin verilen bağlantı sayısını sınırlayın
Bir bağlantıya izin verilen minimum aktarım hızına kısıtlamalar koyun
İstemcinin bağlantıda kalmasına izin verilen süreyi sınırlayın.

Bulut tabanlı koruma – Kaynak sunucuyu koruyarak, ters proxy olarak işlev görebilen bir hizmet kullanın.

Cloudflare bir Slowloris saldırısını nasıl azaltır?

Cloudflare, kaynak sunucuya herhangi bir şey göndermeye başlamadan önce gelen istekleri arabelleğe alır. Sonuç olarak, Slowloris saldırıları gibi “düşük ve yavaş” saldırı trafiği asla hedeflenen hedefe ulaşmaz.

Kurulum

Şu anda pyhton ve perl dilinde yazılmış iki adet slowloris bulunmaktadır.

PHYTON;

Kali Linux makinemizi açıyoruz ve aşağıdaki komutları sırasıyla giriyoruz.

Aracın indiriyoruz.

 

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir