论文部分内容阅读
随着信息技术的进步和物联网的飞速发展,针对物联网设备的攻击频率越来越高,硬件设备的安全问题受到人们越来越多的重视。如何检测设备固件中存在的安全缺陷和漏洞,实现对设备固件程序的简便快速有效检测逐渐成为安全分析人员关注的重点。本文针对物联网设备中存在的安全问题,分析了当前制约物联网设备安全分析的多方面因素,对污点分析技术进行了深入研究。以常用的物联网设备系统平台为目标设备和实验平台,针对设备固件程序的交叉调试、中间表示转换、程序模拟执行和污点分析等方面展开深入研究和技术改进。本文的主要工作与贡献如下:1、对目前的污点分析技术的发展状况进行了研究与归纳。将污点分析技术按照实现方式的不同,区分为基于硬件扩展、基于软件重写、基于虚拟环境和基于代码执行四种主要的实现方式,并对每种方式的主要优缺点进行了对比分析。在此基础上,提出将污点分析分为目标设备端的实际执行和主机端的模拟执行两部分,通过交叉调试实现两者之间的通信。通过这种方法,可以减少污点分析前期准备工作,提高污点分析工具的适用性,维持污点分析基本性能的开发需求。2、提出并实现了基于调试脚本的动态插桩框架。对现有的插桩工具进行了研究,并在此基础上,对Valgrind框架进行了改进,实现了基于gdb交叉调试脚本动态插桩框架。通过这种方式,该框架可以利用目标设备实际执行固件程序,并通过gdb交叉调试获取固件程序运行时信息。3、实现了基于中间表示的模拟执行引擎。为了实现系统的跨平台应用,本文中提出将获得的程序相关信息转换为中间表示语言,并在中间表示语言层面进行模拟执行和污点分析。通过这种方式,可以使该原型系统很容易地在不同平台上实现应用。安全分析人员不需要重写整个框架,只需增加相应平台的中间表示转换模块即可实现框架的移植。4、实现了基于模拟执行的污点分析框架。为了提高污点分析的准确度,本文将中间表示语句进行的分析研究,按照污点传播归纳成7类,并制定了相应的污点传播策略。特别是针对libc库函数的功能进行污点传播和无害化处理传播策略的制定,减少了污点分析的工作量,提高了分析效率。5、验证了原型系统的有效性,并对程序运行效率进行了评估。本文对存在缓冲区溢出漏洞的测试数据集进行了验证评估,验证了该系统能够比较有效地检测出固件程序中存在的缓冲区溢出漏洞。在此基础上,本文利用binutil64工具集作为测试集评估了原型系统对程序运行效率的影响。