




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 摘 要 随着计算机网络技术的高速发展,计算机病毒越来越猖獗,给人们带来的危 害越来越大,因此如何对计算机病毒进行防治对于计算机安全来说就显得非常关 键。 本文分析了计算机病毒的特征和计算机反病毒技术。当今比较先进的反病毒 技术有实时扫描技术、启发式代码扫描技术、虚拟机技术和主动内核技术等,虽然 这些技术对未知病毒检测效率很高,但总有遗漏,一旦这些被遗漏的并且传染速 度极高的病毒入侵后,对该病毒的传播速度和传播范围,是很难得到制止的,本 文提出了一个实时监控结合角色访问控制策略的病毒检测方法,有效的解决了该 缺陷。并且由于当前 rootkit 病毒泛滥,入侵系统后会隐藏注册表,病毒文件等, 针对该问题本文研究了一种双重检测隐藏资源的方法查出隐藏的进程,文件,通 信端口,注册表等。 首先, 本文分析了 rootkit 病毒所采用的技术及其所造成的影响, 并根据 rootkit 病毒的隐藏手段研究和实现了检测隐藏资源的双重检测法,以及防范 rootkit 的入 侵方法,解决了检测病毒资源不全面的问题。 其次,本文提出了病毒检测系统的关键方法基于角色访问控制的病毒实 时监控方法。现在大多数杀毒软件面临的问题是对于传播力很强,传播范围很广 的未知病毒而言,不能有效的制止其传播速度和缩小其传播范围。针对该问题并 通过对病毒行为以及病毒入侵资源的分析,提出了基于角色访问控制的病毒实时 监控方法,不仅可以有效的解决该问题,而且能检测未知病毒,恶意行为降低病 毒对系统的危害。 最后,研究了病毒处理的方法,主要是对一些很难删除的病毒本文综合文件 监控,修复 ssdt,dll 注入,解除文件保护多种技术,循序渐进的方式删除病毒 以及隔离病毒的方法。 关键字:rbac,rootkit,hook,实时监控 ii abstract with the rapid development of computer networks, computer viruses become more and more rampant, and damage to the people become larger and larger, so how to defend against computer virus is very important to the computer security. the characteristics of computer viruses and anti- virus techniques are analyzed thoroughly in this thesis. nowadays there are some advanced anti- virus techniques, such as real- time scanning, heuristic code scanning, virtual machine and active kernel technique etc.although these techniques are excellent,by any possibility,some viruses are omitted,once these viruses s have successful invasion, the mode of transmission speed and range will be difficult to stop, this paper proposes a method that combine real- time monitoring with rbac strategy to detect viruses, and effective solve the flaw,and due to the current rootkit viruses are spreaded widely, after the invasion,they will hide registry ,viruses,pipes,etc, for the problem ,this paper research a method that detect rootkit viruses with double layers to show the hidden resources,for example ,files, registry, processes, communication ports,etc. first, this paper analyzes the technology of the rootkit viruses and the impact, according the hide means , have research and implement the method to detect rootkits with double layers, and a method to prevent the invasion of rootkits,it solves the problem that many software have not comprehensive detection of hidden resources. second, this paper proposes the key to the virus detection method rbac based on the method of real- time monitoring of the virus. most antivirus software facing the problem is the spread of their resilience and dissemination of a wide range of unknown viruses, can not effectively curb the spread of the speed and reduce the scope of its spread.base on the problem of the virus and through viruses resources, as well as the analysis, the rbac method of real- time monitoring of the virus not only effective solve the problem, detect unknown viruses, malicious acts, but also reduce the system hazards. at last, this thesis introduces the method of disposal of viruses. that integrate file monitor,repair of ssdt,ddl injection, file protection technology to delete viruses,and a method of file isolation. iii keywords: rbac,rootkit,hook,realtime_monitor 南昌航空大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,是我个人在导师指导下, 在南昌航空大学攻读硕士学位期间独立进行研究工作所取得的成果。尽 我所知, 论文中除已注明部分外不包含他人已发表或撰写过的研究成果。 对本文的研究工作做出重要贡献的个人和集体,均已在文中作了明确地 说明并表示了谢意。本声明的法律结果将完全由本人承担。 签名: 日期: 南昌航空大学硕士学位论文使用授权书 本论文的研究成果归南昌航空大学所有,本论文的研究内容不得以 其它单位的名义发表。本人完全了解南昌航空大学关于保存、使用学位 论文的规定, 同意学校保留并向有关部门送交论文的复印件和电子版本, 允许论文被查阅和借阅。本人授权南昌航空大学,可以采用影印、缩印 或其他复制手段保存论文,可以公布论文的全部或部分内容。同时授权 中国科学技术信息研究所将本学位论文收录到中国学位论文全文数据 库 ,并通过网络向社会公众提供信息服务。 (保密的学位论文在解密后适用本授权书) 签名: 导师签名: 日期: 南昌航空大学硕士学位论文 第 1 章 绪论 1 第 1 章 绪论 1 . 1 反病毒研究背景 计算机技术的迅猛发展给人们的工作和生活带来了前所未有的便利和效率, 成为现代社会不可缺少的一部分。然而计算机系统并不安全,其不安全因素有计 算机信息系统自身的,也有人为的。计算机病毒就是最不安全的因素之一,它不 但会造成资源和财富的巨大浪费,而且有可能造成社会性的大灾难。人们将计算 机病毒称之为“21 世纪最大的隐患” 、 “不流血的致命武器”1,而且随着互联网 技术的普及,邮件病毒2、脚本病毒3、网页病毒4、木马病毒5以及蠕虫病毒6 更是泛滥,计算机用户随时可能受到病毒的攻击,因此研究反病毒技术具有重要 意义。 本课题来源于江西省重大攻关招标项目(编号: 2005a016)基于多层次安全 代理的集成访问控制系统。 1 . 2 国内外研究现状 随着计算机病毒技术的发展,计算机反病毒技术也随之发展起来,反病毒技 术已由最初的病毒特征代码分析发展到了现在的虚拟机7和实时监控8等技术。 第一代反病毒软件是采用单纯的病毒特征判断,将病毒从带毒文件中清除掉; 第二代反病毒软件是采用静态广谱特征扫描方法检测病毒,这种方式可以更多地 检测出变形病毒,但误报率也高,尤其是用这种不严格的特征判定方式去消除病 毒带来的风险性很大,容易造成文件和数据的破坏;第三代反病毒软件的主要特 点是将静态扫描技术和动态仿真跟踪技术结合起来,将查找病毒和消除病毒合二 为一,形成一个整体解决方案,能够全面实现防、查、杀等各种反病毒所必备的 手段,凡是检测到的病毒都能清除,不会破坏文件和数据;第四代反病毒软件则 是针对计算机病毒的发展而基于病毒家族体系的命名规则、基于多位 crc 校验9 和扫描机理,启发式10智能代码分析模块、动态数据还原模块、内存解毒模块、 自免疫11模块等先进的解毒技术。 杀毒引擎目前主流有以下一些实现方式:虚拟机技术12,实时监控技术,智能 码标识技术,行为拦截技术。目前国内外杀毒软件公司采用的新技术主要有: 南昌航空大学硕士学位论文 第 1 章 绪论 2 瑞星杀毒 2007 版“虚拟机脱壳”引擎(vue),是在计算机中构建一个仿真的 运行环境,让加壳病毒在运行中自行脱壳、还原到原始形态,便于将病毒彻底清 除掉。首次将商用虚拟机的核心技术应用到杀毒引擎中,不但能彻底解决“多重 加壳”病毒这一困扰全球反病毒业界的难题,还可以将杀毒软件的病毒库减小三 分之一,并极大降低对系统资源的占用。 江民杀毒软件 kv2007 新增新一代智能分级高速杀毒引擎,可对目前互联网 盛行的病毒、木马、流氓软件13、广告软件14、间谍软件15等进行分类查杀,该 引擎将杀毒软件核心组件和病毒库等模块进行重新规划细分,每一个模块都可独 立维护和升级,大大增强了软件的稳定性能和下载速度,效率更高。而且推出系 统级行为监控,从注册表、系统进程、内存、网络等多方面对各种操作行为进行 主动防御并报警,全方位保护系统安全。 金山毒霸 2007 提出了一个全新概念,数据流杀毒技术16,它动态监视内存中 部分程序的一些活动特征,如是否在系统文件夹中创建了文件、是否注入了非法 进程和是否向外部发送了带有敏感信息的邮件等来智能判别病毒、木马及间谍程 序的存在,从而可以在病毒库更新之前进行主动出击。 冠群金辰的 kill 安全胄甲采用无缝集成的双引擎技术17,实时监视系统活 动,全面查杀各种形式的病毒,提供灵活多样的病毒修复和处理方法。 方正熊猫 trupreventtm 技术 更具体地说,基因式启发式扫描引擎可以阻 止任何利用反盗版系统传播的新病毒,它可以通过行为分析而非预先识别阻止病 毒发作。2007 年八款杀毒软件特色对比如表 1- 1 所示: 表 1- 1 2007 年八款杀毒软件特色对比 软 件 名 卡巴斯基 互联网安 全套装 江 民 杀 毒 软件 诺 顿 防 病 毒 软 件 瑞 星 防 病 毒 软 件 趋势 p c - c i l l i n 金 山 毒 霸 杀 毒 套装 m c a f e e v i r u s s c a n e s e t n o d 3 2 特 色 功 能 主动防御 体系,互 联网威胁 免疫 流 氓 软 件 查杀, 开 机 不 进 系 统 扫 描 病毒 驱 动 程 序 原 始 卷 直 接 访 问 , r o o t k i t 虚 拟 机“碎 甲”技 术,钓 鱼 网 站 拦 截等 主控式 个人防 火墙, 木马程 序损害 清除还 原技术 数 据 流 杀 毒 技 术 反 间谍, 反 钓 鱼,主 动 漏 反制网络 钓鱼和反 垃圾邮件 ( s p a m ) 侦测基 本的宏 病毒和 脚本, t h r e a t s e n s e 扫描引 擎 南昌航空大学硕士学位论文 第 1 章 绪论 3 洞 修 复 虽然目前的杀病毒技术和产品已经完全能够杀除已知病毒,但是还缺乏对付 未知新病毒的有效手段,技术上不能一劳永逸解决病毒问题18。 1 . 3 论文研究内容及特色 本课题首先进行了相关理论的介绍,然后通过对计算机病毒与反病毒技术的 研究分析,深入浅出地学习反病毒技术,提出针对当前病毒的解决方案和软件结 构模型,设计反病毒的架构。与传统的杀毒软件不同的是该系统基于 rbac 模型 结合杀毒软件的实时监控原理实现了对程序行为监控,减少在被病毒入侵后将其 危害降低到最低程度。 其次,分析了 rootkit 病毒所采用的技术及其所造成的影响,并针对 rootkit 病 毒的隐藏手段提出了双重检测隐藏病毒的方法,以及防范 rootkit 入侵方法,从而 更好的防护系统。 最后,对被检测出来的病毒,研究了其清除的处理方法,该方法综合文件监 控,修复 ssdt,dll 注入,暴力搜索内存,解除文件保护多种技术,循序渐进的 方式,删除病源。并采用文件过滤驱动和压缩技术隔离病毒。 1 . 4 论文的结构 第一章简要介绍了本文的研究意义、课题来源、国内外研究现状,以及论文 内容的安排。 第二章为本文的一些相关理论介绍。 第三章分析了病毒的基本原理和 rootkit 病毒采用的技术及其造成的影响,并 针对 rootkit 病毒的隐藏手段研究和实现了双重检测隐藏资源的方法,以及防范 rootkit 入侵的方法,从而更好的防护系统并做本章总结。 第四章分析了病毒入侵资源的行为,提出了基于角色访问控制的病毒实时监 控方法,并构建了该方法的角色访问控制模型,然后详细设计了实时监控系统, 最后将基于角色访问控制策略与病毒实时监控有机结合,实现了基于角色访问控 制的病毒实时监控系统并做本章总结。 第五章介绍杀毒软件处理病毒四个模块。然后详细设计病毒处理中的删除病 毒以及隔离病毒两个模块。第一模块综合文件监控,修复 ssdt,dll 注入,暴力 搜索内存,解除文件保护多种技术,循序渐进的方式,删除病毒。第二模块采用 南昌航空大学硕士学位论文 第 1 章 绪论 4 文件过滤驱动和压缩技术,实现了防止病毒的运行并做本章总结。 第六章总结了论文的研究成果,并展望了后续的研究工作。 南昌航空大学硕士学位论文 第 2 章 相关理论介绍 5 第 2 章 相关理论介绍 2 . 1 计算机病毒定义 计算机病毒是恶意的计算机程序。病毒通过各种传播媒介(软盘,网络)不断扩 散,一旦发作就给正常系统产生“不良”影响。计算机病毒的程序代码包含一套 特殊的指令,与其他的程序不同的是它不需要人们的介入就能通过程序或系统传 播到其它计算机。当计算机病毒执行时,通过把自己复制在一个没有被感染的程 序或文档里,当这个程序或文档执行任何指令时,计算机病毒就会将自身传播到 其它的计算机系统和程序里。 fred cohen 定义19:计算机病毒是一种程序。它用修改其它程序的方法将自 身的精确拷贝或者演化版本植入其它程序,从而感染其它程序。由于这种感染特 性,病毒可以在信息流的过渡途径中传播,从而破坏信息的完整性。 fred cohen在 1988 年又著文强调20:病毒不是利用操作系统运作和缺陷的程 序,病毒是正常的用户程序,它们仅使用了那些每天都被使用的正常操作。 在 中华人民共和国计算机信息系统安全保护条例 中, 计算机病毒(computer virus)被明确定义为: “计算机病毒,是指编制或者在计算机程序中插入的破坏计 算机功能或者破坏数据、影响计算机使用,并且能够自我复制的一组计算机指令 或者程序代码” 。 2 . 2 角色访问控制 角色访问控制 (rbac)模型是目前国际上流行的先进的安全访问控制方法。 它 通过分配和取消角色来完成用户权限的授予和取消,并且提供角色分配规则。安 全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任 和资历再被指派为不同的角色。这样,整个访问控制过程就分成两个部分,即访 问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分 离。 由于实现了用户与访问权限的逻辑分离,基于角色的策略极大的方便了权限 管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入 南昌航空大学硕士学位论文 第 2 章 相关理论介绍 6 代表新职务或新任务的角色即可。研究表明,角色/权限之间的变化比角色/用户关 系之间的变化相对要慢得多,并且给用户分配角色不需要很多技术,可以由行政 管理人员来执行,而给角色配置权限的工作比较复杂,需要一定的技术,可以由 专门的技术人员来承担,但是不给他们给用户分配角色的权限,这与现实中的情 况正好一致。 基于角色访问控制可以很好的描述角色层次关系,实现最小特权原则和职责 分离原则。 标准 rbac 策略由 4 个部件策略组成,这 4 个部件策略分别是基本策略 rbac0(core rbac)、角色分级策略 rbac1(hierarchal rbac)、角色限制策略 rbac2(constraint rbac)和统一策略 rbac3(combines rbac)。 a.rbac0 定义了能构成一个 rbac 控制系统的最小的元素集合。在 rbac 之 中,包含用户 users(users)、角色 roles(roles)、目标 objects(obs)、操作 operations(ops)、许可权 permissions(prms)五个基本数据元素,权限被赋予角色, 而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的 权限。会话 sessions 是用户与激活的角色集合之间的映射。rbac0 与传统访问控 制的差别在于增加一层间接性带来了灵活性,rbac1、rbac2、rbac3 都是先后 在 rbac0 上的扩展。 b. rbac1 引入角色间的继承关系,角色间的继承关系可分为一般继承关系和 受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角 色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。 c. rbac2 策略中添加了责任分离关系。 rbac2 的约束规定了权限被赋予角色 时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强 制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户- 角色- 权限关 系一起决定了 rbac2 策略中用户的访问许可。 d. rbac3 包含了 rbac1 和 rbac2,既提供了角色间的继承关系,又提供了 责任分离关系。 2 . 3 rootkit rootkit 这个术语已经存在 10 多年了。它是由有用的小型程序组成的工具包, 使得攻击者能够保持访问计算机上具有最高权限的用户“ root” 。换句话说,rootkit 是能够持久或可靠地、无法检测地存在于计算机上的一组程序和代码21。 在上述 rootkit 定义中,关键词是“ 无法检测” 。rootkit 所采用的大部分技术和 南昌航空大学硕士学位论文 第 2 章 相关理论介绍 7 技巧都用于在计算机上隐藏代码和数据。例如,许多 rootkit 可以隐藏文件和目录。 rootkit 的其他特性通常用于远程访问和窃听 例如,用于嗅探网络上的报文。当 这些特性结合起来后,它们会给安全带来毁灭性的打击。 rootkit 并非天生邪恶,也并不总是被黑客所使用。rootkit 只是一种技术,理解 这一点是很重要的。美好或邪恶的意图取决于使用它们的人。大量合法的商用程 序提供了远程管理,甚至窃听功能。有些程序甚至使用潜行技术。这些程序在许 多方面都可称作 rootkit。法律实施领域可以使用术语 rootkit 来指代被核准的后门 程序 根据国家法律(可能通过法院指令)允许在目标上安装它们。大型公司也 使用 rootkit 技术来监测和实施自己的计算机使用规范。 2 . 4 本章小结 本章主要介绍了病毒定义和 rootkit 定义,以及 rbac 访问控制模型。rootkit 本身不是病毒,而是现在病毒所利用的手段。rbac 访问控制模型主要使访问权 限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。 本章节内容是后面各章节涉及和所用到的相关理论。 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 8 第 3 章 检测隐藏病毒方法 3 . 1 计算机病毒的主要特点 计算机病毒的主要特点为22: (1) 传染性 传染性是计算机病毒的基本特征。计算机病毒代码进入计算机并执行后,它 会寻找其他符合条件的程序或存储介质,确定目标后再将自身代码插入其中,实 现了自我复制和传染的目的。 (2) 隐蔽性 绝大部分病毒是一段小巧的代码,通常是插入在程序文件中或存储介质较隐 蔽的地方,也有少量以隐含文件形式存在的。 (3) 可触发性 病毒因某个事件或数值的出现,诱使病毒实施感染或进行攻击的特性称为可 触发性。病毒具有预定的触发条件,这些条件可能是时间、日期、文件类型或某 些特定数据等。病毒运行时,触发机制检查预定条件是否满足,如果满足,启动 感染或破坏动作,使病毒进行感染或攻击;如果不满足,使病毒继续潜伏。 (4)破坏性 系统感染病毒后,都会对系统及应用程序产生不同程度的影响。轻的占用系 统资源,降低系统效率;重的破坏系统数据,造成系统崩溃。 3 . 2 计算机病毒的基本结构模式和工作机理 3 . 2 . 1病毒程序的基本结构模式 尽管目前出现的计算机病毒数量、种类繁杂多样,但是通过对病毒程序 代码的分析、比较和归纳可以发现,绝大多数病毒程序,都是由引导模块、传染 模块和破坏表现模块这三个基本的功能模块所组成23。其中,传染模块又由激活 传染条件的判断部分和传染功能的实施部分组成;破坏表现模块由病毒触发条件 判断部分和破坏表现功能的实施部分组成。计算机病毒程序结构的基本模式如图 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 9 2- 1 所示。 图 2- 1 计算机病毒结构的基本模式 引导模块完成病毒加载的功能。引导型病毒在使用带毒的软盘或者硬盘启动 系统的时候被加载。文件型病毒在执行它的宿主程序的时候被加载。加载之后病 毒获取操作系统控制,执行病毒引导模块,病毒由静态变成动态。该模块一般要 完成以下功能:病毒体定位和驻留;完成初始化;加载原程序。 传染模块是病毒进行传染的动作部分。在这个部分中计算机病毒寻找对应的 文件对象,判断传染条件是否成立(一般是为了防止重复传染),如果成立就实施传 染过程。 发作模块完成病毒对计算机系统的破坏。在这个模块中计算机病毒判断破坏 条件是否成立,如果所有的条件都满足那么病毒就实施破坏功能。 需强调的是,第一,并非任何一种病毒程序都全部具备这三个基本功能模块。 比如 vienna 病毒就只有传染模块和破坏表现模块而没有引导模块。而 brain 病毒 只有引导和传染模块却无表现模块。第二,病毒程序的这几个基本模块即有“分 工” ,又有“合作” ,它们相互依靠,彼此协调。引导模块可以是传染模块和破坏 表现模块的基础;破坏表现模块又依赖传染模块,扩大攻击的范围;而传染模块 则是病毒程序的核心。 计算机病毒程序工作的一般流程用类 c 语言描述如下: main() 调用引导功能模块; a:do 寻找传染对象; if(传染条件不满足) goto a; while(满足传染条件); 调用传染功能模块; while(满足破坏条件); 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 10 激活病毒程序; 调用破坏功能模块; 运行宿主源程序; if 不关机 goto a; 关机; 计算机病毒程序工作的 n- s 图如图 2- 2 所示。 图 2- 2 计算机病毒程序机理流程 n- s 框图 3 . 2 . 2计算机病毒的工作机理 (1)加载和引导机理 病毒程序的加载主要分成两个部分:其一是系统装载过程,其二是病毒附加 的加载过程。系统加载过程主要读入病毒程序的引导部分,并将系统控制权交给 计算机病毒。病毒引导程序是病毒的附加加载过程,主要完成对病毒体的完整读 入和重组。病毒程序选择的加载点多是计算机病毒固有的弱点和软件系统的输入 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 11 节点。 计算机病毒的加载受到操作系统的制约,都是通过操作系统的功能调用或者 rombios 来实现的。 一般情况下病毒程序有三种加载方法: 参与系统启动过程(引 导型病毒);依附正常文件加载方式(文件型病毒);用户的输入方式(用户运行病毒 文件,现在的许多木马和蠕虫就采用这种方法激活)。 (2)传染和传播机理 计算机病毒的传染是指计算机病毒在单个系统的不同宿主文件中传染,可以 分成主动和被动两种传染方式:主动传染是指在病毒处于激活的状态下,只要传 染条件满足,能主动地传染到另一个宿主;被动传染是用户在进行拷贝时,把一 个病毒由一个宿主复制到另一个宿主上。 计算机病毒的传播是指计算机病毒在从一个计算机系统传播到另外一个计算 机系统的过程。主要有以下四种途径:通过不可移动的硬件设备传播,通过移动 存储设备来传播,通过计算机网络进行传播,通过点对点通信系统和无线通道传 播。 (3)破坏表现机理 病毒程序的引导模块和传染模块是为破坏表现模块服务的。破坏表现模块可 以在第一次病毒代码加载时运行;也可能在第一次病毒代码加载时,只有引导模 块引入内存,然后再通过触发某些中断机制而运行。一般情况下,病毒是基于一 个或若干个设定的破坏条件都满足的情况下才触发其破坏表现功能。该破坏条件 五花八门,可以是时间、日期;可以是文件名、文件扩展名;可以是人名、运行 次数等。实际上病毒采用的触发条件花样繁多,比如:日期触发(cih 病毒)、时间 触发(ping pong病毒)、 键盘触发(devil dance 病毒)、 感染触发(black monday病毒)、 启动触发(telecom病毒)、访问磁盘次数触发(print screen病毒)、调用中断功能触 发(peom病毒)、cpu 型号/主板型号触发(violator 病毒)、打开邮件触发(“求职信” 病毒)、利用系统或者工具软件的漏洞触发(“code red”系列病毒)等。 有些病毒修改操作系统,使病毒代码成为操作系统的一部分功能模块。只要 计算机系统工作,病毒就处于随时可能被触发的状态。 3 . 3 rootkit 分析 从以上病毒原理以及针对目前病毒的行为的分析,大部分采用了结合 rootkit 实现了病毒的引导,传染,破坏。所以对目前的病毒研究均离不开 rootkit。因为 只有这样,它们才能和杀毒软件抗争,才能更隐蔽的隐藏于系统深处,甚至是内 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 12 核,硬件,才能达到它们的目的,而不被觉察。 3 . 3 . 1ssdt native api24是 windows nt架构系统中真正工作的 api,普通程序员平时接 触到的几千个 win32 api25, 实际上都是通过几百个 native api 的不同封装形式来 实现的。当程序员使用 win32 api 时,所有用户层 api 的处理都是调用 dll文件 中的相关 api 入口实现的,但它只是一个提供从用户层跳转到内核层的接口,它 并不是最终执行体。当 api 调用被转换为 ntdll 内的相关 api 函数后,系统就会在 一个被称为“ ssdt” (system service descriptor table,系统服务描述符表)26的数据 表里查找这个 api 的位置,然后真正的调用它,这时候执行的 api 就是真正的原 生 api,它们是位于 nt 系统真正内核程序 ntoskrnl.exe 里的函数。这一过程,就 是系统服务的调用,例如外壳程序需要运行一个新的进程,那么它就会调用 kernel32.dll 导出的 api 函数 createprocess27, 接下来就是 kernel32.dll 内的执行过 程,实际上它只是把这个请求又包装了一下,变形为自己发出的参数,去调用 ntdll.dll 里导出的 ntcreateprocess 函数,然后 ntdll.dll 通过一个中断请求 int 2eh(sysenter)进入内核态,并把最初的新建进程请求转换为“ 服务号” 一起传递过 去,到了内核的世界里,在正常手段下对 api 的调用都需要先通过一个函数地址 描述表的转变来实现,ssdt 就是这个表,它记录了一个庞大的地址索引,内容为 几百个原生 api 在内核中导出的地址位置,系统根据 ssdt 里记录的服务号与函 数对应关系来确认要使用什么函数,以及这个函数在内核中的位置信息,最终实 现功能调用,函数执行完毕后再把结果通过 ntdll 接口一层层传递回去,直到发出 请求的程序收到一个表示处理结果的状态代码,这一次系统服务的调用过程就结 束了。 3 . 3 . 2inline hook 在 rootkit 领域里,还存在着高级的 hook 形式 inline hook。 其实,inline hook 早就作为一种高级的 hook 技术存在了,在用户层上的一些 特殊程序如游戏外挂等,它是修改系统里相应的 api 函数前部的字节修改为跳转 指令,达到执行自己的目的,然后跳转原函数后面的指令,继续执行。现在它已 经成为当前 rootkit 的主流技术。 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 13 3 . 3 . 3fsd hook 使用 fsd hook 技术的病毒,有时连杀毒软件都无法删除已经暴露的病毒文 件。 windows 系列操作系统是采用 ios(input/output supervisor,输入输出管理程 序)技术进行文件系统管理的。它接管所有的存储设备,如硬盘、可移动式磁盘、 光驱等。 ios 是一种层次结构的管理方案, 展现在用户层上的是各种应用程序的读写操 作,其下一层紧接着的是被称为“ 可安装文件系统” (installable file system,ifs)28 的接口层。继 ifs 以后,就是各种文件系统驱动所在的层,即“ fsd” (file system driver,文件系统驱动)29,这一层直接与 ios 连接,用于接受并处理属于自己任 务分派内的数据;fsd 下一层直达 ios,而到了 ios 的下一层,数据就开始往硬 件化发展了。 而这次 rootkit 的目标, 就是到达 ios 之前的最后一层: fsd。 fsd 在 windows 系统中属于开放给编程人员可接触到的最深入的一块区域,所以,这一层的权限 是很高的,控制了这个层次,开发者就能掌握到最多最全面的文件读写操作控制, 于是很多病毒作者通过编写 fsd filter driver(文件系统驱动过滤器)30来达到目 的,以便从中析出它们敏感的数据来进行其他工作,而 filter 驱动的一个要点就是 钩住 fsd,即“ fsd hook” 。当 fsd 被掌握后,就可以通过操纵它的数据来控制别 人的文件读写请求,对于 rootkit 来说,它们可以将一些敏感文件如自身驱动程序 文件、用户层相关文件等设置为除了它们自己以外的程序都无法对其进行读写的 效果,到了用户层,直接反映出来的就是无法对其进行编辑、改名和删除。 用了这个技术,即使用户用各种手段找到了它并将其进程终止,也无法操作 那些被保护起来的文件。 3 . 3 . 4fsd inline hook rootkit 到了 fsd hook 这一层,对系统造成的影响已经相当危险了,但是更 为危险的要属 fsd inline hook。在及其重要敏感的 fsd环境 hook 本身已经时间 很难的事,而用自己的函数去替代这个雷区的系统函数,更是被很多人认为是严 禁操作的事情,但是现在的 cnnic 已经做到这一步了。所以,它是目前极端的终 极技术, 将 cnnic 列为当前流氓软件作者的所有研究目标都不过分,因为 cnnic 身上,就具备了多种高级技术。 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 14 3 . 3 . 5rootkit的行为以及后果 分析了上面 rootkit 在 ring031和 ring332下使用的技术,可以看到,一个 rootkit 病毒或木马的危害程度或其想达到的目的完全取决于开发 rootkit 作者的想象力和 实践能力。比如目前所了解的隐藏文件33,隐藏网络端口,截获敏感数据(密码, 机密文件),修改系统,禁止上网,截获数据包34等等,已经能够看到它的危害有 多大,可以说能否对抗 rootkit 病毒的能力是一个检验一款杀毒软件好坏的一个最 充分的性能指标。 3 . 4 监视 rootkit加载 rootkit 病毒入侵系统的前提条件是加载,加载分为两种:一种是正常加载, 一种是不正常加载。rootkit 的正常加载方法是利用 ntdll.dll 的 zwloaddriver 函数 实现的。所以只要截获 zwloaddriver通知用户是否需要加载该驱动。rootkit 非正 常加载方法是利用 ntdll.dll 的未公开函数 ntquerysysteminformation加载35,该加 载方法是 rootkit 逃避杀毒软件常用的方法。 ntstatus zwloaddriver(in punicode_string) ntstatus zwsetsysteminformation(ulong,pvoid,ulong); 所以本文通过对以上两种方法的结合达到阻止 rootkit 加载。截获 zwsetsysteminformation其主要代码如下: ntstatus jmpprocaddr(ulong number, pvoid image, ulong dword) if(number=systemloadandcallimage) /检查如果是 systemloadandcallimage 就返回,禁止操作 dbgprint(warning!rootkit is trying to load); newimage=(psystem_load_and_call_image)image; wcstombs(buf,newimage- modulename.buffer,newimage- modulename.length); dbgprint(path:%s,buf); /显示 rootkit 路径 return 0; 截获 zwloaddriver 主要代码如下: ntstatus fakedzwloaddriver(in punicode_string driverservicename ) 南昌航空大学硕士学位论文 第 3 章 检测隐藏病毒方法 15 char aprocessnameprocnamelen; char adrvnamemaxpathlen; ansi_string ansi ; getprocessname(aprocessname); rtlunicodestringtoansistring( if(ansi.length 12) 22) majorfunctionirp_mj_cleanup = sfcleanupclose; 南昌航空大学硕士学位论文 第 4 章 基于角色访问控制的病毒监控设计与实现 29 driverobject- majorfunctionirp_mj_close = sfcleanupclose; driverobject- majorfunctionirp_mj_write = sfwrite; 其中以 irp_mj_*形式宏在 ddk 的 ntddk.h有声明。driverobject就是自己 的过滤驱动对象,只要实现后面赋予的函数即可。那么如果有些病毒要感染文件 的话,会触发 driverobject- majorfunctionirp_mj_write = sfwrite 的 sfwrite 函数。在 sfwrite 通过事件或信号量等通知杀毒模块对该文件进行扫描,再通过事 件或信号量告诉 sfwrite 函数该文件是否为病毒,为病毒的话,在 sfwrite 函数内, 使 irp 返回失败。即对该文件不能写入内容。那么病毒感染则失败。其实现如图 4- 6 图 4- 6 文件监控实现的原理图 4 . 2 . 4注册表监控 由于注册表48庞大,所以该系统只对和注册驱动,自启动,注册服务有关的 注册项进行了监控,防止病毒随系统运行。 由于目前大部分杀毒软件都利用了 ssdt 进行监控,所以本系统也采用了类 似的方法来监控注册表。实现方法如图 4- 7,只要将 ssdt 所对应的 api 函数地址 改成自己的 api 函数地址。 南昌航空大学硕士学位论文 第 4 章 基于角色访问控制的病毒监控设计与实现 30 图 4- 7 hook注册表内核 api 原理 该模块中实现了对注册表操作行为的监控,主要是注册表的操作行为(打开, 添加,删除),并记录下该行为以及注册内容。 当任何一个程序,或手动修改注册表均被监控,并提示用户。如图 4- 8 所示 南昌航空大学硕士学位论文 第 4 章 基于角色访问控制的病毒监控设计与实现 31 图 4- 8 注册表监控 4 . 3 策略与监控系统相结合的访问控制 策略与监控系统的实现方式是将行为和资源相结合作为权限,和 rbac 模块的角色管理数据库的用户的角色赋予的权限通过检索策略进行匹配, 不能匹配则对该行为阻止报警此为危险程序,匹配则放行。其实现如图 4- 9 所示 图 4- 9 rbac 实时监控 南昌航空大学硕士学位论文 第 4 章 基于角色访问控制的病毒监控设计与实现 32 其检索策略主要是通过监控系统将用户名,启动的进程以及该进程进行的行 为录入内存,这样就能得到该用户正在执行的权限,然后根据该用户名以及进 入系统的角色从 acl双向链表中提取该用户所应有的权限,如果权限包含权 限,则放行,否则拦截该行为,发出报警,并提示用户该进程对应的文件属于 危险程序。 其检索策略如图 4- 10 所示 图 4- 10 检索策略 其中检验权限b和权限a的所属关系而不是检验权限a等于权限b是因为监控 的是进程每一步所调用的 api,这样就可以达到只有进程的每一步都是合法的,才 能使进程最终是合法的。只要有一步有问题都不能使进程通过,从而提了系统安 全性。 南昌航空大学硕士学位论文 第 5 章 病毒处理 34 第 5 章 病毒处理 杀毒软件对病毒的处理一般分为以下四个模块 1:删除病毒49文件 2:忽略病毒文件 3:隔离病毒50文件 4:清除病毒51文件 一般情况下,如果对于不是感染型的病毒,可以直接将其删除。 如果在测试病毒情况下,可以忽略病毒,例如在虚拟机上分析病毒的破坏行 为,以及所带来的后果等。 如果用户担心误检测病毒,可以将其隔离,防止其运行。 清除病毒一般是文件受感染后的修复过程,以此净化文件。 5 . 1 删除病毒 目前很多杀毒软件常常不能删除病毒文件,删除后又会重新生成了。所以针 对此类病毒,本文设计并实现了一种有效的方法。该方法分为两个模块。 5 . 1 . 1删除 不能删除病毒文件的原因追根溯源主要有两个: 1大部分病毒在用户态 hook 了 delet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国遥控欧式车库门市场分析及竞争策略研究报告
- 2025至2030年中国薄层层析硅胶预制板市场分析及竞争策略研究报告
- 2025至2030年中国耐油橡胶制品市场分析及竞争策略研究报告
- 2025至2030年中国秋平板鸭市场分析及竞争策略研究报告
- 2025至2030年中国电机材料市场分析及竞争策略研究报告
- 2025至2030年中国烤漆房控制器市场分析及竞争策略研究报告
- 2025至2030年中国油气两用高压阻尼线市场分析及竞争策略研究报告
- 2025至2030年中国柱型锂离子电池市场分析及竞争策略研究报告
- 2025至2030年中国数字随身听市场分析及竞争策略研究报告
- 2025至2030年中国彩胎市场分析及竞争策略研究报告
- 河南师范大学通用模板课件
- 模拟电子技术(第11版英文版)PPT完整全套教学课件
- 主题10一带一路倡议与国际合作 课件(24张)
- WB/T 1087-2018煤炭仓储设施设备配置及管理要求
- GB/T 24218.1-2009纺织品非织造布试验方法第1部分:单位面积质量的测定
- 金融学 曹龙骐 02教材课件
- 2022年混凝土搅拌站建设项目可行性研究报告
- 《觉醒年代》朗诵稿
- 2022年社会学概论考试重点广东海洋
- 福建省中小学教师职务考评登记表
- 北京市中级专业技术资格评审申报表
评论
0/150
提交评论