«Ragazzo che ci ha fatto il sito, ha già impostato la protezione da DDoS».
«Abbiamo già una protezione da DDoS, perché il sito è andato giù?»
«Quanti-quanto vuole Qrator?»
Per rispondere correttamente a domande del genere da parte dei clienti/direttori, è utile sapere cosa si cela dietro il termine «protezione da DDoS». La scelta dei servizi di protezione ricorda più la scelta di un farmaco da parte di un medico che la scelta di un tavolo da IKEA.
Mi occupo di supporto ai siti da 11 anni, ho vissuto centinaia di attacchi ai servizi che gestisco, e ora vi parlerò un po’ delle dinamiche interne della protezione.
Attacchi regolari. 350k richieste totali, 52k richieste legittime
I primi attacchi sono comparsi praticamente insieme a Internet. Il DDoS come fenomeno è diventato di massa dalla fine degli anni 2000 (guardate ).
Circa dal 2015-2016, quasi tutti i fornitori di hosting hanno adottato misure di protezione contro gli attacchi DDoS, così come la maggior parte dei siti di rilievo nei settori competitivi (fate un whois sugli IP dei siti eldorado.ru, leroymerlin.ru, tilda.ws, vedrete le reti degli operatori di protezione).
Se 10-20 anni fa la maggior parte degli attacchi potevano essere respinti direttamente sul server (valutate le raccomandazioni dell'amministratore di sistema di Lenta.ru, Maxim Moshkov, degli anni '90: ), ora le sfide di protezione sono diventate più complesse.
Tipi di attacchi DDoS dal punto di vista della scelta dell'operatore di protezione
Attacchi a livello L3 / L4 (secondo il modello OSI)
— UDP flood da botnet (vengono inviate molte richieste direttamente dai dispositivi infetti al servizio attaccato, i server saturano il canale);
— amplificazione DNS/NTP/etc (da dispositivi infetti vengono inviate molte richieste a DNS/NTP/etc vulnerabili, l'indirizzo del mittente viene contraffatto, una moltitudine di pacchetti di risposta alle richieste sovraccarica il canale di chi viene attaccato; questi sono i più massicci attacchi nel moderno internet);
— SYN / ACK flood (vengono inviate molte richieste ai server attaccati per stabilire una connessione, si verifica un sovraccarico della coda di connessioni);
— attacchi con frammentazione dei pacchetti, ping of death, ping flood (cercate su Google, per favore);
— e così via.
Questi attacchi mirano a «saturare» il canale del server o a «uccidere» la sua capacità di ricevere nuovo traffico.
Sebbene il flood SYN/ACK e l'amplificazione siano molto diversi, molte aziende li affrontano in modo altrettanto efficace. I problemi sorgono con gli attacchi del gruppo successivo.
Attacchi a L7 (livello applicativo)
— http flood (se viene attaccato un sito web o un qualche API http);
— attacco a punti vulnerabili del sito (senza caching, che sovraccaricano molto il sito, ecc.).
L'obiettivo è costringere il server a "lavorare duramente", elaborando molte "richieste apparentemente reali" e restare senza risorse per le vere richieste.
Sebbene ci siano altri attacchi, questi sono i più comuni.
Gli attacchi seri a livello L7 vengono creati in modo unico per ogni progetto attaccato.
Perché 2 gruppi?
Perché ci sono molti che sanno difendere bene dagli attacchi a livello L3/L4, ma o si rifiutano di occuparsi della difesa a livello di applicazione (L7), oppure per ora riescono a gestirli peggio delle alternative.
Chi è chi nel mercato della protezione DDoS
(la mia personale opinione)
Protezione a livello L3/L4
Per difendersi dagli attacchi con amplificazione ("saturazione" della banda del server) sono sufficienti canali ampi (molti dei servizi di protezione si collegano alla maggior parte dei principali fornitori di rete in Russia e dispongono di canali con una capacità teorica superiore a 1 Tbps). Ricordiamo che attacchi molto rari con amplificazione durano più di un'ora. Se sei Spamhaus e tutti ti odiano — sì, possono cercare di abbattere i canali per diversi giorni, anche a rischio per la sopravvivenza del botnet mondiale utilizzato. Se hai solo un negozio online, anche se si tratta di mvideo.ru — 1 Tbps nel corso di alcuni giorni non lo vedrai molto presto (spero).
Per difendere dagli attacchi con flood SYN/ACK, frammentazione dei pacchetti, ecc., è necessario dell'hardware o sistemi software per la rilevazione e il blocco di tali attacchi.
Tale hardware è prodotto da molti (Arbor, ci sono soluzioni da Cisco, Huawei, realizzazioni software da Wanguard e così via), molti fornitori di rete già lo hanno installato e offrono servizi di protezione DDoS (so di installazioni presso Rostelecom, Megafon, TTK, MTS, praticamente presso tutti i grandi fornitori, lo fanno anche gli hoster con la propria protezione a-la OVH.com, Hetzner.de, ho avuto esperienze dirette con la protezione in ihor.ru). Alcune aziende sviluppano le proprie soluzioni software (tecnologie come DPDK permettono di gestire traffico in decine di gigabit su una sola macchina fisica x86).
Tra i giocatori noti, tutti sanno difendere L3/L4 DDoS in modo più o meno efficace. Non posso dire chi ha la massima capacità di banda (questa è un'informazione riservata), ma di solito non è così importante; la differenza sta solo in quanto rapidamente scatta la protezione (istantaneamente o dopo alcuni minuti di inattività del progetto, come in Hetzner).
Il punto è quanto bene venga fatto: un attacco con amplificazione può essere bloccato, bloccando il traffico proveniente da paesi con il maggior numero di traffico dannoso, oppure solo scartando il traffico realmente eccessivo.
Tuttavia, basandomi sulla mia esperienza, tutti i grandi attori del mercato affrontano questa situazione senza problemi: Qrator, DDoS-Guard, Kaspersky, G-Core Labs (ex SkyParkCDN), ServicePipe, Stormwall, Voxility, ecc.
Non ho mai affrontato la protezione da operatori come Rostelecom, MegaFon, TTK, Beeline; secondo i feedback dei colleghi, forniscono servizi di buona qualità, ma a volte si fa sentire la mancanza di esperienza: a volte è necessario fare alcune regolazioni tramite il supporto dell'operatore di protezione.
Alcuni operatori hanno un servizio separato di "protezione dagli attacchi a livello L3/L4", o "protezione dei canali", che costa molto meno rispetto alla protezione su tutti i livelli.
Ma come fa un provider non di backbone a difendere attacchi da centinaia di Gbit, non ha i propri canali?L'operatore di protezione può connettersi a uno dei grandi provider e difendere gli attacchi "a sue spese". Bisognerà pagare per il canale, ma non serve sempre utilizzare tutte queste centinaia di Gbit; ci sono opzioni per ridurre significativamente il costo dei canali in questo caso, quindi lo schema rimane funzionante.
Ho regolarmente ricevuto rapporti come questi dalla protezione L3/L4 superiore, mentre supportavo i sistemi dell'hosting provider.
Protezione a livello L7 (livello applicazione)
Attacchi a livello L7 (livello applicazione) sono gestiti in modo stabile e qualitativo da pochi.
Ho una realistica esperienza piuttosto estesa con
— Qrator.net;
— DDoS-Guard;
— G-Core Labs;
— Kaspersky.
Addebitano una tariffa per ogni megabit di traffico pulito, il costo per megabit è di circa alcune migliaia di rubli. Se hai almeno 100 mbit di traffico pulito, beh. La protezione sarà molto costosa. Posso raccontare nei prossimi articoli come progettare applicazioni per risparmiare significativamente sulla capacità dei canali di protezione.
Il vero «re della montagna» è Qrator.net, gli altri sono distanti. Qrator è finora l'unico nel mio settore che offre una percentuale di falsi allarmi vicino allo zero, ma sono molto più costosi rispetto agli altri attori del mercato.
Altri operatori offrono anche protezione di qualità e stabile. Molti servizi che supportiamo (inclusi alcuni molto noti nel paese!) sono protetti da DDoS-Guard, G-Core Labs, e sono piuttosto soddisfatti dei risultati ottenuti.
Attacchi respinti da Qrator
Ho anche esperienza con piccoli operatori di protezione come cloud-shield.ru, ddosa.net, ce ne sono migliaia. Non li consiglierò in modo univoco, poiché l'esperienza non è molto ampia; parlerò dei principi del loro funzionamento. Il costo della protezione è spesso 1-2 ordini di grandezza inferiore rispetto ai grandi operatori. Di norma, acquistano un servizio di protezione parziale (L3/L4) da uno dei grandi operatori e poi sviluppano una propria protezione contro attacchi a livelli superiori. Questo può essere piuttosto efficace e potete ottenere un buon servizio a un prezzo inferiore, ma sono comunque piccole aziende con pochi dipendenti, quindi tenetelo presente.
Qual è la difficoltà di respingere gli attacchi a livello L7?
Tutte le applicazioni sono uniche, e bisogna consentire il traffico utile e bloccare quello dannoso. Non sempre è possibile filtrare i bot, quindi è necessario utilizzare molti, veramente MOLTI gradi di purificazione del traffico.
Un tempo bastava il modulo nginx-testcookie (), e ancora adesso è sufficiente per respingere un gran numero di attacchi. Quando lavoravo nel settore dell'hosting, costruivo la protezione L7 proprio su nginx-testcookie.
Purtroppo, gli attacchi sono diventati più complessi. testcookie utilizza controlli sui bot basati su JS, e molti bot moderni riescono a superarli con successo.
I botnet offensivi sono anch'essi unici e bisogna considerare le caratteristiche di ciascun grande botnet.
Amplificazione, flood diretto da botnet, filtraggio del traffico da diversi paesi (filtraggio diverso per paesi diversi), flood SYN/ACK, frammentazione dei pacchetti, ICMP, flood http, e a livello applicativo/http si possono coniare innumerevoli tipi di attacchi.
In totale, a livello di protezione dei canali, attrezzature specializzate per la purificazione del traffico, software speciali e impostazioni di filtraggio aggiuntive per ogni cliente, possono esserci decine e centinaia di livelli di filtraggio.
Per gestire correttamente questo e configurare correttamente le impostazioni di filtraggio per utenti diversi, è necessaria una grande esperienza e personale qualificato. Anche un grande operatore, che decide di offrire servizi di protezione, non può semplicemente "risolvere il problema con i soldi": l'esperienza deve essere accumulata su siti dormienti e false segnalazioni su traffico legittimo.
Per un operatore di protezione non esiste un pulsante "metti in sicurezza DDoS", ma ci sono molti strumenti che bisogna saper utilizzare.
E un ulteriore esempio bonus.
Un server senza protezione è stato bloccato dall'hoster durante un attacco da 600 Mbit.
(La "perdita" di traffico non è stata notata, poiché solo 1 sito è stato attaccato, ed è stato rimosso temporaneamente dal server mentre il blocco è stato rimosso nel giro di un'ora).
Questo stesso server è sotto protezione. Gli attaccanti si sono "arresi" dopo un giorno di attacchi respinti. L'attacco stesso si è rivelato non tra i più potenti.
Gli attacchi e la protezione L3/L4 sono più triviali, in gran parte dipendono dalla larghezza di banda, dagli algoritmi di rilevamento e dal filtraggio degli attacchi.
Gli attacchi L7 sono più complessi e originali, dipendono dall'applicazione attaccata, dalle capacità e dalla fantasia degli attaccanti. Difendersi da loro richiede conoscenze e esperienza significative, e i risultati possono non essere immediati o garantiti. Fino ad ora Google non ha ancora progettato una nuova rete neurale per la protezione.
Fonte: habr.com
