Çoğu DDoS saldırısı hacimle ilgilidir — bir hedefi kaldırabileceğinden fazla trafikle ezmek. Slowloris bunun tersidir ve onu zarif ve tehlikeli yapan da budur. 2009'da araştırmacı RSnake tarafından yazıldı, ne bir botnet ne de neredeyse hiç bant genişliği gerektirir. Sıradan bir bağlantıdaki tek bir dizüstü, korumasız bir Apache sunucusunu tamamen çevrimdışı bırakabilir — daha yüksek bağırarak değil, kapıyı açık tutup gitmeyi reddederek.
Saldırı Nasıl Çalışır?
Bir web sunucusu ancak belli sayıda eşzamanlı bağlantıyı kaldırabilir. Slowloris hedefe kaldırabildiği kadar çok bağlantı açar ve kısmi HTTP istek başlıkları gönderir — sonra, bir zaman aşımından kaçınacak kadar sık, bir başlık satırı daha gönderir, ama isteği asla bitirmez. Sunucu, asla tamamlanmayacak bir isteği kibarca bekleyerek bu bağlantıların her birini açık tutar. Apache'nin varsayılan işçi havuzu (genelde 256 eşzamanlı bağlantı civarı) bu yarı-açık isteklerle dolar ve bir kez dolunca gerçek ziyaretçiler basitçe reddedilir.
Neden Tespiti Bu Kadar Zordur?
Her bir Slowloris bağlantısı meşrudur. Gerçek bir TCP el sıkışması tamamlar ve gerçek, geçerli HTTP başlıkları gönderir — sadece yavaşça. Sahtecilik yok, sel yok, yükseltme yok ve toplam bant genişliği önemsizdir. Trafik sıçramalarını izleyen ağ düzeyi DDoS tespiti olağandışı bir şey görmez. Slowloris'i yakalamanın tek yolu davranışsaldır: anormal sayıda bağlantının aynı yarı-bitmiş durumda çok uzun süre oturduğunu fark etmek.
Yavaş ve sinsi, büyük ve gürültülüyü yener
Slowloris, bir kesinti yaratmak için hacme ihtiyacınız olmadığını kanıtlar — sınırlı bir kaynağı tüketmeniz gerekir. Burada kaynak bant genişliği değil, bağlantı yuvalarıdır; bant genişliği tabanlı savunmaların onu tamamen ıskalamasının sebebi budur.
Ona Karşı Nasıl Savunulur?
- Olay-güdümlü sunucuları tercih edin: nginx ve HAProxy, birçok boşta bağlantıyı Apache'nin işçi modelinden çok daha iyi kaldırır.
- Agresif başlık zaman aşımları ayarlayın — istek başlıklarını birkaç saniye içinde tamamlamayan bağlantıyı kapatın.
- Kaynak IP başına maksimum eşzamanlı bağlantı sayısını sınırlayın.
- Sunucunun önüne, HTTP'yi uçta sonlandıran bir ters vekil koyun ki yavaş bağlantılar vekilin bağlantı limitlerine yığılsın — ki bunlar tam da bunun için tasarlanmıştır — ve sunucunuza hiç ulaşmasın.
Akarguard Nereye Uyar?
Akarguard HTTP'yi ters-vekil edge'inde sonlandırdığı için, bir Slowloris saldırısı bağlantı yuvalarını sunucunuzda değil vekilde tüketir — ve vekilin bağlantı işleme ve IP başına limitleri tam da bu tür yavaş-ve-sinsi kötüye kullanımı soğurmak için yapılmıştır. Sunucunuz yalnızca tamamlanmış, iletilmiş istekler alır, böylece işçi havuzu asla yarı-açık bağlantılarla dolmaz. Panelden ayarladığınız IP başına bağlantı limitleriyle birleşince, tek başına bir Apache kutusunu düşürebilecek saldırı, edge'in arkasında bir hükümsüz olaya dönüşür.