ベルリン工科大学の小型人工衛星「Beesat-1」の作成者は、2009年秋にインドのロケットで地球上空700キロ以上の比較的高い軌道に打ち上げた。この衛星は、他の Beesats ファミリーのモデルとして機能するだけでなく、重さ 1 キログラム未満のマイクロまたはピコメートルの衛星でも、他の衛星と同様の技術的機能を実行できることを証明することを目的としています。しかし、2013 年までに、この天体は何の役割も果たさなくなりました。有用なデータを大学に送り返すことはできなくなります。機知に富んだハッカーは、更新メカニズムが失敗したにもかかわらず、いくつかのトリックを駆使して飛行物体を地上から修復し、その後 20 年間完全に機能するようにすることに成功しました。


PistonMiner が 38C3 で講演

ハッカーのピストンマイナー氏が土曜日、ハンブルクで開催された第 38 回カオス コミュニケーション カンファレンス (38C3) で明らかにしたように、おとぎ話のように聞こえたことが現実になった。 Beesat-1 は、初期の手のひらサイズの CubeSat の 1 つとして宇宙に打ち上げられ、外形寸法は約 10 × 10 × 10 立方センチメートルでした。その主な目的は、超小型衛星用に新しく開発されたマイクロリアクションホイールやその他の技術の性能を実証することです。

2011 年に、Beesat-1 は初めて無効なテレメトリ データの送信を開始しました。開発者は、この自動的に収集された生の情報に特に関心を持っています。しばらくすると、オペレーターが 2 台目の搭載コンピューターに切り替えると、対応する通信モジュールが研究者切望のデータをベルリンに送り返します。しかし、2013 年には 2 台目のコンピューターにも問題が発生しました。ドイツ工科大学の研究者らは実質的に業務を停止せざるを得なくなった。衛星がまだコマンドに応答しているかどうかを確認できるのは、数年に 1 回だけです。

ゲーム機と同等の強力な計算能力

ドイツ工科大学(TU)と提携しているピストンマイナー社は、ビーサット1号の復活に特に関心を持っている。なぜなら、ビーサット1号は軌道が高く、今後何年にもわたって宇宙に留まるからである。シリーズの他のほとんどすべての子孫は大気圏で燃え尽きました。問題を解決するために、学生はまず、地球から来たこの小さな友達がどのように機能するかを理解したいと考えました。彼によると、Beesat-1 には自動車では非常に一般的な CAN バスが 2 つ搭載されています。通信システムはアンテナ、トランシーバ、ターミナルノードコントローラ(TMC)の2本の冗長回線で構成され、通信速度は4.8kbpsです。

オンボード コンピューターには、60MHz で動作する 2 つの冗長 ARM-7 ベース マイクロコントローラーが搭載されており、PistonMiner にゲーム コンソールの計算能力を与えます。 16MBのプログラムメモリを搭載しており、原則として離陸後にリモコンコマンドでソフトウェアをロードできる。記録されたデータは 4MB のテレメトリ メモリに保存されます。 2MBのSRAMもあります。 Beesat-1 は秒速 7.5 キロメートルの速度で地球を周回するのに 100 分かかります。ベルリンから通信したところ、24時間で6回のフライバイはそれぞれ長くても15分しか続かなかった。より短い送信時間は現実的かつ実現可能です。

「フランケンシュタイン・ビー衛星」が明瞭さを提供

オペレーターたちは当初、宇宙放射線が問題の主な原因であると信じていたが、PistonMiner はそれがソフトウェアのエラーであると指摘した。他の理由としては、CubeSats が 2013 年 3 月以降にのみ送信した「空の」テレメトリ データ フレームに多くのゼロが含まれていることも見つかりました。これにより、破損した関数の検索範囲が、フラッシュ メモリに書き込むことができる関数に絞り込まれます。主な疑わしいのは、ゼロを生成するために必要なすべての機能を備えたオンボード コンピュータのブート カウンターです。

彼の理論を証明するために、ピストンマイナーは「フランケンシュタイン ビー衛星」を組み立てました。地球上には実際のテストモデルがもう存在しなかったためです。これにより、JTAG 経由でテストおよびデバッグする方法が提供されます。また、バイナリ、ソース コード、ドキュメントの大部分を入手することもできましたが、さまざまな場所で手動で調整する必要がありました。たとえば、リモート コマンドを試してコードを実行し、300 KB のソフトウェア イメージをインストールすることができます。

Beesat-1 の情報をオーバーレイする C++ で書かれた仮想関数テーブル ポインターが特に有用であることが判明しました。最終的には、Vtable ポインターと制御フロー (つまり、プログラム内で命令が実行される順序) の両方がハイジャックされる可能性があります。これは、独自のコードをシステムに取り込むための基礎となります。次に、帯域幅の問題に対処する必要があります。関連するリモート コマンドのサポートは大規模なアップデートで計画されていましたが、これはまだ実装されていません。その結果、PistonMiner は可能な限り混乱を避けるために通信システムを再調整する必要がありました。

カメラが再び地球に画像を送信

いくつかのデバッグの後、学生たちは必要な画像を数回に分けて Beesat-1 に送信し、遠隔測定システムが再び完全に動作できるようにしました。 9 月には、CubeSat を工場出荷時の状態に戻すための対応するソフトウェア アップデートが実行されました。この過程で、PistonMiner は、当初故障していると思われていた車載カメラの電源が突然自動的にオンになったことも発見しました。これはコードの小さな脆弱性が原因で、メモリの内容を出力するコマンドがカメラに写真を撮るよう指示するというものです。ハッカーによれば、自動露出がそれほどうまく機能しなかったにもかかわらず、ダウンロード ボタンを使用して地表の 9480 バイトの写真を送信することができました。

原理的には、Beesat-1 は再び実験に使用できるようになりました。アマチュア無線家は、この航空機を使用して、捜索救助サービス用の無線ビーコンやナビゲーションおよびデジタル送信機、つまり 2 つの無線局間でデータを転送するための送信局と受信局を自動的に操作することもできます。 PistonMiner が衛星を「できるだけ長く存続させたい」と望んでいることは疑いの余地がありません。同氏はまた、「許可を得て」行ったこの作戦は、任務を遂行しなくなった他の衛星に対処するためのモデルになるとも信じている。