BlackPhone, lo smartphone venduto come uno dei dispositivi più sicuro del mondo… è meno sicuro del previsto. Questo smartphone integra una versione ad hoc di Android 4.4.2 con la peculiarità di prevedere funzioni per cifrare chiamate, testi e mail, non decifrabili da terzi, e accesso a SpiderOak, servizio cifrato di cloud storage. A detta dei progettisti il dispositivo integra meccanismi in grado di resistere anche a eventuali attacchi malware.
Sembrerebbe in sostanza un prodotto ottimo ma Ars Technica rivela che non è tutto oro quello che luccica: un bug nell’applicazione d’instant messaging permetterebbe, infatti, a hacker malintenzionati di decifrare i messaggi, accedere ai contatti e controllare funzioni vitali di un telefono espressamente pensato per uso in ambienti governativi o altri ambiti nei quali la sicurezza dovrebbe essere la priorità.
Mark Dowd, consulente della società australiana Azimuth Security, spiega che a un attacker basta il Silent Circle ID o il numero di telefono del target per sfruttare in remoto il bug e da qui fare quanto elencato sopra oltre a individuare la posizione dell’utente, scrivere codice o testi sulla memoria del dispositivo ed elencare gli account del dispositivo. Gli ingegneri di BlackPhone avrebbero risolto il bug dopo che il consulente ha privatamente segnalato l’inconveniente.
La vulnerabilità ha a che fare con SilentText, applicazione di messaging “sicura” (almeno in teoria) di serie con il dispositivo, disponibile anche come app indipendente scaricabile dal Google Play per altri dispositivi Android. In un componente noto come “libscimp” è presente un bug che corrompe la memoria, una falla nota come “type confusion vulnerability”. Libscimp è l’implementazione BlackPhone del Silent Circle Instant Messaging Protocol (SCIMP), protocollo che funziona in accoppiata all’extensible messaging and presence protocol (XMPP). SCIMP consente di creare canali sicuri end-to-end tra persone che scambiano messaggi di testo, occupandosi di trasporto e cifratura dei dati nel canale. Tecnicamente la vulnerabilità “Type confusion” occorre quando un dato di un determinato tipo (es. un puntatore a un oggetto) è interpretato erroneamente per un altro, errori tipici della programmazione in C.