Verificare la sicurezza del proprio router contro ZynOS (rom-0)

ATTENZIONE!!! Quanto descritto di seguito prevede una discreta preparazione tecnica e potrebbe causare il blocco del vostro router e/o della vostra connessione ad internet.
 
Da un pò di tempo girano, in rete notizie sulla vulnerabilità di alcuni modelli di router ADSl al cosiddetto "attacco rom-0" (vulnerabilità ZynOS): abbiamo avuto modo di constatare la reale consistenza del problema e degli effetti causati da un router "infetto"!
 
Come agisce l'attacco
La vulnerabilità affligge il firmware per router "ZyNOS" creato da ZyXEL ed implementato su diversi modelli da molti Produttori (Digicom, D-Link, TP-Link, Sitecom).
Accedendo all'interfaccia web di configurazione dei routers, chi esegue l'attacco è in grado (anche senza credenziali) di modificare l'impostazione dei server DNS e quindi di "depistare" la navigazione dei dispositivi connessi al router infetto in maniera fraudolenta.
 
Si può testare la propria sicurezza utilizzando la scansione di rete offerta dallo strumento "Protezione rete domestica" di Avast Free Antivirus che dopo una breve verifica ci indicherà i punti deboli della nostra rete rilevando anche una eventuale vulnerabilità rom-0.
 
E' anche opportuno accedere al router tramite l'apposita interfaccia web per verificare che nei campi dedicati ai server DNS non siano presenti valori da noi non riconosciuti (è proprio questo il modo di agire dell'infezione). Di norma è sufficiente lasciare l'impostazione di default che è "DNS Relay: Auto".
 
DNS Relay impostato su automatico
Se dovesse risultare impossibile accedere al router pur essendo certi di utilizzare le corrette credenziali e sui PC e/o dispositivi ad esso connessi, la navigazione dovesse risultare compromessa, sarà opportuno effettuare scansioni antimalware sugli stessi ed effettuare un reset hardware del router.
 
Soluzione
Ricordiamo prima di tutto che è particolarmente importante inserire sempre una password sufficientemente sicura per l'accesso al router.
 
Il primo sistema per tentare di porre rimedio alla eventuale falla è quello di provvedere ad un aggiornamento del firmware del nostro router (se esiste).
 
Nel caso in cui l'aggiornamento non sia disponibile è opportuno verificare che nella configurazione tramite interfaccia web del router non sia disponibile la possibilità di disattivare gli accessi allo stesso dalla WAN.
 
Se i due tentativi di cui sopra non dovessero avere esito positivo, si può tentare di inpedire gli accessi al router dall'esterno (WAN) tramite comandi Telnet. I router che accettano tali comandi sono parecchi, tuttavia la successiva soluzione è stata testata soltanto su alcuni modelli:
 
 
Come procedere
Per stabilire una comunicazione via telnet con il nostro router si può utilizzare un apposito emulatore (ad esempio PuTTY) o come descriviamo di seguito una finestra DOS (con comandi elevati in caso di Windows 7 o 8).
 
Apriamo il prompt dei comandi (su Windows 7/8 esegui come amministratore);
al suo interno digitiamo i seguenti comandi:
telnet xxx.xxx.xxx.xxx (dove xxx.xxx.xxx.xxx rappresenta l'indirizzo IP del router, ad esempio 192.168.0.1)
battendo invio ci verrà richiesta la password del router, dopo averla digitata e confermata con invio, ci verra presentata una schermata con alcuni dati relativi allo stesso ed il cursore lampeggiante in attesa di comandi;
 
Telnet da Prompt dei comandiInserire e confermare la password
 
digitiamo seguiti da invio:
sys server load
e
sys server disp
 
Comunicazione con il router 1
 
quest'ultimo comando ci fornirà lo stato attuale delle porte di accesso al router, i valori accanto ad access hanno il seguente significato 0:all (tutte le interfacce) 1:none (nessuna interfaccia) 2:LAN only 3:WAN only. E' vitale comprendere che se imposiamo su "1"  tutti i parametri compreso il telnet, il router continuerà a funzionare ma non potremo più accedervi neanche noi se non dopo averlo resettato via hardware.
 
Di seguito consigliamo una configurazione che potrebbe darci sufficiente sicurezza (tutti i comandi devono essere seguiti da invio):
 
sys server access web 1
sys server access ftp 1
sys server access icmp 2
sys server access telnet 2
sys server access tftp 1
sys server access snmp 2
 
possiamo quindi salvare con il seguente comando seguito da invio:
sys server save
 
Attenzione a non essere troppo zelanti, sys server access telnet deve essere impostato su 2, altrimenti neanche noi potremo più accedere al nostro router se non dopo averlo resettato.
 
Ricordiamo che nella configurazione di cui sopra abbiamo specificato il valore 1 per l'accesso web (sys server access web 1). Ciò impedirà di accedere all'interfaccia di configurazione del nostro router via web finchè non la riattiveremo con i seguenti comandi (sempre da prompt dei comandi).
 
telnet 192.168.0.1 (usiamo sempre l'indirizzo di esempio ma l'indirizzo varia da router a router o da configurazione a configurazine)
sys server load
sys server access web 2
sys server save
 
Riportiamo alcuni modelli di router ai quali si applica quanto sopra descritto
Digicom Michelangelo Wave
Edimax AR7084G
Sitecom WL-174 e WL-175
TP-Link TD-W8901G, TD-8816, TD-W8951ND, ZTE ZXV10 W300
 
Ribadiamo la difficoltà delle operazioni di cui sopra e precisiamo che le operazioni dovrebbero essere eseguite da persone sufficientemente esperte, in alternativa è conveniente rivolgersi ad un tecnico specializzato.