«Il ragazzo che ci ha fatto il sito ha già impostato la protezione DDoS».
«Abbiamo la protezione DDoS, perché il sito è caduto?»
«Quanti e quanti mila vuole Qrator?»
Per rispondere bene a queste domande del cliente/del capo, è utile conoscere cosa si cela dietro il termine «protezione DDoS». La scelta dei servizi di protezione somiglia di più a quella di un farmaco da parte di un medico, piuttosto che a scegliere un tavolo da IKEA.
Mi occupo di supporto siti da 11 anni, ho affrontato centinaia di attacchi ai servizi che gestisco, e ora vi parlerò un po' dei retroscena della protezione.
Attacchi regolari. 350k req totali, 52k req legittimi
I primi attacchi sono comparsi praticamente insieme a Internet. Il DDoS come fenomeno è diventato diffuso dalla fine degli anni 2000 (guardate ).
Circa dal 2015-2016, quasi tutti i fornitori di hosting sono stati protetti contro gli attacchi DDoS, così come la maggior parte dei siti noti in 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 poteva essere respinta direttamente sul server (date un'occhiata ai consigli dell'amministratore di sistema di Lenta.ru, Maxim Moshkov, degli anni '90: ), ora le sfide per la protezione sono diventate più complesse.
Tipi di attacchi DDoS dal punto di vista della scelta del fornitore di protezione
Attacchi a livello L3 / L4 (secondo il modello OSI)
— Inondazione UDP da botnet (vengono inviate molte richieste dal dispositivo infetto al servizio attaccato, saturando il canale del server);
— Amplificazione DNS/NTP/etc (vengono inviate molte richieste da dispositivi infetti a DNS/NTP/etc vulnerabili, l'indirizzo del mittente viene falsificato, una moltitudine di pacchetti con risposte alle richieste sovraccarica il canale di chi è attaccato; così avvengono gli attacchi più massicci dell'internet moderno);
— Flooding di SYN / ACK (vengono inviate molte richieste per stabilire una connessione ai server attaccati, riempiendo la coda delle connessioni);
— attacchi con frammentazione dei pacchetti, ping of death, flood ping (per favore cerca su Google);
— e così via.
Questi attacchi mirano a saturare il canale del server o a 'uccidere' la sua capacità di ricevere nuovo traffico.
Sebbene il flooding di SYN/ACK e l'amplificazione differiscano notevolmente, molte aziende li contrastano in modo altrettanto efficace. I problemi sorgono con gli attacchi del gruppo seguente.
Attacchi a livello L7 (livello applicativo)
— flooding HTTP (se il sito web o qualche API HTTP è attaccato);
— attacco a punti vulnerabili del sito (senza cache, che sovraccaricano pesantemente il sito, ecc.).
L'obiettivo è costringere il server a "lavorare sodo", elaborando molte "richieste apparentemente reali" e rimanere senza risorse per le vere richieste.
Sebbene ci siano altri attacchi, questi sono i più comuni.
Attacchi seri a livello L7 vengono creati in modo unico per ogni progetto attaccato.
Perché 2 gruppi?
Perché ci sono molti che sanno difendersi bene da attacchi a livello L3 / L4, ma non si occupano affatto di proteggere a livello applicativo (L7), o lo fanno in modo meno efficace rispetto ad alternative.
Chi è chi nel mercato della protezione DDoS
(la mia opinione personale)
Protezione a livello L3 / L4
Per contrastare gli attacchi di amplificazione («saturazione» delle linee del server) sono sufficienti le larghezze di banda elevate (molti servizi di protezione si collegano alla maggior parte dei principali provider di backbone in Russia e dispongono di canali con capacità teorica superiore a 1 Tbps). Non dimentichiamo che attacchi di amplificazione molto rari durano più di un’ora. Se sei Spamhaus e non sei amato da nessuno — sì, potrebbero cercare di interrompere le connessioni per diversi giorni, anche a costo di compromettere la sopravvivenza del botnet globale utilizzato. Se hai semplicemente un negozio online, anche se è mvideo.ru — 1 Tbps per diversi giorni non lo vedrai molto presto (spero).
Per contrastare gli attacchi con flooding SYN/ACK, frammentazione dei pacchetti, ecc., è necessario utilizzare attrezzature o sistemi software per la rilevazione e il blocco di tali attacchi.
Questo tipo di attrezzature è prodotto da molti (Arbor, ci sono soluzioni di Cisco, Huawei, implementazioni software da Wanguard, ecc.), molti operatori di rete hanno già installato e vendono servizi di protezione DDoS (so di installazioni da Rostelecom, Megafon, TTK, MTS, praticamente da tutti i grandi provider; lo fanno anche gli hoster con le loro protezioni simili a OVH.com, Hetzner.de; ho avuto esperienza io stesso con la protezione di ihor.ru). Alcune aziende sviluppano le proprie soluzioni software (tecnologie come DPDK permettono di elaborare il traffico a decine di gigabit su una singola macchina fisica x86).
Tra i noti attori, tutti riescono a difendersi in modo più o meno efficace da attacchi DDoS L3/L4. Non posso dire chi ha la massima capacità di banda (questa è informazione riservata), ma di solito non è così importante; la differenza riguarda solo quanto rapidamente scatta la protezione (immediatamente o dopo alcuni minuti di downtime del progetto, come in Hetzner).
La questione è quanto bene venga realizzato: un attacco con amplificazione può essere respinto bloccando il traffico dai paesi con il maggior numero di traffico dannoso, oppure si può semplicemente scartare solo il traffico veramente superfluo.
Ma dalla mia esperienza, tutti i principali attori del mercato affrontano questo senza problemi: Qrator, DDoS-Guard, Kaspersky, G-Core Labs (ex SkyParkCDN), ServicePipe, Stormwall, Voxility, ecc.
Non ho avuto contatti con i fornitori come Rostelecom, MegaFon, TTK, Beeline; secondo le recensioni dei colleghi, forniscono questi servizi in modo abbastanza efficace, ma a volte si fa sentire la mancanza di esperienza: a volte è necessario risolvere alcune questioni tramite il supporto del fornitore di protezione.
Alcuni operatori offrono un servizio separato chiamato 'protezione contro gli attacchi a livello L3/L4' o 'protezione dei canali', che è molto più economico rispetto alla protezione a tutti i livelli.
Come fa un fornitore non di backbone a difendersi da attacchi nell'ordine di centinaia di Gbit, se non ha le proprie linee?Il fornitore di protezione può collegarsi a qualsiasi dei grandi operatori e difendersi dagli attacchi 'a spese loro'. Si dovrà pagare per la connessione, ma tutte queste centinaia di Gbit non saranno sempre utilizzate, ci sono opzioni per ridurre significativamente il costo dei canali in questo caso, quindi lo schema rimane sostenibile.
Ricevevo regolarmente report da una protezione L3/L4 superiore mentre supportavo i sistemi del fornitore di hosting.
Protezione a livello L7 (livello applicativo)
Gli attacchi a livello L7 (livello applicativo) riescono a respingere costantemente e con qualità.
Ho una reale esperienza piuttosto ampia con
— Qrator.net;
— DDoS-Guard;
— G-Core Labs;
— Kaspersky.
Addebitano per ogni megabit di traffico pulito, il costo di un megabit è di diverse migliaia di rubli. Se hai almeno 100 megabit di traffico pulito — oh. La protezione sarà molto costosa. Posso spiegare nei prossimi articoli come progettare le applicazioni in modo da risparmiare notevolmente sulla capacità dei canali di protezione.
Il vero 're della montagna' è Qrator.net, gli altri sono indietro. Qrator è finora l'unico nella mia esperienza a offrire una percentuale di falsi positivi vicina allo zero, ma sono diversi volte più costosi rispetto agli altri attori sul mercato.
Altri operatori offrono anche una 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 fornitori di protezione come cloud-shield.ru, ddosa.net, ce ne sono migliaia. Non posso raccomandare categoricamente, poiché l'esperienza non è molto grande, ma vi parlerò dei principi del loro funzionamento. I costi di protezione sono spesso da 1 a 2 ordini di grandezza inferiori rispetto ai grandi attori. In genere, acquistano un servizio di protezione parziale (L3/L4) da qualche grande fornitore e poi sviluppano la propria protezione contro gli attacchi a livelli superiori. Questo può essere piuttosto efficace e potete ricevere un buon servizio a un costo inferiore, ma sono comunque piccole aziende con personale limitato, tenetelo a mente, per favore.
Qual è la difficoltà di riflettere gli attacchi a livello L7?
Tutte le applicazioni sono uniche, e bisogna consentire il traffico utile per loro e bloccare quello dannoso. Non sempre riesco a filtrare i bot, quindi devo utilizzare molti, davvero MOLTI gradi di pulizia del traffico.
Un tempo bastava il modulo nginx-testcookie (), e anche adesso è sufficiente per riflettere 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 degli attaccanti sono anche unici, e bisogna considerare le caratteristiche di ciascuno dei grandi botnet.
Amplificazione, flooding diretto dai botnet, filtraggio del traffico da paesi diversi (filtraggio differente per paesi diversi), flooding SYN/ACK, frammentazione dei pacchetti, ICMP, flooding http, con la possibilità di inventare un numero illimitato di attacchi a livello applicativo/http.
In totale, a livello di protezione dei canali, attrezzature specializzate per la pulizia del traffico, software specifici e ulteriori impostazioni di filtraggio per ogni cliente, possono esserci decine e centinaia di livelli di filtraggio.
Per gestire correttamente questo e tuneare adeguatamente le impostazioni di filtraggio per diversi utenti, è necessaria una grande esperienza e personale qualificato. Anche un grande operatore che decide di offrire servizi di protezione non può semplicemente "riempire il problema con i soldi": l'esperienza dovrà essere accumulata su siti inattivi e falsi allarmi su traffico legittimo.
Per l'operatore di protezione non esiste un pulsante 'ripristina DDoS', ci sono molti strumenti che devono essere utilizzati correttamente.
E un altro esempio bonus.
Un server senza protezione è stato bloccato dall'hosting durante un attacco da 600 Mbit.
(La 'perdita' di traffico non è stata notata, poiché è stato attaccato solo 1 sito, che è stato momentaneamente rimosso dal server, e il blocco è stato annullato entro un'ora).
Questo stesso server è protetto. Gli attaccanti si sono 'arresi' dopo un giorno di attacchi respinti. L'attacco stesso si è rivelato non il più forte.
Gli attacchi e la protezione L3/L4 sono più banali, dipendono principalmente dallo spessore dei canali, dagli algoritmi di rilevamento e filtraggio degli attacchi.
Gli attacchi L7 sono più complessi e originali, dipendono dall'applicazione attaccata, dalle capacità e dall'immaginazione degli attaccanti. Difendersi da essi richiede molta conoscenza ed esperienza, e il risultato potrebbe non essere immediato e non garantito. Finché Google non inventa un altro modello di intelligenza artificiale per la protezione.
Fonte: habr.com
