(计算机系统结构专业论文)存储介质中敏感信息保护系统的设计与实现.pdf_第1页
(计算机系统结构专业论文)存储介质中敏感信息保护系统的设计与实现.pdf_第2页
(计算机系统结构专业论文)存储介质中敏感信息保护系统的设计与实现.pdf_第3页
(计算机系统结构专业论文)存储介质中敏感信息保护系统的设计与实现.pdf_第4页
(计算机系统结构专业论文)存储介质中敏感信息保护系统的设计与实现.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 摘摘 要要 当今社会信息技术飞速发展,计算机被应用于生产和生活的各个领域。计算机 存储设备中的一些敏感信息的安全,不仅影响计算机的稳定运行,而且会危害计算 机用户的利益。因此研究计算机中敏感信息的保护方法显得十分必要。 提出了一个保护计算机中敏感信息的方法,设计并实现了一个能够拦截输入/输 出管理器发送给磁盘驱动的输入/输出请求包的敏感信息保护系统 sips(sensitive information protection system),该系统能够分析并重定向读写磁盘重要区域的输入/ 输出请求包。围绕敏感信息保护系统的设计目标和设计原则,阐明了敏感信息保护 系统的总体结构和各个功能模块的设计思想。 探讨了 windows 输入/输出系统的工作 原理和驱动程序的分层结构并深入分析了 windows 操作系统包驱动模式处理输入/ 输出请求的流程。说明了敏感信息保护系统的模块设计思路和工作实现流程。对驱 动程序的设计进行了论述。 敏感信息保护系统利用 windows 设备驱动的方式取得内核模式执行权,根据 windows 输入/输出系统的工作原理,加载过滤驱动到磁盘驱动设备栈中拦截输入/ 输出管理器发送给磁盘驱动的输入/输出请求包,并将对重要区域的读写请求重定向 到用户指定的安全区域,实现对敏感信息的保护。 在敏感信息保护系统总体设计的基础上,重点阐述了其中关键技术的实现途径, 包括加载设备驱动、利用磁盘设备过滤驱动拦截输入/输出管理器发送给磁盘设备驱 动的输入/输出请求包、重定向对重要区域的读写请求、完成输入/输出请求等。 实际运行结果表明,敏感信息保护系统可以重定向操作系统对重要区域的读写 请求达到保护敏感信息的目的。 关键词:关键词:敏感信息,重定向,过滤驱动,输入输出拦截 ii 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 abstract today,as the development of information technology,computers are widely used in various domain of fabrication and lives. computers security and stability could be broken if some sensitive information in storage media of computer were changed. so a protection system of that sensitive information is necessary and useful. according to the relative information, a method of protecting the sensitive information has been brought forward. based on the theory, a sips which can intercept the irp (i/o(input/output) request packet) sanded from i/o manager to disk driver has been developed, and the sips also can redirect the aim sectors of the irp which is defined as dangerous. in the thesis the overall structure and the design purpose of function moulds of sips has been stated; the windows i/o systems structure and working principles has been dissertated; the design idea and work processes of sipss modules have been showed; and the driver complies method of windows system has been dissertated. sips uses the device driver to enter the kernel of the windows system. sips intercepts and redirects the irp that send from i/o manager to disk driver to achieve the purpose of protecting the sensitive information. based on the overall design principles, it claims the methods of realizing the systems function and shows the key technologies. those methods and technologies include driver loading, irp intercepting, irp redirecting et al. the result of actual operating shows sips can redirect the request of reading/writing the sensitive sectors. the sips achieves the purpose of protecting the sensitive information. key words: sensitive information, redirect, filter driver, i/o request packet interception 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集 体, 均已在文中以明确方式标明。 本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和 借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密, 在 年解密后适用本授权书。 不保密。 (请在以上方框内打“”) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 1 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 1 绪论绪论 1.1 研究背景研究背景 现代社会正融入信息时代的洪流,各种数据充斥着人类的生活。随着计算机和 计算机网络的发展和普及, 电子数据1正飞快地取代纸张成为信息储存和交流的主要 媒质。 电子数据作为新兴的信息载体有其不可替代的优势:它方便存储,成千上万本 书籍现在只需要一个 u 盘就可以装进口袋随身携带;它易于查阅,搜索的功能为我 们节约了大量时间;它便于交流,博客、社区、论坛各类网站都是信息交互的平台, 人们可以通过这些信息交流平台吸取知识了解实事结交朋友;它快速敏捷,身处一 隅却能洞悉全球,各类新闻总能在第一时间被传递到网络上。 以上是电子数据作为文字载体的一些好处,可以称为纸的升级。然而电子数据 还有全新的用途计算机软件。计算机软件是运行在计算中的一系列代码和数据 的组合,但在计算机中也算是一种数据。不同于文本数据,计算机软件拥有在计算 机中的执行权,利用计算机软件可以高效快捷地工作,也可以完成许多复杂地计算 等等。 总而言之,电子数据的应用对当今社会的快速发展提供了大量积极的帮助。但 是,电子数据就像一把双刃剑,在带来巨大利益的同时也带来了前所未有的挑战。 随着计算机技术的不断发展,也孕育了一种新兴的犯罪形式网络犯罪2,3,不 法分子将计算机用作犯罪的工具窃取目标机器中的重要数据,比如:银行账号、重 要资料、科技文档等。这些犯罪小则使个人利益受损,大则能威胁到国家的安全与 稳定。而且这些年网络犯罪日益猖獗,已经到了人人自危的地步,前些日子爆发的 sinowal 事件就是一个很好的教训。 另外计算机中还存在另一种类型的敏感信息,这些信息影响到计算机的正常运 行。一些恶意程序通过修改计算机中的这类敏感信息将自身的代码植入到计算机中 的重要区域之中为自身的运行打下基础。如操作系统的主引导记录(mbr),mbr 在 2 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 计算机起动后由 bios 读入内存执行负责引导操作系统的启动,在 mbr 运行时操作 系统还没启动更别说基于操作系统的保护软件了,这个时候计算机是处于完全无保 护状态的,如果 mbr 被一些恶意程序的代码取代将会对用户的利益造成严重的损 害。 现今的计算机保护主要局限于杀毒软件和防火墙等技术,这些技术侧重主要在 于防御外部攻击,是针对整台计算机进行保护,有一定的滞后性;而不能针对某一 特定的数据进行保护,且对于未知的威胁也缺乏抵抗能力。 鉴于以上这些原因,研究计算机中敏感信息保护技术具有十分重要的现实意义 和理论价值。 1.2 敏感信息敏感信息保护保护技术的发展现状技术的发展现状 目前在国内外对于敏感信息的定义,基本上是指重要的文件。对这类敏感信息 的保护可以称之为电子文件保护技术4。 针对电子文件的保护目前无外乎分为宏观保 护和微观保护。所谓宏观保护即防止外部计算机获取用户计算机的信息,目前主流 的技术即网络防火墙5,6;微观保护就是针对电子文件本身的保护措施,使其在被恶 意访问7,8,9或被窃取后仍能保持内容的保密性, 这类安全技术中应用最广的是加密技 术10。 1.2.1 敏感信息敏感信息的定义的定义 “敏感信息”在不同时代有不同的定义,随着信息技术的发展,“敏感信息” 所包含的意义也越来越广。 如今“敏感信息”不单指那些机密文件,在计算机中的 那些文本文件固然重要,但是对于计算机和操作系统本身而言,它们也有自己的敏 感信息。例如操作系统的主引导记录(mbr)11,12,它先于操作系统进入内存执行,此 时一切安全软件甚至操作系统都未运行,如果它被恶意程序修改将对计算机带来极 大的危害。前段时间肆虐的机器狗病毒正是利用了这个漏洞。所以对计算机中的这 些“敏感信息”的保护应该引起高度重视。 3 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 1.2.2 主流主流安全技术安全技术 (1)防火墙技术 防火墙是安全领域最成熟、应用最广泛的产品之一。防火墙最基本的功能是通 过过滤不同信任区域之间的数据流以达到保护目标主机的目的。防火墙的主要功能 有:计算机的屏障、强化网络安全策略、对网络进行监控审计、防止内部信息的外 泄13,14。 防火墙是综合性的安全产品,但是也很难做到面面俱到,缺乏针对性的保护策 略并且有一定的滞后性。防火墙可以满足大多数网络用户的安全需求,但是对于一 些特殊的用户则显得不够完善。 (2)加密技术 加密技术是最早应用也是应用最广的信息保护技术之一。简单来说,加密技术 就是用一个密钥和一个加密算法将原本需要被保护的信息进行变换得到一个不能正 确显示信息内容的加密文件。被加密的文件只能通过对应的逆过程即解密运算和相 应的密钥对其进行解密才能得出原始信息的内容。加密技术已经有多年的发展历史, 形成了一些成熟的技术,如 des15、rsa16、aes17等加密算法已经应用于众多安 全领域。 加密技术重点在于保护信息的保密性,对于一些破坏式的攻击如:直接替换, 恶意修改等就显得无能为力了。而且,随着计算技术的发展,一些加密算法如 des 也日益被破解,证明了加密技术也有一定的时效性。 (3)文件系统过滤驱动技术 运用文件系统过滤驱动来达到保护计算机中的敏感信息也是近年来发展迅速的 一项技术,利用文件系统过滤驱动可以实现文件的访问控制,重要文件的还原保护, 还可对一些机密文件进行加密等等。 文件系统过滤驱动的缺点在于容易被底层的操作穿透,例如直接运用磁盘驱动 读写的方式即可避开文件系统驱动而直接将信息写入到磁盘,这要文件系统过滤驱 动中的一些保护措施就失去了意义。 4 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 通过以上的分析可以看出目前主流的安全技术都有自身的特点和实用价值但同 时有都存在着一些不可避免的缺陷,考虑到计算机中一些敏感信息的重要性和其在 磁盘中所处的特殊位置,设计一个专门保护这些敏感信息的系统就显得有必要和有 意义了。 1.3 课题研究的意义课题研究的意义、内容及目标内容及目标 1.3.1 意义意义 通过对敏感信息现有保护技术的分析和研究,探索出一个具有一定特色和实用 价值的敏感信息保护方案,实现对计算机中特定区域的敏感信息的保护,对于特定 应用环境下的应用具有重要的理论意义和实用价值。 1.3.2 内容内容 课题研究的主要内容包括: (1)windows 操作系统输入/输出系统研究。 (2)windows 操作系统驱动技术研究。 (3)windows 操作系统重定向技术研究。 1.3.3 目标目标 本课题研究并构建一个敏感信息保护系统 sips(sensitive information protection system),其预期目标包括: (1)能够实现在 windows 下对某特定磁盘区域的重定向。 (2)应具有较高的可靠性、较强的健壮性、较好的可扩展性。 (3)易于使用、维护方便、良好的硬件兼容性。 5 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 2 技术基础技术基础 本章将论述与敏感信息保护系统相关的技术和理论基础,包括 windows 内核、 windows 驱动程序以及 windows 的输入/输出处理过程等。 2.1 windows 内核内核 敏感信息保护系统中涉及到 windows 操作系统中一些关键机制,这些机制运行 在 windows 内核模式中。 本节将论述 windows 操作系统中与敏感信息保护系统密切 相关的内核模式以及输入/输出系统18,19,20的基本情况。 2.1.1 用户用户模式模式与内核与内核模式模式 为了避免恶意程序访问和修改重要的操作系统数据,intel 定义了四个处理器模 式,windows 操作系统使用了其中的两种:用户模式和内核模式21,22,23。windows 利用这两种处理器访问模式25分别将用户应用程序的代码运行于用户模式中,而操 作系统的代码则运行于内核模式中。用户模式严格限制了应用程序的行为而内核模 式则允许访问所有的系统内存和所有的 cpu 指令。处理器让操作系统内核软件比用 户应用程序软件有更高的特权级,从而为操作系统设计者提供了一层保护的基础, 确保一个行为不正常的应用程序不会破坏系统整体的稳定性19。 用户模式是一般应用程序运行时处理器所处的模式,在用户模式下应用程序的 行为受到了操作系统的严格限制。操作系统为每个应用程序线程分配了单独的内存 空间,每个线程的代码运行在独立的内存页面中,相互之间不受干扰。 内核模式是操作系统自身的代码运行的处理器模式,内核模式中运行的代码拥 有最高的访问级别。而且内核模式内存不存在分页机制,整个内核模式的代码公用 一个内存池,因此内核模式下的程序可以访问操作系统的关键数据。 2.1.2 windows 输入输入/输出输出系统系统 windows 输入/输出系统26,27,28的设计目标是为应用程序提供一个有关设备的 抽象,包括硬件设备和软件设备。windows 输入/输出系统的结构图如图 2.1 所示。 6 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 win32子系统 hal wdm wmi 例程 电源管理pnp管理器i/o管理器 驱动1驱动2 应用程序 用户模式 内核模式 i/o系统 驱动程序 图 2.1 输入/输出系统的结构图 输入/输出管理器是 windows 输入/输出系统的核心。它定义了一个非常整齐的 框架,在这个框架内部,输入/输出请求被递交给设备驱动程序进行处理。输入/输出 系统是包驱动的,绝大多数输入/输出请求都是通过一个输入/输出请求包 (irp)29,30,31,32来表示的,这些输入/输出请求包从一个输入/输出系统组件传递到另一 个输入/输出系统组件。这种设计使得单个应用程序线程可以并发地管理多个输入/ 输出请求。输入/输出请求包是一个数据结构,其中包含了用来描述一个输入/输出请 求的完整信息19。 输入/输出管理器创建一个输入/输出请求包代表一个输入/输出操作, 并将该输入 /输出请求包传递给正确的驱动程序,当此输入/输出操作完成时再处理该请求包。相 反地,驱动程序接受一个输入/输出请求包,执行该输入/输出请求包指定的操作,然 后将输入/输出请求包传回给输入/输出管理器。 绝大多数输入/输出操作并不涉及输入/输出系统的所有组件。 典型的输入/输出请 求流程如图 2.2 所示。典型的输入/输出请求首先从“一个应用程序执行一个与输入/ 7 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 输出相关的函数”开始,此请求将由输入/输出管理器、一个或多个设备驱动程序和 硬件抽象层(hal)33,34来处理19。 用户模式api i/o系统服务api i/o管理器 内核模式 设备驱动程序 hal i/o访问例程 驱动程序支 持例程 i/o端口寄存器 图 2.2 典型的输入/输出请求流程 2.2 windows 驱动程序驱动程序 敏感信息保护系统充分利用 windows 驱动程序拥有内核执行权的优势,以加载 驱动的方式进入内核,并结合 windows 驱动程序的结构特点通过过滤驱动的方式实 现保护敏感信息的目的。 驱动程序可以运行于操作系统内核模式,在输入/输出管理器的协调下执行操作 系统生成的一系列输入/输出请求实现计算机的各种功能。 2.2.1 驱动程序分类驱动程序分类 驱动程序分为用户模式驱动和内核模式驱动两类,用户模式驱动运行在用户模 式下,对于敏感信息保护系统意义不大,敏感信息保护系统采用的是运行于内核模 式中的内核模式驱动程序19。 另外根据处理设备请求过程中所处的角色来分类,驱动程序又可分为三种: 8 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 (1)总线驱动程序 总线驱动程序又称为物理驱动程序,管理一个逻辑的或物理的总线35,36。一个 总线型驱动程序负责检测在它控制的总线上所附载的设备,检测到以后通知 pnp 管 理器37,38,它也管理该总线的电源设置。 (2)功能驱动程序 功能驱动程序负责管理某一特定类型的设备。由总线型驱动程序通过 pnp 管理 器,将设备信息展示给功能型驱动程序。然后该驱动程序将一个设备的操作接口导 出给操作系统。一般而言,它是掌握了最多关于该设备操作的知识的驱动程序。 (3)过滤型驱动程序 过滤型驱动程序在逻辑上位于功能型驱动程序的上层或下层,增加或者改变一 个设备或另一个驱动程序的行为。例如,一个键盘捕获工具可能是通过一个键盘过 滤型驱动程序来实现的,该驱动程序位于键盘功能型驱动程序之上层。 在 windows 操作系统中, 没有一个驱动程序负责控制一个特定设备的所有方面。 总线型驱动程序负责检测总线上成员的变化(设备加入或移除),帮助 pnp 管理器 列举该总线上的设备,访问与该总线有关的配置寄存器,以及在某些情况下,还要 控制该总线上设备的电源。功能型驱动程序通常只是一个访问该设备硬件的驱动程 序而已。 敏感信息保护系统不负责操作系统一些底层操作的实现工作,只在输入/输出请 求实现过程中过滤“危险”的操作,并且保护系统只关心对于计算机磁盘的读写操 作,因此保护系统中用到是磁盘驱动程序中的过滤型驱动程序。 2.2.2 驱动程序的结构驱动程序的结构 输入/输出系统驱动了设备驱动程序的执行。 设备驱动程序是由一组例程构成的, 在输入/输出系统处理一个输入/输出请求的各个不同阶段,这些例程会被调用。如图 2.3 所示19。 (1)初始化例程 初始化例程,当输入/输出管理器将一个驱动程序加载到操作系统中时,它执行 该驱动程序的初始化例程,此例程通常被命名为 driverentry。此例程填充一些系统 9 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 数据结构,以便向输入/输出系统登记该驱动程序其余的例程,同时它也执行任何必 要的、有关该驱动程序的全局初始化工作。 i/o系统 一组分发例 程 启动i/o例程 增加设备例 程 中断服务例 程 初始化例程dpc例程 图 2.3 驱动程序结构 (2)“增加-设备”例程 “增加-设备”例程,一个支持即插即用的驱动程序需要实现一个“增加-设备” 例程。无论何时当 pnp 管理器检测到由该驱动程序来负责的设备时,它通过此例程 向驱动程序发送一个通知。 (3)一组分发例程 一组分发例程,分发例程是一个设备驱动程序所提供的主要函数。这种函数有 打开、关闭、读和写,以及该设备、文件系统或网络所支持的任何其他能力。当输 入/输出管理器被要求执行一个输入/输出操作时, 它生成一个输入/输出请求包, 并通 过该驱动程序的某一个分发例程来调用该驱动程序。 (4)开始 输入/输出例程 开始 输入/输出例程,驱动程序可以使用一个启动输入/输出例程发起一次数据 传输。只有对于那些需要依赖于输入/输出管理器来对它的进入输入/输出请求进行排 队的驱动程序,才需要定义此例程。 10 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 2.2.3 驱动对象和设备对象驱动对象和设备对象 当一个线程打开一个指向文件对象的句柄时,输入/输出管理器必须根据该文件 对象的名称来确定:它应该调用哪个驱动程序来处理该请求。 (1)驱动程序对象 驱动程序对象39,40代表了系统中一个单独的驱动程序。输入/输出管理器从该驱 动程序对象中获得其每一个分发例程的入口地址。 (2)设备对象 设备对象39,40代表了系统中一个物理的或逻辑的设备,并描述了它的特征。 当一个驱动程序被加载到一个系统中时,输入/输出管理器创建一个驱动程序对 象,然后它调用该驱动程序的初始化例程,该例程会利用该驱动程序的入口点来填 充此对象的属性。 2.3 输入输入/输出输出处理处理 计算机读写信息实际上就是一个输入/输出过程,敏感信息保护系统正是利用了 输入/输出处理机制来达到保护敏感信息的目的。这里首先将论述输入/输出请求包, 然后分别论述针对单层和多层驱动的输入/输出处理过程。 2.3.1 输入输入/输出输出请求包请求包 输入/输出请求包是输入/输出系统为了处理一个输入/输出请求而用来存储必要 信息的地方。当一个线程调用一个输入/输出服务的时候,输入/输出管理器构造一个 输入/输出请求包,用于在输入/输出系统处理此请求的过程中代表此请求。 输入/输出请求包是由两部分组成的:一个固定的头以及一个或多个栈单元。固 定部分包含:该请求的类型和大小,该请求是同步的还是异步的,一个用于缓冲类 型输入/输出的缓冲区指针,以及一些在该请求处理过程中会被改变的状态信息。输 入/输出请求包栈单元包含一个功能代码、与功能相关的参数,以及一个指向调用者 文件对象的指针19。 11 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 2.3.2 针对单层驱动程序的针对单层驱动程序的输入输入/输出输出请求请求 单层驱动是个理想状态,实际中较少出现,但是任何复杂的输入/输出请求都是 在此基础上发展起来的。 处理一个针对单层驱动的输入/输出请求要涉及七个步骤: (1)通过一个子系统 dll 传递输入/输出请求。 (2)子系统 dll 调用输入/输出管理器的服务。 (3)输入/输出管理器申请一个描述此输入/输出请求的输入/输出请求包,并通 过调用它自己的 iocalldriver 函数将此输入/输出请求包发送给驱动程序。 (4)该驱动程序将输入/输出请求包中的数据传输给设备并启动输入/输出操作。 (5)驱动程序通过中断 cpu 的方式来通知输入/输出完成。 (6)当设备完成了操作并且中断 cpu 时,设备驱动程序为该中断提供服务。 (7) 驱动程序调用输入/输出管理器的 iocompleterequest 函数来通知输入/输出 管理器,它已经完成了该输入/输出请求包中输入/输出请求的处理工作,然后输入/ 输出管理器完成此输入/输出请求19。 2.3.3 针对针对多层驱动程序的多层驱动程序的输入输入/输出输出请求请求 针对多层驱动程序输入/输出请求的处理与单层驱动的情况有些区别,因为输入/ 输出请求包可能不能在本层驱动中完成,这时位于上层的驱动程序通过输入/输出请 求包堆栈将未处理的输入/输出请求包传递到下层驱动直到输入/输出请求包被完成。 完成输入/输出请求包的处理与单层驱动时类似。 针对一个多层驱动的输入/输出请求的处理步骤: (1)调用输入/输出服务。 (2)输入/输出管理器创建输入/输出请求包,填充第一个栈单元,并调用一个 中间驱动程序。 (3)中间驱动程序填充输入/输出请求包的第二个单元,并调用磁盘驱动程序。 (4)将输入/输出请求包数据发送给设备并返回。 (5)逐级返回输入/输出未完成状态到子系统 dll。 12 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 2.4 相关数据结构相关数据结构 设备扩展记录一些设备的附加信息,敏感信息保护系统中设备扩展用来记录设 备栈的栈顶信息。它的结构为: typedef struct _device_extension pdevice_object topofstack; device_extension, *pdevice_extension; 2.5 小结小结 本章对敏感信息保护系统相关的技术做了概要性论述。首先论述了 windows 内 核的两种模式: 用户模式和内核模式。 在内核模式的基础上对 windows 输入/输出系 统的结构以及典型的输入/输出请求处理流程做了说明。然后论述了与敏感信息保护 系统密切相关的 windows 驱动程序的基本情况,包括驱动程序的分类、驱动程序间 的分层结构、驱动程序本身的结构以及驱动开发相关的驱动对象和设备对象。第三, 论述了输入/输出请求包的相关信息,并分别论述了针对单层驱动和多层驱动情况的 输入/输出处理流程。最后,本章给出了敏感信息保护系统实现过程中的相关数据结 构。 13 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 3 敏感信息敏感信息保护保护系统设计系统设计 本章将对敏感信息保护系统的基本设计思想进行全面的阐述,包括设计的原则、 模块的划分和系统实现的具体方法和流程,为系统的具体实现构筑框架。 3.1 设计原则设计原则 敏感信息保护系统基于以下原则设计: (1)敏感信息保护系统是对隐藏性和稳定性要求都非常高的系统。敏感信息保 护系统的设计要突出隐藏性和稳定性,兼顾开发难度的因素,在开发工具、平台和 技术的选择上优先保证稳定性。 (2)分段优化与综合考虑相结合,注重消除性能瓶颈,也不因过分注重优化而 失去逻辑上的简洁性,影响系统的开发进度。 (3)在技术的选择上要注意该系统与不同操作系统的相容性,特别要兼顾 nt 驱动和 wdm 驱动模式。 (4)为了便于敏感信息保护系统的进一步改进与扩展,既要为新的功能应用留 出相应接口,又要提供一个方便扩展的框架,使其具有良好的升级空间。 3.2 总体结构设计总体结构设计 敏感信息保护系统的设计目的在于实现对计算机中重要区域里的敏感信息的保 护。本节根据功能需求确定系统处理流程然后给出总体结构并进一步划分相应的功 能模块。 3.2.1 功能需求功能需求 敏感信息保护系统的目标是在用户及操作系统不能察觉的情况下过滤掉潜在的 恶意程序对于敏感信息所在区域的读写操作,要达到该目标需要解决以下问题: (1)取得操作系统内核控制权和执行权 14 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 windows 操作系统将应用程序的执行环境分为内核环境和用户环境,在用户环 境中应用程序的操作是受到限制的,只有在取得了操作系统的内核权限后才能自如 的执行应用程序的意图。 (2)加载过滤驱动到指定设备 windows 系统中存在着许多设备,每种设备都有自己的驱动对象栈,磁盘设备 也有自己的设备栈。本保护系统希望拦截输入/输出管理器传递给磁盘设备的输入/ 输出请求包,因此本系统中的过滤驱动必须加载到磁盘的设备堆栈中。 (3)输入/输出请求包选择性处理 敏感信息保护系统将拦截所有输入/输出管理器传递给磁盘设备的输入/输出请 求包,但并非对所有的输入/输出请求包都做处理,只处理那些针对被保护区域的读 写操作的输入/输出请求包,所以要准确判断输入/输出请求包的目标位置并作出相应 选择。 (4)重定向读写 经过分析,对于那些“危险”的磁盘操作,本系统需要通过一定处理消除威胁, 使用的方法即是重定向处理,将那些“危险”的读写操作重定向到“安全”的区域, 实现对重要区域的保护。 3.2.2 系统处理流程系统处理流程 敏感信息保护系统的主要流程可简化为“进入内核重定向”,系统的处理流 程如图 3.1 所示。 敏感信息保护系统的功能是基于驱动程序实现的。系统运行后首先就是将系统 自定义的磁盘过滤驱动加载到磁盘设备栈中。驱动加载成功之后,保护系统就开始 拦截输入/输出管理器发送给磁盘驱动的 irp,并有重定向模块对其进行分析处理。 整个保护系统运行的关键在于: (1)过滤驱动是否加载到磁盘驱动设备栈中。 计算机中有许多磁盘卷,每个磁盘卷都有相应的符号链接和独立的驱动设备栈, 敏感信息保护系统要将自身的过滤驱动加载敏感信息所在的磁盘卷才能实现拦截输 入/输出请求包和重定向的功能。 15 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 开始 初始化驱动 初始化设备 加载设备 成功 加载驱动 成功 打开驱动服务 分析irp 危险重定向irp设置irp完成 设置irp堆栈 传递irp到下层 驱动 结束 是 否 是 否 是否 图 3.1 系统处理流程图 (2)重定向模块能否获取输入输出请求包信息并将其修改。 重定向模块分析输入/输出请求包中的信息并将这些请求包分类进行处理,如果 无法获得这些信息重定向的工作也就不能顺利进了。 3.2.3 总体结构总体结构 敏感信息保护系统运行在操作系统的内核模式中,结构上分为内核模块和重定 向模块,内核模块作为重定向模块的载体,整个保护系统处于输入/输出管理器和磁 盘设备之间。 16 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 图 3.2 敏感信息保护系统系统结构图 1)内核模块 内核模块的任务是取得系统的内核级别的操作权限。主要目的是将保护系统自 生成的带有重定向功能的磁盘过滤驱动程序加载到 windows 磁盘设备堆栈中。通过 该过滤驱动,本系统将先于磁盘设备得到输入/输出管理器传递给磁盘设备的输入/ 输出请求包,实现输入/输出请求包的拦截工作。 在用户模式中应用程序的行为被操作系统限制很多重要的数据结构和函数都无 法使用,所以要得到输入/输出请求的信息就必须使敏感信息保护系统运行在内核模 式中。 利用驱动程序来获得在操作系统内核模式中的执行权是一个理想的方法。并且 考虑到功能需求中提出的拦截 irp 的要求,也可利用过滤驱动程序实现,因此内核 模块采用磁盘设备过滤驱动作为载体,实现内核运行和拦截 irp 的目的。 17 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 2)重定向模块 重定向模块分析输入/输出请求包的内容和重定向“危险”操作。在本模块中, 保护系统将拦截到得输入/输出请求包逐一分析并分类,将安全的输入/输出请求包不 做处理直接传递到下层驱动程序,而将被定义为“危险”的输入/输出请求包中目标 读写位置重定向到系统指定的安全区域,实现敏感信息的保护功能。 重定向模块首先需要分析拦截到的 irp 信息。过滤驱动加载到磁盘设备后将所 有的磁盘输入/输出请求都进行了拦截。这些输入/输出请求中绝大多数是正常的磁盘 读写等操作,对于这些请求,敏感信息保护系统并不关心,所以重定向模块的第一 个任务是从所有拦截到的 irp 中筛选出“危险”的输入/输出操作。 重定向模块的第二个任务就是将那些被确定为危险地输入/输出操作进行处理。 具体方法为: (1)读取该输入/输出请求包中读写地址的信息。 (2)将该地址信息修改为用户指定的“安全地址”。 (3)设置输入/输出请求包信息。 (4)将该输入/输出请求包传递到下层驱动进一步执行。 3.3 相关相关模块模块设计设计 敏感信息保护系统分为两大模块:内核模块和重定向模块。本节首先论述保护 系统的流程图然后分别说明内核模块和重定向模块的设计思路。 3.3.2 内核模块内核模块 内核模块目的在于将重定向模块的代码引入操作系统内核。将代码植入内核中 的直接方式是使用可加载模块(即设备驱动程序或内核驱动程序)。设备驱动程序 通常是用于设备的,然而,通过驱动程序可以引入任何代码。一旦拥有了在内核中 运行的代码,就能够完全访问内核和系统进程的全部特权空间。通过内核级访问, 可以修改计算机上的所有软件代码和数据结构。 18 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 内核模块正是采用驱动程序的途径实现进入内核的目的的。如本章前面所论述 的,本模块的工作是要将敏感信息保护系统的磁盘过滤驱动程序加载到 windows 系 统的磁盘设备栈中。,其处理流程如图 3.3 所示。 开始 进入内核 设置通用派遣 函数 设置主功能派 遣函数 设置卸载函数 调用驱动加载 函数 结束 图 3.3 内核模块处理流程 内核模块在敏感信息保护系统开始运行时即开始执行。首先,内核模块要对保 护系统自定义的过滤驱动程序进行初始化。初始化的工作包括: (1)设置读写请求的派遣函数。每个输入/输出请求都有相应的功能代码,驱动 程序根据不同的功能码设置不同的派遣函数以完成该输入/输出请求。敏感信息保护 系统只关心对磁盘读写的输入/输出请求,所以初始化时单独设置两个派遣函数处理 读写请求。 (2)设置通用派遣函数。对于那些保护系统不关心的输入/输出请求,保护系统 也不能简单的不做处理,这样会导致意想不到的错误。初始化时还需要设置专门的 派遣函数处理这些输入/输出请求。 (3)设置卸载函数。为了合理的管理系统资源,也方便调试,初始化时还需要 设置驱动程序的卸载函数。 19 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 初始化驱动程序之后,内核模块将该驱动程序加载到磁盘驱动设备之上,以实 现拦截输入/输出请求包的目的。计算机中磁盘驱动设备栈的数量不是固定不变的, 它的数量是根据卷的数量而定的,每一个卷都有一个单独的驱动设备栈与之对应。 如果过滤驱动加载到了错误的卷上,保护敏感信息的目的就不能达到了。因为敏感 信息的特殊地位其所在的卷是固定的,所以根据其符号连接内核模块能够将过滤驱 动准确地加载到正确的磁盘卷上。 3.3.3 重定向模块重定向模块 重定向模块实现对磁盘指定区域的保护功能。具体来说,重定向模块通过检测 系统发往磁盘设备驱动的输入/输出请求包得到该输入/输出操作的目标地址 (扇区) , 然后判断该区域是否是用户定义的重要区域,如果是对重要区域的读写操作,则系 统将修改该输入/输出请求包中的目标地址内容为用户指定的安全区域。这个操作又 称为重定向操作。 (1)重定向的实质 重定向的实质就是将对一个磁盘区域 a 的读写操作改变为对另一个区域 b 的读 写操作。 通常系统对磁盘的读写操作是由 windows 输入/输出管理器和磁盘驱动通过输 入/输出请求包(irp)完成的(文件系统可视为透明的)。其处理流程如图 3.4 所示。 通常当应用程序请求对磁盘的某区域进行读写操作时,win32 子系统模块中的 服务代码会调用平台相关的系统服务例程来切入内核模式并调用内核模式组件中的 输入/输出管理器提供的服务例程。当请求传递到输入/输出管理器时,它调用对象管 理器解析文件名并创建主功能代码为 irp_mj_read 和 irp_mj_write 的请求包。 然后,输入/输出管理器将这个输入/输出请求包发送到磁盘设备对象。因此,对读写 操作的重定向,实质是对 irp_mj_read/ irp_mj_write 请求包的重定向。过滤驱 动程序能截获并过滤发送到磁盘设备驱动的输入/输出请求包,所以可以在过滤驱动 程序中实现对磁盘读写操作的重定向。 20 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 i/o管理器 过滤驱动 磁盘设备驱动磁盘过滤驱动 过滤驱动 总线驱动磁盘过滤驱动 读写磁盘 是 否 是 否 图 3.4 输入/输出请求包处理流程 (2)重定向的实现 对于 irp 请求包在输入/输出请求包的当前堆栈单元中 parameters 域包含了每个 请求专属的信息。对于读写请求,例如:读写磁盘的扇区位置,读写内容的大小, 读取或要写入的数据都包含在 parameters 域中。因此可以由 parameters 域得到磁盘 读写的目标扇区位置,若是需要重定向的扇区则替换 parameters 域中扇区的位置为 指定扇区,然后设置输入/输出请求包参数,完成输入/输出请求包最后传递给下层驱 动。重定向过程如图 3.5 所示。 21 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 开始 获取磁盘操作 位置 是否需要 重定向 更改 parameters域中 目标位置值 设置irp堆栈 完成irp 调用下称驱动 结束 否 是 图 3.5 重定向过程 (3)重定向模块的设计 重定向模块的设计依赖内核模块的结构而基于重定向的实质。重定向模块是根 据功能划分的,在结构上重定向模块根据读写操作的不同,分为重定向写和重定向 读两部分。重定向写和重定向读这两部分在实现方式上基本相同,但出于不同的派 遣函数中。 总体来说,过滤驱动拦截到输入/输出请求包之后就交给重定向模块处理。重定 向模块首先判断输入/输出请求的主功能码,将非读写的输入/输出请求交给通用派遣 函数处理;然后分析读写请求的目的地址,将“安全”的读写操作直接设置为未完 成然后传递个下层驱动继续处理;最后重定向模块将剩下的“危险”的读写请求的 目标地址重定向到用户指定的“安全”地址完成保护敏感信息的工作,然后将该输 入/输出请求包也设置为未完成,传递给下层驱动处理。重定向模块的处理流程如图 3.6 所示。 22 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 读/写危险重定向 设置为未完成 传递给通用派 遣函数 传递到下层驱 动 开始 结束 irp 否 是 是 否 图 3.6 重定向模块的处理流程 3.4 小结小结 本章详细论述了敏感信息保护系统的设计。首先,提出了敏感信息保护系统的 设计原则。然后,在设计原则的基础上提出了敏感信息保护系统的功能需求以及总 体结构,并确定了敏感信息保护系统的两个功能模块:内核模块和重定向模块。最 后,根据总体结构和功能需求设计了系统的总体流程图并进一步确定了内核部分和 重定向部分的实现方法和流程。 23 华华 中中 科科 技技 大大 学学 硕硕 士士 学学 位位 论论 文文 4 敏感信息敏感信息保护保护系统系统的的实现实现 本章将在敏感信息保护系统设计的基础上,具体阐述敏感信息保护系统的内核 模块和重定向模块的实现,并将重点论述其中的关键技术和函数。 4.1 内核模块的实现内核模块的实现 为了获得内核执行权,保护系统首先需要一个完整的驱动程序,然后将该驱动 程序和目标设备对象关联起来,最后将该设备加载到 windows 系统的设备战中。实 现这些功能分为三个部分: (1)初始化驱动程序入口函数 driverentry ( )。 (2)用 adddevice ( )函数向操作系统加载驱动。 (3)处理输入/输出请求。 4.1.1 初始化初始化驱动驱动 初始化驱动程序的目的在于设置一些使驱动程序正常运行的参数和派遣函数, 如设备对象关系到驱动程序的类型,而各个派遣函数负责向操作系统加载驱动程序 和处理各种输入/输出请求等。 以下是初始化部分的伪码描述: ntstatus driverentry () for (无关的 irp 请求) driverobject-majorfunctioni = filterdispatchgeneral; driverobject-majorfunctionirp_mj_read = filterdispatchread; driverobject-majorfunctionirp_mj_write = filterdispatchwrite; driverobject-majorfunction irp_mj_power = filterpower;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论