操作系统客体重用安全的研究

2017-06-05 14:15黄益彬郑卫波宋子锋
计算机技术与发展 2017年5期
关键词:内核客体内存

黄益彬,郑卫波,宋子锋

(南瑞集团公司(国网电力科学研究院),江苏 南京 210003)

操作系统客体重用安全的研究

黄益彬,郑卫波,宋子锋

(南瑞集团公司(国网电力科学研究院),江苏 南京 210003)

内存、磁盘等客体资源在系统运行过程中会被不同主体反复使用,在客体资源被前一个主体释放,并分配给下一个主体时,前一个主体残留在客体中的信息就可能被下一个主体获取,从而造成信息泄露。针对安全操作系统面临的客体重用与剩余信息保护的要求,在分析研究操作系统中存在的客体重用安全风险的基础上,提出了在Linux操作系统中实现客体安全重用的方法。该方法在Linux内核层监视内存、磁盘操作,捕获内存页分配、磁盘空间释放等事件,并根据用户配置,对即将分配的内存页进行清零,对即将释放的磁盘空间进行安全擦除,从而保证客体在被重用前,客体中残留的信息得到有效清除。实验结果表明,该方法不仅透明地实现了客体安全重用,而且在性能上损失较小,不会影响系统的正常使用。

安全操作系统;客体重用;信息泄露;剩余信息保护;安全擦除

0 引 言

现代操作系统采用的都是多用户多任务的模式,操作系统统一管理所有的内存、磁盘文件等客体资源。当操作系统将上一个主体使用的客体资源释放后,分配给下一个主体使用时,如果不做任何处理,则上一个主体对客体资源操作残留的信息就可能被下一个主体获取,存在信息泄露的风险。

美国国防部1985年制定发布的TCSEC标准(Trusted Computer System Evaluation Criteria,可信计算机系统评价准则)[1]对客体安全重用的要求为:在重新分配包含一个或多个客体的介质(如页面、磁盘扇区、磁带)给主体时,为了达到安全分配的目的,这些介质中不能包含剩余信息。TCSEC将计算机安全从低到高分为四等七级:最低保护等级(D)、自主保护等级(C1、C2)、强制保护等级(B1、B2、B3)和验证保护等级(A1)。客体重用机制一直贯穿于TCSEC的C2级到A1级。1991年由欧洲四国(英、法、荷、德)制定的ITSEC标准(Information Technology Security Evaluation Criteria,信息技术安全评价准则)[2]以及后来欧美等国联合制定的CC标准(Common Criteria for IT Security Evaluation,信息技术安全评价通用准则)[3]都对客体安全重用提出了类似要求。

中国的国家标准GB 17859-1999《计算机信息系统安全保护等级划分准则》[4]对客体重用的要求为:在计算机信息系统可信计算基(Trusted Computing Base,TCB)的空闲存储客体空间中,对客体初始指定、分配或在分配一个主体之前,撤消该客体所含信息的所有授权。当主体获得对一个已被释放的客体的访问权时,当前主体不能获得原主体活动所产生的任何信息。

GB 17859-1999规定了计算机系统安全保护能力的五个等级,即:用户自主保护级(第一级),系统审计保护级(第二级),安全标记保护级(第三级),结构化保护级(第四级),访问验证保护级(第五级)。客体重用机制一直贯穿于GB 17859-1999的第二级到第五级。国标GB/T 20271-2006[5]和国标GB/T 20272-2006[6]对此也做出了类似要求。

可见,客体安全重用是高安全等级的计算机系统的基本要求。为此,在分析研究不同客体资源在重用过程中可能存在安全问题的基础上,针对Linux系统,提出了在系统底层实现客体安全重用的方法。通过实验,验证了该方法能够实现内存、磁盘等客体资源的安全重用,同时,该方法引入的性能损失很小,不影响系统的正常使用。

1 客体重用安全性分析

计算机系统中存在客体重用安全问题的资源主要包括寄存器、易失性存储器(如cache、内存)和非易失存储器(如磁盘、磁带等)。在系统中,这些客体资源一般都是多用户多进程共同使用的,因此,在资源重用的过程中,存在安全问题。

1.1 寄存器

当前的计算机体系结构中,寄存器是CPU的重要组成部分,CPU指令的获取、运算结果的存储、状态标识等,都离不开寄存器。寄存器记录着CPU当前运行任务的各种信息,在多用户多任务系统里,当进行任务切换时,CPU的部分或全部寄存器都需要为下一个任务所用,这就存在上一个任务在CPU寄存器中残留的信息被泄露给下一个任务的风险。

1.2 Cache

由于CPU的运行速度远远大于读写内存的速度,因此,现代的CPU都引入了cache,以期调和这种速度上的差异,提高系统效率。一般来说,cache都是集成在CPU内部的,cache在存取速度上比内存要快很多,但与CPU相比还是要慢一些,而且cache速度越快,价格就越高。为了在速度和价格上得到一个很好的平衡,现代CPU大多引入了多级cache,如L1 cache,L2 cache,甚至L3 cache。对于多核CPU而言,还存在着独立L2/L3 cache,共享L2/L3 cache等差异[7]。cache中存储的信息是从内存中读取的片段信息或者是修改后即将写入内存的信息。由于cache是系统共享的,因此,在多用户多任务系统中,CPU进行任务切换时也存在cache信息泄露的风险。

1.3 内 存

内存是计算机系统必不可少的组成部分,程序在运行前需要被装载到内存中,程序在运行过程中,需要使用内存。内存管理是操作系统的几大关键功能之一,系统频繁进行内存的分配/释放操作。内存的最大特点是掉电后信息丢失,但在系统运行过程中,内存显然是整个系统共享的,因此,当系统把上一个主体使用的内存分配给下一个主体使用时,上一个主体残留在内存中的信息存在被泄露给下一个主体的风险。

由于内存中保存着系统运行时的一些关键信息,如解密密钥、口令、进程信息、网络连接、系统状态信息等。因此,内存信息一直是计算机黑客觊觎的对象,与此同时,内存取证作为计算机取证科学的重要分支,得到了长足发展[8]。当然,实现内存客体的安全重用,以及近年来反取证技术的发展[9],对计算机黑客,也对内存取证提出了新的挑战。

1.4 磁 盘

现代计算机系统大多采用磁盘作为永久存储介质,由于掉电后存储在磁盘中的信息不会丢失,因此磁盘被用来存储那些需要永久保存的信息,如系统的镜像信息、各种配置信息、用户文件信息等。不论是传统的机械硬盘、可移除的USB移动硬盘,还是最新的SSD(Solid State Disk,固态硬盘),当系统回收上一个用户的文件存储空间,分配给下一个用户使用时,上一个用户遗留在文件中的信息都存在被泄露给下一个用户的风险。

由于目前各种主流的操作系统进行文件删除等操作时,仅仅删除文件的节点信息,使得操作系统对该文件不再可见。而实际上文件的内容信息仍然存在于磁盘上,直到内容区域所占用的磁盘空间被覆盖。因此出现了各种恢复已删除文件的方法[10-12]及工具软件。

为了应对文件恢复问题,出现了众多文件安全删除工具,如Windows系统中常见的文件粉碎机,Linux系统中常见的shred、srm等工具程序。国内的安胜安全操作系统V4.0采用的也是应用层安全删除程序的方式,同时增加了对敏感文件的过滤识别支持[13]。

对于磁带、磁盘等磁性存储介质,还可以通过消磁的方式对整个介质进行内容擦除。随着近年来flash等存储介质的使用,传统的消磁方法无法对flash介质进行消磁处理,文献[14]对不同介质提出了不同的处理参考方法。

2 Linux客体重用安全

作为当前最著名的开源操作系统,Linux在发展的过程中十分注重客体重用安全问题,试图在功能、性能和安全性之间找到一种平衡。下面主要介绍Linux在寄存器、cache、内存、磁盘等方面客体重用安全的实现情况。

2.1 Linux系统的寄存器、cache

Linux系统将整个地址空间分为内核地址空间和用户地址空间,操作系统内核运行在内核空间,用户程序运行在用户空间。用户空间的程序不能直接访问内核地址空间,只能通过系统调用进入内核地址空间。Linux通过划分不同地址空间的方式,保证了运行在内核地址空间的操作系统内核不会被用户空间的程序所破坏,从而保护系统的正常运行。

对于CPU寄存器和cache,都是由操作系统内核直接进行管理,用户空间的程序是无权进行管理的。Linux系统是以进程为单位进行任务调度的,在进行进程切换时,Linux系统会将CPU寄存器的值保存到当前进程的PCB(Process Control Block,进程控制块),然后选取一个新的待运行的进程,将其进程PCB中用来保存的CPU寄存器的值恢复到当前CPU寄存器中去,由于整个过程都是由操作系统内核在内核空间中完成的,因此就不存在CPU寄存器信息泄露的问题。而对于cache,则是由CPU硬件直接进行管理,用户空间的程序根本访问不到cache,因此也不存在cache信息泄露的问题。

2.2 Linux系统的内存

Linux通过内核空间、用户空间的划分,保证了操作系统内核和用户程序之间的内存地址空间隔离,同时,借助MMU(Memory Management Unit,内存管理单元),保证用户空间不同进程之间的隔离,防止用户空间进程非授权的内存地址访问。

Linux系统的内存是由操作系统内核进行统一管理的,在系统运行过程中,不断进行内存的分配与释放。分配给内核空间的内存释放后,可能被再分配给用户空间的进程使用,分配给用户空间进程A的内存被释放后,可能被再分配给用户空间的进程B使用。为了防止内存再分配过程中可能产生的剩余信息泄露问题,Linux系统采用了一些机制和方法。为了弄清楚Linux系统如何解决内存的客体重用安全问题,首先来了解一下Linux系统的内存管理机制。

2.2.1 Linux内存管理

图1为Linux 3.10内核的内存分配释放情况。

图1 Linux内存管理

Linux系统以页为单位,通过伙伴管理系统(采用伙伴算法)进行物理内存的管理。之所以选用伙伴管理系统进行物理内存页的管理,是为了既能够快速分配到所需的内存大小,又可以高效利用每一个物理页,减少内存碎片。

Linux内存页的分配释放,最终都会定位到__alloc_pages和__free_pages两个内核底层函数。Linux在分配物理内存时,采用的是延时分配策略,即分配内存时,并不分配实际的物理页,而是只划分相关大小的虚拟地址空间,等待需要使用内存时,才开始进行实际物理页的分配,而且会根据需要使用的内存大小逐步分配实际物理页。Linux的这种内存延时分配策略,虽然存在内存分配时成功,但使用时却可能发生内存不足的问题,但这种方式能够最大限度地提高实际物理内存的利用率,因此被Linux系统广泛采用。

通过SLAB系统,可以创建并使用个性化的内存对象,如内核中的ext4、xfs等文件系统,TCP、UDP等网络协议,进程描述符task_struct等都在SLAB系统上创建了个性化的内存对象。除了在SLAB系统上创建个性化的内存对象外,SLAB系统本身为内核空间创建了多个不同大小的公共内存对象,内核程序或内核模块可以通过kmalloc等相关函数直接调用。

2.2.2 用户空间内存客体重用

为了兼顾安全与效率,针对用户层程序,Linux在内存分配上引入了零页面(zero page)的概念。具体步骤如下:

(1)用户进程申请内存,通过系统调用进入内核。

(2)内核为用户进程划分相应大小的虚拟地址空间,建立好相关页表,同时将相关页表指向系统全局的只读零页面,并返回成功。

(3)如果用户进程只是需要读取新申请的内存信息,则返回零页面内存的信息,即全零信息。

(4)如果用户进程需要写新申请的内存信息,则触发缺页中断,此时系统会真正地分配部分或全部物理内存页,并对分配的物理内存页执行清零操作,同时更新页表信息,再从缺页中断中返回。之后才开始进行写内存操作。

由上面的步骤可知,Linux系统在分配实际的物理内存页给用户进程使用前,进行了内存清零操作,从而防止了内存剩余信息的泄露,同时也保持了与零页面内容的一致。

2.2.3 内核空间内存客体重用

对于内核层,Linux系统并没有强制保证内存客体的安全重用。由于Linux支持内核模块程序,内核模块共享整个内核空间,因此,对于安全操作系统,需要实现内核空间下的内存客体安全重用。

在内核层,对于小内存的使用,一般通过kmalloc及其相关函数向SLAB系统申请,申请到的内存既保证虚拟地址连续,又保证物理地址连续。对于大内存的使用,一般通过vmalloc及其相关函数直接向伙伴管理系统申请,申请到的内存能够保证虚拟地址连续,但不保证物理地址连续。

要保证内核空间的内存客体安全重用,防止内存剩余信息泄露,既可以在内存申请时强制进行清零,也可以在内存释放时强制进行清零。实际上,Linux系统提供了诸如kzalloc、vzalloc等内存申请函数,在申请到内存后进行了内存清零操作。为了强制保证Linux内核空间内存客体的安全重用,只需要参照kzalloc、vzalloc等函数,将kmalloc、vmalloc等相关函数进行安全改造,保证内核空间内存申请的几个相关函数在申请到内存后进行内存清零操作即可。

2.2.4 实 验

进行额外的内存清零操作后,会对内存申请带来一定的性能损失,但由于内存操作的速度很快,因此,性能损失很小。实验测试机器配置如下:CPU为Intel Core i5-2500,主频3.30 GHz,内存DDR3 1333,4 GB,操作系统内核版本为Linux 3.10。

为了精确地计算时间,采用获取CPU时间戳计数器的方法,再换算成时间。经过多次测试并取平均,计算结果如表1所示。

由表1可知,在申请不超过8 KB的内存时,其引入的延时是很小的,不超过5%,即使申请1 MB的内存,其引入的延时也不超过60 μs,对系统的运行不会产生影响。实际上,在申请128 KB以内的小内存时,所耗费的时间很少,以至于受系统随机波动等因素的影响,其申请时间并非随申请的内存大小而线性增长。

由表2可知,在通过vmalloc相关函数申请不超过64 KB的内存时,其引入的延时不超过10%。当然,vmalloc主要用于申请大内存,而安全改造后的vmalloc即使申请1 GB的内存,也只增加了三分之一左右的延时时间,不超过60 ms,这对系统的运行不会产生影响。

表1 kmalloc安全改造前后消耗时间对比

表2 vmalloc安全改造前后消耗时间对比

2.3 Linux系统的磁盘

现代操作系统都是通过文件系统,将磁盘抽象成文件进行读写的。Linux系统支持ext2/3/4、xfs、nfs、fat、ntfs等多种类型的文件系统,通过VFS(Virtual File System,虚拟文件系统)将具体的文件系统进行抽象,对上层应用提供统一的系统调用接口,如图2所示。

图2 Linux文件系统模型

虚拟文件系统将实际的文件系统抽象成两个重要的信息:目录信息与节点信息。目录信息存储该目录下的文件及子目录的名称、节点号等,通过目录信息实现文件的搜索遍历;节点信息存储文件的属性、文件内容所占用的block号等,通过节点信息实现文件内容的读写。

出于性能的考虑,Linux系统在删除文件时,仅仅删除与文件相关的节点信息,回收文件内容所占用的block号,而真正的文件内容并没有被删除,很容易通过各种文件恢复软件进行恢复。这对于安全等级要求高的应用场合是不可接受的。因此,高安全等级的操作系统必须实现文件客体的安全重用。

2.3.1 实现思路

高安全等级的操作系统在对文件进行删除时,必须进行安全擦除。文件的安全擦除主要有两种方式:

(1)手动擦除文件:一般提供安全删除文件的工具程序。这种方式需要用户深度参与,安全性严重依赖于用户行为,用户工作量大,漏删可能性高,不能满足高安全等级的应用场景。

(2)自动擦除文件:一般通过监视文件删除的过程,在删除时自动进行文件内容的擦除。

这里考虑采用自动擦除文件的方法。

2.3.2 文件擦除方式

要彻底删除文件数据,需要把待删除文件所在的数据区完全覆盖,一般来说,进行一次完全覆盖后,数据恢复软件无法再恢复数据。覆盖方式可以采用全0覆盖、全1覆盖和随机数覆盖。

对于硬盘这种采用磁介质来记录数据的介质,由于有剩磁存在,通过特殊的数据恢复设备,仍然存在恢复被覆盖数据的可能。而对于安全等级要求特别高的场合,一般需要组合使用各种覆盖方式进行多次覆盖。美国国防部的DoD 5220.22-M操作手册中建议使用全写“0”,全写“1”,加一次随机数,共3次覆写。Gutmann标准使用35次覆写,前4次采用随机数覆写,中间27次使用不同的指定内容进行覆写,最后4次再采用随机数覆写。

为了满足不同安全级别场景下对文件覆写的不同要求,增加文件覆写的灵活性,此处设计了一种可配置的文件安全擦除规则,包括:

(1)待擦除文件的最小长度,默认为1。

(2)待擦除文件的最大长度,默认为-1,即不限制。

(3)待擦除文件的最小敏感等级,范围为s0~s15,默认为s0,即所有。

(4)文件覆写方式,支持全0覆写、全1覆写和随机覆写这三种方式的组合,每一个覆写项以覆写模式+覆写次数形式表示,多个覆写项之间以空格进行间隔,覆写模式定义为:0表示全0覆写,1表示全1覆写,r表示随机覆写。文件覆写方式的默认值为“01”,即全0覆写1次。

整个文件覆写方式示例如下:

例如“01 11 r2 01”表示全0覆写1次,全1覆写1次,随机覆写2次,再全0覆写1次,一共进行了5次覆写。

文件安全擦除规则通过sysfs接口导出,管理员用户可以通过此接口对整个系统的文件安全擦除规则进行动态配置。

2.3.3 Linux文件擦除方法

Linux用户层程序对文件进行操作时,都需要通过系统调用进行,因此,通过检测并改造相关的系统调用函数,可以实现文件客体安全重用。

1)文件客体重用情况。

Linux系统的文件客体重用分为以下几种情况:

(1)文件删除。

文件删除包括文件即时删除和文件延时删除。当删除文件时,如果该文件没有被其他进程打开,则该文件可以即时删除,而如果该文件正在被其他进程打开使用,则该文件的删除将被延时到最后一个使用该文件的进程关闭该文件或者异常退出时。

(2)文件截断。

文件截断包括文件直接截断和文件打开截断。文件直接截断发生在进程主动调用文件截断及其相关变形的系统调用时,文件打开截断发生在以截断方式打开一个已经存在的文件时。

2)实现方式。

Linux通过VFS对外提供统一的接口,由于各个文件系统的差异,最终对文件的操作是由VFS调用实际的文件系统方法实现的。因此,文件的安全删除,既可以在VFS层实现,也可以在具体的文件系统里实现。显然,在VFS层实现比在各个文件系统里单独实现要简单、通用性好。因此,这里采用在VFS层实现对文件的安全删除。

2.3.4 具体实现

Linux系统里一切皆文件,除了普通文件外,还有设备文件、管道文件、socket文件等,这里主要研究普通文件。

1)文件删除分析。

Linux用户层程序删除文件时,最终会调用unlink系统进入内核,内核进行一定的逻辑判断,确定是否需要删除该文件。如果确认需要删除文件,则进行删除操作。在进行文件删除时,存在以下两种情况:

(1)文件即时删除:该文件没有被打开使用,则进行即时删除操作。

(2)文件延时删除:该文件正在被打开使用,则将文件的硬连接数从1变成0。文件的删除将发生在最后一个打开使用该文件的进程关闭该文件或者异常退出时。

Linux内核层也可以进行文件删除操作,其最终的调用方法与用户层程序通过系统调用进入内核后的方法相同。

由以上分析可知,对于文件删除操作,只需要监控文件即时删除和文件延时删除两种情况发生的点,在文件删除操作发生前对文件内容区域进行覆写即可。

2)文件截断分析。

Linux系统中的文件截断分为两种情况:

(1)文件直接截断:此情况发生在用户层程序通过truncate系统调用将文件变短时。

(2)文件打开截断:此情况发生在用户层程序通过O_TRUNC方式打开或创建一个已经存在的文件时。

Linux内核层也可以进行文件截断操作,其最终的调用方法与用户层程序通过系统调用进入内核后的方法相同。

由以上分析可知,对于文件截断操作,只需要监控文件直接截断和文件打开截断两种情况发生的点,在文件截断发生前对文件截断的内容区域进行覆写即可。

3)文件描述符获取。

在Linux的VFS层进行文件内容覆写操作,通过文件描述符对文件进行写操作最简单,而文件写操作需要文件描述符。

对于文件延时删除和文件打开截断,可以利用上层调用者传递下来的文件描述符进行文件写操作。而对于文件即时删除和文件直接截断,上层调用者并没有也不需要传递文件描述符,因此需要主动打开该文件,获取到文件描述符,再进行文件写操作。

4)具体实现流程。

通过在Linux内核VFS中与文件客体安全重用相关的三类函数中调用判定逻辑,判断是否需要进行文件安全擦除。以Linux 3.10内核为例,这三类函数分别为:do_unlinkat函数(对应文件即时删除)、__fput函数(对应文件延时删除)、vfs_truncate函数/do_sys_ftruncate函数(对应文件直接截断和文件打开截断)。

图3为修改后的Linux文件客体安全重用流程图,具体步骤为:

图3 Linux文件客体安全重用流程图

(1)监控Linux内核中的do_unlinkat、__fput、vfs_truncate及do_sys_ftruncate函数。

(2)根据文件节点信息及上下文判断是否需要删除文件或截断文件。如果不需要,则结束。

(3)根据文件安全擦除规则,判断是否需要进行文件安全擦除。如果不需要,则结束。

(4)判断是否有该文件的文件操作句柄,如果没有,则根据文件节点信息,临时打开该文件来获得文件操作句柄。

(5)调用文件安全擦除方法,安全擦除该文件。

(6)如果临时打开该文件,则关闭文件操作句柄。

(7)该过程结束。

2.3.5 实验测试

在实验测试时,采用全零覆写一遍的方式进行测试。

为了检测安全擦除文件是否生效,可以在安全擦除文件之前,通过系统提供的一些命令查看并记录下文件内容区域对应的磁盘block区域,在文件擦除之后,通过dd等命令直接读取记录的磁盘block区域,看看其内容是否全为零。经实验验证,在各种情况下,均能够安全擦除文件的内容。

传统的文件删除、文件截断操作由于只是操作文件节点信息,因此速度很快。引入安全擦除文件的方法后,在文件删除、文件截断时,需要对文件内容区域进行覆写,会带来一定的性能损失。表3为分别采用SSD硬盘和普通机械硬盘对不同大小的文件进行安全擦除所消耗时间的测试结果。

表3 文件安全擦除消耗时间

由表3可知,对于小文件,引入的时间消耗在一秒以下,由于操作系统本身操作的都是一些小文件,因此不影响系统运行。而对于较大文件,则会带来秒级以上的延时,同时可以看出,相对于机械硬盘,SSD硬盘的速度要快得多,因此对于需要频繁操作大文件的应用场景,建议使用SSD硬盘。

3 结束语

为满足安全操作系统针对客体安全重用的基本要求,在分析研究Linux操作系统在客体重用时存在的安全问题基础上,提出了在Linux内核层实现客体安全重用的方法。该方法对用户透明,能够在操作系统底层自动实现客体资源的安全重用。同时,在文件擦除方式上实现了可配置化,满足了不同应用场景的差异化安全需求。通过实验分析,验证了该方法能够实现Linux系统下内存、磁盘等客体资源的安全重用,且不会影响系统的正常使用。

[1] National Computer Security Center. Department of defense trusted computer system evaluation criteria[S].[s.l.]:National Computer Security Center,1985.

[2] Office for Official Publications of the European Communities.Information Technology Security Evaluation Criteria(ITSEC)V1.2[EB/OL].[2015-12-12].http://iwar.org.uk/comsec/resources/standards/itsec.htm.

[3] Common Criteria Project Sponsoring Organizations.Common criteria for information security evaluation part 2:security functional requirements,version 2.1[S].[s.l.]:[s.n.],1999.

[4] 国家质量技术监督局.计算机信息系统安全保护等级划分准则[S].北京:中国标准出版社,1999.

[5] 中华人民共和国国家质量监督检验检疫总局/中国国家标准化管理委员会.信息安全技术信息系统通用安全技术要求[S].北京:中国标准出版社,2006.

[6] 中华人民共和国国家质量监督检验检疫总局/中国国家标准化管理委员会.信息安全技术操作系统安全技术要求[S].北京:中国标准出版社,2006.

[7] 贾小敏,张民选,齐树波,等.片上多核Cache资源管理机制研究[J].计算机科学,2011,38(1):295-301.

[8] 张 瑜,刘庆中,李 涛,等.内存取证研究与进展[J].软件学报,2015,26(5):1151-1172.

[9] Stuttgen J,Cohen M.Anti-forensic resilient memory acquisition[J].Digital Investigation,2013,10:105-115.

[10] 赵双峰,费金龙,刘 楠,等.Windows NTFS下数据恢复的研究与实现[J].计算机工程与设计,2008,29(2):306-308.

[11] 沈长达,吴少华,钱镜洁,等.ReiserFS删除文件的恢复技术研究[J].信息网络安全,2015(9):262-265.

[12] 李 岩.计算机取证中关键技术研究[D].上海:上海交通大学,2010.

[13] 沈晴霓,卿斯汉.操作系统安全设计[M].北京:机械工业出版社,2013:227-229.

[14] National Institute of Standards and Technology.NIST SP800-88 revision 1:guidelines for media sanitization[S].[s.l.]:NIST,2014.

Investigation on Object Reuse Security in Operating System

HUANG Yi-bin,ZHENG Wei-bo,SONG Zi-feng

(NARI Group Corporation(State Grid Electric Power Research Institute),Nanjing 210003,China)

Object resources,such as memory and disk,could be repeatedly used by different subject when system running.When object resources are released by previous subject and allocated for next subject,the residual information in the object by previous subject will be possibly acquired by next subject,which can cause information leakage.For the requirement of object reuse and residual information protection in secure Operating System (OS),analysis on the potential security risks while object reusing in OS have been conducted and a secure object reuse method with Linux OS has been presented.By monitoring memory page and disk space operation in Linux kernel,the events of memory page allocation and disk space release would be captured,and then allocated memory page would be zeroed and released disk space would be securely erased based on user configuration,which can ensure that residual information in object has certainly been cleared before object reuse.Test results verify that this method not only transparently implements secure object reuse,but also has little performance loss.So it does not affect normal system usage when using this method.

secure OS;object reuse;information leakage;residual information protection;secure erase

2016-06-27

2016-10-13 网络出版时间:2017-03-07

江苏省工业和信息产业转型升级专项项目(2015SJXKJ5038);国网电力科学研究计划(5246DR150002)

黄益彬(1982-),男,高级工程师,硕士,研究方向为系统安全、网络安全、工控安全。

http://kns.cnki.net/kcms/detail/61.1450.TP.20170307.0922.090.html

TP309.2

A

1673-629X(2017)05-0113-07

10.3969/j.issn.1673-629X.2017.05.024

猜你喜欢
内核客体内存
社会公正分配客体维度与道德情绪的双向互动
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
浅议犯罪客体
浅议犯罪客体
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
微软发布新Edge浏览器预览版下载换装Chrome内核
浅谈知识产权客体