恶意文件检测方法及装置制造方法

文档序号:6491467阅读:141来源:国知局
恶意文件检测方法及装置制造方法
【专利摘要】本发明公开一种恶意文件检测方法及装置,其方法包括:获取待检测的样本文件;运行样本文件,并监控样本文件的运行行为,生成日志文件;分析日志文件,并基于预置的匹配规则进行恶意文件检测。本发明通过在虚拟机中运行样本文件,然后在虚拟机中运行监控程序,记录样本文件的运行行为,以此生成日志文件,然后再通过提取的特征规则对这些日志文件进行匹配,最终实现样本文件的恶意检测,本发明可大大提高病毒分析效率,并可及时找出当前反病毒软件无法检测出的新样本或某类有特定行为类型的样本,从而提高了病毒样本的检测准确率。
【专利说明】恶意文件检测方法及装置
【技术领域】
[0001]本发明涉及计算机安全【技术领域】,尤其涉及一种基于运行行为日志分析的恶意文件检测方法及装置。
【背景技术】
[0002]目前,随着病毒、恶意软件的大肆泛滥,病毒样本分析技术也得到不断提高,通过病毒样本分析,使病毒分析人员可快速鉴定病毒并了解其行为,从而制定相应的反病毒策略,对病毒进行有效拦截,保护用户系统免受破坏。
[0003]目前基于云的反病毒系统可及时有效的获取到最新的样本,同时也带来了海量的样本库。由于人工分析病毒比较费时费力,单靠人工分析无法应对当前飞速增长的大量病毒,因此需要结合各种病毒自动化分析技术来提高病毒分析的效率。
[0004]现有的病毒分析技术主要包括:启发式病毒分析技术、抗静态病毒分析技术、虚拟机检测病毒技术以及主动防御(实时防御)检测技术,其中:
[0005]启发式病毒分析是利用病毒运行和程序正常运行时的行为模式的不同来判断一个程序是否是病毒,这种方式是通过总结大量病毒的运行行为而得出分析结果,比如通过病毒自启动、传播、盗号等行为总结出一定的行为模式规则,以此来检测病毒。但是这种病毒分析效率不高,而且病毒检测不够准确。
[0006]对于抗静态病毒分析技术,启发式分析中静态分析技术比较简单且检测速度快,但是不能对付加壳、混淆、变形以及多态病毒,因为这类病毒通过各种技术模糊了自身的代码,而静态分析无法处理这类样本来了解病毒行为从而判断其恶意属性。
[0007]对于虚拟机检测病毒技术,可以用来应对加壳或加花指令、混淆、变形病毒,虚拟机一般通过模拟CPU和文件、内存管理系统以及系统API进而模拟代码的执行过程,病毒程序在虚拟机的虚拟环境中执行而不是被真实的执行,监控系统内软件运行时的行为,根据这些行为日志匹配一些规则,如果匹配到则说明发现了可疑样本。但是,由于虚拟系统比较耗费系统资源,因此这类虚拟机并没有完全的模拟整个系统。病毒可以运行一些特殊指令,此时如果虚拟机没有模拟这条指令,病毒就能检测到自己运行到虚拟机下,则会改变执行流程,比如不执行恶意行为等,从而逃过反病毒软件检测。此外,这类虚拟技术不够稳定,在客户端使用时比较耗费系统资源,导致用户机器运行缓慢。
[0008]主动防御(实时防御)检测技术是通过对系统中的一些关键API进行hook,记录下哪些程序调用了这些API以及调用时的参数,通过一个进程运行时调用的API序列可大致了解该程序的行为,判断其恶意属性,经判断为恶意程序则可及时阻止该恶意程序执行。这种检测技术虽然耗费资源较小,但是,在检测到病毒时,病毒可能已在系统中运行并对系统造成了损害。而且,如果病毒采用一些反病毒软件未hook的API来实现其功能,则可绕过主动防御系统。
[0009]因此,现有的病毒样本分析技术对病毒的检测存在较大风险,易被病毒发现而绕过,使得检测准确率不高,而且病毒分析效率也不高。
【发明内容】

[0010]本发明的主要目的在于提供一种恶意文件检测方法及装置,旨在提高病毒检测准确率及病毒分析的效率。
[0011]为了达到上述目的,本发明提出一种恶意文件检测方法,包括:
[0012]获取待检测的样本文件;
[0013]运行所述样本文件,并监控所述样本文件的运行行为,生成日志文件;
[0014]分析所述日志文件,并基于预置的匹配规则进行恶意文件检测。
[0015]本发明还提出一种恶意文件检测装置,包括:
[0016]获取模块,用于获取待检测的样本文件;
[0017]运行监控模块,用于运行所述样本文件,并监控所述样本文件的运行行为,生成日志文件;
[0018]分析检测模块,用于分析所述日志文件,并基于预置的匹配规则进行恶意文件检测。
[0019]本发明提出的一种恶意文件检测方法及装置,通过在虚拟机中运行样本文件,然后在虚拟机中运行监控程序,记录样本文件的运行行为,以此生成日志文件,然后再通过提取的特征规则对这些日志文件进行匹配,最终实现样本文件的恶意检测,本发明可大大提高病毒分析效率,并可及时找出当前反病毒软件无法检测出的新样本或某类有特定行为类型的样本,从而提高了病毒样本的检测准确率。
【专利附图】

【附图说明】
[0020]图1是本发明恶意文件检测方法较佳实施例的流程示意图;
[0021]图2是本发明恶意文件检测方法较佳实施例中运行所述样本文件,并监控所述样本文件的运行行为,生成日志文件的流程示意图;
[0022]图3是本发明恶意文件检测方法较佳实施例中分析所述日志文件,并基于预置的匹配规则进行恶意文件检测的流程示意图;
[0023]图4是本发明恶意文件检测装置较佳实施例的结构示意图;
[0024]图5是本发明恶意文件检测装置较佳实施例中运行监控模块的结构示意图;
[0025]图6是本发明恶意文件检测装置较佳实施例中分析检测模块的结构示意图。
[0026]为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
【具体实施方式】
[0027]本发明实施例的解决方案主要是:通过在虚拟机中运行样本文件,然后在虚拟机中运行监控程序,记录样本文件的运行行为,包括对样本文件、注册表、网络、进程相关的读写、修改信息记录,由此生成日志文件,然后再通过提取的特征规则对这些日志文件进行匹配,如果匹配到则表明该样本文件为恶意样本,从而实现病毒的自动化行为分析。
[0028]如图1所示,本发明较佳实施例提出一种恶意文件检测方法,包括:
[0029]步骤SlOl,获取待检测的样本文件;
[0030]待检测的样本文件可以不限定其获取来源,比如可以从指定位置下载。[0031]获取的待检测样本文件将被输入至自动化监控系统。
[0032]以病毒为例,本实施例所设置的自动化监控系统用于批量的自动化运行病毒并记录病毒运行时的行为得到日志文件,供分析人员查看,从而快速了解病毒行为,节省人力。
[0033]其中,自动化监控系统只能运行exe程序,而下载的样本文件可能有很多压缩包(rar、zip、7z等)、dll、sys等文件。因此首先需要对下载下来的所有样本文件进行格式识另O、解压缩及筛选处理,如果是压缩包则使用解压工具解压,然后筛选出样本中的exe文件和解压后的exe文件放到固定的文件夹,作为自动化监控系统运行的样本来源。
[0034]步骤S102,运行所述样本文件,并监控所述样本文件的运行行为,生成日志文件;
[0035]如前所述,待检测的样本文件本被输入至自动化监控系统,由自动化监控系统运行样本文件并监控样本文件的运行行为得到日志文件,供分析人员查看,以便快速了解病毒等恶意文件的行为。
[0036]本实施例在自动化监控系统中,使用了虚拟软件VMware和监控工具ProcessMonitor工具,在虚拟机中通过AutoIt脚本程序来控制上述工具的运行,自动化控制系统输出的文件是每个样本文件运行行为的日志文件(ProcessMonitor监控得到的日志文件)。
[0037]其中,样本文件的运行行为包括:对文件、注册表、进程和网络信息的相关操作,如生成、访问、删除了什么文件;设置、新建、删除了哪些注册表项;开启、关闭了哪些进程;、连接了哪些ip地址等信息。
[0038]此外,由于很多恶意程序在运行后会释放别的恶意程序,因此也需要对这些恶意程序释放的文件进行计算,获取其MD5,并构成自动化监控系统输出的日志文件的一部分内容。通常情况下,如果母体文件判断是恶意的,那么其释放的子体文件也很可能是恶意的。
[0039]现有技术采用的虚拟机检测技术大多是放在客户端执行,而且使用的是简易的虚拟机,并未完整模拟操作系统,本实施例使用的自动化监控系统在后台运行样本,而且使用虚拟软件VMware,可以比较完整的模拟操作系统,而且可以减少被病毒发现而绕过的风险。
[0040]步骤S103,分析所述日志文件,并基于预置的匹配规则进行恶意文件检测。
[0041]每个样本文件运行后都会生成一个ProcessMonitor的日志文件,通过分析该日志文件可以了解到样本文件运行时的行为,主要包括文件、注册表、进程、网络信息等的相关操作,比如生成、访问、删除了什么文件;设置、新建、删除了哪些注册表项;开启、关闭了哪些进程;连接了哪些ip地址等信息。
[0042]本实施例预先对一些特定的样本提取日志匹配规则,以此来匹配过滤当前样本文件的日志文件。将样本文件运行后生成的日志文件与上述预先设置的匹配规则进行匹配,如果某个样本文件的日志文件的恶意属性匹配到了某条规则,则表明该样本文件是这条规则对应的特定的恶意文件。
[0043]具体地,如图2所示,作为运行所述样本文件,并监控所述样本文件的运行行为,生成日志文件的一种实施例,上述步骤S102可以包括:
[0044]步骤S1021,对运行样本文件的虚拟机进行环境初始化操作;
[0045]在自动化监控系统中运行样本文件并监控样本文件的运行行为时,首先需要对自动化监控系统中对运行样本文件的虚拟机进行环境初始化操作,即恢复虚拟机快照,该快照是之前配置好的虚拟机环境,在虚拟机环境中设置有控制程序、bat文件等,对虚拟机进行环境初始化操作,即是使虚拟机做好运行样本文件的准备工作。
[0046]步骤S1022,将所述样本文件复制到虚拟机的固定目录;
[0047]步骤S1023,在所述虚拟机中运行所述样本文件,并通过监控工具对运行过程中所述样本文件的运行行为进行监控,生成日志文件。
[0048]本实施例需要将样本文件复制到虚拟机中运行并使用ProcessMonitor工具来监控样本文件的运行行为。因此,在监控时,需要枚举之前筛选出的所有可执行样本程序,每枚举一个样本文件则完成一次自动监控过程。该过程使用VMware自带的工具vmrun.exe的一些控制命令来通过物理机控制虚拟机的运行。
[0049]首先将枚举到的一个样本文件复制到虚拟机的一个固定目录,然后运行虚拟机中的监控程序,该程序的功能是设置ProcessMonitor过滤器,用于过滤掉一些系统程序,然后运行预定时间(比如IOs)后关闭进程,接着保存ProcessMonitor的日志文件,并初步分析日志文件,查看其释放的文件并计算其md5保存到指定文件。
[0050]步骤S1024,将所述日志文件从所述虚拟机复制到物理机的固定目录。
[0051]最后将ProcessMonitor的日志文件,包括行为日志和释放文件的md5列表,从虚拟机复制到物理机的固定目录,以便对日志文件进行分析。
[0052]如图3所示,作为分析所述日志文件,并基于预置的匹配规则进行恶意文件检测的一种实施例,上述步骤S103可以包括:
[0053]步骤S1031,从所述物理机的固定目录获取所述日志文件;
[0054]步骤S1032,分析所述日志文件的运行行为;
[0055]以病毒为例,每个病毒程序运行后都会生成一个ProcessMonitor的日志文件,通过分析该日志文件可以了解到病毒运行时的行为,主要包括文件、注册表、进程、网络信息等相关操作。如生成、访问、删除了什么文件;设置、新建、删除了哪些注册表项;开启、关闭了哪些进程;连接了哪些ip地址等信息。
[0056]步骤S1033,将所述日志文件的运行行为与预置的匹配规则中的恶意日志进行匹配;
[0057]步骤S1034,若匹配成功,则检测出所述日志文件对应的样本文件为恶意文件。
[0058]对于一些特定的样本可以提取日志规则来过滤日志,如果某个样本的日志文件匹配到了某条规则,则说明该样本是这条规则对应的特定的病毒。比如对于QQ盗号木马,可以提取一条特征是:删除QQ的自动登录文件,因此,如果发现一个样本的行为日志里有这样的日志记录,即可判断该样本是QQ盗号木马。
[0059]以即时通讯QQ为例,目前在实际应用中,会涉及到QQ刷钻程序的筛选和QQ盗号木马的筛选,QQ刷钻程序运行后会在界面上显示QQ业务的各种钻的类别,然后提示用户输入QQ号码和密码,并开通各种钻(简称刷钻)的业务,其实质是欺骗用户,盗取用户的QQ号码和密码,因为这些应用程序实际上不能刷钻。
[0060]由于QQ刷钻程序主要是利用社会工程学方法欺骗用户,一般没有采用技术方法来盗取QQ密码,没有特定的行为特征,但是这类刷钻程序的主程序界面上有一些特定的关键字,可以通过这些关键字来匹配这类样本,因此对于QQ刷钻程序,是通过匹配窗口的关键字来实现恶意样本的检测。
[0061]样本文件在虚拟机中运行后,运行一个QQ刷钻检测程序,该程序会枚举到系统中的所有窗口和这些窗口的子窗口的文字,然后查找是否包含如下关键字:刷钻、刷钻、刷Q、红钻、Q业务、QQ密码、Q币、QB,如果发现则表明该样本是一个QQ刷钻程序。
[0062]对于QQ盗号木马的筛选则是通过提取行为规则来筛选。因为这类QQ盗号木马是通过技术方法来盗取QQ密码,比如替换QQ的一些文件等,常用的QQ盗号木马的筛选规则如下:
[0063](I)关闭了 QQ.exe 进程;
[0064](2)访问(释放)了 QQ\bin目录下的文件;
[0065](3)删除了 QQ的Registry, db文件(该文件保存QQ自动登录信息,很多QQ盗号木马会删除该文件使得QQ自动登录失效,以便让用户再次输入QQ密码来实现盗号);
[0066](4)修改了 QQ.1nk快捷方式文件,使得该Ink文件指向QQ盗号木马。
[0067]在对应筛选规则进行匹配判断时,读取日志文件的每一行,然后判断每行是否有以下四个字符串中的任一个:同时存在QQ.exe和Process Exit、QQ\Bin、Registry, db、QQ.1nk。
[0068]如果包含上述四个行为中的任一个,那么就判断该日志文件对应的样本文件为QQ盗号木马,并将其md5记录到指定的文本文件中。
[0069]在实际应用中,可以通过配置计划任务,每天运行一次自动化监控系统,从前一天的样本文件中得到QQ刷钻程序和QQ盗号木马,通过不断监控这些样本文件的热度和广度,从而得到热度和广度最大的样本文件,以便进行重点处理。
[0070]本实例通过测试自动化监控系统获取到如下实验数据。其中,设定自动化监控系统监控一个样本文件的平均时间是45s,通过测试几批样本(一天中“刷钻关键字过滤”和“QQ目录监控”得到的所有样本,QQ目录监控是监控在QQ目录释放的文件,由于很多盗号木马是在该目录释放DLL实现盗号,而这里的自动化是用于自动运行EXE程序,实际上找到的EXE程序大部分是QQ盗号木马),随机抽取四批数据,如下:
[0071]刷钻关键字过滤样本数据如下表1所示:
[0072]
【权利要求】
1.一种恶意文件检测方法,其特征在于,包括: 获取待检测的样本文件; 运行所述样本文件,并监控所述样本文件的运行行为,生成日志文件; 分析所述日志文件,并基于预置的匹配规则进行恶意文件检测。
2.根据权利要求1所述的方法,其特征在于,所述获取待检测的样本文件的步骤之后还包括: 对所述样本文件进行格式识别、解压缩和\或筛选处理,得到可运行的样本文件。
3.根据权利要求1所述的方法,其特征在于,所述运行样本文件,并监控所述样本文件的运行行为,生成日志文件的步骤包括: 对运行样本文件的虚拟机进行环境初始化操作; 将所述样本文件复制到虚拟机的固定目录; 在所述虚拟机中运行所述样本文件,并通过监控工具对运行过程中所述样本文件的运行行为进行监控,生成日志文件。
4.根据权利要求3所述的方法,其特征在于,所述运行样本文件,并监控所述样本文件的运行行为,生成日志文件的步骤还包括: 将所述日志文件从所述虚拟机复制到物理机的固定目录。
5.根据权利要求4所述的方法,其特征在于,所述分析日志文件,并基于预置的匹配规则进行恶意文件检测的步骤包括: 从所述物理机的固定目录获取所述日志文件; 分析所述日志文件的运行行为; 将所述日志文件的运行行为与预置的匹配规则中的恶意日志进行匹配; 若匹配成功,则检测出所述日志文件对应的样本文件为恶意文件。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述运行行为包括:对文件、注册表、进程和/或网络信息的相关操作;所述日志文件包括:行为日志和样本文件运行后释放的子体文件的md5列表。
7.—种恶意文件检测装置,其特征在于,包括: 获取模块,用于获取待检测的样本文件; 运行监控模块,用于运行所述样本文件,并监控所述样本文件的运行行为,生成日志文件; 分析检测模块,用于分析所述日志文件,并基于预置的匹配规则进行恶意文件检测。
8.根据权利要求7所述的装置,其特征在于,所述获取模块还用于对所述样本文件进行格式识别、解压缩和\或筛选处理,得到可运行的样本文件。
9.根据权利要求7或8所述的装置,其特征在于,所述运行监控模块包括: 初始化单元,用于对运行样本文件的虚拟机进行环境初始化操作; 复制单元,用于将所述样本文件复制到虚拟机的固定目录; 运行监控单元,用于在所述虚拟机中运行所述样本文件,并通过监控工具对运行过程中所述样本文件的运行行为进行监控,生成日志文件。
10.根据权利要求9所述的装置,其特征在于,所述复制单元还用于将所述日志文件从所述虚拟机复制到物理机的固定目录。
11.根据权利要求9所述的装置,其特征在于,所述分析检测模块包括: 获取单元,用于从所述物理机的固定目录获取所述日志文件; 分析单元,用于分析所述日志文件的运行行为; 匹配单元,用于将所述日志文件的运行行为与预置的匹配规则中的恶意日志进行匹配; 检测单元,用于当所述日志文件的运行行为与预置的匹配规则中的恶意日志匹配成功时,检测出所述 日志文件对应的样本文件为恶意文件。
【文档编号】G06F21/56GK103839003SQ201210478566
【公开日】2014年6月4日 申请日期:2012年11月22日 优先权日:2012年11月22日
【发明者】李萌萌 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1