当前位置: 首页 > 专利查询>东华大学专利>正文

操作系统中断安全隐患定位系统及其应用技术方案

技术编号:12589544 阅读:111 留言:0更新日期:2015-12-24 14:44
本发明专利技术公开了一种操作系统中断安全隐患定位系统及其应用。所述定位系统包括调试信息处理模块,目标代码抽象模型生成模块,模型验证模块,回溯模块。该系统在操作系统中断安全隐患的定位方法中的应用为:在调试信息处理模块中提取调试信息,建立源代码及目标代码之间的对应关系;在模型生成模块中,为所得目标代码建立抽象模型,建立目标代码与模型代码之间的对应关系;在模型验证模块中,检测抽象模型中是否存在中断安全隐患;在回溯模块中,根据调试信息回溯隐患产生过程,返回错误执行路径。为了避免编译器的可能引发的错误,本发明专利技术从目标代码级别用模型检测的方法保证程序的中断安全性,通过提取基于DWARF规范的调试信息回溯安全隐患。

【技术实现步骤摘要】

本专利技术涉及一种,属于操作系统软件

技术介绍
中断处理是操作系统的一个重要组成部分,它为系统的运行提供了一种基于事件的快速响应机制。引起中断的事件被称为中断源,中断源发出的中断处理信号成为中断请求,中断源对应的事件处理程序成为中断处理程序。中断请求的不确定性和中断处理机制的复杂性给操作系统的运行带来了很大的隐患。中断引发的问题主要有两种:第一种是溢出类问题,无论是堆栈的溢出还是引发的全局变量内容的溢出,都将会使进入非正常的状态之中。此类错误同时可能会产生除中断嵌套层数变量与堆栈指针溢出以外的问题,与中断嵌套变量及堆栈指针有关的其它逻辑判断变量值都有可能会产生错误的结果。第二种是数据操作错误,由于中断程序的特殊调用过程与调用的时间的不确定性,造成了原有的数据操作的事务性特征无法得到保持,从而产生了数据操作错误。这种错误又可以分为数据误读错误与数据脏读错误。数据误读错误是指中断处理程序修改被中断的事务性任务的数据环境。例如在被中断程序P中,在中断点后使用了全局变量Vl,在中断处理程序INTP中,将不能许可对Vl进行写操作。否则将会产生中断数据误读的错误。数据脏读错误是指中断的处理程序读取被中断的事务性任务将操作的数据环境。例如在被中断的事务性任务P中,在中断点后修改了全局变量vl,在中断处理程序INTP中,将不能许可对Vl进行读操作。否则将有可能产生中断数据脏读的错误。DWARF规范是一种广泛使用、标准化、可扩展的调试信息格式,用来规范各种编程语言的源代码与目标代码之间关系的信息,包括源代码中的变量信息、数据类型信息、常量信息、子程序信息等。DWARF对于调试信息采用结构化的描述方法,调试信息单元(Debugging Informat1n Entry,DIE)是构成整个结构的基本单位。DIE可以分为两种类型,一种是用于描述数据和数据结构的;另外一种是用于描述函数及其它可执行代码的。根据这些结构化信息,我们可以自动提炼出定位中断安全隐患所需要的各种信息。中断安全隐患给操作系统的正确运行带来了很大的问题。
技术实现思路
本专利技术所要解决的是现有技术中无法对检测出的中断安全隐患进行自动定位、进而无法形成有效的代码改进方案的问题。为了解决上述问题,本专利技术提供了一种基于DWARF规范的操作系统中断安全隐患定位系统,其特征在于,包括:调试信息处理模块,其对编译后生成的基于DWARF规范的调试信息文件进行信息提取;目标代码抽象模型生成模块,其为编译后的目标代码建立抽象模型;模型验证模块,其检测抽象模型中是否存在中断安全隐患;回溯模块,其根据调试信息找到隐患模型代码相对应的源代码,实现对中断安全隐患的定位,返回错误执行路径。本专利技术还提供了一种操作系统中断安全隐患的定位方法,其特征在于,采用上述操作系统中断安全隐患定位系统,具体包括以下步骤:步骤一:在调试信息处理模块中提取调试信息,建立源代码及目标代码之间的对应关系;步骤二:在模型生成模块中,为步骤一所得目标代码建立抽象模型,建立目标代码与模型代码之间的对应关系;步骤三:在模型验证模块中,检测抽象模型中是否存在中断安全隐患;步骤四:在回溯模块中,根据调试信息回溯隐患产生过程,返回错误执行路径。优选地,所述步骤一中的调试信息具体包括全局变量与其内存地址的对照符号表、函数名字及入口地址、函数的源代码及相对应的目标代码。优选地,所述步骤二对所述步骤一所得的目标代码进行抽象,将目标代码抽象为节点构成的树状结构。每个节点代表着和某一全局变量相关的读/写操作;树状结构是在目标代码执行路径的基础上抽象出来的;包括分支结构,循环结构,函数调用。优选地,所述步骤三中的中断安全隐患是指模型代码中因中断发生导致执行错误的模型代码。进一步地,所述步骤三中的中断安全隐患的检测是将自动机模型插入机器码中的可中断点,覆盖所有函数可能执行路径,利用模型检测工具进行检测。更进一步地,所述模型检测工具为SPIN model checker、NuSMV或UPPAAL等。优选地,所述步骤四具体为:通过模型代码与目标代码的关系、目标代码与源代码的关系将可能出现的数据竞争的源代码以代码运行路径文件形式输出。得到缺陷报告后,可根据缺陷报告查出造成中断安全隐患的代码,分析相应的错误执行路径修补对应的漏洞,从而有助于建立具备中断安全性的系统。本专利技术中为了避免编译器的可能引发的错误,从目标代码级别用模型检测的方法保证程序的中断安全性。检测是否存在中断安全隐患需要对中断安全隐患满足的条件进行形式化的性质描述,在形式化的性质描述的过程中可以结合自动机模型,本专利技术使用时态逻辑进行描述。本专利技术提供的一种基于DWARF规范的操作系统中断安全隐患定位解决方案,具有隐患定位系统化、自动化的有益效果。【具体实施方式】为使本专利技术更明显易懂,兹以优选实施例,作详细说明如下。实施例本实施例提供了一种基于DWARF规范的操作系统中断安全隐患定位系统应用于检测国际汽车电子操作系统规范OSEK OS 2.2.3标准的一个操作系统实例。所述操作系统中断安全隐患定位系统包括:调试信息处理模块,其对编译后生成的基于DWARF规范的调试信息文件进行信息提取;目标代码抽象模型生成模块,其为编译后的目标代码建立抽象模型;模型验证模块,其检测抽象模型中是否存在中断安全隐患;回溯模块,其根据调试信息找到隐患模型代码相对应的源代码,实现对中断安全隐患的定位,返回错误执行路径。一种操作系统中断安全隐患的定位方法,采用上述操作系统中断安全隐患定位系统,具体包括以下步骤:步骤一:在调试信息处理模块中提取调试信息,建立源代码及目标代码之间的对应关系;步骤二:在模型生成模块中,为步骤一所得目标代码建立抽象模型,建立目标代码与模型代码之间的对应关系;步骤三:在模型验证模块中,检测抽象模型中是否存在中断安全隐患;步骤四:在回溯模块中,根据调试信息回溯隐患产生过程,返回错误执行路径。其中,步骤一中调试信息具体包括全局变量与其内存地址的对照符号表、函数名字及入口地址、函数的源代码及相对应的目标代码。步骤二对步骤一所得的目标代码进行抽象,将目标代码抽象为节点构成的树状结构。每个节点代表着和某一全局变量相关的读/写操作。树状结构是在目标代码执行路径的基础上抽象出来的。包括分支结构,循环结构,函数调用。步骤三中的中断安全隐患是指模型代码中因中断发生导致执行错误的模型代码。其中,步骤三中断安全隐患的检测是将自动机模型插入机器码中的可中断点,覆盖所有函数可能执行路径,利用模型检测工具进行检测。步骤四中通过模型代码与目标代码的关系、目标代码与源代码的关系将可能出现的数据竞争的源代码以代码运行路径文件形式输出。得到缺陷报告后,可根据缺陷报告查出造成中断安全隐患的代码,分析相应的错误执行路径修补对应的漏洞,从而有助于建立具备中断安全性的系统。本实施例运用本专利技术操作系统中断安全隐患定位系统检测OSEK OS 2.2.3标准操作系统有30余个操作系统中断安全性错误,并返回相应的错误路径,为开发人员修正代码提供有效的帮助。【主权项】1.一种操作系统中断安全隐患定位系统,其特征在于,包括:调试信息处理模块,其对编译后生成的基于DWARF规范的调试信息文件进行信息提取;目标代码抽象本文档来自技高网
...

【技术保护点】
一种操作系统中断安全隐患定位系统,其特征在于,包括:调试信息处理模块,其对编译后生成的基于DWARF规范的调试信息文件进行信息提取;目标代码抽象模型生成模块,其为编译后的目标代码建立抽象模型;模型验证模块,其检测抽象模型中是否存在中断安全隐患;回溯模块,其根据调试信息找到隐患模型代码相对应的源代码,实现对中断安全隐患的定位,返回错误执行路径。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱龙飞史建琦何积丰
申请(专利权)人:东华大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1