Der Erfinder des kleinen künstlichen Satelliten „Beesat-1“ von der Technischen Universität Berlin brachte ihn im Herbst 2009 mit einer indischen Rakete in eine relativ hohe Umlaufbahn von mehr als 700 Kilometern über der Erde. Es soll nicht nur als Vorbild für den Rest der Beesats-Familie dienen, sondern auch beweisen, dass auch Mikro- oder Pikometersatelliten mit einem Gewicht unter einem Kilogramm ähnliche technische Funktionen erfüllen können wie ihre großen Brüder. Doch 2013 erfüllte dieser Himmelskörper keinen Zweck mehr. Es können keine verwertbaren Daten mehr an die Universität zurückgesendet werden. Mit ein paar Tricks gelang es einem findigen Hacker, das Flugobjekt vom Boden aus zu reparieren und es trotz Ausfall des Update-Mechanismus wieder voll funktionsfähig für die nächsten 20 Jahre zu machen.
Was wie ein Märchen klang, wurde Realität, wie der Hacker PistonMiner am Samstag auf der 38. Chaos Communications Conference (38C3) in Hamburg verriet. Beesat-1 wurde als einer der ersten handtellergroßen CubeSats mit Außenmaßen von etwa 10 × 10 × 10 Kubikzentimetern ins All geschossen. Sein Hauptzweck besteht darin, die Leistungsfähigkeit neu entwickelter Mikroreaktionsräder und anderer Technologien für Mikrosatelliten zu demonstrieren.
Im Jahr 2011 begann Beesat-1 erstmals mit der Übertragung ungültiger Telemetriedaten. Für Entwickler sind diese automatisch gesammelten Rohinformationen besonders interessant. Nach einiger Zeit schaltet der Operator auf einen zweiten Bordcomputer um und das entsprechende Kommunikationsmodul sendet die begehrten Daten der Forscher zurück nach Berlin. Allerdings gab es 2013 auch beim zweiten Rechner Probleme. Den Forschern der Deutschen Technischen Universität blieb nichts anderes übrig, als den Betrieb weitgehend einzustellen. Sie können nur alle paar Jahre überprüfen, ob der Satellit noch auf Befehle reagiert.
Rechenleistung so leistungsstark wie eine Spielekonsole
PistonMiner, das eine Partnerschaft mit der Deutschen Technischen Universität (TU) unterhält, ist besonders an der Wiederbelebung von Beesat-1 interessiert, da es eine höhere Umlaufbahn hat und noch viele Jahre im Weltraum bleiben wird. Fast alle anderen Nachkommen der Serie verglühten in der Atmosphäre. Um das Problem zu lösen, wollte der Student zunächst herausfinden, wie dieser kleine Freund von der Erde funktioniert. Ihm zufolge verfügt Beesat-1 über zwei CAN-Busse, die in Autos sehr verbreitet sind. Das Kommunikationssystem besteht aus zwei redundanten Leitungen, einer Antenne, einem Transceiver und einem Terminal Node Controller (TMC), mit einer Kommunikationsgeschwindigkeit von 4,8 kbit/s.
Der Bordcomputer verfügt über zwei redundante ARM-7-basierte Mikrocontroller, die mit 60 MHz getaktet sind und dem PistonMiner die Rechenleistung einer Spielekonsole verleihen. Es verfügt über einen 16 MB großen Programmspeicher und grundsätzlich kann die Software nach dem Start über Fernsteuerbefehle geladen werden. Aufgezeichnete Daten werden im 4 MB Telemetriespeicher gespeichert. Es gibt auch 2 MB SRAM. Bei einer Geschwindigkeit von 7,5 Kilometern pro Sekunde benötigt Beesat-1 100 Minuten, um die Erde zu umkreisen. Von Berlin aus dauerte jeder der sechs Vorbeiflüge innerhalb von 24 Stunden höchstens 15 Minuten. Kürzere Übertragungszeiten sind realistisch und machbar.
„Frankenstein-Bee-Satellit“ sorgt für Klarheit
Während die Betreiber zunächst davon ausgingen, dass die Weltraumstrahlung die Hauptursache für die Schwierigkeiten sei, wies PistonMiner darauf hin, dass es sich um einen Softwarefehler handele. Unter anderem wurden auch viele Nullen in „leeren“ Telemetriedatenrahmen gefunden, die CubeSats erst nach März 2013 zurücksendete. Dadurch wird die Suche nach beschädigten Funktionen auf solche eingegrenzt, die in den Flash-Speicher schreiben können. Der Hauptverdächtige ist der Boot-Zähler des Bordcomputers, der über alle notwendigen Funktionen verfügt, um eine Null zu erzeugen.
Um seine Theorie zu beweisen, baute PistonMiner einen „Frankenstein Bee Satellite“ zusammen, da es auf der Erde keine tatsächlichen Testmodelle mehr gab. Dies bietet ihm die Möglichkeit, über JTAG zu testen und zu debuggen. Er konnte auch die meisten Binärdateien sowie den Quellcode und die Dokumentation erhalten, musste diese jedoch an verschiedenen Stellen manuell anpassen. Beispielsweise könnte er Remote-Befehle ausprobieren, um Code auszuführen und ein 300-KB-Software-Image zu installieren.
Als besonders nützlich erwies sich ein in C++ geschriebener virtueller Funktionstabellenzeiger, der Informationen zu Beesat-1 überlagert. Letztendlich können sowohl Vtable-Zeiger als auch der Kontrollfluss (d. h. die Reihenfolge, in der Anweisungen im Programm ausgeführt werden) gekapert werden. Dies ist die Grundlage, um Ihren eigenen Code in das System einzubringen. Dann muss das Bandbreitenproblem angegangen werden. Während für größere Updates die Unterstützung verwandter Remote-Befehle geplant war, wurde dies noch nicht implementiert. Infolgedessen musste PistonMiner seine Kommunikationssysteme neu anpassen, um Störungen so weit wie möglich zu vermeiden.
Kamera sendet erneut Bilder zur Erde
Nach einigem Debuggen schickten die Studierenden in mehreren Runden die notwendigen Bilder an Beesat-1, wodurch das Telemetriesystem wieder voll funktionsfähig war. Im September wurde ein entsprechendes Software-Update durchgeführt, um die CubeSats wieder in den Werkszustand zu versetzen. Dabei stellte PistonMiner auch fest, dass sich die ursprünglich für defekt gehaltene Bordkamera plötzlich automatisch einschaltete. Ursache dafür ist eine kleine Schwachstelle im Code, wonach der Befehl zur Ausgabe des Speicherinhalts auch die Kamera anweist, ein Bild aufzunehmen. Ein Hacker konnte über einen Download-Button ein 9480 Byte großes Foto der Erdoberfläche versenden, obwohl die automatische Belichtung seiner Meinung nach nicht so gut funktionierte.
Beesat-1 kann nun grundsätzlich wieder für Experimente genutzt werden. Funkamateure können mit dem Fluggerät außerdem Funkbaken für Such- und Rettungsdienste sowie Navigations- und Digitalsender, also automatisch arbeitende Sende- und Empfangsstationen zur Weiterleitung von Daten zwischen zwei Funkstationen, erwerben. Es besteht kein Zweifel, dass PistonMiner möchte, dass der Satellit „so lange wie möglich am Leben bleibt“. Er glaubt auch, dass die Operation, die er „mit Genehmigung“ durchgeführt hat, ein Modell für den Umgang mit anderen Satelliten ist, die keine Missionen mehr durchführen.