İki kelime, iki zıt davranış
Bir sel saldırısı geldiğinde bir barındırma sağlayıcısının yapabileceği iki şey vardır ve sektör ikisini de "DDoS koruması" olarak satar. Birincisi emme: trafik sunucunuzun önünde bir scrubbing katmanına çekilir, saldırı paketleri orada düşürülür, meşru paketler yoluna devam eder ve servisiniz bu süre boyunca erişilebilir kalır. İkincisi blackholing'dir — null-routing ya da RFC 5635'e göre RTBH olarak da adlandırılır — burada IP adresiniz yönlendirme tablosundan çekilir, böylece ona hiçbir şey ulaşmaz. Sel artık veri merkezini vurmaz. Kullanıcılarınız, izleme sisteminiz ve SSH oturumunuz da öyle. Saldırgan, tam olarak parasını ödediği sonucu elde eder.
İkisi de gerçek bir mühendisliktir ve kendi çerçevesinde hiçbiri dürüstlükten uzak değildir. Blackholing var olur çünkü büyük bir seli emmenin gerçek bir maliyeti vardır — transit ölçülerek faturalandırılır, scrubbing kapasitesi satın alınır ve tahsis edilir — ve bir müşteriyi null-route ederek diğer dört yüz müşteriyi çevrimiçi tutan bütçeli bir barındırma sağlayıcısı savunulabilir bir karar veriyordur. Hile, zamirdedir. "DDoS koruması" her iki durumda da doğrudur; değişen, kimin servisinin korunduğudur. Her plan kartını önünüzde bu soruyla okuyun.
| Tepki | Saldırı trafiği | Servisiniz | Genellikle şöyle tanımlanır |
|---|---|---|---|
| Scrubbing / emme | Yukarı akışta filtrelenir, kenarda (edge) düşürülür | Ayakta kalır, genellikle görünür bir değişiklik olmaz | "Kesintisiz mitigasyon", "anycast scrubbing" |
| Blackhole / null-route | Meşru trafiğinizle birlikte atılır | Süre boyunca çevrimdışı — genellikle 1–24 h | "X Gbps'e kadar koruma", "geçici IP askıya alma" |
| Yalnızca kenar hız sınırlama (rate-limit) | Kısmen düşürülür, kısmen rastgele | Bozulur — gerçek kullanıcılar paket kaybı görür | "Temel koruma dahil" |
| Hiçbir şey (taşıyıcı karar verir) | Bir yukarı akış sağlayıcısı prefix'i blackhole edene kadar rack'e ulaşır | Çevrimdışı, rack komşularınız da öyle | "DDoS koruması mevcut" |
Ödeme yapmadan önce küçük puntoyu okumak
Kullanılan kelimeler durumu ele verir. "10 Gbps'e kadar koruma" bir tavan değeridir ve hemen ardından gelen cümle — trafiğin limiti aştığı durumla ilgili olan — null-route maddesidir. "Ek ücretle korumalı IP", varsayılan olarak aldığınız adresin korumasız olduğu anlamına gelir. "Olay başına", faturanın saldırıdan sonra geldiği anlamına gelir. Mitigasyona bağlı "makul kullanım" ise ayda belirli sayıda saldırı kotası, o kotayı aştıktan sonra kendi başınıza olduğunuz anlamına gelir. Bu ifadelerin hiçbiri yalan değildir; sadece göz gezdirilip geçilmek üzere yazılmışlardır.
İsim verilmiş, yayımlanmış bir örnek — çünkü dedikodu değil belgelenmiş bir politikadır: BuyVM, DDoS filtreli adresleri ayrı bir $3/month IP başına ek ücret olarak satar ve filtrelenmemiş adresler bir saldırı sürerken null-route edilir. Bunu fazla yorum katmadan BuyVM karşılaştırma sayfamızda anlatıyoruz, çünkü ne satın aldığınızı biliyorsanız ucuz, filtrelenmemiş bir IP tamamen makul bir üründür. Başarısızlık senaryosu, saat 03:00'te bir booter çalışırken durumu fark etmektir.
İlk faturadan önce ön satışa sorulmaya değer dört soru. Mitigasyon kapasitesi nedir ve bu rakam toplam mı, yoksa tek bir point of presence'ta mevcut olan rakam mı? Tek bir scrubbing merkezinde sonlanan bir "2 Tbps ağ", doldurulacak tek bir boruya sahiptir. Mitigasyon bu planda dahil mi, yoksa ek ücretli mi? Olay başına bir ücret mi var, yoksa mitigasyon edilen olaylar için aylık bir kota mı? Hangi eşikte null-route yapıyorsunuz ve ne kadar süreyle? Son soruyu bir rakamla yanıtlayan bir barındırma sağlayıcısı, onu sıfatlarla yanıtlayandan daha değerlidir.
Üç katman ve katmanın sorunu kimin çözebileceğini neden belirlediği
Layer 3/4 hacimsel (volumetric). SYN sel saldırıları, UDP sel saldırıları ve açık NTP, DNS, memcached, CLDAP ve SSDP servisleri üzerinden yansıma (reflection) ya da yükseltme (amplification). Saldırgan az miktarda yukarı akış bant genişliği harcar ve bunun kat kat fazlasını size yönlendirilmiş olarak geri alır. Bu bir bant genişliği ve saniyedeki paket sayısı (pps) sorunudur ve kategorik olarak sunucunuzda çözülemez: çekirdeğiniz paketi düşürebilene kadar, onu taşıyan boru zaten dolmuştur. Burada nftables içinde hiçbir şey sizi kurtarmaz. Yalnızca sizin üzerinizdeki kapasite kurtarır.
Layer 4 durum tükenmesi. SYN, ACK ve bağlantı sel saldırıları, boruyu doldurmak için değil bir tabloyu doldurmak için boyutlandırılır — çekirdeğin SYN backlog'u, conntrack tablosu, uygulamanızın accept kuyruğu. Bant genişliği önemsiz olabilir: birkaç yüz Mbps, barındırma sağlayıcısı tarafındaki grafik sakin bir öğleden sonra gibi görünürken ayarlanmamış bir sunucuyu çökertir. Bu katman gerçekten yarı yarıya sizindir: tcp_syncookies, boyutlandırılmış bir nf_conntrack_max ve kaynak başına limitlerle atlatılabilir, bunlar olmadan atlatılamaz.
Layer 7 uygulama. Tek tek geçerli isteklerden oluşan HTTP sel saldırıları — gerçek TLS el sıkışmaları, inandırıcı User-Agent dizeleri, bazen gerçek tarayıcılar — sitenizde pahalı olan her ne ise onu hedef alır: arama, giriş, sepet, veritabanı destekli bir listeleme sayfası. HTTP/2 Rapid Reset sınıfı, her istek sunucuya müşteriye mal olduğundan daha fazlasına mal olduğunda ne kadar az megabit'in yettiğini gösterdi. Bir scrubbing cihazı, sonlandırmadığı bir TLS oturumunun içini göremez, bu yüzden bu katman ya kenardaki (edge) kurallarla ya da kendi ters proxy'nizle ele alınır — asla ham hacimsel kapasiteyle değil.
| Katman | Tipik saldırı | Tipik boyut | Nerede durdurulmalı | Sunucunuzda düzeltilebilir mi? |
|---|---|---|---|---|
| L3/L4 hacimsel | UDP sel saldırısı, DNS/NTP/memcached amplification | 5 Gbps – 1+ Tbps | Yukarı akışta, kenarda (edge) | Hayır — boru önce dolar |
| L4 durum tükenmesi | SYN / ACK sel saldırısı, conntrack tükenmesi | 0.1 – 10 Gbps | Kenar (edge), artı çekirdek ayarı | Kısmen — syncookies, conntrack boyutlandırma |
| L7 uygulama | HTTP(S) istek sel saldırısı, yavaş POST, Rapid Reset | Genellikle 1 Gbps altında | Kenar kuralları ya da ters proxy'niz | Evet — rate-limit, challenge, cache |
Gerçek bir saldırı ne kadar büyük, dürüstçe söylemek gerekirse?
Küçük bir offshore sunucuya isabet eden saldırıların kabaca onda dokuzu bir booter ya da stresser'dan gelir — amplification kapasitesini dakika başına yeniden satan, ayda $10 ile $30 arasına mal olan bir abonelik hizmeti. Bunlar birkaç dakikalık patlamalar halinde 5 ile 50 Gbps arasında bir şey verir ve bir Minecraft sunucusunun, bir IRC ağının, bir Tor rölesinin, kızgın bir eski moderatörü olan bir forumun ya da rekabetçi bir oyun lobisinin gerçekte karşılaştığı şey budur. Bu bant tamamen atlatılabilir, ayrıca korumasız bir $5 VPS'i devirmeye de fazlasıyla yeter.
Bir üst bant — kiralık bir botnet'ten gelen 100 ile 400 Gbps arası — birinin belirli bir kini ve bir bütçesi olduğunda gelir. Küçük hedeflere karşı nadirdir, kumar, yayın (streaming) ve yetişkin siteleri için ise rutindir. Bunun üzerinde, büyük mitigasyon sağlayıcıları tarafından raporlanan, artık saniyede birden fazla terabit ve saniyede yüzlerce milyon istekle ölçülen rekor sınıfı olaylar bulunur; Cloudflare Radar'daki üç aylık rakamlar bilinen genel referanstır. Neredeyse kesinlikle bunlardan birinin hedeflenen amacı siz değilsinizdir.
Yine de birinin kazazedesi olabilirsiniz ve hiç kimsenin plan kartına yazmadığı kısım budur: yan hasar prefix üzerinden yayılır. Bir barındırma sağlayıcısı /24 granülerliğinde blackhole yapıyorsa — birçoğu yapar, çünkü çoğu taşıyıcının RTBH için kabul edeceği en küçük prefix budur — o zaman alt ağınızdaki tek bir adresi hedef alan bir saldırı, içindeki her adresi düşürür. Kesintisiz çalışma süreniz bir yabancının düşmanlarına bağlıdır. Kapasite payı, bu kararın hiç verilmesine gerek kalmamasını sağlayan şeydir.
Övünmek için değil, kıyaslama için kendi rakamlarımız: dört point of presence'a bölünmüş 1 Tbps anycast L3/L4 scrubbing, her biri tek başına kabaca 300 Gbps emebiliyor, otomatik tespit iki saniyenin altında. Bir müşteri için emdiğimiz en büyük olay bir oyun sunucusuna karşı 600 Gbps'in üzerindeydi ve oyuncu bağlantıları düşmedi. Mimari, ağ sayfasında daha ayrıntılı olarak belgelenmiştir.
Dahil, olay başına ya da kota — ticari model önemlidir
Mitigasyonu satmanın üç yolu vardır ve bunlar çok farklı faturalar üretir. Dahil: maliyet plana dahil edilmiştir ve bir saldırı ödediğiniz miktarda hiçbir şeyi değiştirmez. Olay başına: mitigasyon edilen her olay için, bazen mitigasyon süresinin saati başına ücretlendirilirsiniz. Kota: ayda belirli sayıda olay, ya da barındırma sağlayıcısının ne zaman yeterince aldığınıza karar vermesine izin veren bir "makul kullanım" maddesi.
Olay başına model bir dolandırıcılık değildir. Scrub edilen trafik düşürülmeden önce yine de barındırma sağlayıcısının transitinden geçer ve transit, 95. yüzdelik dilime göre ya da taahhüt edilmiş bir orana karşı faturalandırılır — tek bir müşteriye karşı sürdürülen bir kampanya, birinin faturasında gerçek bir kalemdir. Sorun adalet değil, öngörülebilirliktir: iki haftalık bir kampanya altında, olay başına ücretlendiren bir barındırma sağlayıcısı size yapılan saldırıyı sizin için bir faturaya dönüştürür ki bu da ekstra adımlı ikinci bir saldırıdır. Buna ihtiyacınız olmadan önce hangi modelin geçerli olduğunu sorun.
Kontrol edilebilmesi için açıkça belirtilen tutumumuz: kalkan, $8.50'lik Starter'dan $299.50'lik Citadel'e kadar her planda varsayılan olarak açıktır, opt-in yoktur, olay başına ücret yoktur, aylık kota yoktur ve mitigasyona bağlı bir "makul kullanım" maddesi yoktur. En ucuz VPS'te de en büyük dedicated sunucuda da aynı altyapı çalışır — bkz. VPS planları ve dedicated katmanlar. Katmanla birlikte ölçeklenen şey uplink ve isteğe bağlı Layer 7 kural seti içindir, korunup korunmadığınız değil.
Anycast dağılımı ve tespit süresinin neden manşetlik kapasiteyi yendiği
Tek bir scrubbing merkezinin kesin bir tavanı vardır: o tek binaya giren transit. Ayrıca bir gecikme maliyeti de vardır, çünkü mitigasyon sırasında herkesin trafiği önce o binaya taşınır — bazı barındırma sağlayıcılarının bir saldırı başladığı anda Avrupalı kullanıcılar için gözle görülür şekilde yavaşlamasının ve saldırı durana kadar öyle kalmasının nedeni budur.
Anycast, herhangi bir donanım devreye girmeden önce aritmetiği değiştirir. Aynı prefix her point of presence'tan duyurulur, böylece küresel olarak dağıtılmış bir botnet, yalnızca internet topolojisi tarafından bu noktalara bölünür: her yerden kaynaklanan 600 Gbps'lik bir saldırı, tek bir yerde 600 Gbps yerine dört yerde kabaca 150 Gbps olarak gelir. İşin büyük kısmını dağılım yapar; scrubbing donanımının yalnızca coğrafyanın çoktan böldüğü kısımla ilgilenmesi gerekir.
Tespit süresi, hak ettiği değeri görmeyen rakamdır. İki saniyede devreye giren mitigasyon bir TCP oturumu için görünmezdir; altmış saniyede devreye giren mitigasyon, kullanıcılarınız sayfayı iki kez yeniden yükleyip ayrıldıktan ve bir oyun lobisi boşaldıktan sonra gelir. Bir barındırma sağlayıcısı kapasiteyi belirtip tespit gecikmesini belirtmiyorsa, ikinci rakamı isteyin — kullanıcılarınızın hiç fark edip etmediğine karar veren şey odur.
Kendi prefix'inizi getirirseniz, blackholing size yapılan bir şey olmaktan çıkıp elinizde tuttuğunuz bir neşter haline gelir. BGP topluluklarımız taşıyıcı başına önceliksizleştirmeyi (cs:100:carrier), bölgesel prepend'i (cs:200:region) ve seçici blackhole'u (cs:666:prefix) kapsar, böylece tahsisinizin geri kalanı hizmet vermeye devam ederken saldırı altındaki tek bir adresi null-route edebilirsiniz. Doğru kullanılan blackholing budur: cerrahi, kısa süreli ve sizin kararınız.
Offshore komplikasyonu: önde bir ABD proxy'si amacı boşa çıkarır
Her forumdaki standart tavsiye "onu Cloudflare'in arkasına koy, ücretsiz katman yeterli" şeklindedir. Sıradan bir site için bu iyi bir tavsiyedir. Bir offshore barındırma sağlayıcısını yargı yetkisi nedenleriyle seçtiyseniz, bu tavsiye geride bıraktığınız her şeyi sessizce geri getirir: ABD'de kurulmuş bir şirket artık TLS'inizi sonlandırır ve düz metninizi görür, abuse ve telif hakkı şikayetlerini alır ve bunlara kendi politikası altında işlem yapar, bir e-posta adresine ve genellikle bir ödeme yöntemine bağlı bir hesap tutar ve ABD yasal sürecine tabi tutulabilir. Barındırma sağlayıcınızın bir DMCA bildirimini görmezden gelmesi, CDN'iniz ona uyduğunda pek bir işe yaramaz — mekanizmalar DMCA görmezden gelme açıklamasında, yargı yetkisi riski ise 14-Eyes rehberinde yer alır.
Bir proxy ayrıca, origin'i proxy'nin prefix'lerine güvenlik duvarıyla kısıtlamadığınız ve öyle tutmadığınız sürece origin'inizi de gizlemez. Bu durumda bile adres; pasif DNS geçmişi üzerinden, origin bir zamanlar kendi adıyla TLS yanıtı verdiyse sertifika şeffaflığı kayıtları üzerinden, doğrudan sunucudan gönderilen posta üzerinden, hiç kaldırılmamış eski bir A kaydı üzerinden ve sunucunun kendi hostname'ini yansıtan herhangi bir hata sayfası üzerinden sızar. "Korumalı" sitelerin yine de düşürülme yolu, origin'e doğrudan gelen isabetlerdir. Anonim barındırma kılavuzu, sızıntı yüzeyinin tamamını ele alır.
Yargı yetkisi maliyeti olmadan bir proxy katmanı istiyorsanız, bunu kendiniz çalıştırın: aynı ya da uyumlu bir yargı bölgesinde ikinci küçük bir instance, kendi anahtarınız altında TLS'i sonlandıran ve origin'in güvenlik duvarının o adresten başka hiçbir şeyi kabul etmediği bir kurulum. Önbelleğe almayı ve istek filtrelemeyi elinizde tutarsınız ve güven zincirine hiçbir üçüncü taraf katılmaz. Her iki makine de aynı scrubbing altyapısının arkasında durur, bu yüzden proxy yeni bir yumuşak hedef değildir.
Sunucuda hâlâ sizin işiniz olan şey
Yukarı akış scrubbing borusu korur. Çekirdeğinizi ayarlamaz ve durum tükenmesi bandı, ayarlanmamış bir sunucunun ağın zar zor fark ettiği bir saldırıya yenik düştüğü yerdir. Getirisi en yüksekten başlayarak kısa liste: net.ipv4.tcp_syncookies'i etkinleştirin ve net.ipv4.tcp_max_syn_backlog'u yükseltin (parametreler çekirdeğin ip-sysctl referansında belgelenmiştir); nf_conntrack_max'i gerçekten beklediğiniz bağlantı sayısına göre boyutlandırın ya da tablo hiç sorgulanmasın diye yüksek hızlı UDP oyun trafiği için notrack kullanın; kenarın (edge) hassas olacağına güvenmek yerine nftables içinde kaynak başına hız limitleri ekleyin.
Uygulama tarafında, nginx'teki limit_req ve limit_conn hiçbir şeye mal olmaz ve insan gibi görünecek şekilde kasıtlı olarak biçimlendirilmemiş çoğu L7 sel saldırısını durdurur. Önbelleğe alınabilecek her şeyi önbelleğe alın, çünkü bir saldırganın en iyi hedefi her zaman her istekte veritabanından ürettiğiniz o tek sayfadır. SSH'yi ve herhangi bir kontrol panelini genel iş yükünü sunan adresten uzak tutun ya da bir allowlist'in arkasına alın.
İnsanların unuttuğu bir yön: bir yansıtıcı (reflector) olmayın. Sunucunuzdaki açık bir DNS resolver'ı, yapılandırılmamış bir NTP daemon'ı ya da dışarı açık bir memcached, sizi başkasının amplification saldırısının bir parçası yapar ve giden kötüye kullanım, gelenden çok daha sert ele alınır — AUP'de yayımlanan yanıt süresi, iki saat içinde null-route ve askıya almadır. Gelen sel saldırıları size olan bir şeydir; giden sel saldırıları ise sizin sorumlu olduğunuz bir şeydir.
Satın almadan önce gözden geçirmeye değer kontrol listesi
Barındırma sağlayıcılarını en hızlı ayıran sırayla dokuz soru. Mitigasyon kapasitesi nedir ve bu point of presence başına mı yoksa toplam mı? Plan fiyatına dahil mi, yoksa IP başına mı satılıyor? Olay başına bir ücret mi var, yoksa ayda mitigasyon edilen olaylar için bir kota mı? Tespit gecikmesi nedir? Layer 7 filtreleme hiç mevcut mu ve hangi katmanlarda? Hangi eşikte ve ne kadar süreyle null-route yapıyorsunuz, ve bu olduğunda size bildiriliyor mu? Mitigasyon etkinken yönlendirmemi ya da gecikmemi değiştiriyor mu? Koruma, varsayılan olarak aldığım adres üzerinde mi? Ve — neredeyse hiç kimsenin sormadığı soru — mitigasyon çalışırken trafiğim hakkında ne saklanıyor?
O son soru bu pazarda başka herhangi bir pazardan daha önemlidir. Scrubbing, yukarı akışta birinin paketlerinize baktığı anlamına gelir. Olaydan neyin hayatta kaldığını sorun. Bizim cevabımız ve bu bir saldırı sırasında değişmez: tespit, saklanan akış başına kayıtlar üzerinde değil, kenardaki (edge) toplu sayaçlar üzerinde çalışır — prefix başına saniyedeki paket ve bit sayısı — ve gizlilik politikasında yayımlanan, netflow yok, PCAP yok ve NIC mirroring yok şeklindeki sabit tutum, mitigasyon sırasında da tıpkı diğer zamanlarda olduğu gibi geçerlidir. Bunu cevaplayamayan bir barındırma sağlayıcısı size bir şey söylüyor demektir.
Cevaplar yetersiz gelirse, yedek plan ucuzdur: en küçük planın bir ayını satın alın, ona bir izleme probu yöneltin ve destek ekibine sunucu vurulduğunda ne olacağını doğrudan sorun. Burada sözleşme ya da kurulum ücreti yok, bu yüzden soruyu yazılı olarak savuşturan bir barındırma sağlayıcısını öğrenmenin maliyeti size $8.50'dir. Bir Starter dağıtın, ya da iş yükü cevabın katmanı değiştireceği kadar büyükse VPS'e karşı dedicated yazısını okuyun.