CN101833485A - 一种基于快照的系统防护方法 - Google Patents
一种基于快照的系统防护方法 Download PDFInfo
- Publication number
- CN101833485A CN101833485A CN201010130799A CN201010130799A CN101833485A CN 101833485 A CN101833485 A CN 101833485A CN 201010130799 A CN201010130799 A CN 201010130799A CN 201010130799 A CN201010130799 A CN 201010130799A CN 101833485 A CN101833485 A CN 101833485A
- Authority
- CN
- China
- Prior art keywords
- read
- headspace
- disk
- interval
- kernel module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于快照的系统防护方法,包括在磁盘中指定用于重定向的预留空间;在磁盘或内存中指定用于记录对应关系的第一空间;生成用于读取磁盘原始数据即快照的私有接口;截获用户对磁盘的读、写操作,截获内核模块的加载,对截获到的磁盘读、写操作,依据是否是通过私有接口发起的而进行分别处理,对截获到的内核模块与快照中的内容,比较后进行分别处理。本发明在现有技术中系统还原方法的基础上,再加一个私有接口及内核监控模块,能简单有效的抵御内核攻击,同时又能确保原来的还原系统能正常工作,从而达到系统防护的目的。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种系统防护方法。
背景技术
在学校机房或网吧等公共场所,一般一台电脑都是分时段的提供给多个用户使用,这种方案优势明显,但在实际运作中也存在着不足,其中一个较明显的问题是,当上一个用户恶意或无意(误操作/中病毒等)修改了系统的文件或配置,则就可能直接影响了后面用户的正常使用。为解决这一问题,比较典型的解决方案就是安装硬盘还原卡,这样只要通过一次重启,软件系统就恢复到原来的状态,也可以理解为还原到原来的系统快照。
一般还原方法的实现原理(如图1),主要是截获对磁盘的写操作,再将该写操作区间重定向到空闲区间进行写入,同时记录该写操作区间与重定向区间的对应关系,最后完成该写操作。当截获到读磁盘操作时,则结合已记录的重定向区间的对应关系,进行判断处理,如该读操作区间与已记录的重定向对应关系中的区间无交集,则按正常读流程执行读操作,最后完成该读操作;如有上述两区间有交集,则可先按正常读流程读取非交集区间的内容,再结合重定向区间的对应关系,读取被重定向的该交集区间的内容,在合并两种读操作的读取的内容后,最后完成该读操作。结合上述还原程序对读写的处理,还原程序只要在系统重启后,清空上次重定向区间的对应关系及重定向区间所占用的空间,就可使软件系统恢复到原来的状态,到达还原的目的。
但随着计算机病毒或恶意软件技术的发展,一些更底层的攻击技术也在不断的加强,上述基于还原的系统保护方法,受到了很大的挑战,甚至会失效。目前已发现的病毒中,有通过加载一个恶意的驱动来进行对上述还原软件进行破坏的例子,这种病毒通过加载驱动程序,获得操作系统内核权限后,直接修改上述运行中的还原软件的执行指令,而使还原软件的截获磁盘读写的功能失效,更有甚者出于特殊目的,直接通过恶意内核模块使系统崩溃,扰乱正常秩序。
要对付这种情况,就需要对内核模块的加载运行进行监控,对不可信任的内核模块,拒绝让其加载运行,而使可信任的内核模块依旧能正常运行。但考虑到实际的情况,如一般网络游戏都自带内核程序,用于防止盗号,及用户的USB磁盘或摄像头等,使用时也会加载驱动,再结合系统已有的很多的驱动程序,这样数量众多的内核模块,而且有的内核模块有一定的隐蔽性,要逐个区分出其是否是可信任的,是项工作量很大的工作。同时由于实际运行环境的不同,就需要用户协助来对内核模块的可信任性做判断,这样易用性差,且有较大的误操作可能,因为用户不一定有这方面很专业的知识来判断。
发明内容
本发明的目的就在于提供一种在实现还原功能的同时,又能简单有效的抵御内核模块攻击的系统防护方法。
一种基于快照的系统防护方法,包括如下步骤:
步骤(一)
a)在磁盘中指定用于重定向的预留空间;
b)在磁盘或内存中指定用于记录对应关系的第一空间;
c)生成用于读取原始磁盘数据的私有接口;
所述的在磁盘中指定的预留空间可以是在启动操作系统之前就已经预先完成划分;也可以是启动操作系统后,再向操作系统申请。
指定预留空间之后,用户所有的正常读、写操作均针对非预留空间,而不会针对所述的预留空间。
步骤(二)
截获用户对磁盘的读、写操作,对截获到的读、写操作进行如下处理:
关于写操作
将截获到的写操作所针对的原磁盘空间(非预留空间)重定向到步骤(一)所述的预留空间,即将该写操作所涉及的数据写入预留空间;
并将该写操作所针对的原磁盘空间与实际写入的预留空间的对应关系记录到所述的第一空间中;也可以说该写操作所针对的原磁盘空间已被重定向。
关于读操作
a)如果该读操作是通过私有接口发起的,则按正常的读操作流程,不经过重定向处理而直接进行读取操作;
b)如果该读操作不是通过私有接口发起的,则结合第一空间中记录的对应关系,进行如下判断:
如该读操作所针对的区间与参照区间无交集,则按正常读流程执行读操作,最后完成该读操作;
如该读操作所针对的区间与参照区间有交集,则对于非交集区间的内容按正常读流程读取;对于交集区间的内容,根据该交集区间与预留空间的对应关系,从预留空间中读取相对应的内容;最后将读取的非交集区间的内容和交集区间的内容合并,完成该读操作;在读取非交集区间和交集区间的内容时并没有严格的先后顺序要求,可以如下三种情况:
①先将非交集区间的内容A和交集区间的内容B均按正常流程从非预留空间中读取,再从预留空间中读取与交集区间相对应的内容B`,然后用从预留空间中读取的交集区间的内容B`把从非预留空间中读取的交集区间的内容B覆盖,构成完整的内容AB`。
②先将非交集区间的内容A按正常流程从非预留空间中读取,再从预留空间中读取与交集区间相对应的内容B`,经合并后构成完整的内容AB`。
③先从预留空间中读取与交集区间相对应的内容B`,再将非交集区间的内容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\HarddiskVolume1上,这样在该Driver.sys运行后,就可以截获到系统中对C分区的所在磁盘区域的读写操作,该Driver.sys对写操作截获的函数接口命名为ProtectWrite,对读操作操作截获的函数接口命名为ProtectRead,同时再通过调用系统函数IoCreateDevice创建另一个私有的设备名如命名为\Device\PassthruC,即生成了用于读取原始磁盘数据的私有接口,同时再通过系统函数PsSetLoadImageNotifyRoutine来注册截获内核模块的加载的接口,该接口命名为SysImageLoadNotify。
并在该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程序,在必要的时候提示用户当前内核模块的状态。
虽然此处说明描述了本发明的某此特征及一种实现方法,但是对于本专业的技术人员来说,将会出现许多等同的修改、替换、变化和等代换,均应属本发明的保护范围。
Claims (3)
1.一种基于快照的系统防护方法,其特征在于,包括如下步骤:
步骤(一)
a)在磁盘中指定用于重定向的预留空间;
b)在磁盘或内存中指定用于记录对应关系的第一空间;
c)生成用于读取原始磁盘数据的私有接口;
指定预留空间之后,用户所有的正常读、写操作均针对非预留空间;
步骤(二)
截获用户对磁盘的读、写操作,对截获到的读、写操作进行如下处理:
关于写操作
将截获到的写操作所针对的原磁盘空间重定向到步骤(一)所述的预留空间,即将该写操作所涉及的数据写入预留空间;
并将该写操作所针对的原磁盘空间与实际写入的预留空间的对应关系记录到所述的第一空间中;也可以说该写操作所针对的原磁盘空间已被重定向;
关于读操作
a)如果该读操作是通过私有接口发起的,则按正常的读操作流程,不经过重定向处理而直接进行读取操作;
b)如果该读操作不是通过私有接口发起的,则结合第一空间中记录的对应关系,进行如下判断:
如该读操作所针对的区间与参照区间无交集,则按正常读流程执行读操作,最后完成该读操作;
如该读操作所针对的区间与参照区间有交集,则对于非交集区间的内容按正常读流程读取;对于交集区间的内容,根据该交集区间与预留空间的对应关系,从预留空间中读取相对应的内容;最后将读取的非交集区间的内容和交集区间的内容合并,完成该读操作;
步骤(三)
截获内核模块的加载,对于截获到的内核模块,如果该内核模块是不可信任的,则拒绝该内核模块的加载,如果该内核模块是可信任的,则允许加载并运行;
步骤(四)
系统重启时,清空并释放用于记录对应关系的第一空间;
若所述的预留空间是启动操作系统后,再向操作系统申请的,则释放该预留空间;
若所述的预留空间是在启动操作系统之前就已经预先完成划分,则无需进行操作。
2.如权利要求1所述的基于快照的系统防护方法,其特征在于,步骤(二)的读操作中所述的参照区间是在写操作过程中经过重定向写到预留空间且其对应关系已记录在第一空间中的所有区间。
3.如权利要求1所述的基于快照的系统防护方法,其特征在于,步骤(三)中判断内核模块是否可信任时,通过所述的私有接口读取磁盘原始数据中的与该内核模块对应的数据,判断该内核模块与其所对应数据的一致性,如果一致则是可信任的内核模块,否则为不可信任的内核模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101307998A CN101833485B (zh) | 2010-03-23 | 2010-03-23 | 一种基于快照的系统防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101307998A CN101833485B (zh) | 2010-03-23 | 2010-03-23 | 一种基于快照的系统防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101833485A true CN101833485A (zh) | 2010-09-15 |
CN101833485B CN101833485B (zh) | 2011-12-21 |
Family
ID=42717561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101307998A Active CN101833485B (zh) | 2010-03-23 | 2010-03-23 | 一种基于快照的系统防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101833485B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727367B (zh) * | 2010-01-18 | 2011-06-01 | 杭州顺网科技股份有限公司 | 一种可保留更新数据的系统还原方法 |
CN105488389A (zh) * | 2014-12-08 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种蜜罐数据库的更新和还原方法及系统 |
CN105653980A (zh) * | 2015-12-30 | 2016-06-08 | 福建联迪商用设备有限公司 | 一种虚拟内存数据的保护方法及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338751A (zh) * | 2001-07-05 | 2002-03-06 | 刘海全 | 一种计算机硬盘数据的保护方法 |
US20030163493A1 (en) * | 2002-02-22 | 2003-08-28 | International Business Machines Corporation | System and method for restoring a file system from backups in the presence of deletions |
CN1530849A (zh) * | 2003-03-14 | 2004-09-22 | 宏�股份有限公司 | 多功能操作系统还原方法及系统 |
-
2010
- 2010-03-23 CN CN2010101307998A patent/CN101833485B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338751A (zh) * | 2001-07-05 | 2002-03-06 | 刘海全 | 一种计算机硬盘数据的保护方法 |
US20030163493A1 (en) * | 2002-02-22 | 2003-08-28 | International Business Machines Corporation | System and method for restoring a file system from backups in the presence of deletions |
CN1530849A (zh) * | 2003-03-14 | 2004-09-22 | 宏�股份有限公司 | 多功能操作系统还原方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727367B (zh) * | 2010-01-18 | 2011-06-01 | 杭州顺网科技股份有限公司 | 一种可保留更新数据的系统还原方法 |
CN105488389A (zh) * | 2014-12-08 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种蜜罐数据库的更新和还原方法及系统 |
CN105488389B (zh) * | 2014-12-08 | 2018-05-08 | 哈尔滨安天科技股份有限公司 | 一种蜜罐数据库的更新和还原方法及系统 |
CN105653980A (zh) * | 2015-12-30 | 2016-06-08 | 福建联迪商用设备有限公司 | 一种虚拟内存数据的保护方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101833485B (zh) | 2011-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270015B2 (en) | Secure disk access control | |
US10032024B2 (en) | System and method for virtual partition monitoring | |
US9460270B2 (en) | Generating child virtual machine to execute authorized application with reduced risk of malware attack | |
CN102289386B (zh) | 通过部分虚拟化机器的统一存储设备 | |
CN103827809B (zh) | 用于虚拟分区监测的系统和方法 | |
CN108475217A (zh) | 用于审计虚拟机的系统及方法 | |
CN102207886A (zh) | 虚拟机快速仿真辅助 | |
CN101655798A (zh) | 一种计算机和虚拟机环境中应用程序部署和运行的方法 | |
RU2527738C1 (ru) | Способ обезвреживания вредоносных программ, блокирующих работу пк, с использованием отдельного устройства для активации пользователем процедуры противодействия вредоносному программному обеспечению | |
US10783041B2 (en) | Backup and recovery of data files using hard links | |
KR101673299B1 (ko) | 운영 시스템 복구 방법 및 장치, 그리고 단말기기 | |
CN105512550A (zh) | 用于活跃的操作系统内核保护的系统和方法 | |
CN101833485B (zh) | 一种基于快照的系统防护方法 | |
US20210141894A1 (en) | Computer having isolated user computing unit | |
CN100514305C (zh) | 实现操作系统安全控制的系统及方法 | |
US9852029B2 (en) | Managing a computing system crash | |
CN109446847B (zh) | 双系统外设资源的配置方法、终端设备及存储介质 | |
CN102737198B (zh) | 对象保护方法及装置 | |
US8572742B1 (en) | Detecting and repairing master boot record infections | |
US20130111163A1 (en) | Multiple Computing Environments On A Computer System | |
US10592663B2 (en) | Technologies for USB controller state integrity protection | |
US8365206B1 (en) | Methods and systems for handling component-object-model communications | |
CN101727367B (zh) | 一种可保留更新数据的系统还原方法 | |
EP3507736A1 (en) | Method for avoiding a return oriented programming attempt on a computer and respective devices | |
US8578142B2 (en) | System and method for shared data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C53 | Correction of patent for invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Cheng Chen Inventor after: Jiang Guanping Inventor after: Xie Haiyan Inventor before: Cheng Chen Inventor before: Jiang Guanping Inventor before: Xie Haiyan |