亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        STM32F10x的啟動文件跳轉(zhuǎn)攻擊方案設(shè)計

        2018-06-15 07:56:00,,,
        關(guān)鍵詞:扇區(qū)指針嵌入式

        ,,,

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

        引 言

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

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

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

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

        1 原理分析

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

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

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

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

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

        2 方案設(shè)計

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

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

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

        方案實現(xiàn)框圖如圖2所示。

        圖2 啟動文件攻擊實現(xiàn)流程

        3 實驗驗證

        3.1 實驗過程

        (1)惡意軟件下載

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

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

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

        (2)仿真器啟動

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

        FUNC void Setup(void){

        SP=_RDWORD(0x0807F000);

        PC=_RDWORD(0x0807F004);

        _WDWORD(0xE000ED08,0x20000000);

        }

        LOAD %L INCREMENTAL

        Setup();

        (3)跳轉(zhuǎn)地址重定位

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

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

        3.2 實驗結(jié)果

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

        圖4 Debug_RAM.ini文件內(nèi)容

        結(jié) 語

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

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

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

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

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

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

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

        [8] STMicroelectronics.STM32F103xE Data sheet,2008.

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

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

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

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

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

        猜你喜歡
        扇區(qū)指針嵌入式
        分階段調(diào)整增加扇區(qū)通行能力策略
        南北橋(2022年2期)2022-05-31 04:28:07
        偷指針的人
        娃娃畫報(2019年5期)2019-06-17 16:58:10
        搭建基于Qt的嵌入式開發(fā)平臺
        U盤故障排除經(jīng)驗談
        為什么表的指針都按照順時針方向轉(zhuǎn)動
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        基于貝葉斯估計的短時空域扇區(qū)交通流量預(yù)測
        重建分區(qū)表與FAT32_DBR研究與實現(xiàn)
        基于改進Hough變換和BP網(wǎng)絡(luò)的指針儀表識別
        電測與儀表(2015年5期)2015-04-09 11:30:42
        Altera加入嵌入式視覺聯(lián)盟
        精品久久久久久99人妻| 午夜dv内射一区二区| 久久精品国产99久久无毒不卡| 日本丰满熟妇videossex8k| 天天爽天天爽天天爽| 久久国产精品老人性| 精品中文字幕久久久人妻| 免费 无码 国产在线观看不卡| 国产盗摄XXXX视频XXXX| 蜜桃视频一区二区三区| 美妇炮灰被狂躁爽到高潮h| 可免费观看的av毛片中日美韩| 三级做a全过程在线观看| 桃花色综合影院| 思思99热| 琪琪av一区二区三区| 亚洲成人福利在线视频| aⅴ精品无码无卡在线观看| 亚洲欧美日本| 亚洲无码激情视频在线观看| 在线亚洲精品中文字幕美乳色| 一区二区三区国产免费视频 | 日本阿v片在线播放免费| 亚洲人成色7777在线观看| 久久精品成人欧美大片| 中文字幕人妻系列一区尤物视频| 日韩精品一区二区亚洲专区| 久久国语露脸国产精品电影| 看av免费毛片手机播放| 亚洲无码a∨在线视频| 国产99视频一区二区三区| 日韩人妖视频一区二区| 中国少妇内射xxxx狠干| 亚洲日韩图片专区小说专区| 国产在线观看不卡网址| 国产免费观看久久黄av麻豆| 亚洲精品无码久久久久y| 国产高潮刺激叫喊视频| 精品国产一区二区三区久久女人| 综合中文字幕亚洲一区二区三区| 人妻夜夜爽天天爽三区丁香花|