38C3:黑客从地面劫持并修复失效长达十年的 Beesat-1 卫星
一颗小型人造卫星"Beesat-1"的创造者来自柏林工业大学,于2009年秋天用一枚印度火箭将其发射到距离地球700多公里的相对较高的轨道上。其目的不仅是作为其他Beesats家族的模型,也是为了证明重量不足一公斤的微型或皮米卫星也能实现与它们的老大哥类似的技术功能。但到了2013年,这个天体已不再有任何作用。它再也无法向大学发回任何有用的数据。一位足智多谋的黑客通过一些小技巧,在更新机制失灵的情况下,成功地从地面上修复了这个飞行物,并让它在未来的20年里重新发挥全部功能。
正如黑客PistonMiner周六在汉堡举行的第38届混沌通信大会(38C3)上所揭示的那样,听起来像童话故事的东西却成为了现实。Beesat-1是作为早期的手掌大小的立方体卫星之一发射到太空的,其外部尺寸约为10×10×10立方厘米。其主要目的是展示新开发的微型反应轮的性能以及用于微型卫星的其他技术。
2011年,Beesat-1开始首次传输无效遥测数据。开发人员对这些自动收集的原始信息特别感兴趣。过了一会儿,操作员切换到第二台车载计算机,然后相应的通信模块将研究人员梦寐以求的数据发回柏林。然而,2013年,第二台计算机也出现了问题。德国技术大学的研究人员别无选择,只能基本停止运行。他们只能每隔几年检查一次卫星是否仍在响应指令。
像游戏机一样强大的计算能力
PistonMiner公司与德国技术大学(TU)有合作关系,该公司对恢复运行中的Beesat-1特别感兴趣,因为它的轨道较高,在未来数年内仍将留在太空中。该系列的其他后代几乎都已在大气层中烧毁。为了解决这个问题,这位学生首先想弄清楚这个地球小伙伴是如何工作的。据他介绍,Beesat-1有两条CAN总线,这在汽车上很常见。通信系统由两根冗余线、一根天线、一个收发器和一个终端节点控制器(TMC)组成,通信速度为4.8kbps。
机载计算机配有两个基于ARM-7的冗余微控制器,时钟频率为60MHz,PistonMiner的计算能力与游戏机相当。它有一个16MB的程序存储器,原则上可以在起飞后通过遥控指令加载软件。记录的数据存储在4MB的遥测存储器中。还有2MB的SRAM。以每秒7.5公里的速度,Beesat-1需要100分钟才能绕地球一圈。从柏林与它通信,24小时内的6次飞越中,每次最多只有15分钟。更短的传输时间是现实可行的。
"科学怪人--蜜蜂卫星"提供了清晰度
虽然操作人员最初认为太空辐射是造成困难的主要原因,但PistonMiner公司却指出这是一个软件错误。除其他原因外,它还在"空"遥测数据帧中发现了许多零,而立方体卫星仅在2013年3月之后才发回这些数据帧。这就将查找损坏功能的范围缩小到了那些可以向闪存写入内容的功能。主要的疑点是机载计算机的启动计数器,它具有生成零所需的所有功能。
为了证实他的理论,PistonMiner组装了一个"科学怪人蜜蜂卫星",因为地球上已经没有实际的测试模型了。这为他提供了通过JTAG进行测试和调试的方法。他还能够获得大部分二进制代码和源代码以及文档,但必须在不同的地方进行手工调整。例如,他可以试用远程命令来执行代码,还可以安装300KB的软件映像。
用C++编写的虚拟函数表指针可以覆盖Beesat-1上的信息,事实证明它特别有用。最终,Vtable指针和控制流(即指令在程序中的执行顺序)都可以被劫持。这就是将自己的代码引入系统的基础。然后,必须解决带宽问题。虽然计划支持相关的远程命令以进行更大规模的更新,但并未实施。因此,PistonMiner不得不重新调整通信系统,以尽可能避免中断。
相机再次向地球发送图像
经过一番调试,学生们分几轮将必要的图像送上了Beesat-1号,使遥测系统重新完全投入运行。9月,进行了相应的软件更新,使立方体卫星恢复到出厂状态。在此过程中,PistonMiner还发现,原本被认为坏掉的星载摄像头突然自动打开。这是代码中的一个小漏洞造成的,根据这个漏洞,输出内存内容的命令同时也指示相机拍照。黑客可以通过下载按钮发送大小为9480字节的地球表面照片,即使据他说自动曝光效果并不好。
原则上,Beesat-1现在又可以用于实验了。无线电爱好者还可以利用这架飞机获取无线电信标,用于搜索和救援服务以及导航和数字发射机,即自动运行的发射和接收站,用于转发两个无线电台之间的数据。毫无疑问,PistonMiner公司希望卫星"尽可能长时间地活着"。他还认为,他"在获得许可的情况下"进行的这一操作,是处理其他不再执行任务的人造地球卫星的一种模式。
踩一下[0]

站长云网
顶一下[0]