O criador de um pequeno satélite artificial "Beesat-1" da Universidade Técnica de Berlim lançou-o com um foguete indiano no outono de 2009 em uma órbita relativamente alta, a mais de 700 quilômetros acima da Terra. Pretende-se não só servir de modelo para o resto da família Beesats, mas também provar que microssatélites ou picómetros com peso inferior a um quilograma também podem desempenhar funções técnicas semelhantes às dos seus irmãos mais velhos. Mas em 2013, este corpo celeste já não servia para nenhum propósito. Ele não pode mais enviar dados úteis de volta à universidade. Com alguns truques, um hacker engenhoso conseguiu reparar o objeto voador do solo e torná-lo totalmente funcional novamente pelos próximos 20 anos, apesar da falha do mecanismo de atualização.


PistonMiner fala em 38C3

O que parecia um conto de fadas tornou-se realidade, como revelou o hacker PistonMiner no sábado na 38ª Chaos Communications Conference (38C3) em Hamburgo. O Beesat-1 foi lançado ao espaço como um dos primeiros CubeSats do tamanho da palma da mão, com dimensões externas de aproximadamente 10 × 10 × 10 centímetros cúbicos. O seu principal objetivo é demonstrar o desempenho das rodas de microrreação recentemente desenvolvidas e de outras tecnologias para microssatélites.

Em 2011, o Beesat-1 começou a transmitir dados de telemetria inválidos pela primeira vez. Os desenvolvedores estão particularmente interessados ​​nesta informação bruta coletada automaticamente. Depois de um tempo, o operador muda para um segundo computador de bordo e o módulo de comunicação correspondente envia os cobiçados dados dos pesquisadores de volta para Berlim. Porém, em 2013, o segundo computador também apresentou problemas. Os investigadores da Universidade Técnica Alemã não tiveram outra escolha senão essencialmente encerrar as operações. Eles só podem verificar uma vez a cada poucos anos se o satélite ainda está respondendo aos comandos.

Poder de computação tão poderoso quanto um console de jogos

A PistonMiner, que tem parceria com a Universidade Técnica Alemã (TU), está particularmente interessada em reviver o Beesat-1 porque tem uma órbita mais alta e permanecerá no espaço nos próximos anos. Quase todos os outros descendentes da série foram queimados na atmosfera. Para resolver o problema, o aluno queria primeiro descobrir como funcionava esse amiguinho da Terra. Segundo ele, o Beesat-1 possui dois barramentos CAN, muito comuns em automóveis. O sistema de comunicação é composto por duas linhas redundantes, uma antena, um transceptor e um controlador de nó terminal (TMC), com velocidade de comunicação de 4,8kbps.

O computador de bordo possui dois microcontroladores redundantes baseados em ARM-7 com clock de 60 MHz, dando ao PistonMiner o poder de computação de um console de jogos. Possui memória de programa de 16 MB e, em princípio, o software pode ser carregado por meio de comandos de controle remoto após a decolagem. Os dados gravados são armazenados em 4 MB de memória de telemetria. Há também 2 MB de SRAM. A uma velocidade de 7,5 quilômetros por segundo, o Beesat-1 leva 100 minutos para orbitar a Terra. Comunicando-se com ele a partir de Berlim, cada um dos seis sobrevoos em 24 horas durou apenas 15 minutos, no máximo. Tempos de transmissão mais curtos são realistas e viáveis.

'Satélite Frankenstein-Bee' fornece clareza

Embora os operadores inicialmente acreditassem que a radiação espacial era a principal causa das dificuldades, PistonMiner apontou que se tratava de um erro de software. Entre outras razões, também encontrou muitos zeros em quadros de dados de telemetria "vazios", que o CubeSats só enviou de volta depois de março de 2013. Isso restringe a busca por funções corrompidas àquelas que podem gravar na memória flash. O principal suspeito é o contador de inicialização do computador de bordo, que possui todas as funcionalidades necessárias para gerar um zero.

Para provar sua teoria, PistonMiner montou um “Satélite Frankenstein Bee” porque não havia mais modelos de teste reais na Terra. Isso fornece a ele uma maneira de testar e depurar via JTAG. Ele também conseguiu obter a maioria dos binários, código-fonte e documentação, mas teve que ajustá-los manualmente em vários lugares. Por exemplo, ele poderia tentar comandos remotos para executar código e instalar uma imagem de software de 300 KB.

Um ponteiro de tabela de função virtual escrito em C++ que sobrepõe informações sobre o Beesat-1 mostrou-se particularmente útil. Em última análise, tanto os ponteiros Vtable quanto o fluxo de controle (ou seja, a ordem em que as instruções são executadas em um programa) podem ser sequestrados. Esta é a base para trazer seu próprio código para o sistema. Então, o problema da largura de banda deve ser resolvido. Embora o suporte para comandos remotos relacionados tenha sido planejado para atualizações maiores, isso ainda não foi implementado. Como resultado, a PistonMiner teve que reajustar seus sistemas de comunicação para evitar ao máximo interrupções.

Câmera envia imagens para a Terra novamente

Após alguma depuração, os alunos enviaram as imagens necessárias ao Beesat-1 em diversas rodadas, tornando o sistema de telemetria totalmente operacional novamente. Em setembro, uma atualização de software correspondente foi realizada para restaurar os CubeSats às condições de fábrica. Durante esse processo, PistonMiner também descobriu que a câmera a bordo, que originalmente se pensava estar quebrada, ligou repentinamente automaticamente. Isso é causado por uma pequena vulnerabilidade no código, segundo a qual o comando para exibir o conteúdo da memória também instrui a câmera a tirar uma foto. Um hacker conseguiu enviar uma foto de 9.480 bytes da superfície da Terra por meio de um botão de download, embora a exposição automática não tenha funcionado muito bem, segundo ele.

Em princípio, o Beesat-1 agora pode ser usado novamente para experimentos. Os rádios amadores também podem usar a aeronave para adquirir radiofaróis para serviços de busca e salvamento, bem como navegação e transmissores digitais, ou seja, operar automaticamente estações de transmissão e recepção para encaminhamento de dados entre duas estações de rádio. Não há dúvida de que PistonMiner deseja que o satélite “se mantenha vivo pelo maior tempo possível”. Ele também acredita que a operação, que realizou “com autorização”, é um modelo para lidar com outros satélites que não realizam mais missões.