CN113127862B - 一种xxe攻击检测方法、装置、电子设备及存储介质 - Google Patents

一种xxe攻击检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113127862B
CN113127862B CN201911414859.6A CN201911414859A CN113127862B CN 113127862 B CN113127862 B CN 113127862B CN 201911414859 A CN201911414859 A CN 201911414859A CN 113127862 B CN113127862 B CN 113127862B
Authority
CN
China
Prior art keywords
xxe
attack
xml document
analysis result
relation
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
Application number
CN201911414859.6A
Other languages
English (en)
Other versions
CN113127862A (zh
Inventor
张宏飞
黄忠强
文成龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201911414859.6A priority Critical patent/CN113127862B/zh
Publication of CN113127862A publication Critical patent/CN113127862A/zh
Application granted granted Critical
Publication of CN113127862B publication Critical patent/CN113127862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种XXE攻击检测方法,通过对待检测的XML文档进行语法分析,可得到该XML文档中各实体之间的引用关系,从而便于根据该引用关系判断出该XML文档中是否存在XXE攻击。相比于仅能够通过指令集禁止相关功能实现防范XXE攻击的现有技术,本方案提供了一种通过对XML文档内容进行分析发现存在的XXE攻击的方案,进而可以有针对性的对其中存在的XXE攻击部分进行防范和处理,使得正常的外部实体调用得以正常进行,减少对系统正常运行的影响。本申请还同时公开了一种XXE攻击检测装置、电子设备及可读存储介质,具有上述有益效果。

Description

一种XXE攻击检测方法、装置、电子设备及存储介质
技术领域
本申请涉及恶意内容检测领域,特别涉及一种XXE攻击检测方法、装置、电子设备及可读存储介质。
背景技术
XXE,英文全称为XML External Entity,中文名为XML外部实体注入。通过XML实体和“SYSTEM”或“PUBLIC”等关键词导致XML解析器可以从本地文件或者远程URI中读取数据,使得攻击者可以通过XML实体传递自己构造的恶意值,进而使处理程序解析它。当其引用外部实体时,攻击者可以通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。
狭义的XXE攻击仅指通过外部实体注入的攻击,但随着技术的发展,攻击方式也多种多样,逐渐将通过XML格式文档的一些其它类型攻击也统称为XXE攻击,进而形成了广义的XXE攻击。
然而在研究的过程中,申请人发现现有技术并没有合适的针对XXE攻击的检测手段,大多数只是通过XML文档本身拥有的指令集去屏蔽可能引发XXE攻击的功能,以PHP语言为例,可以通过libxml_disable_entity_loader(true)的指令集来禁用所有外部实体的调用,但此种方式虽然能够防止恶意的外部实体注入,也同时杜绝了正常的外部实体的引用,而正常外部实体的引用也是系统正常运行的一部分,会影响系统正常运行,禁止的方式无异于自断手脚。
因此,如何提供一种科学、合理的XXE攻击检测方式,以更好的发现和防范XXE攻击,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种XXE攻击检测方法、装置、电子设备及可读存储介质,旨在提供一种科学、合理的XXE攻击检测方式,以更好地发现和防范XXE攻击。
为实现上述目的,本申请首先提供了一种XXE攻击检测方法,包括:
获取待检测的XML文档;
对所述XML文档进行语法分析,得到语法分析结果;
根据所述语法分析结果检测是否存在XXE攻击。
可选的,所述对所述XML文档进行语法分析,得到语法分析结果,包括:
从所述XML文档中提取文档类型定义部分;
利用语法引擎解析所述文档类型定义部分,得到语法树;
根据所述语法树上各实体之间的关系得到实体之间的引用关系,并将所述引用关系作为所述语法分析结果。
可选的,所述根据所述语法分析结果检测是否存在XXE攻击,包括:
从所述语法分析结果中提取得到各实体之间的引用关系;
根据所述引用关系检测是否存在所述XXE攻击中的DOS攻击。
可选的,所述根据所述引用关系检测是否存在所述XXE攻击中的DOS攻击,包括:
判断所述引用关系中是否存在不同实体之间的循环调用;
若存在不同实体之间的循环调用,则确定存在所述DOS攻击中的循环调用攻击;
或,
判所述引用关系中是否存在按指数展开的不同实体;
若存在按指数展开的不同实体,则确定存在所述DOS攻击中的指数展开攻击。
可选的,所述根据所述语法分析结果检测是否存在XXE攻击,包括:
对所述语法分析结果进行语义分析,得到语义分析结果;
根据所述语义分析结果还原得到起始实体与最终实体之间的真实关系;
在各所述真实关系中筛选得到包含外部调用的外部调用链接;
判断与所述外部调用链接对应的外部内容是否存在恶意内容;
若存在恶意内容,则确定存在所述XXE攻击中的外部恶意内容注入攻击。
可选的,所述获取待检测的XML文档,包括:
获取待检测流量中包含的所有数据文件;
通过每个所述数据文件的内容类型字段或文件头部内容筛选得到待检测的XML文档。
可选的,所述在检测出存在所述XXE攻击之后,还包括:
屏蔽被检测为属于所述XXE攻击的目标实体的所有调用;
通过预设路径上报包含所述目标实体的攻击提示信息。
为实现上述目的,本申请还提供了一种XXE攻击检测装置,包括:
待测XML文档获取单元,用于获取待检测的XML文档;
语法分析单元,用于对所述XML文档进行语法分析,得到语法分析结果;
XXE攻击检测单元,用于根据所述语法分析结果检测是否存在XXE攻击。
可选的,所述语法分析单元包括:
文档类型定义部分提取子单元,用于从所述XML文档中提取文档类型定义部分;
解析子单元,用于利用语法引擎解析所述文档类型定义部分,得到语法树;
引用关系获取子单元,用于根据所述语法树上各实体之间的关系得到实体之间的引用关系,并将所述引用关系作为所述语法分析结果。
可选的,所述XXE攻击检测单元包括:
引用关系提取子单元,用于从所述语法分析结果中提取得到各实体之间的引用关系;
DOS攻击存在检测子单元,用于根据所述引用关系检测是否存在所述XXE攻击中的DOS攻击。
可选的,所述DOS攻击存在检测子单元包括:
循环调用存在检测模块,用于判断所述引用关系中是否存在不同实体之间的循环调用;
循环调用攻击确定模块,用于当存在不同实体之间的循环调用时,确定存在所述DOS攻击中的循环调用攻击;
或,
指数展开存在检测模块,用于判所述引用关系中是否存在按指数展开的不同实体;
指数展开攻击确定模块,用于当存在按指数展开的不同实体时,确定存在所述DOS攻击中的指数展开攻击。
可选的,所述XXE攻击检测单元包括:
语义分析子单元,用于对所述语法分析结果进行语义分析,得到语义分析结果;
真实关系还原子单元,用于根据所述语义分析结果还原得到起始实体与最终实体之间的真实关系;
外部调用链接筛选子单元,用于在各所述真实关系中筛选得到包含外部调用的外部调用链接;
恶意内容判断子单元,用于判断与所述外部调用链接对应的外部内容是否存在恶意内容;
外部恶意内容注入攻击确定子单元,用于当存在恶意内容时,确定存在所述XXE攻击中的外部恶意内容注入攻击。
可选地,所述待测XML文档获取单元包括:
数据文件获取子单元,用于获取待检测流量中包含的所有数据文件;
XML文档筛选子单元,用于通过每个所述数据文件的内容类型字段或文件头部内容筛选得到待检测的XML文档。
可选的,该XXE攻击检测装置还包括:
目标实体调用屏蔽单元,用于在检测出存在所述XXE攻击之后,屏蔽被检测为属于所述XXE攻击的目标实体的所有调用;
攻击提示信息上报子单元,用于通过预设路径上报包含所述目标实体的攻击提示信息。
为实现上述目的,本申请还提供了一种电子设备,包括:
存储器,用于存储XXE攻击检测程序;
处理器,用于执行所述XXE攻击检测程序时实现如上述内容所描述的XXE攻击检测方法的各步骤。
为实现上述目的,本申请还提供了一种可读存储介质,所述可读存储介质上存储有XXE攻击检测程序,所述XXE攻击检测程序被处理器执行时可实现如上述内容所描述的XXE攻击检测方法的各步骤。
本申请提供的XXE攻击检测方法包括:获取待检测的XML文档;对所述XML文档进行语法分析,得到语法分析结果;根据所述语法分析结果检测是否存在XXE攻击。
根据本申请提供的XXE攻击检测方法可知,本申请通过对待检测的XML文档进行语法分析,可得到该XML文档中各实体之间的引用关系,从而便于根据该引用关系判断出该XML文档中是否存在XXE攻击。相比于仅能够通过指令集禁止相关功能实现防范XXE攻击的现有技术,本方案提供了一种通过对XML文档内容正常分析发现存在的XXE攻击的方案,进而可以有针对性的对其中存在的XXE攻击部分进行防范和处理,使得正常的外部实体调用得以正常进行,减少对系统正常运行的影响。本申请同时还提供了一种XXE攻击检测装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种XXE攻击检测方法的流程图;
图2为本申请实施例提供的XXE攻击检测方法中一种对XML文档进行语法分析的方法的流程图;
图3为本申请实施例提供的XXE攻击检测中一种根据语法分析结果检测是否存在XXE攻击的方法的流程图;
图4为本申请实施例提供的XXE攻击检测中另一种根据语法分析结果检测是否存在XXE攻击的方法的流程图;
图5为本申请实施例提供的另一种XXE攻击检测方法的流程示意图;
图6为本申请实施例提供的一种XXE攻击检测装置的结构框图。
具体实施方式
本申请的目的是提供一种XXE攻击检测方法、装置、电子设备及可读存储介质,旨在提供一种科学、合理的XXE攻击检测方式,以更好的发现和防范XXE攻击。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
实施例一
请参见图1,图1为本申请实施例提供的一种XXE攻击检测方法的流程图,其包括以下步骤:
S101:获取待检测的XML文档;
本步骤旨在从待检测流量中获取到其中包含的XML文档。
其中,XML的英文全称为Extensible Markup Language,中文名为可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言,基于该语言形成的文档即为XML文档。由于XXE攻击仅能借助XML文档这一载体实现,因此需要首先从所有待检测流量中将XML文档筛选出来。
一种包括但不限于的从所有待检测流量中筛选得到待检测的XML文档的方式为:
获取待检测流量中包含的所有数据文件;
通过每个数据文件的内容类型字段或文件头部内容筛选得到待检测的XML文档。其中,XML文档的content-type字段(即内容类型字段)通常为application/xml、text/xml,因此可以基于这一特征来进行判断和筛选;同时,XML文档头部基于XML格式的要求,其一定存在诸如<?xml version=”1.0”>等符合XML头部声明规范的内容。当然,也可以通过其它类似的方式找到能够唯一确定属于XML文档的特征作为判别是否属于XML文档的依据,此处不作具体限定。
S102:对XML文档进行语法分析,得到语法分析结果;
在S101的基础上,本步骤旨在对筛选得到的XML文档进行语法分析,从而得到便于后续确定是否存在XXE攻击的语法分析结果。
本步骤针对XML文档进行的语法分析,目的是将XML文档中包含的实体与实体之间的引用关系提取出来。例如实体A引用实体B,实体C引用实体D,其中每个实体均拥有其对应的解释,实体之间的引用也是为了实现解释的复用。以文本<!ENTITY name‘John’>为例,语法分析能够解析出这串文本是在定义DTD实体,而且实体名是name,指向的内容为字符串‘John’。
通过语法分析提取得到各实体之间引用关系的方式多种多样,一种包括但不限于的实现方式可参见如图2所示的流程图,包括如下步骤:
S201:从XML文档中提取文档类型定义部分;
其中,文档类型定义部分,也通常为业内人员简称为DTD部分,其中,DTD为英文全称Document Type Definitions的缩写,DTD部分定义了XML文档的合法构建模块,其中包含着DTD实体(DTD实体是用于定义引用普通文本或特殊字符的快捷方式的变量,可以内部声明或外部引用)。除DTD部分之外,XML文档通常还包括其余两个部分,分别是可扩展的样式语言(Extensible Style Language,XSL)—XML的样式表语言,和可扩展链接语言(Extensible Link Language,XLL)。
S202:利用语法引擎解析文档类型定义部分,得到语法树;
在S201的基础上,本步骤旨在通过将语法引擎来对DTD部分的内容进行解析,从而得到作为解析结果的语法树。
S203:根据语法树上各实体之间的关系得到实体之间的引用关系,并将引用关系作为语法分析结果。
在S202的基础上,本步骤旨在根据语法树上各实体之间的关系得到引用关系,即各DTD实体之间的引用关系,通过语法树上呈现出的各DTD实体之间的层次关系得到。
S103:根据语法分析结果检测是否存在XXE攻击。
在S102的基础上,本步骤旨在根据得到的语法分析结果来检测是否存在XXE攻击。其中,基于语法分析结果中包含的各DTD实体之间的引用关系,通过不同的处理可以实现对大多数主流的XXE攻击的检测,例如直接基于引用关系进行的XXE攻击中的DOS子类攻击,或对各实体之间引用关系进行再处理后还原得到源实体与最终实体之间的解释关系,从而便于进行是否存在XXE攻击中的恶意内容的外部实体注入之类的攻击检测等。
进一步的,若经过S103的检测确定XML文档中存在XXE攻击,还可以及时的屏蔽被检测为属于XXE攻击的目标实体的所有调用,并同时可进一步优选地通过预设路径上报包含目标实体的攻击提示信息,以及时地进行处理从而避免XXE攻击侵入网络并造成危害。具体的,该预设路径可以包括界面弹窗、邮件、短信以及各式即时通信应用。
基于本实施例提供的XXE攻击检测方案可知,本申请通过对待检测的XML文档进行语法分析,可得到该XML文档中各实体之间的引用关系,从而便于根据该引用关系判断出该XML文档中是否存在XXE攻击。相比于仅能够通过指令集禁止相关功能实现防范XXE攻击的现有技术,本方案提供了一种通过对XML文档内容正常分析发现存在的XXE攻击的方案,进而可以有针对性的对其中存在的XXE攻击部分进行防范和处理,使得正常的外部实体调用得以正常进行,减少对系统正常运行的影响。
实施例二
在实施例一的基础上,本实施例针对S103,提供了一种如何根据语法分析结果判定XML文档中是否存在XXE攻击中的DOS子类攻击的方式,请参见如3所示的流程图,包括如下步骤:
S301:从语法分析结果中提取得到各实体之间的引用关系;
S302:根据引用关系检测是否存在XXE攻击中的DOS攻击。
DOS为Denial of Service的简称,即拒绝服务,造成DOS的攻击行为被称为DOS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DOS攻击有计算机网络宽带攻击和连通性攻击。DOS攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃,而在此攻击中并不包括侵入目标服务器或目标网络设备。这些服务资源包括网络带宽,文件系统空间容量,开放的进程或者允许的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。
基于引用关系可造成的DOS攻击有多种,其中比较常见的为循环调用和指数展开,其中,循环调用可以简单理解为诸如:实体A调用了实体B,实体B又返回来调用实体A的情况,一旦出现循环调用将导致调用操作不断进行,并造成死循环,导致网络设备出现报错、宕机等情况;指数展开则可以简单理解为:一个实体调用了多次另一个实体,以两次为例:实体A调用了两次实体B,例如<!ENTITY A“&B;&B;”>,之后实体B又调用了两次实体C,实体C又调用了两次实体D,从而占用大量的计算资源,随着调用的不断展开,将最终挤占完所有的计算资源,并导致网络设备死机甚至硬件损坏。
对应于上述两种不同的情况可分别通过以下两种具体操作实现:
循环调用检测:判断引用关系中是否存在不同实体之间的循环调用;若存在不同实体之间的循环调用,则确定存在DOS攻击中的循环调用攻击。
指数展开检测:判断引用关系中是否存在按指数展开的不同实体;若存在按指数展开的不同实体,则确定存在DOS攻击中的指数展开攻击。具体的,在判别时可以根据实际情况和判别精准度来自行调整判据,例如将指数展开检测的判据设置为3层,即只要发现引用关系中存在2层及以上的指数展开,就将其判定为属于指数展开攻击。
进一步的,除上述可以判别为XXE攻击的情况外,还可以基于以下其它策略来对其它情况进行判别:变量名或值的长度是否超长(超长的变量名或值可能会导致XML文档无法被识别或导致识别机制报错进而死机);实体引用次数是否过多,这两种也均属于DOS子类攻击的一种方式。
实施例三
在实施例一的基础上,本实施例针对S103,提供了一种如何根据语法分析结果判定XML文档中是否存在XXE攻击中的恶意内容试图通过外部注入方式实现攻击的方式,请参见如4所示的流程图,包括如下步骤:
S401:对语法分析结果进行语义分析,得到语义分析结果;
S402:根据语义分析结果还原得到起始实体与最终实体之间的真实关系;
语义分析是建立在先进行过语法分析的基础上的一种分析方式,目的在将通过语法分析提取出的各实体之间的引用关系,按照引用顺序进行解释还原,最终得到起始实体与最终实体之间的真实关系。
以文本<!ENTITY name‘John’>和<!ENTITY greet‘This is&name;’>为例,<!ENTITY name‘John’>是定义了一个解释具体为John的name实体,<!ENTITY greet‘Thisis&name;’>则是通过引用name实体从而将该实体的解释对接在“This is”之后,即最终通过语义分析之后,就能够得到“This is John”的真实关系。实际情况下实体之间的应用可以极其复杂,攻击者经常使用此种方式隐藏实体的真实内容。因此,通过还原数据包中的恶意内容,可以便于后续的检测。
S403:在各真实关系中筛选得到包含外部调用的外部调用链接;
在S402的基础上,通过语义分析对真实关系的还原,使得是否属于外部调用一目了然,本步骤旨在通过对各真实关系进行筛选,从而得到包含外部调用的外部调用链接。
S404:判断与外部调用链接对应的外部内容是否存在恶意内容,若是,则执行S405,否则执行S406;
S405:确定存在XXE攻击中的外部恶意内容注入攻击;
S406:确定不存在XXE攻击中的外部恶意内容注入攻击。
S404、S405以及S406则是通过对外部调用链接对应的外部内容是否存在恶意内容,进而判断这一条外部调用是否属于视图通过外部调用诸如恶意内容的XXE攻击。具体的,恶意内容的判定可以通过特征、网站域名等多种方式进行,此处不再具体说明。
进一步的,除上述基于对外部调用链接的判别机制之外,还可以包括基于还原得到的真实关系判别是否有实体视图应用一些内部敏感文件(这些对应XXE的非法访问),如果发现其引用了不应该被引用的内部敏感文件,在一定程度上也可以视其进行了XXE攻击。
更进一步的,为了尽可能的避免由于不当判别引起的误报,还可以增加误报排除机制,例如使用合法域名库对XXE攻击中的域名进行合法性判别。在发生域名误报时可以通过往域名库中添加白名单来消除误报。这种误报消除机制有利于控制整个XXE攻击检测机制的误报,减少对客户业务系统的影响。
同时,考虑到攻击手段的不断改进和编译,还可以借助深度学习算法或机器学习算法来对作为判据的特征进行处理,以便于识别到简单调整后的同类型的攻击。
为便于理解本方案,本申请还提供了如图5流程图所示的一种XXE攻击检测和处理的完整流程示意图,针对待检测流量首先进行XML文档的识别,针对XML文档依次进行了语法和语义分析,基于最终的分析结果在判黑策略(即判别哪些存在XXE攻击,此处使用“黑”指代恶意内容,“白”则指代与恶意内容相对的正常内容)的检测和判别下将其分为黑XML文档和白XML文档,并针对黑XML文档执行拦截操作防止其进入网络造成危害,放过白XML文档得以让正常内容得以执行。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图6,图6为本申请实施例提供的一种XXE攻击检测装置的结构框图,该装置可以包括:
待测XML文档获取单元100,用于获取待检测的XML文档;
语法分析单元200,用于对所述XML文档进行语法分析,得到语法分析结果;
XXE攻击检测单元300,用于根据所述语法分析结果检测是否存在XXE攻击。
其中,该语法分析单元200可以包括:
文档类型定义部分提取子单元,用于从所述XML文档中提取文档类型定义部分;
解析子单元,用于利用语法引擎解析所述文档类型定义部分,得到语法树;
引用关系获取子单元,用于根据所述语法树上各实体之间的关系得到实体之间的引用关系,并将所述引用关系作为所述语法分析结果。
其中,该XXE攻击检测单元300可以包括:
引用关系提取子单元,用于从所述语法分析结果中提取得到各实体之间的引用关系;
DOS攻击存在检测子单元,用于根据所述引用关系检测是否存在所述XXE攻击中的DOS攻击。
其中,该DOS攻击存在检测子单元可以包括:
循环调用存在检测模块,用于判断所述引用关系中是否存在不同实体之间的循环调用;
循环调用攻击确定模块,用于当存在不同实体之间的循环调用时,确定存在所述DOS攻击中的循环调用攻击;
或,
指数展开存在检测模块,用于判断所述引用关系中是否存在按指数展开的不同实体;
指数展开确定模块,用于当存在按指数展开的不同实体时,确定存在所述DOS攻击中的指数展开攻击。
其中,该XXE攻击检测单元300可以包括:
语义分析子单元,用于对所述语法分析结果进行语义分析,得到语义分析结果;
真实关系还原子单元,用于根据所述语义分析结果还原得到起始实体与最终实体之间的真实关系;
外部调用链接筛选子单元,用于在各所述真实关系中筛选得到包含外部调用的外部调用链接;
恶意内容判断子单元,用于判断与所述外部调用链接对应的外部内容是否存在恶意内容;
外部恶意内容注入攻击确定子单元,用于当存在恶意内容时,确定存在所述XXE攻击中的外部恶意内容注入攻击。
其中,该待测XML文档获取单元100可以包括:
数据文件获取子单元,用于获取待检测流量中包含的所有数据文件;
XML文档筛选子单元,用于通过每个所述数据文件的内容类型字段或文件头部内容筛选得到待检测的XML文档。
进一步的,该XXE攻击检测装置还可以包括:
目标实体调用屏蔽单元,用于在检测出存在所述XXE攻击之后,屏蔽被检测为属于所述XXE攻击的目标实体的所有调用;
攻击提示信息上报子单元,用于通过预设路径上报包含所述目标实体的攻击提示信息。
本实施例作为对应于上述方法实施例的装置实施例存在,具有方法实施例的全部有益效果,此处不再一一赘述。
基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (9)

1.一种XXE攻击检测方法,其特征在于,包括:
获取待检测的XML文档;
对所述XML文档进行语法分析,得到语法分析结果;语法分析结果包括该XML文档中各实体之间的引用关系;
根据所述语法分析结果检测是否存在XXE攻击;
其中,所述根据所述语法分析结果检测是否存在XXE攻击,包括:根据该引用关系判断出该XML文档中是否存在XXE攻击;
并且,所述对所述XML文档进行语法分析,得到语法分析结果,包括:从所述XML文档中提取文档类型定义部分;利用语法引擎解析所述文档类型定义部分,得到语法树;根据所述语法树上各实体之间的关系得到实体之间的引用关系,并将所述引用关系作为所述语法分析结果。
2.根据权利要求1所述的XXE攻击检测方法,其特征在于,所述根据所述语法分析结果检测是否存在XXE攻击,包括:
从所述语法分析结果中提取得到各实体之间的引用关系;
根据所述引用关系检测是否存在所述XXE攻击中的DOS攻击。
3.根据权利要求2所述的XXE攻击检测方法,其特征在于,所述根据所述引用关系检测是否存在所述XXE攻击中的DOS攻击,包括:
判断所述引用关系中是否存在不同实体之间的循环调用;
若存在不同实体之间的循环调用,则确定存在所述DOS攻击中的循环调用攻击;
或,
判断所述引用关系中是否存在按指数展开的不同实体;
若存在按指数展开的不同实体,则确定存在所述DOS攻击中的指数展开攻击。
4.根据权利要求1所述的XXE攻击检测方法,其特征在于,所述根据所述语法分析结果检测是否存在XXE攻击,包括:
对所述语法分析结果进行语义分析,得到语义分析结果;
根据所述语义分析结果还原得到起始实体与最终实体之间的真实关系;
在各所述真实关系中筛选得到包含外部调用的外部调用链接;
判断与所述外部调用链接对应的外部内容是否存在恶意内容;
若存在恶意内容,则确定存在所述XXE攻击中的外部恶意内容注入攻击。
5.根据权利要求1所述的XXE攻击检测方法,其特征在于,所述获取待检测的XML文档,包括:
获取待检测流量中包含的所有数据文件;
通过每个所述数据文件的内容类型字段或文件头部内容筛选得到待检测的XML文档。
6.根据权利要求1至5任一项所述的XXE攻击检测方法,其特征在于,在检测出存在所述XXE攻击之后,还包括:
屏蔽被检测为属于所述XXE攻击的目标实体的所有调用;
通过预设路径上报包含所述目标实体的攻击提示信息。
7.一种XXE攻击检测装置,其特征在于,包括:
待测XML文档获取单元,用于获取待检测的XML文档;
语法分析单元,用于对所述XML文档进行语法分析,得到语法分析结果;语法分析结果包括该XML文档中各实体之间的引用关系;
XXE攻击检测单元,用于根据所述语法分析结果检测是否存在XXE攻击;
其中,所述XXE攻击检测单元,具体用于根据该引用关系判断出该XML文档中是否存在XXE攻击;
并且,该语法分析单元,包括:
文档类型定义部分提取子单元,用于从所述XML文档中提取文档类型定义部分;
解析子单元,用于利用语法引擎解析所述文档类型定义部分,得到语法树;
引用关系获取子单元,用于根据所述语法树上各实体之间的关系得到实体之间的引用关系,并将所述引用关系作为所述语法分析结果。
8.一种电子设备,其特征在于,包括:
存储器,用于存储XXE攻击检测程序;
处理器,用于在执行所述XXE攻击检测程序时实现如权利要求1至6任一项所述的XXE攻击检测方法的各步骤。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有XXE攻击检测程序,所述XXE攻击检测程序在被处理器执行时实现如权利要求1至6任一项所述的XXE攻击检测方法的各步骤。
CN201911414859.6A 2019-12-31 2019-12-31 一种xxe攻击检测方法、装置、电子设备及存储介质 Active CN113127862B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911414859.6A CN113127862B (zh) 2019-12-31 2019-12-31 一种xxe攻击检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911414859.6A CN113127862B (zh) 2019-12-31 2019-12-31 一种xxe攻击检测方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113127862A CN113127862A (zh) 2021-07-16
CN113127862B true CN113127862B (zh) 2023-05-12

Family

ID=76770475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911414859.6A Active CN113127862B (zh) 2019-12-31 2019-12-31 一种xxe攻击检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113127862B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117294527B (zh) * 2023-11-22 2024-02-27 北京微步在线科技有限公司 一种攻击判定方法、装置、存储介质及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056121A1 (en) * 2015-09-28 2017-04-06 Minded Security S.R.L. Method for the identification and prevention of client-side web attacks
CN109067813A (zh) * 2018-10-24 2018-12-21 腾讯科技(深圳)有限公司 网络漏洞检测方法、装置、存储介质和计算机设备
CN110532779A (zh) * 2019-07-19 2019-12-03 中移(杭州)信息技术有限公司 一种漏洞检测的方法、装置、终端及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805345B2 (en) * 2017-09-29 2020-10-13 Paypal, Inc. Blind injection attack mitigation
US10764319B2 (en) * 2017-10-05 2020-09-01 Honeywell International Inc. Intelligent automated security vulnerability detection and analysis for industrial internet of things (IIOT) devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056121A1 (en) * 2015-09-28 2017-04-06 Minded Security S.R.L. Method for the identification and prevention of client-side web attacks
CN109067813A (zh) * 2018-10-24 2018-12-21 腾讯科技(深圳)有限公司 网络漏洞检测方法、装置、存储介质和计算机设备
CN110532779A (zh) * 2019-07-19 2019-12-03 中移(杭州)信息技术有限公司 一种漏洞检测的方法、装置、终端及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Guide to XML eXternal Entity Processing;Rachel Hogue;《cs.tufts.edu》;20151231;第1-10页 *
XML解析安全问题及对策研究;顾韵华等;《计算机安全》;20091115(第11期);全文 *
XXE漏洞及其防御策略研究;应宗浩等;《科技风》;20180705(第19期);全文 *
一种基于SOA的SOAP消息安全传输机制;华悦等;《计算机科学》;20120615(第06期);全文 *

Also Published As

Publication number Publication date
CN113127862A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
US20040205411A1 (en) Method of detecting malicious scripts using code insertion technique
CN111835777B (zh) 一种异常流量检测方法、装置、设备及介质
EP1560112A1 (en) Detection of files that do not contain executable code
CN111726364B (zh) 一种主机入侵防范方法、系统及相关装置
CN109688137A (zh) 一种sql注入攻击的检测方法、系统及相关组件
CN105357179A (zh) 网络攻击的处理方法及装置
CN111368289A (zh) 一种恶意软件检测方法和装置
CN113055399A (zh) 注入攻击的攻击成功检测方法、系统及相关装置
CN101895517B (zh) 一种脚本语义提取方法和提取装置
CN113127862B (zh) 一种xxe攻击检测方法、装置、电子设备及存储介质
KR100670209B1 (ko) 파라미터 상태 추적을 통한 웹 응용프로그램 취약점의소스코드 분석 장치 및 방법
CN115499211A (zh) 一种基于流量特征的规则生成方法及生成装置
CN116324773A (zh) 用于保护智能合约免受攻击的方法和装置
CN111245899A (zh) 一种web服务环境下非法报文的处理方法及系统
CN114091031A (zh) 基于白规则的类加载防护方法及装置
CN115913655B (zh) 一种基于流量分析和语义分析的Shell命令注入检测方法
CN113138913A (zh) Java代码注入检测方法、装置、设备及存储介质
CN115442109A (zh) 网络攻击结果的确定方法、装置、设备及存储介质
KR101725399B1 (ko) 호스트 레벨 기반 악성 스크립트 탐지 및 실행 방지 장치와 악성 스크립트 탐지 및 실행 방지 방법
CN113886812A (zh) 检测防护方法、系统、计算机设备及可读存储介质
CN115774873A (zh) 一种跨站脚本攻击的检测方法、装置、设备及存储介质
CN106156634B (zh) 一种识别Web程序漏洞的方法
CN113139183B (zh) 一种检测方法、装置、设备及存储介质
CN115296895B (zh) 请求响应方法、装置、存储介质及电子设备
CN116582366B (zh) Web攻击防范方法、装置和系统、存储介质

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