... leads to the injection
Il difetto non porta all'iniezione ma consente a un utente malintenzionato di iniettare dati. Non ho inavvertitamente corruzione dei dati ma una modifica mirata di un utente malintenzionato.
How does the attack vector work?
Dato che hai fatto riferimento al documento, mi aspetto che tu l'abbia letto. Quali parti non hai capito esattamente? Ma per riassumere un po ':
- La parte più difficile nel rilevare una connessione TCP è indovinare la porta di origine del client e il numero di sequenza corrente
- Il limite di velocità globale per l'invio di Challenge ACK (100 / s in Linux) introdotto insieme a Challenge ACK (RFC5961) rende possibile nel primo passo di indovinare una porta sorgente utilizzata dalla connessione client e nel prossimo passo da indovinare il numero di sequenza. L'idea principale è quella di aprire una connessione al server e inviare con l'origine dell'aggressore tutti i pacchetti RST con la sequenza errata combinata con alcuni pacchetti contraffatti. Contando quanto Challenge ACK viene restituito all'avversario e conoscendo il limite di velocità si può inferire quanto dei pacchetti spoofed ha portato a un Challenge ACK per il client contraffatto e quindi a quante congetture sono corrette. In questo modo è possibile restringere rapidamente i valori di porta e sequenza corretti. Questo attacco può essere fatto in pochi secondi.
- E ovviamente l'attaccante deve essere in grado di falsificare l'indirizzo IP del client che non è vero in tutti gli ambienti. Potrebbe essere possibile nelle reti locali (a seconda delle misure di sicurezza), ma l'ISP bloccherà spesso lo spoofing IP quando viene eseguito dagli usuali account DSL / via cavo / mobile.
Ma per comprendere veramente l'attacco è necessario capire quale Challenge ACK viene utilizzato (difendersi dal TCP RST fuori strada) e come funzionano. Quindi potrebbe essere utile leggere anche l'RFC 5961.
randomizing the value in /proc/sys/net/ipv4/tcp_challenge_ack_limit .. Is it true?
Impostarlo su un valore casuale e mantenerlo probabilmente non sarà d'aiuto perché l'attacco può capire il nuovo limite statico. Cambiare il valore ogni pochi secondi aiuterà a confondere l'attacco. L'impostazione del valore su un valore molto elevato renderà impossibile l'attacco.