




已阅读5页,还剩65页未读, 继续免费阅读
(计算机系统结构专业论文)基于行为监测的antirbootkit的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 r o o t k i t 是一种新型的恶意程序程序或程序集,设计的目的是用来秘密的控 制被攻占的计算机的行为。通过隐蔽后门程序或其他类似的工具程序,使得这些 工具程序能在指定计算机上长期非法存在;同时当用户查询计算机的当前状况 时,通过隐藏相关信息的方法来欺骗用户,使用户相信此计算机未受到侵害。 b 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 b o o t k i t ( r b o o t k i t ) 属于信息安全攻防的新型技术亮点和潜在的危险变种,当前业界和 学术界竞相公布出各自富有特色研究项目。 本文的主要工作和特色如下: 1 b r o o t k i t 行为剖析以及预防监测的技术瓶颈的提出 深入探索当前主流b r o o t k i t 的危害原理以及技术要点实现,以及主流 a n t i r b o o t k i t 在行为判断上过多依赖用户选择的现状,指出了恶意进驻内核这 个行为特征提取是b o o t k t i r o o t k i t 防范与检测的技术瓶颈。 2 行为特征的形式化描述语言的提出 为了统一且完整描述r b o o t k i t 的各种行为以及子行为彼此间内在的关联关 系,我们定义出形式化描述语言规范,以描述出该恶意行为特征。 3 基于恶意进驻内核行为特征的a n t i r b o o t k i t 原型系统的设计与实现 在此基础上,利用该形式化描述语言规范和行为策略,我们设计并实现了一 个基于恶意进驻内核行为特征的a n t i r b o o & i t 原型系统。在和同类商业化的 a n t i r b o o t k i t 系统的比较中,显示出较优的自主识别能力以及较好的未知 r b o o t k i t 预防能力。 本文最后提出了r b o o t k i t 和a n t i r b o o t k i t 对抗中新的发展趋势,并介绍了t 下一步的工作方向。 关键词:r o o t k i t ,b o o t k i t ,行为特征,布控,优先启动,进驻内核,形式化 描述,b e h a v i o rd e t e c t i o n ( b d ) 木本论文工作得到电子信息产业发展基金( 操作系统安全加固软件研发及产 业化文号:财建 2 0 0 8 1 3 2 9 ,工信部j , 垂_ 2 0 0 8 1 9 7 ) 的支持,在此表示感谢。 a b s t r a c t a b s t r a c t a san e wk i n do fm a l w a r es e t s ,r o o t k i th a sb e e nd e s i g n e dt oc o n t r o lt h e b e h a v i o ro ft h eh i ja c k e dc o m p u t e rs e c r e t l y t h et o o lp r o g r a mc a ns u r v i v ei l l e g a l l yo n t h ed e s i g n a t e dc o m p u t e rf o ral o n gt i m et h r o u g hc o v e r tb a c k d o o r so rs i m i l a rp r o g r a m w h i c hc a na l s om a k et h eu s e rb e l i e v et h a th i sc o m p u t e ri sa w a yf r o mi n b r e a kb y h i d i n gk e yr e l m i v ei n f o r m a t i o nw h i l et h eu s e rc o n s u l t st h ec u r r e n ts t a t u s o fh i s c o m p u t e r a sa l la d v a n c e df o r mo fr o o t k i ti n h e r i t i n g t h ek e r n e l - l e v e lp r i v i l e g e e x p l o i t m e n ta n ds e l f - c o n c e a l m e n tt e c h n o l o g y , b o o t k i th a si n t e r p o s e dan e wc h a l l e n g e t o w a r d ss y s t e mb o o ta n dk e r n e le n t r a n c es a f e t y b e c a u s er o o t k i t b o o t k i t ( r b o o t k i t ) b e l o n g st op o t e n t i a ld a n g e r o u sm u t a t i o nw i t hn e wt e c h n o l o yi ni n f o r m a t i o ns e c u r i t y f i e l d ,b o t ht h ei n d u s t r yl i n ea n dt h ea c a d e m eh a v ep u b l i s h e dt h e i rf e a t u r e dr e s e a r c h p r o je c t i o n s t h em a jo rc o n t r i b u t i o na n df e a t u r eo ft h et h e s i si sa sf o l l o w : 1 r b o o t k i tb e h a v i o ra n a l y s i sa n dt h ee x t r a c t i o no ft h et e c h n o l o g i c a lb o t t l e n e c ko f t h ep r e v e n t i o na n dd e t e c t i o nf o rr b o o t k i t w ep r o p o s e dt h eb e h a v i o rf e a t u r eo fe n t e r i n gi n t ok e r n e lm a l i c i o u s l ya st h e b o t t l e n e c ko fp r e v e m i n ga n dd e t e c t i n gr b o o t k i tt h r o u g h te x p l o r i n gt h eh a z a r d p r i n c i p l ea n dt e c h n o l o g i c a lk e yp o i n to fc u r r e n tm a j o rb r o o t k i ta n dt h ew e a k n e s so f r e l y i n go n t h eu s e rc h o i c ew h e nj u d g i n gt h eb e h a v i o ri n t e n t i o nf o rm a j o r a n t i b r o o t k i t 2 d e f i n i t i o no f t h ef o r m a ld e s c r i p t i o no f t h eb e h a v i o rf e a t u r e w eh a v ed e f i n e daf o r m a l d e s c r i p t i o nl a n g u a g e t o d e s c r i p t t h ei n t e r n a l r e l a t i o n s h i pb e t w e e ne v e r yb e h a v i o ra n ds u b b e h a v i o ri ng e r e r a la n di nc o m m o nf o r b e h a v i o rf e a t u r ed e s c r i p t i o n 3 t h ed e s i g na n di m p l e m e n t a t i o no fa n t i r b o o t k t ip r o t o t y p es y s t e mb a s e do nt h e b e h a v i o rf e a t u r eo fm a l i c i o u se n t r a n c ei n t ok e r n e l o nt h i sb a s e ,w eh a v ed e s i g n e da n di m p l e m e n t e das e to fa n t i w b o o t k t i p r o t o t y p es y s t e mb a s e do nt h eb e h a v i o rf e a t u r eo fm a l i c i o u se n t e r a n c ei n t ok e r n e l t h r o u g hu t i l i z i n gt h eb e h a v i o rr u l e sa n dp o l i c yd e s c r i p t e db yt h el a n g u a g em e n t i o n e d a b o v e t h i sp r o t o t y p ep r e s e n t e db e t t e r i n d e p e n d e n ti d e n t i f i c a t i o na b i l i t ya n d p r e v e n t i o na b i l i t yt o w a r d su n k n o w nr b o o t k i tc o m p a r e dw i t ht h es a m ek i n do f c o m m e r c i a la n t i r b o o t k i ts y s t e m i i i a b s t r a c t a tl a s tw eh a v ep r o p o s e dt h en e wd e v e l o p m e n tt r e n db e t w e e nr b o o t k i ta n d a n t i - r b o o t k t ia n di n t r o d u c e dt h ef u r t h e rw o r kf o r e g r o u n d k e y w o r d s :r o o t k i t ,b o o t k i t ,b e h a v i o rf e a t u r e ,h o o k ,b o o ta h e a d ,e n t e ri n t ok e r n e l , f o r m a ld e s c r i p t i o n ,b e h a v i o rd e t e c t i o n ( b d ) t h i sw o r ki s s u p p o r t e db ye l e c t r o n i ci n f o r m a t i o ni n d u s t r yd e v e l o p m e n tf u n d ( o p e r a t i n gs y s t e m s e c u r i t y r e i n f o r c e m e n t , c a i j i a n 2 0 0 8 1 3 2 9 , g o n g x i n b u y u n 2 0 0 8 9 7 ) i v 插图目录和表格目录 图2 1 图2 - 2 图2 - 3 图2 4 图3 1 图3 2 图3 3 图3 - 4 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图4 7 图4 8 图4 9 图4 1 0 图4 1 1 图4 1 2 图4 1 3 图4 1 4 图4 1 5 图4 1 6 图4 1 7 图4 1 8 插图目录和表格目录 执行路径截获,8 w i n d o w sp e 文件格式示意9 i r p 挂接ll w i n d o w s 启动流程13 k l o g 植入感染示意图l7 b i o s 内存布局2 1 w i n d o w s 引导过程执行流程2 4 规则范式库框架简图2 9 a p p s y s 模式的总体设计- 3 2 i o c t l 码格式3 4 i r p 结构。3 4 i r p 固定头部3 5 i o 堆栈单元数据结构3 6 驱动程序对象的属性3 7 设备对象的数据结构3 8 设计框架图4 0 p b d 劫控原理4 3 劫控点函数调用堆栈4 4 修改p b d 磁盘镜像。4 5 p b da n t i r o o t k i t 框图4 6 w i n d o w s 系统调用机制4 8 s s d th o o k j 5l 行为语义解析模块5 2 状态迁移发现行为特征5 3 行为解析模块执行流程5 4 编译器模块5 5 表4 1 优先启动对比结果4 6 表4 2 机器配置5 6 表4 3 横向比较对象5 6 表4 4 已知r b o o t k i t 评估5 7 表4 5 非r k l 3 0 0 t k i t 评估5 8 表4 - 6 不同加载方式评估5 8 v i i 中国科学技术大学学位论文原创性和授权使用声明 本人声明所呈交的学位论文,是本人在导师指导下进行研究工作 所取得的成果。除己特别加以标注和致谢的地方外,论文中不包含任 何他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究 所做的贡献均已在论文中作了明确的说明。 本人授权中国科学技术大学拥有学位论文的部分使用权,即:学 校有权按有关规定向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅和借阅,可以将学位论文编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 保密的学位论文在解密后也遵守此规定。 锋严 0一r鸯咖 名a 獬川, 糍矿 第1 章绪论 1 1 引言 第1 章绪论 作为成为2 0 世纪最杰出的研究成果之一,i n t e m e t 改变了人们生活方式和工 作方式,改变了全球的经济社会结构,越来越成为人类物质社会的最重要组成部 分。开放、灵活、丰富的应用是i n t e m e t 的特色,但同时潜在地也带来了安全问 题。由于越来越多的组织开始利用i n t e m e t 处理和传输敏感数据,与此同时在 i n t e m e t 上也到处传播和蔓延着攻击方法和恶意代码,使得连入i n t e r n e t 的任何系 统都处于将被攻击的风险之中。 在i n t e m e t 安全事件中,恶意软件代码造成的危害最为严重。恶意软件 ( m a l e w a r e ) 是非用户期望运行的、怀有恶意目的或完成恶意功能的完整的程序 集合 3 2 】 3 3 】 3 4 】。恶意代码( m a l i c i o u sc o d e ) 含义与恶意软件相近,区别在于 所描述的粒度不同,是指用于描述完成特定恶意功能的代码片段。 恶意代码正在成为信息战、网络战的主要手段,日益严重的恶意代码威胁, 新型威胁和组合式威胁的爆炸式增长让防护工作变得复杂起来。例如,a v - t e s t g m b h 表示,1 9 9 8 年安全厂商共收集到1 7 3 8 种独特的威胁样本。那个时候,安 全专家监测到近3 0 种签名,因为样本很容易组合形成特征码。1 0 年以后,恶意 软件样本数量攀升至1 7 7 6 1 5 种,仅仅2 0 0 8 年前两个月就报告了1 1 0 万种独特样 本。 根据趋势科技全球防病毒研发暨技术支持中心t r e n d l a b s 的发现,从2 0 0 5 年到2 0 0 8 年为止,t r e n d l a b s 报告网络威胁增长了2 3 5 5 。t r e n d l a b s 研究人员 也预测,如果威胁数量继续以现在的速度增长,那么2 0 1 5 年将会出现2 3 3 亿种 独特威胁。 r o o t k i t 作为恶意程序的子集,用于实现自身及系统中特定资源和活动的隐 藏,破坏可信任计算机的完整性 1 。经常用来隐蔽后门程序或其他类似的工具 程序,使这些工具程序能在指定计算机上长期非法存在。当用户查询计算机的当 前状况时,通过隐藏相关信息的方法来欺骗用户,使用户相信此计算机未受到侵 害。b o o t k i t 是继承自r o o t k i t 内核权限获取和自我痕迹擦除技术的r o o t k i t 高级 发展形式。b o o t k i t 通过感染可引导的外设固件和关键系统文件,驻留在整个系 统的启动过程,获取系统控制底层权限并且擦除自我存在痕迹,从而为网络恶意 代码的进一步攻击行为提供隐蔽、可靠、持久的执行环境。 国际知名的信息安全厂商卡巴斯基实验室去年发表了题为卡巴斯基安 全公告:2 0 0 8 恶意软件发展情况的报告,在这个报告中,卡巴斯基表示,2 0 0 9 第1 章绪论 年度的恶意软件发展情况将持续恶化。2 0 0 8 年对整个反病毒行业以及整个信息 安全产业都产生了重大影响的安全事件主要为r o o t k i t 的传播,以及针对在线游 戏产生的恶意程序及僵尸网络。 b o o t k i t 这个概念自2 0 0 5 年e e y ed i g i t a l 安全公司的研究人员研究如何在系 统启动时利用b i o s 接入w i n d o w s 内核的”b o o t r o o t ”项目中被第一次提出以后, 也越来越为黑客所钟爱,最近更被全球知名的杀毒厂商卡巴斯基在其年度报告中 列为2 0 0 8 年度互联网安全的重大挑战。 1 2 研究现状与意义 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 k i t 比用户 模式r o o t k i t 更具隐蔽性,更难被检测。按照隐藏的内容来分,r o o t k i t 隐藏的部 件包括文件、目录、进程、注册表项、网络端口、设备驱动器等所有使用户判定 系统异常的系统模块。 b o o t k i t 是继承自r o o t k i t 内核权限获取和自我痕迹擦除技术的r o o t k i t 高级 发展形式,对系统启动和内核准入安全提出了最新挑战。由于b o o t k i t r o o t k i t ( r b o o t k i t ) 属于信息安全攻防的新型技术亮点和潜在的危险变种,当前业界和 学术界竞相公布出各自富有特色研究项目。如安全人员j o h nh e a s m a n 利用a c p i ( a d v a n c e dc o n f i g u r a t i o na n dp o w e ri n t e r f a c e ) 操作b i o s 的新型r o o t k i t 进行过 探讨 2 7 1 ,这是一种特殊的利用a c p i 机制存在的b i o sr o o t k i t ;d a r m a w a nm s a k ap i n c z a k k o 发表过一系列的关于a w a r db i o s 文件进行逆向改造的文章 2 8 1 , j o h nh e a s m a n 还就p c i 设备( 如显卡、网卡等设备) 可能存在的r o o t k i t ( 其植 入p c i 设备中,特性类似于植入b i o s 芯片的r o o t k i t ) 进行过讨论【2 9 】;还有 k r i sk a s p e r s k y 在其专著中【3 0 】也编写专门章节来就b i o sr o o t k i t 的实现原理进 行阐述等等。s h a w ne b l e t o n 等在文献 3 1 】第一次发表了基于s m m 的跟平台无关 的b o o t k i t 的实现思路;国内的安全研究员m j 0 0 1 1 在文献 2 6 】中实现了基于预启 动驱动方式的t o p h e tb o o t k i t 的思想。 j 目前针对以恶意程序的预防、检测技术主要有以下几种: 1 扫描技术: 作为目前商用恶意代码检测软件使用的主要方法之一,特征码扫描是检测己 知恶意代码的最简单的方法 2 4 1 1 2 5 。扫描原理是打开被检测磁盘文件、关键内 存区域、网络邮件等,扫描其中是否含有特征数据库中的恶意代码特征串,如果 2 第1 章绪论 含有,则判断该文件含有恶意代码。其中特征数据库是在确定某个程序是恶意代 码后,通过静态反汇编或动态调试,手工提取其中不同于其他程序的指令片断组 成的特征数据库。 特征码扫描的主要优点是误报率低,检测准确。但是恶意程序的搜集很困难, 面对层出不穷的恶意代码,需要建立一个庞大的恶意代码的搜集网络才能有效搜 集;即便得到恶意代码样本,由于其特征码的提取需要专业人士人工完成,费时 费力。由于对于未知的不在特征数据库中的恶意代码无能为力,越来越多的恶意 代码通过使用变形、加壳、加花、多态等技术可以轻松避过特征码扫描。 2 检测技术: 针对目前出现的各种r b o o t k i t 隐藏的非常巧妙的各种内核恶意代码,目前 为止没有一种通用的高效方法来进行检测,主要的检测方式有: ( 1 ) 基于特征码的内核内存扫描检测 该方法的检测原理是通过在内核内存中匹配具有特征码的内存块来 检测r o o t k i t ,但它通常只能检测出已知特征码的r o o t k i t 。 ( 2 ) 启发式扫描检测 该方法的检测原理是通过发现非常规的系统行为来寻找r o o t k i t 的 隐藏痕迹。但是由于通常不可避免会挂钩系统频繁调用的关键处理函 数,对操作系统性能有较大影响。目前比较成熟的启发式扫描检测的应 用实例是v i c e 和p a t c h f i n d e r 等。 ( 3 ) 基于内存完整性校验的检测 该方法的检测原理是假设关键的系统部件譬如n t o s k r n l e x e 的磁盘 p e 文件是可信的、完整的,通过对比磁盘文件中相应部分来校验内存 部件的完整性。虽然对于采用挂钩不同层次的a p i 调用、挂钩s s d t ( 系统服务描述表) 以及挂钩i d 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 。 ( 4 ) 基于交叉视图的检测 该方法的检测原理是通过比较不同途径所枚举到的系统信息,譬如 文件目录列表、网络连接列表、如进程列表、s s d t 、i d t 等关键系统 部件,根据其中的差异来发现r o o t k i t 的隐藏痕迹。虽然通过枚举系统 信息的途径较为可靠通用,但是监测的可靠性依赖于不同途径的可信 性。 3 主动防御技术: 主动防御技术可以在新的未知的安全威胁破坏计算机之前检测到并且排除 第1 章绪论 之。其实现原理在于定义程序执行的威胁程度规则列表,通过由某种应用程序或 进程执行的行为序列来辨认一个在计算机中的新威胁。在实际运行过程中,通过 全面监控运行在计算机上的系统注册表、系统文件、网络接口、设备等关键系统 模块的系统调用行为,每次截获到可疑的潜在进程操作时根据操作所关联的安全 属性,查询规则列表来决定此次操作是否被允许或者禁止。用户可以通过增加、 删除或编辑规则来修改规则列表来阻拦程序运行或者授予程序执行权限。 而由于缺乏关联行为序列的分析与判断,这种方式存在误报率高和自主识别 率的问题。例如:有些恶意程序会伪装成正常干净的程序,进行逃避监控;还有 的软件会用到类似恶意程序的方式,进行安装和调用,以获得更高一级的加载权 和启动权。因于二者行为的混淆,往往要求用户自己通过经验判断来决定放行还 是拒绝,因此容易造成比较高的误报率。 1 3 论文主要工作与组织 目前针对以恶意程序的预防、检测技术或多或少都存在本身固有的缺点,本 文通过深入研究主流r b o o t k i t 的设计思路以及内核准入关键技术剖析,提出基 于行为特征监测的a n t i r b o o t k i t 的设计思路以及实现方式,以有效弥补主流恶 意程序预防、检测技术的不足。本文主要工作和创新之处在于: 1 提出了b o o t k t i r o o t k i t 防范与检测的技术瓶颈 本文深入探索当前主流b r o o t k i t 的危害原理以及技术要点实现,以及主流 a n t i 。r b o o t k i t 在行为判断上过多依赖用户选择的现状,提出了恶意进驻内核这 个行为特征提取是b o o t k t i r o o t k i t 防范与检测的技术瓶颈。 2 提出了形式化描述语言规范 为了统一且完整描述系统运行包括恶意代码的各种行为以及子行为彼此间 内在的关联关系,我们参考自然语言叙事逻辑的主语、谓语、宾语结构还有计算 机体系中实际的指令格式的定义的操作码、目的操作数、源操作数,提出了一套 以执行事务的概念为基础的形式化描述语言规范,完备描述出该恶意行为特征。 3 设计与实现了基于恶意进驻内核行为特征的a n t i r b o o t k i t 原型系统 在此基础上,利用该形式化描述语言规范和行为策略,我们设计并实现了一 个基于恶意进驻内核行为特征的a n t i r b o o t k i t 原型系统。在和同类商业化的 a o t i r b o o t k i t 系统的比较中,显示出较优的自主识别能力以及较好的未知 r b o o t k i t 预防能力。 本论文共分为五章,内容组织如下: 第一章绪论。 4 第1 章绪论 介绍当前针对以r o o t k i t b o o t k i t 为代表的新的网络安全威胁的预防与检测的 迫切形势,以及目前学术界的相关项目研究和主流商用产品的对抗方式。 第二章r b o o t k i t 关键技术研究。 由于r b o o t k i t 之所以较传统恶意软件更为隐蔽底层难以预防、检测,是在 入侵感染技术上有所突破,本章深入研究了r b o o & i t 的攻击原理和分类情况以 及在实现技术上的关键点。 第三章行为语义抽取& 形式化描述研究。 通过剖析典型的r o o t k i t b o o t k i t 的入侵感染行为,总结出r b o o t k i t 恶意进 驻内核这个行为特征可以作为行为分析的特征依据,为此定义并使用形式化描述 语言描述行为特征。 第四章b d :a n t i r b o o t k i t 的设计与实现。 设计并实现了一个基于恶意进驻内核行为特征的a n t i r b o o t k i t 原型系统 b d ( b e h a v i o rd e t e c t i o n ) 。在和同类商业化的a n t i r b o o t k i t 系统的比较中, 显示出较优的自主识别能力以及较好的未知r b o o & i t 预防能力。 第五章对本文的工作进行了全面的总结,并提出了有待进一步深入研究的几 个方面。 第2 章r b o o t k i t 关键技术研究 2 1 引言 第2 章r b o o t k i t 关键技术研究 r o o t k i t 是攻击者在入侵系统后用来保持系统的超级用户访问权限,创建后 门和隐藏攻击痕迹等常采用的技术,代表了恶意软件在创建后门和隐藏攻击痕迹 等高级入侵技术上的新兴发展趋势,而b o o t k i t 则是r o o t k i t 在劫持系统启动技术 上的高级发展形式。 由于r b o o t k i t 之所以较传统恶意软件更为隐蔽底层难以预防、检测,是在 入侵感染技术上有所突破,因此分析r b o o t k i t 的攻击原理、分类r b o o t k i t 、研 究r f b o o t k i t 的关键技术点有助于在r b o o t k i t 和a n t i r b o o t k i t 的技术对抗中占 据优势。 r b o o t k i t 已经入侵感染了各个主流的平台譬如l i n u x 、u n i x 、m a c 、w i n d o w s 等,但考虑到危害的广度和深度等因素,本文优先考虑的是w i n d o w s 平台下的 r b o o t k i t 技术。 2 2r o o t k i t 攻击原理 1 收集目标系统信息 攻击者在攻击某个系统之前,会使用各种社会工程学方法探查目标系统的型 号、帐户弱点、系统以及应用程序等未打补丁的漏洞等。 2 获得超级用户访问权限 攻击者在收集了目标系统的足够信息,检测到了目标系统的可供利用的漏洞 后,就会对目标系统发起攻击。为了获得目标系统的超级用户访问权限,攻击者 可能先获得普通用户访问权限,然后再利用目标系统的本地漏洞提升到超级用户 访问权限;或者直接利用已经查明的网络服务的漏洞获得超级用户访问权限。 3 在目标系统上安装r b o o t k i t 攻击者在获得超级用户访问权限后,攻击者就可以在目标系统上安装 r o o t k i t 从而绕过或者直接关闭防护系统、创建隐蔽通道、隐藏攻击行为。如果 是b o o t k i t 的话可能会篡改某些系统部件,然后强制系统重启,从而在系统启动 阶段劫持系统。 4 控制目标系统 攻击者在目标系统上安装r b o o t k i t 后,就可以持久的控制目标系统,对其 6 第2 章r b o o t k i t 关键技术研究 进行各种攻击而不被目标系统的管理员察觉。例如:利用目标系统作为傀儡机攻 击其它目标系统,使目标系统拒绝提供某些服务等等。 2 3r o o t k i t 分类 根据r o o t k i t 运行所在的操作系统层次 6 】 7 】,可分为应用级r o o t k i t 和内核 级r o o t k i t 。 应用级r o o t k i t 是指入侵到操作系统应用层的工作在r i n 9 3 级别的r o o t k i t , 通常会替换或修改一些系统工具、信息收集程序等来执行特定攻击任务。比如提 取运行的进程、文件系统的内容、网络连接状态等信息,以及安装网络嗅探器 ( s n i f f e r ) 来获取一些敏感信息( 比如其它系统的用户名和密码等) 。目标是 重新获得更多的用户访问权限和隐藏攻击痕迹,一般不会对操作系统的其它应用 服务造成影响。 内核级r o o t k i t 是指入侵到操作系统内核层的工作在r i n 9 0 级别的r o o t l d t , 通常会篡改、过滤任何感兴趣的底层数据结构,比如中断处理函数、系统调用、 文件系统、驱动设备、旬柄管理器、对象管理器等以伪造虚假的底层系统信息给 应用层从而达到隐蔽感染痕迹、维持持久后门等目的。由于拥有对c p u 的最高 操作权限,可直接操作硬件设备,无内存访问限制,不仅可以实现应用级r o o t k i t 无法完成的隐藏功能,还可以逃避任何应用层的检测,预防和检测的难度更大。 2 4p d b o o t k i t 技术研究 根据r o o t k i t 实现隐藏的方法可分为两类 8 :一类是通过修改应用程序调用 系统函数的执行路径,劫持正常程序及系统函数调用的执行路径,篡改函数调用 函数的返回值以达到向用户隐藏攻击信息的目的;一类是通过修改系统内核数据 结构,当用户程序向内核查询信息的时候,内核系统函数查找了被r o o t k i t 篡改 的内核对象,错误地返回了隐藏攻击信息的结果。 2 4 1r o o t k i t 关键h o o k 技术 2 4 1 1 执行路径劫持 所谓可执行路径就是程序操作从用户态到核心态包括环境切换所执行代码 的序列。对于属于某个操作的任何可执行路径( 代码序列) ,理论上都可以通过 h o o k ( 钩挂、挂接) 技术将控制权导向额外的拦截代码,经过附加处理后再跳 7 第2 章r b o o t k i t 关键技术研究 转到原来的执行路径。典型的执行路径截获全景图如图2 1 所示: e a t h o o k 图2 1 执行路径截获 而根据被替换代码在操作系统中所处的优先级级别的不同,可执行路径劫持 可分为:用户级h o o k 和内核级h o o k 。 1 用户态h o o k 技术 是指被替换的a p i 函数处于用户态d l l 或者非核心驱动程序中。常见的方 式有: ( 1 ) 代理d l l 钩挂 代理d l l ( 也称为“特洛伊d l l ”) ,工作原理是直接用重写的d l l 文件 来替换系统中原有的d l l ,并将原d l l 改名并且保证重写的d l l 的i a t ( i m p o r t a d d r e s st a b l e ) 和原d l l 的e a t ( e x p o r ta d d r e s st a b l e ) 之间存在一个一一映 射。系统调用到需h o o k 的a p i ,就跳转到代理d l l 中相应的a p i 入口,执行 了额外的恶意代码截获并处理特定的消息之后跳转到原d l l 中的a p i 运行。 ( 2 ) 修改c a l l 指令 采用直接修改代码的方式来实现挂接。其基本思想是,程序装入内存后,通 8 第2 章r b o o t k i t 关键技术研究 过搜索程序的地址空间,找出调用目标a p i 函数的c a l l 指令,然后修改该 c a l l 指令后的函数地址,从而实现挂接。 ( 3 ) 修改函数输入表( i a t ,i m p o i r ta d d r e s st a b l e ) 该方法基于w i n d o w sp e 文件。p e 格式是微软w i n 3 2 环境可执行文件( 包 括e x e 、d l l 、v x d 、 s y s 、v d m 等) 的标准格式,基本结构如图2 2 所示: c o d ev i e w 调试信息( 可选) c o f f 符号( 可选) c o f f 符号( 可选) r e l o c jl i d a t a c d a t a o 了 d a t a 广 t e x t、r i m a g es e c t i o nh e a n d e r 结构数组( s e c t i o n s a b l e ) i m a g ed a t ad ii 之e c t o r y 结构数组 ehj a d e r i m a g ef i l eh e a d e r p e o o d o ss t u b d o sm zh e a d e r 偏移0 图2 2w i n d o w sp e 文件格式示意 i d a t a 节中包含函数输入表,i a t 中记录着该文件运行中需调用的所有链接 库,以及链接库中需调用的所有库函数。p e 文件运行时,文件自身和i a t 中记 录的链接库都加载到内存,将调用导入函数的指令和函数实际所处的地址联系起 来,以后就通过i a t 来调用这些函数。 i a th o o k 的原理是:在进程加载时修改i a t ,将要h o o k 的a p i 函数地址 改为自定义函数的地址。这样,进程每次调用此函数时,其实执行的是r o o t k i t 代码,然后再跳转回原来的正常代码。 ( 4 ) 修改函数输出表( e a t ,e x p o r t a d d r e s st a b l e ) e a t 存在于p e 文件中的e d a t a 节,保存了可执行文件( 如d l l 文件) 的导 9 第2 章r b o o t k i t 关键技术研究 出的可供其他模块来调用的函数和公共变量,包括函数名称和地址等。通过替换 w i n d o w s 系统某些重要d l l 中的输出函数地址,即可实现目标函数的挂接。 ( 5 ) 修改a p i 函数 常见修改a p i 函数的方法: a ) 通过某个c p u 控制转移指令( 如c a l l 或j m p ) 修改目标a p i 的 头几个字节:具体操作如下【1 9 】:找到目标a p i 函数在内存中的地 址,然后修改这个a p i 函数前几个字节( 修改前需另外开辟空间 存储被修改的字节) ,把它改为跳转到替换a p i 函数的j m p 指令。 取消a p i 函数的挂接时,取出事先保存的字节,并将它们放回挂 接函数的开头即可。 b ) 通过中断指令( i n t3 ) 代替目标a p i 第1 个字节。 通过i n t3 产生异常,截获异常实现挂接a p i 。 ( 6 ) 其它技术 除了以上技术,用户态布控技术还包括:内存映射技术;d l l 插入技术,如 远程线程插入,内存映射文件插入、调试程序插入等; 2 内核级h o o k 4 6 用户级h o o k 比较简单,但容易被r o o t k i t 之类的隐藏植入工具轻易绕过。 如果将挂接深入到系统内核,使它与检测工具处于相同的运行环境,将极大的提 高挂接的深层布控效果。常见的方式有: ( 1 ) 修改系统服务分配表( s y s t e ms e r v i c ed e s c r i p t i o nt a b l e ,s s d t ) 系统调用是操作系统内核向应用程序提供的操作硬件设备、请求内核服务的 接口。系统调用接口位于用户态与核心态之间,应用程序通过系统调用向操作系 统内核请求服务,操作系统内核完成服务后将结果返回给应用程序。 系统服务调度表中存放了所有系统服务函数的入口地址,在系统服务调用过 程中,系统通过服务号到系统服务分配表中查找对应的中断服务过程的地址,到 系统服务参数表( s y s t e ms e r v i c ep a r a m e t e rt a b l e ,s s p t ) 中得到调用的参数, 然后执行中断服务过程。通过替换系统服务分配表中某些服务号对应的中断服务 过程的地址,就可实现对指定a p i 函数的挂接 2 0 1 。 ( 2 ) 修改中断描述符表( i n t e r r u p t i o nd e s c r i p t o rt a b l e ,i t ) 所谓中断,是一个过程,即在正常执行程序的过程dcpu中,遇到外部内 部的紧急事件需要处理,暂时中断( 中止) 当前程序的执行,而转去为事件服务, 待服务完毕,再返回到暂停处( 断点) 继续执行原来的程序。为事件服务的程序 称为中断服务程序或中断处理程序。 每个中断用一个0 - 2 5 5 的数字标识,i n t e l 称这个数字为向量。中断描述符 l o 第2 章r b o o t k i t 关键技术研究 表是一个有2 5 6 个入口的线性表,每个i d t 的入1 2 1 是个8 字节的中断门描述符 指向相应的中断处理过程。当中断发生时,c p u 会根据中断向量和中断描述符 表中的值,转移到相应的中断处理程序。 i d t 钩挂的原理是:首先保存出特定的中断向量的i s r ,然后直接修改该中 断向量的i s r 为自定义的函数,每当这个中断向量对应的中断产生时,就会调用 自定义的函数。由于我们自定义的函数里面执行完我们的功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 架梁合同协议书怎么写
- 厂房租赁合同到期通知4篇
- 无偿保管合同(范本)6篇
- JG/T 158-2013胶粉聚苯颗粒外墙外保温系统材料
- 借款合同委托借款合同范本5篇
- 幼儿园炊事员合同5篇
- JG 12-1999钢网架检验及验收标准
- GB/T 44050.2-2024液压传动油液噪声特性测定第2部分:管道中油液声速的测量
- 日料加盟创业计划书范文
- 中国钨酸盐项目投资计划书
- 2024年俄罗斯针灸针行业应用与市场潜力评估
- 上海市徐汇区2023-2024学年八年级下学期学习能力诊断英语卷
- 2024年安徽省初中(八年级)学业水平考试初二会考地理试卷真题
- 社工招聘笔试考试(含答案)
- 2022年北京海淀初二(下)期末英语试卷及答案
- 教科版五年级下册科学第三单元《环境与我们》单元测试卷(含答案)
- 酸奶工厂设计说明书
- 小学一年级食品安全课件
- 《蛙泳腿部技术动作》教学设计
- 利那洛肽治疗便秘病例
- MOOC 考古发现与中国文化-浙江大学 中国大学慕课答案
评论
0/150
提交评论