„Băiatul care ne-a făcut site-ul a configurat deja protecția împotriva DDoS.”
„Avem protecție împotriva DDoS, de ce a căzut site-ul?”
„Cât de multe mii cere Qrator?”
Pentru a răspunde corect la astfel de întrebări din partea clienților / șefilor, ar fi bine să știi ce se ascunde în spatele denumirii „protecție împotriva DDoS”. Alegerea serviciilor de protecție mai amintește de alegerea unui medicament de către un medic, decât de alegerea unei mese în IKEA.
Lucrez în susținerea site-urilor de 11 ani, am supraviețuit unor sute de atacuri asupra serviciilor pe care le susțin și acum voi povesti puțin despre „bucătăria” protecției.
Atacuri regulate. 350k req total, 52k req legitime
Primele atacuri au apărut practic odată cu internetul. DDoS ca fenomen a devenit masiv la sfârșitul anilor 2000 (uită-te ).
Aproape din 2015-2016, aproape toți furnizorii de hosting s-au pus sub protecția împotriva atacurilor DDoS, la fel ca majoritatea site-urilor notabile din domeniile concurente (fă un whois după IP-urile site-urilor eldorado.ru, leroymerlin.ru, tilda.ws, vei vedea rețelele operatorilor de protecție).
Dacă acum 10-20 de ani majoritatea atacurilor puteau fi respinse pe server (evaluează recomandările sistemului administrator Lenta.ru Maxim Moșkov din anii ‘90: ), atunci acum sarcinile de protecție s-au complicat.
Tipuri de atacuri DDoS din perspectiva alegerii operatorului de protecție
Atacuri la nivel L3 / L4 (după modelul OSI)
— UDP flood din botnet (direct de pe dispozitivele infectate, se trimit multe cereri către serviciul atacat, serverele suprasolicită canalul);
— amplificare DNS/NTP/etc (de pe dispozitivele infectate se trimit multe cereri către DNS/NTP/etc vulnerabile, adresa expeditorului este falsificată, o multitudine de pachete cu răspunsuri la cereri inundă canalul celui atacat; astfel se realizează cele mai masive atacuri în internetul modern);
— SYN / ACK flood (se trimit multe cereri de stabilire a conexiunii către serverele atacate, se produce o depășire a cozii de conexiuni);
— atacuri cu fragmentare a pachetelor, ping of death, ping flood (căută pe google te rog);
— și altele.
Aceste atacuri au ca scop „inundarea” canalului serverului sau „uciderea” capacității sale de a accepta noul trafic.
Deși SYN/ACK flood și amplificarea se diferă semnificativ, multe companii luptă împotriva lor la fel de bine. Problemele apar cu atacurile din următoarea grupă.
Atacuri la nivel L7 (nivelul aplicației)
— atacuri HTTP flood (dacă este atacat un site web sau un API HTTP);
— atacuri asupra zonelor vulnerabile ale site-ului (fără cache, care suprasolicită foarte mult site-ul etc.).
Scopul este de a forța serverul să lucreze „din greu”, procesând multe „cereri aparent reale” și să rămână fără resurse pentru cererile reale.
Deși există și alte tipuri de atacuri, acestea sunt cele mai comune.
Atacurile serioase la nivelul L7 sunt create în mod unic pentru fiecare proiect atacat.
De ce 2 grupe?
Pentru că există mulți care știu să respingă bine atacurile la nivel L3 / L4, dar nu se ocupă deloc de protecția la nivel de aplicație (L7), sau momentan fac față mai slab comparativ cu alternativele.
Cine este cine pe piața protecției DDoS
(părerea mea personală)
Protecția la nivel L3 / L4
Pentru a respinge atacurile cu amplificare („supersolicitare” a canalului serverului), sunt suficiente canale largi (multe dintre serviciile de protecție se conectează la majoritatea providerilor mari de backbone din Rusia și dispun de canale cu capacitate teoretică de peste 1 Tbps). Nu uitați că atacurile foarte rare cu amplificare durează mai puțin de o oră. Dacă sunteți Spamhaus și nu sunteți simpatic pentru toată lumea — da, vă pot încerca să doboare canalele timp de câteva zile, chiar cu riscul de a afecta supraviețuirea botnet-ului mondial utilizat. Dacă aveți doar un magazin online, chiar dacă este mvideo.ru — 1 Tbps timp de câteva zile nu veți vedea foarte curând (sper).
Pentru a respinge atacurile cu flood SYN / ACK, fragmentarea pachetelor etc., sunt necesare echipamente sau sisteme software pentru detectarea și interceptarea acestor atacuri.
Multe companii produc astfel de echipamente (Arbor, soluții de la Cisco, Huawei, soluții software de la Wanguard etc.), mulți operatori de backbone au deja instalat acest echipament și vând servicii de protecție DDoS (știu despre instalările de la Rostelecom, Megafon, TTK, MTS, practic la toți marii furnizori, asta o fac și hostingurile cu protecția lor a-la OVH.com, Hetzner.de, am avut experiență personală cu protecția la ihor.ru). Unele companii dezvoltă propriile soluții software (tehnologii de tip DPDK permit procesarea traficului de zeci de gigabiți pe o singură mașină fizică x86).
Dintre jucătorii cunoscuți, toți știu să respingă DDoS-urile L3/L4 într-o oarecare măsură. Nu pot să vă spun cine are cea mai mare capacitate maximă a canalului (aceasta este informație confidențială), dar de obicei nu este atât de important, iar diferența constă doar în cât de repede se activează protecția (imediat sau după câteva minute de timp de nefuncționare al proiectului, așa cum se întâmplă în cazul Hetzner).
Întrebarea este cât de calitativ se face acest lucru: un atac cu amplificare poate fi respins prin blocarea traficului din țările cu cea mai mare cantitate de trafic dăunător, sau se poate elimina doar traficul cu adevărat în exces.
Dar, din experiența mea, toți jucătorii serioși de pe piață fac față acestui lucru fără probleme: Qrator, DDoS-Guard, Kaspersky, G-Core Labs (fosta SkyParkCDN), ServicePipe, Stormwall, Voxility, etc.
Nu am avut de-a face cu protecția operatorilor precum Rostelecom, Megafon, TTK, Beeline, dar din părerile colegilor, oferă aceste servicii destul de calitativ, dar periodic se resimte lipsa de experiență: uneori trebuie să ajustezi ceva prin suportul operatorului de protecție.
Unii operatori au un serviciu separat de „protecție împotriva atacurilor la nivel L3/L4”, sau „protecția canalelor”, care costă mult mai puțin decât protecția la toate nivelurile.
Dar cum reușește un provider non-magistral să respingă atacuri de sute de Gbit? El nu are canale proprii?Operatorul de protecție se poate conecta la oricare dintre marii furnizori și poate respinge atacurile „pe cheltuiala lui”. Va trebui să plătești pentru canal, dar toate aceste sute de Gbit nu vor fi întotdeauna utilizate, există opțiuni pentru reducerea semnificativă a costurilor canalelor în acest caz, așa că schema rămâne funcțională.
Am primit astfel de rapoarte de la protecția L3/L4 superioară pe temelie regulată, sprijinind sistemele furnizorului de hosting.
Protecția la nivel L7 (nivel de aplicație)
Atacurile la nivel L7 (nivel de aplicație) le resping cu regularitate și calitate doar câțiva.
Am o experiență reală destul de largă cu
— Qrator.net;
— DDoS-Guard;
— G-Core Labs;
— Kaspersky.
Ei iau o taxă pentru fiecare megabit de trafic curat, un megabit costând în jur de câteva mii de ruble. Dacă ești cu cel puțin 100 de megabiți de trafic curat — oh. Protecția va fi foarte scumpă. Pot să vă povestesc în articolele următoare cum să proiectați aplicații pentru a economisi foarte bine pe capacitatea canalelor de protecție.
Regele adevărat al vârfului este Qrator.net, restul rămân în urmă. Qrator este, până în prezent, singurii în experiența mea care oferă un procent aproape de zero al alarmelor false, dar prețurile lor sunt de câteva ori mai mari decât ale altor jucători de pe piață.
Alți operatori oferă, de asemenea, protecție de calitate și stabilă. Multe servicii aflate sub suportul nostru (inclusiv foarte cunoscute în țară!) sunt protejate de DDoS-Guard, G-Core Labs și sunt complet mulțumiți de rezultatele obținute.
Atacuri respinse de Qrator
Am avut și experiențe cu operatori de protecție mai mici, cum ar fi cloud-shield.ru, ddosa.net, mii dintre ei. Nu-i voi recomanda cu siguranță, deoarece experiența nu este foarte mare; voi vorbi despre principiile lor de funcționare. Costul protecției lor este adesea cu 1-2 ordine mai mic decât al marilor jucători. De obicei, ei cumpără un serviciu de protecție parțială (L3/L4) de la unul dintre jucătorii mai mari și își dezvoltă propria protecție împotriva atacurilor la niveluri mai ridicate. Aceasta poate fi destul de eficientă și puteți obține un serviciu bun la un preț mai mic, dar sunt totuși companii mici cu personal redus, vă rog să țineți cont de acest lucru.
Care este dificultatea de a respinge atacurile la nivelul L7?
Toate aplicațiile sunt unice, iar traficul util trebuie permis, în timp ce traficul dăunător trebuie blocat. Este dificil să identifici întotdeauna roboții, așa că este necesar să se folosească multe, într-adevăr Multe, grade de filtrare a traficului.
Cândva, modul nginx-testcookie (), era suficient pentru a respinge un număr mare de atacuri. Când lucram în industria de hosting, protecția L7 era construită folosind nginx-testcookie.
Din păcate, atacurile au devenit mai complexe. testcookie utilizează verificări ale roboților pe baza JS, iar mulți dintre roboții moderni reușesc să le ocolească cu succes.
Botnet-urile atacatoare sunt de asemenea unice și trebuie luate în considerare caracteristicile fiecărui botnet mare.
Amplificarea, inundația directă din botnet, filtrarea traficului din diferite țări (filtrare diferită pentru diferite țări), inundația SYN/ACK, fragmentarea pachetelor, ICMP, inundația http, iar la nivelul aplicației/http se pot inventa un număr nelimitat de atacuri diferite.
În total, la nivelul protecției canalelor, echipamentului specializat pentru filtrarea traficului, software-ului special, setărilor suplimentare de filtrare pentru fiecare client pot exista zeci și sute de niveluri de filtrare.
Pentru a gestiona corect aceasta și a ajusta setările de filtrare pentru diferiți utilizatori, este nevoie de multă experiență și de personal calificat. Chiar și un mare operator care decide să ofere servicii de protecție nu poate "pur și simplu să arunce bani" asupra problemei: experiența trebuie acumulată pe site-urile afectate și pe declanșările false pe traficul legitim.
Pentru un operator de protecție, nu există un buton de "stopping DDoS", ci un număr mare de instrumente pe care trebuie să știi să le folosești.
Și încă un exemplu bonus.
Serverul fără protecție a fost blocat de host la un atac cu o capacitate de 600 Mbps.
("Dispariția" traficului nu este vizibilă, deoarece doar un singur site a fost atacat, acesta a fost îndepărtat temporar de pe server și blocarea a fost ridicată în decurs de o oră).
Același server sub protecție. Agresorii s-au "predat" după o zi de atacuri respinse. Atacul în sine s-a dovedit a nu fi cel mai puternic.
Atacurile și protecția L3/L4 sunt mai triviale, în principal, depind de lățimea de bandă, algoritmii de detecție și filtrare a atacurilor.
Atacurile L7 sunt mai complexe și originale, acestea depind de aplicația atacată, capacitățile și fantezia atacatorilor. Protecția împotriva lor necesită cunoștințe și experiență considerabile, iar rezultatele pot să nu fie imediate și nu sunt întotdeauna sigure. Încă nu a inventat Google o nouă rețea neuronală pentru protecție.
Sursa: habr.com
