恶意代码技术和检测方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
恶意代码及其检测技术
1.恶意代码概述
1.1定义
恶意代码也可以称为Malware,目前已经有许多定义。例如Ed Skoudis将Malware定义为运行在计算机上,使系统按照攻击者的意愿执行任务的一组指令。微软“计算机病毒防护指南”中奖术语“恶意软件”用作一个集合名词,指代故意在计算机系统上执行恶意任务的病毒、蠕虫和特洛伊木马。随着网络和计算机技术的快速发展,恶意代码的传播速度也已超出人们想象,特别是人们可以直接从网站获得恶意代码源码或通过网络交流代码。很多编程爱好者把自己编写的恶意代码放在网上公开讨论,发布自己的研究成果,直接推动了恶意代码编写技术发展。所以目前网络上流行的恶意代码及其变种层出不穷,攻击特点多样化。
1.2类型
按照恶意代码的运行特点,可以将其分为两类:需要宿主的程序和独立运行的程序。前者实际上是程序片段,他们不能脱离某些特定的应用程序或系统环境而独立存在;而独立程序是完整的程序,操作系统能够调度和运行他们;按照恶意代码的传播特点,还可以把恶意程序分成不能自我复制和能够自我复制的两类。不能自我复制的是程序片段,当调用主程序完成特定功能时,就会激活它们;能够自我复制的可能是程序片段(如病毒),也可能是一个独立的程序(如蠕虫)。
2.分析与检测的方法
恶意代码与其检测是一个猫捉老鼠的游戏,单从检测的角度来说。反恶意代码的脚步总是落后于恶意代码的发展,是被动的.目前基于主机的恶意代码检测方法主要有反恶意代码软件、完整性校验法以及手动检测,基于网络的检测方法主要有基于神经网络”、基于模糊识别“等方法,本文主要讨论基于主机的检测。
2.1 恶意代码分析方法
2.1.1 静态分析方法
是指在不执行二进制程序的条件下进行分析,如反汇编分析,源代码分析,二进制统计分析,反编译等,属于逆向工程分析方法。
(1)静态反汇编分析,是指分析人员借助调试器来对而已代码样本进行反汇编出来的程序清单上根据汇编指令码和提示信息着手分析。
(2)静态源代码分析,在拥有二进制程序的源代码的前提下,通过分析源代码来理解程序的功能、流程、逻辑判定以及程序的企图等。
(3)反编译分析,是指经过优化的机器代码恢复到源代码形式,再对源代码进行程序执行流程的分析。
2.1.2 动态分析方法
是指恶意代码执行的情况下利用程序调试工具对恶意代码实施跟踪和观察,确定恶意代码的工作过程对静态分析结果进行验证。
(1)系统调用行为分析方法
正常行为分析常被应用于异常检测之中,是指对程序的正常行为轮廓进行分析和表示,为程序建立一个安全行为库,当被监测程序的实际行为与其安全行为库中的正常行为不一致或存在一定差异时,即认为该程序中有一个异常行为,存在潜在的恶意性。
恶意行为分析则常被误用检测所采用,是通过对恶意程序的危害行为或攻击行为进行分析,从中抽取程序的恶意行为特征,以此来表示程序的恶意性。
(2)启发式扫描技术
启发式扫描技术是为了弥补被广泛应用的特征码扫面技术的局限性而提出来的.其中启发式是指“自我发现能力或运用某种方式或方法去判定事物的知识和技能”。
2.2 恶意代码检测方法
2.2.1 基于主机的恶意代码检测
目前基于主机的恶意代码检测技术仍然被许多的反病毒软件、恶意代码查杀软件所采用。
(1)启发法
这种方法的思想是为病毒的特征设定一个阈值,扫描器分析文件时,当文件的总权值超出了设定值,就将其看作是恶意代码.这种方法主要的技术是要准确的定义类似病毒的特征,这依靠准确的模拟处理器。评定基于宏病毒的影响更是一个挑战,他们的结构和可能的执行流程比已经编译过的可执行文件更难预测。
利用病毒的特有行为特征来监测病毒的方法,称为行为监测法.通过对病毒多年的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊.当程序运行时,监视其行为,如果发现了病毒行为,立即报警.缺点是误报率比较高、不能识别病毒名称及类型、实现时有一定难度。
(3)完整性控制
计算保留特征码,在遇到可以操作时进行比较,根据比较结果作出判断。
(4)权限控制
通过权限控制来防御恶意代码的技术比较典型的有:沙箱技术和安全操作系统。
(5)虚拟机检测
虚拟机检测是一种新的恶意代码检测手段,主要针对使用代码变形技术的恶意代码,现在己经在商用反恶意软件上得到了广泛的应用。
2.2.2 基于网络的恶意代码检测
采用数据挖掘和异常检测技术对海量数据进行求精和关联分析以检测恶意代码是否具有恶意行为。
(1)异常检测
通过异常检查可发现网络内主机可能感染恶意代码以及感染恶意代码的严重程序,然后
采取控制措施。
也称基于特征的检测基于特征的检测首先要建立特征规则库,对一个数据包或数据流里德数据进行分析,然后与验证特征库中的特征码来校验。
2.2.3现有检测方法分析与评价
到目前为止,没有一个完全的检测方案能够检测所有的恶意代码,可以肯定的是无论从理论还是实践来说,应用系统级恶意代码的检测相对容易,内核级的就要复杂和困难的多。杀毒软件仍然是必要的最快的检测方法,因为木马的运行需要网络的支持,所以在检测时需要本地系统与网络状态同对进行检测。目前,多数的检测工具都是在应用层上工作的,对于检测工作在内核级的恶意代码显得力不从心。2.3分析与检测常用工具
(1)Tcp View
网络活动状态监视工具是运行于微软Windows系统下的一款小巧的TCP UDP、状态观察工具。
(2)Olly Dbg
动态调试工具是一款用户级调试器,具有优秀的图形界面,和内核级调试器。
(3)IDA Pro
反汇编工具是一个非常好的反汇编工具,可以更好的反汇编和进行深层次的分析。
(4)InstallSpy
系统监视工具能够监视在计算机操作系统上安装或运行其他程序时对本机操作系统的文件系统、注册表的影响。
3.实现系统方面(以蜜罐系统为例)
3.2利用客户端蜜罐技术对恶意网页进行检测