Tendências do dia

Um herói sem capa: este hacker alemão conseguiu ressuscitar um satélite que estava completamente inutilizável há 12 anos

Inclusive conseguiu imagens da câmera.

Ele conseguiu ressuscitar um satélite que estava desligado há 12 anos. Imagem: TU Berlin, media.ccc.de/CC BY 4.0
Sem comentários Facebook Twitter Flipboard E-mail
sofia-bedeschi

Sofia Bedeschi

Redatora

Jornalista com mais de 5 anos de experiência no ramo digital. Entusiasta pela cultura pop, games e claro: tecnologia, principalmente com novas experiências incluídas na rotina. 

Que um pequeno satélite falhe em órbita é algo bastante comum. Afinal, ele está constantemente exposto à radiação. Mas o fato de um estudante universitário decidir hackeá-lo, descobrir que o problema era, na verdade, de software e conseguir consertá-lo 12 anos depois... isso é épico.

Perdido

Em 2009, a Universidade Técnica de Berlim lançou um pequeno satélite chamado BEESAT-1. Dois anos depois, o controlador principal do satélite começou a enviar dados de telemetria incorretos. A troca para o controlador redundante resolveu temporariamente o problema, mas, depois de mais dois anos, ele também falhou.

Em 2013, o BEESAT-1 tornou-se praticamente inutilizável. Outros satélites da série BEESAT foram lançados desde então e encerraram sua vida útil ao queimarem na atmosfera. No entanto, o BEESAT-1 foi implantado em uma órbita mais alta, com um apogeu de 723 km, o que significa que ele continuará orbitando a Terra por pelo menos mais 20 anos.

Um Game Boy no espaço

Equipado com uma pequena câmera e uma roda de reação, o BEESAT-1 é um CubeSat 1U, um tipo de nanosatélite que mede 10 x 10 x 10 cm. Com dois microcontroladores ARM-7 de 60 MHz e 16 MB de memória, essa pequena nave tem poder de processamento comparável ao de um Game Boy.

As operações do BEESAT-1 foram encerradas há mais de uma década. A equipe nunca soube se o problema foi uma falha na configuração ou no próprio computador de bordo, já que a função de atualizar o software remotamente nunca foi implementada. Na verdade, vários sensores e atuadores do satélite nunca foram completamente testados, pois dependiam de uma atualização que nunca aconteceu.

Um desafio

Apesar do tempo, nem todos se esqueceram do BEESAT-1. Um estudante da TU Berlim, conhecido como PistonMiner, se obcecou pelo satélite devido à sua órbita mais alta, o que tornava o desafio de consertá-lo ainda mais interessante.

Lançado como carga secundária do foguete PSLV-CA C14, que colocou em órbita o satélite indiano Oceansat-2, o BEESAT-1 sobrevoa a Alemanha seis vezes por dia. No entanto, ele se desloca a 27.000 km/h, o que significa que, sendo otimistas, há uma janela de apenas 15 minutos para se comunicar com o satélite em cada passagem.

Um achado

Usando o transceptor ainda operacional de 4,8 kbps, PistonMiner descobriu que o satélite transmitia pacotes de telemetria vazios. Ao analisar a estrutura desses pacotes, percebeu que certos valores apareciam como se tivessem sido sobrescritos ou definidos no valor máximo.

Embora a hipótese inicial para a falha do satélite fosse danos causados pela radiação, algo comum em órbita, o jovem hacker verificou que o problema era, na verdade, uma falha de configuração. Provavelmente, um reset durante a gravação da memória flash corrompeu a área onde são armazenados parâmetros críticos do código, impedindo a geração de dados úteis.

Imagem dos Alpes e de Budapeste capturada pelo PistonMiner com a câmera BEESAT-1. Imagem dos Alpes e de Budapeste capturada pelo PistonMiner com a câmera BEESAT-1.

Trabalho minucioso

PistonMiner pesquisou antigos repositórios e entrou em contato com ex-integrantes do projeto, mas conseguiu recuperar apenas parte do código-fonte do satélite. Com isso, precisou desmontar e reanalisar manualmente diversas funções para entender seu funcionamento.

O satélite armazena tanto o firmware quanto as páginas de configuração com parâmetros na memória flash. Isso significa que, para modificar um único bit de 0 para 1, era necessário apagar a página inteira e reprogramá-la.

Por esse motivo, PistonMiner criou uma espécie de "Frankenstein" utilizando outros CubeSats, como o BEESAT-9, para simular da forma mais precisa possível o funcionamento do BEESAT-1.

Uma solução

O estudante alemão aproveitou um comando que permitia modificar temporariamente o intervalo de geração de telemetria para verificar se o satélite ainda respondia. Ao alterar esse parâmetro, o BEESAT-1 voltou a enviar dados telemétricos.

O verdadeiro feito veio depois: como o satélite não tinha um sistema de atualização de software, PistonMiner desenvolveu patches para interceptar certos comandos e adicionar novas funções. Ele conseguiu gravar na memória corretamente e restaurou a telemetria completa dos sensores e do sistema de energia. Até mesmo recuperou imagens da câmera. O hacker trouxe o satélite de volta à vida.

Inicio