Perché un attacco (D) DoS rallenta la CPU e blocca un server?

22

Quindi ottengo l'idea di base di (D) DoS utilizzata per l'inondazione, ma non capisco come questo possa causare l'arresto anomalo dei server o rallentarli a causa dell'uso eccessivo della CPU.

Per quanto ne so, la cosa che viene utilizzata per rallentare un server è l'handshake TCP SYN, ma richiede una quantità trascurabile di CPU.

Come si blocca un server usando (D) DoS?

    
posta DrDoom 21.12.2016 - 23:04
fonte

4 risposte

39

How does one crash a server using (D)DoS?

Per rispondere in modo specifico alla tua domanda, per bloccare un server utilizzando solo DDoS devi scegliere come target il Livello applicazione (spiegazione dettagliata sotto). Questi tipi di attacchi tentano in particolare di utilizzare la maggior parte delle risorse del server di destinazione e riducono il rischio, anziché limitarsi a martellarlo con il traffico di rete.

Tuttavia, per mettere questo contesto nel contesto di altri tipi di attacchi DDoS, esploriamo le loro categorie principali e i loro usi.

Questo articolo copre i 3 principali tipi di attacco per DDoS. Dall'articolo:

DDoS attacks can be broadly divided into three types:

Volume Based Attacks

Includes UDP floods, ICMP floods, and other spoofed-packet floods. The attack’s goal is to saturate the bandwidth of the attacked site, and magnitude is measured in bits per second [sic] "(Bps)" [sic].

Protocol Attacks

Includes SYN floods, fragmented packet attacks, Ping of Death, Smurf DDoS and more. This type of attack consumes actual server resources, or those of intermediate communication equipment, such as firewalls and load balancers, and is measured in Packets per second.

Application Layer Attacks

Includes low-and-slow attacks, GET/POST floods, attacks that target Apache, Windows or OpenBSD vulnerabilities and more. Comprised of seemingly legitimate and innocent requests, the goal of these attacks is to crash the web server, and the magnitude is measured in Requests per second.

TL; DR - esistono diversi tipi di attacchi DDoS in base a ciò che l'utente malintenzionato desidera ottenere. A volte un utente malintenzionato vuole solo occupare tutta la larghezza di banda disponibile, altre volte tenterà di sopraffare la CPU.

Vale la pena notare che DDoS è solo un tipo distribuito del generico ' Denial of Service ' - non implica affatto il crash di un server, impedendo al server di fare qualsiasi cosa per cui è destinato, se questo impedisce che il business reale si verifichi utilizzando tutta la larghezza di banda o altro.

    
risposta data 21.12.2016 - 23:17
fonte
18

Un SYN flood non riguarda l'esaurimento della CPU, ma l'esaurimento della memoria.

Una connessione TCP viene stabilita tramite una cosiddetta "stretta di mano a tre vie". Tradizionalmente, funziona come segue:

  1. Il client invia un pacchetto SYN . Il server riceve il pacchetto e assegna le risorse per tracciare la connessione.
  2. Il server risponde con un pacchetto SYN/ACK .
  3. Il client risponde con un pacchetto ACK , stabilendo la connessione.

In un'inondazione SYN, l'attaccante invia un flusso continuo di pacchetti SYN , ignorando le risposte SYN/ACK . Questo lascia al server un gran numero di connessioni aperte a metà che resteranno un po 'indietro; se l'utente malintenzionato può inviare pacchetti abbastanza velocemente, il server non sarà in grado di rispondere alle richieste autentiche. Un server mal scritto potrebbe anche esaurire memoria e crash.

La difesa standard contro l'alluvione SYN è SYN cookie :

  1. Il client invia un pacchetto SYN .
  2. Il server risponde con un pacchetto SYN/ACK con valori accuratamente selezionati per alcuni parametri TCP che consentono di identificare il% di risposta% di co_de.
  3. Il client risponde con un pacchetto ACK basato su quei parametri, stabilendo la connessione. Il server ora assegna risorse per tracciare la connessione.

Ritardando l'allocazione delle risorse fino a quando la connessione non è completamente stabilita, non c'è più l'asimmetria dello sforzo che rende pratico l'attacco di flooding.

    
risposta data 21.12.2016 - 23:21
fonte
10

Un DDoS di solito non blocca un server. Lo sovraccarica, rendendolo impossibile per il normale utilizzo. Il modo "migliore" per ottenere ciò dipende dalla funzione del server e dal modo in cui è configurato. Ci sono molti modi per farlo, per citarne alcuni:

  • sovraccarichi l'interfaccia di rete con il traffico, quindi è pieno di rifiuti e il traffico legittimo non raggiunge il server
  • esaurisce il firewall creando un numero elevato di sessioni, così tante da non poter tenere traccia dello stato della sessione e non accetterà nuove sessioni
  • richiesta di attivazione rapida (ad esempio, pagine Web aperte su un server Web) che richiedono molte risorse da generare (ad esempio calcoli complessi o ricerche nel database). Ciò riduce la disponibilità del processo del server e aumenta il carico sulla CPU.
  • riempiendo i dischi, ad esempio creando molte voci di registro o caricando dati
risposta data 21.12.2016 - 23:13
fonte
10

Di solito gli attacchi DDoS sono quelli che vengono chiamati attacchi di livello 4. Questi usano spesso alluvioni SYN e mirano a esaurire tutta la larghezza di banda disponibile. Proprio come non è possibile scaricare film a una velocità illimitata dal proprio computer di casa, un server non può accettare richieste in entrata e inviare risposte in uscita a una velocità illimitata. Certo, un server potrebbe avere più banda di te, ma i più grandi attacchi DDoS stanno consumando centinaia di gigabit al secondo!

Poi ci sono quelli che vengono chiamati attacchi di livello 7. Questi sono spesso attacchi non distribuiti mirati ad alcune risorse come CPU o spazio su disco. Mentre un attacco di livello 4 è di taglia unica, un attacco di livello 7 deve mirare a una specifica debolezza della vittima. Solitamente viene utilizzato come obiettivo un oggetto con molte risorse (non memorizzato nella cache) come la ricerca full-text. Come dici tu, un handshake SYN-ACK non richiede molte risorse, quindi sarebbe una scelta sbagliata per un attacco di livello 7.

Quindi, in conclusione:

  • Un attacco di livello 4 potrebbe utilizzare i pacchetti SYN, ma è mirato alla larghezza di banda e non all'utilizzo della CPU.
  • Un attacco di livello 7 potrebbe essere finalizzato all'utilizzo della CPU, ma non utilizzare i pacchetti SYN.
risposta data 21.12.2016 - 23:31
fonte

Leggi altre domande sui tag