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

文档序号:6649907阅读:150来源:国知局
专利名称:一种基于绝对座标体系的操作系统客体重用测试方法
技术领域
本发明涉及一种基于绝对座标体系的操作系统客体重用测试方法。尤其指一种基于绝对座标体系的操作系统进程用户内存、磁盘客体重用测试方法。本发明属于信息安全及计算机操作系统领域。
背景技术
对于客体重用,国标(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、系统根据物理地址为进程B分配同一块内存或原内存的一部分,进程B读出此区域进行特征码验证,若有相同部分表示存在客体重用。
在进程A结束后,在进程B中重复进行分配内存空间操作,直到获得了同一块内存或原内存的一部分(依据物理地址)。在新获得的内存区域中检查是否存在特征码,若存在进程A设定的特征码则说明系统存在进程用户空间内存客体重用问题。
在进行实际测试时要注意尽量关闭系统的后台服务进程,使系统中其它内存分配操作的数量降到最低,避免进程A释放的内存空间被非进程B的其它进程占有。此外,进程B要在进程A结束前起动,否则进程A释放的内存空间可能会被进程B的代码段占用。
2、磁盘空间客体重用检测方法对于磁盘空间客体重用问题,不同主体间的磁盘客体重用测试可等价于测试一个磁盘空间被某个文件释放后分配给另一文件后是否可能包含有原文件的数据。与内存空间类似,作为一种典型的块设备,操作系统是以固定大小的物理块为单位对磁盘进行操作的。例如在Linux中,ext2/ext3文件系统默认情况下的物理块大小为1024字节,对文件的磁盘空间分配和释放都以物理块为单位。
为文件分配磁盘物理块由文件写操作所触发的。当系统发现文件当前所占有的页面中的空闲区域无法容纳要写入的数据时,操作系统为文件分配新的物理块。
在测试中,要保证新文件获得的物理块包含有原文件的物理块可采用穷尽的方式,即将同一文件系统(逻辑驱动器)上的所有物理块都分配给新文件,其中必然包含原文件所释放的物理块。物理块的彻底释放可通过删除文件保证。
相应的测试过程步骤如下步骤1、在一个空文件系统中创建一个文件A,在其中写入特征码直到充满整个文件系统;步骤2、删除文件A,创建文件B,在其中写入不同的特征码直到文件占有所有的文件系统物理块,但在最后获得的物理块中不要写满。例如可向文件B中写入长度为(文件系统物理块×物理块大小-物理块大小/2)的新特征码。如果存在文件A的数据残留,必然是在未写满块中;步骤3、检查整个文件系统的有效存储空间中是否存在文件A中的特征码,若有则表明存在客体重用问题。
采用这种穷尽的方式可大大方便测试的进行,无须在文件A与B间对比物理块号。文件A与B均占有相同的物理块(同一文件系统所有的物理块)。未写满的物理块一定曾经属于过文件A,而其它块都已写满了不同的特征码。无论未写满块具体是哪一块,只要穷尽检查文件系统的所有块即可。在检查过程中,只要有一个块(也只可能有一个)中包含有原特征码,就说明了文件A中的信息残留到了文件B所占有的物理块中。实际测试时在一个小尺寸的文件系统上进行,穷尽操作将能很快完成。
如图1所示,在进行系统进程用户内存客体重用测试时,需要运行2个测试进程A和B。测试进程A分配一块内存,在其中写入特征码,然后将此块内存的虚拟地址提供给内核地址转换驱动模块,最后进程退出以彻底释放此块内存。内核地址转换驱动模块将进程A分配内存的虚拟地址转换成一个物理地址将其传递给测试进程B,进程B重复进行分配内存空间操作,将其获得的内存虚拟地址也通过内核地址转换驱动模块转换为物理地址后与进程A中曾经分配的内存物理地址进行比对,直到获得了同一块内存或原内存的一部分。在新获得的内存区域中检查是否存在特征码,若存在进程A设定的特征码则说明系统存在进程用户空间内存客体重用问题。
如图2所示,在进行磁盘空间客体重用测试时,首先创建一个小尺寸的新文件系统(磁盘分区),通过一个测试进程在其中创建一个文件A,在其中写入特征码直到充满整个文件系统。然后删除文件A使其释放占有的磁盘空间(整个文件系统)并创建文件B,在文件B中写入不同的特征码直到文件占有所有的文件系统物理块,但在最后获得的物理块中不要写满,可向文件B中写入长度为(文件系统物理块×物理块大小-物理块大小/2)的新特征码。最后检查整个文件系统的有效存储空间中是否存在文件A中的特征码,若有则表明存在客体重用问题。
图3为进程用户内存客体重用测试工作流程图。如图3所示,它包括以下步骤1)测试进程A分配一块内存;2)在其中写入特征码;3)将分配内存的虚拟地址转换成一个物理地址将其传递给测试进程B;4)进程A退出以彻底释放此块内存。内核地址转换驱动模块;5)进程B分配内存空间;6)将其获得的内存虚拟地址也通过内核地址转换驱动模块转换为物理地址后与进程A中曾经分配的内存物理地址进行比对,如果同为进程A所分配的内存空间或为其一部分直到获得了同一块内存或原内存的一部分则转到第7步,否则回到第5步重复进行分配内存空间操作;7)在新获得的内存区域中检查是否存在特征码,若存在进程A设定的特征码则说明系统存在进程用户空间内存客体重用问题。
图4为磁盘空间客体重用测试工作流程图。如图4所示,它包括以下步骤
1)创建一个小尺寸的新的磁盘分区;2)在其中创建一个文件A;3)在文件A中写入特征码直到充满整个磁盘分区;4)删除文件A使其释放占有的磁盘空间;5)创建文件B,在文件B中写入长度为(磁盘分区物理块×物理块大小-物理块大小/2)的新特征码;6)最后检查整个文件系统的有效存储空间中是否存在文件A中的特征码,若有则表明存在客体重用问题。
权利要求
1.一种基于绝对座标体系的操作系统客体重用测试方法,包含进程用户空间内存客体重用检测方法和磁盘空间客体重用检测方法,其特征是使用内存物理地址作为参照座标体系对是否存在进程用户内存区域客体重用现象进行检测;以驱动程序的形式实现查页表计算内存物理地址,并为测试程序提供输入输出接口,测试程序输入内存虚拟地址,驱动程序进行转换后输出其对应物理地址;磁盘空间客体重用测试采用穷尽的方式保证新文件获得的物理块包含有原文件的物理块。
2.根据权利要求1所述的一种基于绝对座标体系的操作系统客体重用测试方法,进程用户空间内存客体重用检测方法测试过程步骤如下步骤1、系统为进程A分配一块内存,在其中写入特征码,彻底释放此块内存;步骤2、将进程A分配内存的虚拟地址转换成一个物理地址将其传递给进程B;步骤3、系统根据物理地址为进程B分配同一块内存或原内存的一部分,进程B读出此区域进行特征码验证,若有相同部分表示存在客体重用现象。
3.根据权利要求1所述的一种基于绝对座标体系的操作系统客体重用测试方法,磁盘空间客体重用检测方法的测试过程步骤如下步骤1、在一个空文件系统中创建一个文件A,在其中写入特征码直到充满整个文件系统;步骤2、删除文件A,创建文件B,在其中写入不同的特征码直到文件占有所有的文件系统物理块;步骤3、检查整个文件系统的有效存储空间中是否存在文件A中的特征码,若有则表明存在客体重用问题。
全文摘要
本发明公开了一种基于绝对座标体系的操作系统客体重用测试方法,其特征是使用内存物理地址作为参照座标体系对是否存在进程用户内存区域客体重用现象进行检测;以驱动程序的形式实现查页表计算内存物理地址,并为测试程序提供输入输出接口,测试程序可输入内存虚拟地址,驱动程序进行转换后输出其对应物理地址;在磁盘空间客体重用测试中,采用穷尽的方式将同一文件系统(逻辑驱动器)上的所有物理块都分配给新文件,其中必然包含原文件所释放的物理块。本发明实现结构简单,测试实施方便,无需更改目标操作系统内核代码,测试结果准确;能有效地对目标操作系统中是否存在进程用户内存、磁盘空间客体重用现象进行检测。
文档编号G06F11/36GK1746863SQ20051011442
公开日2006年3月15日 申请日期2005年10月25日 优先权日2005年10月25日
发明者余科技, 李小军, 徐秋芬 申请人:北京启明星辰信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1