一种检测方法和装置与流程

文档序号:11156199阅读:391来源:国知局
一种检测方法和装置与制造工艺

本发明涉及通信领域,更具体的说,涉及一种检测方法和装置。



背景技术:

随着信息化的发展,办公软件的使用率越来越高,尤其是办公室office软件。由于office软件使用的普遍性,黑客常常将恶意的宏代码嵌入到office文件中,然后通过邮件等方式传播恶意的宏代码,此种方法攻击性强,已经对我国的金融行业、能源行业、政府、电力行业等造成了一定的恶劣影响,所以检测office文件中是否携带有恶意的宏代码变得至关重要。

现有技术中,采用特征码和人工规则的识别方法来检测office文件中是否携带有恶意的宏代码,特征码和人工规则的识别方法是指人工规定一些特定的恶意的字节,然后在office文件中的特定位置,查看是否包含有人工规定的那些恶意的字节,如果包含有人工规定的那些恶意的字节,就证明包含有恶意的宏代码,即该office文件是恶意文件。

在计算机中存储宏代码时,存储的是其二进制的形式,即恶意的字节是恶意的宏代码的二进制的形式。黑客常常在保证该恶意的字节对应的具有字符串形式的宏代码不变的前提下,通过修改恶意的字节的形式,如采用加一减一法修改恶意的字节的形式,来使形式改变后的恶意的字节不被检测到。此时,由于恶意的字节的形式已经被改变,采用特征码和人工规则的识别方法,来检测人工规定的那些恶意的字节时,就不会检测到形式改变后的恶意的字节,进而就不能判断office文件是否是恶意文件。

因此,亟需一种能够在恶意的字节的形式改变后,仍能够判断office文件是否是恶意文件的方法。



技术实现要素:

有鉴于此,本发明提供一种检测方法和装置,以解决采用特征码和人工规则的识别方法来检测office文件中是否携带有恶意的宏代码时,在恶意的字节的形式改变时,不能判断office文件是否是恶意文件的问题。

为解决上述技术问题,本发明采用了如下技术方案:

一种检测方法,包括:

当获取的目标文件为办公office文件时,提取所述目标文件中具有二进制形式的宏代码;

将所述具有二进制形式的宏代码解码成具有字符串形式的宏代码;

判断所述具有字符串形式的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

当判断出所述具有字符串形式的宏代码中包含有所述预设的恶意特征中的至少一个恶意特征,分析所述具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值;

根据与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,计算得到所述目标文件为恶意文件的概率;

根据所述概率,判断所述目标文件是否是恶意文件。

优选地,所述提取所述目标文件中具有二进制形式的宏代码,包括:

查找所述目标文件中的对象连接与嵌入OLE对象;

提取所述OLE对象中包含的所述具有二进制形式的宏代码。

优选地,所述将所述具有二进制形式的宏代码解码成具有字符串形式的宏代码后,还包括:

删除所述具有字符串形式的宏代码中包含的注释,得到不含注释的宏代码;

相应的,所述判断所述具有字符串形式的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

当判断出所述具有字符串形式的宏代码中包含有所述预设的恶意特征中的至少一个恶意特征,分析所述具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,包括:

判断所述不含注释的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

当判断出所述不含注释的宏代码中包含有所述预设的恶意特征中的至少一个恶意特征,分析所述不含注释的宏代码中包含的每一个恶意特征的内容,得到与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值。

优选地,所述预设的恶意特征包括名称特征、恶意行为特征或数据加密特征;

相应的,所述分析所述具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,包括:

当所述具有字符串形式的宏代码中包含所述名称特征时,根据与所述具有字符串形式的宏代码中包含的所述名称特征中的每一个名称相匹配的字符串为正常字符串的概率,得到与所述名称特征对应的、能够表示所述名称特征的恶意程度的数值;

当所述具有字符串形式的宏代码中包含所述恶意行为特征时,根据所述具有字符串形式的宏代码中包含的所述恶意行为特征中的每个特征出现的次数,得到与所述恶意行为特征对应的、能够表示所述恶意行为特征的恶意程度的数值;

当所述具有字符串形式的宏代码中包含所述数据加密特征时,根据所述具有字符串形式的宏代码中包含的所述数据加密特征中的每个特征出现的次数,得到与所述数据加密特征对应的、能够表示所述数据加密特征的恶意程度的数值。

优选地,所述根据与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,计算得到所述目标文件为恶意文件的概率,包括:

根据与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,采用支持向量机算法,计算得到所述目标文件为恶意文件的概率。

一种检测装置,包括:

提取单元,用于当获取的目标文件为办公office文件时,提取所述目标文件中具有二进制形式的宏代码;

解码单元,用于将所述具有二进制形式的宏代码解码成具有字符串形式的宏代码;

第一判断单元,用于判断所述具有字符串形式的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

分析单元,用于当所述第一判断单元判断出所述具有字符串形式的宏代码中包含有所述预设的恶意特征中的至少一个恶意特征,分析所述具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值;

计算单元,用于根据与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,计算得到所述目标文件为恶意文件的概率;

第二判断单元,用于根据所述概率,判断所述目标文件是否是恶意文件。

优选地,所述提取单元包括:

查找单元,用于查找所述目标文件中的对象连接与嵌入OLE对象;

提取子单元,用于提取所述OLE对象中包含的所述具有二进制形式的宏代码。

优选地,还包括:

删除单元,用于删除所述具有字符串形式的宏代码中包含的注释,得到不含注释的宏代码;

相应的,所述第一判断单元判断所述具有字符串形式的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征,具体用于:

判断所述不含注释的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

当所述第一判断单元判断出所述不含注释的宏代码中包含有所述预设的恶意特征中的至少一个恶意特征时,所述分析单元分析所述具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,具体用于:

分析所述不含注释的宏代码中包含的每一个恶意特征的内容,得到与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值。

优选地,

当所述预设的恶意特征包括名称特征、恶意行为特征或数据加密特征时,

所述分析单元包括:

第一分析单元,用于当所述第一判断单元判断出所述具有字符串形式的宏代码中包含所述名称特征时,根据与所述具有字符串形式的宏代码中包含的所述名称特征中的每一个名称相匹配的字符串为正常字符串的概率,得到与所述名称特征对应的、能够表示所述名称特征的恶意程度的数值;

第二分析单元,用于当所述第一判断单元判断出所述具有字符串形式的宏代码中包含所述恶意行为特征时,根据所述具有字符串形式的宏代码中包含的所述恶意行为特征中的每个特征出现的次数,得到与所述恶意行为特征对应的、能够表示所述恶意行为特征的恶意程度的数值;

第三分析单元,用于当所述第一判断单元判断出所述具有字符串形式的宏代码中包含所述数据加密特征时,根据所述具有字符串形式的宏代码中包含的所述数据加密特征中的每个特征出现的次数,得到与所述数据加密特征对应的、能够表示所述数据加密特征的恶意程度的数值。

优选地,所述计算单元包括:

计算子单元,用于根据与所述每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,采用支持向量机算法,计算得到所述目标文件为恶意文件的概率。

相较于现有技术,本发明具有以下有益效果:

本发明提供了一种检测方法和装置,本发明中没有像现有技术中一样,直接查找是否具有恶意的字节,即没有直接对二进制形式的宏代码进行分析,而是将具有二进制形式的宏代码解码成具有字符串形式的宏代码,进而对具有字符串形式的宏代码进行特征分析,由于现有技术中形式改变后的恶意的字节对应的具有字符串形式的宏代码是不变的,采用本发明中的方案就能够避免恶意的字节的形式改变后,采用特征码和人工规则的识别方法来检测office文件中是否携带有恶意的宏代码时,不能判断office文件是否是恶意文件的问题。

附图说明

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

图1为本发明提供的一种检测方法的方法流程图;

图2为本发明提供的另一种检测方法的方法流程图;

图3为本发明提供的一种检测装置的结构示意图;

图4为本发明提供的另一种检测装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种检测方法,参照图1,包括:

S101、提取目标文件中具有二进制形式的宏代码;

本发明是检测办公office文件是否是恶意文件,所以在提取具有二进制形式的宏代码时,首先判断获取的目标文件是否是office文件,当获取的目标文件为office文件时,提取目标文件中具有二进制形式的宏代码。具体的,判断目标文件是否是office文件的方法是,采用文件格式识别方法识别目标文件的文件类型,分析该文件类型是否是office文件的文件类型。

需要说明的一点是,计算机存储数据时,都是存储的数据的二进制形式,所以此时获得的是具有二进制形式的宏代码。

具体的,提取目标文件中具有二进制形式的宏代码,包括:

查找目标文件中的对象连接与嵌入OLE对象;

提取OLE对象中包含的具有二进制形式的宏代码。

具有二进制形式的宏代码存储在OLE对象中,所以首先找到目标文件中的OLE对象,然后在OLE对象中找到具有二进制形式的宏代码,并将具有二进制形式的宏代码提取出来,单独存放。

S102、将具有二进制形式的宏代码解码成具有字符串形式的宏代码;

具体的,根据office文件结构的技术文档,将具有二进制形式的宏代码解码成具有字符串形式的宏代码。

S103、判断具有字符串形式的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

其中,预设的恶意特征包括名称特征、恶意行为特征或数据加密特征。

S104、分析具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值;

需要说明的是,当判断出具有字符串形式的宏代码中包含有预设的恶意特征中的至少一个恶意特征,分析具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值。当判断出具有字符串形式的宏代码中没有包含有预设的恶意特征中的任何一个特征,则证明该目标文件不是恶意文件。

具体的,分析具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,包括:

当具有字符串形式的宏代码中包含名称特征时,根据与具有字符串形式的宏代码中包含的名称特征中的每一个名称相匹配的字符串为正常字符串的概率,得到与名称特征对应的、能够表示名称特征的恶意程度的数值;

具体的,名称特征包括类名、常量名、变量名、过程名、形参名和对象名,在具有字符串形式的宏代码分别查找与每个名称对应的字符串,根据马尔科夫链算法分析该字符串是否是正常的字符串,当分析出该字符串为正常字符串的概率大于预设值时,证明该字符串为正常字符串。根据这种方法来得到与每一个名称相匹配的字符串中正常字符串所占的比例。

以名称为类名为例,在具有字符串形式的宏代码中查找与类名相对应的字符串,假设查找出两个字符串,此时分析这两个字符串是否是正常的字符串,假设这两个字符串中的一个为正常的字符串、另一个为不正常的字符串,则类名中正常字符串的占比为0.5。

同理,采用同样的方法分析得到常量名、变量名、过程名、形参名和对象名中正常字符串的占比,将各个占比相加,即为名称特征对应的、能够表示名称特征的恶意程度的数值。其中,这个数值为小数。

当具有字符串形式的宏代码中包含恶意行为特征时,根据具有字符串形式的宏代码中包含的恶意行为特征中的每个特征出现的次数,得到与恶意行为特征对应的、能够表示恶意行为特征的恶意程度的数值;

具体的,恶意行为特征包括但不限于自动执行行为、恶意系统行为、可疑网络行为、逃避沙箱行为和虚拟机检测行为。具体的,自动执行行为包括自动打开、自动运行、自动保存、自动关闭、自动退出等行为,恶意系统行为包括修改系统环境变量、修改内核文件、修改注册表文件、将恶意代码注入到其他进程、建立恶意进程和运行命令行外壳程序和脚本环境PowerShell命令等,可疑网络行为包括连接网络之间互连的协议IP地址、连接与统一资源定位符URL对应的地址、向邮箱发送文件等。

其中,恶意行为特征中包含的每一个小特征,如自动打开、自动关闭、修改内核文件等,都对应有相应的字符串,如自动打开对应的字符串为autoopen。

在具有字符串形式的宏代码中,查找是否包含有上述每一个小特征对应的字符串,当查找出有其中的一个小特征对应的字符串时,将该字符串出现的次数乘以该字符串对应的分值,即得到该特征对应的一个分值。根据这种方法,能够得到每一个小特征对应的分值,将每个小特征对应的分值相加,即能得到恶意行为特征对应的、能够表示恶意行为特征的恶意程度的数值。其中,该数值为整数。

举例来说,当想要知道自动打开这个特征对应的数值,在具有字符串形式的宏代码中查找autoopen出现的次数,假设autoopen出现一次对应的分值为五分,在查找的过程中,发现autoopen出现了四次,那么自动打开这个特征对应的分值就是二十。

当具有字符串形式的宏代码中包含数据加密特征时,根据具有字符串形式的宏代码中包含的数据加密特征中的每个特征出现的次数,得到与数据加密特征对应的、能够表示数据加密特征的恶意程度的数值。

具体的,数据加密特征包括十六进制加密、8Bit字节代码的编码方式之一base64加密和拼接加密等特征。同恶意行为特征一样,每个小特征都对应有一个字符串。

在具有字符串形式的宏代码中,查找是否包含有上述每一个小特征对应的字符串,当查找出有其中的一个小特征对应的字符串时,将该字符串出现的次数乘以该字符串对应的分值,即得到该特征对应的一个分值。根据这种方法,能够得到每一个小特征对应的分值,将每个小特征对应的分值相加,即能得到数据加密特征对应的、能够表示恶意行为特征的恶意程度的数值。其中,该数值为整数。

需要说明的是,字符串对应的分值的大小,与字符串的长短有关,若字符串的长度越长,则其对应的分值越高,若字符串的长度越短,则其对应的分值越小。

S105、根据与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,计算得到目标文件为恶意文件的概率;

具体的,根据与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,计算得到目标文件为恶意文件的概率,包括:

根据与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,采用支持向量机算法,计算得到目标文件为恶意文件的概率。

其中,支持向量机算法中赋予了每个恶意特征对应的分量,将每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值与该恶意特征对应的分量根据预设的规则进行计算,就能够得到目标文件为恶意文件的概率。

S106、根据概率,判断目标文件是否是恶意文件。

具体的,当计算出的概率大于50%时,就证明该目标文件为恶意文件。

本实施例提供了一种检测方法,本实施例中没有像现有技术中一样,直接查找是否具有恶意的字节,即没有直接对二进制形式的宏代码进行分析,而是将具有二进制形式的宏代码解码成具有字符串形式的宏代码,进而对具有字符串形式的宏代码进行特征分析,由于现有技术中形式改变后的恶意的字节对应的具有字符串形式的宏代码是不变的,采用本发明中的方案就能够避免恶意的字节的形式改变后,采用特征码和人工规则的识别方法来检测office文件中是否携带有恶意的宏代码时,不能判断office文件是否是恶意文件的问题。

可选的,本发明的另一实施例中,参照图2,将具有二进制形式的宏代码解码成具有字符串形式的宏代码后,还包括:

S203、删除具有字符串形式的宏代码中包含的注释,得到不含注释的宏代码;

为了能够使编程人员更了解宏代码,才添加有注释部分,注释部分只起到解释说明的作用。

相应的,步骤S103变成步骤S204:

判断不含注释的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

步骤S104变成步骤S205:

分析不含注释的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值;

具体的,当判断出不含注释的宏代码中包含有预设的恶意特征中的至少一个恶意特征,分析不含注释的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值。

本实施例中,删除具有字符串形式的宏代码中包含的注释,得到不含注释的宏代码,能够更加方便后期分析宏代码。

本发明的另一实施例中提供了一种检测装置,参照图3,包括:

提取单元101,用于当获取的目标文件为办公office文件时,提取目标文件中具有二进制形式的宏代码;

解码单元102,用于将具有二进制形式的宏代码解码成具有字符串形式的宏代码;

第一判断单元103,用于判断具有字符串形式的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

分析单元104,用于当第一判断单元103判断出具有字符串形式的宏代码中包含有预设的恶意特征中的至少一个恶意特征,分析具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值;

计算单元105,用于根据与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,计算得到目标文件为恶意文件的概率;

第二判断单元106,用于根据概率,判断目标文件是否是恶意文件。

可选的,本发明的另一实施例中,提取单元包括:

查找单元,用于查找目标文件中的对象连接与嵌入OLE对象;

提取子单元,用于提取OLE对象中包含的具有二进制形式的宏代码。

计算单元包括:

计算子单元,用于根据与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,采用支持向量机算法,计算得到目标文件为恶意文件的概率。

此外,当预设的恶意特征包括名称特征、恶意行为特征或数据加密特征时,

分析单元包括:

第一分析单元,用于当第一判断单元103判断出具有字符串形式的宏代码中包含名称特征时,根据与具有字符串形式的宏代码中包含的名称特征中的每一个名称相匹配的字符串为正常字符串的概率,得到与名称特征对应的、能够表示名称特征的恶意程度的数值;

第二分析单元,用于当第一判断单元103判断出具有字符串形式的宏代码中包含恶意行为特征时,根据具有字符串形式的宏代码中包含的恶意行为特征中的每个特征出现的次数,得到与恶意行为特征对应的、能够表示恶意行为特征的恶意程度的数值;

第三分析单元,用于当第一判断单元103判断出具有字符串形式的宏代码中包含数据加密特征时,根据具有字符串形式的宏代码中包含的数据加密特征中的每个特征出现的次数,得到与数据加密特征对应的、能够表示数据加密特征的恶意程度的数值。

本实施例提供了一种检测装置,本实施例中没有像现有技术中一样,直接查找是否具有恶意的字节,即没有直接对二进制形式的宏代码进行分析,而是将具有二进制形式的宏代码解码成具有字符串形式的宏代码,进而对具有字符串形式的宏代码进行特征分析,由于现有技术中形式改变后的恶意的字节对应的具有字符串形式的宏代码是不变的,采用本发明中的方案就能够避免恶意的字节的形式改变后,采用特征码和人工规则的识别方法来检测office文件中是否携带有恶意的宏代码时,不能判断office文件是否是恶意文件的问题。

需要说明的是,本实施例中的各个单元的工作过程请参照图1对应的实施例中的内容,在此不再赘述。

可选的,本发明的另一实施例中,参照图4,检测装置还包括:

删除单元107,用于删除具有字符串形式的宏代码中包含的注释,得到不含注释的宏代码;

相应的,第一判断单元103判断具有字符串形式的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征,具体用于:

判断不含注释的宏代码中是否包含有预设的恶意特征中的至少一个恶意特征;

当第一判断单元103判断出不含注释的宏代码中包含有预设的恶意特征中的至少一个恶意特征时,分析单元104分析具有字符串形式的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值,具体用于:

分析不含注释的宏代码中包含的每一个恶意特征的内容,得到与每一个恶意特征对应的、能够表示该恶意特征的恶意程度的数值。

本实施例中,删除具有字符串形式的宏代码中包含的注释,得到不含注释的宏代码,能够更加方便后期分析宏代码。

需要说明的是,本实施例中的各个单元的工作过程请参照图2对应的实施例中的内容,在此不再赘述。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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