Mandiant, in coordinamento con la Cybersecurity and Infrastructure Security Agency (“CISA”), ha pubblicato una vulnerabilità con severità critica che colpisce milioni di dispositivi IoT che utilizzano la rete ThroughTek “Kalay”.
Questa vulnerabilità, scoperta dai ricercatori del Red Team di Mandiant alla fine del 2020, può consentire agli aggressori di compromettere da remoto i dispositivi IoT delle vittime, permettendo loro di ascoltare audio dal vivo, guardare dati video in tempo reale e compromettere le credenziali del dispositivo. Ulteriori attacchi possibili includono azioni volte a controllare da remoto i dispositivi compromessi.
Al momento della stesura di questo blog, ThroughTek pubblicizza la presenza di oltre 83 milioni di dispositivi attivi e oltre 1,1 miliardi di connessioni mensili sulla propria piattaforma. I clienti di ThroughTek includono produttori di fotocamere IoT, smart baby monitors e prodotti per videoregistratori digitali (“DVR”).
A differenza della vulnerabilità pubblicata dai ricercatori di Nozomi Networks nel maggio 2021 (anche questa in coordinamento con CISA), questa invece consente agli aggressori di comunicare, controllare e eseguire comandi da remoto sui dispositivi vulnerabili.
Il protocollo Kalay è implementato come un kit di sviluppo software (“SDK”) integrato nei software client (ad esempio nelle applicazioni mobile o desktop) e nei dispositivi IoT collegati in rete, come le foto/video-camere. Dato il meccanismo con cui il protocollo Kalay viene integrato dai produttori (“OEM”) e dai rivenditori prima ancora che i dispositivi raggiungano i consumatori finali, Mandiant non è in grado al momento di fornire un elenco completo dei prodotti e delle aziende interessate dalla vulnerabilità scoperta.
A questa vulnerabilità è stato assegnato un punteggio “base” CVSS3.1 di 9,6 ed è stata censita come CVE-2021-28372 e FEYE-2021-0020. Questo blog racconta la vulnerabilità CVE-2021-28372 ad alto livello e include anche raccomandazioni di ThroughTek e Mandiant, oltre alle diverse opzioni di mitigazione.
Mandiant desidera ringraziare sia CISA che ThroughTek per il coordinamento e supporto nella pubblicazione di questo avviso.
FAQ
Quali dispositivi sono interessati e (potenzialmente) quanti dispositivi sono interessati?
Le vulnerabilità descritte in questo post interessano un componente fondamentale della piattaforma Kalay. Mandiant non è stato in grado di creare un elenco completo dei dispositivi interessati; tuttavia, il sito Web di ThroughTek riporta più di 83 milioni di dispositivi attivi sulla piattaforma Kalay al momento della stesura di questo blog.
Come viene affrontato il problema?
Mandiant ha collaborato con ThroughTek e CISA per divulgare questa vulnerabilità e consiglia vivamente alle aziende che utilizzano la piattaforma Kalay di seguire le indicazioni fornite da ThroughTek e Mandiant:
- Se il numero di versione dell’SDK in uso è inferiore a 3.1.10 è necessario aggiornare la libreria alla versione 3.3.1.0 o alla versione 3.4.2.0 e abilitare le funzionalità Authkey e Datagram Transport Layer Security (“DTLS”) fornite dalla piattaforma Kalay.
- Se l’SDK in uso corrisponde alla versione 3.1.10 o successive, abilitare Authkey e DTLS.
- Rivedere i controlli di sicurezza in atto su API o altri servizi che restituiscono gli identificatori univoci di Kalay (“UID”).
In che modo un aggressore sfrutterebbe queste vulnerabilità?
Un aggressore deve come prima cosa avere una conoscenza completa del protocollo Kalay e avere la capacità di generare e inviare messaggi tramite questo protocollo. L’attaccante infatti deve ottenere gli UID di Kalay tramite meccanismi come social engineering o sfruttando vulnerabilità nelle API e/o nei servizi che restituiscono gli UID di Kalay. Con queste informazioni è possible compromettere da remoto i dispositivi vulnerabili che corrispondono agli UID ottenuti.
Come faccio a sapere se un dispositivo che possiedo è interessato da questa problmatica? Come mi proteggo?
Mandiant non è stata in grado di creare un elenco completo di dispositivi che usano la piattaforma Kalay, ma incoraggia vivamente gli utenti di dispositivi IoT a mantenere aggiornati il software e le applicazioni dei loro dispositivi e a utilizzare password complesse e univoche per tutti gli account associati a questi sistemi.
I proprietari dei dispositivi dovrebbero evitare di connettersi ai dispositivi vulnerabili da reti non sicure come le reti wireless pubbliche.
Chi ha scoperto questa vulnerabilità?
Jake Valletta, Erik Barzdukas e Dillon Franke.
CVE-2021-28372: Device Impersonation
I ricercatori Mandiant hanno analizzato il protocollo Kalay di ThroughTek utilizzando due diversi approcci. Innanzitutto, i ricercatori hanno scaricato e analizzato le applicazioni sia dal Google Play Store sia dall’App Store di Apple che includevano le librerie ThroughTek. Queste librerie in genere non contenevano simboli di debug, il che ha richiesto al team l’esecuzione di analisi dinamiche con strumenti come Frida, gdb e Wireshark.
Inoltre, Mandiant ha acquistato vari dispositivi abilitati all’uso di Kalay. Il team ha anche eseguito attacchi hardware per ottenere l’accesso alla shell, recuperare le immagini del firmware ed eseguire ulteriori test dinamici. Le tecniche usate includono l’identificazione delle interfacce UART/JTAG, l’esecuzione di attacchi chip-off e lo sfruttamento di altre funzionalità di debug presenti sui dispositivi.
Nel corso di diversi mesi, i ricercatori hanno sviluppato un’implementazione completamente funzionante del protocollo Kalay di ThroughTek, che ha consentito al team di eseguire le diverse azioni chiave tra cui rilevamento del dispositivo, la registrazione del dispositivo, le connessioni remote, l’autenticazione e, soprattutto, l’elaborazione dei dati audio e video (AV). Altrettanto importante quanto l’elaborazione dei dati AV, il protocollo Kalay implementa anche la funzionalità di remote procedure call (“RPC”). Questa funzionalità varia da dispositivo a dispositivo, in genere viene utilizzato per la telemetria del dispositivo, gli aggiornamenti del firmware e il controllo del dispositivo.
Avendo Mandiant scritto un’interfaccia flessibile per creare e manipolare richieste e risposte Kalay, i ricercatori Mandiant si sono concentrati sull’identificazione delle vulnerabilità logiche e sulla analisi del flusso nel protocollo Kalay. La vulnerabilità discussa in questo blog influisce sul modo in cui i dispositivi abilitati per Kalay accedono e si uniscono alla rete Kalay. I ricercatori Mandiant hanno determinato che il processo di registrazione del dispositivo richiede solamente l’identificativo di 20 byte (chiamato UID) che assegnato in modo univoco. Nei test di Mandiant, questo UID veniva in genere fornito a un client abilitato per Kalay (come un’applicazione mobile) da un’API Web ospitata dalla società che commercializza e vende un modello di dispositivo. Mandiant ha studiato la fattibilità di attacchi brute-force agli UID ThroughTek e l’ha trovata irrealizzabile per via del tempo e delle risorse necessarie.
La Figura 1 mostra un tipico processo di registrazione del dispositivo e relativa connessione del client sulla rete Kalay. Nell’esempio un utente accede da remoto alla videocamera situata sulla sua rete domestica usando un’applicazione mobile da una rete esterna come ad esempio una caffetteria o una rete di telefonia mobile.
Se un aggressore ottiene l’UID di un dispositivo Kalay usato dalla vittima, può registrare intenzionalmente un dispositivo con lo stesso UID sulla rete e far sì che i server Kalay sovrascrivano il dispositivo Kalay esistente. Una volta che un aggressore ha registrato intenzionalmente un UID, qualsiasi tentativo di connessione client di accedere all’UID della vittima verrà indirizzato all’utente malintenzionato. L’attaccante può quindi continuare il processo di connessione e ottenere i dati di autenticazione (un nome utente e una password) necessari per accedere al dispositivo.
La Figura 2 mostra un tentativo di connessione via client quando sulla rete esistono contemporaneamente sia il dispositivo della vittima sia il dispositivo dell’aggressore con il medesimo UID. In questo esempio, la registrazione del dispositivo dell’aggressore sovrascrive la registrazione esistente, causando l’erroneo instradamento delle connessioni client dell’aggressore.
Con le credenziali compromesse, l’aggressore può utilizzare la rete Kalay per connettersi in remoto al dispositivo originale, accedere ai dati AV ed eseguire chiamate RPC. Le vulnerabilità nell’interfaccia RPC implementata dal dispositivo possono portare alla compromissione del dispositivo da remoto. Mandiant ha osservato che i file sui dispositivi IoT che elaboravano i dati Kalay venivano generalmente eseguiti come root cioè con una utenza privilegiata e spesso non erano usati sistemi di protezione come ASLR (Address Space Layout Randomization), PIE (Platform Independent Execution), gli stack canary e i bit NX.
La Figura 3 mostra un ipotetico attacco che utilizza un nome utente e la password Kalay sottratti in precedenza per sfruttare l’interfaccia Kalay RPC.
Il video, presente al seguente link https://www.youtube.com/watch?v=PBiW-rg8-LE, mostra lo struttamento della vulnerabilità CVE-2021-28372. Nota che Mandiant non sta rilasciando alcun codice exploit pubblico.
Rimedi e raccomandazioni
Mandiant e ThroughTek consigliano vivamente alle aziende che utilizzano il protocollo Kalay di eseguire l’aggiornamento almeno alla versione 3.1.10 e di abilitare le seguenti funzionalità Kalay:
- DTLS per protegge i dati in transito.
- AuthKey per aggiunge un ulteriore livello di autenticazione durante la connessione del client.
Insieme, queste due funzionalità riducono il rischio relativo alla vulnerabilità CVE-2021-28372 e impediscono agli aggressori di abusare del protocollo Kalay.
Le funzionalità di protezione avanzata come ASLR, PIE, NX e stack canary dovrebbero essere abilitate su tutti i file di tipo binary che elaborano i dati Kalay e le funzioni RPC dovrebbero essere trattate come non attendibili e se gli input non sono sanitizzati in modo appropriato.
Infine, Mandiant raccomanda vivamente ai produttori di dispositivi IoT di applicare rigorosi controlli sulle API Web utilizzate per ottenere UID, nomi utente e password Kalay per ridurre al minimo la possibilità che un aggressore raccolga dati critici necessari per accedere ai dispositivi in remoto. La mancata protezione delle API Web che restituiscono UID Kalay validi potrebbe consentire a un aggressore di compromettere un numero elevato di dispositivi.
Conclusioni
CVE-2021-28372 rappresenta un rischio enorme per la sicurezza e la privacy degli utenti finali e dovrebbe essere mitigato in modo appropriato. I dispositivi non protetti, come le telecamere IoT, possono essere compromesse da remoto tramite l’uso dell’UID e sono possibili ulteriori attacchi a seconda delle funzionalità esposte dai dispositivi.
Mandiant desidera ringraziare ThroughTek e CISA per la loro collaborazione e supporto nel rilasciare questo avviso e per l’impegno a proteggere i dispositivi IoT a livello globale.