El creador del pequeño satélite artificial "Beesat-1" de la Universidad Técnica de Berlín lo lanzó en otoño de 2009 con un cohete indio a una órbita relativamente alta, a más de 700 kilómetros sobre la Tierra. No sólo pretende servir como modelo para el resto de la familia Beesats, sino también demostrar que los satélites micro o picómetros que pesan menos de un kilogramo también pueden realizar funciones técnicas similares a las de sus hermanos mayores. Pero en 2013, este cuerpo celeste ya no tenía ningún propósito. Ya no puede enviar datos útiles a la universidad. Con algunos trucos, un hacker ingenioso logró reparar el objeto volador desde el suelo y hacerlo completamente funcional nuevamente durante los próximos 20 años a pesar del fallo del mecanismo de actualización.


PistonMiner habla en 38C3

Lo que parecía un cuento de hadas se hizo realidad, como reveló el hacker PistonMiner el sábado en la 38ª Conferencia de Comunicaciones del Caos (38C3) en Hamburgo. Beesat-1 se lanzó al espacio como uno de los primeros CubeSats del tamaño de la palma de la mano, con unas dimensiones externas de aproximadamente 10 × 10 × 10 centímetros cúbicos. Su objetivo principal es demostrar el rendimiento de las ruedas de microrreacción recientemente desarrolladas y otras tecnologías para microsatélites.

En 2011, Beesat-1 comenzó a transmitir datos de telemetría no válidos por primera vez. Los desarrolladores están particularmente interesados ​​en esta información sin procesar recopilada automáticamente. Al cabo de un rato, el operador cambia a un segundo ordenador de a bordo y el módulo de comunicación correspondiente envía los codiciados datos de los investigadores a Berlín. Sin embargo, en 2013, el segundo ordenador también tuvo problemas. Los investigadores de la Universidad Técnica Alemana no tuvieron más remedio que cerrar las operaciones. Sólo pueden comprobar una vez cada pocos años para ver si el satélite sigue respondiendo a las órdenes.

Potencia informática tan poderosa como una consola de juegos

PistonMiner, que tiene una asociación con la Universidad Técnica Alemana (TU), está particularmente interesado en revivir Beesat-1 porque tiene una órbita más alta y permanecerá en el espacio durante los próximos años. Casi todos los demás descendientes de la serie fueron quemados en la atmósfera. Para resolver el problema, el estudiante primero quiso descubrir cómo funciona este pequeño amigo de la Tierra. Según él, Beesat-1 tiene dos autobuses CAN, que son muy comunes en los automóviles. El sistema de comunicación consta de dos líneas redundantes, una antena, un transceptor y un controlador de nodo terminal (TMC), con una velocidad de comunicación de 4,8 kbps.

La computadora a bordo cuenta con dos microcontroladores redundantes basados ​​en ARM-7 sincronizados a 60 MHz, lo que le da al PistonMiner la potencia informática de una consola de juegos. Tiene una memoria de programa de 16 MB y, en principio, el software se puede cargar mediante comandos de control remoto después del despegue. Los datos registrados se almacenan en 4 MB de memoria de telemetría. También hay 2 MB de SRAM. A una velocidad de 7,5 kilómetros por segundo, Beesat-1 tarda 100 minutos en orbitar la Tierra. Comunicándose con él desde Berlín, cada uno de los seis sobrevuelos en 24 horas duró como máximo sólo 15 minutos. Los tiempos de transmisión más cortos son realistas y factibles.

El 'satélite Frankenstein-Bee' proporciona claridad

Si bien los operadores inicialmente creyeron que la radiación espacial era la principal causa de las dificultades, PistonMiner señaló que se trataba de un error de software. Entre otras razones, también encontró muchos ceros en marcos de datos de telemetría "vacíos", que CubeSats solo envió después de marzo de 2013. Esto limita la búsqueda de funciones corruptas a aquellas que pueden escribir en la memoria flash. El principal sospechoso es el contador de arranque del ordenador de a bordo, que tiene toda la funcionalidad necesaria para generar un cero.

Para probar su teoría, PistonMiner montó un "satélite Frankenstein Bee", porque ya no había modelos de prueba reales en la Tierra. Esto le proporciona una forma de probar y depurar mediante JTAG. También pudo obtener la mayoría de los binarios, el código fuente y la documentación, pero tuvo que modificarlos manualmente en varios lugares. Por ejemplo, podría probar comandos remotos para ejecutar código e instalar una imagen de software de 300 KB.

Un puntero de tabla de funciones virtuales escrito en C++ que superpone información sobre Beesat-1 resultó particularmente útil. En última instancia, tanto los punteros de Vtable como el flujo de control (es decir, el orden en que se ejecutan las instrucciones en el programa) pueden ser secuestrados. Esta es la base para incorporar su propio código al sistema. Entonces, se debe abordar la cuestión del ancho de banda. Si bien se planeó la compatibilidad con comandos remotos relacionados para actualizaciones más grandes, esto aún no se ha implementado. Como resultado, PistonMiner tuvo que reajustar sus sistemas de comunicación para evitar al máximo las interrupciones.

La cámara vuelve a enviar imágenes a la Tierra

Después de algunas depuraciones, los estudiantes enviaron las imágenes necesarias a Beesat-1 en varias rondas, haciendo que el sistema de telemetría volviera a estar completamente operativo. En septiembre se llevó a cabo la correspondiente actualización de software para restaurar los CubeSats a su estado de fábrica. Durante este proceso, PistonMiner también descubrió que la cámara integrada, que originalmente se pensaba que estaba rota, de repente se encendió automáticamente. Esto se debe a una pequeña vulnerabilidad en el código, según la cual el comando para mostrar el contenido de la memoria también indica a la cámara que tome una fotografía. Un hacker pudo enviar una foto de 9480 bytes de la superficie de la Tierra a través de un botón de descarga, aunque, según él, la exposición automática no funcionó tan bien.

En principio, Beesat-1 ahora se puede volver a utilizar para experimentos. Los radioaficionados también pueden adquirir con el avión radiobalizas para servicios de búsqueda y salvamento, así como transmisores digitales y de navegación, es decir, estaciones transmisoras y receptoras que funcionan automáticamente para transmitir datos entre dos estaciones de radio. No hay duda de que PistonMiner quiere que el satélite "se mantenga vivo el mayor tiempo posible". También cree que la operación, que realizó "con permiso", es un modelo para afrontar otros satélites que ya no cumplen misiones.