Memcached, nesnelerin belleğe kaydedilmesine ve çok sayıda açık bağlantıyla çalışacak şekilde tasarlanmasına olanak tanıyan açık kaynaklı ve kolayca dağıtılabilen dağıtılmış önbelleğe alma sistemidir. Memcached sunucu, TCP veya UDP bağlantı noktası 11211 üzerinden çalışır.
Memcrashed
Yaygın olarak kullanılan Memcached sunucularını orijinal gücünden 51.000 kat fazla güçle DDoS saldırı yapabilmenin bir yolu bulundu ve bu da büyük web sitelerinin ve internet altyapısının devre dışı kalmasına neden olmaya başladı.
24 Şubat 2018 tarihinde Cloudflare, memcashed amplification saldırılarını raporladı. Bildiriden 4 gün önce de memcache sorgularında artışlar olmaya başlıyordu. Bazı sağlayıcılar bu veriler ile network trafiğini incelediğinde hiçbir IPv4’in memcached veri kümesinde olmadığını fark etti.
Fark edilmeyen sonuç ise 260 Gbps. 1 haftalık amplification saldırısı için büyük bir skor olarak yorumlayabiliriz. Tabi bunun saldırı sıklığından ziyade paket büyüklüğünden olduğunu tablolardan da görebiliyoruz.
TCPDump örnek veri,
$ tcpdump -n -t -r memcrashed.pcap udp and port 11211 -c 10 IP 87.98.205.10.11211 > 104.28.1.1.1635: UDP, length 13 IP 87.98.244.20.11211 > 104.28.1.1.41281: UDP, length 1400 IP 87.98.244.20.11211 > 104.28.1.1.41281: UDP, length 1400 IP 188.138.125.254.11211 > 104.28.1.1.41281: UDP, length 1400 IP 188.138.125.254.11211 > 104.28.1.1.41281: UDP, length 1400 IP 188.138.125.254.11211 > 104.28.1.1.41281: UDP, length 1400 IP 188.138.125.254.11211 > 104.28.1.1.41281: UDP, length 1400 IP 188.138.125.254.11211 > 104.28.1.1.41281: UDP, length 1400 IP 5.196.85.159.11211 > 104.28.1.1.1635: UDP, length 1400 IP 46.31.44.199.11211 > 104.28.1.1.6358: UDP, length 13
Paketlerin büyüklüğü 1400 bayt. 23Mpps x 1400 = 257 Gbps.
15 baytlık talep 134KB yanıt tetikledi. Bu 10.000x büyütme faktörü! Pratikte, 15 byte’lık bir istekte 750 KB yanıt gördük (51,200x’lik bir amplifikasyon).
Memcrashed saldırısı nasıl işliyor?
Amplification saldırılarının etkili olmasında genellikle yanıt paketlerinin talep paketlerinden daha fazla olmasından kaynaklanıyor. 1×5 1×10 katına kadar bir fazlalıkla spoof edilebilir.
Nasıl çözeriz?
Local Server
Sadece local server’i dinlemesi için –listen 127.0.0.1 11211 parametresini kullanılabilir. -U 0 ile UDP devre dışı bırakılabilir.
Update 1.5.6
Dün Memcached’e bug fix içeren bir güncelleme yapıldı.
Güncelleme ile UDP portu varsayılan disable olarak değişti.
Doğrudan -U 11211 (UDP Port) parametresini uygulamadıkça Memcached UDP disable olarak çalışacaktır.