CN105183552A - 操作系统中断安全隐患定位系统及其应用 - Google Patents
操作系统中断安全隐患定位系统及其应用 Download PDFInfo
- Publication number
- CN105183552A CN105183552A CN201510621409.XA CN201510621409A CN105183552A CN 105183552 A CN105183552 A CN 105183552A CN 201510621409 A CN201510621409 A CN 201510621409A CN 105183552 A CN105183552 A CN 105183552A
- Authority
- CN
- China
- Prior art keywords
- safety hazard
- code
- model
- potential safety
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种操作系统中断安全隐患定位系统及其应用。所述定位系统包括调试信息处理模块,目标代码抽象模型生成模块,模型验证模块,回溯模块。该系统在操作系统中断安全隐患的定位方法中的应用为:在调试信息处理模块中提取调试信息,建立源代码及目标代码之间的对应关系;在模型生成模块中,为所得目标代码建立抽象模型,建立目标代码与模型代码之间的对应关系;在模型验证模块中,检测抽象模型中是否存在中断安全隐患;在回溯模块中,根据调试信息回溯隐患产生过程,返回错误执行路径。为了避免编译器的可能引发的错误,本发明从目标代码级别用模型检测的方法保证程序的中断安全性,通过提取基于DWARF规范的调试信息回溯安全隐患。
Description
技术领域
本发明涉及一种操作系统中断安全隐患定位系统及其应用,属于操作系统软件技术领域。
背景技术
中断处理是操作系统的一个重要组成部分,它为系统的运行提供了一种基于事件的快速响应机制。引起中断的事件被称为中断源,中断源发出的中断处理信号成为中断请求,中断源对应的事件处理程序成为中断处理程序。中断请求的不确定性和中断处理机制的复杂性给操作系统的运行带来了很大的隐患。
中断引发的问题主要有两种:第一种是溢出类问题,无论是堆栈的溢出还是引发的全局变量内容的溢出,都将会使进入非正常的状态之中。此类错误同时可能会产生除中断嵌套层数变量与堆栈指针溢出以外的问题,与中断嵌套变量及堆栈指针有关的其它逻辑判断变量值都有可能会产生错误的结果。第二种是数据操作错误,由于中断程序的特殊调用过程与调用的时间的不确定性,造成了原有的数据操作的事务性特征无法得到保持,从而产生了数据操作错误。这种错误又可以分为数据误读错误与数据脏读错误。数据误读错误是指中断处理程序修改被中断的事务性任务的数据环境。例如在被中断程序P中,在中断点后使用了全局变量v1,在中断处理程序INTP中,将不能许可对v1进行写操作。否则将会产生中断数据误读的错误。数据脏读错误是指中断的处理程序读取被中断的事务性任务将操作的数据环境。例如在被中断的事务性任务P中,在中断点后修改了全局变量v1,在中断处理程序INTP中,将不能许可对v1进行读操作。否则将有可能产生中断数据脏读的错误。
DWARF规范是一种广泛使用、标准化、可扩展的调试信息格式,用来规范各种编程语言的源代码与目标代码之间关系的信息,包括源代码中的变量信息、数据类型信息、常量信息、子程序信息等。DWARF对于调试信息采用结构化的描述方法,调试信息单元(DebuggingInformationEntry,DIE)是构成整个结构的基本单位。DIE可以分为两种类型,一种是用于描述数据和数据结构的;另外一种是用于描述函数及其它可执行代码的。根据这些结构化信息,我们可以自动提炼出定位中断安全隐患所需要的各种信息。中断安全隐患给操作系统的正确运行带来了很大的问题。
发明内容
本发明所要解决的是现有技术中无法对检测出的中断安全隐患进行自动定位、进而无法形成有效的代码改进方案的问题。
为了解决上述问题,本发明提供了一种基于DWARF规范的操作系统中断安全隐患定位系统,其特征在于,包括:调试信息处理模块,其对编译后生成的基于DWARF规范的调试信息文件进行信息提取;目标代码抽象模型生成模块,其为编译后的目标代码建立抽象模型;模型验证模块,其检测抽象模型中是否存在中断安全隐患;回溯模块,其根据调试信息找到隐患模型代码相对应的源代码,实现对中断安全隐患的定位,返回错误执行路径。
本发明还提供了一种操作系统中断安全隐患的定位方法,其特征在于,采用上述操作系统中断安全隐患定位系统,具体包括以下步骤:
步骤一:在调试信息处理模块中提取调试信息,建立源代码及目标代码之间的对应关系;
步骤二:在模型生成模块中,为步骤一所得目标代码建立抽象模型,建立目标代码与模型代码之间的对应关系;
步骤三:在模型验证模块中,检测抽象模型中是否存在中断安全隐患;
步骤四:在回溯模块中,根据调试信息回溯隐患产生过程,返回错误执行路径。
优选地,所述步骤一中的调试信息具体包括全局变量与其内存地址的对照符号表、函数名字及入口地址、函数的源代码及相对应的目标代码。
优选地,所述步骤二对所述步骤一所得的目标代码进行抽象,将目标代码抽象为节点构成的树状结构。每个节点代表着和某一全局变量相关的读/写操作;树状结构是在目标代码执行路径的基础上抽象出来的;包括分支结构,循环结构,函数调用。
优选地,所述步骤三中的中断安全隐患是指模型代码中因中断发生导致执行错误的模型代码。
进一步地,所述步骤三中的中断安全隐患的检测是将自动机模型插入机器码中的可中断点,覆盖所有函数可能执行路径,利用模型检测工具进行检测。
更进一步地,所述模型检测工具为SPINmodelchecker、NuSMV或UPPAAL等。
优选地,所述步骤四具体为:通过模型代码与目标代码的关系、目标代码与源代码的关系将可能出现的数据竞争的源代码以代码运行路径文件形式输出。得到缺陷报告后,可根据缺陷报告查出造成中断安全隐患的代码,分析相应的错误执行路径修补对应的漏洞,从而有助于建立具备中断安全性的系统。
本发明中为了避免编译器的可能引发的错误,从目标代码级别用模型检测的方法保证程序的中断安全性。检测是否存在中断安全隐患需要对中断安全隐患满足的条件进行形式化的性质描述,在形式化的性质描述的过程中可以结合自动机模型,本发明使用时态逻辑进行描述。
本发明提供的一种基于DWARF规范的操作系统中断安全隐患定位解决方案,具有隐患定位系统化、自动化的有益效果。
具体实施方式
为使本发明更明显易懂,兹以优选实施例,作详细说明如下。
实施例
本实施例提供了一种基于DWARF规范的操作系统中断安全隐患定位系统应用于检测国际汽车电子操作系统规范OSEKOS2.2.3标准的一个操作系统实例。所述操作系统中断安全隐患定位系统包括:调试信息处理模块,其对编译后生成的基于DWARF规范的调试信息文件进行信息提取;目标代码抽象模型生成模块,其为编译后的目标代码建立抽象模型;模型验证模块,其检测抽象模型中是否存在中断安全隐患;回溯模块,其根据调试信息找到隐患模型代码相对应的源代码,实现对中断安全隐患的定位,返回错误执行路径。
一种操作系统中断安全隐患的定位方法,采用上述操作系统中断安全隐患定位系统,具体包括以下步骤:
步骤一:在调试信息处理模块中提取调试信息,建立源代码及目标代码之间的对应关系;
步骤二:在模型生成模块中,为步骤一所得目标代码建立抽象模型,建立目标代码与模型代码之间的对应关系;
步骤三:在模型验证模块中,检测抽象模型中是否存在中断安全隐患;
步骤四:在回溯模块中,根据调试信息回溯隐患产生过程,返回错误执行路径。
其中,步骤一中调试信息具体包括全局变量与其内存地址的对照符号表、函数名字及入口地址、函数的源代码及相对应的目标代码。
步骤二对步骤一所得的目标代码进行抽象,将目标代码抽象为节点构成的树状结构。每个节点代表着和某一全局变量相关的读/写操作。树状结构是在目标代码执行路径的基础上抽象出来的。包括分支结构,循环结构,函数调用。
步骤三中的中断安全隐患是指模型代码中因中断发生导致执行错误的模型代码。
其中,步骤三中断安全隐患的检测是将自动机模型插入机器码中的可中断点,覆盖所有函数可能执行路径,利用模型检测工具进行检测。
步骤四中通过模型代码与目标代码的关系、目标代码与源代码的关系将可能出现的数据竞争的源代码以代码运行路径文件形式输出。得到缺陷报告后,可根据缺陷报告查出造成中断安全隐患的代码,分析相应的错误执行路径修补对应的漏洞,从而有助于建立具备中断安全性的系统。
本实施例运用本发明操作系统中断安全隐患定位系统检测OSEKOS2.2.3标准操作系统有30余个操作系统中断安全性错误,并返回相应的错误路径,为开发人员修正代码提供有效的帮助。
Claims (6)
1.一种操作系统中断安全隐患定位系统,其特征在于,包括:调试信息处理模块,其对编译后生成的基于DWARF规范的调试信息文件进行信息提取;目标代码抽象模型生成模块,其为编译后的目标代码建立抽象模型;模型验证模块,其检测抽象模型中是否存在中断安全隐患;回溯模块,其根据调试信息找到隐患模型代码相对应的源代码,实现对中断安全隐患的定位,返回错误执行路径。
2.一种操作系统中断安全隐患的定位方法,其特征在于,采用权利要求1所述的操作系统中断安全隐患定位系统,具体包括以下步骤:
步骤一:在调试信息处理模块中提取调试信息,建立源代码及目标代码之间的对应关系;
步骤二:在模型生成模块中,为步骤一所得目标代码建立抽象模型,建立目标代码与模型代码之间的对应关系;
步骤三:在模型验证模块中,检测抽象模型中是否存在中断安全隐患;
步骤四:在回溯模块中,根据调试信息回溯隐患产生过程,返回错误执行路径。
3.如权利要求2所述的操作系统中断安全隐患的定位方法,其特征在于,所述步骤一中的调试信息具体包括全局变量与其内存地址的对照符号表、函数名字及入口地址、函数的源代码及相对应的目标代码。
4.如权利要求2所述的操作系统中断安全隐患的定位方法,其特征在于,所述步骤二对所述步骤一所得的目标代码进行抽象,将目标代码抽象为节点构成的树状结构。
5.如权利要求2所述的操作系统中断安全隐患的定位方法,其特征在于,所述步骤三中的中断安全隐患是指模型代码中因中断发生导致执行错误的模型代码。
6.如权利要求2所述的操作系统中断安全隐患的定位方法,其特征在于,所述步骤四具体为:通过模型代码与目标代码的关系、目标代码与源代码的关系将可能出现的数据竞争的源代码以代码运行路径文件形式输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510621409.XA CN105183552A (zh) | 2015-09-25 | 2015-09-25 | 操作系统中断安全隐患定位系统及其应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510621409.XA CN105183552A (zh) | 2015-09-25 | 2015-09-25 | 操作系统中断安全隐患定位系统及其应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105183552A true CN105183552A (zh) | 2015-12-23 |
Family
ID=54905648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510621409.XA Pending CN105183552A (zh) | 2015-09-25 | 2015-09-25 | 操作系统中断安全隐患定位系统及其应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183552A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250227A (zh) * | 2016-08-02 | 2016-12-21 | 合肥奇也信息科技有限公司 | 一种寻求计算机程序执行定义目标的方法 |
CN106959890A (zh) * | 2017-03-09 | 2017-07-18 | 华东师范大学 | 基于加权下推系统的中断验证系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193556A (zh) * | 2011-04-18 | 2011-09-21 | 华东师范大学 | 汽车电子器件中断安全隐患检测系统及其检测方法 |
US8645933B2 (en) * | 2008-08-01 | 2014-02-04 | Leon Schwartz | Method and apparatus for detection and optimization of presumably parallel program regions |
CN104503793A (zh) * | 2014-12-24 | 2015-04-08 | 风腾科技(北京)有限公司 | 代码练习软件中代码的运行和图形化的解析方法 |
-
2015
- 2015-09-25 CN CN201510621409.XA patent/CN105183552A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8645933B2 (en) * | 2008-08-01 | 2014-02-04 | Leon Schwartz | Method and apparatus for detection and optimization of presumably parallel program regions |
CN102193556A (zh) * | 2011-04-18 | 2011-09-21 | 华东师范大学 | 汽车电子器件中断安全隐患检测系统及其检测方法 |
CN104503793A (zh) * | 2014-12-24 | 2015-04-08 | 风腾科技(北京)有限公司 | 代码练习软件中代码的运行和图形化的解析方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250227A (zh) * | 2016-08-02 | 2016-12-21 | 合肥奇也信息科技有限公司 | 一种寻求计算机程序执行定义目标的方法 |
CN106959890A (zh) * | 2017-03-09 | 2017-07-18 | 华东师范大学 | 基于加权下推系统的中断验证系统 |
CN106959890B (zh) * | 2017-03-09 | 2019-06-14 | 华东师范大学 | 基于加权下推系统的中断验证系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019240B2 (en) | Method and apparatus for detecting code change | |
US8719791B1 (en) | Display of aggregated stack traces in a source code viewer | |
US20100180263A1 (en) | Apparatus and method for detecting software error | |
CN108197476B (zh) | 一种智能终端设备的漏洞检测方法及装置 | |
CN108664394B (zh) | 一种内存泄露过程追溯方法及装置 | |
WO2020237508A1 (zh) | 一种断言验证代码绑定方法及装置 | |
CN105183789A (zh) | 基于git源代码冲突的文件合并方法及系统 | |
CN110866258A (zh) | 快速定位漏洞方法、电子装置及存储介质 | |
CN106406918B (zh) | 源代码自动合并方法和源代码自动合并装置 | |
CN105204968A (zh) | 一种故障内存检测方法和装置 | |
CN109032612B (zh) | 混合型应用的接口调用方法、装置及计算机可读存储介质 | |
CN110647463B (zh) | 一种恢复测试断点的方法、装置、电子设备 | |
CN105183552A (zh) | 操作系统中断安全隐患定位系统及其应用 | |
CN115391228A (zh) | 精准测试方法、装置、设备及介质 | |
CN103838666A (zh) | 一种确定代码执行覆盖率的方法和装置 | |
CN102193556B (zh) | 汽车电子器件中断安全隐患检测系统及其检测方法 | |
CN115756935A (zh) | 嵌入式软件系统的异常故障定位方法、装置及设备 | |
CN114500249B (zh) | 一种根因定位方法和装置 | |
CN112052165B (zh) | 一种检测目标函数被调试的方法、系统及存储介质 | |
CN107908516B (zh) | 一种数据显示方法及装置 | |
CN111782220A (zh) | 一种文件的检测方法和装置 | |
CN113900914A (zh) | 异常处理方法、装置、电子设备及计算机存储介质 | |
CN108255667B (zh) | 一种业务监测方法、装置以及电子设备 | |
CN111786856A (zh) | 一种浏览器环境检查方法及装置 | |
CN111880078A (zh) | 一种自动化指令测试的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151223 |
|
WD01 | Invention patent application deemed withdrawn after publication |