一种基于绝对座标体系的操作系统客体重用测试方法技术方案

技术编号:2854974 阅读:283 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于绝对座标体系的操作系统客体重用测试方法,其特征是:使用内存物理地址作为参照座标体系对是否存在进程用户内存区域客体重用现象进行检测;以驱动程序的形式实现查页表计算内存物理地址,并为测试程序提供输入输出接口,测试程序可输入内存虚拟地址,驱动程序进行转换后输出其对应物理地址;在磁盘空间客体重用测试中,采用穷尽的方式将同一文件系统(逻辑驱动器)上的所有物理块都分配给新文件,其中必然包含原文件所释放的物理块。本发明专利技术实现结构简单,测试实施方便,无需更改目标操作系统内核代码,测试结果准确;能有效地对目标操作系统中是否存在进程用户内存、磁盘空间客体重用现象进行检测。

【技术实现步骤摘要】

本专利技术涉及。尤其指一种基于绝对座标体系的操作系统进程用户内存、磁盘客体重用测试方法。本专利技术属于信息安全及计算机操作系统领域。
技术介绍
对于客体重用,国标(GB17859-1999)作了明确规定“在计算机信息系统可信计算基的空闲存储客体空间中,对客体初始指定、分配或再分配一个主体之前,撤销该客体所含信息的所有授权。当主体获得对一个已被释放的客体的访问权时,当前主体不能获得原主体活动所产生的任何信息。”防止操作系统中存在客体重用现象是开发高可信级别操作系统的重要内容。在操作系统环境中,客体的种类主要有内存、系统缓存、寄存器、磁盘空间等。由于现代操作系统普遍实施了进程隔离和内核空间保护,操作系统的客体重用测试主要针对进程用户空间内存和磁盘空间进行。另外,操作系统语境下的主体指的是进程。在设计测试工具时,必须要特别注意以下2个问题1.客体重用问题存在于主体之间,只有在主体彻底释放了存储空间后,此空间才可能被系统分配给其它主体。操作系统中大多数存储客体的释放与分配一般采用“静态”的处理方式,即操作系统以固定大小的块为单位(例如内存页面)进行存储空间的分配与释放。主体在申请存储空间时的大小并不固定,在申请空间时先查看主体已经占有的存储块中是否有足够的空间,若有则从中划分而不向系统申请新的存储块;在释放时,如果同一存储块中还有其它内容则并不将存储块交还给系统而继续占有。由此可见,当主体申请或释放某块存储区域不一定会触发操作系统为其进行存储块的分配与释放。为此,在进行客体重用测试时,测试重用存储空间前必须确保以前的主体已经彻底地释放了目标存储空间。2.在不同主体之间进行对比测试时,必须确保进行检查的是同一块存储区域,这就要求测试采用一个统一的绝对坐标体系。在操作系统中,系统被进行了抽象,用来标识存储空间的往往是一些逻辑坐标,例如内存虚拟地址等。在不同主体间,相同地址的存储空间往往指向不同的物理位置。在进行客体重用测试时,必须采用如内存物理地址一类的绝对坐标体系作为比对的基准。目前,对于操作系统客体重用的检测只有一般化的方法步骤指导,未见解决以上问题的明确技术手段的报道。
技术实现思路
为了克服现有的技术的不足,本专利技术提供,包含进程用户空间内存客体重用检测方法和磁盘空间客体重用检测方法。本专利技术解决其技术问题所采用的技术方案是使用内存物理地址作为参照座标体系对是否存在进程用户内存区域客体重用现象进行检测;以驱动程序的形式实现查页表计算内存物理地址,并为测试程序提供输入输出接口,测试程序输入内存虚拟地址,驱动程序进行转换后输出其对应物理地址;磁盘空间客体重用测试采用穷尽的方式保证新文件获得的物理块包含有原文件的物理块。进程用户空间内存客体重用检测方法将测试在同一块物理内存区域在被某个进程使用(写)过后再被分配给另一个进程时,后者不能从中获得前者的使用活动信息(读出前者写入的数据)。磁盘空间客体重用检测方法将测试一块磁盘空间被某个文件使用并释放后分配给另一文件后是否可能包含有原文件的数据。进程用户空间内存客体重用检测方法相应的测试过程步骤如下 步骤1、系统为进程A分配一块内存,在其中写入特征码,彻底释放此块内存;步骤2、将进程A分配内存的虚拟地址转换成一个物理地址,将其传递给进程B;步骤3、系统根据物理地址为进程B分配同一块内存或原内存的一部分,进程B读出此区域进行特征码验证,若有相同部分表示存在客体重用;磁盘空间客体重用检测方法相应的测试过程步骤如下步骤1、在一个空文件系统中创建一个文件A,在其中写入特征码直到充满整个文件系统;步骤2、删除文件A,创建文件B,在其中写入不同的特征码直到文件占有所有的文件系统物理块,但在最后获得的物理块中不要写满。步骤3、检查整个文件系统的有效存储空间中是否存在文件A中的特征码,若有则表明存在客体重用问题。本专利技术的有益效果是在进程用户空间内存客体重用测试中使用内存物理地址作为测试目标依据,可保障测试的准确,避免对不同内存区域进行客体重用测试;以驱动程序形式实现的物理地址计算可使得测试无须修改系统内核代码即可进行。在磁盘空间客体重用检测中采用穷尽的方式可大大方便测试的进行,无须在文件A与B间对比物理块号。文件A与B均占有相同的物理块(同一文件系统所有的物理块)。未写满的物理块一定曾经属于过文件A,而其它块都已写满了不同的特征码。无论未写满块具体是哪一块,只要穷尽检查文件系统的所有块即可。在检查过程中,只要有一个块(也只可能有一个)中包含有原特征码,就说明了文件A中的信息残留到了文件B所占有的物理块中。实际测试时在一个小尺寸的文件系统上进行,穷尽操作将能很快完成。附图说明下面结合附图和实施例对本专利技术进一步说明。图1为进程用户内存客体重用测试说明2为磁盘空间客体重用测试说明3为进程用户内存客体重用测试工作流程4为磁盘空间客体重用测试工作流程图具体实施方式,包含进程用户空间内存客体重用检测方法和磁盘空间客体重用检测方法。对于用户空间内存客体的重用测试,测试工具应测试在同一块物理内存区域在被某个进程使用(写)过后再被分配给另一个进程时,后者不能从中获得前者的使用活动信息(读出前者写入的数据)。对于磁盘空间客体重用的检测,测试工具应测试一块磁盘空间被某个文件使用并释放后分配给另一文件后是否可能包含有原文件的数据。1.进程用户空间内存客体重用检测方法相应的测试过程步骤如下步骤1、系统为进程A分配一块内存,在其中写入特征码,彻底释放此块内存(使得系统能将其分配给其它进程);在进程中要使得自己的一块内存区域能够被分配给其它进程不能简单地通过调用使用常见的内存释放用户函数保证,例如C语言中的free函数。现代操作系统,如Linux和Windows等,为进程分配或释放内存空间是以长度固定的页为单位进行,在Linux中,页长为4k,分配/释放系统调用为brk。当进程调用free时,存放待释放内存区域的页面可能还存放了进程的其它数据(当待释放内存区域较小时,这种可能性非常大!),在这种情况下页面不为空,进程不会调用brk函数进行页释放。由于此页已经被分配给了当前进程,其它进程分配内存时不可能在此页面内进行(进程隔离),所以调用free函数进行内存释放只是一局部性(进程内)的释放,不一定会触发brk系统调用彻底释放内存区域供其它内存使用。C语言中的分配函数malloc和alloc也类似。要进行内存区域的彻底释放,最彻底的办法是结束进程。在进程结束后,其占用的所有页面将被彻底释放。步骤2、将进程A分配内存的虚拟地址转换成一个物理地址将其传递给进程B;虚拟地址到物理地址的转换是实现客体重用的关键。在计算机系统中,地址转换工作一般是由硬件部件进行,例如内存管理单元MMU(Memory ManagementUnit)部件。转换的依据是内核态的页表,在进程用户态无法直接进行地址转换。为此,可以以驱动程序的形式实现查页表计算物理地址,并为应用提供地址输入输出接口。测试进程可在用户态通过调用接口函数进行地址转换。进程A通过接口获得目标内存区域的物理地址。使用驱动程序实现地址转换能在无需更改目标操作系统内核的情况下访问内核页表,大大方便了测试方法的实施,并保证其能在无源码操作系统平台上实施。步骤3、系统根据物理地址为本文档来自技高网
...

【技术保护点】
一种基于绝对座标体系的操作系统客体重用测试方法,包含进程用户空间内存客体重用检测方法和磁盘空间客体重用检测方法,其特征是:使用内存物理地址作为参照座标体系对是否存在进程用户内存区域客体重用现象进行检测;以驱动程序的形式实现查页表计算内存物理地址,并为测试程序提供输入输出接口,测试程序输入内存虚拟地址,驱动程序进行转换后输出其对应物理地址;磁盘空间客体重用测试采用穷尽的方式保证新文件获得的物理块包含有原文件的物理块。

【技术特征摘要】

【专利技术属性】
技术研发人员:梁彬俞科技李小军徐秋芬
申请(专利权)人:北京启明星辰信息技术有限公司
类型:发明
国别省市:11[中国|北京]

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

1