De maker van een kleine kunstmatige satelliet "Beesat-1" van de Technische Universiteit van Berlijn lanceerde deze in het najaar van 2009 met een Indiase raket in een relatief hoge baan op ruim 700 kilometer boven de aarde. Het is niet alleen bedoeld om als model te dienen voor de rest van de Beesats-familie, maar ook om te bewijzen dat micro- of picometersatellieten die minder dan een kilogram wegen, ook vergelijkbare technische functies kunnen vervullen als hun grote broers. Maar in 2013 diende dit hemellichaam geen enkel doel meer. Het kan geen bruikbare gegevens meer terugsturen naar de universiteit. Met een paar trucjes slaagde een vindingrijke hacker erin om het vliegende object vanaf de grond te repareren en het weer volledig functioneel te maken voor de komende 20 jaar, ondanks het falen van het updatemechanisme.
Wat klonk als een sprookje werd werkelijkheid, zo onthulde hacker PistonMiner zaterdag op de 38e Chaos Communications Conference (38C3) in Hamburg. Beesat-1 werd de ruimte in gelanceerd als een van de vroege CubeSats ter grootte van een handpalm, met externe afmetingen van ongeveer 10 x 10 x 10 kubieke centimeter. Het belangrijkste doel is om de prestaties van nieuw ontwikkelde microreactiewielen en andere technologieën voor microsatellieten te demonstreren.
In 2011 begon Beesat-1 voor het eerst met het verzenden van ongeldige telemetriegegevens. Ontwikkelaars zijn vooral geïnteresseerd in deze automatisch verzamelde ruwe informatie. Na een tijdje schakelt de operator over op een tweede boordcomputer en de bijbehorende communicatiemodule stuurt de felbegeerde gegevens van de onderzoekers terug naar Berlijn. In 2013 had de tweede computer echter ook problemen. Onderzoekers van de Duitse Technische Universiteit hadden geen andere keuze dan de activiteiten feitelijk stop te zetten. Ze kunnen maar eens in de paar jaar controleren of de satelliet nog steeds op commando's reageert.
Rekenkracht zo krachtig als een gameconsole
PistonMiner, dat een partnerschap heeft met de Duitse Technische Universiteit (TU), is vooral geïnteresseerd in het nieuw leven inblazen van Beesat-1 omdat deze een hogere baan heeft en nog jaren in de ruimte zal blijven. Bijna alle andere nakomelingen van de serie verbrandden in de atmosfeer. Om het probleem op te lossen wilde de student eerst uitzoeken hoe deze kleine vriend van de aarde werkte. Volgens hem beschikt Beesat-1 over twee CAN-bussen, die veel voorkomen in auto's. Het communicatiesysteem bestaat uit twee redundante lijnen, een antenne, een transceiver en een terminal node controller (TMC), met een communicatiesnelheid van 4,8 kbps.
De boordcomputer is voorzien van twee redundante, op ARM-7 gebaseerde microcontrollers, geklokt op 60 MHz, waardoor de PistonMiner de rekenkracht van een gameconsole heeft. Het heeft een programmageheugen van 16 MB en in principe kan de software na het opstijgen via afstandsbedieningsopdrachten worden geladen. Opgenomen gegevens worden opgeslagen in 4 MB telemetriegeheugen. Er is ook 2 MB SRAM aanwezig. Met een snelheid van 7,5 kilometer per seconde doet Beesat-1 er 100 minuten over om rond de aarde te draaien. Omdat er vanuit Berlijn mee werd gecommuniceerd, duurde elk van de zes flyby's in 24 uur hoogstens 15 minuten. Kortere transmissietijden zijn realistisch en haalbaar.
'Frankenstein-Bee Satelliet' biedt duidelijkheid
Terwijl operators aanvankelijk geloofden dat ruimtestraling de belangrijkste oorzaak van de problemen was, wees PistonMiner erop dat het een softwarefout was. Naast andere redenen vond het ook veel nullen in "lege" telemetriedataframes, die CubeSats pas na maart 2013 terugstuurde. Dit beperkt de zoektocht naar beschadigde functies tot functies die naar flashgeheugen kunnen schrijven. De hoofdverdachte is de opstartteller van de boordcomputer, die alle functionaliteit heeft die nodig is om een nul te genereren.
Om zijn theorie te bewijzen, stelde PistonMiner een "Frankenstein Bee Satellite" samen, omdat er geen echte testmodellen meer op aarde waren. Dit biedt hem een manier om te testen en te debuggen via JTAG. Hij kon ook de meeste binaire bestanden, broncode en documentatie verkrijgen, maar moest deze op verschillende plaatsen handmatig aanpassen. Hij zou bijvoorbeeld opdrachten op afstand kunnen proberen om code uit te voeren en een software-image van 300 KB te installeren.
Een virtuele functietabelaanwijzer geschreven in C++ die informatie over Beesat-1 overlapt, bleek bijzonder nuttig. Uiteindelijk kunnen zowel Vtable-aanwijzers als de controlestroom (dat wil zeggen de volgorde waarin instructies in een programma worden uitgevoerd) worden gekaapt. Dit is de basis om uw eigen code in het systeem te brengen. Vervolgens moet het bandbreedteprobleem worden aangepakt. Hoewel ondersteuning voor gerelateerde opdrachten op afstand gepland was voor grotere updates, is dit nog niet geïmplementeerd. Als gevolg hiervan moest PistonMiner zijn communicatiesystemen opnieuw aanpassen om verstoringen zoveel mogelijk te voorkomen.
Camera stuurt opnieuw beelden naar de aarde
Na wat debuggen stuurden de studenten in verschillende rondes de benodigde beelden naar Beesat-1, waardoor het telemetriesysteem weer volledig operationeel was. In september werd een overeenkomstige software-update uitgevoerd om de CubeSats terug te brengen naar de fabrieksinstellingen. Tijdens dit proces ontdekte PistonMiner ook dat de ingebouwde camera, waarvan aanvankelijk werd gedacht dat deze kapot was, plotseling automatisch werd ingeschakeld. Dit wordt veroorzaakt door een kleine kwetsbaarheid in de code, waarbij het commando om de geheugeninhoud uit te voeren de camera ook instrueert een foto te maken. Een hacker kon via een downloadknop een foto van 9480 bytes van het aardoppervlak versturen, ook al werkte de automatische belichting volgens hem niet zo goed.
In principe kan Beesat-1 nu weer voor experimenten worden gebruikt. Radioamateurs kunnen het vliegtuig ook gebruiken om radiobakens voor zoek- en reddingsdiensten te verwerven, evenals navigatie- en digitale zenders, d.w.z. automatisch werkende zend- en ontvangststations voor het doorgeven van gegevens tussen twee radiostations. Er bestaat geen twijfel over dat PistonMiner wil dat de satelliet ‘zo lang mogelijk in leven blijft’. Hij gelooft ook dat de operatie, die hij ‘met toestemming’ uitvoerde, model staat voor de omgang met andere satellieten die geen missies meer uitvoeren.