一种基于快照的系统防护方法

文档序号:6599642阅读:282来源:国知局
专利名称:一种基于快照的系统防护方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种系统防护方法。
背景技术
在学校机房或网吧等公共场所,一般一台电脑都是分时段的提供给多个用户使 用,这种方案优势明显,但在实际运作中也存在着不足,其中一个较明显的问题是,当上一 个用户恶意或无意(误操作/中病毒等)修改了系统的文件或配置,则就可能直接影响了 后面用户的正常使用。为解决这一问题,比较典型的解决方案就是安装硬盘还原卡,这样只 要通过一次重启,软件系统就恢复到原来的状态,也可以理解为还原到原来的系统快照。一般还原方法的实现原理(如图1),主要是截获对磁盘的写操作,再将该写操作 区间重定向到空闲区间进行写入,同时记录该写操作区间与重定向区间的对应关系,最后 完成该写操作。当截获到读磁盘操作时,则结合已记录的重定向区间的对应关系,进行判断 处理,如该读操作区间与已记录的重定向对应关系中的区间无交集,则按正常读流程执行 读操作,最后完成该读操作;如有上述两区间有交集,则可先按正常读流程读取非交集区间 的内容,再结合重定向区间的对应关系,读取被重定向的该交集区间的内容,在合并两种读 操作的读取的内容后,最后完成该读操作。结合上述还原程序对读写的处理,还原程序只要 在系统重启后,清空上次重定向区间的对应关系及重定向区间所占用的空间,就可使软件 系统恢复到原来的状态,到达还原的目的。但随着计算机病毒或恶意软件技术的发展,一些更底层的攻击技术也在不断的加 强,上述基于还原的系统保护方法,受到了很大的挑战,甚至会失效。目前已发现的病毒中, 有通过加载一个恶意的驱动来进行对上述还原软件进行破坏的例子,这种病毒通过加载驱 动程序,获得操作系统内核权限后,直接修改上述运行中的还原软件的执行指令,而使还原 软件的截获磁盘读写的功能失效,更有甚者出于特殊目的,直接通过恶意内核模块使系统 崩溃,扰乱正常秩序。要对付这种情况,就需要对内核模块的加载运行进行监控,对不可信任的内核模 块,拒绝让其加载运行,而使可信任的内核模块依旧能正常运行。但考虑到实际的情况,如 一般网络游戏都自带内核程序,用于防止盗号,及用户的USB磁盘或摄像头等,使用时也会 加载驱动,再结合系统已有的很多的驱动程序,这样数量众多的内核模块,而且有的内核模 块有一定的隐蔽性,要逐个区分出其是否是可信任的,是项工作量很大的工作。同时由于实 际运行环境的不同,就需要用户协助来对内核模块的可信任性做判断,这样易用性差,且有 较大的误操作可能,因为用户不一定有这方面很专业的知识来判断。

发明内容
本发明的目的就在于提供一种在实现还原功能的同时,又能简单有效的抵御内核 模块攻击的系统防护方法。—种基于快照的系统防护方法,包括如下步骤
步骤(一)a)在磁盘中指定用于重定向的预留空间;b)在磁盘或内存中指定用于记录对应关系的第一空间;C)生成用于读取原始磁盘数据的私有接口 ;所述的在磁盘中指定的预留空间可以是在启动操作系统之前就已经预先完成划 分;也可以是启动操作系统后,再向操作系统申请。指定预留空间之后,用户所有的正常读、写操作均针对非预留空间,而不会针对所 述的预留空间。步骤(二)截获用户对磁盘的读、写操作,对截获到的读、写操作进行如下处理关于写操作将截获到的写操作所针对的原磁盘空间(非预留空间)重定向到步骤(一)所述 的预留空间,即将该写操作所涉及的数据写入预留空间;并将该写操作所针对的原磁盘空间与实际写入的预留空间的对应关系记录到所 述的第一空间中;也可以说该写操作所针对的原磁盘空间已被重定向。关于读操作a)如果该读操作是通过私有接口发起的,则按正常的读操作流程,不经过重定向 处理而直接进行读取操作;b)如果该读操作不是通过私有接口发起的,则结合第一空间中记录的对应关系, 进行如下判断如该读操作所针对的区间与参照区间无交集,则按正常读流程执行读操作,最后 完成该读操作;如该读操作所针对的区间与参照区间有交集,则对于非交集区间的内容按正常读 流程读取;对于交集区间的内容,根据该交集区间与预留空间的对应关系,从预留空间中读 取相对应的内容;最后将读取的非交集区间的内容和交集区间的内容合并,完成该读操作; 在读取非交集区间和交集区间的内容时并没有严格的先后顺序要求,可以如下三种情况①先将非交集区间的内容A和交集区间的内容B均按正常流程从非预留空间中读 取,再从预留空间中读取与交集区间相对应的内容『,然后用从预留空间中读取的交集区 间的内容『把从非预留空间中读取的交集区间的内容B覆盖,构成完整的内容②先将非交集区间的内容A按正常流程从非预留空间中读取,再从预留空间中读 取与交集区间相对应的内容经合并后构成完整的内容③先从预留空间中读取与交集区间相对应的内容『,再将非交集区间的内容A按 正常流程从非预留空间中读取,经合并后构成完整的内容AB\所述的参照区间是在写操作过程中经过重定向写到预留空间且其对应关系已记 录在第一空间中的所有区间。经过上述的对读写处理,我们可以发现对磁盘数据的正常读写,都被做了重定向 处理,这样磁盘原始数据不会被改变,也可以理解为对磁盘原始数据做了快照,而该快照内 容可以通过私有接口读取。步骤(三)
截获内核模块的加载,对于截获到的内核模块,如果该内核模块是不可信任的,则 拒绝该内核模块的加载,如果该内核模块是可信任的,则允许加载并运行。其中对内核模块的可信任性,可以通过上层管理程序来进行额外的控制。当一个 内核模块加载时,我们可以通过私有接口读取快照即磁盘原始数据中该内核模块所对应的 该数据,判断内核模块与其所对应数据的一致性,如果数据内容是一致的,则就是可信任 的,如果不一致的,就是不可信任,此时直接拒绝或提示用户协助判断,这样就能简单有效 的对绝大部分内核模块作出正确的判断。本发明所述的内核模块是指可具有CPU的Ring 0权限的可执行代码,可以直接访 问所有内存(包括所有的用户模式进程和应用程序的地址空间)和硬件。步骤(四)系统重启时,清空并释放用于记录对应关系的第一空间;若所述的预留空间是启动操作系统后,再向操作系统申请的,则释放该预留空 间;若所述的预留空间是在启动操作系统之前就已经预先完成划分,则无需进行操 作。需要说明的是,本发明方法进行系统还原时,清空第一空间以及有选择的释放预 留空间的过程是在重启操作系统进入用户登录界面之前已经完成,这一点是与现有技术相 同的。例如关机时就会清空第一空间,而重启操作系统时完成有选择的释放预留空间。本发明在现有技术中系统还原方法的基础上,再加一个私有接口及截获内核模块 加载的功能,该私有接口能读取磁盘原始数据,当截获到是通过该私有接口,对磁盘进行读 操作时,就不经过重定向而直接对该区域进行读读操作,当截获到加载的内核模块是不可 信任的,则拒绝加载,当为可信任时才允许加载运行。这样就能简单有效的抵御内核攻击, 同时又能确保原来的还原系统能正常工作,从而达到系统防护的目的。


图1为现有技术中系统还原方法的实现原理的示意图。图2为本发明的基于快照的系统防护方法的实现原理的示意图。
具体实施例方式在以下的详细说明中,描述了特定的细节以便提供对本发明全面的理解。然而本 专业的技术人员会认识到,本发明也可以用其它相类似的细节实施。尽管本发明不限于此,但作为本发明的一个具体的实施例,一种在硬盘中有C/D 两个分区,并在C分区安装了 Windows XP系统,而将D分区作为预留空间的使用情况。参见图2,通过本发明提供的方法,在运行过程中,能正常加载并运行已有的 C:\a. sys驱动,同时又能拒绝加载新生成的恶意C:\b. sys驱动的步骤如下本发明提供的方法可通过编写还原功能软件来实现,该软件包含一个底层驱动 程序如命名为Driver, sys及一个上层管理程序如命名为Manager, exe,其中的Driver, sys在初始时通过调用系统函数IoAttachDevice,挂接到代表C分区的系统设备\DeviCe\ HarddiskVolumel上,这样在该Driver, sys运行后,就可以截获到系统中对C分区的所在磁盘区域的读写操作,该Driver, sys对写操作截获的函数接口命名为ProtectWrite,对读操作操作截获的函数接口命名为ProtectRead,同时再通过调用系统函数IoCreateDevice创 建另一个私有的设备名如命名为\Device\PassthruC,即生成了用于读取原始磁盘数据的 私有接口,同时再通过系统函数PsSetLoadlmageNotifyRoutine来注册截获内核模块的加 载的接口,该接口命名为Sys ImageLoadNot ify。并在该Driver, sys初始运行时申请一部分内存空间,如命名为Map,用于记录重 定向区间对应关系,即为第一空间。同时从D分区申请一部分磁盘空间,如命名为Swap,用于保存重定向后操作的内 容,即预留空间。当用户在运行程序的过程中加载C:\a.SyS驱动(内核模块)时,此时被 SysImageLoadNotify接口截获,在该接口内的处理过程中,通过私有接口 \Device\ PassthruC对C: \a. sys内容发起磁盘读操作,而此时会被ProtectRead接口截获,在该 接口内的处理过程中,先通过调用系统函数ObQueryNameString,得到该读操作发起设备 名是\Device\PassthruC,可以得知是通过私有接口发起的操作,这种情况下就直接调用 ZwReadFile,而不经过重定向,直接读取磁盘原始数据,通过比较判断可以确认该C:\a. sys 与原始数据一致时,则认为是可信任的,允许其加载并运行;当用户在运行程序的过程中,生成了个恶意C: \b. sys驱动(内核模块),由于该 C:\b. sys文件生成过程中,需要先对磁盘进行写操作,所以其写磁盘操作,会被Driver, sys截获,从而进入ProtectWrite接口,最后将其重定向写到了 Swap的扇区中,进行写入操 作,并在前面申请的Map中,记录该重定向的关系,用于表示文件C \b. sys所涉及到的扇区 被重定向到了 Swap的空间中,最后完成该写请求;在处理完该C:\b. sys文件的写操作后, 恶意程序尝试加载该C: \b. sys驱动时,同样再会被Driver, sys截获,此时会进入前面注册 的截获内核模块加载的SysImageLoadNotify接口,在该接口的处理过程中,通过私有接口 \Device\PassthruC对C:\b. sys内容发起磁盘读操作,由于磁盘原始数据中没有该C:\b. sys (因为已被ProtectWrite接口处理中,重定向写到了 Swap的扇区中),所以可知该驱动 是不信任的,就可以拒绝其加载,这样就能防护该恶意C:\b. sys驱动的加载;当系统重启后,Driver, sys再次运行时,上次申请的Map已在关机时被清空释 放,此时可以再次申请一定的内容空间并同样命名为Map,而对上次申请的Swap空间, 可以删除后再重新申请或直接复用,如用户后面有对C分区进行读操作,此时Map中还 没有该扇区的重定向关系(无交集),所以直接通过调用系统函数ZwReadFile,读取的 就为原始内容,这样就达到了还原的目的,同时结合前面的ProtectRead/ProtectWrite/ SysImageLoadNotiffy等接口的处理,又能有效的防护内核模块的攻击。为了友好及易用性考虑,可以通过Manager.exe程序,在必要的时候提示用户当 前内核模块的状态。虽然此处说明描述了本发明的某此特征及一种实现方法,但是对于本专业的技术 人员来说,将会出现许多等同的修改、替换、变化和等代换,均应属本发明的保护范围。
权利要求
一种基于快照的系统防护方法,其特征在于,包括如下步骤步骤(一)a)在磁盘中指定用于重定向的预留空间;b)在磁盘或内存中指定用于记录对应关系的第一空间;c)生成用于读取原始磁盘数据的私有接口;指定预留空间之后,用户所有的正常读、写操作均针对非预留空间;步骤(二)截获用户对磁盘的读、写操作,对截获到的读、写操作进行如下处理关于写操作将截获到的写操作所针对的原磁盘空间重定向到步骤(一)所述的预留空间,即将该写操作所涉及的数据写入预留空间;并将该写操作所针对的原磁盘空间与实际写入的预留空间的对应关系记录到所述的第一空间中;也可以说该写操作所针对的原磁盘空间已被重定向;关于读操作a)如果该读操作是通过私有接口发起的,则按正常的读操作流程,不经过重定向处理而直接进行读取操作;b)如果该读操作不是通过私有接口发起的,则结合第一空间中记录的对应关系,进行如下判断如该读操作所针对的区间与参照区间无交集,则按正常读流程执行读操作,最后完成该读操作;如该读操作所针对的区间与参照区间有交集,则对于非交集区间的内容按正常读流程读取;对于交集区间的内容,根据该交集区间与预留空间的对应关系,从预留空间中读取相对应的内容;最后将读取的非交集区间的内容和交集区间的内容合并,完成该读操作;步骤(三)截获内核模块的加载,对于截获到的内核模块,如果该内核模块是不可信任的,则拒绝该内核模块的加载,如果该内核模块是可信任的,则允许加载并运行;步骤(四)系统重启时,清空并释放用于记录对应关系的第一空间;若所述的预留空间是启动操作系统后,再向操作系统申请的,则释放该预留空间;若所述的预留空间是在启动操作系统之前就已经预先完成划分,则无需进行操作。
2.如权利要求1所述的基于快照的系统防护方法,其特征在于,步骤(二)的读操作中 所述的参照区间是在写操作过程中经过重定向写到预留空间且其对应关系已记录在第一 空间中的所有区间。
3.如权利要求1所述的基于快照的系统防护方法,其特征在于,步骤(三)中判断内 核模块是否可信任时,通过所述的私有接口读取磁盘原始数据中的与该内核模块对应的数 据,判断该内核模块与其所对应数据的一致性,如果一致则是可信任的内核模块,否则为不 可信任的内核模块。
全文摘要
本发明公开了一种基于快照的系统防护方法,包括在磁盘中指定用于重定向的预留空间;在磁盘或内存中指定用于记录对应关系的第一空间;生成用于读取磁盘原始数据即快照的私有接口;截获用户对磁盘的读、写操作,截获内核模块的加载,对截获到的磁盘读、写操作,依据是否是通过私有接口发起的而进行分别处理,对截获到的内核模块与快照中的内容,比较后进行分别处理。本发明在现有技术中系统还原方法的基础上,再加一个私有接口及内核监控模块,能简单有效的抵御内核攻击,同时又能确保原来的还原系统能正常工作,从而达到系统防护的目的。
文档编号G06F21/00GK101833485SQ201010130799
公开日2010年9月15日 申请日期2010年3月23日 优先权日2010年3月23日
发明者将关平, 程琛, 谢海燕 申请人:杭州顺网科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1