Alcuni ricercatori facendo reverse enginering di alcuni firmware di droni costruiti da DJI e analizzando con attenzione il protocollo C2 di trasmissione e controllo tra radiocomando e drone stesso, hanno scoperto gravi vulnerabilità.
Il primo e più evidente problema che salta agli occhi è che con qualche centinaio di euro, acquistando una tipologia di ricevitore digitale meno costoso di quello usato durante gli esperimenti, si possa conoscere in tempo reale, la posizione, la velocità e l’altezza del drone, ma anche la posizione del pilota che tiene il radiocomando in mano.
Prima di procedere raccontiamo lo svolgimento degli eventi: alcuni ricercatori dell’Università di Bochum e del CISPA (Helmholtz Center for Information Security) hanno presentato al NDSS (Network and Distributed System Security Symposium (NDSS) di San Diego le loro importanti scoperte.
Fino ad oggi i dati telemetrici che trasmessi e ricevuti tra drone e controller dei droni DJI, erano disponibili solo da chi acquistava un sistema DJI Aeroscope.
Sistema venduto per lo più solo ad organizzazioni governative e di sicurezza o ad alcuni aeroporti mondiali, che grazie all’uso di potenti antenne riceventi, potevano captare la presenza di droni DJI in volo nel raggio di svariati chilometri.
L’hack, si chiama così in gergo, presentato con un vero e proprio paper, (vedi link più sotto), prevede l’uso di ricevitore digitale Ettus, ma utilizzabile anche dal più economico ricevitore SDR (software defined radio) HackRf, e l’uso di un apposito software che permette di conoscere tutti i dati sopra elencati.
Aeroscope vs Drone-ID
Questo in teoria potrebbe non essere un grave problema, se non fosse per la violazione della privacy dei piloti.
Ma come dicevamo prima, anche gli utilizzatori di Aeroscope nella pratica sono a conoscenza di tutti i dati trasmessi dal sistema RC dei prodotti DJI.
Bisogna considerare che già negli Stati Uniti e presto anche in Europa a seguito del regolamento promosso da EASA, tutti i droni in volo dovranno fornire un sistema di identificazione remoto, con un protocollo chiaro e aperto.
La portata di tale sistema di identificazione chiamata Drone-ID è limitata a qualche centinaio di metri, mentre la ricezione dei protocolli di trasmissione tipo OcuSync 2 di DJI con il sistema e le antenne esterne di Aeroscope arriva ad alcune decine di Km.
Quindi qualche decina o forse centinaia di metri per l’hack di decodifica con ricevitori customizzati con il software in Python installato su di essi, contro svariati chilometri.
I droni DJI potrebbero essere hackerati e controllati remotamente
Il problema vero a nostro avviso non riguarda solo la posizione del pilota e relativa privacy, che comunque presto o tardi, verranno svelate durante tutti i voli.
Tanto è vero che esiste anche una applicazione gratuita per Android che su alcuni smartphone permette di vedere la trasmissione del Drone-ID sui droni che lo implementano senza hardware aggiuntivo.
Il guaio grosso consiste nel fatto che i ricercatori, lavorando sui protocolli di controllo e comando dei droni, hanno trovato ben 16 vulnerabilità software che vanno dal DOS (Denial Of Service) cioè negazione del servizio, alla esecuzione di codice arbitrario.
Gli informatici a questo punto staranno molto scomodi sulla loro sedia.
In parole povere significa che se al posto di un ricevitore SDR si utilizza una radio in grado di trasmettere e grazie alla rilevazione del protocollo che usa DJI, non protetto da cifratura, è possibile inviare comandi al drone e prenderne il controllo o farlo cadere o non rispondere agli ordini impartiti dal pilota.
Prima di pubblicare questo articolo, parlando con alcuni tecnici e lettori di Dronezine, avevamo affermato che ritenevamo impossibile o quantomeno bizzarro che i protocolli di rx/tx per controllare i droni, non fossero cifrati.
Evidentemente ci sbagliavamo.
E i droni commerciali usati in guerra?
Pensiamo per un momento anche solo alle applicazioni che tale scoperta, può apportare nel conflitto Russia Ucraina dove vediamo che tutti i giorni entrambi gli eserciti utilizzano droni commerciali del noto costruttore.
Se un drone permette di avere una visuale dall’alto, allo stesso modo con Aeroscope o questo hack è possibile rilevare la posizione del pilota.
Nella speranza che DJI metta il più in fretta possibile una “pezza” ovvero emetta un patch, ammesso che si a sufficiente solo una modifica software al protocollo di trasmissione e non sia invece necessario potenziare anche l’hardware sui droni e relativi radiocomandi, vi lasciamo alla lettura dell’interessante paper e al sito su GitHub di per il codice in Python relativo al hack.




