Immersione nel firmware del terminale utente di Starlink
CasaCasa > Blog > Immersione nel firmware del terminale utente di Starlink

Immersione nel firmware del terminale utente di Starlink

Jun 17, 2023

L'utente medio di Starlink probabilmente non passa molto tempo a pensare al proprio hardware dopo aver allineato la parabola e eseguito il cablaggio. Per i ricercatori di sicurezza, tuttavia, è un altro dispositivo affascinante con cui armeggiare mentre effettuano il reverse engineering del firmware e cercano sia di scoprire cosa lo fa funzionare, sia come romperlo. Questo è essenzialmente l'argomento dell'articolo di [Carlo Ramponi] su Quarkslab mentre approfondisce l'architettura del firmware e i potenziali punti deboli nella sua comunicazione interna.

L'hardware del terminale utente stesso è un SoC standard basato su ARM AArch64, insieme all'interfaccia di comunicazione proprietaria, il tutto controllato dal firmware basato su Linux. Il dump del firmware stesso è stato reso semplice grazie al lavoro esistente dei ricercatori della KU Leuven, che prevedeva il dump del contenuto della memoria eMMC integrata. Successivamente è stato possibile analizzare l'architettura del firmware, che si è rivelata costituita principalmente da binari basati su C++, ma con un unico grande binario per il front-end dell'utente scritto in Go.

La comunicazione tra questi processi viene gestita tramite un protocollo interprocesso personalizzato chiamato "Slate Sharing", il tutto coordinato tramite il processo principale di controllo del terminale utente. Sono questi messaggi IPC Slate che costituiscono la superficie di attacco più probabile per un attacco fuzzing, con il comando SoftwareUpdateRequest che rappresenta un obiettivo interessante in quanto sembrerebbe non richiedere l'autenticazione poiché non si rivolge a un utente specifico. Questo lavoro fa parte della tesi di master di [Carlo] e dovrebbe costituire la base per ulteriori ricerche sul firmware del terminale utente Starlink.