38C3:駭客從地面劫持並修復失效長達十年的Beesat-1 衛星
一顆小型人造衛星”Beesat-1″的創造者來自柏林工業大學,於2009 年秋天用一枚印度火箭將其發射到距離地球700 多公里的相對較高的軌道上。 其目的不僅是作為其他Beesats 家族的模型,也是為了證明重量不到一公斤的微型或皮米衛星也能實現與它們的老大哥類似的技術功能。 但到了2013 年,這個天體不再有任何作用。 它再也無法向大學發回任何有用的數據。 一位足智多謀的駭客透過一些小技巧,在更新機制失靈的情況下,成功地從地面上修復了這個飛行物,並讓它在未來的20 年裡重新發揮全部功能。
PistonMiner 在38C3 上發表演講
正如駭客PistonMiner 週六在漢堡舉行的第38 屆混沌通信大會(38C3)上所揭示的那樣,聽起來像童話故事的東西卻成為了現實。 Beesat-1是作為早期的手掌大小的立方體衛星之一發射到太空的,其外部尺寸約為10 × 10 × 10 立方厘米。 其主要目的是展示新開發的微型反應輪的性能以及用於微型衛星的其他技術。
2011 年,Beesat-1 開始首次傳輸無效遙測資料。 開發人員對這些自動收集的原始資訊特別感興趣。 過了一會兒,操作員切換到第二台車載計算機,然後相應的通訊模組將研究人員夢寐以求的數據發回柏林。 然而,2013 年,第二台計算機也出現了問題。 德國技術大學的研究人員別無選擇,只能基本上停止運作。 他們只能每隔幾年檢查一次衛星是否仍在響應指令。
像遊戲機一樣強大的運算能力
PistonMiner 公司與德國技術大學(TU)有合作關係,該公司對恢復運行中的Beesat-1 特別感興趣,因為它的軌道較高,在未來幾年內仍將留在太空中。 該系列的其他後代幾乎都已在大氣層中燒毀。 為了解決這個問題,這位學生首先想弄清楚這個地球小夥伴是如何運作的。 據他介紹,Beesat-1 有兩條CAN 總線,這在汽車上很常見。 通訊系統由兩根冗餘線、一根天線、一個收發器和一個終端節點控制器(TMC)組成,通訊速度為4.8 kbps。
機載電腦配備兩台基於ARM-7 的冗餘微控制器,時脈頻率為60 MHz,PistonMiner 的運算能力與遊戲機相當。 它有一個16 MB 的程式記憶器,原則上可以在起飛後透過遙控指令載入軟體。 記錄的資料儲存在4 MB 的遙測記憶體中。 還有2 MB 的SRAM。 以每秒7.5 公里的速度,Beesat-1 需要100 分鐘才能繞地球一圈。 從柏林與它通信,24 小時內的6 次飛越中,每次最多只有15 分鐘。 更短的傳輸時間是現實可行的。
“科學怪人–蜜蜂衛星”提供了清晰度
雖然操作人員最初認為太空輻射是造成困難的主要原因,但PistonMiner 公司卻指出這是一個軟體錯誤。 除其他原因外,它還在”空”遙測資料幀中發現了許多零,而立方體衛星僅在2013 年3 月之後才發回這些資料幀。 這就將查找損壞功能的範圍縮小到了那些可以向快閃記憶體寫入內容的功能。 主要的疑點是機載電腦的啟動計數器,它具有產生零所需的所有功能。
為了證實他的理論,PistonMiner 組裝了一個”科學怪人蜜蜂衛星”,因為地球上已經沒有實際的測試模型了。 這為他提供了透過JTAG 進行測試和調試的方法。 他還能夠獲得大部分二進位代碼和原始程式碼以及文檔,但必須在不同的地方進行手動調整。 例如,他可以試用遠端指令來執行程式碼,也可以安裝300 KB 的軟體映像。
用C++ 寫的虛擬函數表指標可以覆蓋Beesat-1 上的信息,事實證明它特別有用。 最終,Vtable 指標和控制流(即指令在程式中的執行順序)都可以被劫持。 這就是將自己的程式碼引入系統的基礎。 然後,必須解決頻寬問題。 雖然計劃支援相關的遠端命令以進行更大規模的更新,但並未實施。 因此,PistonMiner 不得不重新調整通訊系統,以盡可能避免中斷。
相機再次向地球發送影像
經過一番調試,學生們分幾輪將必要的圖像送上了Beesat-1 號,使遙測系統重新完全投入運作。 9 月,進行了相應的軟體更新,使立方體衛星恢復到出廠狀態。 過程中,PistonMiner 還發現,原本被認為壞掉的星載攝影機突然自動開啟。 這是程式碼中的一個小漏洞造成的,根據這個漏洞,輸出記憶體內容的指令同時也指示相機拍照。 駭客可以透過下載按鈕發送大小為9480 位元組的地球表面照片,即使據他說自動曝光效果並不好。
原則上,Beesat-1 現在又可以用於實驗了。 無線電愛好者還可以利用這架飛機獲取無線電信標,用於搜索和救援服務以及導航和數位發射機,即自動運行的發射和接收站,用於轉發兩個無線電台之間的數據。 毫無疑問,PistonMiner 公司希望衛星”盡可能長時間地活著”。 他也認為,他”在獲得許可的情況下”進行的這項操作,是處理其他不再執行任務的人造地球衛星的一種模式。