恶意程序动态行为自动化分析系统与方法

文档序号:6572974阅读:157来源:国知局
专利名称:恶意程序动态行为自动化分析系统与方法
技术领域
本发明涉及恶意程序动态行为自动化分析系统与方法,属于系统安全和网络安全相关领 域。本发明用于对未知恶意程序动态行为的粗粒度分析。
技术背景未知二进制程序的动态行为分析是一项挑战性的任务,它将提供对构建未知软件的核心 结构、功能蓝图需要的关键信息。当前有关未知二进制程序分析的研究大都为手动分析方法。未知二进制程序的手动分析通过人工的调试追踪来发现程序内部的功能,这对分析人员 的经验和能力有很高的要求,在通常情况下的分析结果均不完善。随着恶意程序的不断改进, 功能也更加复杂,伴随着代码的急剧增加。这给传统的手动分析带来了巨大的挑战。同时, 传统的人工调试技术对恶意二进制程序的分析面临很多困难,其中最主要的就是无法完全掌 握程序的执行控制流范围,使得恶意程序的很多代码都是在调试器无法追踪的情况下执行的。因此,当前迫切需要一种新的自动化且高效的二进制程序恶意行为自动化分析系统。该 自动化分析系统采用代码虛拟执行环境,针对目标二进制代码流进行切片与执行。不仅能完 全控制目标程序的运行指令,并且具有很高的性能和运行效率。同时,支持对进程/线程行为、 内存访问行为、文件系统访问行为、注册表系统访问行为和网络访问行为的有效分析,并提 供详细的分析报告。 发明内容有鉴于此,本发明的目的是提供自动化的恶意程序动态行为分析系统和方法。目标是提 供一个的高效的分析平台,它支持对恶意程序执行的完全监控,提供对进程、内存、文件、 注册表、网络等各类系统资源的恶意访问行为。同时,针对大量的行为记录,经过专业的分 析处理,得到详细的分析报告,有助于提供针对恶意代码的主动防御与丰动卸载方法。为了达到上述目的,本发明提供了一种恶意程序动态行为自动化分析系统,其特征在于 该引擎包括了下述组成部件-初始化部件恶意行为自动化分析系统首先在监控方式下启动被分析的未知二进制程序, 并将虛拟执行部件远程注入到目标二进制程序进程空间内,并初始化虚拟执行部件。同时, 加载行为监控部件,其中包含有默认的恶意行为规则库。可通过用户接口添加、删除和修改 行为规则库中的内容。反汇编部件虚拟执行系统获取目标二进制程序的代码流,由反汇编部件生成对应的汇 编代码,逐条分析得到的汇编指令。虚拟执行部件将目标代码流分解成多个指令集,以模拟 代码流正常执行的方式执行基本块中的每条指令,该过程实现局部代码执行,而指令集则组 成了虚拟执行的基本块。每个基本块是没有包含分支语句的指令序列,在满足以下条件时结 束代码流切片无条件控制转移指令;条件控制转移指令;指定数量的非控制转移指令。反 汇编部件用于动态构建与目标代码流相一致的虚拟执行基本块。虚拟执行部件虚拟执行部件的结构组成包括基本块生成模块,基本块缓存模块,基 本块预处理模块和虚拟执行部件。基本块生成模块调用反汇编部件,对获取的二进制代码流 进行分析,生成不包含控制转移指令的基本块。这就使得目标代码流的所有执行都能够保持 在虚拟执行系统的控制范围内。为提高运行效率进行相应的执行预处理,生成的基本块经过 执行预处理后存放在基本块缓存内。只有存在于基本块缓存内的代码指令才能执行,原始的 目标代码流不能直接执行。基本块预处理模块为了提升系统的运行性能,采用了基本块结合 技术和标准代码忽略技术,以此减小运行时的延迟。行为监控部件恶意行为自动化分析系统针对虚拟执行部件生成的每个基本块,判断其 中是否存在有规则库中的恶意行为指令。若不存在,则由虚拟执行部件虚拟执行各条指令。 若存在,则将控制权转移给行为分析部件,由此记录下该恶意行为,之后再将控制权返回给 虚拟执行部件。行为监控部件的恶意行为对象组成包括进程/线程行为模块,内存空间访问 行为模块,文件系统访问行为模块,注册表系统访问行为模块,网络系统访问行为模块等。 进程/线程模块包括了进程创建行为,进程结束行为,远程线程创建行为,远程线程结束行为, 进程悬挂行为,进程激活行为,线程悬挂行为,线程激活行为,进程优先级改变行为,以及 进程调试行为,动态链接库加载行为,驱动程序加载行为等。内存空间访问行为模块包括直 接访问物理内存行为,远程进程内存空间访问行为等。文件系统访问行为模块主要包括文件 的创建行为,删除行为,修改行为等。注册表系统访问行为模块主要包括注册表的键和值的 创建行为,删除行为和修改行为等。网络系统访问行为模块包括远程网络的主动连接行为, 本地网络的监听行为等。行为分析部件恶意行为自动化分析系统根据记录下的恶意行为,按照行为的作用范围 和严重程度,对该未知二进制程序的恶意行为进行分析归类。同时,提供针对该恶意程序有 效的防御方法和手动卸载方法。为了达到上述目的,本发明还提供了一种恶意程序动态行为自动化分析方法,其特征在 于该方法包括了下述操作步骤步骤(l),.初始化部件启动目标二进制程序;步骤(2),初始化部件加载虚拟执行部件和行为监控部件;步骤(3),反汇编部件获取目标程序二进制代码流的汇编指令
步骤(4),虚拟执行部件切片生成相应的基本块;步骤(5),行为监控部件判断基本块内是否存在规则库中的恶意行为; 步骤(6),,若存在恶意行为,将控制权转移给行为分析部件,记录该恶意行为; 步骤(7),虚拟执行基本块中的每条指令;步骤(8),停止分析后,行为分析部件提交恶意行为分析报告。总之,本发明系统与方法的优点简述如下自动化且高效的二进制程序恶意行为自动化 分析系统。该自动化分析系统采用代码虚拟执行环境,针对目标二进制代码流进行切片与执 行。不仅能完全控制目标程序的运行指令,并且具有很高的性能和运行效率。同时,支持对 进程/线程行为、内存访问行为、文件系统访问行为、注册表系统访问行为和网络访问行为的 有效分析,并提供详细的分析报告。


图1是本发明恶意程序动态行为自动化分析方法的流程图。 图2是本发明恶意程序动态行为自动化分析系统的总体结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一歩的详细 描述。参见图1,恶意程序动态行为自动化分析系统的初始化部件首先启动待分析的未知二进 制程序,同时还将装载虚拟执行部件和行为监控部件。虚拟执行部件将被装载到目标的二进 制程序的进程空间,以实现对目标二进制程序代码流执行的有效控制。行为监控部件包含了 默认的安全行为规则库,用户同样可以访问接口来处理这些规则,支持对规则的添加、删除 和修改操作。初始化完成以后,二进制程序便进入了执行状态。虚拟执行部件获取目标二进制程序的 代码流,并通过反汇编部件将二进制代码流转换成可识别的汇编代码。针对得到的汇编代码, 根据代码切片的原则生成长度在一定范围之内的,且不包含有控制流转移指令的基本块。每 个基本块都保存在虚拟执行部件内部的缓存内。行为监控部件根据得到的每个基本块,判断其中是否存在与恶意行为规则库中匹配的指 令。如果存在,则将当前控制权转移给行为分析部件,记录该恶意行为,之后将控制权返回 给虚拟执行部件。无论行为监控部件是否发现有恶意行为,所有的基本块都会在虚拟执行部 件内执行。目标二进制程序停止运行,或自动化分析系统停止分析后,行为分析部件将整理得到的 行为记录,并由此提供相应的防护措施,以文本的形式提交给用户。
图2为恶意程序动态行为自动化分析系统的总体结构框图。下面将结合附图2,具体介 绍本发明的各个组成部件 反汇编部件反汇编部件分析虚拟执行系统获取目标二进制程序的代码流,生成对应的每一条汇编指 令,逐条分析得到的汇编指令。当遇到控制转移指令,或基本块的累计指令数目超出用户定 义的范围时,设置为该基本块的结束。反汇编部件用于动态构建与目标代码流相一致的虚拟 执行基本块。虚拟执行部件将目标代码流分解成多个指令集,以模拟代码流正常执行的方式执行基本 块中的指令。这个过程称之为局部执行,而指令集被称为基本块。 一个基本块是没有包含分 支的指令序列,在满足以下条件发生时结束代码流切片(1) 无条件控制转移指令;(2) 条件控制转移指令;(3) 规定数量的非控制转移指令。 虚拟执行部件,虚拟执行部件将切片生成的基本块放如虚拟执行部件内部的缓存,并进行相应的执行预 处理,目的是为了提高虚拟执行的性能。只有存在于虚拟执行部件缓存中的基本块才能被执 行,原始的代码流是不能被执行的。局部执行开始于目标二进制程序的执行入口地址。虚拟执行部件在忽略目标代码流执行 优先级的情况下,以无优先级模式运行单独的基本块。这将确保代码切片虚拟执行系统对执 行的指令有完全的控制权、虚拟执行系统可以监视任何对指定内存区域的访问操作系统内 核、资源和动态链接库等。代码切片虚拟执行系统采用虚拟内存机制结合巧妙的技术来监控 内存访问。在虚拟执行部件中不使用任何特定的操作系统函数。虚拟执行系统使用的反汇编器是完 全重用的。构架系统为每个线程维持了一个针对基本块结束标志的参数信息块,它不会破坏 执行堆栈。这些特性使得虚拟执行系统支持多线程环境。无论基本块结束标志是否存在,执 行线程的寄存器看起来都是没有差异的。基本块结束标志支持进程或操作系统内核的自动线 程监视。这是一个自动将目标进程中代码流切片的特性。 行为监控部件恶意行为自动化分析系统针对虚拟执行部件生成的每个基本块,判断其中是否存在有规 则库中的恶意行为指令。若不存在,则由虚拟执行部件虚拟执行各条指令。若存在,则将控 制权转移给行为分析部件,由此记录下该恶意行为,之后再将控制权返回给虚拟执行部件。
行为监控部件的恶意行为对象组成包括进程/线程行为模块,内存空间访问行为模块,文件 系统访问行为模块,注册表系统访问行为模块,网络系统访问行为模块等。进程/线程模块包 括了进程创建行为,进程结束行为,远程线程创建行为,远程线程结束行为,进程悬挂行为, 进程激活行为,线程悬挂行为,线程激活行为,进程优先级改变行为,以及进程调试行为, 动态链接库加载行为,驱动程序加载行为等。内存空间访问行为模块包括直接访问物理内存 行为,远程进程内存空间访问行为等。文件系统访问行为模块主要包括文件的创建行为,删 除行为,修改行为等。注册表系统访问行为模块主要包括注册表的键和值的创建行为,删除 行为和修改行为等。网络系统访问行为模块包括远程网络的主动连接行为,本地网络的监听 行为等。 行为分析部件恶意行.为自动化分析系统根据记录下的恶意行为,按照行为的作用范围和严重程度,对 该未知二进制程序的恶意行为进行分析归类。同时,提供针对该恶意程序有效的防御方法和 手动卸载方法。行为分析部件的分析报告包含了未知二进制程序文件的基本信息、进程/线程 信息、内存信息、文件信息、注册表信息、网络信息和模块信息。基本信息包括未知二进制程序的文件大小,创建日期,模块信息,PE文件信息等。进程/ 线程信息包含了该二进制程序在运行过程中创建的新进程/线程,结束的进程/线程,访问的 远程进程/线程等。内存信息针对一些特殊内存区域的访问,如物理内存直接访问行为,操作系统核心关键 内存区域的访问行为等。文件信息则主要是包括了对系统目录文件的访问,如创建隐蔽的文件于系统目录之中, 或是修改系统目录下的关键文件信息。还包括恶意程序创建的所有新文件、修改或移动过的 文件等。注册表信息主要是包含了与自启动相关的注册表项和键值的修改、创建等,因为恶意程 序往往通过修改注册表来使得系统重新启动后仍然能够继续执行恶意程序副本。网络信息主要包括与外界的通信情况,包括远程访问的网络地址,本地监听的网络端口, 以及传输的网络信息内容。还包括一些上层应用的网络信息,如远程端口扫描行为,枚举邮 件列表中的所有地址以发送邮件,访问网上邻居等行为。模块信息包含了对动态链接库文件和驱动文件加载行为和卸载行为的记录。为了隐藏进程,恶意程序往往会以动态链接库的形式将执行代码驻入到远程进程空间里面,最后在操作系统中存在的就是已知进程执行了恶意程序在动态链接库中的代码,未产生新的进程。为了提升权限,恶意代码往往会加载驱动程序,使得有访问操作系统内核的能力。
手动卸载信息包括恶意代码运行时存在的进程和线程,首先需要结束这些存在的动态进 程/线程。动态加载的动态链接库和驱动程序文件,也需要动态卸载。之后,在系统中存在的 将包含一些永久性信息,如创建的文件、修改过的文件,以及在注册表中创建、修改过的信 息。注册表的所有信息也是以文件的方式保存在操作系统中的。
权利要求
1、恶意程序动态行为自动化分析系统,其特征在于包括如下组成部件初始化部件恶意行为自动化分析系统首先在监控方式下启动被分析的未知二进制程序,并将虚拟执行部件远程注入到目标二进制程序进程空间内,并初始化虚拟执行部件。同时,加载行为监控部件,其中包含有默认的恶意行为规则库。可通过用户接口添加、删除和修改行为规则库中的内容。反汇编部件恶意行为自动化分析系统获取目标二进制程序的代码流,由反汇编部件生成对应的汇编代码,逐条分析得到的汇编指令。反汇编部件用于动态构建与目标代码流相一致的汇编指令流。虚拟执行部件恶意行为自动化分析系统针对反汇编部件生成的目标程序汇编指令流,当遇到控制转移指令,或基本块的累计指令数目超出用户定义的范围时,设置为该基本块的结束。同时,虚拟执行部件以虚拟执行的方式执行基本块中的每条指令。行为监控部件恶意行为自动化分析系统针对虚拟执行部件生成的每个基本块,判断其中是否存在有规则库中的恶意行为指令。若不存在,则由虚拟执行部件虚拟执行各条指令。若存在,将控制权转移给行为分析部件,记录下该恶意行为,之后将控制权返回给虚拟执行部件。行为分析部件恶意行为自动化分析系统根据记录下的恶意行为,按照行为的作用范围和严重程度,对该未知二进制程序的恶意行为进行分析归类。同时,提供针对该恶意程序有效的防御方法和手动卸载方法。
2、 根据权利要求1所述的恶意程序动态行为自动化分析系统,其特征在于虚拟执行 部件的结构组成包括基本块生成模块,基本块缓存模块,基本块预处理模块和虚拟执行模 块。基本块生成模块调用反汇编部件,对获取的二进制代码流进行分析,生成不包含控制转 移指令的基本块。这就使得目标代码流的所有执行都能够保持在虚拟执行系统的控制范围内。 生成的基本块存放在基本块缓存内后,经过执行预处理条运行效率。只有存在于基本块缓存内的代码指令才能执行,原始的目标代码流不能直接执行。基本块预处理模块为了提升系统 的运行性能,采用了基本块结合技术和标准代码忽略技术,以此减小运行时的延迟。
3、 根据权利要求1所述的恶意程序动态行为自动化分析系统,其特征在于行为监控部件的恶意行为对象组成包括进程/线程行为模块,内存空间访问行为模块,文件系统访问行为模块,注册表系统访问行为模块,网络系统访问行为模块等。进程/线程模块包括了进程创建行为,进程结束行为,远程线程创建行为,远程线程结束行为,进程悬挂行为,进程激活行为,线程悬挂行为,线程激活行为,进程优先级改变行为,以及进程调试行为,动态链接库加载行为,.驱动程序加载行为等。内存空间访问行为模块包括直接访问物理内存行为, 远程进程内存空间访问行为等。文件系统访问行为模块主要包括文件的创建行为,删除行为, 修改行为等。注册表系统访问行为模块主要包括注册表的键和值的创建行为,删除行为和修 改行为等。网络系统访问行为模块包括远程网络的主动连接行为,本地网络的监听行为等。
4、 根据权利要求l所述的恶意程序动态行为自动化分析方法,其特征在于 步骤(l),初始化部件启动目标二进制程序;步骤(2),加载虚拟执行部件和行为监控部件;步骤(3),反汇编部件获取目标程序二进制代码流的汇编指令;步骤(4),虚拟执行部件切片生成相应的基本块;步骤(5),行为监控部件判断基本块内是否存在规则库中的恶意行为; 歩骤(6),若存在恶意行为,将控制权转移给行为分析部件,记录该恶意行为; 步骤(7),虚拟执行基本块中的每条指令;歩骤(8),停止分析后,行为分析部件提交恶意行为分析报告。
5、 根据权利要求4所述的恶意程序动态行为自动化分析方法,其特征在于虚拟执行 部件将目标代码流分解成多个指令集,以模拟代码流正常执行的方式执行基本块中的每条指 令,该过程实现代码的局部执行,而指令集则组成了虚拟执行的基本块。每个基本块是没有 包含分支语句的指令序列,在满足以下条件发生时结束代码流切片无条件控制转移指令; 条件控制转移指令;规定数量的非控制转移指令集。
全文摘要
本发明涉及恶意二进制程序动态行为的自动化分析系统与方法。该系统由初始化部件、虚拟执行部件、反汇编部件、行为监控部件和行为分析部件组成。该方法是初始化部件启动被监视程序,加载虚拟执行部件和行为监控部件。反汇编部件获取目标程序二进制代码流的汇编指令,虚拟执行部件切片生成相应的基本块,行为监控部件判断基本块内是否存在规则库中的恶意行为。若存在,将控制权转移给行为分析部件,记录该恶意行为。返回后虚拟执行基本块中的每条指令。程序执行退出或用户强行中止分析后,行为分析部件提交恶意行为分析报告。本发明支持在虚拟环境中对恶意程序运行行为的完全控制与分析,详细报告将提供针对恶意程序的有效防御方法。
文档编号G06F21/00GK101154258SQ20071004975
公开日2008年4月2日 申请日期2007年8月14日 优先权日2007年8月14日
发明者胜 徐, 跃 曹, 李毅超, 晓 梁, 沾 黄 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1