




已阅读5页,还剩83页未读, 继续免费阅读
(计算机软件与理论专业论文)实时检测rootkit并自动修复系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 r o o t k i t 是攻击者在入侵系统后用来保持对系统的超级用户访问权限,创建后门和隐 藏攻击痕迹等常采用的一种技术。r o o t l d t 存在于l i n u x 、s o l a r i s 和w m 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 l d 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 ,且都需要由管理员手动的执行。目前还不存在一种 有效的方法可以自动修复系统,一旦系统被内核级r o o t l d t 攻击,只能重启甚至重装操作 系统才能使系统恢复到正常状态。 本文提出了一种实时检测r o o t k i t 并自动修复操作系统的方法,并在l i n u x 系统上实 现为a n t i r o o t l d t 系统。a n t i r o o t k i t 不仅对现有的r o o t k i t 有效,而且考虑了将来可能出 现的更高级的r o o t k i t 。实验结果表明,a n t i - r o o t k i t 可以实时地检测到各种典型的r o o t l d t , 并自动修复系统。 此外,本文还对一些典型的r o o t l d t 及其攻击原理进行了详细的剖析。在目前r o o t l d t 使用的攻击方法的基础上,本文还从攻击者的角度出发,分析了一些将来可能被r o o t l d t 使用的攻击方法。 关键词:r o o t k i t ;l i n u x ;可加载内核模块;操作系统内核;系统调用 ,、rf- r e s e a r c ha n di m p l e m e n t a t i o no n d e t e c t i n gr o o t k i t sr e a lt i m ea n dr e c o v e r i n gs y s t e ma u t o m a t i c a l l y y a nr e n z h o n g ( c o m p u t e rs o f t w a r ea n dt h e o r y ) d i r e c t e db yz h o n gx i c h a n g r o o t l d t s & 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 l e m 1 1 1 c ye , a nh e l pa t t a c k e r s m a i n t a i nr o o ta c c e s st ot h es y s t e ma n de o n d u e tm a l i c i o u sa c t i v i t i e s r o o t k i t se x i s tf o rav a r i e t y o f o p e r a t i n gs y s t e m ss u c ha sl i n u x , s o l a l i sa n dm i c r o s o f tw i n d o w s r o o t l d t sa l ec l a s s i f i e di n t oa p p l i c a t i o n - l e v e lr o o t k i t sa n dk e r n e l l e v e lr o o t k i t sa c c o r d i n gt o t h e i ri n v a s i o nl e v e lt oo p e r a t i n gs y s t e m a p p l i c a t i o n - l e v e lr o o t k i t sn 砌i 旬s y s t e mf i l e sa tt h e u s e fl e v e la n d 啪b ep r e v e n t e de a s i l y k e r n e l - l e v e lr o o t k i t sa t t a c kt h ek e r n e lo fo p e r a t i n g s y s t e m , a n da r em o r ep o w e r f u lt h a na p p l i c a t i o n - l e v e lo f l e s i t i sv e r yd i f f i c u l tt od e t e c t k e r n e l - l e v e lr o o t l d t s t h em a j 矾t yo f 踊s t i l l gt o o l sd e t e c t i n gr o o t l 击sc a no n l yd e t e c ta p p l i c a t i o n - l e v e lr o o t k i t s , a n do n l yaf e wc a l ld e t e c tc e r t a i nk i n d so f k e r n e l - l e v e lr o o t l d t s a l le x i s t i n gt o o l sn e e ds y s t e m a d m i n i s t r a t o r st os t a r tt h e mm a n u 蛳t h e r ei s n ta ne f f e c t i v em e t h o dt or 酷t o r es y s t e m a u t o m a t i c a l l yn o w , o n c eas y s t e mi sa t t a c k e db yk e r n e l - l e v e lr o o t k t i s , w eh a v et or e s t a r t , e v e n r e i n s t a l lt h ew h o l eo p e r a t i n gs y s t e mi no r d e rt or e s t o r ei tt on o r m a ls t a t u s i nt h i st h e s i sam e t h o di sp r o p o s e dt od e t e c tr o o t k i t sr e a lt i m ea n dl 髂- t o r es y s t e m a u t o m a t i c a l l y i ti si m p l e m e n t e da sa n t i r o o t l d ts y s t e mo nl i n u xp l a t f o r m a n t i - r o o t l d ti t s e l f c a nr e s i s tt h ea t t a c ko f r e o t l d t s a n f i - r o o t k i ti sn o to n l ye f f e c t i v et oe x i s t i n gr o o t l e t s , b u ta l s o t or e o t l d t st h a tm a ye m e r g ei nf u t u r e e x p e r i m e n tr e s u l t si n d i c a t et h a ta n t i r o o t k i t 伽ld e t e c t v a r i o u sk i n d so f t y p i c a lr o o t k i t sa n dr o v e rs y s t e ma u t o m a t i c a l l y i na d d i t i o n , t y p i c a lr o o t l d t sa n dt h ep r i n c i p l eo fr o o t k i t sa r ea n a l y s e di nd e p t h b e s i d e s a t t a c k i n gm e t h o d su s e db yr o o t l d t ss of a r , m e t h o d st h a ta l el i k e l yt ob eu s e db yr o o t k i t si n f u t u r ea r ea l la n a l y s e d k e y w o r d s :r o o t l d t ;l i n u x ;l o a d a b l ek 黜n e lm o d u l e ;o l 崩枷吨s y s t e mk e r n e l ;s y s t e mc a u ; 1 1 1 r,lf 图目录 图3 1g d b 反汇编s y s t e m _ c a l l 结果2 5 图3 2g d b 反汇编s y s c a ut r a c ee n t r y 结果 图3 3s y s t e m _ c a l l 代码段的二进制数据 图4 1 攻击系统调用函数之前。 图4 2 攻击系统调用函数之后 图4 3 修改系统调用表之前 图4 4 修改系统调用表之后 图4 5 重定向系统调用表之前 图4 6 重定向系统调用表之后 图4 7 正常的s y s t e m _ c a l l j 函数流程图。 图4 8e n y e l k mr o o t l d t 改变后篚j s y s t e m _ c a l l t i f f 数流程图 图4 9 中断描述符的结构图 4 3 图4 1 0 进程与v f s 的交互。 图4 1 l 被植入模块源文伺:h e l l o c 图4 1 2 被植入模块h e l l o k o 中需要重定位的符号 图4 1 3 宿主模块源文件i n f e c t c 。 图5 1a n t i r o o t l d t 的初始化流程图 图5 2a n t i - r o o t k i t 中s y s _ i n i t _ m o d u l e 的流程图 图6 1a n d r o o t i 【i t j c 寸攻击文件系统r o o t k i t 的实验结果 图6 2 a n t i - r o o t l d t 对攻击内核代码段r o o t l d t 的实验结果 图6 3a n t i r o o t l d t 对攻击中断描述符裹r o o t l d t 的实验结果 图6 4a n t i - r o o t k i t 对攻击系统调用表r o o t k i t 的实验结果 i x 舛 钉 铂 卯 镐 钞 铉 仉 矾 酯 酊 引 ql;? j 表目录 表3 1 典型r o o s t 总结 表6 1a a f i 删t 功能与对应的r ( i o t i ( i t 攻击 4 1 7 9 8 l 表6 2a i l d r 0 0 t i c i 铘已有检测r ( 时t l ( “工具的比较 x i 声明 我声明本论文是我本人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,本论文中不包含 其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做 的任何贡献均已在论文中作了明确的说明并表示了谢意。 作者签名产乖叶 日期如多一侈 论文版权使用授权书 本人授权中国科学院计算技术研究所可以保留并向国家有关部门或机 构送交本论文的复印件和电子文档,允许本论文被查阅和借阅,可以将本 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编本论文。 ( 保密论文在解密后适用本授权书。) 作者签名声禾竹导师签 、lti争 第一章引言 随着计算机在各行各业应用的深入和普及,各类社会、经济、政治、国防等重要信 息大量的在计算机中存储和网络中传输。计算机信息系统已经逐步成为整个国家经济运 转的命脉,围绕系统安全的研究也成为最热门的研究方向之一由于现在的因特网以及 操作系统存在很多的安全漏洞,连接在因特网上的计算机很容易受到各种各样的攻击, 其中被广泛使用的一种技术就是r o o t l d t 。 1 1r o o t k i t 产生的原因 由于操作系统存在各种漏洞,攻击者可以获得系统的超级用户访问权限,像系统管 理员一样控制整个系统。一旦攻击者获得系统的超级用户访问权限后,他就要想办法留 下后门方便再次以超级用户访问权限进入系统,因为他获得超级用户访问权限的这个系 统漏洞可能被修补另外,他还需要在被攻击的系统上清除攻击痕迹,隐藏他的攻击行 为,比如与r o o t k i t 相关的文件、进程、通信连接和系统日志等攻击痕迹。那么攻击者使 用什么方法来实现这些功能呢? 这就是本文要研究的r o o k i t 。 1 2r o o t k i t 的定义 r o o t l d t 是安全领域的一个术语,来自r o o t 和衄两个单词的组合,其中r o o t 是u n i x 系统中超级用户的名称,拥有系统的最高权限;蛀则是工具套件的意思。目前r o o k i t 还 没有权威的中文翻译,因此在本论文中,为了信息的准确性,使用英文r o o t k i t 。 维基百科( 删p e d i a ) 中关于r o a t k j t 的定义如下i l 】; “r o o t k i t 是攻击者在入侵系统后用来保持对系统的超级用户访问权限,创建后门和 隐藏攻击痕迹等常采用的一种技术。r o o t l d t 存在于l i n u x 、s o l a r i s 和w i n d o w s 等各种操 作系统上。” 1 3r 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 l d t 提供的后门,非常隐蔽的以超级用户的 中崩科学院磺士学位论文_ 实时捡测r o e t l d t 井自动修复系统的研究与实现 访问权限再次进入系统即使系统管理员采取了保护措施阻止刚开始使用的攻 击方法,如改变r o o t 口令、打补丁、改变系统配置等,攻击者也能通过r o o t k i t 提供的后门毫不费力地再次进入系统。 隐藏攻击痕迹:可以隐藏与r o o t l d t 相关的文件、进程、通信链接和系统日志等 攻击痕迹。 欺骗检测工具:比如针对文件完整性检查工具。r o o t l d t 可以向他们提供跟入侵 之前相同的文件信息( 校验和,修改时间等) ,欺骗检测工具。 提供恶意代码植入手段:病毒和蠕虫等恶意代码都可以通过r o o t k i t 提供的隐蔽 通道植入系统,也可以使用r o o t l d t 来隐藏自己 为攻击者进行其它非法活动提供跳板,例如利用被控主机向网络上的其它机器 传播病毒,发送垃圾邮件,进行分布式拒绝服务攻击等。 4 一+ 、 t , 、一一r 。4y 1 4r o o t k i t 的发展历史 文献记载的最早的r o o t l d t 出现在1 9 9 4 年,主要攻击u n i x 操作系统,特别是s u n o s 4 x t z ! 。那时的r o o t l d t 主要替换l o g i n 等系统工具,方便用户再次登陆系统。 记录最早的l i n u x 上的r o o t k i t 出现在1 9 9 4 年l o 月 2 1 。它主要替换l o g i n , p s 和n e t s t a t 等 系统工具。可以隐藏网络连接和进程,为应用级r o o t l d t l i n u x 上的内核级r o o t l d t 最早出现在1 9 9 7 年 3 1 ,从那以后,内核级r o o t l d t 常用的方 法是用可加载内核模块来替换系统调用。 第一个己知的w i n d o w s 平台上的r o o t k i t 是w w w r o o t k i t c o m 网站的创始人c , r e g h o g l u n d 藿e1 9 9 9 年发布的“n t r o o t l d t ”1 4 1 ,它可以隐藏注册表项和重定向可执行程序。 现在,几乎所有的操作系统( 包括l i n u x , h p - u x , b s d ,s o l a r i s ,和a i x 等) 都受到 r o o t l d t 的攻击。由于l i n u x 的开源和广泛使用,使得它成为r o o t l d t 攻击的主要目标。 r o o t i d t 的攻击方法也越来越高明,从刚开始的替换系统库和系统工具文件,深入到攻击 操作系统内核。本文的研究主要针对l i n u x 系统,但是很多成果也可以应用到其它的系 统上。 1 5r 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 两种类型。 1 5 1 应用级r o o t k i t 应用级r o o t l d t 是指入侵到操作系统应用层的r o o k i t ,通常会替换或修改一些系统工 具,i 蜘b i r d o g i n , b i n p s 等这些系统工具通常用来从系统中提取信息,比如运行的进 程,文件系统的内容,网络连接状态等r o o t l d t 替换这些系统工具主要有两个目的:重 2 第一章引言 新获得超级用户访问权限和隐藏攻击痕迹常见的替换对象和相应的功能如下: i s , f i n d , d i i l o e 舭,s y n c ,l s o f :隐藏文件和目录 p s , p s t r e e ,t o p ,k i l l a l l , p i a o f 隐藏进程 n e t s t a t t c p d r o u t e ,a r p :隐藏网络连接 i f c o n f i g :隐藏网卡的p r o m i s c 状态( 表示网络处于被监控状态) l o g i n :提供后门供攻击者再次以超级用户访问权限进入系统 s s h d , t e l n e t c k 邱吐s m b d ,r p c m o u n t d :为各种网络连接提供后门 s y s l o g d :过滤系统日志 应用级r o o t l d t 还可能包括一些其它的工具和信息收集程序来执行一些攻击任务。比 如安装网络嗅探器( s n i f f e r ) 来获取一些敏感信息( 比如其它系统的用户名和密码等) 。 为了修改这些系统工具,攻击者需要先获得这些系统工具的源文件。对于开源系统 ( 例如l i n u x , o p e n b s d ,o p e n s o l a r i s 和f r e e b s d 等) 来说,这些源文件都是可以免费获得 的。 现在常见的应用级r o o t l d t 有t 0 m t s ! 和l r k 6 1 。 由于应用级r o o t k i t 修改了系统工具,因此系统工具输出的结果不再可信,系统管理 员不能用系统工具的输出信息来检测应用级r o o t l d t 目前检测应用级r o o t k i t 的方法主要 有文件完整性检查方法:安装系统后,初始化系统文件的各种信息( 比如校验和,最后 修改时间,签名( s i g n a t u r e ) 等) ,检测的时候把文件的当前信息跟这些保存起来的基准信 息进行比较,若不匹配则表示相应的文件被修改。常见的文件完整性检查工具有 t d p w i r e z 3 1 和a i d e 【9 1 等。 , 1 5 2 内核级r o o t k i t 内核级r o o s t 是计算机系统安全领域最近出现的种攻击方法操作系统内核处在 整个操作系统的最底层,是最重要的部分【l o 】。文件系统、进程调度、存储管理和系统调 用等都是在操作系统内核中实现。 内核级r o o t l d t 是指入侵到操作系统内核层的r o o t k i t ,通常会修改最底层的操作系 统内核,比如中断处理函数,系统调用,文件系统等 由于操作系统内核在操作系统的最底层,如果内核受到r o o t k i t 攻击,应用层的程序 从内核获得的信息将不可靠。虽然内核级r o o t l d t 可以不修改系统工具,但是系统工具都 需要通过系统调用从内核获取信息,而内核提供的信息不可靠,因此系统工具( 比如l s ,p s , n e t s - t a 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 l d t 的破坏性更大,而且它能逃避任何应用层的 检测,预防和检测的难度更大,是本文的研究重点。 中国科学院硬士学位论文实时检测r o o t k i t 并自动修复系统的研究与实现 1 6r o o f 傲i t 的攻击过程 为了对r o o t k i t 的攻击有个更清晰的了解,下面用一个例子来讲解攻击者攻击系统的 全过程【1 l 】。 1 6 1 收集目标系统信息 攻击者在攻击某个系统之前,他会想办法知道这个系统存在哪些漏洞。使用什么操 作系统,有哪些帐号等。 1 6 2 获得超级用户访问权限 攻击者在收集了目标系统的足够信息,检测到了目标系统的漏洞后,就会对目标系 统发起攻击。在这一阶段,攻击者需要获得目标系统的超级用户访问权限。他可能先获 得普通用户访问权限,然后再利用目标系统的本地漏洞提高到超级用户访问权限。另一 种更好的方式是直接利用卸和t e l n e t d 等网络服务的漏洞获得超级用户访问权限。 k 1 6 3 在目标系统上安装r o o t k i t 攻击者在获得超级用户访问权限后,攻击者就可以在目标系统上安装r o o t k i t ,来隐 藏攻击行为,创建各种后门。 1 6 4 控制目标系统 攻击者在目标系统上安装r o o t l d t 后,就可以持久的控制目标系统,对其进行各种攻 击,而且不被目标系统的管理员察觉。例如:利用目标系统攻击其它系统,使目标系统 拒绝提供某些服务等等。 1 7 检测r o o t k i t 的研究现状 目前存在很多检测r o o t l d t 的方法,下面介绍一些常用的方法和工具。 1 7 1a l d e a i d e t g l ( a d v a n c e di n u u s i o nd e t e c t i o ne n v i r o n m e n t ) 是一个文件完整性检测工具, a i d e 生成一个指定文件的数据库,用来保存文件的各种属性,包括:权限( p e r m i s s i o n ) 、 索引节点序号( m o d en u m b e r ) ,所属用户( u s e r ) 、所属用户组( g r o u p ) 、文件大小、最后修改 时间( m t i m e ) 、创建时间( c t i m e ) 、最后访问时间( a t i m e ) 、增加的大小以及链接数等。a i d e 还使用下列算法:s h a l 、m d 5 、r m d l 6 0 、t i g e r ,以密文形式建立每个文件的校验码或散 列值【吃1 3 1 。 管理员在一个系统安装完毕,连接到网络之前,建立这个系统的基准a i d e 数据库, 这个a i d e 数据库是系统的一个快照和以后系统升级的准绳。数据库应该至少包含下面 4 第一章引言 这些文件的信息:关键的系统二进制可执行程序、动态连接库、头文件以及其它保持不 变的文件。 当检查系统是否被r o o t k i t 入侵时,系统管理员会使用i s 、l s o f p s 、n e t s t a t 、l a s t 以 及w h o 等系统工具对系统进行检查,但是所有这些系统工具都可能被r o o t l d t 程序改变。 可以想象被修改的i s 和p s 等不会显示任何跟r o o t k i t 相关的信息,甚至本身就是一个肩 负b a c k d o o r 任务的程序系统管理员恐怕永远也无法通过简单的文件属性来获知它们是 否被修改过了,因为文件日期、大小等信息是非常容易改变的,如利用t o u c h 。系统管理 员只要运行a i d e ,就能够很快识别出哪些关键文件被攻击者修改过了 由于a i d e 只能检测文件系统是否变化,因此只能检测应用级的r o o t l d t 对于没有 修改系统文件的内核级r o o t k i t ,a i d e 不能检测。 1 7 2k e m _ c h e c k k e m c h e e k l l 4 1 主要通过比较各个符号在s y s t e m m a p 文件和系统运行时的地址,来判 别系统内核是否被r o o t l d t 攻击。k e m _ c h e c k 通过检查p r o c 文件系统的l o o k u p i 垂i 数来检测 a d o r e - n g i 为核级r o o t l d t ,通过检查系统调用表以及系统调用表项来检测s u c k l t 等攻击系 统调用表的内核级r o o t l d t 。 k e r nc h e c k 可以检测到下面这些类型的r o o t k i t : 修改系统调用表,如o v e r r i d e 和p h a l a n x 等。 重定向系统调用表,如s u e k l t 等。 攻击虚拟文件系统,如a d o r e - n g 等。 k e r n _ c h e e k 不能检测到攻击内核代码段和中断描述符表的r o o t l d t ,如e n y e l k m r o o t k i t t l 5 1 等。另外,k e r nc h e e k 采用比较地址的方法来检测r o o t k i t ,依赖于s y s t e m m a p 文件中的符号地址。 1 l 3c h e e k l d t k a d 不仅提出了种攻击中断描述符表的方法,还提出了一种检测这种攻击的方法, 实现为c h e e l d d t - i - 具【1 6 1 c h e e k l d 曙对于每个中断描述符,比较下面的2 个中断处理函 数地址: l ,s y m t e m m a p 中的中断处理函数地址 2 ,a d e v m e m 获得的当前系统的中断处理函数地址 若上面两个地址不相等,则表示相应的中断处理函数被重定向了。 c h e c l d d t 只能检测攻击中断描述符表这一种类型的r o o t l d t 1 7 4s t j u d e & s 堋i c h a e l s t j u d e & s t m i c h a e l ! i 刀替换夥s ! c r e a 呛m o d i l l e ,s y s _ _ m i t _ m o d u l e ,s y s _ d e l e t e _ m o d u l e :来 查加载的模块,使用系统输出的s y s c a l lt a b l e 符号地址检查系统调用表 , 中国科学院硕士学位论史一实时检测r o o t k i t 并自动修复系统的研究与实现 s t j u d e & s t m i c h a e l 在l i n u x2 4 内核中可以检测到很多r o o t l d t ,但是在l i n u x2 6 内核中不能 使用。 1 7 5s e l i n u x s e l i n u x 【1 棚可以提供强制的访问控制( m a c ) 来进行小粒度的权限控制,提高系统的 一 安全性。s e l i n u x 主要的功能有: 对内核对象和服务的访问控制 对进程初始化、继承和程序执行的访问控制 对文件系统、目录、文件和打开文件描述符的访问控制 对端口、信息和网络接口的访问控制。 但是,攻击者仍然可以想办法获得一定的权限,在目标系统上安装r o o t l d t ,因此 s e l i n u x 只是提高了r o o t k i t 入侵的门槛,不能有效的防止r o o t k i t , 1 7 6k e r n e l - ( 3 u a r d k c m e l g m “1 9 1 拦截i n i tm o d u l e 和d e l e t em o d u l e 两个系统调用,使得这2 个系统调 用不执行正常的功能,阻止包括r o o t 在内的任何用户加载模块k e r n e l - g u a r d 可以防止 l k m 形式的r o o t k i t 。但是大部分用户在使用系统的过程中都需要使用l k m 功能,因此该 方法会影响系统的正常使用。 除上面分析的检测工具外,还有c h k r o o t l d t t 2 0 ,r k h u n t e r 位1 和r o o t c h e c k l 2 2 等检测工 具,不过它们都只能检测到应用级的r o o t l d t 。 1 8 本文的研究动机 r o o t l d t 严重威胁着系统的安全。实时检测r o o t k i t 对于维护系统的安全具有重要的 意义。此外,在检测到r o o t l d t 后,还需要对系统进行修复。如果我们能够找到一种方法 来实时地检测r o o f f , 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 l d t ,且都需要由管理员手动的执行。还不存在一种有效 的方法可以自动修复系统,一旦系统被内核级r o o t l d t 攻击,只能重启或重装操作系统才 能使系统恢复到正常状态。 1 9 本文的组织 本文内容的组织如下: 第一章介绍了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 的研究现状和本文的研究动机。 第二章介绍了l i n u x 内核中跟r o o t k i t 相关的基本原理。主要分析了l i n u x 的系统调 用机制和可加载内核模块l k m 机制。 第三章对一些典型的r o o t k i t 进行分析。 第四章对r o o t l d t 的攻击原理进行了深入剖析除了分析已被r o o t l d t 使用的攻击方 法外,还从攻击者的角度出发,分析了一些可能被r o o t l d t 使用的攻击方法。 第五章提出了一种实时检测r o o t l d t 并自动修复系统的方法,并在l i n u x 上实现为 a n t i r o o t l d t 系统。 第六章分析a n t i r o o t k i t 的实验结果,并与相关的研究进行了比较。 最后,第七章对整个论文进行了总结,并给出了将来的研究方向。 7 第二章与r o o t k i t 相关的操作系统原理分析 为了理解r o o t k i t 的攻击原理,本章分析l i n u x 内核中跟r o o t k i t 相关的基本原理, 主要包括l i n u x 中的系统调用机制和可加载内核模块l k m 机制。 2 1l i n u x 系统调用机制 2 1 1 什么是系统调用 系统调用是操作系统内核向应用程序提供的操作硬件设备、请求内核服务的接口。 系统调用接口位于用户态与核心态之间,应用程序通过系统调用向操作系统内核请求服 务,操作系统内核完成服务后将结果返回给应用程序。 2 1 2 系统调用的作用 系统调用在l i n u x 系统中发挥着巨大的作用,如果没有系统调用,那么应用程序就 失去了内核的支持。我们在编程时用到的很多函数,如f o r k 、o p e n 等这些函数最终都是 在系统调用里实现的,比如有这样一个程序: # i n c l u d e # i n c l u d e 。 i m m a i n 0 f o r k 0 ; c ) 【似o ) ; 这里用到了两个函数,即f o r k 和e x i t ,这两个函数都是g l i b c 中的库函数,但是如果 跟踪函数的执行过程,看看f l i b c 受tf o r k 和e x i t 函数的实现就可以发现在g l i b c 的实现代 码里都是采用软中断的方式陷入到内核中再通过系统调用函数实现的 由此可见,系统调用提供了一种访问核心的机制,这种机制提高了系统的安全性, 保证了应用程序的可移植性 2 3 1 2 1 3 系统调用的实现机制 在详细讲述系统调用实现机制之前先介绍一下l i n u x 系统的一些保护机制。 x 9 6c p u 在保护模式下提供了四个特权级别,目前l i n u x 只用到了其中的两个特权 级别,分别为“特权级0 ”和“特权级3 ”,特权级0 也就是通常所讲的内核模式,特权 级3 也就是通常所讲的用户模式划分这两个级别主要是对系统提供保护内核模式可 9 中国科学院硕士学位论文实时检测r o o t k i t 并自动修复系统的研究与实现 以执行一些特权指令和进入用户模式,而用户模式则小能。 这里特别提出的是,内核模式与用户模式分别使用自己的堆栈,当发生模式切换的 时候同时要进行堆栈的切换。 每个进程都有自己的地址空间( 也称为进程空间) ,进程的地址空间也分为两部分: 用户空间和系统空间,在用户模式下只能访问进程的用户空间,在内核模式下则可以访 问进程的全部地址空间,这个地址空间里的地址是一个逻辑地址,通过系统段页式的管 理机制,访问的实际内存要做二级地址转换,即:逻辑地址专线性地址专物理地址。 系统调用对于内核来说就相当于执行函数,处理系统调用的关键问题是从用户模式 到内核模式的转换、堆栈的切换以及参数的传递。 在l i n u x2 6 中,有两种实现系统调用的方式:中断方式和s y s e n t e r s y s e x i t 指 令方式。下面分别对这两种实现方式进行分析: 42 1 3 1 中断方式实现系统调用一 t 一r w l i n u x 操作系统可以利用软中断机制实现系统调用,对于x 8 6 结构,跟系统调用对 应的中断号为o x 8 0 ,用户程序通过调用h a to x 8 0 中断指令陷入核心,操作系统核心执行 中断服务例程,调用用户请求的系统调用处理函数,并将结果返回给用户程序。 下面将结合l i n u x2 6 1 5 内核的源代码对这个实现机制进行分析。 。 2 1 3 1 1 系统调用宏 用户空间的函数( 通常为库函数g l i b c ) 使用系统调用宏,进行系统调用的格式转换和 参数传递,系统调用宏在i n c l u d e a s m - i 3 8 6 u n i s t d h 中定义,形式为:, _ s y s c a l l n ( t y p e ,l l a l n e , x ) n 是系统调用所需的参数数目,取值范围为0 到6 。s y s c a h n o 第一个参数说明响应 函数返回值的类型,第二个参数为系统调用的名称( 即n a m e ) ,其余的参数依次为系统 调用参数的类型和名称。 例如,带一个参数的系统调用宏为: # d e f i n e _ s y s c a l l l ( t y p e , n a m e , t y p e l , a r 9 1 ) | t y p en a m e ( t y p e la r g o 、 l o n g 陀s ;| 一a s m v o l a t i l e ( “i n t $ 0 x 8 0 ”、 :”- a l j 哟、 :”0 “( n r 删n a m e ) , b “( ( 1 0 n g ) ( a r 9 1 ) ) :”m e m o w ”) ;、 s y s e a l l r e t u m ( t y p e , r e s ) ;、 系统调用宏通过h a to x 8 0 软中断触发系统调用当发生调用时,函数中的r 黜会被 系统调用号所代替。 1 0 l 第= 章与r o o d f i t 相关的操作系统原理分析 函数的参数压栈顺序如下: 参数参数在堆栈的位置 传递参数的寄存器 a r g l0 0 ( e s p ) e b x a r 9 2州劝 嗽 a r 9 30 8 ( * , e s p ) e d x a r 9 4o c ( 唧) e s i a r 9 51 0 ( e s p ) e d i 若1 n t0 x 8 0 的返回值非负,则直接按类型t y p e 返回;否则,将i n t0 x 8 0 的返回值 取绝对值,保留在e m l o 变量中,返回- l 。 参数个数为n 的系统调用由s y s c a l l n 负责格式转换和参数传递。例如,p t r a c e 0 有四 个参数,它对应的格式转换宏就是s y s c a l l 4 0 : _ s y s c a t l 4 ( i n t , p t r a c e , l o n gr e q u e s t , l o n gp i d l o n ga d d r , l o n gd a 扭) 对应$ , i n tp u 丑c e ( 1 0 n gr e q u e s t , l o n gp i d ,l o n ga d 出,l o n gd a t a ) 当应用程序调用系统调用时,编译器会将系统调用宏展开,展开后的代码实际上是 将系统调用号和参数放入e a x 等寄存器后,调用i n to x s o 使处理器转向系统调用中断处 理函数s y s t e m _ c a l l ,然后查找系统调用表夥啦a l l j a b l e ,进而由内核执行系统调用函数 2 1 3 1 2 系统调用号 从用户空间的函数到系统调用有一个很重要的参数就是系统调用号。系统调用号的 在i n c l u d e a s m - i 3 8 6 u n i s t d h 文件中定义如下: # d e f i n e n rr e s t a r t _ s y s c a l l 0 # d e f i n e n r e x i t l # d e f i n en r _ s y s c a l l s2 9 4 每一个系统调用号都唯一的对应一个系统调用。 以系统调用4 号一n r n a m e 作为下标,找出系统调用表s y 蚋l l j 曲l e 中对应表项的内 容,就是该系统调用号对应的系统调用函数s y s _ r 恤n e 的地址 最后一个n r 科s c a i l s 表示系统中总共的系统调用数。 2 1 3 1 3 设置中断处理函数 系统启动时,汇编子程序s e t u p _ i d t ( a r e h d 8 6 k e r n e l h e a d s ) 准备了一张2 5 6 项的i d t 表,由s t a r t _ k e m e l 0 ( i n i f f m a i n c ) 、昀p ! i n i t o ( a r c b 3 8 6 l 耐嘴岬c ) 调用的c 语言宏定义 s e t _ s y s t e m _ g a t e ( o x 8 0 。& s y s t e me a l l ) ( i n c l u d e a s m s y s t e m h ) 设置o x s o 号软中断的服务程序 为s y s t e me a d l 夥s 把m u 似曲,i 3 8 6 锄硷l ,锄s ) 就是中断方式的系统调用的总入口 中目科学院硕士学位论文实时检测r o o 出i t 并自动修复系统的研究与实现 l i n u x2 6 1 5 内核源代码中,设置系统调用中断处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机器视觉产业合作协议书
- 2025年超强吸水聚合物合作协议书
- 风筝企业制定与实施新质生产力战略研究报告
- 住宅房屋行业直播电商战略研究报告
- 风筝行业直播电商战略研究报告
- 水泥混凝土压力管行业直播电商战略研究报告
- 绘图文具行业直播电商战略研究报告
- 2025-2030鞍钢冷板产业市场深度调研及发展趋势与投资研究报告
- 2025-2030钨钢行业发展分析及投资价值研究咨询报告
- 2025-2030金属食品包装行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025年全民国家安全教育日知识竞赛考试题库500题(含答案)
- 跨境电商网站的设计挑战试题及答案
- 2024中国山东省集中供热行业发展趋势预测及投资战略咨询报告
- 肯德基店面试试题及答案
- 2023国家卫健委中国结直肠癌诊疗规范
- 深信服下一代防火墙技术白皮书20231120
- 广州市白云区2025年招考社区居委会专职人员高频重点模拟试卷提升(共500题附带答案详解)
- 2025年辽宁省大连市高考语文一模试卷
- 统编版语文七年级下第18课《井冈翠竹》公开课一等奖创新教学设计
- 苏教版六年级数学下册第三单元《解决问题的策略(1)》课件
- 七年级数学新北师大版(2024)下册第一章《整式的乘除》单元检测习题(含简单答案)
评论
0/150
提交评论