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

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

2018-06-15 07:56:00,,,
單片機與嵌入式系統應用 2018年6期
關鍵詞:嵌入式實驗系統

,,,

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

引 言

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

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

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

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

1 原理分析

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

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

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

圖1 攻擊目標代碼執行流程

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

2 方案設計

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

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

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

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

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

3 實驗驗證

3.1 實驗過程

(1)惡意軟件下載

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

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

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

(2)仿真器啟動

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

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

3.2 實驗結果

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

圖4 Debug_RAM.ini文件內容

結 語

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

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

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

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

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

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

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

[8] STMicroelectronics.STM32F103xE Data sheet,2008.

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

[10] 劉火良,楊森.STM32庫開實戰指南[M].北京:機械工業出版社,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.

猜你喜歡
嵌入式實驗系統
記一次有趣的實驗
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
做個怪怪長實驗
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 精品亚洲欧美中文字幕在线看| 久久国产成人精品国产成人亚洲| 在线免费亚洲无码视频| 青青青伊人色综合久久| 伊人久久精品亚洲午夜| 亚洲男人天堂久久| 久久午夜夜伦鲁鲁片无码免费| av手机版在线播放| 特级精品毛片免费观看| 91精品国产一区| 欧美视频在线不卡| 少妇精品在线| 亚洲无码高清一区| 亚洲av无码成人专区| 永久毛片在线播| 欧美国产另类| 亚洲精品卡2卡3卡4卡5卡区| 中文字幕永久在线看| 亚洲一区免费看| 精品色综合| 91口爆吞精国产对白第三集| 久久亚洲国产最新网站| 国产欧美视频一区二区三区| 毛片免费试看| 99久久精品免费观看国产| 国产精品欧美激情| 国产精品无码作爱| 成人午夜精品一级毛片| 欧美成人怡春院在线激情| 久久精品国产国语对白| 青青青草国产| 日韩美毛片| 中文字幕在线日韩91| 国产swag在线观看| 中国国产A一级毛片| 亚洲视频一区在线| 成人小视频网| 亚洲天堂精品视频| 毛片免费在线视频| 伊人久综合| 日韩高清在线观看不卡一区二区| 日本在线视频免费| 999国产精品永久免费视频精品久久 | 久久国产精品影院| 国产福利一区二区在线观看| 欧美日韩一区二区三区在线视频| 国产免费人成视频网| 精品无码专区亚洲| 成人免费午夜视频| 欧美成人h精品网站| 日韩一级毛一欧美一国产| 狠狠综合久久| 欧美三級片黃色三級片黃色1| 久久精品人人做人人爽电影蜜月| 日韩人妻无码制服丝袜视频| 欧美亚洲激情| 三上悠亚精品二区在线观看| 久久久久久久久久国产精品| 2020国产免费久久精品99| 国产天天色| 亚洲综合九九| 黄色片中文字幕| 亚洲AV无码一二区三区在线播放| 中文字幕乱码二三区免费| 亚洲高清在线天堂精品| 欧美一区国产| 亚洲综合激情另类专区| 欧美综合激情| 无码一区中文字幕| 成人在线观看不卡| 久久精品亚洲中文字幕乱码| 日韩精品无码不卡无码| 高清色本在线www| AⅤ色综合久久天堂AV色综合| 久久青草视频| 熟女日韩精品2区| 99视频在线观看免费| 国产一区二区人大臿蕉香蕉| 98超碰在线观看| 91麻豆久久久| 91精品专区国产盗摄| 一本久道久久综合多人|