Il principio dell'attacco convenzionale alle piene
Quando il secondo handshake TCP stabilisce una semi-connessione, in questo momento può essere lanciato un attacco Flood
Cioè, un gran numero di richieste avvia connessioni TCP. Durante il secondo handshake, il server inserirà queste richieste nella coda di semi-connessione. Poiché questi client dannosi non confermeranno il terzo handshake, queste semi-connessioni non possono essere elaborate. Rilasciato, il server attenderà fino al timeout. In questo momento, la coda di semi-connessione verrà riempita e non sarà possibile rispondere alle normali connessioni di richiesta.
Come risolvere gli attacchi di alluvioni in generale
Quando la modalità syncookies è attivata, il server calcolerà un valore hash (SHA1) basato su (indirizzo di origine, porta di origine, indirizzo di destinazione, porta di destinazione, ecc.) e un numero casuale durante il primo handshake, quindi il secondo handshake utilizzerà questo I syncookie generati vengono restituiti al client. Quando il client conferma il terzo handshake, invierà i syncookie al server Il server verificherà se il syncookie corrisponde a quello precedente. Se corrisponde, verrà stabilita una connessione TCP stabilito.
Il vantaggio di questo approccio: quando il server non riceve o i syncookie ricevuti non corrispondono, la connessione TCP non verrà stabilita. E quando si utilizzano i syncookie, il server non manterrà la coda di semi-connessione, ovvero non esiste uno stato di semi-connessione. Poiché utilizzando i syncookie per il confronto, non è necessaria la semi-connessione, quindi evita la coda di semi-connessione essere riempiti e impedire la ricezione di nuove connessioni.
Scenari che i syncookies non possono risolvere
Quando vengono lanciati un gran numero di attacchi DDOS, anche il metodo syncookies viene paralizzato. Il motivo della paralisi è che la CPU deve calcolare un gran numero di syncookies, causandone l'uccisione. Poiché il calcolo dei syncookie consuma anche le prestazioni della CPU, la CPU non è in grado di gestire l'enorme quantità di DDOS. Al momento, l'unica opzione è aumentare la larghezza di banda e configurare un limite rigido.
Altre soluzioni
Aumentare la coda di semi-connessione e la coda di connessione completa (questo metodo è sostanzialmente inefficace per attacchi massicci)
Ridurre il numero di ritrasmissioni SYN+ACK (TCP si basa sulle ritrasmissioni per mantenere una connessione stabile), ovvero quando riceve un attacco Flood da un gran numero di richieste syn, il server continuerà a riprovare se non può ricevere una risposta fino a quando il numero massimo di volte. Riduci questo numero massimo di volte. Ti darà un po' di sollievo
Come verificare se sei stato attaccato da un'alluvione