Maldrone, el primer malware (conocido) para drones

El experto de seguridad Rahul Sasi (@fb1h2s) ha descubierto y explotado un backdoor en Parrot AR, un popular cuadricóptero que puede ser controlado fácilmente mediante un smartphone.

AR Drone posee un 9-DOF*, un sensor de ultrasonidos (baja altitud), un sensor de presión (altitud alta) y un sensor GPS.

*"Degrees Of Freedom" o "DOF" es una serie de ejes y sensores combinados para el equilibrio de un avión, un helicóptero o un robot.
Un 9-DOF es un 6-DOF (acelerómetros de 3 ejes combinados con un giroscopio de 3 ejes) combinado con un magnetotérmico (brújula).


El AR Drone tiene un binario llamado program.elf que controla el dron entero usado los datos de estos sensores. Este pequeño programa es suficiente para llevar acabo aterrizajes automáticos, estabilidad en vuelo y otras operaciones. El acceso a estos sensores se realiza mediante puertos serie:

/dev/ttyO0 —> rotors and leds
/dev/ttyO1 —> Nav board
/dev/ttyPA1 — > Motor driver
/dev/ttyPA2 —> accelerometer, gyrometer, and sonar sensors
/dev/video0 -->
/dev/video1 — > video4linux2 devices
/dev/i2c-0
/dev/i2c-1
/dev/i2c-2
/dev/usb-i2c


AR Drone también tiene una API de alto nivel, de código abierto, que permite controlar el dron mediante comandos AT y que podría aprovecharse para construir el backdoor más fácilmente, si bien Rahul quería controlar drones y robots en general y por lo tanto su objetivo fue interacturar directamente con los sensores y datos de navegación. Por ello la idea del backdoor se centra directamente en el binario program.elf:

Paso 1: matar program.elf
Paso 2: instalar un proxy de puertos serie para la navboard y otros
Paso 3: redireccionar la comunicación de los puertos serie reales a los puertos serie falsos
Paso 4: parchear el binario program.elf para que use los puertos serie del proxy
Paso 5: Maldrone se comunica con los puertos de serie directamente

En la próxima conferencia Nullcon se dará mayor detalle técnico, aunque parece que Maldrone [MALware DRONE] ya podría secuestrar a distancia drones:

"Una vez que mi programa detiene los controladores reales de los drones, hace que los motores se paren y el dron cae como un ladrillo", dijo Sasi. "Pero mi puerta trasera devuelve al instante el control por lo que si el dron vuela alto en el aire, los motores pueden arrancar otra vez y Maldrone puede evitar que se caiga".

Rahul Sasi también proporciona una prueba de concepto-video para demostrar su eficacia:



"En este video mostramos cómo infectar un avión no tripulado con Maldrone, esperando una conexión tcp inversa. Una vez establecida la conexión, podemos interactuar con el software, así como con los drivers/sensores del avión no tripulado directamente. Existe un programa de pilotaje de AR drone. Nuestras puertas traseras matan al piloto automático y toma el control. El Backdoor es persistente a través de reajustes":

Fuentes:
http://garage4hackers.com/entry.php?b=3105
http://thehackernews.com/2015/01/MalDrone-backdoor-drone-malware.html
http://securityaffairs.co/wordpress/32767/hacking/maldrone-malware-for-drones.html

Comentarios