安全操作系统中防止文件客体重用的方法技术方案

技术编号:7843820 阅读:518 留言:0更新日期:2012-10-13 02:12
一种安全操作系统中防止文件客体重用的方法,主要包括:对文件的使用计数fcount进行系统调用的步骤;对unlink操作的步骤;对close操作的步骤;对_exit操作的步骤;对open操作的步骤;以及为上述各类操作提供互斥锁机制的文件操作锁的操作步骤。采用本发明专利技术的防止文件客体重用的实现方法,应用获取文件计数的fcount系统调用以及在应用程序调用防止客体重用功能模块时,删除客体对各种场景的分析并不留下能够被旁路的路径,使该防止客体重用功能模块能够显著改善系统运行的性能,使其在删除客体时不再阻塞其他的进程,同时也能够避免在防止文件客体重用时引起的信息泄露。

【技术实现步骤摘要】

本专利技术涉及安全操作系统(OS)设计领域,尤其涉及一种。
技术介绍
操作系统中的客体重用,是指客体在被释放(或删除)时,仅仅释放该客体在文件系统中的索引,而所占用的磁盘块中的内容并未清空。当创建新的客体时,有可能利用到以前客体中的内容,例如磁盘块,从而造成信息泄漏。所述客体,具体指磁盘文件,即存储在可擦写介质上(一般为磁盘)上的具有索引结构的文件系统上的文件,也包括一部分内存中的文件系统,如ramfs、ramdisk上的文件系统等。客体的重用是使用索引文件系统的操作系统中典型的安全漏洞之一,由于索引文件系统的固有结构,为了性能需要,客体的创建和删除一般仅仅更新索引项,这就造成了客体内容可能复用的问题。例如=Linux操作系统,出于性能的考虑,对于资源的管理采用即时分配和丢弃方式,通过指针、掩码等方式表示资源的分配情况,而不是将资源真正的分配和回收。以磁盘文件为例,在安全操作系统所支持的ext3文件系统上,文件是以i节点存储的,每个i节点指示了该文件所有的磁盘块;而i节点和磁盘块均是以掩码方式标识该块的使用情况。当用户删除文件时,只是将相应的i节点掩码和磁盘块掩码去掉,而该文件的内容仍然还存储在磁盘块上,该磁盘块并不会被清空。因此当其他用户创建一个新的文件时,这些磁盘块有可能被分配到该文件,用户读取该文件时,就可能读到原来的文件中的部分内容,即发生了信息泄漏。操作系统中除了磁盘文件外,还有其他客体,如动态内存、IPC 对象等,由于频繁的分配和回收机制并不改变其内容,因此也会造成信息泄漏。其中最重要的客体是磁盘文件。由于多任务操作系统中对文件的操作涉及到的场景比较复杂,涉及一个进程多次打开文件、多个进程打开一个文件、硬链接等各种各样的场景,而不能仅仅由删除客体的发起者做简单的清空,因此解决客体重用的方法一般都是在程序做文件删除的系统调用时, 由操作系统内核将文件内容清空,以保证该操作的原子性,而不会造成用户态程序的同步问题。在现有的操作系统内核中,执行删除的系统调用前将文件清空的做法比较简单, 保证清空和删除这两个操作的原子性,不会影响到其他进程访问该文件产生的异常行为。 但是,由于输入/输出(I/o)系统调用的不可重入性,在这两个操作完成前,内核无法返回用户态,当前处理器上的其他所有进程均会阻塞,从而严重的影响性能。尤其是在删除较大的文件时,将导致操作系统停止响应等严重问题。因此,从这个意义上讲,恶意的大文件删除操作导致系统性能降低也是一种攻击。
技术实现思路
有鉴于此,本专利技术所要解决的技术问题在于提供一种,以解决现有的防止客体重用技术中的性能缺陷(如由于内核的工作过于集中导致防止客体重用策略失效等),通过将大量操作系统内核的工作转移到用户态程序,并通过设计严格的同步机制,使多任务环境下不会产生同步问题,以改善系统运行的性能和避免在防止文件客体重用时引起的信息泄露。为解决上述技术问题,本专利技术一方面提供了一种,其特征在于,当应用程序需要删除文件客体时,首先所述应用程序通过fcount 系统调用从系统内核获取所述需要被删除文件客体的引用计数;当引用计数为O时,文件操作系统调用对该文件客体设置互斥机制,并将被删除文件客体内容清空。进一步,本专利技术所述的,其特征在于获取所述需要被删除文件客体的引用计数的方式为通过路径获取对应文件客体的引用计数或者通过文件描述符获取对应的文件客体的引用计数。进一步,本专利技术所述的,其特征在于,所述fcount系统调用包括两个操作常量FC0P_FD和FC0P_PATH ;其中,对于获取一个路径名表示的文件客体,要获得其引用计数,则传入FC0P_PATH和相应的路径;对于获取一个文件描述符对应的文件客体,则通过传入FC0P_FD和文件描述符得到其引用计数。进一步,本专利技术所述的,其特征在于,所述文件操作系统调用为unlink操作。 进一步,本专利技术所述的,其特征在于,所述文件操作系统调用为close操作。进一步,本专利技术所述的,其特征在于,所述文件操作系统调用为_exit操作。进一步,本专利技术所述的,其特征在于,所述将被删除文件客体内容清空的方式为将文件客体所占用的磁盘空间内容填写为零。进一步,本专利技术所述的,其特征在于,所述互斥机制为互斥锁机制,所述互斥锁机制由文件操作锁提供,所述文件操作锁由文件操作系统调用提供。进一步,本专利技术所述的,其特征在于所述文件操作锁包括加锁操作、解锁操作和等待锁操作其中,执行所述加锁操作后,任何对该锁的等待都会被阻塞;执行所述解锁操作后,将文件锁解除,任何对该锁的等待不会发生阻塞,并立即返回;执行所述等待锁操作,尝试等待一个锁,其操作结果是阻塞或返回。本专利技术所提供的,具有以下优点本专利技术的防止文件客体重用的方法中,应用获取文件计数的fcount系统调用、以及在应用程序调用防止客体重用功能模块时删除客体对各种场景的分析并不留能够旁路的路径,使该防止客体重用功能模块能够显著改善系统运行的性能,使其在删除客体时不再阻塞其他的进程,同时也避免了在防止文件客体重用时引起的信息泄露。附图说明图I为实现本专利技术所述的安全操作系统中防止文件客体重用方法的结构示意图;图2为实现本专利技术所述的安全操作系统中防止文件客体重用方法的各功能模块的详细结构示意图3为本专利技术所述的安全操作系统中防止文件客体重用方法中unlink操作流程示意图4为本专利技术所述的安全操作系统中防止文件客体重用方法中的close操作流程示意图5为本专利技术所述的安全操作系统中防止文件客体重用方法中的_exit操作流程示意图6为本专利技术所述的安全操作系统中防止文件客体重用方法中的open操作流程示意图。具体实施例方式下面结合附图及本专利技术的实施例对本专利技术的方法作进一步详细的说明。关于防止文件客体重用,在国标GB/T 20272的4. 4. I. 8. a中的规定如下应确保动态分配与管理的资源,在保持信息安全的情况下被再利用,主要包括一、确保非授权用户不能查找使用后返还系统的记录介质中的信息内容;二、确保非授权用户不能查找系统现已分配给他的记录介质中以前的信息内容;有的文件客体在其他主体使用后返还给系统时,还保留有原来的信息,标准中规定了当介质返还给系统后,即使该用户拥有了所有权,也不能获得该对象以前的信息。图I为实现本专利技术所述的安全操作系统中防止文件客体重用方法的结构示意图; 如图I所示,当应用(用户)程序使用磁盘文件、内存等文件客体时,需要通过系统调用向内核发出请求,由于频繁的请求,内核陷入核心态(特权态)后再返回用户态会造成系统性能的大幅降低,因此一般只需要让内核实现一些比较简单、独立的工作,剩下的部分则由用户态的库,一般是由GNU C (GNU C Library,又称Glibc)库来完成。Glibc全称为GNU C library是GNU下的C语言标准库。本专利技术的防止文件客体重用的设计也沿用该方式,在不对性能造成较大影响的前提下,实现防止文件客体的内容被重用的功能,具体是要求尽可能的在用户程序和用户态的C标准库的层面上实现,但仍然需要在系统内核的协助下获取一些信息,而带来的问题就是用户态的程序可以轻易的旁路掉文件客体重用的功能。因此,也需要在内核中实现一部分防止文件客体内容被重用的功能。由于标准库,尤其是C标准库,在安本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安全操作系统中防止文件客体重用的方法,其特征在于,当应用程序需要删除文件客体时,首先所述应用程序通过fcount系统调用从系统内核获取所述需要被删除文件客体的引用计数;当引用计数为0时,文件操作系统调用对该文件客体设置互斥机制,并将被删除文件客体内容清空。2.根据权利要求I所述的安全操作系统中防止文件客体重用的方法,其特征在于获取所述需要被删除文件客体的引用计数的方式为通过路径获取对应文件客体的引用计数或者通过文件描述符获取对应的文件客体的引用计数。3.根据权利要求I或2所述的安全操作系统中防止文件客体重用的方法,其特征在于,所述fcount系统调用包括两个操作常量FC0P_FD和FC0P_PATH ;其中,对于获取一个路径名表示的文件客体,要获得其引用计数,则传入FC0P_PATH和相应的路径;对于获取一个文件描述符对应的文件客体,则通过传入FC0P_FD和文件描述符得到其引用计数。4.根据权利要求I所述的安全操作系统中防止文件客体重用的方法,其特征在于,所 述文件操作系统调用...

【专利技术属性】
技术研发人员:刘燕龚文王戍靖郎金刚武术周启明刘冬梅
申请(专利权)人:中科方德软件有限公司中国科学院软件研究所
类型:发明
国别省市:

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

1