999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STM32F10x的啟動文件跳轉攻擊方案設計

2018-06-15 07:56:00,,,
關鍵詞:嵌入式實驗系統(tǒng)

,,,

(1.陸軍裝甲兵學院 信息通信系,北京 100071; 2.73630部隊)

引 言

一般嵌入式產品應用環(huán)境不會對硬件采取特殊的保護措施,而嵌入式系統(tǒng)的硬件又直接影響著系統(tǒng)工作的安全性,這為嵌入式系統(tǒng)帶來了許多安全隱患,同時近年來嵌入式設備信息安全事故頻發(fā),系統(tǒng)的信息安全問題引起社會的廣泛關注[1-4],越來越多的學者投入嵌入式系統(tǒng)漏洞的挖掘和研究工作。

林郭安、黃強等人[5]根據STM32芯片的啟動特點,設計了一種由后至前遍歷獲取程序入口地址,通過修改程序入口地址實現源碼復制竊取的目的,但該方法的遍歷階段具有盲目性的特點,攻擊效率低。Frank Altschuler和Bruno Zoppis等人[6-7]提出通過向RAM緩存區(qū)傳送大量數據,造成緩存區(qū)溢出,從而覆蓋原程序跳轉地址以達到攻擊的目的,但這種方法并不適用于運行時直接從Flash區(qū)間讀取代碼的芯片。

本文針對STM32F10x系列控制芯片,根據其啟動原理,借助仿真器和下載接口,將惡意軟件載入目標芯片Flash空余扇區(qū),在調試模式運行惡意軟件,并從中篡改原啟動文件的程序跳轉指針,從而改變原程序啟動時的運行順序,使得植入的惡意軟件得到執(zhí)行,實現攻擊目的,實驗證明該方法具有針對性強、攻擊效率高、方法簡單易于實施的特點。

STM32F10x系列芯片采用32位的ARM Cortex-M3內核,主頻高達72 MHz,型號眾多、片上資源豐富,具有功耗低、性能強、性價比高的特點[8],可以很好地滿足各類中低端嵌入式產品市場需求,在ARM系列微控制器市場占有率高[9],對STM32F10x系列芯片的攻擊研究具有重要的市場價值和借鑒意義。

1 原理分析

加載啟動文件是STM32微控制器在啟動時執(zhí)行的第一段程序,由匯編語言編寫,它的作用包括配置中斷向量、堆棧初始化、系統(tǒng)時鐘初始化以及跳轉至main函數等[10]。啟動文件根據STM32具體型號而定,STM32F10x系列芯片共有小型容量、中型容量、大型容量等8種啟動文件,這些啟動文件在ST官方網站即可獲取,芯片只有匹配了正確的啟動文件才能正常運行。在實施嵌入式系統(tǒng)攻擊時往往無法得知目標芯片的代碼信息,但是獲取其型號信息并不困難,只要在植入惡意代碼中匹配相應的啟動文件,就可以正確配置芯片,使得惡意代碼在芯片上正常啟動并運行。

Cortex-M3內核規(guī)定[11],映射存儲空間的起始地址存放堆棧指針,第二個地址存放復位中斷向量指針,在芯片啟動時,硬件首先會根據復位中斷向量指針跳轉到復位中斷函數,進行內核堆棧初始化和中斷向量初始化工作,然后執(zhí)行System_Init進行系統(tǒng)時鐘初始化,最后通過__main函數跳轉到主函數執(zhí)行用戶代碼。本實驗根據Cortex-M3內核啟動順序,重定位復位中斷向量指針,從而在復位時跳轉至惡意軟件執(zhí)行,然后跳轉回原啟動文件執(zhí)行原程序,保證了原代碼的完整性和嵌入式攻擊的隱蔽性。

對目標實施攻擊后的代碼執(zhí)行流程如圖1所示。

圖1 攻擊目標代碼執(zhí)行流程

一般情況下,映射存儲空間為MCU內部Flash,出于產品優(yōu)化升級考慮,嵌入式產品都會在Flash內部預留出多余扇區(qū)[5,13],這為惡意代碼的植入提供了可用空間,Flash的讀寫保護僅對外界讀寫操作有效,不能阻止原有程序對Flash的操作,這為惡意代碼提供了執(zhí)行條件。惡意代碼一經執(zhí)行,就會篡改原程序復位中斷向量指針,在下次芯片燒錄之前,攻擊一直有效。

2 方案設計

汽車實驗采用搭載STM32F103VET6芯片的指南者開發(fā)板,該芯片Flash容量為512 KB,應用CMSIS-DAP標準的仿真器,上位機系統(tǒng)環(huán)境為Windows7,使用ST公司提供的編譯開發(fā)環(huán)境MDK,以及串口調試助手。

首先利用MDK將惡意代碼下載至芯片Flash的最后扇區(qū),然后通過仿真器的Debug模式從惡意代碼區(qū)啟動,并在惡意代碼中修改原啟動文件的復位中斷向量指針,最后在惡意程序中跳轉回原啟動文件,重新初始化系統(tǒng)運行原代碼,之后系統(tǒng)每次復位都會優(yōu)先執(zhí)行攻擊代碼后再跳轉回原代碼執(zhí)行。

在指南者開發(fā)板上進行簡單的流水燈作業(yè),注入惡意代碼的功能為蜂鳴器響起并延時1 s,并向串口輸出“攻擊成功”的打印信息,同時可以在Debug模式下觀察PC指針的值以判定攻擊是否成功。

方案實現框圖如圖2所示。

圖2 啟動文件攻擊實現流程

3 實驗驗證

3.1 實驗過程

(1)惡意軟件下載

為了最大限度確保注入惡意代碼的完整性并且不覆蓋芯片原有代碼,實驗首先分析惡意攻擊軟件的容量,在編譯好的文件中,通過map文件可以查看惡意軟件的大小為3.75 KB,STM32F103VET6芯片內Flash容量為512 KB(0x08 0000),每頁扇區(qū)大小為2 KB,本實驗將惡意代碼燒錄到最后兩片扇區(qū)中,即0x0807 F000~0x0808 0000區(qū)間。通過修改MDK中Options->Target的設置可以實現定位下載地址。

圖3為map文件中惡意代碼大小信息以及Target Memory部分設置界面。

圖3 map文件代碼信息及Target Memory設置頁面

(2)仿真器啟動

為了在啟動時優(yōu)先運行惡意軟件,實驗借助DAP仿真器在Debug模式下復位運行,需要添加初始化文件Debug_RAM.ini,在該文件中設置堆棧指針和PC指針,這樣在Debug模式下啟動時,程序就會被強制跳轉到此位置運行,程序如下所示:

FUNC void Setup(void){

SP=_RDWORD(0x0807F000);

PC=_RDWORD(0x0807F004);

_WDWORD(0xE000ED08,0x20000000);

}

LOAD %L INCREMENTAL

Setup();

(3)跳轉地址重定位

由于Cortex-M3內核在啟動時會根據映射存儲空間第二個偏移地址(復位中斷向量指針)跳轉到復位中斷函數執(zhí)行,用戶無法改變這一內核啟動的順序,但是可以通過Flash自身程序修改復位中斷向量指針的值,從而改變默認跳轉地址。通過實驗發(fā)現,STM32F10x系列芯片的復位中斷指針相對Flash的起始空間固定偏移0x145個字節(jié),當Flash起始地址為0x0807 F000時,復位中斷指針應修改為0x0807 F145,該過程由惡意軟件實現。

由于Flash在寫操作之前必須按頁擦除,故在代碼實現時需要先將Flash起始地址的第一頁內容復制到至少2 KB容量的數組,將數組中第二個字的內容修改成惡意代碼的復位中斷向量指針0x0807 F145,然后再將這一頁內容重新寫入Flash,完成復位中斷向量指針的替換。當開發(fā)板重啟時,系統(tǒng)就會先跳轉至惡意代碼區(qū)啟動文件進行系統(tǒng)初始化啟動,在執(zhí)行完惡意代碼內容后跳轉回原啟動文件的復位中斷函數,重新初始化系統(tǒng),運行原代碼。

3.2 實驗結果

對正在進行流水燈作業(yè)的指南者開發(fā)板進行攻擊后,每復位一次開發(fā)板,蜂鳴器鳴笛1 s,并在串口收到“攻擊成功”的調試信息,在單步調試模式下,對比攻擊前后映射存儲空間起始地址(0x0800 0000)的第二個字內容,如圖4所示,可以清楚看出復位中斷向量地址已被篡改。

圖4 Debug_RAM.ini文件內容

結 語

[1] 蔡舒祺.嵌入式系統(tǒng)安全性分析概述[J].電子技術與軟件工程,2017(3):210-212.

[2] 李冰冰,陳靜.物聯網時代的嵌入式系統(tǒng)安全性問題探討[J].數字技術與應用,2016(12):217,219.

[3] 第88屆中國電子展.嵌入式應用面臨新機遇,信息安全更加被重視[J].中國電子商情:基礎電子,2016(12):53-54.

[4] 趙國冬.安全嵌入式系統(tǒng)體系結構研究與設計[D].哈爾濱:哈爾濱工程大學,2006.

[5] 林郭安,黃強,許文煥.STM32F103RB的Bootloader軟件安全設計方案[J].單片機與嵌入式系統(tǒng)應用,2009(9):73-75.

[6] Frank Altschuler,Bruno Zoppis.嵌入式系統(tǒng)安全性(上) -對攻擊狀況和防衛(wèi)策略的概述和分析[J].電子產品世界,2008(5):109-113.

[7] 王柳濱,魏國珩,李政.嵌入式系統(tǒng)緩沖區(qū)溢出攻擊防范技術[J].計算機應用,2012,32(12):3449-3452.

[8] STMicroelectronics.STM32F103xE Data sheet,2008.

[9] 單祥茹.STM32教父新愿景:產品成嵌入式工程師的首選[J].中國電子商情:基礎電子,2017(7):10-11.

[10] 劉火良,楊森.STM32庫開實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2017.

[11] Joseph Yiu.ARM Cortex-M3與Cortex-M4權威指南[M].北京:清華大學出版社,2015.

[12] 張宏財,趙曾貽.基于ARM核的Bootloader代碼分析與設計[J].微計算機信息,2006,22(5-2):137-139.

[13] STMicroelectronics.STM32F10xxx Flash programming manual,2008.

猜你喜歡
嵌入式實驗系統(tǒng)
記一次有趣的實驗
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
做個怪怪長實驗
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 国产精品蜜芽在线观看| 毛片在线区| 欧美一区二区啪啪| 国产精品女熟高潮视频| 2024av在线无码中文最新| 国产精品30p| 天堂av高清一区二区三区| 国产成人精品日本亚洲77美色| 欧洲欧美人成免费全部视频| 色网站在线免费观看| Aⅴ无码专区在线观看| 中文成人无码国产亚洲| 性做久久久久久久免费看| 亚洲国产91人成在线| 欧美精品一区在线看| 国产自在线拍| 欧美成人精品在线| 丝袜无码一区二区三区| 亚洲A∨无码精品午夜在线观看| 一级毛片免费播放视频| 国产精品太粉嫩高中在线观看| 国产亚洲视频中文字幕视频| 精品午夜国产福利观看| 99精品在线视频观看| 国内精品手机在线观看视频| 午夜老司机永久免费看片| 亚洲天堂在线免费| 国产一区二区精品福利 | 婷婷激情亚洲| 在线观看国产精品日本不卡网| 色网在线视频| 伊人蕉久影院| 国产九九精品视频| 日韩精品成人网页视频在线| 69视频国产| 亚洲综合天堂网| 国产日韩AV高潮在线| 亚洲伦理一区二区| 99在线视频网站| 亚洲精品久综合蜜| 欧美在线视频不卡| 亚洲女人在线| 亚洲免费黄色网| 91年精品国产福利线观看久久| 亚洲综合经典在线一区二区| 91精品国产一区| 一级毛片免费的| 久久久久亚洲精品成人网| 69国产精品视频免费| 久久亚洲国产一区二区| 老司机久久99久久精品播放| 996免费视频国产在线播放| 五月天福利视频| 蜜芽一区二区国产精品| 亚洲av中文无码乱人伦在线r| 亚洲人成影院在线观看| 美女免费精品高清毛片在线视| 亚洲欧美人成人让影院| 国产精品无码翘臀在线看纯欲| 国产鲁鲁视频在线观看| 亚洲成网777777国产精品| 亚洲高清在线播放| 蝌蚪国产精品视频第一页| 久久亚洲天堂| 成人在线观看不卡| 精品一区国产精品| 青青国产在线| 精品福利一区二区免费视频| 国产一线在线| 98超碰在线观看| 国产精品免费p区| 亚洲欧美国产五月天综合| www.狠狠| 亚洲视频一区| 亚洲精品777| 午夜国产大片免费观看| 国产精品香蕉在线观看不卡| 岛国精品一区免费视频在线观看| 暴力调教一区二区三区| 免费一级毛片| 色婷婷成人| 日本高清免费不卡视频|