Nuova variante dell'attacco SAD DNS per l'inserimento di dati fittizi nella cache DNS

Un gruppo di ricercatori dell'Università della California, Riverside, ha pubblicato una nuova variante dell'attacco SAD DNS (CVE-2021-20322), efficace nonostante la protezione aggiunta l'anno scorso per bloccare la vulnerabilità CVE-2020-25705. Il nuovo metodo è sostanzialmente simile alla vulnerabilità dello scorso anno e differisce solo per l'utilizzo di un altro tipo di pacchetti ICMP per verificare le porte UDP attive. L'attacco proposto consente di inserire dati fasulli nella cache del server DNS, di cui si può approfittare per sostituire negli archivi l'indirizzo IP di un dominio a caso e reindirizzare le richieste verso il dominio su un server controllato dall'attaccante.

Il metodo proposto è operativo solo nel stack di rete Linux a causa della sua dipendenza dalle peculiarità del meccanismo di gestione dei pacchetti ICMP in Linux, che è fonte di fuga di dati, semplificando l'identificazione del numero della porta UDP utilizzata server per inviare richieste esterne. Le modifiche che bloccano la fuga di informazioni sono state integrate nel kernel Linux a fine agosto (la correzione è stata inclusa nel kernel 5.15 e negli aggiornamenti di settembre delle branche LTS del kernel). La correzione consiste nel passare all'uso dell'algoritmo di hashing SipHash nelle cache di rete invece di Jenkins Hash. È possibile valutare lo stato della vulnerabilità nei seguenti distribuzioni: Debian, RHEL, Fedora, SUSE, Ubuntu.

Secondo i ricercatori che hanno identificato il problema, circa il 38% dei resolver aperti sulla rete è vulnerabile, inclusi i noti servizi DNS come OpenDNS e Quad9 (9.9.9.9). Per quanto riguarda il software del server, l'attacco può essere effettuato utilizzando su un server Linux pacchetti come BIND, Unbound e dnsmasq. Su server DNS che funzionano con Windows e sistemi BSD, il problema non si manifesta. Per eseguire con successo l'attacco è necessario utilizzare lo spoofing IP, cioè è necessario che il fornitore dell'attaccante non blocchi i pacchetti con un IP di origine contraffatto.

Ricordiamo che l'attacco SAD DNS consente di superare la protezione aggiunta ai server DNS per bloccare il classico metodo di avvelenamento della cache DNS, proposto nel 2008 da Dan Kaminsky. Il metodo di Kaminsky manipola la dimensione ridotta del campo con il numero di identificazione della richiesta DNS, che è di soli 16 bit. Per trovare il corretto identificatore della transazione DNS necessaria per lo spoofing del nome host, è sufficiente inviare circa 7000 richieste e simulare circa 140.000 risposte fasulle. L'attacco consiste nell'inviare al risolutore DNS un gran numero di pacchetti con associazioni fasulle a IP e con identificatori di transazione DNS diversificati. Per prevenire la memorizzazione nella cache della prima risposta, in ogni risposta fasulla viene indicato un nome di dominio leggermente modificato (1.example.com, 2.example.com, 3.example.com, ecc.).

Per proteggersi da questo tipo di attacco, i produttori di server DNS hanno implementato una distribuzione casuale dei numeri delle porte di rete sorgente da cui vengono inviate le richieste di risoluzione, compensando così la dimensione non sufficientemente ampia dell'identificatore. Dopo l'implementazione della protezione, per inviare una risposta fasulla è diventato necessario selezionare non solo il identificatore di 16 bit, ma anche una delle 64.000 porte, aumentando il numero di opzioni per la ricerca a 2^32.

Il metodo SAD DNS consente di semplificare drasticamente la determinazione del numero di porta di rete e di ridurre l'attacco al classico metodo di Kaminsky. L'attaccante può identificare l'accesso a porte UDP inutilizzate e attive, sfruttando la fuga di informazioni sull'attività delle porte di rete durante la gestione delle risposte ai pacchetti ICMP. Questo metodo consente di ridurre di 4 ordini di grandezza il numero di possibilità da esplorare — 2^16+2^16 invece di 2^32 (131_072 invece di 4_294_967_296). La fuga di informazioni che permette di identificare rapidamente le porte UDP attive è causata da un difetto nel codice di gestione dei pacchetti ICMP con richieste di frammentazione (flag ICMP Fragmentation Needed) o di reindirizzamento (flag ICMP Redirect). L'invio di questi pacchetti modifica lo stato della cache nello stack di rete, consentendo di determinare sulla base della reazione del server quale delle porte UDP è attiva e quale no.

Scenario di attacco: Quando un resolver DNS tenta di determinare un nome di dominio, invia una richiesta UDP al server DNS che ospita il dominio. Nel momento in cui il resolver attende una risposta, l'attaccante può rapidamente determinare il numero della porta sorgente utilizzato per inviare la richiesta e inviare una risposta fasulla, spacciandosi per il server DNS che ospita il dominio, utilizzando lo spoofing. Indirizzi IPIl resolver DNS memorizzerà nella cache i dati forniti nella risposta fasulla e per un certo periodo di tempo restituirà l'indirizzo IP sostituito dall'attaccante per tutte le altre richieste DNS relative al nome di dominio.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster