
Demone per randomizzare tcp_challenge_ack_limit per prevenire attacchi side-channel CVE-2016-5696
chackd è un demone che randomizza ogni secondo il parametro del kernel tcp_challenge_ack_limit per prevenire attacchi side-channel
Un attacco side-channel presentato di recente ha attirato una forte attenzione della comunità [1]. Per molti server o dispositivi smartphone questo attacco è considerato pericoloso per le connessioni ipv4. Non c'è dubbio che il kernel correggerà questo problema nelle prossime versioni. Tuttavia, alcuni amministratori potrebbero non aggiornare il kernel per motivi specifici o semplicemente per pigrizia.
Regolare il parametro a un valore molto alto [2] funzionerà bene. D'altra parte, per applicazioni server potrebbe comportare una quantità di traffico non necessaria. Per prevenire questo ho scritto il programma chackd. È in grado di essere parametrizzato per raggiungere la soluzione presentata in [1].
Il demone chackd fa questo lavoro molto bene e lo mantiene semplice. Un mio precedente concetto prevedeva un modulo kernel caricabile, ma l'ho scartato perché esiste una potente interfaccia tra spazio utente e spazio kernel chiamata proc vfs. Con i file proc siamo in grado di fare il lavoro con un semplice demone.
Questo è il mio primo progetto open-source con un bel vantaggio per gli amministratori che vogliono proteggersi dagli attacchi challenge_ack_limit e non sono in grado di aggiornare il proprio kernel. Basta compilarlo ed eseguirlo sul proprio server.
Ho bisogno dell'aiuto della comunità per rendere questo progetto "standard di comunità".
Cerca i TODO all'interno dei file sorgente per alcune cose su cui vorrei lavorare. Sentiti libero di creare branch come preferisci. Vorrei imparare molto da questo progetto.
Makefile - Il mio desiderio per il Makefile è renderlo una sorta di standard con installazione, query sulla versione del kernel e così via.
start_daemon - Qualsiasi parte di codice che potrebbe causare il crash del demone deve essere corretta
stop_daemon - Qualsiasi parte di codice che non sia una sorta di standard deve essere corretta
init_daemon - Qualsiasi parte di codice che potrebbe causare il crash del demone deve essere corretta
main - La mia intenzione è che i parametri principali siano forniti come semplici interi, attualmente funziona bene. Tuttavia forse esiste un modo molto migliore di gestirli?
Intervallo di 1 secondo di "sysctl net.ipv4.tcp_challenge_ack_limit"
net.ipv4.tcp_challenge_ack_limit = 222
net.ipv4.tcp_challenge_ack_limit = 227
net.ipv4.tcp_challenge_ack_limit = 191
net.ipv4.tcp_challenge_ack_limit = 178
net.ipv4.tcp_challenge_ack_limit = 229
net.ipv4.tcp_challenge_ack_limit = 167
net.ipv4.tcp_challenge_ack_limit = 189
net.ipv4.tcp_challenge_ack_limit = 229
Bastian Pukallus, si prega di inviare una mail a [email protected]
[1] http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf
[2] https://www.mail-archive.com/[email protected]/msg705042.html