SPYPHONE, due sistemi operativi per UN dispositivo SMART-PHONE

Ogni “smartphone” o altro simile dispositivo di comunicazione radio-mobile (ad es. 3G o LTE) esegue in realtà non uno, ma due sistemi operativi. A parte il sistema operativo che VOI utilizzatori finali vedete (Android, iOS, PalmOS), esegue anche un piccolo sistema operativo che gestisce tutto ciò che riguarda la radio. Poiché questa funzionalità è fortemente dipendente dal tempo, è necessario un sistema operativo in tempo reale.

Questo sistema operativo è memorizzato nel firmware (che è l’altro sistema operativo) e funziona sul processore in banda base. Questo RTOS in banda base è sempre interamente proprietario. Ad esempio, l’RTOS all’interno dei processori in banda base di Qualcomm (in questo caso specifico, l’MSM6280) si chiama AMSS, è basato sul proprio kernel REX proprietario ed è composto da 69 attività simultanee, che gestiscono qualsiasi cosa, dall’USB al GPS. Funziona su un processore ARMv5.

Il problema qui è chiaro: questi processori in banda base e il software chiuso proprietario che eseguono sono poco conosciuti, poiché non esiste un’adeguata revisione pubblica (peer review). Questo è in realtà un po’ strano, considerando quanto siano importanti questi piccoli frammenti di software per il funzionamento di un moderno dispositivo di comunicazione. Potresti pensare che questi RTOS in banda base siano sicuri e protetti, ma non è così. Potresti avere il sistema operativo mobile più sicuro al mondo ma stai ancora utilizzando un secondo sistema operativo poco conosciuto, scarsamente documentato, perché è programma cosiddetto “proprietario”, quel tipo di programma del quale chi l’ha scritto tiene “segreto” il codice sorgente.

L’insicurezza del software in banda base non si ha per errore; è uno dei tanti trucchi di progettazione. Gli standard che regolano il funzionamento di questi processori e radio in banda base sono stati progettati negli anni ’80, finendo con una complessa base di codice scritta negli anni ’90, e fatto con il FINTO ridicolo concetto di sicurezza che si ha negli anni ’90. Ad esempio, non c’è quasi nessuna mitigazione degli exploit, quindi gli exploit sono liberi di girare a cavolo. Ciò che rende le cose ancora più grave è che ogni processore in banda base si fida intrinsecamente dei dati che riceve da una stazione base (ad esempio in un ripetitore cellulare). Nulla è controllato, tutto è automaticamente attendibile. Infine, il processore in banda base è solitamente il processore master, mentre il processore dell’applicazione (che esegue il sistema operativo mobile) è il cosiddetto slave.

Quindi, abbiamo un sistema operativo completo, in esecuzione su un processore ARM, senza alcuna inibizione degli exploit (o solo una minima parte), che si fida automaticamente di ogni istruzione, pezzo di codice o dato che riceve dalla stazione base a cui sei connesso. Che cosa potrebbe andare storto?

Il ricercatore di sicurezza Ralf-Philipp Weinmann dell’Università del Lussemburgo ha deciso di decodificare il software del processore in banda base di Qualcomm e Infineon, e ha individuato agevolmente carichi e carichi di “bug”, di fregature, di trucchi, sparsi ovunque, ogni singolo oggetto dei quali potrebbe portare ai cosiddetti exploit:crash del dispositivo e persino consentire all’attaccante di eseguire codice da remoto.

Ricorda: dappertutto. Uno degli exploit che ha trovato non richiedeva altro che un messaggio di 73 byte per ottenere l’esecuzione di codice da remoto.

Puoi fare cose pazze con questi exploit. Ad esempio, puoi attivare la risposta automatica, utilizzando il set di comandi Hayes Command Set.

Questo è un linguaggio di comando per modem progettato nel 1981 e funziona ancora sui moderni processori in banda base che si trovano oggi negli smartphone. Pure la risposta automatica può essere resa silenziosa e invisibile.

Anche se possiamo in qualche modo presumere che le stazioni base nelle torri cellulari gestite da grandi vettori siano “sicure”, il fatto è che le stazioni base stanno diventando molto più economiche e vengono vendute su eBay – e ci sono persino pacchetti software della stazione base di origine. Tali stazioni base possono essere utilizzate per indirizzare i telefoni. Metti una stazione base compromessa in un’area affollata, o anche in un distretto finanziario o in un’altra area sensibile, e puoi accendere da remoto a microfoni, telecamere, posizionare rootkit, effettuare chiamate/inviare messaggi SMS a numeri costosi e così via. Sì, possono persino inchiodare i telefoni in modo permanente.

Questo è un software così complesso e di basso livello che immagino che pochissime persone al mondo capiscano davvero tutto ciò che sta succedendo.

Questa complessità è esattamente uno dei motivi per cui non è facile scrivere la propria implementazione in banda base. L’elenco di standard che descrivono solo GSM è inimmaginabilmente lungo, e questo è solo GSM. Ora devi aggiungere UMTS, HSDPA e così via e così via. E, naturalmente, tutto è coperto da una serie di brevetti ridicolmente complessa. Per finire, le autorità di comunicazione richiedono che il software in banda base sia certificato.

Aggiungi tutto questo ed è facile capire perché ogni produttore di cellulari opta semplicemente per un processore in banda base standard e il software associato. Ciò significa che ogni singola funzionalità e smartphone ha un software che funziona sempre (quando il dispositivo è acceso), ma che è essenzialmente una scatola nera.