arm二进制敏感性数据检测方法研究

上传人:郭** 文档编号:113240662 上传时间:2019-11-08 格式:DOC 页数:9 大小:86.14KB
返回 下载 相关 举报
arm二进制敏感性数据检测方法研究_第1页
第1页 / 共9页
arm二进制敏感性数据检测方法研究_第2页
第2页 / 共9页
arm二进制敏感性数据检测方法研究_第3页
第3页 / 共9页
arm二进制敏感性数据检测方法研究_第4页
第4页 / 共9页
arm二进制敏感性数据检测方法研究_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《arm二进制敏感性数据检测方法研究》由会员分享,可在线阅读,更多相关《arm二进制敏感性数据检测方法研究(9页珍藏版)》请在金锄头文库上搜索。

1、ARM二进制敏感性数据检测方法研究 余凯,梁光明,杨世德 (国防科学技术大学电子科学与工程学院,湖南长沙410073) 摘要:相对于PC成熟的安全防护而言,嵌入式安全依旧处于薄弱状态。以ARM为研究对象,结合ARM指令体系的结构和特点,为实现对二进制可执行文件BIN中是否存在对硬件模块的操控,展开敏感性信息的匹配,预警恶意操作,并提出半定型建模匹配方式,加快了代码定位分析效率。 关键词:二进制可执行文件;arm指令;敏感信息;半定型建模 :TN702?34:A:1004?373X(xx)15?0050?03 :xx?01?29 0引言 随着现代电子技术的不断发展,信息系统规模和复杂度逐步增加,

2、随之而来的信息安全问题的严重性也在不断提高,软件安全问题显得尤为突出1。出于对自身商业利益和知识产权的保护,大部分软件厂商并不会提供源代码,因此对二进制程序进行安全检测是当前研究的一大主流方向2。 当前随着恶意代码数量的增多,病毒库越来越庞大,利用传统的模式匹配算法导致耗费的时间不断增大,已经不能满足实际应用。另外,随着恶意代码编写技术的发展,当前的恶意代码大多采用加密等技术对自身进行保护,这样就更进一步降低了传统检测方法的准确性3。为了解决这一问题,最有效的方法是归纳总结出一类恶意代码的行为特征,将传统的二进制特征匹配提升到行为特征匹配,才能利用尽可能少的特征检测出尽可能多的恶意代码4。常见

3、嵌入式设备控制模块有处理器模式设置、看门狗开关、中断开关、MMU控制、时钟控制等,这些模块的控制入口都是敏感信息,通过对BIN文件这些敏感信息的匹配可以有效地对代码可能存在的恶意操作进行预警。 传统的单模式匹配算法主要有BF,KMP,BM算法及Sunday算法。BF算法实现简单,但匹配效率很低;KMP算法比BF算法有所改进;BM算法则比KMP算法的检测速度快35倍5;在短模式匹配中,Sunday是目前速度最快的算法6。这些传统方法不适合于二进制文件的信息匹配7,也没有重定位功能。因此,本文结合ARM指令架构特点,提出半定型匹配算法,通过实验证明了该算法的可靠性和高效性。 1半定型建模 源代码可

4、能千差万别,但经过工具编译成汇编语言时,具有极大的相似性。一是主要体现在高级语言指令多样,而且还在不断扩展,但汇编指令有限,单一的高级语言程序经常由多条汇编语言组合而成,这些汇编指令很相似。二是体现在机器编译的过程中会将代码进行优化,使其符合标准编程格式,这样使得编译生成的汇编语言结构相似。ARM数据类指令格式解析,如图1所示。其中,cond表示执行条件;I表示shifter_operand是立即数还是寄存器;Opcode是指令标记码;S表示执行结果是否影响CPRS;Rn表示源寄存器;Rd表示目标寄存器;shifter_operand表示源操作数。 由图1明显可以看出,同一型的指令如MOV和M

5、VN的机器码结构几乎一样,不同型的指令如CMP和ADD的指令结构差异较大,所以对于不同指令的匹配应当具有针对性。结合ARM32/16位指令结构,本文提出半定型建模匹配方式。针对不同的指令进行预匹配,即第一步仅匹配特征区域,对于不关心的区域进行选择性忽视,只有当预匹配成功后对该指令进行深层匹配。以32位指令为例,将单一32位二进制码拆分成若干位段,特征区域所在位段将其称作子串,进行信息匹配时,仅需对子串进行对比。其中数据类处理指令的半建模匹配位段如图2所示。 进行二进制信息匹配的过程中,对于这些机器码可以采用半定型建模方式进行匹配定位,即针对需要匹配的指令,只匹配有意义的位段,如第一步只匹配执行

6、条件、指令标记码等,而立即数或寄存器等信息根据需要进行匹配,这样可以极大地提高匹配效率。 2半定型匹配算法 传统的代码检测,使用各种模式匹配方法,实现方法归结为字符串匹配问题。由BF算法从左向右的逐字节比较,到Sunday算法从右向左比较的演变,解决了尽可能跳过更多的字符,加速匹配的问题。但这种方式,对于嵌入式的二进制代码检测而言并不高效。以ARM为例,其支持ARM和THUMB两种指令模式,分别为32位和16位代码格式。若干字节的跳转,在很多时候没有意义。针对ARM的代码检测,其步长就应当固定为32或16,所以本文针对ARM二进制文件的特殊性,提出半定型匹配算法HSM,如图3所示。 半定型算法

7、分为两种工作模式。第一种是全匹配模式,即匹配32位字符数据;第二种是半定型匹配模式,即先匹配Char0和Char1,判断指令格式,称之为预匹配,当指令类型匹配成功后,对Char2和Char3进行计算,得出偏移量,称之为二次匹配。 (1)全匹配模式 HSM算法的匹配执行方式采用自左向右的方式,每32位对齐,假设在发生不匹配时SiTj,1?i?N,1?j?M,如图4所示。 当Si+4=Tj,移动距离为4,即将T与下一组32位指令进行比对。 当Si+4Tj时,比对Si+8是否与Tj相等,相等则移动距离为8,不相等则继续取下一组32位指令的前8位进行对比。 从Char0到Char3依次匹配,当出现不匹

8、配则继续匹配下一组主串的Char0,直至匹配文件结束。 (2)半定型匹配模式 对于硬件地址的赋值有两种指令,一种使用MOV指令,另一种使用LDR伪指令。MOV要求立即数必须可由8位立即数偏移得到,可使用全匹配方式搜寻定位;LDR指令采用地址调用方式,对于所需赋值的立即数只要满足32位就可以。假设在文件某处发生匹配时Sii+3=Tjj+3,1?i?N,1?j?M。如图5所示。 硬件地址存储形式为dword,当匹配了硬件地址后,需要进行二次匹配,定位出调用代码,流程如下所示: Step1:计算匹配文件总长度,记为file_len,匹配处地址P小于file_len一半,进入step2,否则进入ste

9、p3。 Step2:向上匹配E59F*,匹配成功时,取当前地址为PU。取出Char2第4位记为ror_num,将Char3转换成32位无符号整形,并向右循环移位ror_num*2位,得到32位偏移值,记为offset。若offset大于file_len,则offset需改为Char2低4位与Char3拼接而成。计算PU+8+offset是否等于P,相等则返回PU并进入step4,错误则继续向上匹配,直至文件首。向上匹配失败,则进入step3。 Step3:向下匹配E51F*,匹配成功时,取当前地址为PD。使用step2中方法得出offset。计算PD+8?offset是否等于P,相等则返回PD

10、并进入step4,错误则继续向下匹配,直至文件结束。 Step4:对两处匹配结果进行显示,标记匹配处在文件中的地址。 3敏感信息检测模型 裸机下的开发过程中,开发者可以采取汇编代码与高级代码混合编程,基于汇编的代码在编译后会进行优化,存在代码结构的微小改变;对于高级语言,开发人员只负责调用函数完成程序编写,编译器会自动生成优化后的汇编代码。基于高级语言的源代码经过工具编译后首先生成了ELF文件,由于ELF文件中包含了调试信息,所以可以反汇编成ASM文件。在有OS的嵌入式ARM中,可以直接运行ELF文件。但是在无OS的嵌入式ARM中,当处理器取出ELF中包含的调试信息时,将无法响应。所以为了能在

11、无OS条件下执行,将ELF中的调试信息去除,生成BIN文件。这时的BIN文件无法反汇编,从而不能使用传统方法进行代码分析。本文提出对BIN中的敏感信息进行匹配定位,主要是针对硬件底层模块的定位,其模型如图6所示。 4实验与分析 4.1算法性能 测试环境为VMware10下的RedHatEnterpriseLinux6,内核版本为2.6.39,内存1.3GB,宿主机为i5?4200M2.5GHz,测试样本为U?boot234KBBin文件,实验平台为TQ2440。选取BM、Sunday算法以及每次移动32b的BF算法,与半定型算法HSM进行匹配效率对比,对敏感信息,即关键寄存器地址进行匹配定位,

12、实验结果如表1所示。 由表1可以得出,传统字符串匹配算法在ARM二进制文件中的匹配效率明显低于后两种方法,主要原因在于匹配了大量不符合汇编规范的字符串以及移动距离设置不适合32b环境。同时使用传统字符串匹配方法,也存在误判的情况。实验证明HSM算法可靠,效率表现良好。 4.2外设模块控制定位 对U?boot代码解析,仅发现一处使用MOV指令,为0x56000010LED控制地址,剩余模块一律采用LDR格式。MOV格式的外设模块具体控制指令基本位于硬件地址之后,定位简单;LDR格式涉及偏移,偏移范围为+/-32MB,当定位到硬件地址或驱动声明时,只能说明有对此模块的控制,具体控制指令需要进行二次

13、搜索。 以U?boot中时钟频率设置为例,第一次定位了4c000004MPLLCON地址,此处相对地址为814H,文件总长度为3AD3CH,优先选择向上定位。匹配指令为E59F*(LDR指令半定型),匹配方式为HSM匹配,具体流程如图7所示。 5结语 本文对ARM的BIN文件是否存在对某硬件模块的操控进行信息匹配定位,从基础信息的定位,到模块地址入口两个层次,实现对这些关键信息的定位。在第一时间就提示了是否存在恶意操作的可能。其次,在完成信息快速定位的基础上,展开代码局部分析,而不用对所有代码全部解析,极大地缩减了代码分析所耗时间。将HSM算法与BM、Sunday算法进行对比,针对ARM的特殊

14、结构,通过实验证明了该算法的高效可靠,从而验证了敏感信息匹配模型的实用性。 参考文献 1蔺毅翀.软件安全漏洞的自动化探测方法研究D.合肥:中国科学技术大学,xx. 2康凯,郭颖,崔宝江.基于XML的面向二进制漏洞模式形式化描述研究J.信息网络安全,xx(12):21?24. 3张显明.基于网络的恶意代码检测技术探析J.电脑开发与应用,xx(7):27?29. 4雷迟骏.基于启发式算法的恶意代码检测系统研究与实现D.南京:南京邮电大学,xx. 5BOYERRS,MOOREJSAfaststringsearchingalgorithmJ.CommunicationsoftheACM,1977,20

15、(10):762?772. 6DANIELM.AveryfastsubstringsearchalgorithmJ.Commu?nicationsoftheACM,1990,33(8):132?142. 7MUYongmin,LlMeigui,LIANGQiThesurveyofthepat?ternmatchingalgorithminintrusiondetectionsystemJ.AetaElectronicaSinica,xx,34(12A):2488?2490. 作者简介:余凯(1990),男,安徽安庆人,硕士研究生。主要研究方向为通信与信息安全。 梁光明(1970),男,湖南涟源人,博士,硕士生导师,副教授。主要研究方向为通信网信息安全。 杨世德(1991),男,内蒙古鄂托克前旗人,硕士研究生。主要研究方向为通信网信息安全。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号