CN100363905C - 一种基于绝对座标体系的操作***客体重用测试方法 - Google Patents

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

Info

Publication number
CN100363905C
CN100363905C CNB2005101144241A CN200510114424A CN100363905C CN 100363905 C CN100363905 C CN 100363905C CN B2005101144241 A CNB2005101144241 A CN B2005101144241A CN 200510114424 A CN200510114424 A CN 200510114424A CN 100363905 C CN100363905 C CN 100363905C
Authority
CN
China
Prior art keywords
file
object reuse
test
internal memory
physical
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.)
Expired - Fee Related
Application number
CNB2005101144241A
Other languages
English (en)
Other versions
CN1746863A (zh
Inventor
梁彬
俞科技
李小军
徐秋芬
Original Assignee
BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd
Priority to CNB2005101144241A priority Critical patent/CN100363905C/zh
Publication of CN1746863A publication Critical patent/CN1746863A/zh
Application granted granted Critical
Publication of CN100363905C publication Critical patent/CN100363905C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种基于绝对座标体系的操作***客体重用测试方法
所属技术领域
本发明涉及一种基于绝对座标体系的操作***客体重用测试方法。尤其指一种基于绝对座标体系的操作***进程用户内存、磁盘客体重用测试方法。本发明属于信息安全及计算机操作***领域。
背景技术
对于客体重用,国标(GB17859-1999)作了明确规定:“在计算机信息***可信计算基的空闲存储客体空间中,对客体初始指定、分配或再分配一个主体之前,撤销该客体所含信息的所有授权。当主体获得对一个已被释放的客体的访问权时,当前主体不能获得原主体活动所产生的任何信息。”防止操作***中存在客体重用现象是开发高可信级别操作***的重要内容。
在操作***环境中,客体的种类主要有内存、***缓存、寄存器、磁盘空间等。由于现代操作***普遍实施了进程隔离和内核空间保护,操作***的客体重用测试主要针对进程用户空间内存和磁盘空间进行。另外,操作***语境下的主体指的是进程。
在设计测试工具时,必须要特别注意以下2个问题:
1.客体重用问题存在于主体之间,只有在主体彻底释放了存储空间后,此空间才可能被***分配给其它主体。操作***中大多数存储客体的释放与分配一般采用“静态”的处理方式,即操作***以固定大小的块为单位(例如内存页面)进行存储空间的分配与释放。主体在申请存储空间时的大小并不固定,在申请空间时先查看主体已经占有的存储块中是否有足够的空间,若有则从中划分而不向***申请新的存储块;在释放时,如果同一存储块中还有其它内容则并不将存储块交还给***而继续占有。由此可见,当主体申请或释放某块存储区域不一定会触发操作***为其进行存储块的分配与释放。为此,在进行客体重用测试时,测试重用存储空间前必须确保以前的主体已经彻底地释放了目标存储空间。
2.在不同主体之间进行对比测试时,必须确保进行检查的是同一块存储区域,这就要求测试采用一个统一的绝对坐标体系。在操作***中,***被进行了抽象,用来标识存储空间的往往是一些逻辑坐标,例如内存虚拟地址等。在不同主体间,相同地址的存储空间往往指向不同的物理位置。在进行客体重用测试时,必须采用如内存物理地址一类的绝对坐标体系作为比对的基准。
目前,对于操作***客体重用的检测只有一般化的方法步骤指导,未见解决以上问题的明确技术手段的报道。
发明内容
为了克服现有的技术的不足,本发明提供一种基于绝对座标体系的操作***客体重用测试方法,包含进程用户空间内存客体重用检测方法和磁盘空间客体重用检测方法。
本发明解决其技术问题所采用的技术方案是:使用内存物理地址作为参照座标体系对是否存在进程用户内存区域客体重用现象进行检测;实现一个内核驱动程序,为测试程序提供输入输出接口,此驱动程序根据测试程序输入的内存虚拟地址查询内核页表中的相关项,进行转换计算后向测试程序输出虚拟地址对应的物理地址;磁盘空间客体重用测试采用穷尽的方式保证新文件获得的物理块包含有原文件的物理块。
进程用户空间内存客体重用检测方法将测试在同一块物理内存区域在被某个进程使用(写)过后再被分配给另一个进程时,后者不能从中获得前者的使用活动信息(读出前者写入的数据)。
磁盘空间客体重用检测方法将测试一块磁盘空间被某个文件使用并释放后分配给另一文件后是否可能包含有原文件的数据。
进程用户空间内存客体重用检测方法相应的测试过程步骤如下:
步骤1、***为进程A分配一块内存,在其中写入特征码,彻底释放此块内存;
步骤2、将进程A分配内存的虚拟地址转换成一个物理地址,将其传递给进程B;
步骤3、***根据物理地址为进程B分配同一块内存或原内存的一部分,进程B读出此区域进行特征码验证,若有相同部分表示存在客体重用;
磁盘空间客体重用检测方法相应的测试过程步骤如下:
步骤1、在一个空文件***中创建一个文件A,在其中写入特征码X直到充满整个文件***;
步骤2、删除文件A,创建文件B,在其中写入不同的特征码Y直到文件占有所有的文件***物理块,但在最后获得的物理块中不要写满;
步骤3、检查整个文件***的有效存储空间中是否存在文件A中的特征码X,若有则表明存在客体重用问题。
本发明的有益效果是:在进程用户空间内存客体重用测试中使用内存物理地址作为测试目标依据,可保障测试的准确,避免对不同内存区域进行客体重用测试;以驱动程序形式实现的物理地址计算可使得测试无须修改***内核代码即可进行。在磁盘空间客体重用检测中采用穷尽的方式可大大方便测试的进行,无须在文件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中的特征码,若有则表明存在客体重用问题。

Claims (1)

1.一种基于绝对座标体系的操作***客体重用测试方法,包含进程用户空间内存客体重用检测方法和磁盘空间客体重用检测方法,其特征是:使用内存物理地址作为参照座标体系对是否存在进程用户内存区域客体重用现象进行检测;实现一个内核驱动程序,为测试程序提供输入输出接口,此驱动程序根据测试程序输入的内存虚拟地址查询内核页表中的相关项,进行转换计算后向测试程序输出虚拟地址对应的物理地址;磁盘空间客体重用测试采用穷尽的方式保证新文件获得的物理块包含有原文件的物理块;
进程用户空间内存客体重用检测方法测试过程步骤如下:
步骤1、***为进程A分配一块内存,在其中写入特征码,彻底释放此块内存;
步骤2、将进程A分配内存的虚拟地址转换成一个物理地址将其传递给进程B;
步骤3、***根据物理地址为进程B分配同一块内存或原内存的一部分,进程B读出此区域进行特征码验证,若有相同部分表示存在客体重用现象;
磁盘空间客体重用检测方法的测试过程步骤如下:
步骤1、在一个空文件***中创建一个文件A,在其中写入特征码X直到充满整个文件***;
步骤2、删除文件A,创建文件B,在其中写入不同的特征码Y直到文件占有所有的文件***物理块,但在最后获得的物理块中不要写满;
步骤3、检查整个文件***的有效存储空间中是否存在文件A中的特征码X,若有则表明存在客体重用问题。
CNB2005101144241A 2005-10-25 2005-10-25 一种基于绝对座标体系的操作***客体重用测试方法 Expired - Fee Related CN100363905C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101144241A CN100363905C (zh) 2005-10-25 2005-10-25 一种基于绝对座标体系的操作***客体重用测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101144241A CN100363905C (zh) 2005-10-25 2005-10-25 一种基于绝对座标体系的操作***客体重用测试方法

Publications (2)

Publication Number Publication Date
CN1746863A CN1746863A (zh) 2006-03-15
CN100363905C true CN100363905C (zh) 2008-01-23

Family

ID=36166407

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101144241A Expired - Fee Related CN100363905C (zh) 2005-10-25 2005-10-25 一种基于绝对座标体系的操作***客体重用测试方法

Country Status (1)

Country Link
CN (1) CN100363905C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833496B (zh) * 2010-03-25 2011-12-14 北京邮电大学 基于硬盘的主机防客体重用性能的检测装置及其检测方法
CN102402472A (zh) * 2010-09-17 2012-04-04 鸿富锦精密工业(深圳)有限公司 内存检测***及其检测方法
CN102467509A (zh) * 2010-11-05 2012-05-23 中科正阳信息安全技术有限公司 一种基于穷尽搜索的操作***客体重用检验方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249231A (en) * 1992-05-04 1993-09-28 Motorola, Inc. Memory tagging for object reuse protection
CN1567254A (zh) * 2003-06-17 2005-01-19 深圳市中兴通讯股份有限公司南京分公司 嵌入式实时操作***高效可靠的内存保护方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249231A (en) * 1992-05-04 1993-09-28 Motorola, Inc. Memory tagging for object reuse protection
CN1567254A (zh) * 2003-06-17 2005-01-19 深圳市中兴通讯股份有限公司南京分公司 嵌入式实时操作***高效可靠的内存保护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Linux安全性能改进研究. 周昕,刘勇,沈熙,谢俊元.计算机工程,第27卷第10期. 2001 *
信息***中组件组合的安全评估问题研究. 闫强,段云所,唐礼勇,王声远,陈钟.计算机工程与应用,第2期. 2003 *

Also Published As

Publication number Publication date
CN1746863A (zh) 2006-03-15

Similar Documents

Publication Publication Date Title
US8453015B2 (en) Memory allocation for crash dump
US5560003A (en) System and hardware module for incremental real time garbage collection and memory management
US8176142B2 (en) Shared JAVA jar files
US20120005445A1 (en) Memory allocation with identification of requesting loadable kernel module
US7454547B1 (en) Data exchange between a runtime environment and a computer firmware in a multi-processor computing system
CN109582590B (zh) 存储器管理的***中的指针
US20200167140A1 (en) Automatic reference counting
US20050188164A1 (en) System and method for memory management
US10671548B2 (en) Memory initialization detection system
US20110161615A1 (en) Memory management device, memory management method, and memory management program
EP3830719B1 (en) Binary search procedure for control table stored in memory system
EP2504759A1 (en) Method and system for enabling access to functionality provided by resources outside of an operating system environment
CN110209354B (zh) 用于处理数据的方法、装置、设备和介质
CN100363905C (zh) 一种基于绝对座标体系的操作***客体重用测试方法
US7783849B2 (en) Using trusted user space pages as kernel data pages
CN114691532A (zh) 内存访问方法、内存地址分配方法及装置
US9286483B2 (en) Protecting visible data during computerized process usage
CN101055543B (zh) 用于访问另一个进程的进程本地存储装置的方法和设备
CN109725856B (zh) 一种共享节点管理方法、装置、电子设备及存储介质
US20090327666A1 (en) Method and system for hardware-based security of object references
US20060161601A1 (en) Heap manager and application programming interface support for managing versions of objects
Yang et al. A RISC-V On-chip Operating System Based on Rust
Bang et al. Enhancing a Lock-and-key Scheme with MTE to Mitigate Use-After-Frees
CN115729694A (zh) 一种资源管理的方法及相应装置
Xue et al. Memory errors prevention technology for C/C++ program based on probability

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: Qizhi Software (Beijing) Co., Ltd.

Assignor: Beijing Venus Information Technology Co., Ltd.

Contract fulfillment period: 2008.6.1 to 2013.12.31 contract change

Contract record no.: 2008110000100

Denomination of invention: Object reuse test of operation system based on absolute coordinate system

Granted publication date: 20080123

License type: Exclusive license

Record date: 2008.11.7

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2008.6.1 TO 2013.12.31; CHANGE OF CONTRACT

Name of requester: QIZHI SOFTWARE ( BEIJING ) CO., LTD.

Effective date: 20081107

C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: No 12, No. 188 South Main Street, Beijing, Haidian District, Zhongguancun

Patentee after: Beijing Venus Information Technology Co., Ltd.

Address before: No 12, No. 188 South Main Street, Beijing, Haidian District, Zhongguancun

Patentee before: Beijing Qiming Xingchen Information Technology Co., Ltd.

C56 Change in the name or address of the patentee

Owner name: BEIJING QIMINGXINGCHEN INFORMATION TECHNOLOGY CO.,

Free format text: FORMER NAME: BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY CO. LTD.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080123

Termination date: 20131025