Se un attaccante è in grado di eseguire comandi direttamente sul tuo router può:
- Attaccare la tua rete interna e altri dispositivi collegati ad essa.
- Backdoor il router installando malware o collegandolo alla Mirai Botnet.
- Eavesdrop sul traffico HTTP di un utente.
- Eseguire comandi da remoto sul router come utente
root
. - Spegnere o riavviare il dispositivo.
- Truccare le credenziali della rete Wi-Fi insieme all’SSID (nome) della rete.
La superficie di attacco è abbastanza grande da fare un danno a molti utenti domestici e aziende. Descriverò alcuni di questi scenari in dettaglio per mostrarvi quanto sia pericolosa questa vulnerabilità.
Qualsiasi attaccante è in grado di emettere un comando sul vostro router come utente root
senza la vostra conoscenza. Succede in modo trasparente, basta visitare un sito web dannoso. Se non stai monitorando le tue connessioni in uscita non è possibile rilevare questo tipo di attività senza strumenti aggiuntivi.
Il payload più semplice per riavviare il router di una persona che visita il tuo sito web:
Il codice viene eseguito quando l’immagine viene caricata dal server esterno (il tuo router). Non permette di ottenere il contenuto della risposta ma solo di attivare un comando a distanza.
Lettura dei dati a distanza dal tuo router
Eseguire un comando a distanza non è complicato poiché non richiede di ottenere il contenuto della risposta indietro all’attaccante. Ricevere una risposta indietro non è possibile a causa delle restrizioni della Same-Origin Policy (SOP).
La Same-Origin Policy è un modello di sicurezza sia per i browser che per i plugin che lavorano in un browser (cioè Java, Flash o Silverlight). Lo scopo principale di questa funzionalità è quello di bloccare l’accesso al contenuto di un sito web da un altro sito web.
L’accesso al contenuto del sito web è concesso a seconda dell’origine che è specificata per entrambi. La tabella della verità per le origini appare come segue:
* – Il numero di porta non è incluso nel componente “origine” dai browser IE/Edge (più).
Se il sito “A” non ha la stessa origine del sito “B” allora significa che non possiamo leggere il contenuto di un sito “B” da “A” e ritorno. Stiamo assumendo che il Cross-Origin Resource Sharing (CORS) non sia abilitato per nessun server, il che è vero per la configurazione predefinita.
Il dispositivo router non ha la stessa origine del sito dell’attaccante. Ciononostante l’attaccante può ottenere quella comunicazione con tecniche per bypassare la politica Same-Origin. C’erano anche vulnerabilità nel meccanismo SOP stesso:
- CVE-2015-7188 – Gli spazi bianchi finali negli hostname degli indirizzi IP possono aggirare la politica della stessa origine.
- CVE-2016-1967 – Violazione della policy same-origin utilizzando performance.getEntries e navigazione nella cronologia con ripristino della sessione.
- CVE-2016-1949 – Violazione dei criteri di Same-origin utilizzando i Service Worker con i plugin.
L’aggiramento della Same-Origin Policy è possibile sfruttando un browser/plugin vulnerabile o utilizzando la tecnica chiamata DNS Rebinding.
DNS Rebinding attack
L’attacco DNS Rebinding permette di leggere dati da un’altra origine aggirando il meccanismo della Same-Origin Policy. Nello scenario più elementare è possibile sostituire il record DNS (“A”) di un dominio mentre l’utente visita il sito web dannoso.
Se questo attacco ha avuto successo, l’attaccante è in grado di leggere qualsiasi risposta da un comando eseguito sul router remoto ( 192.168.1.1
).
Dati sensibili sul lato router
L’attaccante è ora in grado di leggere il contenuto remoto dal router. Può emettere un comando nvram show
che contiene tutte le impostazioni di configurazione del tuo router come:
Il comando citato restituisce molti dati sensibili. L’attaccante non solo è in grado di leggere i dati dal router, ma può anche impostare nuovi valori per quelle impostazioni. Significa che è in grado di:
- Modificare la password Wi-Fi.
- Accendere la gestione remota (netgear.com – documentazione).
- Disabilitare il firewall.
- Impostare la VPN nella posizione desiderata.
- Aggiorna le impostazioni della nvram, caricherà le impostazioni salvate dopo il riavvio del dispositivo (
nvram set http_passwd=test; nvram commit
). - …e molto altro.
Come proteggersi da questo tipo di attacchi?
Non c’è un singolo metodo semplice per proteggersi da tutte le varianti di questo attacco. Raccomanderei di disabilitare il demone httpd
sul router e di bloccare tutte le connessioni in entrata alla tua LAN da Internet.
Proteggere dall’attacco DNS Rebinding.
Il meccanismo di protezione standard sul lato server è di controllare l’intestazione Host
. In uno scenario standard quando il browser si connette a facebook.com
allora invia l’intestazione Host: facebook.com
.
Se c’è l’attacco DNS Rebinding in atto e l’utente visita attacker.com
che cerca di sfruttare il meccanismo SOP allora il browser si connette a facebook.com
e invia l’intestazione Host: attacker.com
. Se il server è configurato correttamente allora dovrebbe bloccare questa richiesta poiché l’intestazione Host
non corrisponde alla richiesta originale.
Il router Netgear non blocca la connessione anche se l’intestazione Host
non è valida e quindi questo attacco ha successo, che è vero per la maggior parte dei router.
Blocca la connessione alla tua LAN da Internet.
Il metodo più semplice è bloccare TUTTE le connessioni da Internet alla tua rete locale. Bloccherà qualsiasi tipo di comunicazione dal Browser ai tuoi dispositivi locali come il router e altri computer.
Per tutti coloro che lavorano su Mac OS X è possibile installare l’applicazione Little Snitch che è in grado di limitare l’accesso a sottoreti definite o indirizzi IP specifici per ogni applicazione o processo di sistema.
La correzione di questo problema non solo vi proteggerà da questa tecnica di sfruttamento, ma anche da future minacce basate sull’attacco DNS Rebinding.