Indietro

ⓘ SYN cookies




SYN cookies
                                     

ⓘ SYN cookies

Il SYN cookie è una tecnica per resistere a un attacco Flood SYN e viene definita dallinventore Daniel J. Bernstein come una "scelta particolare di sequenze iniziali TCP da parte dei TCP servers".

In particolare, luso dei SYN cookies permette a un server di evitare la caduta della connessione quando la coda SYN è piena comportandosi invece come se la coda SYN fosse stata ampliata.

Quindi il server manda indietro la rispettiva risposta SYN+ACK al client, ma scarta lentrata in coda del SYN. Se il server poi riceve un conseguente ACK di risposta dal client, è capace di ricostruire lentrata nella coda SYN, grazie alle informazioni codificate nella sequenza TCP.

                                     

1. Definizione

I SYN cookies sono una scelta particolare della sequenza iniziale TCP da parte dei server. La differenza tra la sequenza iniziale del server e quella del client è:

  • 3 bit successivi: m, ovvero la codifica di un MSS selezionato dal server in risposta allMSS del client;
  • i primi 5 bit: t mod 32, dove t è un contatore di bit a 32 bits che si incrementa ogni 64 secondi;
  • gli ultimi 24 bit: s, ovvero un "segreto" selezionato dal server in funzione dellindirizzo IP e del numero di porta del client, dellindirizzo IP e del numero di porta del server, e del valore di t.

Questa scelta di sequenza iniziale è in accordo con il requisito base TCP che la sequenza di numeri cresca lentamente. La scelta del server cresce in modo leggermente più veloce di quella iniziale del client.

                                     

2. Falsificazione cieca di connessione

Se un attaccante indovina una sequenza valida mandata allhost di qualcun altro, può creare una connessione con quellhost.

Gli attaccanti possono provare a decriptare la funzione segreta del server, ispezionando una serie di cookies validi e provando a predirne uno valido nuovo. Per definire una funzione "sicura", la chance di successo dellattaccante deve essere non troppo diversa dalla probabilità di indovinare in maniera casuale. Gli autenticatori di messaggi a chiave segreta sono progettati proprio per garantire questo tipo di sicurezza.

Ad esempio, la funzione che codifica linput in 16 bytes, cripta il risultato tramite AES Rijndael con una chiave segreta ed estrae i primi 24 bit del risultato è estremamente veloce e sembra essere sicura.

Non importa quale sia la funzione usata, lattaccante in qualche milione di tentativi di pacchetti di ACK casuali riuscirà a creare una connessione. I server possono rendere questi attacchi più costosi in due modi:

  • tenendo traccia dei tempi di overflow delle più recenti code SYN non una variabile globale, ma una per ogni coda non deve ricostruire gli ingressi SYN mancanti se non ci sono stati overflow recenti.
  • aggiungendo un altro numero al cookie: una funzione scelta lato server segreta a 32 bit dellindirizzo del cliente. Questo forza lattaccante a indovinare 32 bit invece di 24.

Lintroduzione di nuovo protocollo a 128 bit potrebbe rendere la creazione cieca della connessione praticamente impossibile.

                                     

3. Critiche

Luso dei SYN cookies non infrange nessun protocollo specifico e di conseguenza è compatibile con ogni implementazione TCP.

Ci sono, comunque, alcune precauzioni da tenere a mente quando si usano i SYN cookies in quanto:

  • il server deve rifiutare tutte le opzioni TCP come il timestamp, perché il server scarta la coda SYN dove quella informazione sarebbe altrimenti archiviata.
  • il server è limitato a solo 8 valori MSS ed è tutto ciò che può essere codificato in 3 bit;

Mentre queste limitazioni rendono lesperienza non ottimale, sono raramente notate lato client, perché sono applicate solo quando sotto attacco. In questa evenienza, la perdita di opzioni TCP per salvare la connessione è considerata un costo accettabile.

Un problema sorge quando il pacchetto con lACK finalizzato alla connessione mandato dal client viene perso e il protocollo del livello applicativo richiede che il server comunichi per primo. In questo caso, il client assume che la connessione sia stata stabilita correttamente e aspetta dal server il segnale previsto, o che rimandi il pacchetto SYN+ACK. In caso contrario, il server non è avvertito della sessione e non manda il SYN+ACK perché è scartata lentrata della coda che lavrebbe attivato.

Eventualmente, il client può chiudere la connessione in base a un timer a livello di applicazione, ma questo può risultare relativamente lungo.

Nel 2008, la versione 2.6.26 del kernel di Linux ha aggiunto un supporto limitato alle opzioni TCP, codificandole nel timestamp.

Il nuovo standard Transazioni Cookie TCP TCPCT è pensato per superare questi inconvenienti e migliorare qualche aspetto. Diversamente dai SYN cookies, TCPTC è unestensione del protocoll TCP e richiede compatibilità da entrambi gli estremi client e server.



                                     

4. Considerazioni di sicurezza

I firewall più semplici che sono configurati in modo da permettere tutte le connessioni in uscita ma per poter restingere le connessioni in entrata ad esempio permettendo le connessioni sulla porta 80 ma bloccando tutte le altre, funzionano bloccando solo le richieste SYN sulle porte non volute. Se i SYN cookies sono attivi, bisogna fare attenzione ad assicurarsi che lattacante non sia capace di bypassare il firewall creando lACK, provando per tentativi fino a che uno non è accettato. I SYN cookies dovrebbero essere attivati o disattivati in base alla porta, cosicché i SYN cookies attivati su una porta pubblica non causino un riconoscimento falso su una porta non pubblica.

                                     
  • handshake 1.5 RTT per l apertura della nuova connessione, per i tre passaggi di SYN e ACK. D altro canto, le connessioni persistenti precludono il parallelismo
  • FM Radio Guangdong Guangdong 93.9 FM, 99.3 FM e in streaming su internet SYN FM Melbourne 90.7 FM - Show cantopop come parte della Asian Pop Night 2AC

Anche gli utenti hanno cercato:

...
...
...