國家太空安全是國家安全在空間領域的表現(xiàn)。隨著太空技術在政治、經濟、軍事、文化等各個領域的應用不斷增加,太空已經成為國家賴以生存與發(fā)展的命脈之一,凝聚著巨大的國家利益,太空安全的重要性日益凸顯[1]。而在信息化時代,太空安全與信息安全緊密地結合在一起。
2020年9月4日,美國白宮發(fā)布了首份針對太空網絡空間安全的指令——《航天政策第5號令》,其為美國首個關于衛(wèi)星和相關系統(tǒng)網絡安全的綜合性政策,標志著美國對太空網絡安全的重視程度達到新的高度。在此背景下,美國自2020年起,連續(xù)兩年舉辦太空信息安全大賽“黑掉衛(wèi)星(Hack-A-Sat)”,在《Hack-A-Sat太空信息安全挑戰(zhàn)賽深度解析》一書中有詳細介紹,本文介紹了Hack-A-Sat黑掉衛(wèi)星挑戰(zhàn)賽的尋找阿波羅導航計算機中被修改的PI(apollo_gcm)這道賽題的解題過程。這里是解法二。
題目介紹
Step right up, here's one pulled straight from the history books. See if you can DSKY your way through this challenge! (Thank goodness VirtualAGC is a thing…)
從上述題目介紹可知,這道題目需要比較舊的知識,與阿波羅導航計算機(Apollo Guidance Computer,AGC)相關,并且要用到DSKY。DSKY是AGC的輸入/輸出,類似于現(xiàn)代計算機的顯示器、鍵盤。
主辦方給出了一個鏈接地址,使用netcat打開該鏈接后,會獲得一段提示信息,如下:
The rope memory in the Apollo Guidance Computer experienced an unintended 'tangle' just prior to launch. While Buzz Aldrin was messing around with the docking radar and making Neil?nervous; he noticed the value of PI was slightly off but wasn’t exactly sure by how much. It?seems that it was changed to something slightly off 3.14 although still 3 point something.
The Commanche055 software on the AGC stored the value of PI under the name "PI/16", and
although it has always been stored in a list of constants, the exact number of constants in that memory region has changed with time.
Help Buzz tell ground control the floating point value PI by connecting your DSKY to the?AGC Commanche055 instance that is listening at 172.17.0.1:19008
What is the floating point value of PI?:
通過分析,主要給出如下信息:
- 阿波羅飛船就要發(fā)射,但是飛船上的AGC出現(xiàn)了一點狀況,其中圓周率PI的值發(fā)生了變化,不再是14,而是有一點點變化,但是還是3點幾。
- PI值是通過AGC上的Commanche055軟件存儲的,存儲的名稱是“PI/16”。
- PI與其他常數(shù)存儲在一起,因為常數(shù)的數(shù)量會有變化,所以存儲位置不固定。
- AGC上的存儲器是線存儲器(Rope Memory)。
- 使用DSKY通過地址17.0.1:19008可以連接到AGC的Commanche055軟件。
要求參賽者找到當前PI的值。
編譯及測試
這個挑戰(zhàn)題的代碼位于apollo目錄下,查看challenge、solver目錄下的Dockerfile,發(fā)現(xiàn)其中用到的是python:3.7-slim,為了加快題目的編譯進度,在apollo目錄下新建一個文件sources.list,內容如下:
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
將sources.list復制到apollo、challenge、solver目錄下,修改challenge、solver目錄下的Dockerfile,在所有的FROM python:3.7-slim下方添加:
ADD sources.list /etc/apt/sources.list
打開終端,進入apollo所在目錄,執(zhí)行命令:
sudo make build
此時如果使用make test命令進行測試,等待30~60秒,會出現(xiàn)如圖7-10所示的結果??梢园l(fā)現(xiàn)測試中,找到的PI值由兩個八進制數(shù)組成(AGC采用八進制表示各種數(shù)據),具體解釋后面會有介紹,找到PI值后,題目給出了flag值。
圖7-10 ?apollo挑戰(zhàn)題的測試結果
相關背景知識
1.阿波羅導航計算機AGC
阿波羅計劃是美國在1961年—1972年組織實施的一系列載人登月飛行任務,其目的是實現(xiàn)載人登月飛行和人對月球的實地考察,為載人行星飛行和探測進行技術準備。它是世界航天史上具有劃時代意義的一項成就。阿波羅計劃始于1961年5月,至1972年12月第6次登月成功結束,歷時約11年,耗資255億美元。阿波羅號飛船由指揮艙、服務艙和登月艙3部分組成。
(1)指揮艙:是宇航員在飛行中生活和工作的座艙,也是全飛船的控制中心。指揮艙為圓錐形,高3.2m,重約6噸。指揮艙分前艙、宇航員艙和后艙3部分。前艙內放置著陸部件、回收設備和姿態(tài)控制發(fā)動機等。宇航員艙為密封艙,存有供宇航員生活14天的必需品和救生設備。后艙內裝有10臺姿態(tài)控制發(fā)動機,各種儀器和貯箱,姿態(tài)控制、制導導航系統(tǒng),以及船載計算機和無線電分系統(tǒng)等。
(2)服務艙:其前端與指揮艙對接,后端有推進系統(tǒng)主發(fā)動機噴管。艙體為圓筒形,高6.7m,直徑4m,重約25噸。主發(fā)動機用于軌道轉移和變軌機動。姿態(tài)控制系統(tǒng)由16臺火箭發(fā)動機組成,用于飛船與第三級火箭分離、登月艙與指揮艙對接和指揮艙與服務艙分離等。
(3)登月艙:由下降級和上升級組成,地面起飛時重14.7噸,寬4.3m,最大高度約7m。其中下降級由著陸發(fā)動機、4根著陸架和4個儀器艙組成,上升級是登月艙主體。宇航員完成月面活動后駕駛上升級返回環(huán)月軌道與指揮艙會合。上升級由宇航員座艙、返回發(fā)動機、推進劑貯箱、儀器艙和控制系統(tǒng)組成。宇航員座艙可容納2名宇航員,艙內設有導航、控制、通信、生命保障和電源等設備。文章來源:http://www.zghlxwxcb.cn/news/detail-421389.html
AGC是阿波羅計劃中的主要船載計算機,使用在所有的登月任務中。指揮艙和登月艙都有AGC,但是兩者運行的軟件不同。AGC及其軟件是在麻省理工學院儀器實驗室(現(xiàn)在稱為德雷珀實驗室)開發(fā)的。性能參數(shù)如下文章來源地址http://www.zghlxwxcb.cn/news/detail-421389.html
到了這里,關于有趣的Hack-A-Sat黑掉衛(wèi)星挑戰(zhàn)賽——被破壞的阿波羅計算機(解法二)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!