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