掌桥专利:专业的专利平台
掌桥专利
首页

一种OOXML文档模板注入攻击的未知威胁防御方法及装置

文献发布时间:2024-04-18 19:58:53


一种OOXML文档模板注入攻击的未知威胁防御方法及装置

技术领域

本发明涉及计算机安全技术领域,尤其涉及一种OOXML文档模板注入攻击的未知威胁防御方法及装置。

背景技术

现有技术中,静态检测技术无法有效应对0 day漏洞等未知威胁,且特征库更新存在较大的滞后性,动态检测技术也存在被动态免杀技术绕过的可能,动态运行时恶意载荷已经具备了运行条件,出现的状况难以预料,并且动态检测技术会消耗系统资源,影响运行效率,降低用户使用体验;

因此,本发明针对office文档安全性无法得到有效保障的难题,打破传统思路,从数据文件的内容格式出发,依据预设的可信度规则,对其进行清洗,确保文件在未被运行前将威胁降至最低,且预设方式灵活,可以根据需求自定可信度规则来实现对可用性及安全性的侧重方向,在最严苛的信任度条件下,理论上可以预防所有模板注入类型的0 day攻击及其他未知威胁,包括已知威胁也能够被一并清理,并且此技术在不需要打开未知文档的前提下即可对其进行清理,恶意载荷也就无法在被清理时获得执行权限,很好的规避了动态监测技术的弊端。

发明内容

本发明的目的在于针对现有技术的不足,提出一种OOXML文档模板注入攻击的未知威胁防御方法及装置,使得用户可以在不打开文件的情况下,降低文档中存在模板注入攻击的威胁风险。

为实现上述目的,本发明提供了一种OOXML文档模板注入攻击的未知威胁防御方法,包括以下步骤:

(1)获取待处理的OOXML文档,初始化威胁地图和可信度字典;

(2)判断待处理的OOXML文档是否为加密文档;若是,则先通过用户或计算机程序解除密码,再通过压缩算法将待处理的OOXML文档进行压缩并还原,得到各类组件文件;否则直接通过压缩算法将待处理的OOXML文档进行压缩并还原,得到各类组件文件;

(3)对所述各类组件文件进行结构识别,确定其归属于哪类威胁地图;依据预设的威胁地图,遍历各类组件文件,将匹配到的、非完全可信的文件存储到一个列表变量中;

(4)通过XML格式标准对列表变量中文件的可用性进行校验,剔除文件中未闭合、异常符号标签的不可用数据;

(5)基于预设的可信度字典,通过解析文件中各个XML标签的标签名赋予其初始可信度评分;再根据XML标签名对应的标签值,通过匹配规则进行匹配,依据匹配时的匹配数量、匹配长度给出各个XML标签的威胁分值,最后得到威胁评分;

(6)判断步骤(5)得到的威胁评分是否低于阈值,若是,则对文件中的XML标签进行威胁清除,即删除整个XML标签或修改其标签值;否则进入步骤(8);

(7)进行二次校验,重复步骤(5)和步骤(6),直至步骤(6)中的威胁评分大于或等于阈值;

(8)将处理后的所有组件文件通过压缩算法重新打包压缩,还原回OOXML文档,此时的OOXML文档即为被清理病毒载荷后的文件。

进一步地,所述步骤(1)中,威胁地图采用黑名单形式,以列表形式存储规定的可能携带攻击载荷的文件;威胁地图内置了不同格式所使用的可信度字典,根据待处理的OOXML文档的格式初始化威胁地图;可信度字典定义了可能存在威胁风险的标签集合,标签集合中的每个标签内定义了初始可信度评分、各标签值的匹配规则,以及定义了基于长度或匹配次数的评分标准。

进一步地,所述步骤(2)中,压缩算法基于ECMA-376 Office Open XML格式标准。

进一步地,所述步骤(3)中,对所述各类组件文件进行结构识别包括结构识别和名称识别。

进一步地,所述步骤(5)中,所述匹配规则包括正则表达式匹配和字符串匹配。

进一步地,所述步骤(5)中,所述威胁评分由初始XML标签的可信度评分与威胁分值相加得到。

进一步地,所述阈值大于或等于60。

为实现上述目的,本发明还提供了一种OOXML文档模板注入攻击的未知威胁防御装置,包括一个或多个处理器,用于实现上述的OOXML文档模板注入攻击的未知威胁防御方法。

为实现上述目的,本发明还提供了一种电子设备,包括存储器和处理器,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的OOXML文档模板注入攻击的未知威胁防御方法。

为实现上述目的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的OOXML文档模板注入攻击的未知威胁防御方法。

与现有技术相比,本发明的有益效果在于:

1、不同于传统对文件进行动态、静态分析的检测技术,本发明采取攻击载荷清除的方式,对输入文件的恶意攻击载荷统一进行破坏,主动出击,从根源上阻止了攻击实施的可能性,规避了传统杀毒软件只能检测且存在漏检的技术弊端。

2、本发明相较于传统动态检测技术,不需要打开文档,在对文档进行解体和处理的过程中不会触发恶意攻击。

3、本发明打破传统杀毒软件只能检测的僵局,提出了一种全新的防御方案,在基本不影响用户正常使用文档的情况下,同时对恶意文档的防御能力具备通用性,在理论上可以预防所有已知的模板注入类型攻击及同类型的变种攻击、nday漏洞、0day漏洞等攻击手段。

附图说明

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

图1为本发明方法的流程示意图;

图2为本发明中标签威胁评分流程示意图;

图3为本发明中威胁地图配置文件的结构示意图;

图4为本发明模板注入攻击文档的攻击载荷示意图;

图5为本发明装置的结构示意图;

图6为一种电子设备的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面结合附图及实施例,对本发明进行进一步详细说明。应当理解,本发明可以用许多不同的形式实现,而不应当认为限于这里所述的实施例。相反,提供这些实施例以便使本发明公开透明且完整,并且将向本领域技术人员充分表达本发明的范围。此外,下面所描述的各实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明的提出的一种OOXML文档模板注入攻击的未知威胁防御方法及装置,使得用户可以在不打开文件的情况下,降低文档中存在模板注入攻击的威胁风险。

参见图1,本发明提供的一种OOXML文档模板注入攻击的未知威胁防御方法,该方法包括以下步骤:

步骤一:获取待处理的OOXML文档,初始化威胁地图和可信度字典。

具体地,读取自定义配置文件,结构如图3所示每种文件类型拥有独立的可信度字典,每个字典中对可能出现的标签预设了不同的匹配规则及相应的标签威胁评分计算规则,对威胁地图、可信度字典进行初始化,其中威胁地图(thread_map)采用黑名单形式,以列表形式存储规定的可能携带攻击载荷(payload)的文件,以供遍历清理;威胁地图内置了不同格式所使用的特定字典(即可信度字典),可以根据待处理的OOXML文档的格式的不同,初始化为不同内容的威胁地图;可信度字典(thread_dict)定义了可能存在威胁风险的标签集合,可信度字典中的每个标签内定义了其初始可信度评分,其次还定义了各标签值的匹配规则,匹配规则如正则表达式、字符串匹配等,以及定义了基于长度或匹配次数的评分标准;设定特殊威胁处置规则,对特定标签,特定标签即无法使用分值累计形式来评估恶意程度的标签,清除规定了特定的处理方式,如:不计数其得分直接对其进行剔除等不限于方案主体处理逻辑的特殊操作。

步骤二:判断待处理的OOXML文档是否为加密文档;若是,则先通过用户或计算机程序解除密码,再通过压缩算法将待处理的OOXML文档进行压缩并还原,得到各类组件文件;否则直接通过压缩算法将待处理的OOXML文档进行压缩并还原,得到各类组件文件。

具体地,通过ECMA-376 Office Open XML 格式标准所规定的压缩算法将待处理的OOXML文档进行压缩并还原,以便于后续处理,采用ECMA-376 Office Open XML 格式标准所规定的压缩算法能够有效地减小文件的体积,并且不会损失任何数据。在还原的过程中,文件将被解压缩并恢复成各类组件文件,例如:PowerPoint文档还原后的文件结构中,PPT文件 / ppt / _slides / _rels目录下所包含的文件就是存储远程模版的路径之一,由于OOXML的格式标准所规定,这些组件文件将按照特定的文件夹结构存储在产出的文件夹中。但是,有些输入文件可能无法正常进行还原,因其文件本身损坏、压缩算法不合规或者缺少必要标识信息等原因,对于这些无法正常进行还原的文件,将会被丢弃并记录在日志中,以便于后续的排查和处理。另外,对于带有密码加密的文档,也无法在这一步骤进行正常的还原。这是由于Word等OOXML文档本身提供了密码保护功能,需要先解密才能进行解压缩。因此,这些带有密码加密的文档可以先通过用户解除密码,或将密码通过计算机程序来实现自动解密,解密后再通过ECMA-376 Office Open XML 格式标准所规定的压缩算法将待处理的OOXML文档进行压缩并还原。

步骤三:对所述各类组件文件进行结构识别,确定其归属于哪类威胁地图,遍历各类组件文件,依据预设的威胁地图,将匹配到的、非完全可信的文件存储到一个列表变量中。

具体地,对压缩还原后的各类组件文件进行结构识别,如doc、xls、ppt等,每一种文件类型在ECMA-376 Office Open XML 格式标准中所规定的结构树也不相同,因此需要依据其压缩还原后各类组件文件的结构及名称,确定其归属于哪类威胁地图,遍历步骤二所产出的所有文件,依据预设的威胁地图,遍历压缩还原得到的文件产物,将其中匹配到存在于威胁地图中的非完全可信的文件存储到一个列表变量中供步骤四和步骤五进行遍历。

步骤四:通过XML格式标准对列表变量中文件的可用性进行校验,剔除文件中未闭合、异常符号标签的不可用数据。

具体地,通过XML格式标准对文件可用性进行校验,剔除文件中未闭合、异常符号标签等不可用数据,在输入评分之前对文件进行内容可用性、内容完整性校验,从而降低未知攻击形式触发处理模块异常的几率。

步骤五:基于预设的可信度字典,通过解析文件中各个XML标签的标签名赋予其初始可信度评分;再根据XML标签名对应的标签值,通过正则表达式、字符串的匹配规则进行匹配,依据不同匹配规则进行匹配时的匹配数量、匹配长度给出各个XML标签的威胁分值,最后得到威胁评分。

具体地,依据预设的可信度字典,比对文件中的XML标签名及XML标签值,依据不同计算规则给出该标签最后总体的威胁评分;流程如图2所示,输入文件后,依据可信度字典,通过解析其文件中存在的所有标签的名称赋予其初始可信度评分,这个分值取于一个 [0,100] 的区间中;再通过标签值匹配正则表达式、字符串等匹配规则,依据不同匹配规则的匹配数量、匹配长度来给出标签威胁分值;例如基于命中次数的分值计算规则:标签威胁分值=命中次数*风险倍数*分值基础;将初始可信度评分、标签威胁分值总和两者相加得出此标签的最终评分(即威胁评分)。

步骤六:判断步骤五得到的威胁评分是否低于阈值,若是,则对文件中的XML标签进行威胁清除,即删除整个XML标签或修改其标签值;否则进入步骤八。

具体地,依据步骤五给出的威胁评分对文件内容的XML标签进行选择性删除整个标签或修改其标签值,如图4所示,在一个负责存储模版的XML文件中,每一个Relationship(关系)标签都含有Target(路径)、Type(类型)、Id(序列)三个属性。其中Type属性记录了该模版的类型、Id属性记录了该模版在文档中的序列、Target属性记录了模版所在的路径,此步骤通过预设配置读取威胁清除阈值,阈值越高代表对威胁的容忍度越低,阈值越低代表对可用性的要求越高,例如:设定的阈值为大于或等于60,则代表各个威胁标签在经过威胁评估后给出的得分如果低于60就会被认定具有模板注入攻击的风险,在此步骤下,将会对这类标签的标签值清空或将整个标签摘除来达到预防未知攻击的效果,例如:在绝大多数的情况下,“文档模板和加载项”过于专业,普通用户基本上没有使用场景,类似于VBA宏,但却是目前模板注入攻击的主流技术,具有极大的风险,在此场景下对步骤五匹配到的远程模板标签给出极低的评分,并在本步骤中将其删除,可以有效实现攻击无效化。

步骤七:进行二次校验,重复步骤(5)和步骤(6),直至步骤(6)中的威胁评分大于或等于阈值。

具体地,如果步骤六有删除或修改内容(即有任意标签低于了安全评分阈值),则进行二次校验,返回步骤五,重新进行风险得分评估和攻击载荷清理步骤,直至威胁清除模块认为输入内容已经足够安全,输出结果并未做出任何清理,处于完全可信状态,才可进入下一步骤,此步骤的目的是为了实现对payload双写绕过等黑客常用的规避手段进行防御。

二次校验包括:对比文件输入输出的前后一致性来评估安全性以及决定是否需要再次进行威胁清除;对威胁清除之后仍可能存在风险的产出文件,复用了本发明中步骤五的威胁评分和步骤六的威胁清除,以此实现对黑客常用双写攻击载荷等规避手段的反制。

步骤八:将处理后的所有文件以压缩算法重新打包压缩,还原回OOXML文档,以确保用户能够直接通过正常的Office软件打开处理后的文档,并为其恢复其初始的文件后缀,得到的文档即为被清理病毒载荷后的文件。

与前述OOXML文档模板注入攻击的未知威胁防御方法的实施例相对应,本发明还提供了OOXML文档模板注入攻击的未知威胁防御装置的实施例。

参见图5,本发明实施例提供的OOXML文档模板注入攻击的未知威胁防御装置,包括一个或多个处理器,用于实现上述实施例中的OOXML文档模板注入攻击的未知威胁防御方法。

本发明OOXML文档模板注入攻击的未知威胁防御装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明OOXML文档模板注入攻击的未知威胁防御装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

与前述OOXML文档模板注入攻击的未知威胁防御方法的实施例相对应,本申请实施例还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的OOXML文档模板注入攻击的未知威胁防御方法。如图6所示,为本申请实施例提供的OOXML文档模板注入攻击的未知威胁防御方法所在任意具备数据处理能力的设备的一种硬件结构图,除了图6所示的处理器、内存、DMA控制器、磁盘、以及非易失内存之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。

与前述OOXML文档模板注入攻击的未知威胁防御方法的实施例相对应,本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的OOXML文档模板注入攻击的未知威胁防御方法。

所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。

相关技术
  • 一种命令注入攻击的检测方法、装置及计算机设备
  • 一种丰富工业控制系统攻击样本的工业未知威胁构建方法与威胁生成系统
  • 一种基于语法变换的SQL注入攻击防御系统及防御方法
技术分类

06120116506723