恶意软件分类系统及方法与流程

文档序号:11323617阅读:573来源:国知局
恶意软件分类系统及方法与流程

本发明涉及通信领域,尤其涉及一种恶意软件分类系统及方法。



背景技术:

长期以来,恶意软件一直是计算机领域主要的危害之一。恶意软件主要利用安全漏洞、垃圾邮件、网页挂马等方式传播,当受害者主机存在漏洞或打开邮件中的附件或打开了被篡改的网页,恶意程序就会下载到受害者主机中。攻击者利用感染的众多主机组建僵尸网络,对现有网络造成极大的威胁。恶意软件分类是恶意软件研究的基础工作之一,开展分类工作有利于研究恶意软件之间的共性行为,跟踪恶意软件最新发展动向,研究恶意软件家族变种,监控僵尸网络变化,发现新型恶意软件方面都有重要意义。

现有技术中,目前的分类技术上,主要有如下几种方式:

1、根据恶意软件静态特征码分类:分析人员对恶意软件进行分析,提取恶意软件md5值、pe元数据字符串等十六进制特征码作为病毒特征库,同时利用杀毒软件引擎或yara对样本进行扫描分类,这种方法的最大缺点是无法应对加壳和混淆,而且只能对已知样本进行分类。

2、根据恶意软件动态行为特征分类:利用沙盒或模拟器执行恶意软件并监控恶意软件的文件行为、注册表行为、进程行为和网络行为,将这些行为作为恶意软件的特征码。但一些恶意软件会需要某些软件或行为触发才能运行,导致行为缺失,降低分类准确率。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明主要目的在于提供一种基于静态特征和动态行为相互认证的恶意软件分类系统和方法,旨在解决现有技术中分类准确率低的技术问题。

为实现上述目的,本发明提供一种恶意软件分类系统,所述系统包括:

高级静态扫描引擎模块,用于对目标样本进行解析,获得第一api函数集;

高级动态扫描引擎模块,用于对所述目标样本进行测试,获得第二api函数集和行为结果;

分析模块,用于根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

优选地,所述分析模块包括:

行为分析单元,用于从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api及目标行为结果对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

优选地,所述分析模块包括:

函数分析单元,用于从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。

优选地,所述高级静态扫描引擎模块还用于接收所述目标样本,对所述目标样本进行解密脱壳,解析所述目标样本的文件结构,识别所述文件结构中的api函数和功能代码,获得所述第一api函数集。

优选地,所述高级动态扫描引擎模块还用于接收所述目标样本,对所述目标样本进行执行测试,识别所述目标样本在执行过程中调用的api函数和行为结果,获得所述第二api函数集和行为结果。

为实现上述目的,本发明还提供一种恶意软件分类方法,所述方法包括:

对目标样本进行解析,获得第一api函数集;

对所述目标样本进行测试,获得第二api函数集和行为结果;

根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

优选地,所述根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型,具体包括:

从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api及目标行为结果对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

优选地,所述根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型,具体包括:

从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。

优选地,所述接收目标样本,对所述目标样本进行解析,获得第一api函数集包括:

接收所述目标样本,对所述目标样本进行解密脱壳,解析所述目标样本的文件结构,识别所述文件结构中的api函数和功能代码,获得所述第一api函数集。

优选地,所述接收所述目标样本,对所述目标样本进行测试,获得第二api函数集和行为结果包括:

接收所述目标样本,对所述目标样本进行执行测试,识别所述目标样本在执行过程中调用的api函数和行为结果,获得所述第二api函数集和行为结果。

本发明通过对目标样本进行解析,获得第一api函数集,对所述目标样本进行测试,获得第二api函数集和行为结果,根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中找到查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型,避免了现有技术中单独采用静态特征码分类和动态行为特征分类时容易误报漏报,分类准确率低的问题,显著提升了恶意软件的分类准确性和用户体验。

附图说明

图1为本发明一种恶意软件分类系统第一实施例功能模块示意图;

图2为本发明一种恶意软件分类系统第二实施例功能模块示意图;

图3为本发明一种恶意软件分类系统第三实施例功能模块示意图;

图4为本发明一种恶意软件分类系统第四实施例功能模块示意图;

图5为本发明一种恶意软件分类方法第一实施例流程示意图;

图6为本发明一种恶意软件分类方法第二实施例流程示意图;

图7为本发明一种恶意软件分类方法第三实施例流程示意图;

图8为本发明一种恶意软件分类方法第四实施例流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明一种恶意软件分类系统第一实施例功能模块示意图,参照图1,所述系统包括:

高级静态扫描引擎模块10,用于对目标样本进行解析,获得第一api函数集;

在具体实现中,高级静态扫描引擎模块10在接收所述目标样本后,一般目标样本被加壳和混淆过,因此有必要对所述目标样本进行脱壳解密,解析文件结构,识别文件结构中的api函数和功能代码,将识别分析出的api函数和功能代码进行集中,以形成所述第一api函数集,也就是说,在本实施例中,高级静态扫描引擎模块10还用于接收所述目标样本,对所述目标样本进行解密脱壳,解析所述目标样本的文件结构,识别所述文件结构中的api函数和功能代码,获得所述第一api函数集。

高级动态扫描引擎模块20,用于对所述目标样本进行测试,获得第二api函数集和行为结果;

在具体实现中,通过高级动态扫描引擎模块20对所述目标样本进行监测和记录在执行过程中调用的api函数和行为结果,将监测记录的api函数和行为结果进行集中,作为所述第二api函数和行为结果,也就是说,在本实施例中,高级动态扫描引擎模块20还用于接收所述目标样本,对所述目标样本进行执行测试,识别所述目标样本在执行过程中调用的api函数和行为结果,获得所述第二api函数集和行为结果。

分析模块30,用于根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

可以理解的是,所述恶意软件类型库是记录常见和不常见的恶意软件类型和相对应的api函数和行为结果的集合,当然,除了记录api函数和行为结果也可以记录恶意软件类型相对应的能够表明恶意类型与之映射关系的其他参数,本实施例对此不加以限制。

应当理解的是,所述api(applicationprogramminginterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

本实施例通过对目标样本进行解析,获得第一api函数集,对所述目标样本进行测试,获得第二api函数集和行为结果,根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中找到查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型,避免了现有技术中单独采用静态特征码分类和动态行为特征分类时容易误报漏报,分类准确率低的问题,显著提升了恶意软件的分类准确性和用户体验。

进一步的,如图2所示,基于本发明一种恶意软件分类系统第一实施例提出本发明一种恶意软件分类系统第二实施例,在本实施例中,所述分析模块30包括:

行为分析单元31,用于从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api及目标行为结果对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

可以理解的是,从所述第一api函数集和所述第二api函数集中选取重合度最高的api作为目标api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,是指通过高级静态扫描引擎模块10和高级动态扫描引擎模块20对所述目标样本进行扫描,识别出api和行为结果,在待处理对象中直接在第一api函数集和第二api函数集中选取重合度最高的api作为目标api,从所述行为结果中查找与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api及目标行为结果对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

需要说明的是,由于在所述恶意软件库中预先设置各恶意软件类型对应的api和行为结果,因此,将目标api及目标行为结果与恶意软件类型库中的api和行为结果进行比较时,能够从不同的api和行为结果中找到与所述目标api及目标行为结果一样的api和行为结果,则此时对应的恶意软件类型能够确认就是所述目标样本的类型;

在具体实现中,所述重合度最高的api是指所述第一api函数集与所述第二api函数集中最相似的api;所述最相似的api可以是所述第一api函数集与所述第二api函数集中api函数代码重叠部分最多的api,当然,所述最相似的api也可以是将第一api函数集与第二api函数集进行聚类分析后api代表的元素距离最近的点(该元素不仅限于api,还能是其他能够体现相应恶意软件类型对应的属性特征点);当然,本实施例中还可通过其他方式选出目标api,本实施例对此不加以限制。当选出目标api和目标行为结果之后,将所述目标api和目标行为结果在恶意软件类型库中查找与之对应的类型,则所述与所述目标api和目标行为结果对应的恶意软件类型为所述目标样本的类型,根据所述类型输出最终分类结果。

应当理解的是,通过行为分析单元31,将所述目标api及目标行为结果一起与恶意软件类型库中的api和行为结果进行对比,能够节省大量的操作步骤,可以较好的提高寻找目标样本的恶意软件类型的效率,并且通过静态扫描和动态扫描相互验证得到的所述目标api及目标行为结果,相比于现有技术单方面通过静态扫描或动态扫描得到的恶意软件类型,具有较高的准确性,方便了用户操作,显著提升了用户体验。

进一步的,如图3所示,基于本发明一种恶意软件分类系统第一实施例提出本发明一种恶意软件分类系统第三实施例,在本实施例中,所述分析模块30包括:

函数分析单元32,用于从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。

应理解的是,从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果是指通过高级静态扫描引擎模块10和高级动态扫描引擎模块20对所述目标样本进行扫描,识别出api和行为结果,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。若匹配不成功,则重新在恶意软件类型库中寻找与重合度最高的api相对应的其他恶意软件类型,或者重新对目标样本进行静态扫描和动态扫描,获取新的api和行为结果。

需要说明的是,由于在所述恶意软件库中预先设置各恶意软件类型对应的api和行为结果,因此,将目标api及目标行为结果与恶意软件类型库中的api和行为结果进行比较时,能够从不同的api和行为结果中找到与所述目标api及目标行为结果一样的api和行为结果,则此时对应的恶意软件类型能够确认就是所述目标样本的类型;

在具体实现中,所述重合度最高的api是指所述第一api函数集与所述第二api函数集中最相似的api;所述最相似的api可以是所述第一api函数集与所述第二api函数集中api函数代码重叠部分最多的api,当然,所述最相似的api也可以是将第一api函数集与第二api函数集进行聚类分析后api代表的元素距离最近的点(该元素不仅限于api,还能是其他能够体现相应恶意软件类型对应的属性特征点);当然,本实施例中还可通过其他方式选出目标api,本实施例对此不加以限制。当选出目标api和目标行为结果之后,将所述目标api和目标行为结果在恶意软件类型库中查找与之对应的类型,则所述与所述目标api和目标行为结果对应的恶意软件类型为所述目标样本的类型,根据所述类型输出最终分类结果。

应当理解的是,通过函数分析单元32,先确定目标api,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果;再从所述行为结果中获取与所述目标api对应的目标行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。这样能够在通过api寻找到恶意软件类型的基础上再通过行为结果进一步验证该恶意软件类型是否是所述目标样本的类型,能够提高识别目标样本恶意软件类型的准确率,可以更加准确的确定所述目标样本的恶意软件类型,相比于现有技术单方面通过静态扫描或动态扫描得到的恶意软件类型,具有较高的准确性,方便了用户操作,显著提升了用户体验。

进一步的,如图4所示,基于本发明一种恶意软件分类系统第一实施例提出本发明一种恶意软件分类系统第四实施例,在本实施例中,所述系统还包括:

初级静态扫描引擎模块40,用于接收恶意软件的待处理样本,对所述待处理样本进行特征库扫描,生成第一分类结果;

需要说明的是,所述恶意软件是指在计算机系统上执行恶意任务的病毒、陷门、逻辑炸弹、蠕虫和特洛伊木马的程序,它们通过利用安全漏洞、垃圾邮件、网页等方式植入计算机,这些恶意程序运行后,会盗取用户的敏感信息,修改计算机配置等各种有害操作,而这些操作往往不被使用者察觉。

可以理解的是,所述待处理样本为准备进行扫描等操作处理的恶意软件,将该恶意软件作为测试的对象提交到测试程序中进行扫描测试等操作获得相应结果。

在具体实现中,所述第一分类结果是通过初级静态扫描引擎将所述待处理样本与特征库进行比对生成的分类结果,也就是说,在本实施例中,初级静态扫描引擎模块40还用于利用yara或者杀毒软件引擎扫描所述特征库,并将所述特征库与所述待处理样本进行比对,生成所述第一分类结果;

需要说明的是,yara是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具,使用yara可以基于文本或二进制模式创建恶意软件家族描述信息,当然也可以是其他匹配信息。yara的每一条描述或规则都由一系列字符串和一个布尔型表达式构成,并阐述其逻辑。yara规则可以提交给文件或在运行进程,以帮助研究人员识别其是否属于某个已进行规则描述的恶意软件家族。

可以理解的是,所述初级静态扫描引擎模块40用于利用yara或者杀毒软件引擎扫描所述特征库,生成所述第一分类结果,当然也可以利用对恶意软件分析的服务器对所述待处理样本进行扫描;例如,virustotal是一个免费的病毒,蠕虫,木马和各种恶意软件分析服务器。可以针对可疑文件和网址进行快速检测。文件上传后会先计算哈希值,与已检测的文件数据库中的数据进行对比,如果已经存在,则会提示选择是重新分析还是查看最近一次分析结果。分析报告中,包括病毒检出率(51个杀毒引擎查杀)文件详细信息(文件头,字符串,环境变量,运行时库),文件操作,网络操作(http、dns、tcp、udp),进程操作,互斥体,hook,窗口操作;另外,anubis(阿努比斯)也是一个恶意软件分析的服务器,可以提交url和文件进行分析,分析报告可以选择html、xml、pdf和txt等格式,报告中包含了测试文件及其释放文件的文件操作,网络操作,注册表操作等信息,并且对这些操作进行了细分。

初级动态行为引擎模块50,用于对所述待处理样本进行虚拟执行,记录所述待处理样本的行为并与所述特征库进行比对,生成第二分类结果;

应理解的是,所述对所述待处理样本进行虚拟执行,所述虚拟执行是一个可执行受管理程式码,对所述待处理样本提供假定的机器型态和状态、内建资料型别、流程控制和例外处理等参数环境。

需要说明的是,所述特征库可以是从众多常见和不常见的恶意软件中提取出的特征码,将这些特征码集合构成的特征库,也可以是其他能够表征恶意软件特征的元素集合,本实施例对此不加以限制。

可以理解的是,所述恶意软件类型库是记录常见和不常见的恶意软件类型和相对应的api函数和行为结果的集合,当然,除了记录api函数和行为结果也可以记录恶意软件类型相对应的能够表明恶意类型与之映射关系的其他参数,本实施例对此不加以限制。

在具体实现中,所述第二分类结果是通过初级动态行为引擎将虚拟执行生成行为结果,将行为结果与特征库里的行为特征进行对比,生成的分类结果。也就是说,在本实施例中,初级动态行为引擎模块50还用于虚拟执行所述待处理样本,利用行为诱导插件触发所述待处理样本的行为,对所述行为进行监控并记录,生成所述第二分类结果。其中,所述行为包括所述待处理样本的文件行为、注册表行为、网络行为及执行顺序。

在具体实施中,所述利用行为诱导插件触发所述待处理样本的行为可以用沙盒设备执行样本,分析恶意软件的行为,诱导插件触发释放恶意软件的行为,沙盒设备监视记录恶意软件的行为,生成所述第二分类结果。

需要说明的是,所述沙盒是指在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限。利用沙盒中附加的文件屏蔽功能对入口点现有的发现的可疑文件进行集中分析。沙盒会将现有的运行程序进行限制,并让这些限制变成一座“监狱”,在其中一个标签页运作的恶意软件,将无法窃取信用卡号码、干扰鼠标运作,或告诉系统在启动时运行某个程序,并且恶意软件会在标签页关闭时立即中止。

应当理解的是,所述行为包括所述待处理样本的文件行为、注册表行为、网络行为及执行顺序,还可以包括进程行为等在执行所述待处理样本时可能出现的动态行为特征,本实施例对此不加以限制。

比对分类模块60,用于将所述第一分类结果与所述第二分类结果的分类结果进行比对,若分类结果一致,将当前分类结果作为最终分类结果,根据所述最终分类结果输出所述待处理样本的类型;若所述分类结果不一致,则将所述待处理样本作为目标样本;

可以理解的是,所述第一分类结果与所述第二分类结果的分类结果具有唯一性,即所述第一分类结果与所述第二分类结果的分类结果是单独的一个类型,而并非一个集合,当所述第一分类结果的类型与所述第二分类结果的类型相同时,确定该类型为正确的结果,输出这个正确的结果及相应的参数以形成分类报告。

应理解的是,将所述第一分类结果与所述第二分类结果的分类结果进行比对,当所述分类结果一致时,将当前分类结果作为最终分类结果;根据所述最终分类结果输出所述待处理样本的类型;其中,根据所述最终分类结果输出所述待处理样本的类型的输出方式可以以报告的形式,或者以显示在对应映射关系分类表上相应的位置上,或者以各种分类颜色对应的位置上,或者以不同数目的显示灯显示各种分类等方式输出所述待处理样本的类型。所述类型对应的恶意软件包括office宏病毒、手机骷髅病毒、中华吸血鬼病毒、熊猫烧香病毒、冰河木马、qq尾巴木马、特洛伊木马、盗号木马、广告软件、蠕虫病毒、后门程序等常见或稀有的恶意程序类型。

需要说明的是,当所述第一分类结果的类型与所述第二分类结果的类型不同时,则找到与所述第一分类结果及所述第二分类结果相对应的待处理扫描样本,将该所述待处理样本作为目标样本,以进行后续操作处理。

图5为本发明一种恶意软件分类方法第一实施例流程示意图,参照图5,所述方法包括以下步骤:

s1、对目标样本进行解析,获得第一api函数集;

s2、对所述目标样本进行测试,获得第二api函数集和行为结果;

s3、根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

需要说明的是,步骤s1和s2是对目标样本的处理过程,两者并不存在先后顺序,可以是先进行步骤s1再进行步骤s2,也可以是先进行步骤s2再进行步骤s1,当然,也可以是同时进行,本发明对此不加以限制。

可以理解的是,所述恶意软件类型库是记录常见和不常见的恶意软件类型和相对应的api函数和行为结果的集合,当然,除了记录api函数和行为结果也可以记录恶意软件类型相对应的能够表明恶意类型与之映射关系的其他参数,本实施例对此不加以限制。

应当理解的是,所述api(applicationprogramminginterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

本实施例通过对目标样本进行解析,获得第一api函数集,对所述目标样本进行测试,获得第二api函数集和行为结果,根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中找到查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型,避免了现有技术中单独采用静态特征码分类和动态行为特征分类时容易误报漏报,分类准确率低的问题,显著提升了恶意软件的分类准确性和用户体验。

进一步的,如图6所示,基于本发明一种恶意软件分类方法第一实施例提出本发明一种恶意软件分类方法第二实施例,在本实施例中,所述方法包括以下步骤:

s11、接收所述目标样本,对所述目标样本进行解密脱壳,解析所述目标样本的文件结构,识别所述文件结构中的api函数,作为所述第一api函数集;

在具体实现中,在接收所述目标样本后,一般目标样本被加壳和混淆过,因此有必要对所述目标样本进行脱壳解密,解析文件结构,识别文件结构中的api函数和功能代码,将识别分析出的api函数和功能代码进行集中,以形成所述第一api函数集。

s21、接收所述目标样本,对所述目标样本进行执行测试,识别所述目标样本在执行过程中调用的api函数和行为结果,作为所述第二api函数和行为结果。

需要说明的是,步骤s11和s21是对目标样本的详细处理过程,两者并不存在先后顺序,可以是先进行步骤s11再进行步骤s21,也可以是先进行步骤s21再进行步骤s11,当然,也可以是同时进行,本发明对此不加以限制。

在具体实现中,对所述目标样本进行监测和记录在执行过程中调用的api函数和行为结果,将监测记录的api函数和行为结果进行集中,作为所述第二api函数和行为结果。可理解的是,所述恶意软件类型库是记录常见和不常见的恶意软件类型和相对应的api函数和行为结果的集合,当然,除了记录api函数和行为结果也可以记录恶意软件类型相对应的能够表明恶意类型与之映射关系的其他参数,本实施例对此不加以限制。

s31、从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api及目标行为结果对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

可以理解的是,从所述第一api函数集和所述第二api函数集中选取重合度最高的api作为目标api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,是指对所述目标样本进行扫描,识别出api和行为结果,在待处理对象中直接在第一api函数集和第二api函数集中选取重合度最高的api作为目标api,从所述行为结果中查找与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api及目标行为结果对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

需要说明的是,由于在所述恶意软件库中预先设置各恶意软件类型对应的api和行为结果,因此,将目标api及目标行为结果与恶意软件类型库中的api和行为结果进行比较时,能够从不同的api和行为结果中找到与所述目标api及目标行为结果一样的api和行为结果,则此时对应的恶意软件类型能够确认就是所述目标样本的类型;

在具体实现中,所述重合度最高的api是指所述第一api函数集与所述第二api函数集中最相似的api;所述最相似的api可以是所述第一api函数集与所述第二api函数集中api函数代码重叠部分最多的api,当然,所述最相似的api也可以是将第一api函数集与第二api函数集进行聚类分析后api代表的元素距离最近的点(该元素不仅限于api,还能是其他能够体现相应恶意软件类型对应的属性特征点);当然,本实施例中还可通过其他方式选出目标api,本实施例对此不加以限制。当选出目标api和目标行为结果之后,将所述目标api和目标行为结果在恶意软件类型库中查找与之对应的类型,则所述与所述目标api和目标行为结果对应的恶意软件类型为所述目标样本的类型,根据所述类型输出最终分类结果。

应当理解的是,通过步骤s31,将所述目标api及目标行为结果一起与恶意软件类型库中的api和行为结果进行对比,能够节省大量的操作步骤,可以较好的提高寻找目标样本的恶意软件类型的效率,并且通过静态扫描和动态扫描相互验证得到的所述目标api及目标行为结果,相比于现有技术单方面通过静态扫描或动态扫描得到的恶意软件类型,具有较高的准确性,方便了用户操作,显著提升了用户体验。

进一步的,如图7所示,基于本发明一种恶意软件分类方法第一实施例提出本发明一种恶意软件分类方法第三实施例,在本实施例中,所述方法包括以下步骤:

s11、接收所述目标样本,对所述目标样本进行解密脱壳,解析所述目标样本的文件结构,识别所述文件结构中的api函数,作为所述第一api函数集;

在具体实现中,在接收所述目标样本后,一般目标样本被加壳和混淆过,因此有必要对所述目标样本进行脱壳解密,解析文件结构,识别文件结构中的api函数和功能代码,将识别分析出的api函数和功能代码进行集中,以形成所述第一api函数集。

s21、接收所述目标样本,对所述目标样本进行执行测试,识别所述目标样本在执行过程中调用的api函数和行为结果,作为所述第二api函数和行为结果。

需要说明的是,步骤s11和s21是对目标样本的详细处理过程,两者并不存在先后顺序,可以是先进行步骤s11再进行步骤s21,也可以是先进行步骤s21再进行步骤s11,当然,也可以是同时进行,本发明对此不加以限制。

在具体实现中,对所述目标样本进行监测和记录在执行过程中调用的api函数和行为结果,将监测记录的api函数和行为结果进行集中,作为所述第二api函数和行为结果。

可理解的是,所述恶意软件类型库是记录常见和不常见的恶意软件类型和相对应的api函数和行为结果的集合,当然,除了记录api函数和行为结果也可以记录恶意软件类型相对应的能够表明恶意类型与之映射关系的其他参数,本实施例对此不加以限制。

s32、从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。

应理解的是,从所述第一api函数集和所述第二api函数集中选取重合度最高的api,将所述重合度最高的api作为目标api,从所述行为结果中获取与所述目标api对应的目标行为结果是指对所述目标样本进行扫描,识别出api和行为结果,从所述行为结果中获取与所述目标api对应的目标行为结果,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。若匹配不成功,则重新在恶意软件类型库中寻找与重合度最高的api相对应的其他恶意软件类型,或者重新对目标样本进行静态扫描和动态扫描,获取新的api和行为结果。

需要说明的是,由于在所述恶意软件库中预先设置各恶意软件类型对应的api和行为结果,因此,将目标api及目标行为结果与恶意软件类型库中的api和行为结果进行比较时,能够从不同的api和行为结果中找到与所述目标api及目标行为结果一样的api和行为结果,则此时对应的恶意软件类型能够确认就是所述目标样本的类型;

在具体实现中,所述重合度最高的api是指所述第一api函数集与所述第二api函数集中最相似的api;所述最相似的api可以是所述第一api函数集与所述第二api函数集中api函数代码重叠部分最多的api,当然,所述最相似的api也可以是将第一api函数集与第二api函数集进行聚类分析后api代表的元素距离最近的点(该元素不仅限于api,还能是其他能够体现相应恶意软件类型对应的属性特征点);当然,本实施例中还可通过其他方式选出目标api,本实施例对此不加以限制。当选出目标api和目标行为结果之后,将所述目标api和目标行为结果在恶意软件类型库中查找与之对应的类型,则所述与所述目标api和目标行为结果对应的恶意软件类型为所述目标样本的类型,根据所述类型输出最终分类结果。

应当理解的是,通过步骤s32,先确定目标api,从所述恶意软件类型库中查找与所述目标api对应的恶意软件类型,获取与所述恶意软件类型对应的当前行为结果;再从所述行为结果中获取与所述目标api对应的目标行为结果,将所述当前行为结果与目标行为结果进行匹配,若匹配成功,则将查找到的恶意软件类型作为所述目标样本的类型。这样能够在通过api寻找到恶意软件类型的基础上再通过行为结果进一步验证该恶意软件类型是否是所述目标样本的类型,能够提高识别目标样本恶意软件类型的准确率,可以更加准确的确定所述目标样本的恶意软件类型,相比于现有技术单方面通过静态扫描或动态扫描得到的恶意软件类型,具有较高的准确性,方便了用户操作,显著提升了用户体验。

进一步的,如图8所示,基于本发明一种恶意软件分类方法第一实施例提出本发明一种恶意软件分类方法第四实施例,在本实施例中,所述方法包括以下步骤:

s001、接收恶意软件的待处理样本,对所述待处理样本进行特征库扫描,生成第一分类结果;

在具体实现中,可以利用yara或者杀毒软件引擎扫描所述特征库,并将所述特征库与所述待处理样本进行比对,生成所述第一分类结果;yara是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具,使用yara可以基于文本或二进制模式创建恶意软件家族描述信息,当然也可以是其他匹配信息。yara的每一条描述或规则都由一系列字符串和一个布尔型表达式构成,并阐述其逻辑。yara规则可以提交给文件或在运行进程,以帮助研究人员识别其是否属于某个已进行规则描述的恶意软件家族。

可以理解的是,利用yara或者杀毒软件引擎扫描所述特征库,生成所述第一分类结果,当然也可以利用对恶意软件分析的服务器对所述待处理样本进行扫描;例如,virustotal是一个免费的病毒,蠕虫,木马和各种恶意软件分析服务器。可以针对可疑文件和网址进行快速检测。文件上传后会先计算哈希值,与已检测的文件数据库中的数据进行对比,如果已经存在,则会提示选择是重新分析还是查看最近一次分析结果。分析报告中,包括病毒检出率(51个杀毒引擎查杀)文件详细信息(文件头,字符串,环境变量,运行时库),文件操作,网络操作(http、dns、tcp、udp),进程操作,互斥体,hook,窗口操作;另外,anubis(阿努比斯)也是一个恶意软件分析的服务器,可以提交url和文件进行分析,分析报告可以选择html、xml、pdf和txt等格式,报告中包含了测试文件及其释放文件的文件操作,网络操作,注册表操作等信息,并且对这些操作进行了细分。

s002、对所述待处理样本进行虚拟执行,记录所述待处理样本的行为并与所述特征库进行比对,生成第二分类结果;

需要说明的是,所述特征库可以是从众多常见和不常见的恶意软件中提取出的特征码,将这些特征码集合构成的特征库,也可以是其他能够表征恶意软件特征的元素集合,本实施例对此不加以限制。

在具体实现中,可以利用行为诱导插件触发所述待处理样本的行为可以用沙盒设备执行样本,分析恶意软件的行为,诱导插件触发释放恶意软件的行为,沙盒设备监视记录恶意软件的行为,生成所述第二分类结果。其中,所述行为包括所述待处理样本的文件行为、注册表行为、网络行为及执行顺序。

需要说明的是,所述沙盒是指在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限。利用沙盒中附加的文件屏蔽功能对入口点现有的发现的可疑文件进行集中分析。沙盒会将现有的运行程序进行限制,并让这些限制变成一座“监狱”,在其中一个标签页运作的恶意软件,将无法窃取信用卡号码、干扰鼠标运作,或告诉系统在启动时运行某个程序,并且恶意软件会在标签页关闭时立即中止。

应当理解的是,所述行为包括所述待处理样本的文件行为、注册表行为、网络行为及执行顺序,还可以包括进程行为等在执行所述待处理样本时可能出现的动态行为特征,本实施例对此不加以限制。

s003、将所述第一分类结果与所述第二分类结果的分类结果进行比对;

应理解的是,将所述第一分类结果与所述第二分类结果的分类结果进行比对,当所述分类结果一致时,将当前分类结果作为最终分类结果;根据所述最终分类结果输出所述待处理样本的类型;其中,根据所述最终分类结果输出所述待处理样本的类型的输出方式可以以报告的形式,或者以显示在对应映射关系分类表上相应的位置上,或者以各种分类颜色对应的位置上,或者以不同数目的显示灯显示各种分类等方式输出所述待处理样本的类型。所述类型对应的恶意软件包括office宏病毒、手机骷髅病毒、中华吸血鬼病毒、熊猫烧香病毒、冰河木马、qq尾巴木马、特洛伊木马、盗号木马、广告软件、蠕虫病毒、后门程序等常见或稀有的恶意程序类型。

s004、若所述分类结果一致,则将当前分类结果作为最终分类结果,根据所述最终分类结果输出所述待处理样本的类型;

可以理解的是,所述第一分类结果与所述第二分类结果的分类结果具有唯一性,即所述第一分类结果与所述第二分类结果的分类结果是单独的一个类型,而并非一个集合,当所述第一分类结果的类型与所述第二分类结果的类型相同时,确定该类型为正确的结果,输出这个正确的结果及相应的参数以形成分类报告。

s005、若所述分类结果不一致,则将所述待处理样本作为目标样本;

需要说明的是,当所述第一分类结果的类型与所述第二分类结果的类型不同时,则找到与所述第一分类结果及所述第二分类结果相对应的待处理扫描样本,将该所述待处理样本作为目标样本,以进行后续操作处理。

s006、对所述目标样本进行解析,获得第一api函数集;

在具体实现中,可以是在接收所述目标样本后,对所述目标样本进行解密脱壳,解析所述目标样本的文件结构,识别所述文件结构中的api函数和功能代码,作为所述第一api函数集;

s007、对所述目标样本进行测试,获得第二api函数集和行为结果;

在具体实现中,可以是在接收所述目标样本后,对所述目标样本进行执行测试,识别所述目标样本在执行过程中调用的api函数和行为结果,作为所述第二api函数和行为结果。

s008、根据所述第一api函数集、所述第二api函数集和行为结果在恶意软件类型库中查找对应的恶意软件类型,并将查找到的恶意软件类型作为所述目标样本的类型。

本实施例通过静态扫描将所述待处理样本进行特征库扫描,生成第一分类结果,通过动态扫描对所述待处理样本进行虚拟执行,记录所述待处理样本的行为并与所述特征库进行比对,生成第二分类结果,将所述第一分类结果与所述第二分类结果的分类结果进行比对,当所述分类结果不一致时,则将所述待处理样本作为目标样本,当然也可以通过其他方式确定所述目标样本,本实施例对此不加以限制;在本实施例中,通过静态扫描和动态扫描相互验证,相互结合的方式能够有效提高恶意软件类型确认的准确率,相比于现有技术中单独采用静态扫描或者动态扫描的方式,有更高的准确性,更加适合用户的需求,提升了用户体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本实施例各个实施例所述的方法。

以上仅为本实施例的优选实施例,并非因此限制本实施例的专利范围,凡是利用本实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本实施例的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1