APP下载

内核级数据保护和恢复技术的研究与实现

2020-05-21刘冀卿程红林丁乾孙典贾宏志窦唯

电脑知识与技术 2020年9期
关键词:数据恢复数据保护信息安全

刘冀卿 程红林 丁乾 孙典 贾宏志 窦唯

摘要:在推动国民经济和社会信息化的历程中,政府,企业及个人越来越多关注的是信息的安全。信息安全的核心是数据的安全,但在实际操作中又很难防止出现数据毁坏或丢失的现象。该系统在充分研究数据恢复原理、内核安全和汇编语言的基础上,设计实现了在数据未受到破坏前预先对Rootkit为代表的内核级木马进行内核级别的预先防护和对被新型木马破坏后的系统进行数据重建的两大功能。部署该系统后,用户可以根据自身需要手动进行数据恢复并且能全方位的利用ARK技术监控内核维护系统内核的安全性和完整性实现二次防护。

关键词:信息安全;数据保护;rootkit;内核防护;数据恢复

中图分类号:TP393 文献标识码:A

文章编号:1009-3044(2020)09-0007-04

1 背景

随着现代计算机技术的发展,人们对信息的依赖越来越强,各类信息存储介质成为人生活工作中不可或缺的组成部分[1]。但每年由于病毒入侵、人员疏忽等原因引起的数据丢失现象却频频发生,存储于各式信息设备中的数据一旦丢失,会造成难以估计的财产损失。2017年全球爆发了Wannacry勒索病毒事件,该事件波及面广,影响深大,全球至少150个国家深受其害,应用业务被迫中断,超过20万台以上PC的数据被破坏[2]。面对巨大的信息安全漏洞,数据恢复行业技术因此应运而生[3]。

在安全领域,Rootkit技术发挥着重要作用。Rootkit是恶意软件用于隐藏自身及其他特定资源和活动的程序集合[4]。在常见的木马病毒等手段对目标机器的攻击中,常常采用Rootkit技术隐藏自身的文件、进程等信息达到长期潜伏于目标系统中的目的,以此来对抗目标主机入侵检测系统的检测和防护[5]。

鉴于以上两点,本系统将ARK(anti-rootkit)技术和数据恢复技术结合起来,一方面维护计算机不受Rootkit对计算机数据的窃取和破坏,另一方面在防护不当的情况下仍可以对存储介质的残留数据进行有效恢复,实现二次防护。

2 系统设计

2.1 数据恢复模块

目前数据恢复技术已被广泛使用,但一般的数据恢复软件中采用基于文件系统目录信息的数据恢复方法,即根据FAT文件系统中的FDT、FAT等记录文件目录数据进行恢复[6]。根据文献[7-9]丢失的文件在NTFS文件系统中一般是根据MFT目录信息来恢复文件,这种方法在磁盘格式化或者其他原因导致文件目录信息即FDT、MFT完全丢失后将无法进行数据重建。

针对这种情况,本系统使用一种Windows平台下通用的数据恢复算法。在Windows中各类文件都有一定的数据特征,基于不同文件的文件头部和文件尾部便能进行数据的重建[10]。基于文件特征的恢复算法思想是对某一选定磁盘的扇区进行深度扫描,匹配所指定文件格式的文件特征头,如此就找到了一个文件在磁盘上的起始扇区,再次匹配到相应的文件尾部,找到特征文件的结束位置。将文件头部起始扇区的数据和文件尾部扇区之间的数据进行数据整合,并根据原始文件类型重建数据。只要磁盘上存在此种文件的文件特征,那么对应该种类型的文件都可以在磁盘上被找出。

2.2 数据保护模块

2.2.1 数据保护模块设计

数据保护模块主要由系统钩子监测模块,驱动加载监测模块,进程监控模块,注册表监控模块,启动项监测模块,服务项监测模块六个子模块构成。

数据保护模块的架构主要包括应用层3层和内核层。应用层分为用户交互层、控制层、逻辑层、内核通信层。当程序执行时,用户交互层接收用户指令并传递给控制层,根据指令,调用相应的业务逻辑。如果下层需要调用内核,则生成相应的请求,调用内核通信层的接口,将请求传递给内核模块,内核模块根据请求调用分发函数,将执行结果往下层传递,最后在用户交互层显示用户界面。

程序启动后,首先加载驱动程序到内核中,等待应用层程序准备就绪后,应用程序从驱动程序获取相关基础信息进行初始化操作,初始化完毕后向用户展示默认用户界面。通过鼠标向应用程序传达监测模块切换命令,每次切换会向内核的驱动程序发出控制信号。在驱动程序中会调用相关的分发函数,并进行一系列操作。用户层在获得内核的执行结果前需要等待,当数据最终返回到应用层程序后,展示对应操作结果的用户界面。当用户结束对目的主机的监测后,内核模块会得到卸载。对应的程序执行流程过程图如图1所示。

3 系统实现

3.1 数据恢复模块

运行数据恢复程序,选定目的主机上的一块磁盘,勾选要恢复的文件的文件类型。程序可支持图像类型、音频类型、文档类型、声频类型等文件类型,或者勾选单个Windows所支持的文件扩展名,点击右下角的恢复按钮执行数据恢复工作。如图2为例演示选定C盘后恢复图像类型的文件,恢复过程中会同步显示所匹配文件的文件大小,重建的文件数量等基础信息。

3.2 驱动加载监测模块

恶意软件为了能进一步提升自己的权限,会将自己“注入”到内核中,即工作在应用层的程序通过漏洞越权加载恶意驱动程序到内核的行为。通过加载到内核,使其可以工作在ring0层上,以此获得高权限来执行特权指令。

本系统考虑到这点,对已加载到内核中的驱动进行了监控。ring3层加载驱动,一般以创建服务的方式进行,其最终则会调用NtLoad Driver函数。通过hook技术挂钩该函数,每次对该函数有新的调用,就会产生控制信号发往本驱动程序对应的分发例程进行处理。在内核态中获得数据后会和在ring3层的通信程序进行实时信息交换,最终获取到的数据展示在用戶界面时的情况如图3所示。程序可以获取到所有的驱动程序的驱动名称、驱动所在基地址、驱动大小(以字节计)等信息。

3.3 进程监测模块

受运行权限限制,用户模式下Rootkit通过设置钩子“钩住”对应监控进程的函数,并篡改函数执行的结果,如篡改所在磁盘上的映像路径或者更改自身的进程名,以此伪装成正常的应用程序达到进程隐藏的目的。

通过让驱动程序挂钩NTCreate Process/NTCreate User Pro-cess这两个进程创建函数,在内核中实时通知驱动程序新进程的创建,并通过使用ring0层的ZwQuerySystemlnformation函数从EPROCESS和KPROCESS中读取rootkit的真实进程信息,而避免进程对进程信息的恶意篡改。如图4所示,通过驱动程序可以获取到所有进程在内核创建时的映像名称、进程ID、父进程ID、映像路径和相应的进程地址。部分恶意程序工作在应用层,故很难更改在内核层的进程创建信息,因此通过对比应用层的进程监控软件和本系统的进程监控模块的信息可以达到进程防护的效果。

3.4 系统钩子监测模块

NT结构下,Native API通过int Ox2e指令或者sysenter指令陷入内核,调用内核中的服务程序,向用户层提供服。而调用内核层系统服务最为重要的是存放在内核中的一张系统服务描述符表(SSDT和Shadow SSDT)。这两张表规定了向用户层提供服务的系统服务入口和服务号。部分内核Rootkit通常对这两张表进行hook操作,将原本的服务人口地址恶意修改后指向自己可控的服务人口地址.从而改变系统服务例程原始的执行逻辑。通过挂钩系统服务描述符表,恶意程序可以监控所有来自应用层和部分工作在内核态的程序行为,以此实现进一步的利用和破坏。

系统钩子监测模块着重对SSDT和Shadow SSDT这两张表进行了监控。驱动程序在内核中获取KeServiceDescriptorTable的地址后,通过解析KeServiceDescriptorTable地址对应的结构体数组的第一项和第二项获取到所有服务的服务例程名称,服务例程当前的人口地址和原始的人口地址。通过前后函数地址的对比来有效判断其服务人口地址是否超出了服务人口最大地址判断是否有恶意程序在攻击系统描述符表。对SSDT和Shadow SSDT的监测模块如图4和5所示。

3.5 注册表监测模块

注册表在操作系统的重要性不言而喻。注册表是一个集中管理系统硬件和软件各项配置的数据库,其中存放的各种参数,直接控制着Windows操作系统的核心信息[12]。

本模块用以实时监测注册表,一旦用户开启注册表监控功能,系统主线程会额外创建一个新线程,专门用于监测对注册表的操作。Windows内核函数中有专用的注册表过滤处理函数,驱动程序通过调用CmRegister Callback注册一个RegisterCallback回调函数,并能通过调用CmUnRegisterCallback来注销这个回调函数。Register Callback能够在配置管理器执行操作之前接收注册表操作的通知请求,也能在操作完成后记录这些操作。

此外,本模块通过直接解析HIVE文件树得到注册表中的配置信息,防止Rootkit恶意程序提前对注册表的回调函数进行挂钩隐藏。本系统通过对HIVE文件中的BIN、CELL逐步解析获得单个注册表项从而递归解析整个HIVE树,解析后反馈到界面上注册表数据如图7所示。

3.6 启动项监测模块

部分破坏性木马病毒通过将自身的启动路径恶意写入系统自启动项中达到持久控制的效果,当宿主机一旦启动便会根据自启动程序的路径依次执行各个自启动项。由于写入启动项的方式较多,所以本模块对启动项的监控面较广,具体包括:

1)监测 HKEY_CURRENT_USER\Software\Microsoft\Win-dows\Current Version\Run路径下面的表项以及HKEY_ LO-CAL MACHINE\SoftwareYMicrosoft\Windows\Current Version\Run下面的注冊表项

2)监测 HKEY_CURRENT_USER\Software\Microsoft\Win-dows\Current Version\Policies\Explorer\Run下面的注册表项以及监测 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Win-dows\Current Version\Policies\Explorer\Run下面的注册表项

3)对Runonce的监测,具体的注册表的路径是HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce以及HKEY—LOCAL—MACHINE\Software\Mi-crosoft Windows\Current Version\RunOnce

4)对注册表中其他位置的注册表项的监测,具体的注册表路径为HKEY_CURRENT_USER\Software\Microsoft\Win-dows\Current Version\Policies\System\Shell

注册表监测出来的结果通过内核驱动将数据回传给应用层程序进行界面展示,本软件对自启动注册表项描述的启动程序路径进行整合后将操作系统自启动的程序信息显示在用户界面上,对应的示意图如图8所示。

3.7 服务监测模块

通常Rootkit为了提升自己的权限,会将自己注册为服务程序来获得对目的主机的持久控制。本模块在应用层使用EnumServices Status函数来遍历系统中服务程序,获取到的服务程序信息如图9所示。

4 结束语

常规防御手段往往只从系统内核出发进行保护,而一旦防护技术有所漏洞被入侵者绕过,那么防护的关键数据就很有可能受到破坏,导致数据泄露或遗失。本系统在尽可能兼顾主流Rootkit之类的恶意软件的基础上,又对可能发生的数据被破坏的情形进行处理,最大可能恢复误删除、或恶意软件及木马篡改的数据。本系统兼容多种操作系统,并为用户设计实现了一个友好的用户界面,用户通过鼠标点击即可使用不同的监控模块接口服务实现对自身主机的监控操作,并在用户防护不当的情况下启动数据恢复程序对遗失文件进行二次恢复。木马病毒的编写者在经济效益的利诱下,研究使用新型进程隐藏技术,绕过现有防护系统的防护。本系统在与恶意Rootkit的攻防中将与时俱进,研究新型防护方案,实现更为有力强大的防护系统。

参考文献:

[1]赵蓉英,余波.网络信息安全研究进展与问题探析[J].现代情报,2018,38(11): 116-122.

[2]方钦.勒索病毒攻击事件漏洞分析及应对防护策略[J].网络安全技术与应用.2018(11): 103-104.

[3]胡越乔.计算机数据备份和数据恢复技术分析[J].中国战略新兴产业,2017(48): 91.

[4]梁冰.Windows Rootkit实现及其检测技术分析[J].电子世界,2013(9): 13-15.

[5]马松松.Rootkit检测与反检测技术的研究与实现[D].西安:西安理工大学,2017.

[6]迟扬,李亚波.FAT32文件系统下的数据恢复分析[Jl.计算机安全,2011(4): 66-68.

[7]陈培德,王丽清,吴建平.NTFS被快速格式化成NTFS后数据恢复的研究[J].计算机技术与发展,2018,28(8): 191-195.

[8]唐文昊,李孟轩,唐文艳,等.NTFS文件系统的数据恢复[Jl.视听,2018(4): 107-109.

[9]张明旺.基于NTFS文件系统的数据恢复技术[J].福建电脑,2012,28(5): 81-82,86.

[10]胡敏,杨吉云,姜维.Windows下基于文件特征的数据恢复算法[J].计算机应用,201 1,31(2): 527-529.

[11]袁海峰,范曉鹤.基于JPEG文件结构特征码的数据恢复技术分析与实现[J].苏州市职业大学学报,2016,27(1): 31-35.

[12]范书平,杨文君.Windows注册表详解[Jl.牡丹江师范学院学报:自然科学版,2005(1): 20-21.

【通联编辑:谢媛媛】

基金项目:江苏省大学生创新创业训练项目(项目编号:xcx2019028)

作者简介:刘冀卿(1999-),男,安徽宿州人,学生,主要研究方向为信息安全;程红林(1974-),男,副教授,研究方向为信息安全;丁乾(1998-),男,学生,研究方向为信息安全;孙典(1999-),男,学生,研究方向为信息安全;贾宏志(1998-),男,学生,研究方向为信息安全;窦唯(2000-),女,学生,研究方向为信息安全。

猜你喜欢

数据恢复数据保护信息安全
保护信息安全要滴水不漏
高校信息安全防护
TPP生物药品数据保护条款研究
欧盟数据保护立法改革之发展趋势分析
欧盟《一般数据保护条例》新规则评析
保护个人信息安全刻不容缓
药品试验数据保护对完善中药品种保护制度的启示
信息安全