Rootkit进程隐藏和检测技术研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Rootkit进程隐藏和检测技术研究

Rootkit进程隐藏和检测技术研究   摘要:进程(Process)是操作系统进行资源分配和调度的基本单位,是Windows系列操作系统结构的基础。进程隐藏虽然能够为计算机取证提供便利,但是增加了检测系统中运行的恶意代码的难度。在深入研究Windows进程隐藏技术的基础上,针对常用进程隐藏技术的特点,提出几种Windows操作系统下检测隐藏进程的方法。这些方法能够准确、快速地检测操作系统中隐藏的进程。   关键词:系统内核安全;进程隐藏;进程检测;Rootkit   DOIDOI:10.11907/rjdk.161009   中图分类号:TP306+.2   文献标识码:A 文章编号:1672-7800(2016)005-0188-03   0 引言   Rootkit是一个功能强大的工具包。它由一些小程序组成,能够使攻击者持续隐蔽地访问计算机上的“root”用户。即Rootkit是能够持久、隐蔽、且可靠地运行于计算机上的一组程序或代码。在上述Rootkit描述中关键词是“隐蔽”,即隐藏代码和数据,其中进程隐藏是Windows Rootkit技术中典型的一种。对于一些计算机取证工具来说,进程隐藏能够为其带来便利,同时将系统中的防护进程隐藏起来,也可以阻止恶意程序对于杀毒软件的干扰,使防护效果更加有效。但是进程隐藏技术也是一把双刃剑,它能够使恶意代码潜行在内核中,不被发现,当隐藏技术被用于恶意代码时,会给安全带来毁灭性的打击。所以,准确检测出系统隐藏进程十分必要。   1 进程隐藏技术   Rootkit所采用的大部分技术和技巧都用于在计算机上隐藏代码和数据。绝大多数Rootkit都可实现文件、目录和进程等信息的隐藏[1]。从隐藏时采用的手段看,进程隐藏技术机理主要归结为两类:一是通过修改程序执行,截获所有访问隐蔽资源的请求,称为修改程序执行路径(Modify Execution Path,MEP)技术;二是直接修改操作系统用于监控系统资源的数据,称为直接内核对象操作(Direct Kernel Object Manipulation DKOM)技术。这两种机理分别对应拦截挂钩隐藏技术及直接修改内核数据隐藏技术。   1.1 拦截挂钩(MEP)隐藏技术   所谓拦截挂钩技术即通过挂钩系统函数或相关处理例程,使其先转向事先编写好的函数处理,实现过滤参数、修改目标函数处理结果、删除特定进程信息,从而实现进程隐藏。按照挂钩位置不同,挂钩拦截技术可分为用户态挂钩和内核态挂钩两类。用户态钩子属于Windows操作系统3环(用户态)下的拦截。一般情况下,3环进程使用CreateToolhelp32Snapshot等函数查询进程列表信息。Rootkit针对此类函数设置API钩子,在API钩子中删除被挂钩函数返回的特定进程信息,从而隐藏特定进程[2]。Windows平台下的应用程序一般都会调用Kernel32.dll中的相应函数,接着再跳转到Ntdll.dll中的相关函数,最后由Sysenter 或 int 2E指令使调用跳转到内核层,具体执行过程如图1实线部分所示。通过分析Windows API调用过程得知,也可以通过挂钩Ntdll.dll中的ZwQuerySystemInformation更好地实现进程隐藏[3]。在Windows系统中,要列出系统正在运行的所有进程信息,3环下的程序最终都会调用Ntdll.dll中的ZwQuerySystemInformation,因此在所有进程中均对Ntdll.dll中的该函数挂钩即可实现进程隐藏。该方法几乎是用户态挂钩最有效的进程隐藏方式。   内核态挂钩常用的方法是挂钩系统服务调用表(System Service Dispatch Table)即Hook SSDT,SSDT[4]表中的第一项是系统服务的索引号,第二项是索引对应系统服务函数在Ntoskrnl.exe 进程空间中的地址。ZwQuerySystemInformation在SSDT中的索引号为0xAD,通过该索引找到对应的函数地址,并将其修改为可过滤特定进程信息的函数地址,即可实现进程隐藏。   1.2 修改内核数据(DKOM)隐藏技术   挂钩的隐藏技术非常容易被检测到,而DKOM直接操纵内核数据隐藏进程极难检测,是现阶段隐藏进程最有效的方法。正常环境下,更改进程或者令牌等内核对象时需要深入到内核对象管理器中,而DKOM绕过对象管理器,从而绕过所有关于对象的常规检测。Windows NT系列的操作系统利用可执行对象EPROCESS[5]描述进程信息。进程对象EPROCESS中有LIST_ENTRY结构成员,它包含指针FLINK和BLINK。这两个指针分别指向当前进程描述符的前方进程和后方进程,该结构将所有进程

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档