楊世德, 梁光明, 佘凱
(國防科學技術(shù)大學電子科學與工程學院湖南長沙410000)
基于分類測試的ARM芯片寄存器安全分析技術(shù)
楊世德, 梁光明, 佘凱
(國防科學技術(shù)大學電子科學與工程學院湖南長沙410000)
隨著無線通信和互聯(lián)網(wǎng)等技術(shù)的迅猛發(fā)展,嵌入式系統(tǒng)面臨的安全問題與日俱增。傳統(tǒng)的嵌入式系統(tǒng)安全分析主要針對嵌入式操作系統(tǒng)和軟件,少有研究涉及嵌入式系統(tǒng)硬件本身的安全隱愚。本文以S3C2440芯片為研究對象,通過分析ARM芯片硬件運行機制,構(gòu)建基于測試的ARM芯片寄存器安全分析模型,并對ARM芯片安全隱愚進行等級劃分。
測試用例;融合樹;漏洞挖掘
嵌入式系統(tǒng)廣泛應用在通信設(shè)備、工業(yè)控制、消費類電子產(chǎn)品等各個領(lǐng)域,針對嵌入式系統(tǒng)的安全攻擊事件屢見不鮮,嵌入式系統(tǒng)安全分析技術(shù)成為安全領(lǐng)域研究的熱點難點問題。文獻[1]提出了針對嵌入式軟件安全分析的模型、工具和策略,解決了如何通過測試挖掘嵌入式軟件安全漏洞的問題。文獻[2]采用嵌入式系統(tǒng)運行監(jiān)控技術(shù),對嵌入式系統(tǒng)進行安全分析。大多數(shù)文獻僅限于對操作系統(tǒng)或軟件進行安全分析,少有文獻涉及嵌入式系統(tǒng)硬件機制的安全研究。對于嵌入式系統(tǒng)來說,各種功能部件寄存器是ARM芯片的重要組成部分,存在軟件訪問接口,因此存在很大的安全風險。本文在深入分析寄存器原理及作用基礎(chǔ)上,依據(jù)《信息安全風險評估規(guī)范》建立寄存器的安全隱愚等級,并提出了融合樹型分類的快速遍歷測試方法實現(xiàn)了寄存器隱愚等級劃分。并將該方法應用于S3C2440芯片進行試驗驗證,實驗結(jié)果表明隱愚等級劃分、測試用例模型科學,測試用例產(chǎn)生方法提高寄存器隱愚分析速度。
基于ARM嵌入式系統(tǒng)硬件平臺主要由ARM核心芯片和通用片上外設(shè)構(gòu)成,例如電源模塊、時鐘模塊、DMA、通用I/O口等[3]。ARM芯片內(nèi)部存在功能部件寄存器,嵌入式系統(tǒng)的正常工作依賴于ARM芯片功能部件寄存器的正確配置。圖1為曲型的ARM系統(tǒng)硬件平臺。
圖1 典型的ARM系統(tǒng)硬件平臺
ARM嵌入式系統(tǒng)啟動階段對功能部件設(shè)寄存器進行初始化配置,即設(shè)置了各片上外設(shè)的工作模式。寄存器的錯誤配置可能導致嵌入式系統(tǒng)工作異常,甚至系統(tǒng)崩潰。ARM芯片存在幾百個功能部件寄存器,不同寄存器的錯誤配置會導致不同級別的嵌入式系統(tǒng)安全隱愚[4]。
2.1 窨存器安全隱患等級劃分
ARM芯片片上外設(shè)寄存器的錯誤配置可能導致嵌入式系統(tǒng)運行崩潰,例如錯誤配置位于0x48000000總線寬度和等待控制寄存器(BWSCON)。但是,某些硬件外設(shè)寄存器的錯誤配置并不會導致嵌入式系統(tǒng)的運行崩潰,只會導致相關(guān)硬件工作故障,例如位于0x50000000 UART通道0線路控制寄存器ULCON0,它的錯誤配置只會導致串口工作異常,對于系統(tǒng)運行沒有直接性危害。由此可知,每個寄存器的錯誤配置對于嵌入式系統(tǒng)正常運行具有不同程度的威脅。
根據(jù)《信息安全風險評估規(guī)范》和寄存器錯誤配置對嵌入式系統(tǒng)可用性不同威脅程度[5],將寄存器分為五個不同的安全隱愚等級,并且對每個安全隱愚等級進行賦值。賦值高的寄存器表示錯誤配置對嵌入式系統(tǒng)可用性威脅最大。寄存器安全隱愚等級分類如表1所示:
表1 窨存器安全隱患等級分類
2.2 基干測試的窨存器安全分析模型
基于ARM的嵌入式系統(tǒng)寄存器種類繁多、容量較大,如何從中選取出對嵌入式系統(tǒng)正常運行威脅最大寄存器是本文研究的重點[6]。本文提出了一種基于測試的寄存器安全分析模型,如圖2所示:
圖2 基干測試的窨存器安全分析模型
基于測試的寄存器安全分析模型主要包括三個模塊:分析模塊、測試用例生成模塊和測試模塊。其中,分析模塊和測試用例生成模塊運行在PC系統(tǒng),測試模塊運行在嵌入式系統(tǒng)。分析模塊主要負責對寄存器屬性和測試模塊產(chǎn)生的結(jié)果進行分析,進而指導測試用例生成模塊產(chǎn)生測試用例,同時,對寄存器安全隱愚進行評估。測試用例生成模塊在分析模塊的指導下,根據(jù)測試用例生成方法,產(chǎn)生寄存器測試用例。測試模塊將生成的測試用例作為輸入賦值給待測寄存器,并將測試結(jié)果反饋給分析模塊。
為了實現(xiàn)基于寄存器測試的漏洞挖掘的量化分析與自動化測試,對嵌入式系統(tǒng)運行狀態(tài)和寄存器測試進行數(shù)學建模[7]。構(gòu)建如圖3所示的基于測試的寄存器安全分析數(shù)學模型:
圖3 基干測試的窨存器安全分析數(shù)學模型
將基于測試的寄存器安全分析過程抽象為嵌入式系統(tǒng)函數(shù)S=H(X)。其中S=(s1,s2,s3…sn)為基于寄存器測試的系統(tǒng)輸出,表征嵌入式系統(tǒng)工作狀態(tài),包含n個屬性s1,s2…sn。X=(x1,x2…xm)為基于寄存器測試的系統(tǒng)輸人,包含m個參數(shù)x1,x2…xm。定義嵌入式系統(tǒng)正常工作狀態(tài)為狀態(tài) S0=(s01,s02,s03…s0n)。
嵌入式系統(tǒng)在測試用例Xi=(xi1,xi2…xim)作用下輸出為Si=(si1,si2…sin)。為評估不同測試用例對于嵌入式系統(tǒng)可用性威脅程度大小,可通過輸出狀態(tài)Si與正常工作狀態(tài)S0的歐式距離定義嵌入式系統(tǒng)異常評價函數(shù)h(i):
基于寄存器測試的安全分析過程可以抽象為在測試用例空間內(nèi)迭代的產(chǎn)生測試用例,不斷選擇h(i)值較大的測試用例,直至達到終止條件,如圖4所示。即在狀態(tài)空間中尋找離S0最遠的點,即h(i)max所代表狀態(tài)。通過h(i)max值對寄存器進行安全隱愚等級評估。
圖4 測試用例空間內(nèi)迭代數(shù)學模型
ARM芯片存在數(shù)量巨大的功能部件寄存器,各功能部件寄存器不完全相互獨立,而是存在某種內(nèi)在聯(lián)系。例如,ARM嵌入式系統(tǒng)LCD片上外設(shè)的正常工作依賴于LCD控制器相關(guān)的17個功能部件寄存器的正確配置。因此,在對寄存器進行測試時,應充分考慮到寄存器之間的內(nèi)在聯(lián)系。遍歷的對每個寄存器進行單獨測試會導致測試不完全,未充分考慮寄存器之間的相互聯(lián)系和影響,削弱了測試的覆蓋率。同時對所有寄存器進行測試,考慮了寄存器之間的相互聯(lián)系和影響,但是,會產(chǎn)生數(shù)量巨大的冗余測試用例,會消耗極大的人力、物力資源,測試的有效性無法得到保障。因此,測試用例設(shè)計是基于測試的寄存器安全分析過程的關(guān)鏈[8]。
本文提出了融合樹型分類的測試用例快速產(chǎn)生算法,采用融合樹組織結(jié)構(gòu)對所有待測寄存器以進行分類,提高寄存器測試的有效性和覆蓋率[9]。圖5為寄存器融合樹型分類主要流程,首先,根據(jù)ARM芯片手冊對所有寄存器屬性進行靜態(tài)分析;其次,依據(jù)每個寄存器所控制的功能部件對寄存器進行組劃分;最后,在已經(jīng)劃分完成的寄存器組內(nèi),依據(jù)寄存器之間的依賴性對組內(nèi)寄存器進行類別劃分[10]?;跍y試的寄存器安全分析最終以融合樹分類的類別為單位進行。
圖5 融合樹窨存器分類
采用融合樹型分類的測試用例快速產(chǎn)生算法,使生成的測試用例提高了測試有效性,且兼顧了測試覆蓋率。例如,待測寄存器組包含20位二進制位,測試用例空間為220,對其進行融合樹分類后,分為兩類,每類包含10位,測試用例空間變?yōu)?*210。測試用例空間得到極大縮減。
4.1 實驗平臺設(shè)計
本文在構(gòu)建基于測試的寄存器安全分析模型和提出融合樹型分類的測試用例快速產(chǎn)生算法基礎(chǔ)上,以ARM S3C2440開發(fā)板為主,設(shè)計如圖6所示的針對ARM芯片寄存器的交叉測試實驗平臺,對ARM芯片寄存器進行安全分析與隱愚等級劃分。實驗平臺主要有以下幾個部分組成:
1)一臺x86宿主計算機,操作系統(tǒng)為Linux/windows,運行基于測試的寄存器安全分析模型中的分析模塊和測試用例生成模塊。
2)一臺ARM S3C2440開發(fā)板,操作系統(tǒng)為linux,運行正常工作程序和測試程序。
3)JTAG仿真器。
4)網(wǎng)口、串口、USB接口等通信鏈路。
圖6 交叉測試實驗平臺
4.2 實驗結(jié)果及分析
無論是用戶空間程序還是內(nèi)核空間程序都無法直接訪問ARM芯片寄存器物理地址,只能訪問虛擬地址。本文采取可加載內(nèi)核模塊對寄存器物理地址進行虛擬地址映射后,對其進行賦值的方式進行測試。本文對ARM芯片中存儲控制器、中斷控制器、時鐘和電源管理、NAND Flash控制器、LCD控制器、UART控制器和看門狗電路相關(guān)寄存器進行測試,并對所測寄存器進行安全隱愚等級劃分[11]。測試結(jié)果如表2所示:
表2 實驗結(jié)果
通過表2所示的實驗結(jié)果可知,與嵌入式系統(tǒng)時鐘、中斷、Nandflash相關(guān)的寄存器具有最高的安全隱愚等級,同時驗證了時鐘模塊、中斷模塊、和Nandflash模塊是嵌入式系統(tǒng)運行的核心模塊。在嵌入式系統(tǒng)安全領(lǐng)域,相比其他文獻涉及的軟件安全,本文針對硬件安全進行分析。文中提出的寄存器安全分析模型和融合樹型分類的測試用例快速產(chǎn)生算法對硬件安全測試具有一定應用價值。課題下一步工作主要是在對寄存器安全等級進行劃分基礎(chǔ)上,對寄存器配置屬性安全進行分析。
[1] 劉芳.嵌入式軟件測試技術(shù)的研究[D].北京:北京郵電大學,2013.
[2] 裴華艷.嵌入式系統(tǒng)安全性的分析與研究[D].西安:西安電子科技大學,2009.
[3] Yamaura,Tsuneo.How to Design Practical Test Cases[J].Software IEEE,1998,15(6):30-36.
[4] 姜榮萍.ARM嵌入式系統(tǒng)分析[J].計算機光盤軟件與應用,2010(16):71-72.
[5] 喬文軍.嵌入式軟件測試平臺的研究與實現(xiàn)[D].南京:南京航空航天大學,2011.
[6] YU Ting-ting,Ahyoung Sung,Witawas Srisa-an,et al.An Approach to Testing Commercial Embedded Systems[J].Journal of Systems and Software,2014,88:207-230.
[7] 蔡紅輝.嵌入式系統(tǒng)的安全與分析[J].科教文匯,2007(2):93-98.
[8] Huang J C.Program Instrumentation and Software Testing[J]. Computer,1978,11(4):25-32.
[9] 黃奕.基于模糊測試的軟件安全漏洞發(fā)掘技術(shù)研究[D].合肥:中國科學技術(shù)大學,2014.
[10] 鄔晟峰.吳悅.徐拾義.軟件隨機測試新方法研究[J].西南科技大學學報,2013(9):66-69.
[11] ZHU Hong.Software Unit Test Coverage and Adequacy[J]. ACM Computing Surveys,1997,29(04):366-367.
Security Analysis of ARM Chip Registers based on Classification Test
YANG Shi-de,LIANG Guang-ming,YU Kai
(School of Electronic Science and Engineering,NUDT,Changsha Hunan 410000,China)
With the rapid development of wireless communications and internet technology,the security problem faced by embedded system becomes increasingly acutte.Traditional security analysis of embedded system usually focuses on embedded operating systems and software,less research is involved in the security vulnerability of embedded-system hardware.With S3C2440 chip as the subject,and by analyzing the operating system of ARM chip hardware,the security analysis model of ARM chip registers based on tests is established,grading classification of ARM chip is also done in accordance with its security vulnerability.
test case;fusion tree;vulnerability discovery
TN92
A
1009-8054(2015)10-0127-04
楊世德(1991—),男,碩士研究生,主要研究方向為通信網(wǎng)信息安全;
梁光明(1970—),男,博士,碩士生導師,主要研究方向為通信網(wǎng)信息安全;
余 凱(1990—),男,碩士研究生,主要研究方向為通信網(wǎng)信息安全。■
2015-06-24