Linux设备驱动程序敏感代码的检测与修复

来源 :北京交通大学 | 被引量 : 9次 | 上传用户:jimiwison
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着全球信息化进程的不断推进及计算机科学技术的持续发展,Linux操作系统以免费、开源、稳定、高性能等优势得到广泛的关注与应用。设备驱动程序是Linux系统的重要组成部分,它是可以使计算机和设备通信的特殊程序,其在内核代码中所占的比重很大。作为主机与外围设备之间通信控制的桥梁,设备驱动无疑会受到硬件设备故障的直接影响。在Linux系统中,驱动程序问题是造成系统安全的主要根源之一。特别地,由于设备驱动代码的编写往往没有考虑到硬件设备的瞬时故障,所以当硬件设备发生瞬时故障时,就有可能导致相应驱动程序出现不可预料的错误,进而影响内核乃至整个系统运行的稳定性和可靠性。因此,本文试图对设备驱动源码分析展开研究,以期检测到潜在的硬件瞬时故障相关的敏感代码,并加以必要的修复,从而达到提高操作系统可靠性的目的。本文首先在分析Linux内核体系架构及设备驱动层级结构的基础上,阐明了设备瞬时故障、相关敏感代码特征、驱动程序与设备及应用程序之间的通信机制,研究了检测和修复设备驱动敏感代码的基本方法。其次,论文就敏感代码检测修复原型的设计和实现展开具体讨论。相关原型主要致力于实现自动检测和修复驱动程序中的敏感代码,使用污点分析技术对驱动程序中使用的设备输入数据进行验证,以保证其从设备寄存器获取的数据的有效性。其间,对故障检测和修复处理进行了重点分析说明。故障检测方法实现了自动分析模型,该模型能准确识别出各类型的污染变量和驱动敏感代码。其核心是跟踪被I/O操作函数直接或间接修改的变量,并标注该变量被循环条件或数组下标所使用的位置。故障修复方法则采用手工的方式,在敏感代码处根据敏感类型插入适当的修复代码。由于Linux系统不提供故障监控服务,在修复过程中通过使用qrintk函数实现系统日志以报告相关故障信息,以提醒管理员及时处理。最后,为验证相关原型的检测修复效果,本文还对故障注入技术及硬件故障模拟进行了前期分析研究。实验结果表明,本文提出的设备驱动敏感代码检测和修复方法可以提高驱动的可靠性,为系统内核加固提供依据。下一步可围绕硬件瞬时故障开展更多类型的敏感代码检测及自动修复方法的研究,
其他文献
由于科技的发展与Internet的普及,越来越多的软件系统的运行环境从封闭和静态逐步转变为开放、动态而多变的状态,并且软件系统的在线维护和演化成为系统要素,同时,分布式中间
经过数十年的发展,我国医疗信息化在取得诸多成绩的同时,依然存在着不少的问题。区域卫生医疗信息化的发展严重滞后,其中普遍存在的“信息孤岛”,“政策发展与新技术交叉”问
互联网应用的飞速发展,使目前网络上聚集了海量资源。而这些资源大多处于闲置状态,这就引发了人们对如何利用这些闲置资源来解决实际问题的思考。然而在互联网环境下,对成长
数据融合技术产生于20世纪80年代,在多传感器遥感图像的融合、机动目标跟踪、航迹关联、多传感器目标定位、识别与分类、分布信息融合、数据关联、态势评估与威胁估计以及在
随着互联网、多媒体技术和计算机视觉的快速发展,海量的数字图像的处理成为日益现实而紧迫的问题,即如何从如此纷繁复杂的图像中快速的找到我们所需要的信息。近年来,主要以
尽管目前海运行业目前已普遍使用计算机处理业务,并且由于公共信息基础设施和内部网的建设,一般海运企业都已有了基本的信息处理环境。但是这种息化的认识深度有限,大部分企
在互联网中存在大量结构化的表格数据,但这些数据大多数都缺少表头、实体列和外键。对于表格数据,表头等结构信息是进行数据检索和表格融合的重要基础。目前,人们提出了很多
辐照企业目前是以简单的工业控制系统来监测和控制生产过程,企业中领导的决策与指导和生产现场的信息反馈以人工方式上传下达,并且生产调度过程完全由生产部门人员依靠经验进行安排。随着我国辐照加工技术实力的大幅度提高,近几年辐照加工产业开始大规模兴起,辐照企业的生产规模显著扩大。辐照企业的调度决策现状与管理模式阻碍了企业生产与运营效率的提高。论文以广州某辐照企业的业务模型为背景,以提升辐照企业生产与运营的效
银行安防嵌入式系统肩负银行安全的重任,为达到更高的安全级别,功能需求越来越多,业务逻辑也愈来愈严谨,导致系统变得庞大又复杂,开发工作难度相当大。在此背景下,本文在研究
在目前尽力而为的网络条件下,实时视频传输的质量保证是一个大问题,.如何智能的控制视频编码以适应动态多变的网络状况成为了热门的研究课题。针对这个问题,本文提出了一个新