
应用研究
Windows server 2008
服务器进程隐藏机制的研究与实现
袁源
(山西职业技术学院计算机工程系山西太原030006)
数事费十与度人
摘要:本论文研究了日前出现的各种进程隐藏技术,并利用WDM驱动编程验证了DKOM技水,评详期介绍了在WindowsServer2008服务器平台上搭建驱动开发环境的方法和达种技术的实现过程,并最终模拟了服务器系就中的遗程稳赢过程。在研究过程中利用WinDBG分析了重要的内核函数的实现机理,并查找了未公开的内植数据结构的定义。同时,本论文在实现进程隐藏的基础上,进一步实现了驱动程序模块的隐藏更加真实的模拟了高危病毒运行的过程以及病毒对服务器所带来的安全意惠。在测试阶投,本论文公选用了Windows资源管理器、Process、EFProcess Manager、Antiyports、ProcessViewer、proscan六种主流的进程查看工具分别进行进程隐藏验证。结果表明,DKOM机制能够暴过以上所有工具,完美地跨筑自身
关键词:进程隐戴Windows server2008DKOM技术WDM驱动编程
中图分类号:TP3 1引言
文献标识码:A
文章编号:1007-9416(2013)03-0110-02
法就是调用系统API,CreateToolHelp32Snapshot,Enum
WindowsServer2008是专为强化新一代IPv6网络,应用程序和Web服务的功能而设计的服务器系统。该系统虽是建立在 WindowsServer先前版本的成功与优势上,但是也因此继承了 Wndows系列操作系统的一些可能被病毒所利用的传统特征,如进程隐藏机制。所谓进程隐藏就是在用户不知情的情况下悄悄执行自已的代码。恶意代码通常通过隐自身进程信息,在用户察觉不到的情况下植人破坏性代码或窃取用户保密信息。进程隐,一直是病毒、木马程序设计者不断探求的重要技术,固为这些进程都需要很好的隐藏和保护自身信息。
当前,伴随着Windows服务器系统功能的日益发展与完善,木马技术也紧跟发展,使得术马在系统中更具隐藏性,更具危害性。本文在此背景下研究进程隐蕨机制,将有助于进一步了解和掌握木马技术的发展方向,有助于采取更有力的应对措施了解进程隐藏技术,是开发防病毒和马软件的基础,同时也助于促进信息安全技术的发展,
有些情况下,进程隐藏也是某些类型程序所需要的功能,如某些系统安全控制程序,例如网络流量监控系统,这种程序需要在服务器系统中长驻,不能随意停止和卸载,这则要求进程能有效保护和隐藏自已,以防止用户恶意删除和卸载。在当前企业中要求提供高度安全的网络基础架构,以提高和增加技术效率与价值的大趋势下,分析此
背录下木马实现的关链技术,必将具有重要的的现实意义。 2Windows系列操作系统中的进程隐藏技术
进程是程序运行的基础,因此检查进程也就成了查杀木马的关键环节,所以,对木马设计者面言,成功隐藏自已的进程信息,就是其最重要的基础工作。随着术马技术的不断发展,进隐藏技术也在不断发更新。
进程隐藏技术在不断的发展中,在WiNT架构服务器时代第一代进程隐藏技术就已经出现。早在Windos98系统当中,微软公司就提供了一种将进程注册为服务的方法,这种技术称为 Pegister Service Process。
由于这种隐藏技术存在严重的版本限制性,从面引发了第二代进程隐藏技术的研究,称之为进程插人。利用的技术有DLL插人技术、远程线程插人技术等,这种隐藏技术较之第一代更为高级和险赢。继进程插人技术之后,新的进程隐藏技术又飞速发展,称为 HOOKAPI技术。Windows系统给开发人员提供了儿种列出系统中所有的进程,模块与驱动程序的方法,最常见的也是最常用的方
110
Process,EnumProcessModules等,它们是获取进程列表的第层手段,调用这几个AP函数,就可以得带系统当前运行进程的返回列表。
这儿个API在接到请求后会调用ZWQuerySystem Information,ZwQueryStstemInformation,会调用KiSystem Service切人内核进人ringo权限,然后自SSDT表(SystemService Descriptor Table,系统服务分配表)中查得NtQuery System In-formation的地址,并调用其指间的实际代码,其运行原理是从系统的数据结构中取相应的数据,再返回给调用者。
在此过程中,在任何一个环节上进行拦截都可以实现隐藏进程的目的,在切入内核进人root0权限前进行HOOK,称为用户模式 HOOK,而在之后进行HOOK则是内核模式HOOK,后者需要驱动才能实现。它比前几种技术更为成熟。这种技术使得术马不必将自已插人到其他进程中,即可实现自身信息的隐巅。
更为高级的技术是DKOM一直接内核对象修改技术,是由木马程序将自身的进程信息从Wirxdows服务器系统用以记录进程信获得本马的进程信息。Windows服务器系统枚举进程使用的是活动进程列表PsActiveDrocesslist,所有结点通过EPROCESS结构中的ActiveProcessLinks双向指针链在一起,EPROCESS结构中有个双向链表LIST_ENTRY结构,这个结构有两个DWORD指针成员FLINK和BLINK,这两个指针分别指向当前进程的前一个和后一个进程。要隐敲某个进程,只需修改对应ERPOCESS的Active Process Links,将其从链表中摘除。只要把当前进程的前一个进程的BLINK指向当前进程后一个进程的FLINK,再把当前进程后一个进程的FLINK指向当前进程前一个进程的FLINK。由于系统执行线程调度使用的是其他的数据结构,因此这种修改不会影响进程运行。
3对DKOM进程隐藏技术的模拟与验证
在研究的各种进程隐蔗技术中,最有效的是DKOM(Direct KernelObjectManipulation,DKOM直接内核对象修改技术) 这种技术绕过了对象管理器,直接对内核对象进行操作,从而绕过了所有关于对象的访问检查,彻底实现了进程隐藏,由于这种技术直接操作内核对象,需要ringo的运行权限,所以必须通过WDM驱动开发来实现。
....下转第112页