DJI hizo públicas por error sus claves criptográficas privadas en GitHub

DJI hizo públicas por error sus claves criptográficas privadas en GitHub

En noviembre del año pasado se descubrió que DJI había publicado por accidente las claves criptográficas privadas relativas al firmware de algunos de sus drones. La noticia ahora es que GitHub, la plataforma de desarrollo de programación en la que se hospedaron estas claves, ha rechazado la petición de DJI de retirar el contenido que un usuario había creado a partir de ese error.
Vamos a intentar explicar todo lo que hay tras este grave descuido y cómo se produjo de forma lo más didáctica posible.

Las consecuencias como veremos son muy importantes y la forma que que todo ocurrió me hace pensar que muchas veces no nos damos cuenta de la enorme importancia de comprender las licencias de uso de los sitios que utilizamos en Internet ni de lo valiosa que es nuestra propiedad intelectual hasta que metemos la pata y alguien se aprovecha de ello. Eso es lo que ha pasado nada menos que a DJI.

Por un despiste de un empleado, DJI compartió en GitHub de forma pública un material sensible, ya que contenía nada menos que las claves AES  (Advanced Encryption Standard) que protegían el firmware de su controladora de vuelo.

Gracias a eso, ahora las personas con conocimientos técnicos pueden, entre otras muchas cosas, suprimir el “geofencing” del software de control de vuelo que restringía el vuelo en ciertas áreas.
En general, tras este descuido, los técnicos con suficiente preparación podrán hacer todo tipo de ingeniería inversa. Se podrán lograr grandes cosas investigando los drivers de la controladora DJI, y todo esto que es el fruto de muchas horas de esfuerzo e investigación de DJI, se podrá hacer legalmente.
Parecer ser que el daño ya está hecho y que los hackers de drones ya han comenzado a distribuir firmware modificado para los populares drones Phantom de DJI.

Cómo ocurrió el fallo de DJI

Concretamente el fallo consistió en que un empleado de DJI hizo un fork (un duplicado para seguir una línea independiente de desarrollo) antes de que DJI corrigiera el error.
Este va a ser un fork interesante y muy activo y suponemos que las risas entre hackers están garantizadas, pero se trata de un tema muy serio que tendrá repercusiones graves.
 
Una parte de la comunidad de usuarios de DJI entiende que por motivos de seguridad se incluyan restricciones en el hardware, pero hay otra parte que opina que los únicos que deben imponer tales restricciones por motivos de seguridad son los gobiernos y que DJI no debería condicionar el uso de sus productos.
Hay profesionales que de buenas a primeras se ven en la necesidad de ofrecer servicios expresamente autorizados en esas zonas conflictivas y encuentran en el software de sus herramientas de trabajo, los drones, una complicación más.
 
Después de este fallo, DJI contratacará con actualizaciones de su firmware y del software de las aplicaciones de control. No es mucho más lo que puede hacer porque GitHub se niega a retirar el fork alegando que la licencia de uso de GitHub especifica que al hacer un repositorio público se da una licencia irrevocable.

Expliquemos lo del fork  y lo de la licencia de GitHub un poco mejor

Concretamente el código fue bifurcado por el investigador de drones Kevin Finisterre, quien presentó una refutación exitosa de la solicitud de eliminación de DJI con el argumento de que los términos y condiciones de Github permiten explícitamente la bifurcación de los repositorios públicos.

La sección 5 de los términos de servicio de Github establece:

Al configurar sus repositorios para que se vean públicamente, usted acepta permitir que otros vean y “bifurquen” sus repositorios (esto significa que otros pueden hacer sus propias copias del contenido de sus repositorios en los repositorios que controlan). Si configura sus páginas y repositorios para que se vean públicamente, otorga a cada Usuario de GitHub una licencia mundial no exclusiva para usar, mostrar y ejecutar Su Contenido a través del Servicio de GitHub y para reproducir Su Contenido únicamente en GitHub tal como lo permite la funcionalidad de GitHub ( por ejemplo, mediante bifurcación).
Hay que aclarar que el código de los proyectos alojados en GitHub se almacena típicamente de forma pública, aunque utilizando una cuenta de pago, también permite hospedar repositorios privados.

Qué es GitHub

GitHub es una plataforma muy popular y muy eficiente de desarrollo colaborativo para alojar proyectos. Utiliza un excelente sistema de control de versiones llamado Git . Es algo muy necesario cuando mucha gente esta trabajando en un código que todos comparten haciendo modificaciones cada uno por su cuenta.
Git fue diseñado nada menos que por el famoso Linus Torvalds (creador de Linux), pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente.

Resumiendo

DJI cometió dos errores muy importantes que pueden ocurrir en cualquier empresa por tener una actitud poco cuidadosa o por una cadena de errores menores en la gestión de la seguridad.
  1. No aleccionó adecuadamente a sus empleados sobre el uso de la plataforma GitHub.
  2. Permitió por acción u omisión la salida de las claves de encriptación de su empresa a un sitio en Internet. Esto es algo que hay que evitar siempre.
Etiquetas:

About The Author

Antonio Castro Snurmacher
Colaborador.