一种恶意样本检测方法及装置与流程

文档序号:12916058阅读:435来源:国知局
一种恶意样本检测方法及装置与流程

本发明涉及信息安全技术领域,特别是涉及一种恶意样本检测方法及装置。



背景技术:

随着信息技术、互联网技术的快速发展,信息系统的规模和复杂度逐渐增加,不可避免的会存在漏洞、缺陷,使得网络空间安全形势严峻,出于对政治、商业和经济利益获取的目的,定向攻击、apt(advancedpersistentthreat,高级持续威胁)攻击的事件频发,对国家、企业、组织和个人的利益构成了严重威胁。

在这类定向攻击、apt攻击等高级威胁中,典型特征是以挂马样本作为初始攻击向量,比如以邮件附件、网址url等形式向攻击目标发送挂马样本,诱骗攻击目标在其计算机系统上打开挂马样本,从而控制目标计算机系统。

针对挂马样本等恶意样本的检测,目前常用的一种方法是,通过在特定的一个沙箱环境中或者攻击目标的真实计算机系统中监控应用程序的运行情况,判断应用程序是否发生异常,从而判定是否受到恶意样本攻击。

这种方法需要建立在对特定攻击知识,如对特定应用程序、特定漏洞攻击模式十分清楚的前提下,缺乏对新的漏洞攻击模式的自适应性。而且是在单一的运行环境中分析样本的行为异常,单一的运行环境在让恶意样本触发应用程序漏洞、释放攻击行为方面具有很大局限性,而如挂马样本等恶意样本的这种严重依赖运行环境来释放恶意行为的攻击方式,如果其无法在单一的运行环境中触发漏洞,则将无法被检测到,检测准确性较低,通用性较差。



技术实现要素:

本发明的目的是提供一种恶意样本检测方法及装置,以提高恶意样本检测准确性,具有较强的通用性。

为解决上述技术问题,本发明提供如下技术方案:

一种恶意样本检测方法,包括:

接收对目标样本的检测请求;

根据所述目标样本的类型,确定目标应用程序;

基于所述目标应用程序的多个版本和多个操作系统,构建多个运行环境;

根据所述目标样本在各个运行环境中的运行行为,确定所述目标样本是否为恶意样本。

在本发明的一种具体实施方式中,所述根据所述目标样本在各个运行环境中的运行行为,确定所述目标样本是否为恶意样本,包括:

根据所述目标样本在各个运行环境中的运行行为,确定所述目标样本是否存在行为差异;

如果是,则确定所述目标样本为恶意样本。

在本发明的一种具体实施方式中,所述根据所述目标样本在各个运行环境中的运行行为,确定所述目标样本是否存在行为差异,包括:

根据所述目标样本在各个运行环境中的运行行为,确定各运行行为包含的敏感信息,所述敏感信息包括设定的敏感操作、各个敏感操作出现的时序及各个敏感操作对应的操作对象;

根据各运行行为包含的敏感信息,确定所述目标样本是否存在行为差异。

在本发明的一种具体实施方式中,所述敏感操作包括文件创建、内存属性修改、内存映射、内存节创建、进程创建、网络访问中的至少一种。

在本发明的一种具体实施方式中,所述根据所述目标样本在各个运行环境中的运行行为,确定所述目标样本是否为恶意样本,包括:

根据所述目标样本在各个运行环境中的运行行为,确定各运行行为中是否包含设定的高危操作;

如果所述目标样本在至少一个运行环境中的运行行为包含所述高危操作,则确定所述目标样本为恶意样本。

一种恶意样本检测装置,包括:

检测请求接收模块,用于接收对目标样本的检测请求;

应用程序确定模块,用于根据所述目标样本的类型,确定目标应用程序;

运行环境构建模块,用于基于所述目标应用程序的多个版本和多个操作系统,构建多个运行环境;

恶意样本确定模块,用于根据所述目标样本在各个运行环境中的运行行为,确定所述目标样本是否为恶意样本。

在本发明的一种具体实施方式中,所述恶意样本确定模块,包括:

行为差异确定子模块,用于根据所述目标样本在各个运行环境中的运行行为,确定所述目标样本是否存在行为差异,如果是,则触发恶意样本确定子模块;

所述恶意样本确定子模块,用于确定所述目标样本为恶意样本。

在本发明的一种具体实施方式中,所述行为差异确定子模块,具体用于:

根据所述目标样本在各个运行环境中的运行行为,确定各运行行为包含的敏感信息,所述敏感信息包括设定的敏感操作、各个敏感操作出现的时序及各个敏感操作对应的操作对象;

根据各运行行为包含的敏感信息,确定所述目标样本是否存在行为差异。

在本发明的一种具体实施方式中,所述敏感操作包括文件创建、内存属性修改、内存映射、内存节创建、进程创建、网络访问中的至少一种。

在本发明的一种具体实施方式中,所述恶意样本确定模块,具体用于:

根据所述目标样本在各个运行环境中的运行行为,确定各运行行为中是否包含设定的高危操作;

如果所述目标样本在至少一个运行环境中的运行行为包含所述高危操作,则确定所述目标样本为恶意样本。

应用本发明实施例所提供的技术方案,在接收到对目标样本的检测请求时,可以根据目标样本的类型,确定目标应用程序,基于目标应用程序的多个版本和多个操作系统,可以构建多个运行环境,根据目标样本在各个运行环境中的运行行为,可以确定目标样本是否为恶意样本。目标应用程序的不同版本之间、不同操作系统之间均存在差异,基于目标应用程序的不同版本和不同操作系统构建的多个运行环境的安全性也存在显著差异,目标样本在具有差异性的运行环境中运行所表现出的成功触发漏洞的行为、实施有效攻击的可能性和触发漏洞失败的行为等具有差异性,根据目标样本在各个运行环境中的运行行为,确定目标样本是否为恶意样本,提高了恶意样本检测准确性,而且无需依赖特定攻击知识,如特定样本或特定漏洞攻击代码的特征,具有较强的通用性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中恶意样本检测方法的一种实施流程图;

图2为本发明实施例中恶意样本检测方法的另一种实施流程图;

图3为本发明实施例中一种恶意样本检测装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的核心是提供一种恶意样本检测方法,该方法可以应用于检测平台。检测平台在接收到对目标样本的检测请求时,根据目标样本的类型,确定目标应用程序,基于目标应用程序的多个版本和多个操作系统,构建多个运行环境,根据目标样本在各个运行环境中的运行行为,确定目标样本是否为恶意样本。如挂马样本等恶意样本对运行环境有较强的依赖性,其攻击成功与否依赖于特定的环境配置,尤其是应用程序版本和操作系统版本。本发明实施例根据目标样本在各个运行环境中的运行行为,确定目标样本是否为恶意样本,提高了对恶意样本的检测准确性,尤其对于攻击代码未知或者攻击代码变形、加密的挂马样本的检测效果更佳。

参见图1所示,为本发明实施例所提供的一种恶意样本检测方法的实施流程图,该方法可以包括以下步骤:

s110:接收对目标样本的检测请求。

在实际应用中,企事业单位的信息系统多是由多个终端构成,根据对信息系统安全的实际需求,在终端运行过程中,如果需要对某个样本进行检测,则可以向检测平台发送相应的检测请求,或者个人终端也可以根据实际需要向检测平台发送相应的检测请求。

检测平台接收到对目标样本的检测请求后,可以继续执行步骤s120的操作。

s120:根据目标样本的类型,确定目标应用程序。

可以理解的是,如果目标样本为恶意样本,则不同类型的恶意样本攻击的应用程序可能不同。根据目标样本的类型,可以确定目标应用程序。确定的目标应用程序为可以解析或打开目标样本的应用程序,其可能成为目标样本攻击对象。考虑到操作系统默认是通过文件后缀名来运行打开文件的应用程序的,故可以通过目标样本的后缀名,确定目标样本的类型,进而根据目标样本的类型,确定关联的目标应用程序。比如,对于网址url、超链接这类样本,可以确定目标应用程序为浏览器,对于.doc后缀类样本,可以确定目标应用程序为office办公软件。

s130:基于目标应用程序的多个版本和多个操作系统,构建多个运行环境。

在步骤s120确定目标应用程序后,可以基于目标应用程序的多个版本和多个操作系统,构建多个运行环境。在实际应用中,可以先确定目标应用程序的多个版本,如选择最新版本、最流行版本和较旧版本等,再确定与目标应用程序的各个版本兼容的不同类型或者不同版本的操作系统,如选择最新的且安全性较强的版本、主流版本且未打补丁版本,较旧版本且未打补丁版本等,然后将目标应用程序的多个版本和多个操作系统进行组合,构建多个运行环境,构建的多个运行环境具有差异性。

比如,目标应用程序为应用程序a,其具有两个不同版本,分别为a1和a2,操作系统有两类:操作系统b和操作系统c,其中,操作系统b具有两个版本,分别为b1和b2,应用程序a的两个版本在操作系统b的两个版本和操作系统c上均可运行。基于上述目标应用程序的多个版本和多个操作系统,构建的多个运行环境可以是以下组合中的两个或多个:b1、a1;b1、a2;b2、a1;b2、a2;c、a1;c、a2。

在构建的每个运行环境中的目标应用程序应能够正确处理与目标样本类型相同的样本文件。

在实际应用中,基于目标应用程序的多个版本和多个操作系统构建的多个运行环境可以无需完全覆盖所有版本对应的所有组合情形,可以选择具有显著差异、最少两个以上的版本组合。优选的,构建的运行环境中可以包含与攻击目标主要的计算机系统环境相似的运行环境。比如,检测平台所对应的信息系统中的终端均为操作系统b,则对运行环境的构建可以仅基于操作系统a和应用程序a的不同版本进行。这样,可以节省检测时间,提高检测效率。

在本发明实施例中,各个运行环境可以通过具备沙箱功能的虚拟机实现。沙箱是一种运行程序的隔离、受限的环境。其关键特性包括行为监控和环境快速恢复。当程序在沙箱中运行时,沙箱能够通过拦截函数、拦截系统调用等方式监控其行为,如进程创建、文件操作、内存操作等行为,并生成行为日志,以供技术人员分析使用。通过虚拟化或沙箱的实现方式实现与正常系统环境的隔离和快速恢复。典型的沙箱有cuckoosandbox、sandboxie等。

s140:根据目标样本在各个运行环境中的运行行为,确定目标样本是否为恶意样本。

在步骤s130,基于目标应用程序的多个版本和多个操作系统,构建了多个运行环境。针对每个运行环境,对该运行环境进行初始化后,在该运行环境中使用目标应用程序相应版本运行目标样本,可以得到目标样本在该运行环境中的运行行为。在实际应用中,可以通过代码注入、函数拦截或系统函数调用等方式实现对目标应用程序和特定进程的漏洞利用等相关操作的监控,并记录运行日志。通过获取目标样本在各个运行环境中的运行日志,得到相应的运行行为。

根据目标样本在各个运行环境中的运行行为,可以确定目标样本是否为恶意样本。

在本发明的一种具体实施方式中,步骤s140可以包括以下步骤:

步骤一:根据目标样本在各个运行环境中的运行行为,确定目标样本是否存在行为差异,如果是,则执行步骤二;

步骤二:确定目标样本为恶意样本。

在本发明实施例中,目标样本在各运行环境中具有相应的运行行为,目标样本在不同运行环境中的运行行为具有可侦测到的差异。根据目标样本在各个运行环境中的运行行为,可以确定目标样本是否存在行为差异。对某个运行环境而言,该运行环境中相应应用程序运行目标样本,目标样本可以执行各种操作,比如,网络访问、文件创建等,这些操作的相关信息构成目标样本在该运行环境中的运行行为。

将目标样本在各个运行环境中的运行行为进行对比,可以确定目标样本在各个运行环境中的运行行为是否存在行为差异。

具体的,可以根据目标样本在各个运行环境中的运行行为,确定各运行行为包含的敏感信息,根据各运行行为包含的敏感信息,确定目标样本是否存在行为差异。

敏感信息包括设定的敏感操作、各个敏感操作出现的时序及各个敏感操作对应的操作对象。敏感操作可以为文件创建、内存属性修改、内存映射、内存节创建、进程创建、网络访问中的至少一种。当然,根据实际情况或者先验知识还可以设定其他更多的操作为敏感操作,本发明实施例对此不做限制。敏感操作可以通过对特定函数或系统调用的访问、特定路径文件的访问(读/写)、特定注册表项的访问、网络资源的访问等来判断。

对目标样本在各个运行环境中的运行行为进行识别和分析,可以确定各运行行为包含的敏感信息。具体的,即为确定各运行行为中包含的敏感操作、包含的各敏感操作的执行时序、包含的各敏感操作的操作对象等。

根据各运行行为包含的敏感信息,可以确定目标样本是否存在行为差异。具体的,可以按照以下步骤确定目标样本是否存在行为差异:

步骤1:确定各运行行为中是否包含一样的敏感操作,如果是,则执行步骤2,否则,执行步骤5;

步骤2:进一步确定各敏感操作的执行时序是否一致,如果是,则执行步骤3,否则,执行步骤5;

步骤3:进一步确定各敏感操作的操作对象是否一致,如果是,则执行步骤4,否则,执行步骤5;

步骤4:确定目标样本不存在行为差异;

步骤5:确定目标样本存在行为差异。

在实际应用中,也可以在确定各运行行为中包含一样的敏感操作后,先进一步确定各敏感操作的操作对象是否一致,如果一致,则进一步确定各敏感操作的执行时序是否一致。

上述确定目标样本是否存在行为差异的方法具有一定的鲁棒性和模糊匹配能力。

在确定目标样本存在行为差异时,表明目标样本已在特定运行环境中触发、并成功利用应用程序漏洞,进而可以确定目标样本为恶意样本,实现恶意样本的检测。

在本发明的另一种具体实施方式中,步骤s140可以包括以下步骤:

第一个步骤:根据目标样本在各个运行环境中的运行行为,确定各运行行为中是否包含设定的高危操作;

第二个步骤:如果目标样本在至少一个运行环境中的运行行为包含高危操作,则确定目标样本为恶意样本。

在本发明实施例中,可以预先设定哪些操作为高危操作,如将应用程序崩溃重启且创建新的子进程设定为高危操作。在实际应用中,可以根据实际情况和先验知识设定高危操作。

如果目标样本在至少一个运行环境中的运行行为包含高危操作,则可以确定目标样本已在特定运行环境中触发、并成功利用应用程序漏洞,进而可以确定目标样本为恶意样本,实现恶意样本的检测。

在本发明的具体实施方式中,获得目标样本在各个运行环境中的运行行为后,可以先根据目标样本在各个运行环境中的运行行为,确定各运行行为中是否包含设定的高危操作。如果目标样本在至少一个运行环境中的运行行为包含高危操作,则可以确定目标样本为恶意样本。如果目标样本在各个运行环境中的运行行为均不包含高危操作,则可以进一步根据目标样本在各个运行环境中的运行行为,确定目标样本是否存在行为差异,如果存在,则确定目标样本为恶意样本,如果不存在,则可以确定目标样本非恶意样本。

或者,在获得目标样本在各个运行环境中的运行行为后,可以先根据目标样本在各个运行环境中的运行行为,确定目标样本是否存在行为差异,如果存在,则确定目标样本为恶意样本,如果不存在,则可以进一步根据目标样本在各个运行环境中的运行行为,确定各运行行为中是否包含设定的高危操作,如果目标样本在至少一个运行环境中的运行行为包含高危操作,则确定目标样本为恶意样本,否则,确定目标样本非恶意样本。

构建多个差异化运行环境,如果目标样本为恶意样本,则可以使得目标样本能够在其中一些运行环境中触发漏洞、释放恶意攻击行为,与现有技术中在单一运行环境中进行检测的方法相比,可以提升捕获样本成功触发漏洞及其释放恶意行为的可能性。而且,对目标样本的运行行为进行多维度关联分析,提高了检测准确性。

在确定目标样本为恶意样本后,可以输出提示信息,以提示运维人员对信息系统进行及时排查,避免损失。

另外,在确定目标样本为恶意样本后,可以对构建的运行环境进行还原,以在再次接收到对其他样本的检测请求时,进行相应运行环境的构建。

为便于理解,以图2为例,对本发明实施例进行说明。

在接收到对目标样本的检测请求后,根据目标样本的类型,确定目标应用程序,通过运行环境管理单元基于目标应用程序的多个版本和多个操作系统,构建多个运行环境。如构建运行环境组a和运行环境组b,运行环境组a中包含运行环境a-1、……、运行环境a-n,运行环境组b中包含运行环境b-1、……、运行环境b-n,运行环境管理单元对各运行环境进行管理,如初始化各运行环境和分析后的环境复原等。每个运行环境中配置有程序行为监控单元,用于对目标应用程序和操作系统的预设行为进行监控、记录,形成行为日志。

通过运行环境选择单元根据目标样本的类型选择运行环境,将目标样本部署到各运行环境中运行。

通过行为差异分析单元获得行为日志,进行行为差异性分析。进而通过判定单元根据运行行为,确定目标样本是否为恶意样本。

应用本发明实施例所提供的方法,在接收到对目标样本的检测请求时,可以根据目标样本的类型,确定目标应用程序,基于目标应用程序的多个版本和多个操作系统,可以构建多个运行环境,根据目标样本在各个运行环境中的运行行为,可以确定目标样本是否为恶意样本。目标应用程序的不同版本之间、不同操作系统之间均存在差异,基于目标应用程序的不同版本和不同操作系统构建的多个运行环境的安全性也存在显著差异,目标样本在具有差异性的运行环境中运行所表现出的成功触发漏洞的行为、实施有效攻击的可能性和触发漏洞失败的行为等具有差异性,根据目标样本在各个运行环境中的运行行为,确定目标样本是否为恶意样本,提高了恶意样本检测准确性,而且无需依赖特定攻击知识,如特定样本或特定漏洞攻击代码的特征,具有较强的通用性。

相应于上面的方法实施例,本发明实施例还提供了一种恶意样本检测装置,下文描述的一种恶意样本检测装置与上文描述的一种恶意样本检测方法可相互对应参照。

参见图3所示,该装置包括以下模块:

检测请求接收模块310,用于接收对目标样本的检测请求;

应用程序确定模块320,用于根据目标样本的类型,确定目标应用程序;

运行环境构建模块330,用于基于目标应用程序的多个版本和多个操作系统,构建多个运行环境;

恶意样本确定模块340,用于根据目标样本在各个运行环境中的运行行为,确定目标样本是否为恶意样本。

应用本发明实施例所提供的装置,在接收到对目标样本的检测请求时,可以根据目标样本的类型,确定目标应用程序,基于目标应用程序的多个版本和多个操作系统,可以构建多个运行环境,根据目标样本在各个运行环境中的运行行为,可以确定目标样本是否为恶意样本。目标应用程序的不同版本之间、不同操作系统之间均存在差异,基于目标应用程序的不同版本和不同操作系统构建的多个运行环境的安全性也存在显著差异,目标样本在具有差异性的运行环境中运行所表现出的成功触发漏洞的行为、实施有效攻击的可能性和触发漏洞失败的行为等具有差异性,根据目标样本在各个运行环境中的运行行为,确定目标样本是否为恶意样本,提高了恶意样本检测准确性,而且无需依赖特定攻击知识,如特定样本或特定漏洞攻击代码的特征,具有较强的通用性。

在本发明的一种具体实施方式中,恶意样本确定模块340,包括:

行为差异确定子模块,用于根据目标样本在各个运行环境中的运行行为,确定目标样本是否存在行为差异,如果是,则触发恶意样本确定子模块;

恶意样本确定子模块,用于确定目标样本为恶意样本。

在本发明的一种具体实施方式中,行为差异确定子模块,具体用于:

根据目标样本在各个运行环境中的运行行为,确定各运行行为包含的敏感信息,敏感信息包括设定的敏感操作、各个敏感操作出现的时序及各个敏感操作对应的操作对象;

根据各运行行为包含的敏感信息,确定目标样本是否存在行为差异。

在本发明的一种具体实施方式中,敏感操作包括文件创建、内存属性修改、内存映射、内存节创建、进程创建、网络访问中的至少一种。

在本发明的一种具体实施方式中,恶意样本确定模块340,具体用于:

根据目标样本在各个运行环境中的运行行为,确定各运行行为中是否包含设定的高危操作;

如果目标样本在至少一个运行环境中的运行行为包含高危操作,则确定目标样本为恶意样本。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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