(计算机应用技术专业论文)持久型windows+rootkit检测技术的研究与实现.pdf_第1页
(计算机应用技术专业论文)持久型windows+rootkit检测技术的研究与实现.pdf_第2页
(计算机应用技术专业论文)持久型windows+rootkit检测技术的研究与实现.pdf_第3页
(计算机应用技术专业论文)持久型windows+rootkit检测技术的研究与实现.pdf_第4页
(计算机应用技术专业论文)持久型windows+rootkit检测技术的研究与实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)持久型windows+rootkit检测技术的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 r o o t k i t 是攻击者在入侵系统后用来保持对系统的超级用户访问权限,创建 后门和隐藏攻击痕迹等常采用的一种技术。r o o t k i t 存在于l i n u x ,s o l a r i s 和 w i n d o w s 等各种操作系统上。 根据r o o t k i t 的外部表现,r o o t k i t 分两种:可持久的r o o t k i t 和基于内存 的r o o t k i t 。其最根本的区别就是被感染的机器重新启动后,两者的持久性。可 持久的r o o t k i t 在系统重启后还继续存在,而基于内存的r o o t k i t 则不行。永久 型r o o t k i t 因其长期隐秘存在于受害系统中,被认为是计算机安全的重大威胁。 本文概述了当前检测w i n d o w sr o o t k i t 的主流技术和一些检测工具。包括最 早的基于特征码检测方法。目前发展迅速的启发式检测行为检测方法,代表的 工具有v i c e 和p a t c h f i n d e r 。c r o s s - v i e w 是新兴的检测r o o t k i t 的方法,本研 究就是基于该方法,当前代表作有r o o t k i tr e v e a l e r 、k l i s t e r 和s t r i d e r g h o s t b u s t e r 。完整性检测对内存型r o o t k i t 有较好的效果,硬件检测是比较彻 底解决r o o t k i t 问题的方法。 本文应用c r o s s - v i e w 方法构建监控系统,通过对隐藏行为的发现来判定系 统是否已被装入永久型w i n d o w sr o o t k i t 。使用文件系统过滤驱动、钩挂注册表 相关系统服务来监视文件系统和注册表的操作,并构造可信的操作信息数据集。 并在不可靠的用户态下验证该数据集,以发现隐藏文件、注册表和进程的情况, 判定r o o t k i t 的存在。 最后,应用此检测工具,对现有的一些w i n d o w sr o o t k i t 进行了检测,并分 析了该方法的适用范围。由于使用底层驱动监测、不依赖于特征码,对内核级和 将来出现的r o o t k i t 也具有良好的效果。 关键词监控系统;w i n d o w sr o o t k i t ;c r o s s - v i e w :信息安全 a b s t r a c t i i ii i i i i 皇曼曼曼曼曼曼曼曼舅曼曼曼曼 a b s tr a c t r o o t k i t sa r eu s e db ya t t a c k e r sa f t e rc r a c k i n gac o m p u t e rs y s t e m t h e yc a nh e l p a t t a c k e r sm a i n t a i nr o o ta c c e s st ot h es y s t e ma n dc o n d u c tm a l i c i o u sa c t i v i t i e s r o o t l d t s e x i s tf o rav a r i e t yo f o p e r a t i n gs y s t e m ss u c h 嬲l i n u x ,s o l a r i sa n dm i c r o s o f t w i n d o w s a c c o r d i n gt ot h ee x t e r n a le x h i b i t i o no fr o o t l d t ,t h e r ea r et w ot y p o so fr o o t k i t s : p e r s i s t e n tr o o t k i t sa n dm e m o r y - b a s e dr o o t k i t s n ep r i m a r yd i f f e r e n c eb e t w e e n t h e s et w ot y p e so fr o o t k i t sl i e si nt h e i r ”p e r s i s t e n c e ”o na ni n f e c t e dm a c h i n ea f t e ra r e b o o t p e r s i s t e n tr o o t k i t sa r ec a p a b l eo fs u r v i v i n gas y s t e mr e b o o tw h e r e a s m e m o r y - b a s e dr o o t k i t sa t en o t b e c a u s eo fp e r m a n e n t l ys t o r i n ga n dh i d i n gi t sc o d e s , p e r s i s t e n tr o o t l d tb e c o m e sav e r yi m p o r t a n ti s s u ei nc o m p u t e rs e c u r i t y m p a p o rd i s c u s s e sw i n d o w sr o o t k i td e t e c t i o no ft h ec u r r e n tm a i n s t r e a m t e c h n o l o g y , a n ds o m ed e t e c t i o nt o o l s ,i n n c l u d i n gt h ef i r s ts i g n a t u r e - b a s e dd e t e c t i o n m e t h o d a tp r e s e n tt h eh e u r i s t i cd e t e c t i o n b e h a v i o rd e t e c t i o nm e t h o di sr a p i d d e v e l o p i n g 。t h er e p r e s e n t a t i v eo ft h et o o l sa r ev i c ea n dp a t c h f i n d e r c r o s s v i e wi s e m e r g i n gr o o t l d td e t e c t i o nm e t h o d ;t h i ss t u d yi sb a s e do nt h em e t h o d ,t h ec u r r e n t r e p r e s e n t a t i v eo far o o t k i tr e v e a l e r , k l i s t e ra n ds t r i d e rg h o s t b u s t e r t e s t i n gt h e i i l t e 西锣o ft h em e m o r y - r o o t l d th a v eg o o dr e s u l t s ,h a r d w a r ed e t e c t i o nr o o t k i ti sa c o m p l e t e l ys o l v et h ep r o b l e m t h ep a p e l a p p l i e st h ec r o s s v i e wm e t h o dt oc o n s t r u c tt h em o n i t o rs y s t e m i ti s i m p l e m e n t e dt od e c i d ew h e t h e rt h es y s t e mh a sb e e ni n s t a l l e dp e r s i s t e n tw i n d o w s r o o t l d tb yd i s c o v e r i n gh i d d e nb e h a v i o r s f i l es y s t e mf i l t e rd r i v e ra n dh o o k i n g r e g i s t r y ss y s t e ms e r v i c ea r eu s e dt om o n i t o rt h eo p e r a t i o nt o f i l es y s t e ma n d r e g i s t r y , a n dt h et o o lc r e a t e st h et r u s t e dd a t as e t v a l i d a t et h ed a t as e ta tu s e rm o d e l a n df i n dt h es i t u a t i o no fh i d i n gf i l e , r e g i s t r ya n dp r o c e s s t h e ni tp r o o f st h a tt h e r o o t k i ti so nt h em a c h i n e f i n a l l y , w eu s et h i sn e wt o o l ,c h e c k e df a m o u sw i n d o w sr o o t k i t ,a n dd e f i n e st h e r e s t r i c t i o no ft h i st 0 0 1 d u et ot h eu s eo fl o w - l e v e ld r i v e ra n dn o td e p e n d i n go n s i g n a t u r e ,i ta l s oh a sg o o dp e r f o r m a n c ei nd e t e c t i n gk e r n e ll e v e la n du n k n o w n r o o t k i t k e yw o r d sm o n i t o rs y s t e m ;w i n d o w sr o o t k i t :c r o s s - v i e w :i n f o r m a t i o n s e o u ri t y m 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 关于论文使用授权的说明 加口了乡2 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有 权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:孟丝挝导师签名:日期:力卯zf 乙 第1 章绪论 1 1 研究背景 第1 章绪论 r o o t k i t 指的是恶意代码作者用来隐藏他们的代码不被发现的工具,它通过 监听系统的功能、用合法的数值取代返回的数据。r o o t k t 类病毒通过隐藏自身 进程( 有时甚至连添加的注册表键值也隐藏起来) ,以增加电脑用户的识别难度 并逃避杀毒软件的查杀。 r o o t k i t 可以被用于各种犯罪,如安装可用于黑客远程访问的后门,或使机 器被用于发动向其他系统攻击的跳板。r o o t k i t 还可以发现寻找它们的安全工 具,并躲避检测。传统的恶意软件试图造成尽可能大的破坏,而r o o t k i t 被用 于攻击焦点目标,例如银行。 在2 0 0 5 年,专业反病毒研究中心监测发现,r o o t k i t 技术已经开始被病毒 利用n 】。从众多电脑用户发送的感染此类病毒的求助信件以及电话来看,r o o t k i t 类病毒已经成为困扰电脑用户的新难题。位居2 0 0 5 年十大病毒之二的“灰鸽子 变种病毒就采用了r o o t k i t 技术。 r o o t k i t 已经成为众多恶意软件的藏身工具,在其掩护下恶意软件可轻易逃 脱反病毒及反间谍软件的监控。m c a f e e 公司预测,到2 0 0 8 年,上述情况将大 肆泛滥,形成前所未有的安全风险。m c a f e e 表示,在2 0 0 6 年初的监控中发现, 与2 0 0 5 年同期相比,蠕虫、木马程序及间谍软件中的r o o t l c i t 工具数量激增, 使用频率增长了6 0 0 。 1 2w i n d o w sr o o t k i t 的分类 根据r o o t k i t 的外部表现,可以分为永久型与基于内存型。根据所使用的技 术,分为用户模式与内核模式。 表1 - 1r o o t k i t 的分类 髓b l e1 1c l a s s i f i c a t i o no f r o o t k i t r o c r r k i t特征 每次系统引导时被激活。这种r o o t k i t 必须将代码保存在注册表 永久型 或文件系统中,并配置一种代码无须用户干预就可以执行的方式 基于内存型没有永久的代码,因此重新引导后不能存活 北京工业大学t 学硕 一学位论文 截获对a p i 的调用,修改返回的结果。例如,当应用执行目录列 用户模式 表时,返回的结果不包括标识与r o o t k i t 相关的文件条目 不仅能截获内核模式下的本机a p i ,而且还可以通过从内核活动 内核模式 进程列表中删除进程来隐藏恶意软件 当病毒和r o o t l d t 技术相结合时,安全形势变得愈发严重。借助r o o t l d t 的 掩护,未来的恶意软件将更难对付,对商业用户及消费者将造成更大的威胁。 按照运行时的环境不同,w i n d o w sr o o t k i t 分为两类:内核模式r o o t k i t 和 用户模式r o o t k i t 。内核模式r o o t k i t 驻留在内核态中,以内核驱动程序的方式 存在于操作系统中;用户模式r o o t l d t 则运行在权限较低的用户态中。这些用户 模式r o o t k i t 的目标是普通的用户程序而不是系统,所以不需要工作在具有高权 限的内核态中,但它们同样也会拦截某些系统调用,更改操作系统的行为。 在大多数情况下,内核模式r o o t l d t 只是简单地改写系统描述符表( s d t , s e r v i c ed e s c r i p t o r t a b l e ) ,用它们自己的函数替换原始的a p i 。对于一个普通的 w i n d o w s 系统,它们根本不用担心这种替换的持续性,因为一旦挂钩成功,所 有进程随后的调用都将被截获下来。但在用户模式下运行的w i n d o w sr o o t l d t 则完全不同。它们的钩子并不像内核模式那样是全局的,因此,必须在每个进 程中运行一次w i n d o w sr o o t l d t ,然后才能拦截到所有希望截获的系统调用。 用户模式r o o t l d t 修改或替换那些限制使用a p i ( 应用程序编程接口) 来访问 系统资源的二进制文件。典型的例子是修改过的n e m t a t e x e 文件,它不再显示 攻击者指定了的特殊端口( 如攻击者用来入侵的端口) 。为了从合法用户那里隐 藏行踪,用户模式r o o t k i t 中常常包含许多修改过的系统可执行文件,以及一些 给攻击者提供了很多特殊功能的程序文件。 内核模式r o t o k i t 通过修补操作系统内核来深入到操作系统内核层中进行欺 骗。它们在系统中安装一些允许恶意软件直接访问系统内核资源的驱动程序, 从而操纵或替换系统函数。有些内核模式r o o t l d t 可能会十分复杂,它们至少可 以绕过现有工具的检测,内核模式r o o t k i t 是当前w i n d o w sr o o t l d t 研究的焦点。 内核模式r o o t k i t 工作的传统方法是:修改各种内核数据,包括挂钩d l l 函 数( 挂钩输出函数表) ,修改d l l 函数( 修改原始代码) ,挂钩系统描述符表( s d t ) 或系统服务表( s s t ) 或k i s e r v i c e t a b l e 的某些项,挂钩中断描述符表( i d t ) e p 的 2 e h 号中断的入口点,以及修改内核代码( 修改原始代码) 。这些技术的最终目 的是控制操作系统,以欺骗那些检查、保护系统资源的应用程序。 2 第1 章绪论 1 3w i n d o w sr o o t k i t 与普通木马的区别 w i n d o w sr o o t l d t 也被称为内核模式木马,在特性上与普通木马很类似,但 在一些关键的地方有很明显的区别: l 、进程隐藏的方法不同 早期的木马程序根本就不对进程进行任何隐藏,后来出现的某些高级木马 程序加入了隐藏进程的功能。它们为了隐藏自身进程,会使用多种方法。一种 方法是修改t o o l h e l p 等查看进程信息的w i n 3 2a p i 函数,另一种方法是将木马 程序安装为一个服务程序,从而在任务管理器中隐藏。但这种隐藏并未达到真 正的隐藏。安装为服务程序的木马,在服务程序列表中还是可以看到的,细心 的管理员通过查看系统信息的方法可以发现这种木马。而且,w i n d o w s 2 0 0 0 以 后的各版本中,服务在任务管理器服务中会显示出来。修改t o o l h e l p 函数只会 欺骗使用了t o o l h e l p 函数的进程列表程序,对使用其它方法获取进程列表的程 序无能为力。 w i n d o w sr o o t k i t 通常会在系统内核中修改那些与进程相关的系统调用 ( 如:n t q u e r y s y s t e m i n f o m a t i o n ) ,从而可以欺骗所有的应用程序。而且,它自身 一般以隐藏的驱动程序或是隐藏的服务程序( 这种隐藏功能也是由w i n d o w s r o o t l d t 自身提供的) 的形式存在。所以,管理员使用普通的检测程序,根本就 不可能发现w 铀d o w sr o o t l d t 。 2 、文件隐藏的方法不同 木马程序的文件隐藏方法比较简单,主要的方法就是蒙骗。一是将木马文 件放置在很深的系统目录中,如:把t r o j a n e x e 放到c :w i n d o w s k s y s t e m 3 2 l x x x x x x x 目录4 ;- 是为木马文件起一些类似系统文件的名称,如:把木马程序命名为 e x p l o r e r e x e ,s v c h o s t e x c 等。 w i n d o w sr o o t l d t 根本不需要这么做,它可以用任何文件名存在于任何目录 中,它的隐藏功能是通过修改操作系统中与文件管理相关的系统函数来实现的, 所有被w i n d o w sr o o t l d t 隐藏的文件在资源管理器以及普通的应用程序中都无 法访问。因此,w i n d o w sr o o t k i t 的程序文件在目标系统中隐藏之后,用户根本 就无法发现。 3 、程序隐蔽启动方式不同 木马程序为了实现自动启动,通常会修改w i n i n i ,s y s t e m i n i ,a u t o e x e e b a t 等 文件,或者在注册表或是启动菜单中添加一些新的项,或者当木马程序是以服 务的形式安装在目标主机中时,会在注册表中的系统服务项中添加新的注册表 项。这些修改动作很容易被各种检测程序和有经验的用户检查出来。 w i n d o w sr o o t l d t 则通常直接安装为服务,这种操作只需修改注册表就可实 3 北京t 业人学t 学硕十学位论文 现自启动。为了防止被检测工具发现,w i n d o w sr o o t k i t 将所有相关的注册表项 全部隐藏起来,使普通的注册表管理程序无法通过常规的注册表访问函数发现 它们,通过查找注册表来检测木马的各种木马查杀工具也同样对它无效。 4 、任务的侧重点不同 木马程序一般注重于远程资源控制,以实现控制目标主机为目的,而且它 们十分注重功能的丰富性、使用的方便性以及界面的友好性。 w i n d o w sr o o t k i t 则侧重于控制目标操作系统底层中的行为,在系统中隐藏 各种非法存在的对象,如后门进程、口令文件等。它们通常更多地注重于隐蔽 性和实用性,不过分注重功能丰富及界面友好等普通木马所追求的特性。因此, 木马程序普通用户也可使用,而w i n d o w sr o o t k i t 则是少数高级黑客的专用工 具。 5 、实现的层次不同 木马程序通常只使用位于操作系统应用层中的常规w i n d o w sa p i 函数,而 w i n d o w sr o o t k i t 则会利用挂钩n a t i v e a p i 函数、修改n a t i v ea p i 函数体、修改 内核数据结构等方法来改变系统的行为,并且经常会以驱动程序的方式深入到 操作系统内核中。也就是说,普通木马程序工作在操作系统之上,而w i n d o w s r o o t l d t 融于操作系统中,内核态r o o t k i t 则工作在操作系统的内核层。 1 4w i n d o w sr o o t k i t 与病毒的区别 有些最新版的杀毒软件把某些知名的w i n d o w sr o o t k i t 当做病毒来查杀,但 事实上,w i n d o w sr o o t k i t 不是真正意义上的病毒,它只具有病毒的某些特征但 不具有病毒的破坏性、传染性等主要特征。 l 、主要特征不同 病毒的主要特征是可以自我复制、自动传播、会破坏目标系统中的数据。 w i n d o w sr o o t k i t 则不会自我复制、不能自动传播,而且通常情况下也不会 直接破坏目标系统中的数据。当然,w i n d o w sr o o t l d t 也有能力破坏目标系统中 的数据,但这样做会暴露它的踪迹,这与w i n d o w sr o o t k i t 的设计思想是不相 符的,因此,w i n d o w s r o o t l d t 通常不破坏目标系统中的数据。 2 、感染方式不同 病毒为了在目标系统中安全地潜伏下来,会使用一些隐藏手段。它们会把 病毒代码插入到正常程序文件中,有的病毒程序甚至可以把自己插入到某些图 片文件中。一旦这些受感染的文件被打开,病毒程序就开始执行。 w i n d o w sr o o t k i t 则会以驱动程序( 内核模式r o o t k i t ) 或是普通程序( 用户模 式r o o t l d t ) 的形式单独存在于目标系统的硬盘中。它们在执行时会插入到内存 中的某些模块中,但通常不会感染磁盘文件。在w i n d o w sr o o t k i t 的编程人员 4 第1 章绪论 看来,感染磁盘文件的方法十分危险,很容易被系统管理员发现。 3 、设计目的不同 病毒的设计目的是在指定的激活时间破坏目标系统,使目标系统变慢、崩 溃或是删除目标系统上的文件。病毒是一个破坏者,是用来故意破坏目标系统 的一种恶意程序,目的是邪恶的,手段是残酷的,从法律上来讲,是完全非法 的。 w i n d o w sr o o t k i t 的设计目的是为了长期秘密地控制目标系统,以窃取该主 机中的重要文件以及各种帐号、口令等信息。应该说,w i n d o w sr o o t k i t 是一种 间谍程序,它的目的就是偷了别人的东西,还不让别人知道。与病毒不同的是, w i n d o w sr o o t l d t 通常情况下不会破坏目标系统中的任何文件,也不会影响目标 系统的正常执行,这样它才能达到长期秘密地隐藏于目标系统中的目的。 1 5w i n d o w sr o o t k i t 与普通黑客程序的区别 普通的黑客程序的最主要功能是成功地侵入目标主机。而w i n d o w sr o o t k i t 则不关注此功能,它只关注侵入到目标主机后的功能。w i n d o w sr o o t k i t 只从理 论上和技术上研究如何在已经被攻占的目标主机中隐身下来,并为以后再次秘 密连接留下后门。而如何攻入到目标主机中的问题,不属于w i n d o w sr o o t l d t 的研究范围。 1 6 论文研究内容 1 对目前流行的w i n d o w sr o o t l d t 的核心技术进行剖析,分析这些r o o t l d t 如何隐藏文件、进程及注册表键等系统信息。 2 研究目前正在使用的检测w i n d o w sr o o t k i t 的工具,总结其检测思想及 优缺点。 3 在基于n t 技术平台( 含w i n d o w sn t 4 0 2 0 0 0 x p 2 0 0 3 ) 上,采用 c r o s s v i e w 的方法构建监控实验系统,完成对一些经典r o o t l d t 的检测与控制。 1 7 论文结构安排 本文对各种w i n d o w sr o o t k i t 技术以及流行的检测技术进行研究分析,并 应用c r o s s v i e w 方法构建实验系统,完成对部分w i n d o w sr o o t k i t 的检测。全文 分为五章,各章的内容安排如下: 第一章绪论,介绍了本课题的研究背景,研究内容并概括了本文的组织结 构。 第二章w i n d o w sr o o t k i t 概述及核心技术,解释了r o o t l d t 的含义以及研究 5 北京t 业大掌t 学硕一 :学位论文 当前的w i n d o w sr o o t k i t 隐藏系统信息的核心技术。 第三章w i n d o w sr o o t l d t 检测方法,研究并总结了目前检测w i n d o w s r o o t k i t 的各种方法,了解其适用范围和优缺点。 第四章基于c r o s s v i e w 检测r o o t k i t 的设计与分析,研究使用文件系统过 滤驱动、钩挂注册表相关系统服务来监视文件系统和注册表的操作,并构造可 信的操作信息数据集,用以验证w i n d o w sr o o t k i t 的存在。 第五章w i n d o w sr o o t l d t 检测实例,本节选取部分经典的w i n d o w sr o o t k i t 测试实验系统,并总结了本研究的适用范围。 6 第2 章r o o t k i t 概念及核心技术 第2 章r o o t k it 概念及核心技术 2 1r o o t kit 定义 r o o t k i t t 2 1 是入侵者用来在计算机系统中隐藏自己的一个或一组程序,并且 允许以后也能够访问该计算机。为了达到这个目的,r o o t l d t 修改了操作系统的 运行流程或者处理操作系统依赖的审查和记录的数据集。 w i n d o w sr o o t l d t 的主要功能是隐藏踪迹,它可以实现进程隐藏、文件隐藏、 目录隐藏、驱动程序隐藏、注册表项隐藏、服务隐藏、端口隐藏、用户名隐藏 等功能,对入侵者进入被攻占的系统后所造成的各种变化( 增加了文件、服务、 启动了新进程等) 进行充分地隐藏,从而使受害者用常规的检测方法无法发现任 何异常现象。同时,w i n d o w sr o o t l d t 也会附带上一些远程控制工具,使入侵者 可以通过秘密的通信方式无声无息地与目标主机系统建立连接,进行各种远程 控制操作,而且不会被管理员发现。 各种应用 程序( 包括 各种常规 检嗣程序) 谚求燕筑调用 一l i 转笈系缓调愿 鉴星重箜墨丛塑塑- l l 蛹 w i n | 妇哪 辅钿曲咻 操作系统 图2 - 1w i n d o w sr o o t k i t 的运行原理【3 】 d i a g r a m2 - 1t h er u n n i n gp r i n c i p l eo f w i n d o w sr o o t l d t 【3 】 r o o t l d t 就像是中间人,它处于操作系统和各种应用程序之间,决定着这些 应用程序可以看到什么以及可以干什么。通常情况下,这些w i n d o w sr o o t k i t 具有很强的隐蔽性和自我保护功能,而且,大多数都运行在内核模式中,所以, 常规的防火墙软件、防病毒软件、端口监控软件、进程监控软件等防护工具难 以发现它们。可以说,这是w i n d o w s 操作系统家族中近来出现的一大劲敌,它 严重地影响着系统的安全性和可靠性,必须引起信息安全领域研究人员的高度 重视。 2 2r o o t k i t 核心技术 2 2 1钩挂执行路径 为了改变操作系统的正常执行路径,r o o t k i t 使用了钩挂技术【4 1 。现代操作 7 北京t 业火学t 学硕士学位论文 曼曼邑曼曼曼曼曼曼曼曼曼曼曼皇曼曼曼皇曼舅曼曼曼曼曼曼! 曼曼ii i 曼曼曼曼曼皇曼皇曼舅曼曼曼量曼曼量曼鼍曼曼曼曼曼曼曼曼皇曼曼曼曼曼曼曼曼量 系统中都被设计成有弹性,可扩展并且向后兼容,所以有很多地方可以钩挂。 r o o t k i t 使用钩挂修改原始操作系统函数返回的信息。 2 2 2钩挂引入地址表 w i n d o w st 5 l 被设计为与计算机硬件底层相关性极低,并且与其他操作系统环 境兼容,如p o s i x 。同时也必须很灵活,即使升级了操作系统,应用程序开发 人员也不必重写代码。w i n d o w s 通过提供三个环境子系统达到这个目的。这3 个子系统就是:w i n 3 2 子系统,p o s i x 子系统和o s 2 子系统。每个子系统都通 过动态库来实现。这些子系统提供一个接口给内核下的系统服务。应用程序开 发人员通过a p i 来编写程序可以在大多数操作系统升级的情况下还可使用。一 般情况下,应用程序不会直接调用w i n d o w s 系统服务,而是通过某个子系统来 完成该过程。这些动态库导出了文档化的接口,应用程序链接到这些子系统就 可以调用这些接口。w i n 3 2 子系统【6 1 是最常用的子系统,它由k e r n e l 3 2 d l l , u s e r 3 2 d l l ,g d i 3 2 d l l 和a d v a p i 3 2 d l l 组成。n t d l l d l l 是系统提供给各个 子系统的一个特殊的库。它提供了一些s t u b 来将各个请求分发到w i n d o w s 执行 系统服务,最后w i n d o w s 执行系统服务将控制权移交到内核模式中的s s d t 才真 正执行实际的操作。这些s t u b 包含了特别的代码结构,可以切入到内核模式。 第2 章r o o t k i t 概念及核心技术 图2 2w i n d o w sa p i 结构 d i a g r a m2 - 2t h es t r u c t u r eo fw i n d o w sa p i 当w i n d o w s 加载可执行文件到内存时,加载器必须文件中一个被称为导入 地址表( i a t ) 的s e c t i o n 。i a t 中列出了该文件用到的动态库以及各个动态库中 被用到的函数。加载器定为每一个动态库在磁盘中的位置,并把它们也映射到 内存中。然后加载器将那些函数的地址写入调用这些函数的执行文件的i a t 中。 般i a t 中的函数都是k e r n e l 3 2 d l l 和n t d l l d l l 到处,也有一些其他有用的 函数有其他库导出,比如w s 2 3 2 d l l 导出的s o c k e t 函数。内核设备驱动同样 从其他库中导入函数到内核的内存中,比如n t o s k r n l e x e 和h a l d l l 。 通过修改执行文件i a t 的入口,r o o t k i t 可以修改程序的运行流程并且修 改原函数本来想要返回给调用者的东东。假设一个应用程序列出一个目录下的 所有的文件,并且针对它们作一些操作。这个程序可能是运行在用户模式下的 用户程序或者服务。同时假设这个程序是个w i n 3 2 程序,这意味着它会使用 k e r n e l 3 2 d l l ,u s e r 3 2 d l l ,g u i 3 2 d l l 和a d v a p i d l l 最后去调用内核函数。 在w i n 3 2 下,要列出一个目录下的所有文件,应用程序首先是调用 f i n d f i r s t f i l e 【7 1 ,这个是k e r n e l 3 2 导出的。f i n d f i r s t f i l e 调用成功后会返 回一个句柄。接下来通过返回的句柄迭代调用f i n d n e x t f i l e 遍历该目录下的所 有文件和子目录。f i n d n e x t f i l e t 7 】也是k e r n e l 3 2 d l l 的导出函数。由于应用程 9 北京t 业大学下学硕卜学位论文 序使用了这些函数,所以加载器会把k e r n e l 3 2 d l l 加载到内存,并把这些函数 的地址记录到应用程序的i a t 中。当应用程序调用f i n d n e x t f il e 的时候,只是 跳转到导入表中的一个地址,然后再从这跳转到f i n d n e x t f i l e 函数在 k e r n e l 3 2 d l l 中的地址。f i n d f i r s t f i l e 的处理也是一样的。f i n d n e x t f i l e 调 用n t d l l d l l 中的n t q u e r y d i r e c t o r y f i l e 【8 1 函数。该函数把内核函数中相应的 系统服务号存到e a x 寄存器,把用户空间中的参数地址存到e d x 寄存器,然后 调用一条i n t2 e 指令或者s y s e n t e r 指令跳入到内核。 r o o t k i t 通过改写i a t 使其指向r o o t k i t 的函数,而不是原本指向 k e r n e l 3 2 d l l 。n t d l l d l l 也是如此处理。攻击者利用这种技术都做什么事情 在很大程度上依赖于他的想象力。r o o t k i t 可以调用原函数然后对结果进行过 滤来隐藏一些东西,比如文件,目录,注册表键值,进程等。因为每个进程都 有他自己的虚拟地址空间,r o o t k i t 想要改变应用程序的i a t ,就必须跨越进程 的边界。 2 2 3钩挂系统服务分派表 尽管w i n 3 2 子系统只是r o o t k i t 可以钩挂的各个地方之一。然而,它却是 通往内核的唯一途径。操作系统函数真实的实现地址记录在内核的一个表中。 该表就是系统服务描述表( s s d t ) 9 1 ,也被称为系统调用表。那些地址对应于 n t o s k m l e x e 中的n t x x x 系列的函数。内核模式的r o o t l d t 可以直接修改s s d t , 用它自己的代码替换它需要的n t x x x 函数。跟钩挂单个应用程序的i a t 不同, 这种技术设置了一个系统钩子,可以影响每一个进程。以上一节中i a t 钩挂的 例子来说,内核模式的r o o t l d t 可以钩挂n t q u e r y d i r e c t o r y f i l e 来隐藏本地文件 系统的文件和目录。 2 2 4钩挂内联函数 内联函数钩子【1 0 】比i a t 或者s s d t 钩子更先进。相对于替换一个表中的指 针的方法,内联函数钩子替换原始函数的几个字节的方法更容易发现。一般来 说,r o o t k i t 会增加一个无条件跳转指令从原函数转移到r o o t k i t 代码中。许 多w i n d o w sa p i 函数都是以下面的标准形式开始: c o d eb y t e s a s s e m b l y 8 b f fm o ve d i ,e d i 5 5 p u s he b p 8 b e cm o ve b p ,e s p l o 第2 章r o o t k i t 概念及核心技术 在内联函数钩子时,r o o t k i t 先保存它将要覆盖的原始代码以便维持该函 数相同的行为,然后用一个跳转语句改写原来的入口使其转到r o o t k i t 的代码 中。注意,r o o t k i t 能够安全的覆盖函数的前5 个字节是因为很多跳转指令或 者c a l l 指令的长度都是5 字节,恰好在一个指令边界上。 机器码汇编代码 e 9x x x x x x x x i m px x x x x x x x 这里的”x x x x x x x x ”是r o o t k i t 的代码地址。r o o t k i t 可以跳转到原始地址 加一些偏移,并且修改原来操系统返回的数据。 内联函数钩子和其他大多数r o o t k i t 技术一样,有很多合理的用途。 m i c r o s o f tr e s e a r c h 曾经开发过使用该技术的系统一“d e t o u r s ,如今 m i c r o s o f t 对其的发展已经远远超越了研究的用途。他们称其为”h o t p a t c h i n g ”,该技术允许系统打补丁不用重启。 2 2 5分层过滤驱动 分层过滤驱动i n 现在是r o o t k i t 比较新的应用,可以将自身插入到操作系 统的执行流中。操作系统的很多重要特性最终都是通过设备驱动来处理的,比 如网络通讯和文件存储。w i n d o w s 允许开发人员将过滤驱动放在当前已经存在 的驱动程序的项部,以便在不改写底层驱动的情况下扩展其特征。许多病毒扫 描程序实现文件过滤驱动来扫描文件,就如同它们自己打开的文件一样。操作 系统提供的文件驱动将结果往上传给杀毒软件的文件过滤驱动,然后文件过滤 去冬就能扫描该文件了。r o o t k i s 也可以用这种分层技术改变文件的访问和列 举,改变s o c k e t 通信和列举等。 2 2 6直接内核对象控制 直接操作内核对象( d k o i v l ) 2 1 依赖于一个事实:操作系统为了能够记录和 审核,它创建了内核对象。如果r o o t l d t 修改这些内核对象,就可以让操作系统 相信有些东西存在或者不存在于系统中。通过修改一个t o k e n 对象,r o o t l d t 可 以改变操作系统信任的对象执行某个动作,因此破坏任何记录。比如,f u r o o t l d t 修改描述系统中进程对象的的内核对象。所有的内核进程对象是通过一 个链表链接在一起的,当一个用户进程比如t a s l d v l g r e x e 通过a p i 向操作系统 查询进程列表,w i n d o w s 遍历进程对象链表返回相应的信息。f u 将它要隐藏 的对象从链表中删掉,于是乎,应用程序发现这个进程不存在。 北京t 业大学1 = 学硕卜学位论文 2 3 本章小结 本章介绍了w i n d o w sr o o t k i t 的基本概念以及目前r o o t k i t 经常使用的技 术。本部分包括的r o o t l d t 技术手段有钩挂执行路径、钩挂引入地址表、钩挂系 统服务分派表、钩挂内联函数、分层过滤驱动、直接内核对象控制六种。使用 该6 种技术的w i n d o w sr o o t k i t 对当前信息安全构成了重大挑战。 1 2 第3 章r o o t k i t 榆测方法 i i 一 i 曼曼曼曼曼曼曼曼曼曼曼量皇曼篡 3 1 介绍 第3 章r o o t k it 检测方法 在过去几年里r o o t k i t 已经发展得很成熟,以至2 0 0 5 年中混合r o o t k i t 技术的各种恶意软件蜂拥而至。尽管计算机系统被r o o t k i t 扰乱后要发觉或者 清除r o o t k i t 是极度困难的,但是仍然有些方法可以检测不同程度的r o o t k i t 。 3 2 基于特征码的检测 基于特征码的检测1 1 3 方法防毒软件已经使用了很长时间。概念上很简单, 扫描系统文件的字节序列是否包含某个r o o t k i t 的特征。如果在用户系统的文 件中找到了特征码,就表示被感染了。由于r o o t k i t 通过钩挂执行路径技术隐 藏文件,传统意义上的文件系统扫描技术用于检测r o o t k i t 具有相当的局限性, 需要综合其他一些更高级的检测技术。 尽管这有些古老,然而值得一提的是基于特征码的检测技术除了用于文件 系统外,还可以用于系统内存的扫描。相反的,大多数公开的内核r o o t k i t 对 于内核内存扫描都没有免疫力。作为内核驱动,他们都驻留在非分页池中,并 且很少会朝着变种代码扰乱方面努力。因此内核内存扫描可以简单的识别大多 数公开的内核r o o t k i t 。然而,注意上一句话的关键词语:公开的r o o t k i t 。就 如同它的定义一样,基于签名的检测技术对于没有已知签名的恶意软件是没用 的。最后要指出的是对于钩挂虚拟内存的r o o t k i t ,比如s h a d o ww a l k e r 【1 4 】这 种能够控制扫描程序读到的内存的r o o t k i t ,基于特征码的扫描技

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论