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

基于ARM嵌入式系統底層漏洞挖掘技術研究

2015-09-16 22:23:14楊世德梁光明余凱
現代電子技術 2015年18期

楊世德 梁光明 余凱

摘 要: 隨著針對嵌入式系統的攻擊事件不斷發生,安全指標在嵌入式系統設計過程中得到了越來越廣泛的關注。傳統的嵌入式系統安全分析主要針對嵌入式操作系統和應用軟件,很少關注底層硬件安全。通過分析嵌入式系統底層運行機制,建立和提出一種基于ARM嵌入式系統底層硬件漏洞挖掘模型和方法。

關鍵詞: Linux; 內核模塊; 寄存器; 挖掘技術

中圖分類號: TN710?34 文獻標識碼: A 文章編號: 1004?373X(2015)18?0057?03

Abstract: As the attacks on the embedded systems occurs continually, more attention is paid to the safety index in the process of the embedded system design. The traditional security analysis on the embedded systems focused on embedded operating system and application software, but the security of the underlying hardware was ignored. By analyzing the underlying operating mechanism of embedded systems, the discovery model and method against hardware vulnerability of ARM?based embedded systems are proposed in this paper.

Keywords: Linux ; kernel module; register; discovery technology

嵌入式系統是以應用需求為目的,軟硬件資源結合為手段,通過裁剪軟硬件資源滿足用戶對功能、可靠性、成本、體積、功耗等性能指標要求的專用計算機系統[1]。在嵌入式系統發展初期,嵌入式系統通常都是作為完成單一任務的處理器被獨立使用,很少通過網絡與外界相連。由于嵌入式系統用戶的單一性和網絡的封閉性,不存在通過網絡的攻擊,所以在嵌入式系統設計過程中很少考慮安全的因素。但是,隨著互連網和無線通信等技術的迅速發展,嵌入式設備不斷向數字化,網絡化,智能化方向發展,嵌入式系統安全也成了一個急需解決的問題[2]。對于嵌入式系統軟件的漏洞挖掘理論已經日趨成熟,但是針對嵌入式系統硬件漏洞挖掘方法還沒有形成理論。

1 嵌入式系統體系結構

嵌入式系統一般由嵌入式軟件和嵌入式硬件組成,軟件主要由嵌入式操作系統、驅動程序和上層應用程序構成[3]。硬件主要由嵌入式微處理器和外圍電路構成。嵌入式系統層次結構圖如圖1所示。

2 嵌入式操作系統與Linux內核模塊驅動

2.1 嵌入式操作系統

嵌入式設備發展早期并沒有操作系統。主要存在兩個原因,一方面控制嵌入式設備運行只需要一些簡單的程序,如洗衣機、微波爐、電冰箱等;另一方面,早期的嵌入式設備硬件資源有限,沒有足夠的資源支撐嵌入式系統運行。隨著硬件的不斷發展和用戶對于產品功能要求的提高,嵌入式系統不斷變的復雜,這時候需要操作系統管理軟硬件資源。

嵌入式操作系統是上層應用程序與底層物理硬件的接口,嵌入式操作系統使硬件系統和應用軟件層產生相對獨立性,可在一定范圍對硬件模塊進行升級和替換而不影響應用軟件的使用。對于用戶而言,嵌入式操作系統屏蔽了硬件工作細節,為用戶提供統一的應用程序開發接口,這大大簡化了應用程序的開發設計流程,同時保障了軟件質量和縮短了開發周期。

2.2 Linux內核模塊驅動

設備驅動程序是嵌入式操作系統的一部分,它是位于應用程序和實際設備之間的軟件。設備驅動程序是驅動硬件工作的特殊程序,其直接與硬件打交道。上層應用程序與操作系統使用硬件必需調用相應的驅動程序[4]。對于普通用戶而言,設備驅動程序為用戶提供了硬件操作的接口,不需要知道硬件工作具體細節就可以驅動硬件工作。用戶操作通過一組標準化的調用完成而這些調用是和特定的驅動程序無關的。驅動程序運行于操作系統,操作系統通過驅動程序才可以控制硬件設備工作。只有正確安裝了設備驅動程序,才能保證硬件設備正常工作。

Linux設備驅動程序存在兩種安裝使用方法:

(1) 直接將設備驅動程序編譯進Linux內核。將編寫完成的驅動程序源碼放在Linux內核源碼相應目錄下,通過修改Makefile和Kconfig文件將其添加到內核目錄樹中,然后通過make menuconfig配置該選項,將驅動程序直接編譯進Linux內核中。

(2) 以可加載內核模塊LKM(Loadable Kernel Module)的方式安裝驅動程序。通過使用已經運行于嵌入式系統的Linux內核相應的源碼,將驅動程序編譯成內核模塊,加載內核模塊。

本文研究的是第2種方式。相比于第1種方式,以加載內核模塊的方式安裝驅動程序可在需要時動態的加載,且不需要重新編譯內核,不會使內核過于龐大和浪費內存資源。以系統調用read為例,Linux內核模塊工作原理如圖2所示。

3 基于測試的硬件漏洞挖掘模型

Linux內核模塊提供了在用戶空間操作底層寄存器的途徑,而嵌入式系統存儲器種類繁多、容量較大,如何從中選取出對嵌入式系統運行起關鍵作用的寄存器也是本文研究的重點[5]。本文提出了一種基于測試的硬件漏洞挖掘模型,如圖3所示。

基于測試的硬件漏洞挖掘目標為:從嵌入式系統存儲體系中搜索對嵌入式系統運行起核心作用的寄存器;挖掘可導致嵌入式系統運行出錯的寄存器配置。在基于測試的硬件漏洞挖掘模型中,關鍵技術是測試向量構建、確定適度函數和異常自動監測。典型的測試向量生成方法有兩類,基于變異的測試向量生成方法和基于生成的測試向量生成方法。

4 基于內核模塊的硬件寄存器訪問機制漏洞

為防止對資源的未經授權的訪問,ARM微處理器劃分為不同的操作模式[6]。不同的工作模式運行不同級別的程序和享有不同的操作權限,Linux用戶程序工作在ARM微處理器SVC模式,內核程序工作在ARM微處理器USR模式。例如,SVC模式可以控制內存映射方式、特殊寄存器、中斷和DMA等,而usr模式則不可以。

驅動程序是在“內核空間”中運行,而應用程序是在“用戶空間”中運行[7]。通過系統調用和硬件中斷可以完成由“用戶空間”到“內核空間”的轉換。兩個空間分別引用不同的地址映射。即程序代碼使用不同的地址空間。由此可見,想直接通過指針把“用戶空間”的數據地址傳遞給“內核空間”是不可能的,必需通過Linux提供的一些函數實現地址空間的轉換,如get_user,put_user,copy_from_user,copy_to_user等。通過上述分析,可以找出一種在用戶空間對硬件寄存器操作的方法,即通過可加載內核模塊的方法操作硬件寄存器。內核模塊運行于內核空間,此時ARM處理器處于svc模式,有權限對硬件寄存器進行讀/寫操作。本文設計一個可對看門狗寄存器進行更改的內核模塊,動態加載到嵌入式Linux系統中,通過應用程序調用此內核模塊實現激活看門狗電路、重啟嵌入式系統的操作。內核模塊open函數中定義的對看門狗寄存器的操作代碼如圖4所示。

以上內核模塊代碼即為用戶程序中系統調用函數open的最終實現代碼。Linux中,無論是內核程序還是應用程序,都只能對虛擬地址進行操作。圖中代碼完成看門狗寄存器物理地址到虛擬地址的映射和賦值工作。通過分別對看門狗定時器數據(WTDAT)寄存器、看門狗定時器計數(WTCNT)寄存器、看門狗定時器控制(WTCON)寄存器賦值,實現啟動看門狗電路,重啟嵌入式系統的操作。

5 結 語

本文通過分析嵌入式系統體系結構和基于內核模塊的驅動加載原理,獲知嵌入式Linux系統在內核層次對于寄存器沒有防護,特別是核心寄存器。攻擊者可通過動態加載內核模塊方式更改核心寄存器值。并且,針對內核中已經存在驅動程序的硬件設備,仍然可通過可加載內核模塊的方式獲得硬件設備的控制權,即嵌入式Linux中缺乏不同驅動操作同一硬件的沖突處理機制。并以看門狗電路為例,對看門狗相關寄存器值進行更改,實現了嵌入式系統的重啟。文中提出的嵌入式系統硬件漏洞挖掘方法和模型對于嵌入式系統漏洞挖掘具有一定的應用價值。

參考文獻

[1] 姜榮萍.ARM嵌入式系統分析[J].計算機光盤軟件與應用,2010(6):71?72.

[2] 蔡紅輝.嵌入式系統的安全與分析[J].科教文匯,2007(9):217?218.

[3] 袁源,戴冠中.LKM后門綜述[J].計算機科學,2008(7):5?8.

[4] 李淑文.嵌入式Linux內核模塊加載技術分析[J].廣東經濟管理學院學報,2004(8):78?80.

[5] 劉瑜.Linux安全分析與系統增強的研究[D].成都:電子科技大學,2004.

[6] YAMAURA T. How to design practical test cases [J]. Software, IEEE, 1998, 15(6): 30?36.

[7] HUANG J C. Program instrumentation and software testing [J]. Computer, 1978, 11(4): 3?8.

主站蜘蛛池模板: 中国黄色一级视频| 亚洲日本韩在线观看| 久久精品人人做人人爽97| 国产在线专区| 91精品在线视频观看| 午夜高清国产拍精品| 久久大香香蕉国产免费网站| 国产福利观看| 国产超碰在线观看| 呦系列视频一区二区三区| 国产成人综合亚洲网址| 亚洲AⅤ综合在线欧美一区| 97视频精品全国在线观看| 大香伊人久久| 青青草原国产免费av观看| 欧美午夜理伦三级在线观看| 久久国产高潮流白浆免费观看| 中文字幕亚洲电影| 免费国产无遮挡又黄又爽| 欧美a√在线| 一区二区无码在线视频| 欧美日韩一区二区在线免费观看| 国产精品分类视频分类一区| 国产对白刺激真实精品91| 精品一区二区三区波多野结衣| 久久亚洲国产最新网站| 国内视频精品| 毛片免费观看视频| 最新日韩AV网址在线观看| 免费毛片a| 99激情网| 国产91透明丝袜美腿在线| 亚洲视频影院| 欧美一级大片在线观看| 在线观看视频一区二区| 一本二本三本不卡无码| 亚洲精品无码久久毛片波多野吉| 狠狠五月天中文字幕| 国产精品视频系列专区| 在线观看无码a∨| 欧美日本一区二区三区免费| 亚洲精品久综合蜜| 亚洲中文字幕国产av| 五月天香蕉视频国产亚| 亚欧成人无码AV在线播放| 26uuu国产精品视频| 日韩视频免费| 色网站在线视频| 91九色最新地址| 欧美成人免费午夜全| 天堂av综合网| 欧美日韩精品在线播放| 精品视频一区二区三区在线播| 自偷自拍三级全三级视频| 福利视频久久| 国产亚洲视频播放9000| 老司机午夜精品网站在线观看 | 亚洲成人77777| 高潮毛片免费观看| 亚洲成在人线av品善网好看| 国产女人爽到高潮的免费视频| 欧美日韩v| 色婷婷电影网| 最新国产你懂的在线网址| 亚洲精品国偷自产在线91正片| 成人午夜亚洲影视在线观看| 日韩av手机在线| 亚洲精品男人天堂| 超清无码熟妇人妻AV在线绿巨人 | 午夜视频免费试看| 欧美三级自拍| 国产精品爆乳99久久| 亚洲国产精品日韩av专区| 欧美成人区| 国产精品.com| 91精品啪在线观看国产91| 亚洲中文字幕手机在线第一页| 狼友av永久网站免费观看| 国产又大又粗又猛又爽的视频| 精品国产污污免费网站| 亚洲天堂精品在线| 久久黄色视频影|