更新时间:2022-08-25 13:15
生成临时文件是创建新文件时,创建临时包含信息的文件,它可以由计算机程序为各种目的创建或生成。可以由计算机软件在下列情况下产生的:不能分配足够的内存空间;处理的数据比自身地址空间要大;进程内的通信等。例如微软WORD文档编辑软件在系统临时目录产生临时文件来缓存未/被编辑部分的文档内容。
在计算机系统中,文件是指存储在外部存储介质上的、由文件名标识的一组相关信息的集合。例如一个路程序、一批数据、各类语言的编译程序等都可以各自组成一个文件。在文件管理中,按照保存期限可以分为临时文件和永久文件。生成临时文件,也可以称之为创建临时文件是指创建新文件时,生成临时包含信息的文件。临时文件主要是由系统和用户程序为各种目的而生成的。例如一些软件为了提 高 文 档 编 辑 的 可 靠 性 而 产 生 临 时 文 件,如UltraEdit软件打开编辑文档前会产生被编辑文件的副本作为编辑对象, 保存时才将修改内容提交到原文件。
在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系统的目录中,为之建立一个目录项。目录项中应记录新文件的文件名及其在外存的地址等属性。一般会包括以下一些常见属性:
(1)文件名称:是供用户使用的外部标识,也是文件最基本的属性。文件名称通常由一串ASCII码或者汉字构成,现在常常由Unicode字符串组成。
(2)文件物理位置:具体标明文件在存储介质上所存放的物理位置。
(3)文件拥有者:操作系统通常是多用户的,不同的用户拥有各自不同的文件,对这些文件的操作权限也不同。通常文件创建者对自己所建的文件拥有一切权限,而对其他用户所建的文件则拥有有限的权限。
(4)文件权限:通过文件权限,文件拥有者可以为自己的文件赋予各种权限。如可允许自己读写和执行,允许同组的用户读写而只允许其他用户读。
(5)文件类型:可以从不同的角度来对文件进行分类,例如普通文件、设备文件、可执行文件或者文本文件,等等。
(6)文件长度:文件长度通常是其数据的长度。长度单位通常是字节。
(7)文件时间:文件时间有很多,如最初创建时间、最后一次的修改时间、最后—执行时间、最后一次的该时间等。
一些程序创建临时文件,然后将其留下 - 它们不会删除它们。这可能是因为程序崩溃或程序的开发人员忘记添加在程序完成之后删除临时文件所需的代码。留下的临时文件可能会随着时间的推移而累积,并占用大量的磁盘空间。
临时文件可能会手动删除。操作系统可能在重新启动时清除临时目录,并且它们可能具有“更干净”的脚本,以便在一段时间内未被访问的情况下删除文件。而且,基于内存的系统(如tmpfs)固然不会在重新启动时保留文件。
对于文档保护来说, 临时文件的产生是软件实现其功能所必需的, 但由于这些临时文件通常都位于文件保护区域之外, 其残留的文件或者磁盘上的存储痕迹都可能成为数据泄漏的重要通道。 因此如何在确保软件可用性的前提下防止临时文件造成的数据泄漏, 是当前必须解决的关键问题。许多学者提出了不同解决方法:如Shaffer等人通过对程序行为的分析, 基于安全域模型使用形式化方法对软件源代码进行分析验证, 以检测出可能导致泄漏的操作。谢钧等人提出的多保护域进程模型在系统内核层对进程执行环境进行隔离, 通过进程不同的执行阶段与保护域标记相关联, 在进程执行过程中对不同保护域的数据和代码进行访问控制, 增强进程安全性。赵勇等人提出的内网安全体系结构通过密码隔离机制在物理的企业内网中构建一个虚拟的逻辑涉密网络, 确保进程将企业敏感信息写往网络、 移动存储设备或打印机时对信息进行了加密, 从而达到敏感信息密码隔离的目的。
本文基于隔离临时文件的单向隔离思想重点考虑软件运行中产生临时文件可能造成的数据泄漏威胁,通过对临时文件的动态隔离,在Windows系统平台下实现了一个动态隔离文件系统(dynamic isolation file system)。在DIFS中通过监控进程与保护文件之间的动态关联,将关联到保护文件的进程产生的临时文件动态重定向到保护区域中,防止由临时文件导致的数据泄漏。
本文研究的临时文件,主要是进程在运行过程中产生的与本次运行过程相关的中间文件。这些文件在系统下次运行时将不再使用. 例如使用WORD程序在打开DOC文档时,会在系统临时文件目录下产生编辑内容的临时文件, 使用UltraEdit打开文件时会在临时文件目录下产生打开文件的副本。
在Windows系统中,对于比较固定的系统临时文件目录,可以通过修改系统参数将其定位到指定的保护磁盘中, 这可以看成是对临时文件的静态隔离。但这种方式设置的目录相对固定,而且是全局性的,系统中所有进程都使用相同的设置, 因此不能满足多个保护磁盘以及动态保护策略的需求。本文使用的动态隔离机制是根据当前进程正在使用的保护磁盘的数据保护预期,将该进程产生的临时文件动态重定向到与保护数据相同的安全域中,防止保护数据对应的临时文件内容泄漏到保护磁盘以外。
本文针对通用文档编辑软件在运行过程中产生的临时文件可能导致敏感文件数据泄漏的问题,通过构建 DIFS将可能导致数据泄漏的临时文件动态重定向到保护卷中,从而可以有效防止因临时文件导致的数据泄漏。DIFS的动态隔离是在系统内核层实现, 对上层应用透明,因此也不影响现有程序的正常运行。实际系统测试说明空间和时间开销都在可以接受的范围内。这种动态隔离可以有效应用于移动存储设备中文档的泄漏防护。