Şifreleme birden fazla açıdan asimetriktir. Bir TLS el sıkışmasını tamamlamak, sunucudan istemciden anlamlı ölçüde daha fazla iş gerektirir ve bu dengesizlik saldırının tamamıdır. Bir el sıkışma seli tek bir HTTP isteği bile göndermez; bağlantılar açar, müzakereye başlar ve pahalı kısmı sunucuya yaptırır.
Sunucu Neden Daha Fazla Öder?
Bir el sıkışması sırasında sunucu özel anahtar işlemleri yapar, oturum durumu tahsis eder ve istemci ağırdan alırken bir soket tutar. Alışverişi tamamlamaya hiç niyeti olmayan bir istemci, bu maliyetin çoğunu atlar. Saniyede birkaç bin eşzamanlı denemeyle çarpın, işlemci asla bir istek taşımayacak bağlantılar için kriptografi yaparak tamamen meşgul olur.
Yeniden müzakere işleri kötüleştirdi
Eski protokol sürümleri, bir istemcinin kurulmuş bir bağlantı içinde yeniden müzakere talep etmesine izin veriyordu; yeni bir soket açmadan pahalı adımı tekrarlıyordu. Modern sürümler onu kaldırdı ki TLS kütüphanelerini güncel tutmanın kendisinin bir DDoS denetimi olmasının bir sebebi budur.
Nasıl Görünür?
- İşlemci kullanımı sabitlenirken istek logları neredeyse boş kalır — trafik asla bir HTTP isteğine dönüşmez, dolayısıyla erişim loguna hiç ulaşmaz.
- Bağlantı sayıları aktif oturum sayısının çok ötesine tırmanır.
- El sıkışma başarısızlığı ve tamamlanmamış bağlantı sayaçları keskin biçimde yükselir.
- Meşru kullanıcılar yavaş sayfalar yerine bağlantı sırasında zaman aşımları görür: site yavaş olacak kadar bile ilerleyemez.
Savunmalar
- TLS'i bunun için yapılmış bir uçta sonlandırın, böylece maliyet uygulama sunucunuza değil, onu soğurmak için tasarlanmış altyapıya insin.
- Kaynak adres başına yeni bağlantıları, istek hız limitlerinden ayrı olarak sınırlayın — sel istekler değil, bağlantılardır.
- El sıkışma zaman aşımlarını kısa tutun ki müzakere ortasında takılan bir istemci kaynakları hızla bıraksın.
- Modern şifre paketlerini ve güncel kütüphane sürümlerini tercih edin; yük altında performans farkı önemlidir.
- El sıkışma başarısızlıklarını birinci sınıf bir metrik olarak izleyin. Genelde mevcut en erken sinyaldir, tam da istek loglarında hiçbir şey görünmediği için.
Tespit Boşluğu
Çoğu uygulama izlemesi istekte başlar. Bir el sıkışma seli tamamen o çizginin öncesinde yaşar ki bu yüzden ekipler bazen mükemmel sağlıklı çıkan bir veritabanını araştırarak bir saat harcar. Panolarınız bağlantıları ve el sıkışmalarını isteklerden ayrı gösteremiyorsa, tam da bu saldırının çalıştığı yerde bir kör noktanız var demektir.