Sfogliando una delle newsletter di BugTraq mi è caduto l’occhio sulla segnalazione di una falla di sicurezza particolarmente egregia nell’access point wireless Netgear WG602. La cosa mi incuriosisce non poco, perché guarda caso è il modello di access point che uso per la rete senza fili del mio maniero digitale.
Come molti componenti hardware di rete, anche l’access point è gestibile tramite una comoda interfaccia Web: basta puntare un browser all’indirizzo IP dell’aggeggio, digitare nome utente e password, e si ha accesso completo alla configurazione dell’apparecchio. Volendo, lo si può comandare anche via Internet da qualsiasi luogo, compreso il mio cellulare dotato di browser Opera. A patto, ovviamente, di conoscere nome utente e password. E quelle le so soltanto io.
Dato che il segnale di un access point senza fili deborda dal mio maniero fino a quello dei castellani vicini, che potrebbero approfittarne per scroccare la connessione a Internet o sbirciarmi nei computer, un access point è un obiettivo allettante per gli intrusi. Di conseguenza, l’avviso di BugTraq che il firmware del mio access point contiene un nome utente e una password segrete, una sorta di passepartout del produttore, non mi riempie di gioia. Chiunque venga a sapere questi codici ha il controllo completo dell’apparecchio. La cosa peggiore è che questi codici non sono modificabili.
Il segreto di Pulcinella
Stando a BugTraq, i codici “segreti” sono il nome utente “super” e la password “5777364”. Li metto subito alla prova. Dannazione, funzionano, sia tramite la connessione wireless, sia tramite la mia rete cablata. Pensavo di essere blindato, e invece la mia rete wireless è un colabrodo; grazie alla stupidità del produttore dell’apparecchio, se avessi abilitato l’accesso via Internet, chiunque avrebbe potuto scardinarmi la WLAN.
Come può succedere che un produttore di hardware introduca intenzionalmente delle falle così macroscopiche nei propri prodotti? Cattivo controllo di qualità? Nossignore. Queste cose non avvengono per errore: sono intenzionali. Purtroppo la prassi di introdurre backdoor nei prodotti è assai diffusa: serve appunto da passepartout per tirar fuori dai guai i clienti imbranati che si dimenticano le password. Basta una ricerca in Google con le parole-chiave “master password” o “default password” per trovare intere liste di prodotti volutamente resi vulnerabili in questa maniera. Divertitevi a cercare i nomi dei vostri componenti hardware, tenendo a portata di mano dei fazzoletti per asciugarvi le lacrime.
Il problema è che a differenza di un passepartout fisico, che ha buone speranze di rimanere in mano a chi sa custodirlo, una backdoor, una volta rivelata (come avviene sempre prima o poi, visto il numero di persone che deve conoscerla per lavoro), è a disposizione di chiunque sappia usare un motore di ricerca, con l’aggravante che non c’è modo di “cambiare la serratura”.
Chi bazzica gli ambienti della sicurezza informatica sa queste cose da una vita, e non ci vuole una mente da Einstein per capire che introdurre le backdoor è semplicemente stupido, ma come al solito gli unici che non l’hanno capito sono i produttori di hardware. Ancora una volta, la sicurezza è costretta a cedere il passo alla convenienza commerciale.
Software chiuso contro software “aperto”
Vulnerabilità come queste, al di là del caso specifico, demoliscono non solo la nostra sicurezza, ma anche il concetto tanto caro a certi produttori di software secondo il quale il software “chiuso” (quello di cui non vengono pubblicati i sorgenti) è intrinsecamente più sicuro del software “aperto” (i cui sorgenti sono liberamente conoscibili). La maggiore sicurezza del software “chiuso” deriverebbe appunto dal fatto che nessuno può sbirciarne il contenuto e capirne i dettagli del funzionamento, e pertanto sarebbe più difficile trovarne le falle.
Questo purtroppo cozza con l’esperienza: giusto per fare un esempio dolorosamente noto a tanti, praticamente tutte le falle di Windows sono state scoperte senza avere accesso al suo codice sorgente. E quelle di Microsoft sono falle involontarie: se poi i produttori si mettono a introdurre vulnerabilità intenzionali, siamo proprio messi bene.
Dal canto loro, i sostenitori del software “aperto” sostengono che è il loro metodo a essere superiore, perché il codice sorgente, essendo pubblico, viene esaminato da un gran numero di esperti che ne sanno cogliere i difetti; se poi il codice sorgente, oltre che pubblico, è anche liberamente modificabile e ridistribuibile, gli stessi esperti possono creare versioni corrette senza attendere che il produttore schiodi i glutei dalla poltrona, come bisogna fare invece col software “chiuso”. In particolare, col software “aperto” le backdoor sarebbero impossibili, perché verrebbero immediatamente scoperte e rimosse.
Purtroppo anche nel caso del software “aperto” non mancano le falle egregie rimaste inosservate per mesi e anni: per esempio, è proprio di questi giorni l’annuncio di una vulnerabilità (già corretta) che consente all’utente non privilegiato di crashare alcune versioni di Linux.
La verità è che nessuno dei due metodi di produzione di software è intrinsecamente superiore all’altro: si può scrivere ottimo software “chiuso” come si può scrivere pessimo software “aperto”, e viceversa. Usare un approccio invece dell’altro non costituisce garanzia automatica di qualità. Il vantaggio della soluzione “aperta” non è in termini qualitativi, ma deriva dalla libertà di correggere i difetti senza dover dipendere dal produttore.
La burla finale di Netgear
Situazioni spiacevoli come quella dell’access point Netgear troverebbero più facile rimedio se il firmware di questi apparecchi fosse aperto: si potrebbe semplicemente rimuovere la parte di codice che contiene la backdoor, pubblicare la versione corretta e chiudere l’incidente. Invece no: occorre attendere che il produttore risolva il problema.
E sapete cos’ha fatto inizialmente Netgear? Ha pubblicato una nuova versione del firmware, la 1.7.14, segnalando la falla e dichiarandola “risolta” (fixed). Ma invece di togliere la backdoor, l’ha lasciata e ne ha semplicemente cambiato i codici di accesso. Che ovviamente sono già noti a tutti: sono superman e 21241036. Geniale. C’è voluta la protesta degli utenti per indurre Netgear a pubblicare finalmente una ulteriore versione del firmware apparentemente priva di questa backdoor, la 1.7.15, che però al momento in cui scrivo trovate soltanto sul sito italiano di Netgear; sul sito internazionale c’è ancora la 1.7.14 bacata.
Ho contattato il supporto tecnico di Netgear Italia chiedendo spiegazioni su questa curiosa maniera di “risolvere” il problema e garanzie che la nuova versione (1.7.15) non contenga altre backdoor con codici diversi: non ho ricevuto spiegazioni sulle motivazioni della scelta iniziale di lasciare la backdoor, ma mi è stato garantito che la 1.7.15 non contiene backdoor di alcun genere. Speriamo.
Quello che è certo è grazie a casi come questi, la fiducia nel software chiuso, e in chi pensa che sia cosa buona e saggia mettere backdoor nei propri prodotti per agevolare il supporto tecnico, è seriamente incrinata. Caveat emptor.