Slowloris saldırısı nedir?
Slowloris, web sunucusuna çok sayıda HTTP bağlantısı açıp her birini mümkün olduğunca yavaş ve yarım tutarak sunucunun eşzamanlı bağlantı sınırını doldurmayı amaçlayan bir hizmet engelleme saldırısıdır. Çok az bant genişliği gerektirir ve tek bir makineden bile etkili olabilir.
Klasik hacimsel saldırılardan farkı, trafiğin büyük olmamasıdır. Sunucu boşta bekleyen bağlantıları açık tuttuğu için meşru ziyaretçiler yeni bağlantı kuramaz hale gelir.
Nasıl çalışır?
Saldırgan geçerli bir HTTP isteğinin başlıklarını göndermeye başlar ama isteği hiç tamamlamaz. Belirli aralıklarla bir başlık satırı daha göndererek bağlantının zaman aşımına uğramasını önler. Sunucu isteğin bitmesini beklerken işçi süreçlerini veya iş parçacıklarını bu bağlantılara ayırır.
Her işlem başına bir iş parçacığı ya da süreç ayıran mimariler daha savunmasızdır. Olay tabanlı çalışan sunucular daha dayanıklıdır ama başlık zaman aşımları gevşekse onlar da zorlanabilir. Benzer mantıkla çalışan “yavaş gövde” (slow POST) ve “yavaş okuma” varyantları da vardır.
Sunucu ve hosting ortamında
Apache'nin prefork ve worker modelleri, sınırlı MaxRequestWorkers değeri ile birlikte bu saldırıya karşı klasik hedeftir. Belirtiler: sunucu yükü düşük görünürken sitenin yanıt vermemesi, ss çıktısında çok sayıda ESTABLISHED bağlantı ve erişim günlüğünde tamamlanmamış istekler. Ters vekil olarak önde duran bir Nginx ya da CDN genellikle bu saldırıyı sizin yerinize emer.
Paylaşımlı hostingde bir sitenin hedef alınması aynı sunucudaki diğer sitelerin de yavaşlamasına yol açabilir.
Nasıl korunulur?
- Başlık ve gövde için zaman aşımlarını kısaltın; Apache'de
mod_reqtimeout, Nginx'teclient_header_timeoutveclient_body_timeout. - Olay tabanlı bir ters vekili (Nginx gibi) uygulamanın önüne koyun.
- IP başına eşzamanlı bağlantı sayısını sınırlayın (
limit_conn, güvenlik duvarı kuralları). - CDN veya DDoS koruma hizmetini kullanın; bağlantıyı onlar sonlandırsın.
- Fail2ban veya güvenlik duvarı ile aşırı bağlantı açan adresleri geçici engelleyin.
- Bağlantı sayısını izleyip eşik aşımında uyarı kurun.
Sık yapılan hatalar
- Yalnızca bant genişliğini izleyip bağlantı sayısını izlememek.
- Zaman aşımlarını uygulamanın gereğinden çok yüksek bırakmak.
- Sunucuyu doğrudan internete açıp ters vekil kullanmamak.
- Sorunu “yük” sanıp yalnızca kaynak eklemek.
Sık sorulan sorular
Slowloris ile DDoS aynı şey mi?
Slowloris bir hizmet engelleme saldırısıdır ve tek makineyle yapılabilir; DDoS ise birçok kaynaktan dağıtık gelir. Yöntem ve savunma farklıdır.
Nginx Slowloris'e karşı bağışık mı?
Tamamen değil ama bağlantı başına kaynak maliyeti çok düşüktür, bu yüzden çok daha dayanıklıdır. Yine de zaman aşımlarını ayarlamak gerekir.
Saldırıyı nasıl fark ederim?
Düşük CPU ile site erişilemezse, açık bağlantı sayısına bakın. Aynı IP'lerden gelen çok sayıda yarım istek tipik işarettir.
İlgili terimler
- SQL enjeksiyonu (SQL injection)Kullanıcı girdisi üzerinden veritabanı sorgusuna kötü amaçlı komut sızdırma.
- SSRF (Sunucu taraflı istek sahteciliği)Sunucuyu, saldırganın seçtiği iç ya da dış adreslere istek atmaya zorlamak.
- Tedarik zinciri saldırısıGüvenilen bir yazılım, kütüphane ya da hizmet üzerinden hedefe ulaşmak.
- Use-after-freeSerbest bırakılmış belleğin sonradan kullanılmaya devam edilmesi.
- WebshellWeb sunucusuna yüklenen, tarayıcıdan komut çalıştırmaya yarayan zararlı betik.
- XSS (Siteler arası betik çalıştırma)Saldırganın başkalarının tarayıcısında kendi JavaScript kodunu çalıştırması.