CN116975865B - 恶意Office文档检测方法、装置、设备及存储介质 - Google Patents
恶意Office文档检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116975865B CN116975865B CN202311011005.XA CN202311011005A CN116975865B CN 116975865 B CN116975865 B CN 116975865B CN 202311011005 A CN202311011005 A CN 202311011005A CN 116975865 B CN116975865 B CN 116975865B
- Authority
- CN
- China
- Prior art keywords
- document
- malicious
- keywords
- office
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 116
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 238000012549 training Methods 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 14
- 239000000203 mixture Substances 0.000 claims description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 101150068479 chrb gene Proteins 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种恶意Office文档检测方法、装置、设备及存储介质,该方法包括:对获得的Office文档集中的每个文档进行识别处理,以确定每个文档的格式及文档结构特点;基于每个文档的格式及文档结构特点确定每个文档的类型;扫描每个文档,并基于每个文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容;基于统一的分类标准对恶意内容的关键词进行分类;基于关键词的分类数据统计每个文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个文档进行特征标记;将关键词的分类数据及包含特征标记的文档作为训练数据训练目标模型,以形成能判断输入的Office文档是否为恶意文档的检测模型;基于检测模型对待测Office文档进行恶意检测。
Description
技术领域
本发明实施例涉及威胁检测技术领域,特别涉及一种恶意Office多文档检测方法、装置、设备及存储介质。
背景技术
一直以来,恶意文档都是备受攻击者青睐的一种武器,被用来广泛传播恶意软件或直接发动攻击。用户往往对文档缺乏防范意识,对经由邮件、社交软件、网络等途径传播的文档没有戒备,增加了恶意文档攻击成功的机会。即便用户使用了垃圾邮件检测和恶意软件过滤机制,仍然会有很多漏网之鱼。
恶意Office文档检测对网络信息安全至关重要,现有的恶意Office检测方法主要包括动态检测方法和静态检测方法,动态检测方法由于要模拟真实环境,所以带来的性能开销较大;静态检测方法中由于某些恶意Office文档通常通过删除VBA宏代码来实现逃避检测的目的,导致结果不具有可信性。
为了解决上述问题,现有方案有提出通过基于静态特征结合动态特征的方式进行检测,但对资源消耗较大。或者是有些方案在进行检测时会基于宏代码(VBA代码)实现,但是很多恶意Office样本为了逃避检测并不存在VBA代码。因此,现有方案依然无法较好地解决文档的恶意攻击问题。
发明内容
本发明提供了一种恶意Office文档检测方法、装置、设备及存储介质,用于快速准确地对Office文档进行恶意检测。
为了解决上述技术问题,本发明实施例提供了一种恶意Office文档检测方法,包括:
对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式及每个文档在所属格式下的文档结构特点;
基于每个所述文档的格式及该格式下的文档结构特点分别确定每个所述文档的文档类型;
扫描每个所述文档包含的内容,并基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容;
分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,同一所述文档包含的恶意内容涉及的关键词类别为一个或多个;
基于所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,所述关键词的分类数据中记录有每个类别包含的关键词;
将所述关键词的分类数据及包含所述特征标记的文档作为训练数据训练目标模型,以形成能够判断输入的Office文档是否为恶意文档的检测模型;
基于所述检测模型对待测Office文档进行恶意检测。
作为一可选实施例,所述对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式,包括:
读取所述Office文档集中的每个所述文档的前n个字节,以基于所述前n个字节的特征识别确定所述文档的格式。
作为一可选实施例,所述对获得的Office文档集中的每个文档进行识别处理,以确定每个文档在所属格式下的文档结构特点,包括:
基于每个所述文档的格式确定该格式文档的目标内容检测位置;
基于所述目标内容检测位置查询对应文档的目标内容,并基于匹配当前文档格式的检测策略对所述目标内容进行识别检测,所述检测策略用于对指定格式的文档内容是否包含目标文件或文件组成进行检测,不同格式的文档对应的目标文件或文件组成不同,所述目标文件或文件组成能够指示对应格式的文档的文档类型。
作为一可选实施例,所述扫描每个所述文档包含的内容,包括:
基于每个所述文档的格式确定每个所述文档的内容存放位置;
基于每个所述文档的内容存放位置及关于恶意内容攻击位置的先验知识预测每个所述文档内的恶意内容存储位置;
至少以每个所述文档的恶意内容存储位置作为重点扫描对象扫描每个所述文档的内容。
作为一可选实施例,所述先验知识为不同文档类型的文档会包含的恶意内容;
所述基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容,包括:
基于每个所述文档的文档类型及先验知识确定对应文档会包含的恶意内容;
基于确定的每个文档会包含的恶意内容分别对每个所述文档的扫描结果进行匹配查找,以确定出每个所述文档实际包含的恶意内容。
作为一可选实施例,所述恶意内容为恶意代码,所述分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,包括:
确定对应不同文档的恶意代码中的函数单元,及每个所述函数单元的关键词,同一所述文档的恶意代码中包含一个函数单元或多个不同的函数单元,不同的所述函数单元中的关键词的语言至少不完全相同;
分别确定所有所述关键词的语义,将具有相同语义的关键词归为同一类,并基于该类所述关键词的语义确定匹配的功能;
将属于相同功能类别的关键词进行记录,以得到所述关键词的分类数据。
作为一可选实施例,所述基于所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,包括:
基于所述关键词的分类数据统计每个所述文档的恶意代码中包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记。
作为一可选实施例,所述基于所述检测模型对待测Office文档进行恶意检测,包括:
对所述待测Office文档进行特征标记;
将包含所述特征标记的待测Office文档输入至所述检测模型,基于所述检测模型对待测Office文档进行恶意检测。
本发明另一实施例提供一种恶意Office文档检测装置,包括:
第一处理模块,用于对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式及每个文档在所属格式下的文档结构特点;
第一确定模块,用于根据每个所述文档的格式及该格式下的文档结构特点分别确定每个所述文档的文档类型;
第二确定模块,用于扫描每个所述文档包含的内容,并基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容;
分类模块,用于分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,同一所述文档包含的恶意内容涉及的关键词类别为一个或多个;
统计模块,用于根据所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,所述关键词的分类数据中记录有每个类别包含的关键词;
训练模块,用于将所述关键词的分类数据及包含所述特征标记的文档作为训练数据训练目标模型,以形成能够判断输入的Office文档是否为恶意文档的检测模型;
检测模块,用于根据所述检测模型对待测Office文档进行恶意检测。
本发明另一实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现如上文中任一项实施例所述的恶意Office文档检测方法。
本发明另一实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制包括所述恶意Office文档检测方法。
基于上述实施例的公开可以获知,本发明实施例具备的有益效果包括通过对不同格式的Office文档的恶意内容关键词进行统一标准的分类,实现不同语言、对应不同攻击方式的关键词进行特征归一化,并基于完成分类的关键词数据对Office文档进行特征提取、标记,形成训练数据训练检测模型,使得到的检测模型不仅能够对不同格式的Office文档进行快速、准确的恶意检测,而且有效避免了以往方案中因为训练数据的特征维数多且不均匀、训练样本覆盖不全造成的模型检测效果差的问题,显著降低了机器学习成本。
附图说明
图1为本发明实施例中的恶意Office文档检测方法的流程图。
图2为本发明一应用实例中判断文档格式时的示意图。
图3为本发明实施例中的恶意Office文档检测装置的结构框图。
具体实施方式
下面,结合附图对本发明的具体实施例进行详细的描述,但不作为本发明的限定。
应理解的是,可以对此处公开的实施例做出各种修改。因此,下述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本发明的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本发明进行了描述,但本领域技术人员能够确定地实现本发明的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本公开的具体实施例;然而,应当理解,所公开的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。
下面,结合附图详细的说明本发明实施例。
在网络信息安全领域,已有的恶意Office文档检测方法中存在以下问题:
1、Office文档格式多样,包括word2003(如doc)、word2007+(如docx、docm)、excel2003(如xls)、excel2007+(如xlsx、xlsm),内容结构不统一,这给Office统一检测带来了挑战。
2、恶意Office文档格式中特定的攻击手法仅在某种格式文件中存在(如XLM宏攻击仅存在于Excel文件中),这造成部分特征会在某种文件格式中集中存在,当样本不平衡时,给训练模型带来较大的学习难度。
3、Office文档攻击手法多样,包括不限于利用漏洞进行攻击、VBA宏攻击、DDE攻击、嵌入钓鱼链接攻击、嵌入恶意文件进行攻击、嵌入powershell攻击、嵌入JAR包攻击等,将每种攻击手法的特征都加入学习这将导致特征的高维度。同时由于一个恶意文件通常仅包含一种或两种攻击方式,因此这将造成高维度特征矩阵的稀疏性,对样本的均衡和数量都带来极高的要求,还加大了机器学习成本。由于特征决定检测效果的上限,因此当特征本身覆盖不全或特征不具有代表性时或训练样本不平衡时均可造成模型检测效果差。
因此为解决上述问题,如图1所示,本发明实施例提供一种恶意Office文档检测方法,包括:
S1:对获得的Office文档集中的每个文档进行识别处理,以确定每个文档的格式及每个文档在所属格式下的文档结构特点;
S2:基于每个文档的格式及该格式下的文档结构特点分别确定每个文档的文档类型;
S3:扫描每个文档包含的内容,并基于每个文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容;
S4:分析获得的对应不同文档的恶意内容,并基于统一的分类标准对恶意内容的关键词进行分类,同一文档包含的恶意内容涉及的关键词类别为一个或多个;
S5:基于关键词的分类数据统计每个文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个文档进行特征标记,关键词的分类数据中记录有每个类别包含的关键词;
S6:将关键词的分类数据及包含特征标记的文档作为训练数据训练目标模型,以形成能够判断输入的Office文档是否为恶意文档的检测模型;
S7:基于检测模型对待测Office文档进行恶意检测。
基于上述内容可知,本实施例具备的有益效果包括通过对不同格式的Office文档的恶意内容关键词进行统一标准的分类,实现不同语言、对应不同攻击方式的关键词进行特征归一化,并基于完成分类的关键词数据对Office文档进行特征提取、标记,形成训练数据训练检测模型,也即通过对不同文档格式和不同攻击手段的特征进行关联,并基于得到的数据训练检测模型,使得到的检测模型不仅能够对不同格式的Office文档进行快速、准确的恶意检测,包括word2003(如doc)、word2007+(如docx、docm、)、excel2003(如xls)、excel2007+(如xlsx、xlsm),而且有效避免了以往方案中因为训练数据的特征维数多且不均匀、训练样本覆盖不全造成的模型检测效果差的问题,显著降低了机器学习成本。
具体地,步骤S1中,对获得的Office文档集中的每个文档进行识别处理,以确定每个文档的格式,包括:
S8:读取Office文档集中的每个文档的前n个字节,以基于前n个字节的特征识别确定文档的格式。
以目前的Office文档有两种格式,包含MS Office 97-2003与MS Office 2007+为例,其中MS Office 97-2003文档是二进制形式的结构化存储文件(Compound File BinaryFormat,CFBF),文档格式是OLESS(OLE Structured Storage),遵循OLE1.0规范,或简称为OLE2文件。MSOffice 2007+文档遵循OOXML(Office Open XML,OOXML)标准,在2008年通过ISO标准认证时更改为OXML(Open XML,OXML)标准,该标准使用ZIP压缩格式,核心是使用XML结构和ZIP容器,将Office文档中的对象属性存放于XML文件。
在判断文档格式时,可以首先读取文件的Magic,如果文件前8个字节为“D0 CF 11E0 A1 B1 1A E1”则证明是MS Office 97-2003文档,如果前两个字节为“PK”则为MSOffice 2007+文档。
对于步骤S2,对获得的Office文档集中的每个文档进行识别处理,以确定每个文档在所属格式下的文档结构特点,包括:
S9:基于每个文档的格式确定该格式文档的目标内容检测位置;
S10:基于目标内容检测位置查询对应文档的目标内容,并基于匹配当前文档格式的检测策略对目标内容进行识别检测,检测策略用于对指定格式的文档内容是否包含目标文件或文件组成进行检测,不同格式的文档对应的目标文件或文件组成不同,目标文件或文件组成能够指示对应格式的文档的文档类型。
例如,在确定了文档的格式后,若文档是OLE2文件,则进一步检测文档内包含的Module Stream,若文档包含“WordDocument”则为doc(一种Office文档类型),若文档包含“Workbook”或“Book”则为xls(一种Office文档类型);若文档是ZIP压缩格式,进一步检测文档内包含的路径,若文档内根目录下包含word且不包含vbaProject.bin文件,则为docx(一种Office文档类型),若包含word且包含vbaProject.bin文件,则为附有宏代码的文件,如docm(一种Office文档类型),若包含xl且不包含vbaProject.bin文件,则为xlsx(一种Office文档类型),若包含xl且包含vbaProject.bin文件,则为附有宏代码的文件,如xlsm。
进一步地,步骤S3中,扫描每个文档包含的内容,包括:
S11:基于每个文档的格式确定每个文档的内容存放位置;
S12:基于每个文档的内容存放位置及关于恶意内容攻击位置的先验知识预测每个文档内的恶意内容存储位置;
S13:至少以每个文档的恶意内容存储位置作为重点扫描对象扫描每个文档的内容。
例如,仍以前述实施例为基础,在MS Office 97-2003文档中,所有内容都存放在Module Stream中,如宏攻击所用到的VBA代码通常存放文档的VBA目录下_VBA_PROJECTStream中;在MS Office 2007+文档中,所有内容通常由单独的文件组成,如宏攻击所用到的VBA代码通常存放在vbaProject.bin文件中。
进一步地,在前述的步骤S3中,所述的结合先验知识确定文档恶意内容中,该先验知识为不同文档类型的文档会包含的恶意内容,例如根据以往历史攻击数据、关于文档攻击的大数据等可以获知文档中的恶意内容至少包括VBA宏代码、DDE代码、vbs代码、powershell代码、JAR包代码、JS代码、XLM宏代码。其中,XLM宏代码仅存在于Excel文件中。
具体地,基于每个文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容,包括:
S14:基于每个文档的文档类型及先验知识确定对应文档会包含的恶意内容;
S15:基于确定的每个文档会包含的恶意内容分别对每个文档的扫描结果进行匹配查找,以确定出每个文档实际包含的恶意内容。
例如,仅对Excel类型的文档查找XLM宏代码,对doc类型的文档、docx类型的文档等等,所受攻击方式较多,需查找VBA宏代码、DDE代码、vbs代码、powershell代码、JAR包代码、JS代码等。
上述的恶意内容均为恶意代码。由于现有的各种攻击Office文档的方式所利用的语言并不是全部相同的,而是存在大量使用不同语言执行不同攻击方式的现象,所以单独对恶意代码提取关键词,并基于关键词进行特征标记会造成特征分散。而且,当某种攻击所对应的样本数量极少或没有时,会对模型的训练效果造成严重影响。因此为解决上述问题,本实施例结合Office文档攻击特点,将不同语言的相同语义代码进行统一,具体地:
分析获得的对应不同文档的恶意内容,并基于统一的分类标准对恶意内容的关键词进行分类,包括:
S16:确定对应不同文档的恶意代码中的函数单元,及每个函数单元的关键词,同一文档的恶意代码中包含一个函数单元或多个不同的函数单元,不同的函数单元中的关键词的语言至少不完全相同;
S17:分别确定所有关键词的语义,将具有相同语义的关键词归为同一类,并基于该类关键词的语义确定匹配的功能;
S18:将属于相同功能类别的关键词进行记录,以得到关键词的分类数据。
例如,对获得的恶意代码根据其所使用的语言、语法进行扫描,以获取代码中的函数单元,如在VBA宏代码中,函数以Sub开头,以EndSub结尾,则可根据Sub与End Sub对代码以原始函数名为标记,进行函数单元的划分。对函数单元进行分析确定其关键词。关键词'Mid','Left','Right','StrReverse','Xor','ChrB','ChrW','Chr','Replace','Hex'均是与混淆功能相关的关键词,则将上述关键词归为混淆分类,标记为obfuscation_tag;又如关键词'webclient','net','Socket','Connections','WorkbookConnection'均是与网络连接相关的关键词,则将上述关键词归为网络连接分类,标记为webconnect_tag,类似的还有自动执行分类auto_tag、文件操作分类fileAction_tag、系统环境变量分类sysEnv_tag、操作系统库调用分类osdllCall_tag、窗口隐藏分类hideWindow_tag、进程操作分类processChange_tag、shell操作分类shellCall_tag。上述关键词及类别均不唯一,还可以包含其他类别等。
进一步地,基于关键词的分类数据统计每个文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个文档进行特征标记,包括:
S19:基于关键词的分类数据统计每个文档的恶意代码中包含的相同关键词的数量,并基于统计数据对每个文档进行特征标记。
也就是对获取的函数单元根据自身语法进行关键词的识别与映射,并取关键词的数量作为文档的特征标记。如VBA宏函数中包含混淆分类关键词'StrReverse',则将该关键词对应的映射特征“StrReverse”数量累加1;其他攻击方式如DDE、XLM宏等代码也均映射为统一的关键词。
在基于检测模型对待测Office文档进行恶意检测时,包括:
S20:对待测Office文档进行特征标记;
S21:将包含特征标记的待测Office文档输入至检测模型,基于检测模型对待测Office文档进行恶意检测。
即,用前述的对文档进行的一系列处理得到基于关键词数量的特征标记,并对待测文档进行标记,之后输入至检测模型中,由模型输出检测结果。
以下结合具体应用实例对前述实施例的方法进行说明:
例如,以哈希值为4e28d5cf0bb90add582515196e44f94cc1d24c9a的文件为例:
(1)判定输入的Office文档为OLE2文件还是OOXML文件。
如图2所示,读取文件的Magic,解析到文件前8个字节为“D0 CF 11 E0 A1 B1 1AE1”,确定该文件为MS Office 97-2003文档。
进一步根据该文档内包含'WordDocument',确定该文件为doc文件。
定位该文档的Module Stream,并在Module Stream中获取VBA代码偏移值ModuleOffset,Module Offset至末尾即为VBA代码。
在该文档中,VBA代码和p-code代码同时存在,则后续分析时以VBA代码为分析代码。
对上述VBA代码进行扫描,获取代码中的函数单元AutoOpen()、zFcKWSPrk()。
其中,函数AutoOpen()中包含自动执行分类auto_tag中的关键词AutoOpen,包含混淆分类obfuscation_tag中关键词Right、Left、Mid,包含shell操作分类shellCall_tag中的关键词shell、exe,函数zFcKWSPrk()中包含混淆分类obfuscation_tag中关键词Right、Left、Chr,包含网络连接分类webconnect_tag中关键词http,包含文件操作分类fileAction_tag中关键词DownloadFile,包含shell操作分类shell_tag中关键词shell,因此该文档的特征标记为上述关键词的个数。
将该文档的特征向量输入模型检测,检测模型将其判定为恶意。
基于上述方法,可实现对多种格式、多种攻击方式的恶意Office文档进行统一检测。而且有效解决了由于Office文档攻击手法多样导致特征的高维度问题,减少了由于高维度特征矩阵的稀疏性对样本的均衡和数量都带来极高的要求,降低了机器学习的学习成本。
如图3所示,本发明另一实施例还提供一种恶意Office文档检测装置100,包括:
第一处理模块,用于对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式及每个文档在所属格式下的文档结构特点;
第一确定模块,用于根据每个所述文档的格式及该格式下的文档结构特点分别确定每个所述文档的文档类型;
第二确定模块,用于扫描每个所述文档包含的内容,并基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容;
分类模块,用于分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,同一所述文档包含的恶意内容涉及的关键词类别为一个或多个;
统计模块,用于根据所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,所述关键词的分类数据中记录有每个类别包含的关键词;
训练模块,用于将所述关键词的分类数据及包含所述特征标记的文档作为训练数据训练目标模型,以形成能够判断输入的Office文档是否为恶意文档的检测模型;
检测模块,用于根据所述检测模型对待测Office文档进行恶意检测。
作为一可选实施例,所述对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式,包括:
读取所述Office文档集中的每个所述文档的前n个字节,以基于所述前n个字节的特征识别确定所述文档的格式。
作为一可选实施例,所述对获得的Office文档集中的每个文档进行识别处理,以确定每个文档在所属格式下的文档结构特点,包括:
基于每个所述文档的格式确定该格式文档的目标内容检测位置;
基于所述目标内容检测位置查询对应文档的目标内容,并基于匹配当前文档格式的检测策略对所述目标内容进行识别检测,所述检测策略用于对指定格式的文档内容是否包含目标文件或文件组成进行检测,不同格式的文档对应的目标文件或文件组成不同,所述目标文件或文件组成能够指示对应格式的文档的文档类型。
作为一可选实施例,所述扫描每个所述文档包含的内容,包括:
基于每个所述文档的格式确定每个所述文档的内容存放位置;
基于每个所述文档的内容存放位置及关于恶意内容攻击位置的先验知识预测每个所述文档内的恶意内容存储位置;
至少以每个所述文档的恶意内容存储位置作为重点扫描对象扫描每个所述文档的内容。
作为一可选实施例,所述先验知识为不同文档类型的文档会包含的恶意内容;
所述基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容,包括:
基于每个所述文档的文档类型及先验知识确定对应文档会包含的恶意内容;
基于确定的每个文档会包含的恶意内容分别对每个所述文档的扫描结果进行匹配查找,以确定出每个所述文档实际包含的恶意内容。
作为一可选实施例,所述恶意内容为恶意代码,所述分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,包括:
确定对应不同文档的恶意代码中的函数单元,及每个所述函数单元的关键词,同一所述文档的恶意代码中包含一个函数单元或多个不同的函数单元,不同的所述函数单元中的关键词的语言至少不完全相同;
分别确定所有所述关键词的语义,将具有相同语义的关键词归为同一类,并基于该类所述关键词的语义确定匹配的功能;
将属于相同功能类别的关键词进行记录,以得到所述关键词的分类数据。
作为一可选实施例,所述基于所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,包括:
基于所述关键词的分类数据统计每个所述文档的恶意代码中包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记。
作为一可选实施例,所述基于所述检测模型对待测Office文档进行恶意检测,包括:
对所述待测Office文档进行特征标记;
将包含所述特征标记的待测Office文档输入至所述检测模型,基于所述检测模型对待测Office文档进行恶意检测。
本发明另一实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现如上述任一项实施例所述的恶意Office文档检测方法。
进一步地,本发明一实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的恶意Office文档检测方法。应理解,本实施例中的各个方案具有上述方法实施例中对应的技术效果,此处不再赘述。
进一步地,本发明实施例还提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可执行指令在被执行时使至少一个处理器执行诸如上文所述实施例中的恶意Office文档检测方法。
另外,本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种恶意Office文档检测方法,其特征在于,包括:
对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式及每个文档在所属格式下的文档结构特点;
基于每个所述文档的格式及该格式下的文档结构特点分别确定每个所述文档的文档类型;
扫描每个所述文档包含的内容,并基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容;
分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,同一所述文档包含的恶意内容涉及的关键词类别为一个或多个;
基于所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,所述关键词的分类数据中记录有每个类别包含的关键词;
将所述关键词的分类数据及包含所述特征标记的文档作为训练数据训练目标模型,以形成能够判断输入的Office文档是否为恶意文档的检测模型;
基于所述检测模型对待测Office文档进行恶意检测;
其中,所述恶意内容为恶意代码,所述分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,包括:
确定对应不同文档的恶意代码中的函数单元,及每个所述函数单元的关键词,同一所述文档的恶意代码中包含一个函数单元或多个不同的函数单元,不同的所述函数单元中的关键词的语言至少不完全相同;
分别确定所有所述关键词的语义,将具有相同语义的关键词归为同一类,并基于该类所述关键词的语义确定匹配的功能;
将属于相同功能类别的关键词进行记录,以得到所述关键词的分类数据。
2.根据权利要求1所述的恶意Office文档检测方法,其特征在于,所述对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式,包括:
读取所述Office文档集中的每个所述文档的前n个字节,以基于所述前n个字节的特征识别确定所述文档的格式。
3.根据权利要求1所述的恶意Office文档检测方法,其特征在于,所述对获得的Office文档集中的每个文档进行识别处理,以确定每个文档在所属格式下的文档结构特点,包括:
基于每个所述文档的格式确定该格式文档的目标内容检测位置;
基于所述目标内容检测位置查询对应文档的目标内容,并基于匹配当前文档格式的检测策略对所述目标内容进行识别检测,所述检测策略用于对指定格式的文档内容是否包含目标文件或文件组成进行检测,不同格式的文档对应的目标文件或文件组成不同,所述目标文件或文件组成能够指示对应格式的文档的文档类型。
4.根据权利要求1所述的恶意Office文档检测方法,其特征在于,所述扫描每个所述文档包含的内容,包括:
基于每个所述文档的格式确定每个所述文档的内容存放位置;
基于每个所述文档的内容存放位置及关于恶意内容攻击位置的先验知识预测每个所述文档内的恶意内容存储位置;
至少以每个所述文档的恶意内容存储位置作为重点扫描对象扫描每个所述文档的内容。
5.根据权利要求1所述的恶意Office文档检测方法,其特征在于,所述先验知识为不同文档类型的文档会包含的恶意内容;
所述基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容,包括:
基于每个所述文档的文档类型及先验知识确定对应文档会包含的恶意内容;
基于确定的每个文档会包含的恶意内容分别对每个所述文档的扫描结果进行匹配查找,以确定出每个所述文档实际包含的恶意内容。
6.根据权利要求1所述的恶意Office文档检测方法,其特征在于,所述基于所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,包括:
基于所述关键词的分类数据统计每个所述文档的恶意代码中包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记。
7.根据权利要求1所述的恶意Office文档检测方法,其特征在于,所述基于所述检测模型对待测Office文档进行恶意检测,包括:
对所述待测Office文档进行特征标记;
将包含所述特征标记的待测Office文档输入至所述检测模型,基于所述检测模型对待测Office文档进行恶意检测。
8.一种恶意Office文档检测装置,其特征在于,包括:
第一处理模块,用于对获得的Office文档集中的每个文档进行识别处理,以确定每个所述文档的格式及每个文档在所属格式下的文档结构特点;
第一确定模块,用于根据每个所述文档的格式及该格式下的文档结构特点分别确定每个所述文档的文档类型;
第二确定模块,用于扫描每个所述文档包含的内容,并基于每个所述文档的扫描结果、文档类型及先验知识确定对应文档包含的恶意内容;
分类模块,用于分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,同一所述文档包含的恶意内容涉及的关键词类别为一个或多个;
统计模块,用于根据所述关键词的分类数据统计每个所述文档的恶意内容包含的相同关键词的数量,并基于统计数据对每个所述文档进行特征标记,所述关键词的分类数据中记录有每个类别包含的关键词;
训练模块,用于将所述关键词的分类数据及包含所述特征标记的文档作为训练数据训练目标模型,以形成能够判断输入的Office文档是否为恶意文档的检测模型;
检测模块,用于根据所述检测模型对待测Office文档进行恶意检测;
其中,所述恶意内容为恶意代码,所述分析获得的对应不同文档的恶意内容,并基于统一的分类标准对所述恶意内容的关键词进行分类,包括:
确定对应不同文档的恶意代码中的函数单元,及每个所述函数单元的关键词,同一所述文档的恶意代码中包含一个函数单元或多个不同的函数单元,不同的所述函数单元中的关键词的语言至少不完全相同;
分别确定所有所述关键词的语义,将具有相同语义的关键词归为同一类,并基于该类所述关键词的语义确定匹配的功能;
将属于相同功能类别的关键词进行记录,以得到所述关键词的分类数据。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现如权利要求1-7任一项所述的恶意Office文档检测方法。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制包括如权利要求1-7任一项所述的恶意Office文档检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311011005.XA CN116975865B (zh) | 2023-08-11 | 2023-08-11 | 恶意Office文档检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311011005.XA CN116975865B (zh) | 2023-08-11 | 2023-08-11 | 恶意Office文档检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116975865A CN116975865A (zh) | 2023-10-31 |
CN116975865B true CN116975865B (zh) | 2024-05-28 |
Family
ID=88474940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311011005.XA Active CN116975865B (zh) | 2023-08-11 | 2023-08-11 | 恶意Office文档检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116975865B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235716B (zh) * | 2023-11-14 | 2024-02-13 | 之江实验室 | 一种ooxml文档模板注入攻击的未知威胁防御方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149121A (zh) * | 2019-06-27 | 2020-12-29 | 深信服科技股份有限公司 | 一种恶意文件识别方法、装置、设备及存储介质 |
CN113987500A (zh) * | 2021-11-10 | 2022-01-28 | 北京天融信网络安全技术有限公司 | 一种恶意pdf文档检测方法、装置及电子设备 |
KR20220060843A (ko) * | 2020-11-05 | 2022-05-12 | 국민대학교산학협력단 | 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 |
CN115730313A (zh) * | 2022-12-05 | 2023-03-03 | 北京天融信网络安全技术有限公司 | 一种恶意文档检测方法、装置、存储介质及设备 |
CN116028936A (zh) * | 2023-02-24 | 2023-04-28 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
CN116414976A (zh) * | 2021-12-30 | 2023-07-11 | 中国科学院信息工程研究所 | 文档检测方法、装置及电子设备 |
-
2023
- 2023-08-11 CN CN202311011005.XA patent/CN116975865B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149121A (zh) * | 2019-06-27 | 2020-12-29 | 深信服科技股份有限公司 | 一种恶意文件识别方法、装置、设备及存储介质 |
KR20220060843A (ko) * | 2020-11-05 | 2022-05-12 | 국민대학교산학협력단 | 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 |
CN113987500A (zh) * | 2021-11-10 | 2022-01-28 | 北京天融信网络安全技术有限公司 | 一种恶意pdf文档检测方法、装置及电子设备 |
CN116414976A (zh) * | 2021-12-30 | 2023-07-11 | 中国科学院信息工程研究所 | 文档检测方法、装置及电子设备 |
CN115730313A (zh) * | 2022-12-05 | 2023-03-03 | 北京天融信网络安全技术有限公司 | 一种恶意文档检测方法、装置、存储介质及设备 |
CN116028936A (zh) * | 2023-02-24 | 2023-04-28 | 山东云天安全技术有限公司 | 一种基于神经网络的恶意代码检测方法、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116975865A (zh) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109922052B (zh) | 一种结合多重特征的恶意url检测方法 | |
CN107180192B (zh) | 基于多特征融合的安卓恶意应用程序检测方法和系统 | |
US9349006B2 (en) | Method and device for program identification based on machine learning | |
CN109714341A (zh) | 一种Web恶意攻击识别方法、终端设备及存储介质 | |
CN105224600B (zh) | 一种样本相似度的检测方法及装置 | |
US20170289082A1 (en) | Method and device for identifying spam mail | |
CN116975865B (zh) | 恶意Office文档检测方法、装置、设备及存储介质 | |
CN111897962A (zh) | 一种物联网资产标记方法及装置 | |
CN109063482B (zh) | 宏病毒识别方法、装置、存储介质及处理器 | |
CN112866023A (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
CN111368289B (zh) | 一种恶意软件检测方法和装置 | |
CN111723371B (zh) | 构建恶意文件的检测模型以及检测恶意文件的方法 | |
CN111988341B (zh) | 数据处理方法、装置、计算机系统和存储介质 | |
CN108446559A (zh) | 一种apt组织的识别方法及装置 | |
WO2020082763A1 (zh) | 基于决策树的钓鱼网站检测方法、装置及计算机设备 | |
CN106874760A (zh) | 一种基于层次式SimHash的Android恶意代码分类方法 | |
CN113254935A (zh) | 恶意文件识别方法、装置及存储介质 | |
CN111967503A (zh) | 多类型异常网页分类模型的构建方法、异常网页检测方法 | |
CN114024761B (zh) | 网络威胁数据的检测方法、装置、存储介质及电子设备 | |
CN112016317A (zh) | 基于人工智能的敏感词识别方法、装置及计算机设备 | |
CN114386511A (zh) | 基于多维度特征融合和模型集成的恶意软件家族分类方法 | |
CN110008701A (zh) | 基于elf文件特征的静态检测规则提取方法及检测方法 | |
CN113904834A (zh) | 基于机器学习的xss攻击检测方法 | |
Čeponis et al. | Evaluation of deep learning methods efficiency for malicious and benign system calls classification on the AWSCTD | |
CN110826062A (zh) | 恶意软件的检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |