APP下载

基于分类测试的ARM芯片寄存器安全分析技术

2015-11-01杨世德梁光明佘凯

信息安全与通信保密 2015年10期
关键词:分析模型测试用例寄存器

杨世德, 梁光明, 佘凯

(国防科学技术大学电子科学与工程学院湖南长沙410000)

基于分类测试的ARM芯片寄存器安全分析技术

杨世德, 梁光明, 佘凯

(国防科学技术大学电子科学与工程学院湖南长沙410000)

随着无线通信和互联网等技术的迅猛发展,嵌入式系统面临的安全问题与日俱增。传统的嵌入式系统安全分析主要针对嵌入式操作系统和软件,少有研究涉及嵌入式系统硬件本身的安全隐愚。本文以S3C2440芯片为研究对象,通过分析ARM芯片硬件运行机制,构建基于测试的ARM芯片寄存器安全分析模型,并对ARM芯片安全隐愚进行等级划分。

测试用例;融合树;漏洞挖掘

0 引言

嵌入式系统广泛应用在通信设备、工业控制、消费类电子产品等各个领域,针对嵌入式系统的安全攻击事件屡见不鲜,嵌入式系统安全分析技术成为安全领域研究的热点难点问题。文献[1]提出了针对嵌入式软件安全分析的模型、工具和策略,解决了如何通过测试挖掘嵌入式软件安全漏洞的问题。文献[2]采用嵌入式系统运行监控技术,对嵌入式系统进行安全分析。大多数文献仅限于对操作系统或软件进行安全分析,少有文献涉及嵌入式系统硬件机制的安全研究。对于嵌入式系统来说,各种功能部件寄存器是ARM芯片的重要组成部分,存在软件访问接口,因此存在很大的安全风险。本文在深入分析寄存器原理及作用基础上,依据《信息安全风险评估规范》建立寄存器的安全隐愚等级,并提出了融合树型分类的快速遍历测试方法实现了寄存器隐愚等级划分。并将该方法应用于S3C2440芯片进行试验验证,实验结果表明隐愚等级划分、测试用例模型科学,测试用例产生方法提高寄存器隐愚分析速度。

1 ARM芯片寄存器概述

基于ARM嵌入式系统硬件平台主要由ARM核心芯片和通用片上外设构成,例如电源模块、时钟模块、DMA、通用I/O口等[3]。ARM芯片内部存在功能部件寄存器,嵌入式系统的正常工作依赖于ARM芯片功能部件寄存器的正确配置。图1为曲型的ARM系统硬件平台。

图1 典型的ARM系统硬件平台

ARM嵌入式系统启动阶段对功能部件设寄存器进行初始化配置,即设置了各片上外设的工作模式。寄存器的错误配置可能导致嵌入式系统工作异常,甚至系统崩溃。ARM芯片存在几百个功能部件寄存器,不同寄存器的错误配置会导致不同级别的嵌入式系统安全隐愚[4]。

2 寄存器安全隐患等级划分与隐患分析模型

2.1 窨存器安全隐患等级划分

ARM芯片片上外设寄存器的错误配置可能导致嵌入式系统运行崩溃,例如错误配置位于0x48000000总线宽度和等待控制寄存器(BWSCON)。但是,某些硬件外设寄存器的错误配置并不会导致嵌入式系统的运行崩溃,只会导致相关硬件工作故障,例如位于0x50000000 UART通道0线路控制寄存器ULCON0,它的错误配置只会导致串口工作异常,对于系统运行没有直接性危害。由此可知,每个寄存器的错误配置对于嵌入式系统正常运行具有不同程度的威胁。

根据《信息安全风险评估规范》和寄存器错误配置对嵌入式系统可用性不同威胁程度[5],将寄存器分为五个不同的安全隐愚等级,并且对每个安全隐愚等级进行赋值。赋值高的寄存器表示错误配置对嵌入式系统可用性威胁最大。寄存器安全隐愚等级分类如表1所示:

表1 窨存器安全隐患等级分类

2.2 基干测试的窨存器安全分析模型

基于ARM的嵌入式系统寄存器种类繁多、容量较大,如何从中选取出对嵌入式系统正常运行威胁最大寄存器是本文研究的重点[6]。本文提出了一种基于测试的寄存器安全分析模型,如图2所示:

图2 基干测试的窨存器安全分析模型

基于测试的寄存器安全分析模型主要包括三个模块:分析模块、测试用例生成模块和测试模块。其中,分析模块和测试用例生成模块运行在PC系统,测试模块运行在嵌入式系统。分析模块主要负责对寄存器属性和测试模块产生的结果进行分析,进而指导测试用例生成模块产生测试用例,同时,对寄存器安全隐愚进行评估。测试用例生成模块在分析模块的指导下,根据测试用例生成方法,产生寄存器测试用例。测试模块将生成的测试用例作为输入赋值给待测寄存器,并将测试结果反馈给分析模块。

为了实现基于寄存器测试的漏洞挖掘的量化分析与自动化测试,对嵌入式系统运行状态和寄存器测试进行数学建模[7]。构建如图3所示的基于测试的寄存器安全分析数学模型:

图3 基干测试的窨存器安全分析数学模型

将基于测试的寄存器安全分析过程抽象为嵌入式系统函数S=H(X)。其中S=(s1,s2,s3…sn)为基于寄存器测试的系统输出,表征嵌入式系统工作状态,包含n个属性s1,s2…sn。X=(x1,x2…xm)为基于寄存器测试的系统输人,包含m个参数x1,x2…xm。定义嵌入式系统正常工作状态为状态 S0=(s01,s02,s03…s0n)。

嵌入式系统在测试用例Xi=(xi1,xi2…xim)作用下输出为Si=(si1,si2…sin)。为评估不同测试用例对于嵌入式系统可用性威胁程度大小,可通过输出状态Si与正常工作状态S0的欧式距离定义嵌入式系统异常评价函数h(i):

基于寄存器测试的安全分析过程可以抽象为在测试用例空间内迭代的产生测试用例,不断选择h(i)值较大的测试用例,直至达到终止条件,如图4所示。即在状态空间中寻找离S0最远的点,即h(i)max所代表状态。通过h(i)max值对寄存器进行安全隐愚等级评估。

图4 测试用例空间内迭代数学模型

3 融合树型分类的测试用例快速产生算法

ARM芯片存在数量巨大的功能部件寄存器,各功能部件寄存器不完全相互独立,而是存在某种内在联系。例如,ARM嵌入式系统LCD片上外设的正常工作依赖于LCD控制器相关的17个功能部件寄存器的正确配置。因此,在对寄存器进行测试时,应充分考虑到寄存器之间的内在联系。遍历的对每个寄存器进行单独测试会导致测试不完全,未充分考虑寄存器之间的相互联系和影响,削弱了测试的覆盖率。同时对所有寄存器进行测试,考虑了寄存器之间的相互联系和影响,但是,会产生数量巨大的冗余测试用例,会消耗极大的人力、物力资源,测试的有效性无法得到保障。因此,测试用例设计是基于测试的寄存器安全分析过程的关链[8]。

本文提出了融合树型分类的测试用例快速产生算法,采用融合树组织结构对所有待测寄存器以进行分类,提高寄存器测试的有效性和覆盖率[9]。图5为寄存器融合树型分类主要流程,首先,根据ARM芯片手册对所有寄存器属性进行静态分析;其次,依据每个寄存器所控制的功能部件对寄存器进行组划分;最后,在已经划分完成的寄存器组内,依据寄存器之间的依赖性对组内寄存器进行类别划分[10]。基于测试的寄存器安全分析最终以融合树分类的类别为单位进行。

图5 融合树窨存器分类

采用融合树型分类的测试用例快速产生算法,使生成的测试用例提高了测试有效性,且兼顾了测试覆盖率。例如,待测寄存器组包含20位二进制位,测试用例空间为220,对其进行融合树分类后,分为两类,每类包含10位,测试用例空间变为2*210。测试用例空间得到极大缩减。

4 实验验证

4.1 实验平台设计

本文在构建基于测试的寄存器安全分析模型和提出融合树型分类的测试用例快速产生算法基础上,以ARM S3C2440开发板为主,设计如图6所示的针对ARM芯片寄存器的交叉测试实验平台,对ARM芯片寄存器进行安全分析与隐愚等级划分。实验平台主要有以下几个部分组成:

1)一台x86宿主计算机,操作系统为Linux/windows,运行基于测试的寄存器安全分析模型中的分析模块和测试用例生成模块。

2)一台ARM S3C2440开发板,操作系统为linux,运行正常工作程序和测试程序。

3)JTAG仿真器。

4)网口、串口、USB接口等通信链路。

图6 交叉测试实验平台

4.2 实验结果及分析

无论是用户空间程序还是内核空间程序都无法直接访问ARM芯片寄存器物理地址,只能访问虚拟地址。本文采取可加载内核模块对寄存器物理地址进行虚拟地址映射后,对其进行赋值的方式进行测试。本文对ARM芯片中存储控制器、中断控制器、时钟和电源管理、NAND Flash控制器、LCD控制器、UART控制器和看门狗电路相关寄存器进行测试,并对所测寄存器进行安全隐愚等级划分[11]。测试结果如表2所示:

表2 实验结果

5 结语

通过表2所示的实验结果可知,与嵌入式系统时钟、中断、Nandflash相关的寄存器具有最高的安全隐愚等级,同时验证了时钟模块、中断模块、和Nandflash模块是嵌入式系统运行的核心模块。在嵌入式系统安全领域,相比其他文献涉及的软件安全,本文针对硬件安全进行分析。文中提出的寄存器安全分析模型和融合树型分类的测试用例快速产生算法对硬件安全测试具有一定应用价值。课题下一步工作主要是在对寄存器安全等级进行划分基础上,对寄存器配置属性安全进行分析。

[1] 刘芳.嵌入式软件测试技术的研究[D].北京:北京邮电大学,2013.

[2] 裴华艳.嵌入式系统安全性的分析与研究[D].西安:西安电子科技大学,2009.

[3] Yamaura,Tsuneo.How to Design Practical Test Cases[J].Software IEEE,1998,15(6):30-36.

[4] 姜荣萍.ARM嵌入式系统分析[J].计算机光盘软件与应用,2010(16):71-72.

[5] 乔文军.嵌入式软件测试平台的研究与实现[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] 蔡红辉.嵌入式系统的安全与分析[J].科教文汇,2007(2):93-98.

[8] Huang J C.Program Instrumentation and Software Testing[J]. Computer,1978,11(4):25-32.

[9] 黄奕.基于模糊测试的软件安全漏洞发掘技术研究[D].合肥:中国科学技术大学,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—),男,硕士研究生,主要研究方向为通信网信息安全;

梁光明(1970—),男,博士,硕士生导师,主要研究方向为通信网信息安全;

余 凯(1990—),男,硕士研究生,主要研究方向为通信网信息安全。■

2015-06-24

猜你喜欢

分析模型测试用例寄存器
基于BERT-VGG16的多模态情感分析模型
STM32和51单片机寄存器映射原理异同分析
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
Lite寄存器模型的设计与实现
移位寄存器及算术运算应用
层次分析模型在结核疾病预防控制系统中的应用
全启发式语言分析模型
基于依赖结构的测试用例优先级技术
IFC4结构分析模型应用技术