一种宏病毒查杀的方法和装置制造方法

文档序号:6513392阅读:190来源:国知局
一种宏病毒查杀的方法和装置制造方法
【专利摘要】本发明公开了一种宏病毒查杀的方法和装置,其中的方法具体包括:安全设备通过计算设备的处理器解析待查杀文档的文档结构;所述文档结构包括文档的数据流对应的目录结构;依据解析得到的文档结构从所述待查杀文档中提取宏代码;将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;依据匹配结果判别所述待查杀文档是否感染宏病毒;依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理。本发明能够提高未知宏病毒的检测能力,具备较好的反病毒效果,且能够全面地从各种待查杀文档中提取宏代码,以及对感染宏病毒的各种待查杀文档进行修复处理。
【专利说明】一种宏病毒查杀的方法和装置
【技术领域】
[0001]本发明涉及数据安全【技术领域】,具体涉及一种宏病毒查杀的方法和装置。
【背景技术】
[0002]随着计算机的普及和移动互联网的发展,网络信息时代已经来临。病毒作为信息的一种形式,具有繁殖、感染、破坏等特性,威胁着用户的信息安全。计算机文档,即WORD,EXCEL、PPT等文字编辑软件产生的文件,被人们广泛使用,而宏病毒作为专用于破坏计算机文档信息安全的新型病毒,逐渐走进人们的视线。
[0003]由于宏病毒藏于数据文件内,且其使用的脚本语法灵活多变,完成一个功能有很多种写法,故识别一个文件是否有宏病毒非常困难。
[0004]现有的反病毒软件所采用的反病毒方法几乎都是依赖于病毒特征码。由于计算机病毒通常都具有各自的身份等特征,当一种计算机病毒出现后,首先找到该病毒具有的特征,依据该特征对该特征所表征的病毒进行搜寻和处理;即现有技术对于已知宏病毒有一定的查杀能力。
[0005]但是,由于宏病毒感染、发作在先,反毒在后;而宏语言是一种脚本,稍作修改即可产生变种,甚至可以传播过程中修改自身,每传播一次就变化一次;故现有技术很难跟上宏病毒变化的速度,对未知宏病毒基本无查杀能力,反病毒效果较差。

【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种宏病毒查杀的方法和装置。
[0007]依据本发明的一个方面,提供了一种宏病毒查杀的方法,包括:
[0008]安全设备通过计算设备的处理器解析待查杀文档的文档结构;所述文档结构包括文档的数据流对应的目录结构;
[0009]依据解析得到的文档结构从所述待查杀文档中提取宏代码;
[0010]将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;
[0011]依据匹配结果判别所述待查杀文档是否感染宏病毒;
[0012]依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理。
[0013]可选地,所述待查杀文档为复合文档、WORD文档或者EXCEL文档;
[0014]则所述解析待查杀文档的文档结构的步骤,包括:解析得到待查杀文档的树形目录结构;
[0015]则所述依据解析得到的文档结构从所述待查杀文档中提取宏代码的步骤,包括:
[0016]遍历所述树形目录结构中的每一个目录项;
[0017]将每一个目录项的名称与特定宏目录的名称进行匹配;
[0018]针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0019]所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,包括:
[0020]修改所述感染宏病毒的待查杀文档中宏病毒对应匹配成功的目录项的名称;
[0021]针对所述匹配成功的目录项,将其宏代码清除;
[0022]针对所述匹配成功的目录项,将其删除或改名。
[0023]可选地,所述待查杀文档为EXCEL文档;
[0024]则所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,还包括:
[0025]在所述EXCEL文档感染宏病毒时,修改其workbook目录项的流数据中的描述字段,以不影响所述EXCEL文档的正常打开。。
[0026]可选地,所述待查杀文档为PPT文档;
[0027]则所述解析待查杀文档的文档结构的步骤,包括:
[0028]解析得到PPT文档的目录结构;所述PPT文档的目录结构包括POWERPOINTDOCUMENT目录项;
[0029]解析所述POWERPOINT DOCUMENT目录项下的流数据,并从解析结果中查找复合对象结构;
[0030]对所述复合对象结构中存放的数据进行解压缩,得到相应的解压缩数据;所述解压缩后数据对应的文档包括如下文档中的一项或多项:PPT文档和PPT内嵌文档,所述PPT内嵌文档包括复合文档、WORD文档和EXCEL文档中的一项或多项;
[0031]以所述解压缩后数据对应的文档作为待查杀文档,解析得到相应的目录结构;
[0032]所述依据解析得到的文档结构从所述待查杀文档中提取宏代码的步骤,包括:
[0033]遍历所述待查杀文档的目录结构中的每一个目录项;
[0034]将每一个目录项的名称与特定宏目录的名称进行匹配;
[0035]针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0036]所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,包括:
[0037]在所述解压缩后数据对应的文档包括PPT内嵌文档时,依据解析得到PPT内嵌文档的文档结构对感染宏病毒的PPT内嵌文档进行修复处理,将修复处理后PPT内嵌文档压缩,并填充到相应的复合对象结构中;和/或
[0038]在所述解压缩后数据对应的文档包括PPT文档时,减小复合对象结构中的length字段,并添加一新结构,其中,所述减小和添加的新结构所对应的长度为感染宏病毒的PPT文档的宏代码对应的长度。
[0039]可选地,所述待查杀文档为0FFICE07文档;
[0040]则所述解析待查杀文档的文档结构的步骤,包括:
[0041]解压缩0FFICE07文档对应的数据,得到相应的解压缩后数据;所述解压缩后数据包括内嵌目录;
[0042]以所述内嵌目录下的文档作为待查杀文档,解析得到相应的树形目录结构;[0043]则所述依据解析得到的文档结构从所述待查杀文档中提取宏代码的步骤,包括:
[0044]遍历所述树形目录结构中的每一个目录项;
[0045]将每一个目录项的名称与特定宏目录的名称进行匹配;
[0046]针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0047]所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,包括:
[0048]修复感染宏病毒的所述内嵌目录下的文档,并在所述内嵌目录下的文档修复成功后将所述内嵌文档和所述解压缩后数据中其它数据进行压缩得到修复后的0FFICE07文档。
[0049]可选地,所述解压后数据还包括0FFICE07宏文档和内容字段标记文档;
[0050]则所述解析待查杀文档的文档结构的步骤,还包括:以所述0FFICE07宏文档作为待查杀文档,解析得到相应的树形目录结构;
[0051]则所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,还包括:
[0052]在所述0FFICE07宏文档感染宏病毒时,删除所述0FFICE07宏文档,解析得到所述内容字段标记文档的内容,并将所述内容字段标记文档中引用所述0FFICE07宏文档的相应内容删除。
[0053]可选地,所述特定宏目录的名称包括:VBA_PROJECT_CUR和/或Macros。
[0054]可选地,通过如下步骤构造所述行为代码库:
[0055]收集实现固定的宏病毒行为所需的行为代码;
[0056]将所述行为代码保存至行为代码库;
[0057]其中,所述收集实现固定的宏病毒行为所需的行为代码的步骤,进一步包括:
[0058]收集各种计算机文档的宏病毒样本;
[0059]解析所述宏病毒样本的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构;
[0060]依据解析得到的文档结构从所述宏病毒样本中提取宏代码;
[0061]依据宏代码的语法,对所述宏病毒样本的宏代码的语义进行分析,从中提取相应的实现固定的宏病毒行为所需的行为代码。
[0062]根据本发明的另一方面,提供了一种宏病毒查杀的装置,该装置应用于安全设备,包括:
[0063]解析模块,用于通过计算设备的处理器解析待查杀文档的文档结构;所述文档结构包括文档的数据流对应的目录结构;
[0064]提取模块,用于依据解析得到的文档结构从所述待查杀文档中提取宏代码;
[0065]匹配模块,用于将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;
[0066]判别模块,用于依据匹配结果判别所述待查杀文档是否感染宏病毒;及
[0067]修复处理模块,用于依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理。[0068]可选地,所述待查杀文档为复合文档、WORD文档或者EXCEL文档;
[0069]则所述解析模块包括:用于解析得到待查杀文档的树形目录结构的第一解析子模块;
[0070]则所述提取模块包括:
[0071]第一遍历子模块,用于遍历所述树形目录结构中的每一个目录项;
[0072]第一匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0073]第一读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0074]所述修复处理模块包括:
[0075]第一修改子模块,用于修改所述感染宏病毒的待查杀文档中宏病毒对应匹配成功的目录项的名称;
[0076]填充子模块针对所述匹配成功的目录项,将其宏代码清除;及
[0077]第二修改子模块,用于针对所述匹配成功的目录项,将其删除或改名。
[0078]可选地,所述待查杀文档为EXCEL文档;
[0079]则修复处理模块还包括:
[0080]第三修改子模块,用于在所述EXCEL文档感染宏病毒时,修改其workbook目录项的流数据中的描述字段,以不影响所述EXCEL文档的正常打开。
[0081]可选地,所述待查杀文档为PPT文档;
[0082]则所述解析模块包括:
[0083]第二解析子模块,用于解析得到PPT文档的目录结构;所述PPT文档的目录结构包括 POWERPOINT DOCUMENT 目录项;
[0084]第三解析子模块,用于解析所述POWERPOINT DOCUMENT目录项下的流数据,并从解析结果中查找复合对象结构;
[0085]解压缩子模块,用于对所述复合对象结构中存放的数据进行解压缩,得到相应的解压缩数据;所述解压缩后数据对应的文档包括如下文档中的一项或多项=PPT文档和PPT内嵌文档,所述PPT内嵌文档包括复合文档、WORD文档和EXCEL文档中的一项或多项;
[0086]第四解析子模块,用于以所述解压缩后数据对应的文档作为待查杀文档,解析得到相应的目录结构;
[0087]所述提取模块包括:
[0088]第二遍历子模块,用于遍历所述待查杀文档的目录结构中的每一个目录项;
[0089]第二匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0090]第二读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0091]所述修复处理模块包括:
[0092]第一修复子模块,用于在所述解压缩后数据对应的文档包括PPT内嵌文档时,依据解析得到PPT内嵌文档的文档结构对感染宏病毒的PPT内嵌文档进行修复处理,将修复处理后PPT内嵌文档压缩,并填充到相应的复合对象结构中;和/或
[0093]第二修复子模块,用于在所述解压缩后数据对应的文档包括PPT文档时,减小复合对象结构中的length字段,并添加一新结构;其中,所述减小和添加的新结构所对应的长度为感染宏病毒的PPT文档的宏代码对应的长度。
[0094]可选地,所述待查杀文档为0FFICE07文档;
[0095]则所述解析模块包括:
[0096]解压缩子模块,用于解压缩0FFICE07文档对应的数据,得到相应的解压缩后数据;所述解压缩后数据包括内嵌目录;
[0097]第四解析子模块,用于以所述内嵌目录下的文档作为待查杀文档,解析得到相应的树形目录结构;
[0098]则所述提取模块包括:
[0099]第三遍历子模块,用于遍历所述待查杀文档的目录结构中的每一个目录项;
[0100]第三匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0101]第三读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0102]所述修复处理模块包括:
[0103]修复压缩子模块,用于修复感染宏病毒的所述内嵌目录下的文档,并在所述内嵌目录下的文档修复成功后将所述内嵌文档和所述解压缩后数据中其它数据进行压缩得到修复后的0FFICE07文档。
[0104]可选地,所述解压后数据还包括0FFICE07宏文档和内容字段标记文档;
[0105]则所述解析模块还包括:用于以所述0FFICE07宏文档作为待查杀文档,解析得到相应的树形目录结构的第五解析子模块
[0106]则所述修复处理模块还包括:
[0107]删除子模块,用于在所述内嵌目录下的0FFICE07宏文档感染宏病毒时,删除所述0FFICE07宏文档,解析得到所述内容字段标记文档的内容,并将所述内容字段标记文档中引用所述0FFICE07宏文档的相应内容删除。
[0108]可选地,所述特定宏目录的名称包括:VBA_PROJECT_CUR和/或Macros。
[0109]可选地,所述装置还包括:用于构造所述行为代码库的构造模块;
[0110]所述构造模块包括:
[0111]收集子模块,用于收集实现固定的宏病毒行为所需的行为代码;
[0112]保存子模块,用于将所述行为代码保存至行为代码库;
[0113]其中,所述收集子模块进一步包括:
[0114]样本收集单元,用于收集各种计算机文档的宏病毒样本;
[0115]样本解析单元,用于解析所述宏病毒样本的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构;
[0116]样本提取单元,用于依据解析得到的文档结构从所述宏病毒样本中提取宏代码;及
[0117]分析提取单元,用于依据宏代码的语法,对所述宏病毒样本的宏代码的语义进行分析,从中提取相应的实现固定的宏病毒行为所需的行为代码。
[0118]根据本发明的一种宏病毒查杀的方法和装置取得了如下有益效果:
[0119]本发明实施例基于“实现固定的宏病毒行为所需的行为代码是相对固定的”这一规律进行宏病毒的查杀;具体地,在针对计算机文档进行宏病毒的查杀过程中,将提取的宏代码与行为代码库中的行为代码进行匹配,依据匹配结果判别所述待查杀文档是否感染宏病毒;由于无论已知宏病毒还是未知宏病毒都会遵循上述规律,也即无论宏病毒如何变化及变化的速度如何,这一规律都是不变的,故本发明实施例能够对未知宏病毒具备一定的检测能力,因此能够提高未知宏病毒的检测能力,且具备较好的反病毒效果;
[0120]同时,本发明实施例解析待查杀文档的文档结构,依据解析得到的文档结构从所述待查杀文档中提取宏代码,以及,依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理,所述文档结构具体可以包括文档的数据流对应的目录结构;由于文档的数据流对应的目录结构为计算机文档的通用特征,故本发明实施例的技术方案能够适用于所有计算机文档的查杀,也即,本发明实施例能够全面地从各种待查杀文档中提取宏代码,以及对感染宏病毒的各种待查杀文档进行修复处理。
[0121]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】

【附图说明】
[0122]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0123]图1示出了根据本发明一个实施例的宏病毒查杀的方法的流程图;
[0124]图2示出了根据本发明一个实施例的复合文档的文档结构示意图;
[0125]图3示出了根据本发明一个实施例的宏病毒查杀的方法的流程图;
[0126]图4示出了根据本发明一个实施例的宏病毒查杀的方法的流程图;
[0127]图5示出了根据本发明一个实施例的宏病毒查杀的方法的流程图;以及
[0128]图6示出了根据本发明一个实施例的宏病毒查杀的装置的结构图。
【具体实施方式】
[0129]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0130]本发明实施例基于“实现固定的宏病毒行为所需的行为代码是相对固定的”这一规律进行宏病毒的查杀;具体地,由于使用宏语言编写的宏病毒主要作用于计算机文档的宏代码中,故上述行为代码可用于表示实现固定的宏病毒行为所需的宏代码,这样,在针对计算机文档进行宏病毒的查杀过程中,将提取的宏代码与行为代码库中的行为代码进行匹配,依据匹配结果判别所述待查杀文档是否感染宏病毒;由于无论已知宏病毒还是未知宏病毒都会遵循上述规律,也即无论宏病毒如何变化及变化的速度如何,故本发明实施例能够对未知宏病毒具备一定的检测能力,因此能够提高未知宏病毒的检测能力,且具备较好的反病毒效果。
[0131]参照图1,示出了根据本发明一个实施例的宏病毒查杀的方法的流程图,具体可以包括:
[0132]步骤101、安全设备通过计算设备的处理器解析待查杀文档的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构;
[0133]步骤102、依据解析得到的文档结构从所述待查杀文档中提取宏代码;
[0134]在具体实施中,计算机文档的类型较多,具体可以包括WORD,EXCEL、PPT、复合文档等类型的文档,其中,每种类型的文档又包括03、07等版本,一种类型的文档中又内嵌有其它类型的文档;因此,如何全面地从待查杀文档中提取宏代码为本领域的一个难题。
[0135]本发明实施例解析待查杀文档的文档结构,依据解析得到的文档结构从所述待查杀文档中提取宏代码;所述文档结构具体可以包括文档的数据流对应的目录结构。
[0136]以复合文档为例,复合文档具体可以包括若干数据流,这些数据流又存储在不同的仓库里;数据流和仓库的命名规则与文件系统相似,同一个仓库下的数据流及仓库不能重名,不同仓库下可以有同名的流;每个复合文档都有一个根仓库;而目录是一种内部控制流,由一系列目录入口组成,每一个目录入口都指向复合文档的一个仓库或数据流。
[0137]参照图2,示出了本发明一个实施例的复合文档的文档结构示意图,其中,目录将每个仓库的直接成员(仓库或数据流)放在一个独立的树形目录结构中。
[0138]图2中树形目录结构中每个节点(根节点和叶节点)均有对应的名称,故在特定宏目录的名称已知的情况下,将树形目录结构中的每一个目录项的名称与特定宏目录的名称进行字符串的匹配,即可获取复合文档中的宏目录;而针对匹配成功的目录项,读取子目录项的流数据,并从中解压缩出对应的宏代码。
[0139]对于WORD文档、EXCEL文档等文档而言,由于其文档结构与复合文档的文档结构类似,故可基于同样的原理进行宏代码的提取。对于PPT文档等除WORD文档、EXCEL文档和复合文档之外的计算机文档而言,可以基于其文档机构进行宏代码的提取。
[0140]总之,由于文档的数据流对应的目录结构为计算机文档的通用特征,故本发明实施例依据解析得到的文档结构从待查杀文档中提取宏代码,能够适用于各种类型、各种版本的所有计算机文档,也即,本发明实施例能够全面地从待查杀文档中提取宏代码。
[0141]步骤103、将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;
[0142]本发明实施例中,行为代码库就是用于存储实现固定的宏病毒行为所需的行为代码的一个容器,其可用各种数据结构实现。作为行为代码库的存储内容,行为代码也即实现固定的宏病毒行为所需的行为代码,为简便起见,下面的行为代码均可表示实现固定的宏病毒行为所需的行为代码。
[0143]在实际应用中,可以通过如下步骤构造所述行为代码库:收集实现固定的宏病毒行为所需的行为代码;将所述行为代码保存至行为代码库。并且,如果不断地收集行为代码,并保存至行为代码库,即可得到不断更新的行为代码库。
[0144]在本发明实施例的一种优选实施例中,所述收集实现固定的宏病毒行为所需的行为代码的步骤,可以进一步包括:
[0145]子步骤Al、收集各种计算机文档的宏病毒样本;
[0146]本发明实施例中,各种计算机文档的宏病毒样本应满足如下条件:1、含有宏代码;
2、被确认为宏病毒。在实际应用中,可以不断收集上述表现形式的宏病毒样本。[0147]通常可以按宏病毒所在的宿主(也即计算机文档),将宏病毒样本划分为寄存在WORD中的(只有VBA脚本的)和寄存在EXCEL中的(其中又包括VBA脚本的,和存在工作表中的Macro4.0类型的)宏病毒样本等种类,也即可以按照类别进行宏病毒样本的收集;当然上述宏病毒样本的种类并不作为本申请的应用限制。
[0148]在实际应用中,对于反病毒软件扫描出的、确定感染宏病毒的文档,可以直接将其作为宏病毒样本。
[0149]在本发明实施例的一种示例中,还可以通过用户反馈的方式收集宏病毒样本。例如,用户可以将怀疑感染宏病毒但反病毒软件扫描不出的文档,并上传至服务器,这里的上传的途径可以是反病毒软件的客户端,服务器可以指反病毒软件的服务器;这样,服务器能够收集全部或部分客户端上传的宏病毒样本,并对其进行分析。当然,用户也可以通过其它途径反馈宏病毒样本,例如,Web端的上传接口等等,本发明实施例对具体的上传途径不加以限制。
[0150]子步骤A2、解析所述宏病毒样本的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构;
[0151]子步骤A3、依据解析得到的文档结构从所述宏病毒样本中提取宏代码;
[0152]对于依据解析得到的文档结构从宏病毒样本中提取宏代码的过程而言,由于其与上述依据解析得到的文档结构从待查杀文档中提取宏代码的过程类似,故相互参照即可,在此不作赘述。
[0153]由于文档的数据流对应的目录结构为计算机文档的通用特征,故本发明实施例依据解析得到的文档结构从宏病毒样本中提取宏代码,能够适用于所有计算机文档的宏病毒样本,也即,本发明实施例能够全面地收集所有计算机文档实现固定的宏病毒行为所需的行为代码,以进行各种待查杀文档的 查杀。
[0154]子步骤A4、依据宏代码的语法,对所述宏病毒样本的宏代码的语义进行分析,从中提取相应的实现固定的宏病毒行为所需的行为代码。
[0155]欲从所述宏病毒样本的宏代码中提取相应的实现固定的宏病毒行为所需的行为代码,需要首先获取特定的宏病毒行为,因为软件开发中代码就是实现一定功能的代码,如果获取了具体的宏病毒行为,那么就能够找到用于实现特定的宏病毒行为这个功能所需的行为代码。
[0156]本发明实施例发明人经过对大量Microsoft Off ice的宏病毒样本的研究,得到如下特定的宏病毒行为:
[0157]1、修改注册表的行为,目的:降低安全等级设置或将释放的可执行文件写入开机启动项等;
[0158]2、传播行为,其利用感染模版进行传播,其中,不同的Microsoftoffice会有不同的感染模版,例如WindowS7系统,默认情况下
[0159]WORD 的感染模板文件是 C: \Users\【用户名】\AppData\Roaming\Microsoft\Templates\normal.dot
[0160]EXCEL 的感染模板目录:C:\Users\【用户名】\AppData\Roaming\Microsoft\ExceI\xlstart 和 Excel 安装目录 \off ice 11 \xlstart
[0161]3、感染行为:用户打开安全文件,自己往安全文件里面复制.给用户邮件联系人发送包括病毒文件的邮件等
[0162]4、发作时行为,包括:
[0163]4.1、在某个时间段弹窗;
[0164]4.2、重复复制工作表,影响软件正常使用
[0165]4.3、释放可执行文件,具体可以包括:创建文件、写文件、执行文件等等。
[0166]需要说明的是,上述特定的宏病毒行为是针对Microsoft Office研究得到的,其只是作为本发明实施例的一种示例,并不作为本发明实施例的实施限制。
[0167]在具体实现中,可以针对所述宏病毒样本的宏代码,依据其语法对其语义进行分析,从中提取相应的实现固定的宏病毒行为所需的行为代码。例如,在本发明实施例的一种应用示例中,所述分析过程可以包括:遍历所述宏病毒样本的宏代码,逐函数、逐语句或者逐变量进行分析,看其是否用于实现特定的宏病毒行为这个功能,若是,则可以将其提取出来,并进行下一函数、语句或变量的分析,否则进行下一函数、语句或变量的分析。总之,本领域技术人员可以使用各种技术或策略,判断函数、语句或变量是否用于实现特定的宏病毒行为这个功能,本发明实施例对具体的判断方式不加以限制。
[0168]在经过分析和提取后,本发明实施例的行为代码具体可以包括函数名、函数变量名或者函数语句。
[0169]在本发明实施例的一种优选实施例中,本发明实施例的行为代码可为字符串形式。这样,在文件宏病毒的检测过程中,将待查杀文档的宏代码与行为代码库中的行为代码进行匹配的过程就涉及字符串的处理操作。在本发明实施例的一种应用示例中,可以读取待查杀文档的宏代码,得到一个大的字符串,然后在这个大的字符串中查找给定字符串,其中给定字符串就是所述行为代码库中存储的行为代码,若查找成功,则表示匹配成功,若查找失败,则进行下一给定字符串的查找,直至所述行为代码库中存储的给定字符串查找完毕。
[0170]可以理解,本领域技术人员可以根据不断出现的宏病毒样本,对实现固定的宏病毒行为所需的行为代码进行增加、删除、修改等更新操作。
[0171]步骤104、依据匹配结果判别所述待查杀文档是否感染宏病毒;
[0172]在本发明实施例的一种优选实施例中,所述将待查杀文档的宏代码与行为代码库中的行为代码进行匹配的步骤,可以进一步包括:
[0173]在所述待查杀文档的宏代码中存在匹配成功的行为代码时得到匹配成功的匹配结果,以及,在所述待查杀文档的宏代码中不存在匹配成功的行为代码时,得到匹配失败的匹配结果;
[0174]则所述依据匹配结果判别所述待查杀文档是否感染宏病毒的步骤,可以进一步包括:
[0175]步骤B1、在所述匹配结果为匹配失败时,判别所述待查杀文档未感染宏病毒;
[0176]步骤B2、在所述匹配结果为匹配成功时,依据所述待查杀文档的宏代码中匹配成功的行为代码,判别所述待查杀文档是否感染宏病毒。
[0177]在本发明实施例的另一种优选实施例中,所述步骤B2依据所述待查杀文档的宏代码中匹配成功的行为代码,判别所述待查杀文档是否感染宏病毒的步骤,可以进一步包括:[0178]判断所述待查杀文档的宏代码中匹配成功的行为代码是否符合预设的危险性条件,若是,则判别所述待查杀文档感染宏病毒,否则,判别所述待查杀文档未感染宏病毒。
[0179]在本发明实施例的再一种优选实施例中,所述预设的危险性条件具体可以包括如下条件中的一项或多项:
[0180]危险性条件Cl、所述待查杀文档的宏代码中匹配成功的行为代码的危险系数超过预设的危险系数阈值;
[0181]关于如何获取待查杀文档的宏代码中匹配成功的行为代码的危险系数,在实际中,可针对所述行为代码库中各行为代码预设相应的危险系数;或者,为了减轻设置的工作量,可对所述行为代码库中各行为代码进行分类,并针对每个类别预设相应的危险系数。
[0182]可以理解,本领域技术人员采用的分类依据可以是多样化的,在申请的一种优选实施例中,可以病毒行为的种类作为分类依据,例如,针对“修改注册表”的行为对应类别预设的危险系数为10,“传播行为”对应类别的危险系数为5,“感染行为”对应类别的危险系数为8等等。
[0183]参照上例,由于病毒行为有可能被细分,故可针对被细分的病毒行为预设相应的危险系数,例如,在感染行为这个大类别中,可以针对“复制工作表”的行为对应类别预设的危险系数为5,可以针对“执行文件”的行为对应类别预设的危险系数为10,等等。
[0184]当然,上述只是作为示例;实际上,本领域技术人员得到的病毒行为是各种各样的,并且可以根据各种病毒行为的危险程度,分别对相应的类别预设不同的危险系数,本发明实施例对具体的危险系数不加以限制。
[0185]在实际应用中,所述待查杀文档的宏代码中匹配成功的行为代码可能不止一个,此时,可以对多个行为代码的危险系数进行求平均、加权平均、叠加等处理,得到综合的危险系数,再将综合的危险系数与预设的危险系数阈值进行比较。
[0186]本领域技术人员可以根据宏病毒检出率或宏病毒误杀率的指标,预设危险系数阈值。例如,如果欲达到较高的宏病毒检出率,可以预设较小的危险系数阈值;又如,如果欲达到较低的宏病毒误杀率,可以预设较高的危险系数阈值等等。
[0187]危险性条件C2、所述待查杀文档的宏代码中匹配成功的行为代码的危险等级超过预设的危险等级;
[0188]行为代码的危险系数和危险等级同样用于反映行为代码的危险程度,二者的区别之一在于,危险系数用更具体的数值描述,而危险等级可用简便的数值或文字描述;例如,危险系数的取值范围可以为[0,20],而危险等级的取值范围可以为[1,5]或者[1,3],或者,危险等级的文字范围为[低级、中级、高级]等等。
[0189]关于如何获取待查杀文档的宏代码中匹配成功的行为代码的危险等级,在实际中,可针对所述行为代码库中各行为代码预设相应的危险等级;或者,为了减轻设置的工作量,可对所述行为代码库中各行为代码进行分类,并针对每个类别预设相应的危险等级。
[0190]对于危险性条件C2而言,由于其采用的分类依据及预设的危险等级与危险性条件Cl相似,故相互参照即可,在此不作赘述。
[0191]危险性条件C3、待查杀文档的宏代码中匹配成功的行为代码出现了预设的单个行为代码,或者,出现了预设的行为代码组合。
[0192]危险性条件C3可以规定只要待查杀文档的宏代码中匹配成功的行为代码出现了预设的单个行为代码,就可以判别所述待查杀文档感染宏病毒。
[0193]在实际中,可以将某些宏病毒行为对应的函数名作为预设的单个行为代码。例如,一旦待查杀文档的宏代码中匹配成功的行为代码出现了如下函数名中的一个,则可以判别所述待查杀文档感染宏病毒:[0194]l=runblackice
[0195]2=inf ectdocument
[0196]3=infectnormal
[0197]4=Empirical
[0198]在具体实现中,还可以依据宏病毒行为对应的行为代码,预设行为代码组合,如果待查杀文档的宏代码中匹配成功的行为代码出现了预设的行为代码组合,则可判别其感染
宏病毒。
[0199]在本发明实施例的一种应用示例中,宏病毒行为对应的行为代码可用阿拉伯数字编号如下:
[0200]l=fiIesystemobject
[0201]2 =wcripting.shell
[0202]3=createob ject
[0203]4=Application.0nKey"%{F
[0204]5=normal.dot
[0205]6=bookl.xls
[0206]7=startup.xls
[0207]8=normal.xlm
[0208]9=norma1.xlm
[0209]10=norma1.dot
[0210]Il=Open
[0211]12=for
[0212]13=as
[0213]14=writef ile
[0214]15=createf ile
[0215]16=Private Declare Function
[0216]17=lib
[0217]18=infectnormal
[0218]19=<! !blackice〉
[0219]20= (ml) — (m2) — (m3)
[0220]21=System.PrivateProfileString[0221 ]22=HKEY—CURRENT—USER
[0222]23=shell
[0223]24=Shell
[0224]25=NormalTemplate.VBProject.VBComponents
[0225]26=Application.StartupPath[0226]那么,可以根据这些行为代码对应宏病毒行为的危险程度,预设如下行为代码组合,并分别用阿拉伯数字编号:
[0227]1=3,2
[0228]2=3,I
[0229]3=21, 22
[0230]4=16, 17
[0231]5=25
[0232]6=11, 12, 13
[0233]步骤105、依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理。
[0234]总之,本发明实施例基于“实现固定的宏病毒行为所需的行为代码是相对固定的”这一规律进行宏病毒的查杀;具体地,在针对计算机文档进行宏病毒的查杀过程中,将提取的宏代码与行为代码库中的行为代码进行匹配,依据匹配结果判别所述待查杀文档是否感染宏病毒;由于无论已知宏病毒还是未知宏病毒都会遵循上述规律,也即无论宏病毒如何变化及变化的速度如何,故本发明实施例能够对未知宏病毒具备一定的检测能力,因此能够提高未知宏病毒的检测能力,且具备较好的反病毒效果;
[0235]同时,本发明实施例解析待查杀文档的文档结构,依据解析得到的文档结构从所述待查杀文档中提取宏代码,以及,依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理,所述文档结构具体可以包括文档的数据流对应的目录结构;由于文档的数据流对应的目录结构为计算机文档的通用特征,故本发明实施例的技术方案能够适用于所有计算机文档的查杀,也即,本发明实施例能够全面地从各种待查杀文档中提取宏代码,以及对感染宏病毒的各种待查杀文档进行修复处理。
[0236]参照图3,示出了根据本发明一个实施例的宏病毒查杀的方法的流程图,具体可以包括:
[0237]步骤301、安全设备通过计算设备的处理器解析得到待查杀文档的树形目录结构;所述树形目录结构具体可以包括文档的数据流对应的树形目录结构;所述待查杀文档为复合文档、WORD文档或者EXCEL文档;
[0238]步骤302、遍历所述树形目录结构中的每一个目录项;
[0239]步骤303、将每一个目录项的名称与特定宏目录的名称进行匹配;
[0240]步骤304、针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0241]步骤305、将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;
[0242]步骤306、依据匹配结果判别所述待查杀文档是否感染宏病毒;
[0243]步骤307、修改所述感染宏病毒的待查杀文档中宏病毒对应匹配成功的目录项的名称;
[0244]步骤308、针对所述匹配成功的目录项,将其宏代码清除;及
[0245]步骤309、针对所述匹配成功的目录项,将其删除或改名。
[0246]本实施例应用于复合文档、WORD文档或者EXCEL文档等待查杀文档。对于复合文档、WORD文档或者EXCEL文档等文档而言,其树形目录结构中包括有特定宏目录,在特定宏目录的名称已知的情况下,将树形目录结构中的每一个目录项的名称与特定宏目录的名称进行字符串的匹配,即可获取复合文档中的宏目录;而针对匹配成功的目录项,读取子目录项的流数据,即可从中解压缩出对应的宏代码。
[0247]步骤302-步骤304为依据解析得到的文档结构从所述待查杀文档中提取宏代码的具体实现过程;在本发明的一种优选实施例中,所述特定宏目录的名称具体可以包括:VBA_PROJECT_CUR 和 / 或 Macros,可以理解,上述 VBA_PROJECT_CUR、Macros 并不作为本发明实施例中特定宏目录的名称的应用限制。
[0248]步骤307-步骤309为依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的具体实现过程。由于在判别某待查杀文档感染宏病毒后,反病毒软件通常会记录该待查杀文档中的宏病毒对应的目录项的名称,故步骤307的作用修改目录项的名称的作用是为了避免反病毒软件误报;步骤308的作用是为了将感染宏病毒的宏代码数据清除,以避免OFFICE程序的宏出错,例如,可以通过用O填充宏代码的方式将宏代码清除;步骤308清除感染宏病毒的宏代码后,步骤309将宏代码对应的宏目录删除或改名,其作用是为了使得OFFICE程序以为对应目录项是空目录,不再继续解析,其中,可以通过将所述匹配成功的目录项的相邻目录和子目录的标记修改为空的方式来删除所述匹配成功的目录项,本发明对具体的删除或改名方式不加以限制。
[0249]在本发明的一种优选实施例中,所述待查杀文档为EXCEL文档;则所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,还可以包括:在所述EXCEL文档感染宏病毒时,修改其workbook目录项的流数据中描述字段,以不影响所述EXCEL文档的正常打开。
[0250]在本发明的一种应用示例中,workbook目录项的流数据中ObProj结构的type字段用于描述ObProj结构的类型,可以将该type字段修改为Continue等不影响EXCEL文档的正常打开的值,能够使得EXCEL程序不会认为该EXCEL文档存在宏代码,也就不会弹窗提醒宏数据丢失。
[0251]参照图4,示出了根据本发明一个实施例的宏病毒查杀的方法的流程图,本实施例应用于PPT文档等待查杀文档,具体可以包括:
[0252]步骤401、安全设备通过计算设备的处理器解析得到PPT文档的目录结构;所述PPT文档的目录结构具体可以包括POWERPOINT DOCUMENT目录项;
[0253]步骤402、解析所述POWERPOINT DOCUMENT目录项下的流数据,并从解析结果中查找复合对象结构;
[0254]步骤403、对所述复合对象结构中存放的数据进行解压缩,得到相应的解压缩数据;所述解压缩后数据对应的文档具体可以包括如下文档中的一项或多项=PPT文档和PPT内嵌文档,所述PPT内嵌文档具体可以包括复合文档、WORD文档和EXCEL文档中的一项或多项;
[0255]步骤404、以所述解压缩后数据对应的文档作为待查杀文档,解析得到相应的目录结构;
[0256]步骤405、遍历所述待查杀文档的目录结构中的每一个目录项;
[0257]步骤406、将每一个目录项的名称与特定宏目录的名称进行匹配;
[0258]步骤407、针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0259]步骤408、将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;
[0260]步骤409、依据匹配结果判别所述待查杀文档是否感染宏病毒;
[0261]依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理,具体可以包括:
[0262]步骤410、在所述解压缩后数据对应的文档包括PPT内嵌文档时,依据解析得到PPT内嵌文档的文档结构对感染宏病毒的PPT内嵌文档进行修复处理,将修复处理后PPT内嵌文档压缩,并填充到相应的复合对象结构中;
[0263]步骤411、在所述解压缩后数据对应的文档包括PPT文档时,减小复合对象结构中的length字段,并添加一新结构;其中,所述减小和添加的新结构所对应的长度为感染宏病毒的PPT文档的宏代码对应的长度。
[0264]对于PPT文档而言,其与复合文档、WORD文档或者EXCEL文档的区别是:其目录结构中不存在特定的宏目录,然而PPT文档通常会将所有的宏代码封装为文档格式并用Zlib等算法压缩后存放在复合对象(ExternalOLEObjectStg)结构中,而ExternalOLEObjectStg结构为POWERPOINT DOCUMENT目录项下的流数据中的结构。
[0265]宏代码会直接隐藏在PPT文档的数据流中,具体地,宏代码会隐藏在POWERPOINTDOCUMENT目录项下的流数据中的复合对象(ExternalOLEObjectStg)结构中。
[0266]为了查杀出隐藏在ExternalOLEObjectStg结构中的宏代码,步骤401-步骤402查找得到ExternalOLEObjectStg结构,步骤403对所述复合对象结构中存放的数据进行解压缩,得到相应的解压缩数据。
[0267]所述解压缩数据具体可以包括两种类型的文档:一类是PPT内嵌文档,具体可以包括复合文档、WORD文档或EXCEL文档,若干PPT内嵌文档内嵌于PPT文档中;另一类是PPT文档,PPT文档也有可能带有宏代码。
[0268]无论是PPT文档还是PPT内嵌文档,均可将其作为待查杀文档,按照图3所示步骤301-步骤306复合文档、WORD文档或者EXCEL文档的宏病毒查杀流程进行宏代码的提取和宏病毒的检测。
[0269]对于PPT内嵌文档,也可按照图3所示步骤307-步骤309的流程依据解析得到PPT内嵌文档的文档结构对感染宏病毒的PPT内嵌文档进行修复处理,并将修复处理后PPT内嵌文档压缩,最后填充到相应的复合对象结构中;所述填充能够避免PPT程序出现“对象库无效或包含对不能找到对象定义的引用”等错误。
[0270]对于PPT文档,其修复处理过程具体可以包括:减小复合对象结构中的length字段,并添加一个新结构;其中,所述减小和添加的新结构所对应的长度为感染宏病毒的PPT文档的宏代码对应的长度。其中,减小复合对象结构中的length字段是为了将PPT文档中已有的宏代码数据清除;添加一新结构是为了占用已有的宏代码数据对应空间,防止OFFICE程序出错,所述新结构可以为type为O或其它值的数据结构,本发明实施例对具体的所述新结构不加以限制。
[0271]参照图5,示出了根据本发明一个实施例的宏病毒查杀的方法的流程图,本实施例应用于0FFICE07文档等待查杀文档,具体可以包括:[0272]步骤501、安全设备通过计算设备的处理器解压缩0FFICE07文档对应的数据,得到相应的解压缩后数据;所述解压缩后数据具体可以包括内嵌目录;
[0273]步骤502、以所述内嵌目录下的文档作为待查杀文档,解析得到相应的树形目录结构;
[0274]步骤503、遍历所述树形目录结构中的每一个目录项;
[0275]步骤504、将每一个目录项的名称与特定宏目录的名称进行匹配;
[0276]步骤505、针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0277]步骤506、将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;
[0278]步骤507、依据匹配结果判别所述待查杀文档是否感染宏病毒;
[0279]步骤508、修复感染宏病毒的所述内嵌目录下的文档,并在所述内嵌目录下的文档修复成功后将所述内嵌文档和所述解压缩后数据中其它数据进行压缩得到修复后的0FFICE07 文档。
[0280]图1-图3所示实施例默认应用于0FFICE03文档等待查杀文档,而图5所示实施例应用的0FFICE07文档具体可以包括07版本的各种OFFICE文档,如复合文档07、W0RD07文档、EXCEL07文档或者PPT07文档等等。
[0281]对于0FFICE07文档,其为一个zip的压缩包,默认分为两种格式:
[0282]第一种格式的0FFICE07文档具体可以包括后缀为docx的文档,该格式的文档不附带任何宏代码数据,如果有宏代码数据则无法保存该格式,因为一旦保存就会被删除;
[0283]第二种格式的0FFICE07文档具体可以包括后缀为docm, pptm, xlsm的文档,对于该格式的文档,将对应的zip包解开,对应的解压缩后数据具体包括多个目录及相应的文档,例如EXCEL07文档对应的解压缩后数据具体包括xl目录、docProps目录、_rels目录和内容字段标记([Content_Types].xml)文档等,其中xl目录下有一个内嵌目录,该内嵌目录下的文档就可能包括有内嵌在EXCEL07文档中的相关文档数据和宏代码数据,因此本实施例是针对第二种格式的0FFICE07文档进行宏病毒查杀的。上述xl目录是对于EXCEL07文档而言的,对于W0RD07文档则替换为word目录,对于PPT07文档则替换为ppt目录,也即word目录和ppt目录下分别有一个内嵌目录。
[0284]对于第二种格式的0FFICE07文档,由于其内嵌目录下的文档具有复合文档的文档结构,故可以按照图3所示步骤301-步骤306复合文档、WORD文档或者EXCEL文档的宏病毒查杀流程进行宏代码的提取和宏病毒的检测,并且可按照图3所示步骤307-步骤309的流程修复感染宏病毒的所述内嵌目录下的文档;
[0285]另外,由于0FFICE07格式本质为zip格式等压缩包格式,只是后缀可能为docx, xlsx, pptx等,故步骤508在所述内嵌目录下的文档修复成功后将所述内嵌文档和所述解压缩后数据中其它数据(如包括有所述内嵌文档的xl目录、原有docProps目录、原有_rels目录和原有内容字段标记文档)进行压缩得到修复后的0FFICE07文档。
[0286]上述内嵌目录下的文档为0FFICE07文档内嵌的文档,在本发明的一种优选实施例中,所述解压后数据还可以包括0FFICE07宏文档和内容字段标记文档;所述0FFICE07宏文档为0FFICE07文档自带的宏文档,在0FFICE07文档自身有宏代码时,宏代码就会保存在该文档中,如果该文档有病毒,则可说明0FFICE07文档有病毒;
[0287]则所述解析待查杀文档的文档结构的步骤,还可以包括:以所述0FFICE07宏文档作为待查杀文档,解析得到相应的树形目录结构;
[0288]则所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的方案,还可以包括:在所述内嵌目录下的0FFICE07宏文档感染宏病毒时,删除所述0FFICE07宏文档,解析得到所述内容字段标记文档的内容,并将所述内容字段标记文档中引用所述0FFICE07宏文档的相应内容删除。
[0289]在本发明的一种应用示例中,所述0FFICE07宏文档为VbaProject.bin。[Content_Types].xml是用于描述所述解压后数据的目录格式的文档,其中会引用到VbaProject.bin,而VbaProject.bin文档为所述内嵌目录下的一个文档;故本优选实施例在所述内嵌目录下的VbaProject.bin文档感染宏病毒时,不仅删除VbaProject.bin文档,而且解析得到所述内容字段标记文档的内容,并将所述内容字段标记文档中引用所述VbaProject.bin的相应内容删除。
[0290]与前述方法实施例相应,本发明实施例还公开了一种宏病毒查杀的装置,该装置应用于安全设备,参照图6所示的结构图,具体可以包括:
[0291]解析模块601,用于通过计算设备的处理器解析待查杀文档的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构;
[0292]提取模块602,用于依据解析得到的文档结构从所述待查杀文档中提取宏代码;
[0293]匹配模块603,用于将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码;
[0294]判别模块604,用于依据匹配结果判别所述待查杀文档是否感染宏病毒;及
[0295]修复处理模块605,用于依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理。
[0296]在本发明实施例的一种优选实施例中,所述待查杀文档为复合文档、WORD文档或者EXCEL文档;
[0297]则所述解析模块601具体可以包括:用于解析得到待查杀文档的树形目录结构的第一解析子模块;
[0298]则所述提取模块602具体可以包括:
[0299]第一遍历子模块,用于遍历所述树形目录结构中的每一个目录项;
[0300]第一匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0301]第一读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0302]所述修复处理模块605具体可以包括:
[0303]第一修改子模块,用于修改所述感染宏病毒的待查杀文档中宏病毒对应匹配成功的目录项的名称;
[0304]填充子模块针对所述匹配成功的目录项,将其宏代码清除;及
[0305]第二修改子模块,用于针对所述匹配成功的目录项,将其删除或改名。
[0306]在本发明实施例的另一种优选实施例中,所述待查杀文档为EXCEL文档;
[0307]则修复处理模块605还可以包括:[0308]第三修改子模块,用于在所述EXCEL文档感染宏病毒时,修改其workbook目录项的流数据中的描述字段,以不影响所述EXCEL文档的正常打开。
[0309]在本发明实施例的再一种优选实施例中,所述待查杀文档为PPT文档;
[0310]则所述解析模块601具体可以包括:
[0311 ] 第二解析子模块,用于解析得到PPT文档的目录结构;所述PPT文档的目录结构具体可以包括POWERPOINT DOCUMENT目录项;
[0312]第三解析子模块,用于解析所述POWERPOINT DOCUMENT目录项下的流数据,并从解析结果中查找复合对象结构;
[0313]解压缩子模块,用于对所述复合对象结构中存放的数据进行解压缩,得到相应的解压缩数据;所述解压缩后数据对应的文档包括如下文档中的一项或多项=PPT文档和PPT内嵌文档,所述PPT内嵌文档包括复合文档、WORD文档和EXCEL文档中的一项或多项;
[0314]第四解析子模块,用于以所述解压缩后数据对应的文档作为待查杀文档,解析得到相应的目录结构;
[0315]所述提取模块602具体可以包括:
[0316]第二遍历子模块,用于遍历所述待查杀文档的目录结构中的每一个目录项;
[0317]第二匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0318]第二读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0319]所述修复处理模块605具体可以包括:
[0320]第一修复子模块,用于在所述解压缩后数据对应的文档包括PPT内嵌文档时,依据解析得到PPT内嵌文档的文档结构对感染宏病毒的PPT内嵌文档进行修复处理,将修复处理后PPT内嵌文档压缩,并填充到相应的复合对象结构中;和/或
[0321]第二修复子模块,用于在所述解压缩后数据对应的文档包括PPT文档时,减小复合对象结构中的length字段,并添加一新结构;其中,所述减小和添加的新结构所对应的长度为感染宏病毒的PPT文档的宏代码对应的长度。
[0322]在本发明实施例的一种优选实施例中,所述待查杀文档为0FFICE07文档;
[0323]则所述解析模块601具体可以包括:
[0324]解压缩子模块,用于解压缩0FFICE07文档对应的数据,得到相应的解压缩后数据;所述解压缩后数据包括内嵌目录;
[0325]第四解析子模块,用于以所述内嵌目录下的文档作为待查杀文档,解析得到相应的树形目录结构;
[0326]则所述提取模块602具体可以包括:
[0327]第三遍历子模块,用于遍历所述待查杀文档的目录结构中的每一个目录项;
[0328]第三匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0329]第三读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0330]所述修复处理模块605具体可以包括:
[0331]修复压缩子模块,用于修复感染宏病毒的所述内嵌目录下的文档,并在所述内嵌目录下的文档修复成功后将所述内嵌文档和所述解压缩后数据中其它数据进行压缩得到修复后的0FFICE07文档。
[0332]在本发明实施例的另一种优选实施例中,所述解压后数据还可以包括0FFICE07宏文档和内容字段标记文档;
[0333]则所述解析模块601还可以包括:用于以所述0FFICE07宏文档作为待查杀文档,解析得到相应的树形目录结构的第五解析子模块
[0334]则所述修复处理模块605还可以包括:
[0335]删除子模块,用于在所述内嵌目录下的0FFICE07宏文档感染宏病毒时,删除所述0FFICE07宏文档,解析得到所述内容字段标记文档的内容,并将所述内容字段标记文档中引用所述0FFICE07宏文档的相应内容删除。
[0336]在本发明实施例的再一种优选实施例中,所述特定宏目录的名称具体可以包括:VBA_PROJECT_CUR和 / 或 Macros。
[0337]在本发明实施例中,优选的是,所述装置还可以包括:用于构造所述行为代码库的构造模块;
[0338]所述构造模块具体可以包括:
[0339]收集子模块,用于收集实现固定的宏病毒行为所需的行为代码;
[0340]保存子模块,用于将所述行为代码保存至行为代码库;
[0341]其中,所述收集子模块进一步包括:
[0342]样本收集单元,用于收集各种计算机文档的宏病毒样本;
[0343]样本解析单元,用于解析所述宏病毒样本的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构;
[0344]样本提取单元,用于依据解析得到的文档结构从所述宏病毒样本中提取宏代码;及
[0345]分析提取单元,用于依据宏代码的语法,对所述宏病毒样本的宏代码的语义进行分析,从中提取相应的实现固定的宏病毒行为所需的行为代码
[0346]如本发明实施例所述的装置,其特征在于,所述待查杀文档为EXCEL文档;
[0347]则修复处理模块还包括:
[0348]第三修改子模块,用于在所述EXCEL文档感染宏病毒时,修改其workbook目录项的流数据中的描述字段,以不影响所述EXCEL文档的正常打开。
[0349]如本发明实施例所述的装置,其特征在于,所述待查杀文档为PPT文档;
[0350]则所述解析模块包括:
[0351 ] 第二解析子模块,用于解析得到PPT文档的目录结构;所述PPT文档的目录结构包括 POWERPOINT DOCUMENT 目录项;
[0352]第三解析子模块,用于解析所述POWERPOINT DOCUMENT目录项下的流数据,并从解析结果中查找复合对象结构;
[0353]解压缩子模块,用于对所述复合对象结构中存放的数据进行解压缩,得到相应的解压缩数据;所述解压缩后数据对应的文档包括如下文档中的一项或多项=PPT文档和PPT内嵌文档,所述PPT内嵌文档包括复合文档、WORD文档和EXCEL文档中的一项或多项;
[0354]第四解析子模块,用于以所述解压缩后数据对应的文档作为待查杀文档,解析得到相应的目录结构;[0355]所述提取模块包括:
[0356]第二遍历子模块,用于遍历所述待查杀文档的目录结构中的每一个目录项;
[0357]第二匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0358]第二读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0359]所述修复处理模块包括:
[0360]第一修复子模块,用于在所述解压缩后数据对应的文档包括PPT内嵌文档时,依据解析得到PPT内嵌文档的文档结构对感染宏病毒的PPT内嵌文档进行修复处理,将修复处理后PPT内嵌文档压缩,并填充到相应的复合对象结构中;和/或
[0361]第二修复子模块,用于在所述解压缩后数据对应的文档包括PPT文档时,减小复合对象结构中的length字段,并添加一新结构;其中,所述减小和添加的新结构所对应的长度为感染宏病毒的PPT文档的宏代码对应的长度。
[0362]如本发明实施例所述的装置,其特征在于,所述待查杀文档为0FFICE07文档;
[0363]则所述解析模块包括:
[0364]解压缩子模块,用于解压缩0FFICE07文档对应的数据,得到相应的解压缩后数据;所述解压缩后数据包括内嵌目录;
[0365]第四解析子模块,用于以所述内嵌目录下的文档作为待查杀文档,解析得到相应的树形目录结构;
[0366]则所述提取模块包括:
[0367]第三遍历子模块,用于遍历所述待查杀文档的目录结构中的每一个目录项;
[0368]第三匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配;
[0369]第三读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码;
[0370]所述修复处理模块包括:
[0371]修复压缩子模块,用于修复感染宏病毒的所述内嵌目录下的文档,并在所述内嵌目录下的文档修复成功后将所述内嵌文档和所述解压缩后数据中其它数据进行压缩得到修复后的0FFICE07文档。
[0372]如本发明实施例所述的装置,其特征在于,所述解压后数据还包括0FFICE07宏文档和内容字段标记文档;
[0373]则所述解析模块还包括:用于以所述0FFICE07宏文档作为待查杀文档,解析得到相应的树形目录结构的第五解析子模块
[0374]则所述修复处理模块还包括:
[0375]删除子模块,用于在所述内嵌目录下的0FFICE07宏文档感染宏病毒时,删除所述0FFICE07宏文档,解析得到所述内容字段标记文档的内容,并将所述内容字段标记文档中引用所述0FFICE07宏文档的相应内容删除。
[0376]如本发明实施例所述的装置,其特征在于,所述特定宏目录的名称包括:VBA_PR0JECT_CUR 和 / 或 Macros。
[0377]如本发明实施例所述的装置,其特征在于,还包括:用于构造所述行为代码库的构造模块;[0378]所述构造模块包括:
[0379]收集子模块,用于收集实现固定的宏病毒行为所需的行为代码;
[0380]保存子模块,用于将所述行为代码保存至行为代码库;
[0381]其中,所述收集子模块进一步包括:
[0382]样本收集单元,用于收集各种计算机文档的宏病毒样本;
[0383]样本解析单元,用于解析所述宏病毒样本的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构;
[0384]样本提取单元,用于依据解析得到的文档结构从所述宏病毒样本中提取宏代码;及
[0385]分析提取单元,用于依据宏代码的语法,对所述宏病毒样本的宏代码的语义进行分析,从中提取相应的实现固定的宏病毒行为所需的行为代码。
[0386]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0387]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0388]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0389]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0390]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0391 ] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP )来实现根据本发明实施例的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0392] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【权利要求】
1.一种宏病毒查杀的方法,包括: 安全设备通过计算设备的处理器解析待查杀文档的文档结构;所述文档结构包括文档的数据流对应的目录结构; 依据解析得到的文档结构从所述待查杀文档中提取宏代码; 将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码; 依据匹配结果判别所述待查杀文档是否感染宏病毒; 依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理。
2.如权利要求1所述的方法,其特征在于,所述待查杀文档为复合文档、WORD文档或者EXCEL文档; 则所述解析待查杀文档的文档结构的步骤,包括:解析得到待查杀文档的树形目录结构; 则所述依据解析得到的文档结构从所述待查杀文档中提取宏代码的步骤,包括: 遍历所述树形目录结构中的每一个目录项; 将每一个目录项的名称与特定宏目录的名称进行匹配; 针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码; 所述依据解析得到的文档结构对感染宏`病毒的待查杀文档进行修复处理的步骤,包括: 修改所述感染宏病毒的待查杀文档中宏病毒对应匹配成功的目录项的名称; 针对所述匹配成功的目录项,将其宏代码清除; 针对所述匹配成功的目录项,将其删除或改名。
3.如权利要求2所述的方法,其特征在于,所述待查杀文档为EXCEL文档; 则所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,还包括: 在所述EXCEL文档感染宏病毒时,修改其workbook目录项的流数据中的描述字段,以不影响所述EXCEL文档的正常打开。
4.如权利要求1所述的方法,其特征在于,所述待查杀文档为PPT文档; 则所述解析待查杀文档的文档结构的步骤,包括: 解析得到PPT文档的目录结构;所述PPT文档的目录结构包括POWERPOINT DOCUMENT目录项; 解析所述POWERPOINT DOCUMENT目录项下的流数据,并从解析结果中查找复合对象结构; 对所述复合对象结构中存放的数据进行解压缩,得到相应的解压缩数据;所述解压缩后数据对应的文档包括如下文档中的一项或多项:PPT文档和PPT内嵌文档,所述PPT内嵌文档包括复合文档、WORD文档和EXCEL文档中的一项或多项; 以所述解压缩后数据对应的文档作为待查杀文档,解析得到相应的目录结构; 所述依据解析得到的文档结构从所述待查杀文档中提取宏代码的步骤,包括: 遍历所述待查杀文档的目录结构中的每一个目录项; 将每一个目录项的名称与特定宏目录的名称进行匹配;针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码; 所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,包括: 在所述解压缩后数据对应的文档包括PPT内嵌文档时,依据解析得到PPT内嵌文档的文档结构对感染宏病毒的PPT内嵌文档进行修复处理,将修复处理后PPT内嵌文档压缩,并填充到相应的复合对象结构中;和/或 在所述解压缩后数据对应的文档包括PPT文档时,减小复合对象结构中的length字段,并添加一新结构,其中,所述减小和添加的新结构所对应的长度为感染宏病毒的PPT文档的宏代码对应的长度。
5.如权利要求1所述的方法,其特征在于,所述待查杀文档为0FFICE07文档; 则所述解析待查杀文档的文档结构的步骤,包括: 解压缩0FFICE07文档对应的数据,得到相应的解压缩后数据;所述解压缩后数据包括内嵌目录; 以所述内嵌目录下的文档作为待查杀文档,解析得到相应的树形目录结构; 则所述依据解析得到的文档结构从所述待查杀文档中提取宏代码的步骤,包括: 遍历所述树形目录结构中的每一个目录项; 将每一个目录项的名称与特定宏目录的名称进行匹配; 针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码; 所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,包括: 修复感染宏病毒的所述内嵌目录下的文档,并在所述内嵌目录下的文档修复成功后将所述内嵌文档和所述解压缩后数据中其它数据进行压缩得到修复后的0FFICE07文档。
6.如权利要求5所述的方法,其特征在于,所述解压后数据还包括0FFICE07宏文档和内容字段标记文档; 则所述解析待查杀文档的文档结构的步骤,还包括:以所述0FFICE07宏文档作为待查杀文档,解析得到相应的树形目录结构; 则所述依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理的步骤,还包括: 在所述0FFICE07宏文档感染宏病毒时,删除所述0FFICE07宏文档,解析得到所述内容字段标记文档的内容,并将所述内容字段标记文档中引用所述0FFICE07宏文档的相应内容删除。
7.如权利要求2所述的方法, 其特征在于,所述特定宏目录的名称包括:VBA_PROJECT_CUR 和 / 或 Macros。
8.如权利要求1至7中任一项所述的方法,其特征在于,通过如下步骤构造所述行为代码库: 收集实现固定的宏病毒行为所需的行为代码; 将所述行为代码保存至行为代码库; 其中,所述收集实现固定的宏病毒行为所需的行为代码的步骤,进一步包括: 收集各种计算机文档的宏病毒样本;解析所述宏病毒样本的文档结构;所述文档结构具体可以包括文档的数据流对应的目录结构; 依据解析得到的文档结构从所述宏病毒样本中提取宏代码; 依据宏代码的语法,对所述宏病毒样本的宏代码的语义进行分析,从中提取相应的实现固定的宏病毒行为所需的行为代码。
9.一种宏病毒查杀的装置,应用于安全设备,包括: 解析模块,用于通过计算设备的处理器解析待查杀文档的文档结构;所述文档结构包括文档的数据流对应的目录结构; 提取模块,用于依据解析得到的文档结构从所述待查杀文档中提取宏代码; 匹配模块,用于将处理器提取的宏代码与行为代码库中的行为代码进行匹配;其中,所述行为代码用于表示实现固定的宏病毒行为所需的宏代码; 判别模块,用于依据匹配结果判别所述待查杀文档是否感染宏病毒;及 修复处理模块,用于依据解析得到的文档结构对感染宏病毒的待查杀文档进行修复处理。
10.如权利要求9所述的装置,其特征在于,所述待查杀文档为复合文档、WORD文档或者EXCEL文档; 则所述解析模块包括:用于解析得到待查杀文档的树形目录结构的第一解析子模块; 则所述提取模块包括:` 第一遍历子模块,用于遍历所述树形目录结构中的每一个目录项; 第一匹配子模块,用于将每一个目录项的名称与特定宏目录的名称进行匹配; 第一读取解压缩子模块,用于针对匹配成功的目录项,读取其子目录项的流数据,并从中解压缩出对应的宏代码; 所述修复处理模块包括: 第一修改子模块,用于修改所述感染宏病毒的待查杀文档中宏病毒对应匹配成功的目录项的名称; 填充子模块针对所述匹配成功的目录项,将其宏代码清除 '及 第二修改子模块,用于针对所述匹配成功的目录项,将其删除或改名。
【文档编号】G06F21/56GK103500309SQ201310446768
【公开日】2014年1月8日 申请日期:2013年9月26日 优先权日:2013年9月26日
【发明者】杨康 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1