CN113111345A - 一种xxe攻击检测方法、系统、设备及计算机存储介质 - Google Patents

一种xxe攻击检测方法、系统、设备及计算机存储介质 Download PDF

Info

Publication number
CN113111345A
CN113111345A CN202010032695.7A CN202010032695A CN113111345A CN 113111345 A CN113111345 A CN 113111345A CN 202010032695 A CN202010032695 A CN 202010032695A CN 113111345 A CN113111345 A CN 113111345A
Authority
CN
China
Prior art keywords
xxe
graph
detection
xml data
attack
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.)
Granted
Application number
CN202010032695.7A
Other languages
English (en)
Other versions
CN113111345B (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 CN202010032695.7A priority Critical patent/CN113111345B/zh
Publication of CN113111345A publication Critical patent/CN113111345A/zh
Application granted granted Critical
Publication of CN113111345B publication Critical patent/CN113111345B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种XXE攻击检测方法、系统、设备及计算机存储介质,获取待检测XML数据;将待检测XML数据转换为对应的检测图;对检测图进行遍历、挖掘,得到挖掘结果;基于挖掘结果判断待检测XML数据是否携带XXE攻击。本申请中,将待检测XML数据转换为对应的检测图,由于图的联通性及传递性,即使待检测XML数据中携带有隐藏攻击信息,也可以通过对检测图进行遍历、挖掘,得到与隐藏攻击信息对应的原始攻击信息,这样,可以对待检测XML数据中的隐藏攻击信息一并进行判定,提高了XXE攻击的检测准确性,且不影响XML的业务。本申请提供的一种XXE攻击检测系统、设备及计算机可读存储介质也解决了相应技术问题。

Description

一种XXE攻击检测方法、系统、设备及计算机存储介质
技术领域
本申请涉及计算机安全技术领域,更具体地说,涉及一种XXE攻击检测方法、系统、设备及计算机存储介质。
背景技术
可扩展标记语言,是标准通用标记语言的子集,简称XML(eXtensible MarkupLanguage),是一种用于标记电子文件使其具有结构性的标记语言。在XML的应用过程中,当XML携带外部实体时,XML解析器在解析外部实体时,会获取外部实体的内容并插入到XML文档,而外部实体中携带攻击信息时,便会造成XXE(XML External Entity Injection)攻击。为了保证计算机的安全,需检测并防御XXE攻击。
现有的一种XXE攻击检测方法为:使用开发语言提供的禁用外部实体的方法禁用外部实体,此种方法虽然组织力XXE攻击,但从根本上禁止令XML语言外部实体的相关功能,影响XML的业务;另一种XXE攻击检测方法为:基于规则匹配过滤用户提交的XML数据,但是当匹配关键词等编码和嵌套隐藏后,便无法检测出XXE攻击。
综上所述,如何在不影响XML业务的前提下准确对XXE攻击进行检测是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种XXE攻击检测方法,其能在一定程度上解决如何在不影响XML业务的前提下准确对XXE攻击进行检测的技术问题。本申请还提供了一种XXE攻击检测系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种XXE攻击检测方法,包括:
获取待检测XML数据;
将所述待检测XML数据转换为对应的检测图;
对所述检测图进行遍历、挖掘,得到挖掘结果;
基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击。
优选的,所述将所述待检测XML数据转换为对应的检测图,包括:
基于XML的词法和语法,生成与所述待检测XML数据对应的语法树;
将所述语法树上的有序关系抽象成所述检测图。
优选的,所述将所述语法树上的有序关系抽象成所述检测图,包括:
删除掉所述语法树中与预设正常XML数据对应的树结构;
将剩下的所述语法树上的有序关系抽象成所述检测图。
优选的,所述将所述语法树上的有序关系抽象成所述检测图之后,还包括:
基于所述语法树中树节点的属性,为所述检测图中的图节点添加属性信息;
按照所述检测图中图节点的属性信息,对所述检测图进行分类。
优选的,所述对所述检测图进行遍历、挖掘,得到挖掘结果,包括:
基于表征XXE攻击的预设关键词,对所述检测图进行遍历、挖掘,得到所述检测图中包含的目标关键词;
判断所述目标关键词是否被实体变量隐藏;
若是,则确定出包含所述实体变量的第一XML数据,将所述第一XML数据中的所述实体变量映射为所述目标关键词,将映射后的所述第一XML数据作为所述挖掘结果;
若否,则直接将包含所述目标关键词的XML数据作为所述挖掘结果。
优选的,所述基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击,包括:
判断所述挖掘结果的格式是否满足目标XXE攻击的格式,所述目标XXE攻击为所述目标关键词表征的XXE攻击;
若是,则判定所述待检测XML数据携带XXE攻击。
优选的,所述对所述检测图进行遍历、挖掘,得到挖掘结果,包括:
确定出所述检测图中的实体变量;
对所述检测图进行遍历、挖掘,得到每个图节点中所述实体变量的权重值;
将每个所述图节点中所述实体变量的权重值作为所述挖掘结果;
所述基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击,包括:
对于每个所述图节点,均判断所述图节点中所述实体变量的权重值是否大于预设阈值;若是,则判定所述待检测XML数据携带XXE攻击。
优选的,所述对所述检测图进行遍历、挖掘,得到每个图节点中所述实体变量的权重值,包括:
对所述检测图进行遍历、挖掘,得到每个所述图节点中所述实体变量的数量;
对于每个所述图节点,将所述图节点中所述实体变量的大小及数量相乘,得到所述图节点中所述实体变量的权重值。
一种XXE攻击检测系统,包括:
第一获取模块,用于获取待检测XML数据;
第一转换模块,用于将所述待检测XML数据转换为对应的检测图;
第一处理模块,用于对所述检测图进行遍历、挖掘,得到挖掘结果;
第一判断模块,用于基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击。
一种XXE攻击检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述XXE攻击检测方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述XXE攻击检测方法的步骤。
本申请提供的一种XXE攻击检测方法,获取待检测XML数据;将待检测XML数据转换为对应的检测图;对检测图进行遍历、挖掘,得到挖掘结果;基于挖掘结果判断待检测XML数据是否携带XXE攻击。本申请中,在获取待检测XML数据之后,将待检测XML数据转换为对应的检测图,由于图的联通性及传递性,即使待检测XML数据中携带有隐藏攻击信息,也可以通过对检测图进行遍历、挖掘,得到与隐藏攻击信息对应的原始攻击信息,这样,基于挖掘结果判断待检测XML数据是否携带XXE攻击时,可以对待检测XML数据中的隐藏攻击信息一并进行判定,提高了XXE攻击的检测准确性,且不影响XML的业务。本申请提供的一种XXE攻击检测系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种XXE攻击检测方法的第一流程图;
图2为本申请实施例提供的一种XXE攻击检测方法的第二流程图;
图3为实际应用中语法树的结构示意图;
图4为一种XXE攻击语句的检测图示意图;
图5为本申请实施例提供的一种XXE攻击检测方法的第三流程图;
图6为本申请实施例提供的一种XXE攻击检测方法的第四流程图;
图7为本申请实施例提供的一种XXE攻击检测系统的结构示意图;
图8为本申请实施例提供的一种XXE攻击检测设备的结构示意图;
图9为本申请实施例提供的一种XXE攻击检测设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可扩展标记语言,是标准通用标记语言的子集,简称XML(eXtensible MarkupLanguage),是一种用于标记电子文件使其具有结构性的标记语言。在XML的应用过程中,当XML携带外部实体时,XML解析器在解析外部实体时,会获取外部实体的内容并插入到XML文档,而外部实体中携带攻击信息时,便会造成XXE(XML External Entity Injection)攻击,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起DOS(磁盘操作系统)攻击等危害。为了保证计算机的安全,需检测并防御XXE攻击。现有的一种XXE攻击检测方法为:使用开发语言提供的禁用外部实体的方法禁用外部实体,此种方法虽然组织力XXE攻击,但从根本上禁止令XML语言外部实体的相关功能,影响XML的业务;另一种XXE攻击检测方法为:基于规则匹配过滤用户提交的XML数据,但是当匹配关键词等编码和嵌套隐藏后,便无法检测出XXE攻击,以隐藏关键词SYSTEM的XML数据为例,当然,关键词还可以为<!DOCTYPE、<!ENTITY、PUBLIC等;假设该XML数据为<!ENTITY%x"SYSTEM">,<!ENTITY%init"<!ENTITYflag&#37;x;'c:/windows/win.ini'>">;在这两行语句中,DTD(DTD Entity)实体变量x将SYSTEM进行隐藏,因此匹配含有SYSTEM关键字的规则会失效,造成XXE攻击漏报,若需要对上述XXE攻击语句进行有效拦截,就需要将含有SYSTEM的语句进行过滤,还会对XML的功能造成影响。而本申请提供的XXE攻击检测方法,借助图的联通性及传递性,可以在不影响XML业务的前提下准确对XXE攻击进行检测。
请参阅图1,图1为本申请实施例提供的一种XXE攻击检测方法的第一流程图。
本申请实施例提供的一种XXE攻击检测方法,可以包括以下步骤:
步骤S101:获取待检测XML数据。
步骤S102:将待检测XML数据转换为对应的检测图。
实际应用中,可以先获取待检测XML数据,待检测XML数据的数据类型及内容可以根据应用本申请提供的XXE攻击检测方法的执行主体来确定。且在获取待检测XML数据之后,便可以将待检测XML数据转换为对应的检测图,由于图具有联通性和传递性,所以待检测XML数据中的隐藏攻击信息也会被直观反映在检测图中。
步骤S103:对检测图进行遍历、挖掘,得到挖掘结果。
实际应用中,由于待检测XML数据中的隐藏攻击信息会被直观反映在检测图中,所以可以直接对检测图进行遍历、挖掘,得到能够反映待检测XML数据中隐藏攻击信息和/或直观攻击信息的挖掘结果,也即挖掘结果中包含待检测XML数据中的所有攻击信息。
步骤S104:基于挖掘结果判断待检测XML数据是否携带XXE攻击。
实际应用中,由于挖掘结果中包含待检测XML数据中的隐藏攻击信息和/或直观攻击信息,所以可以基于挖掘结果判断待检测XML数据是否携带XXE攻击。具体的,可以将各个攻击信息与相应的XXE攻击的判定条件进行匹配,若攻击信息与XXE攻击的判定条件相匹配,则判定待检测XML数据中携带XXE攻击,相应的,若攻击信息与XXE攻击的判定条件不相匹配,则判定待检测XML数据中不携带XXE攻击。
本申请提供的一种XXE攻击检测方法,获取待检测XML数据;将待检测XML数据转换为对应的检测图;对检测图进行遍历、挖掘,得到挖掘结果;基于挖掘结果判断待检测XML数据是否携带XXE攻击。本申请中,在获取待检测XML数据之后,将待检测XML数据转换为对应的检测图,由于图的联通性及传递性,即使待检测XML数据中携带有隐藏攻击信息,也可以通过对检测图进行遍历、挖掘,得到与隐藏攻击信息对应的原始攻击信息,这样,基于挖掘结果判断待检测XML数据是否携带XXE攻击时,可以对待检测XML数据中的隐藏攻击信息一并进行判定,提高了XXE攻击的检测准确性,且不影响XML的业务。
请参阅图2,图2为本申请实施例提供的一种XXE攻击检测方法的第二流程图。
本申请实施例提供的一种XXE攻击检测方法,可以包括以下步骤:
步骤S201:获取待检测XML数据。
步骤S202:基于XML的词法和语法,生成与待检测XML数据对应的语法树。
步骤S203:将语法树上的有序关系抽象成检测图。
实际应用中,在将待检测XML数据转换为对应的检测图的过程中,为了便于将待检测XML数据转换为检测图,可以借助语法树先描述待检测XML数据的语法信息,再基于语法树生成相应的检测图,也即可以基于XML的词法和语法,生成与待检测XML数据对应的语法树;再将语法树上的有序关系抽象成检测图。
应当指出,本申请中的语法树指的是句子结构的图形表示,语法树代表了句子的推导结果,有利于理解句子语法结构的层次,请参阅图3,图3为实际应用中语法树的结构示意图,在图3所示的语法树中,根元素表示<bookstore>,其他元素所代表的信息可以直接参阅图3,当从根节点向子节点遍历时,便可以得到相应的XML数据,假设遍历语法树最左边的树结构,则遍历得到的XML数据便为:<bookstore><title>Harry Potter。且具体应用场景中,可以借助flex和bison工具,生成与待检测XML数据对应的语法树;其中,flex指AdobeFlex,基于其专有的Macromedia Flash平台,涵盖了支持RIA(Rich InternetApplications)的开发和部署的一系列技术组合;bison是一种通用目的的分析器生成器,bison将LALR上下文无关文法的描述转化成分析该文法的C程序。
为了便于对图的联通性及传递性进行理解,仍假设XXE攻击语句为<!ENTITY%x"SYSTEM">,<!ENTITY%init"<!ENTITY flag&#37;x;'c:/windows/win.ini'>">,则该XXE攻击语句转换得到的检测图可以参阅图4,图4为一种XXE攻击语句的检测图示意图;由图4可知,检测图可以直接反映隐藏攻击信息及原始攻击信息,也即实体变量x与SYSTEM关键字连接,字符串'c:/windows/win.ini'与实体变量x进行连接和实体变量flag连接,在flag连接实体变量x时,因为x直接引用了SYSTEM关键字,所以就可以直接的判定<!ENTITY flag&#37;x;'c:/windows/win.ini'>语句实际是在执行<!ENTITY flag SYSTEM'c:/windows/win.ini'>,借助检测图可以将隐藏绕过攻击轻易的还原出来。
步骤S204:对检测图进行遍历、挖掘,得到挖掘结果。
步骤S205:基于挖掘结果判断待检测XML数据是否携带XXE攻击。
实际应用中,为了提高XXE攻击检测的检测效率,可以舍弃待检测XML数据中的正常XML数据,只对存在XXE攻击风险的数据进行检测,则将语法树上的有序关系抽象成检测图的过程,可以具体为:删除掉语法树中与预设正常XML数据对应的树结构;将剩下的语法树上的有序关系抽象成检测图。
实际应用中,为了提高XXE攻击检测的检测效率,可以对分类对检测图进行XXE攻击检测,也即在将语法树上的有序关系抽象成检测图之后,还可以基于语法树中树节点的属性,为检测图中的图节点添加属性信息;按照检测图中图节点的属性信息,对检测图进行分类。假设图节点的属性信息分为对象、函数、方法等,则可以将属性信息为对象的检测图归于一类,将属性信息为函数的检测图归于一类等,这样,后续,可以基于检测图的类别,直接应用与该类别对应的XXE攻击检测方法,对该检测图的挖掘结果进行XXE攻击检测等。
请参阅图5,图5为本申请实施例提供的一种XXE攻击检测方法的第三流程图。
本申请实施例提供的一种XXE攻击检测方法,可以包括以下步骤:
步骤S301:获取待检测XML数据。
步骤S302:将待检测XML数据转换为对应的检测图。
步骤S303:基于表征XXE攻击的预设关键词,对检测图进行遍历、挖掘,得到检测图中包含的目标关键词。
步骤S304:判断目标关键词是否被实体变量隐藏;若是,则执行步骤S305,若否,则执行步骤S306。
步骤S305:确定出包含实体变量的第一XML数据,将第一XML数据中的实体变量映射为目标关键词,将映射后的第一XML数据作为挖掘结果。
步骤S306:直接将包含目标关键词的XML数据作为挖掘结果。
步骤S307:基于挖掘结果判断待检测XML数据是否携带XXE攻击。
实际应用场景中,在待检测XML数据中存在反应XXE攻击的关键词时,攻击者为了绕开关键词检测,可能对关键词进行隐藏,比如应用实体变量对关键词进行隐藏等,为了借助检测图识别出此种XXE攻击,对检测图进行遍历、挖掘,得到挖掘结果的过程,可以具体为:基于表征XXE攻击的预设关键词,对检测图进行遍历、挖掘,得到检测图中包含的目标关键词;判断目标关键词是否被实体变量隐藏;若是,则确定出包含实体变量的第一XML数据,将第一XML数据中的实体变量映射为目标关键词,将映射后的第一XML数据作为挖掘结果;若否,则直接将包含目标关键词的XML数据作为挖掘结果。仍以隐藏绕过攻击<!ENTITY%x"SYSTEM"><!ENTITY%init"<!ENTITY flag&#37;x;'c:/windows/win.ini'>">为例,可以将<!ENTITY%init"<!ENTITY flag&#37;SYSTEM;'c:/windows/win.ini'>">作为该隐藏绕过攻击的挖掘结果。
实际应用中,基于挖掘结果判断待检测XML数据是否携带XXE攻击的过程,可以具体为:判断挖掘结果的格式是否满足目标XXE攻击的格式,目标XXE攻击为目标关键词表征的XXE攻击;若是,则判定待检测XML数据携带XXE攻击。以SYSTEM表征的XXE攻击为例,由于SYSTEM需引用外部文件,所以可以判断挖掘结果的SYSTEM之后是否引用了外部文件,若引用了外部文件,则可以判定挖掘结果满足SYSTEM所表征的XXE攻击的格式,若未引用外部文件,则可以判定挖掘结果不满足SYSTEM所表征的XXE攻击的格式等。
应当指出,只有在所有的挖掘结果的格式均不满足目标XXE攻击的格式时,才能判定待检测XML数据中不携带XXE攻击。
请参阅图6,图6为本申请实施例提供的一种XXE攻击检测方法的第四流程图。
本申请实施例提供的一种XXE攻击检测方法,可以包括以下步骤:
步骤S401:获取待检测XML数据。
步骤S402:将待检测XML数据转换为对应的检测图。
步骤S403:确定出检测图中的实体变量。
步骤S404:对检测图进行遍历、挖掘,得到每个图节点中实体变量的权重值。
步骤S405:将每个图节点中实体变量的权重值作为挖掘结果。
步骤S406:对于每个图节点,均判断图节点中实体变量的权重值是否大于预设阈值;若是,则执行步骤S407:判定待检测XML数据携带XXE攻击。
实际应用中,XXE攻击的类型可以为DOS攻击等消耗资源类型的攻击,比如消耗计算机网络带宽的攻击、消耗计算机内存的攻击等,为了对此类XXE攻击进行检测,对检测图进行遍历、挖掘,得到挖掘结果的过程,可以具体为:确定出检测图中的实体变量;对检测图进行遍历、挖掘,得到每个图节点中实体变量的权重值,应当指出,本申请中借助权重值反映了实体变量消耗资源的情况;将每个图节点中实体变量的权重值作为挖掘结果;相应的,基于挖掘结果判断待检测XML数据是否携带XXE攻击的过程,可以具体为:对于每个图节点,均判断图节点中实体变量的权重值是否大于预设阈值;若是,则判定待检测XML数据携带XXE攻击。应当指出,所有实体变量的权重值均小于相应的预设阈值时,才能判定待检测XML数据不携带XXE攻击。
实际应用中,为了便于统计权重值,可以直接将图节点中实体变量的数量作为该实体变量的权重值,以两个XML数据分别为<!ENTITY lol"lol">和<!ENTITY lol1"&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">为例,则可以将<!ENTITY lol"lol">中实体变量lol的权重值设为1,而可以将另一个XML数据中实体变量lol的权重值设为10等。
实际应用中,为例准确统计权重值,借助权重值准确反映实体变量所能消耗的资源,对检测图进行遍历、挖掘,得到每个图节点中实体变量的权重值的过程,可以具体为:对检测图进行遍历、挖掘,得到每个图节点中实体变量的数量;对于每个图节点,将图节点中实体变量的大小及数量相乘,得到图节点中实体变量的权重值。则仍以两个XML数据分别为<!ENTITY lol"lol">和<!ENTITY lol1"&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">为例的话,可以将<!ENTITY lol"lol">中实体变量lol的权重值设为3,而可以将另一个XML数据中实体变量lol的权重值设为30等
请参阅图7,图7为本申请实施例提供的一种XXE攻击检测系统的结构示意图。
本申请实施例提供的一种XXE攻击检测系统,可以包括:
第一获取模块101,用于获取待检测XML数据;
第一转换模块102,用于将待检测XML数据转换为对应的检测图;
第一处理模块103,用于对检测图进行遍历、挖掘,得到挖掘结果;
第一判断模块104,用于基于挖掘结果判断待检测XML数据是否携带XXE攻击。
本申请实施例提供的一种XXE攻击检测系统,第一转换模块可以包括:
第一生成子模块,用于基于XML的词法和语法,生成与待检测XML数据对应的语法树;
第一抽象子模块,用于将语法树上的有序关系抽象成检测图。
本申请实施例提供的一种XXE攻击检测系统,第一抽象子模块可以包括:
第一删除单元,用于删除掉语法树中与预设正常XML数据对应的树结构;
第一抽象单元,用于将剩下的语法树上的有序关系抽象成检测图。
本申请实施例提供的一种XXE攻击检测系统,还可以包括:
第一添加子模块,用于第一抽象子模块将语法树上的有序关系抽象成检测图之后,基于语法树中树节点的属性,为检测图中的图节点添加属性信息;
第一分类子模块,用于按照检测图中图节点的属性信息,对检测图进行分类。
本申请实施例提供的一种XXE攻击检测系统,第一处理模块可以包括:
第一处理单元,用于基于表征XXE攻击的预设关键词,对检测图进行遍历、挖掘,得到检测图中包含的目标关键词;
第一判断单元,用于判断目标关键词是否被实体变量隐藏;若是,则确定出包含实体变量的第一XML数据,将第一XML数据中的实体变量映射为目标关键词,将映射后的第一XML数据作为挖掘结果;若否,则直接将包含目标关键词的XML数据作为挖掘结果。
本申请实施例提供的一种XXE攻击检测系统,第一判断模块可以包括:
第二判断单元,用于判断挖掘结果的格式是否满足目标XXE攻击的格式,目标XXE攻击为目标关键词表征的XXE攻击;若是,则判定待检测XML数据携带XXE攻击。
本申请实施例提供的一种XXE攻击检测系统,第一处理模块可以包括:
第一确定单元,用于确定出检测图中的实体变量;
第一处理子模块,用于对检测图进行遍历、挖掘,得到每个图节点中实体变量的权重值;
第一设置单元,用于将每个图节点中实体变量的权重值作为挖掘结果;
第一判断模块可以包括:
第三判断单元,用于对于每个图节点,均判断图节点中实体变量的权重值是否大于预设阈值;若是,则判定待检测XML数据携带XXE攻击。
本申请实施例提供的一种XXE攻击检测系统,第一处理子模块可以包括:
第二处理单元,用于对检测图进行遍历、挖掘,得到每个图节点中实体变量的数量;
第一计算单元,用于对于每个图节点,将图节点中实体变量的大小及数量相乘,得到图节点中实体变量的权重值。
本申请还提供了一种XXE攻击检测设备及计算机可读存储介质,其均具有本申请实施例提供的一种XXE攻击检测方法具有的对应效果。请参阅图8,图8为本申请实施例提供的一种XXE攻击检测设备的结构示意图。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取待检测XML数据;
将待检测XML数据转换为对应的检测图;
对检测图进行遍历、挖掘,得到挖掘结果;
基于挖掘结果判断待检测XML数据是否携带XXE攻击。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于XML的词法和语法,生成与待检测XML数据对应的语法树;将语法树上的有序关系抽象成检测图。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:删除掉语法树中与预设正常XML数据对应的树结构;将剩下的语法树上的有序关系抽象成检测图。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将语法树上的有序关系抽象成检测图之后,基于语法树中树节点的属性,为检测图中的图节点添加属性信息;按照检测图中图节点的属性信息,对检测图进行分类。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于表征XXE攻击的预设关键词,对检测图进行遍历、挖掘,得到检测图中包含的目标关键词;判断目标关键词是否被实体变量隐藏;若是,则确定出包含实体变量的第一XML数据,将第一XML数据中的实体变量映射为目标关键词,将映射后的第一XML数据作为挖掘结果;若否,则直接将包含目标关键词的XML数据作为挖掘结果。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:判断挖掘结果的格式是否满足目标XXE攻击的格式,目标XXE攻击为目标关键词表征的XXE攻击;若是,则判定待检测XML数据携带XXE攻击。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:确定出检测图中的实体变量;对检测图进行遍历、挖掘,得到每个图节点中实体变量的权重值;将每个图节点中实体变量的权重值作为挖掘结果;相应的,对于每个图节点,均判断图节点中实体变量的权重值是否大于预设阈值;若是,则判定待检测XML数据携带XXE攻击。
本申请实施例提供的一种XXE攻击检测设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对检测图进行遍历、挖掘,得到每个图节点中实体变量的数量;对于每个图节点,将图节点中实体变量的大小及数量相乘,得到图节点中实体变量的权重值。
请参阅图9,本申请实施例提供的另一种XXE攻击检测设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现XXE攻击检测设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取待检测XML数据;
将待检测XML数据转换为对应的检测图;
对检测图进行遍历、挖掘,得到挖掘结果;
基于挖掘结果判断待检测XML数据是否携带XXE攻击。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于XML的词法和语法,生成与待检测XML数据对应的语法树;将语法树上的有序关系抽象成检测图。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:删除掉语法树中与预设正常XML数据对应的树结构;将剩下的语法树上的有序关系抽象成检测图。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将语法树上的有序关系抽象成检测图之后,基于语法树中树节点的属性,为检测图中的图节点添加属性信息;按照检测图中图节点的属性信息,对检测图进行分类。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于表征XXE攻击的预设关键词,对检测图进行遍历、挖掘,得到检测图中包含的目标关键词;判断目标关键词是否被实体变量隐藏;若是,则确定出包含实体变量的第一XML数据,将第一XML数据中的实体变量映射为目标关键词,将映射后的第一XML数据作为挖掘结果;若否,则直接将包含目标关键词的XML数据作为挖掘结果。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:判断挖掘结果的格式是否满足目标XXE攻击的格式,目标XXE攻击为目标关键词表征的XXE攻击;若是,则判定待检测XML数据携带XXE攻击。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:确定出检测图中的实体变量;对检测图进行遍历、挖掘,得到每个图节点中实体变量的权重值;将每个图节点中实体变量的权重值作为挖掘结果;对于每个图节点,均判断图节点中实体变量的权重值是否大于预设阈值;若是,则判定待检测XML数据携带XXE攻击。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对检测图进行遍历、挖掘,得到每个图节点中实体变量的数量;对于每个图节点,将图节点中实体变量的大小及数量相乘,得到图节点中实体变量的权重值。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种XXE攻击检测系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种XXE攻击检测方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种XXE攻击检测方法,其特征在于,包括:
获取待检测XML数据;
将所述待检测XML数据转换为对应的检测图;
对所述检测图进行遍历、挖掘,得到挖掘结果;
基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击。
2.根据权利要求1所述的方法,其特征在于,所述将所述待检测XML数据转换为对应的检测图,包括:
基于XML的词法和语法,生成与所述待检测XML数据对应的语法树;
将所述语法树上的有序关系抽象成所述检测图。
3.根据权利要求2所述的方法,其特征在于,所述将所述语法树上的有序关系抽象成所述检测图,包括:
删除掉所述语法树中与预设正常XML数据对应的树结构;
将剩下的所述语法树上的有序关系抽象成所述检测图。
4.根据权利要求2所述的方法,其特征在于,所述将所述语法树上的有序关系抽象成所述检测图之后,还包括:
基于所述语法树中树节点的属性,为所述检测图中的图节点添加属性信息;
按照所述检测图中图节点的属性信息,对所述检测图进行分类。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述检测图进行遍历、挖掘,得到挖掘结果,包括:
基于表征XXE攻击的预设关键词,对所述检测图进行遍历、挖掘,得到所述检测图中包含的目标关键词;
判断所述目标关键词是否被实体变量隐藏;
若是,则确定出包含所述实体变量的第一XML数据,将所述第一XML数据中的所述实体变量映射为所述目标关键词,将映射后的所述第一XML数据作为所述挖掘结果;
若否,则直接将包含所述目标关键词的XML数据作为所述挖掘结果。
6.根据权利要求5所述的方法,其特征在于,所述基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击,包括:
判断所述挖掘结果的格式是否满足目标XXE攻击的格式,所述目标XXE攻击为所述目标关键词表征的XXE攻击;
若是,则判定所述待检测XML数据携带XXE攻击。
7.根据权利要求1所述的方法,其特征在于,所述对所述检测图进行遍历、挖掘,得到挖掘结果,包括:
确定出所述检测图中的实体变量;
对所述检测图进行遍历、挖掘,得到每个图节点中所述实体变量的权重值;
将每个所述图节点中所述实体变量的权重值作为所述挖掘结果;
所述基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击,包括:
对于每个所述图节点,均判断所述图节点中所述实体变量的权重值是否大于预设阈值;若是,则判定所述待检测XML数据携带XXE攻击。
8.根据权利要求7所述的方法,其特征在于,所述对所述检测图进行遍历、挖掘,得到每个图节点中所述实体变量的权重值,包括:
对所述检测图进行遍历、挖掘,得到每个所述图节点中所述实体变量的数量;
对于每个所述图节点,将所述图节点中所述实体变量的大小及数量相乘,得到所述图节点中所述实体变量的权重值。
9.一种XXE攻击检测系统,其特征在于,包括:
第一获取模块,用于获取待检测XML数据;
第一转换模块,用于将所述待检测XML数据转换为对应的检测图;
第一处理模块,用于对所述检测图进行遍历、挖掘,得到挖掘结果;
第一判断模块,用于基于所述挖掘结果判断所述待检测XML数据是否携带XXE攻击。
10.一种XXE攻击检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述XXE攻击检测方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述XXE攻击检测方法的步骤。
CN202010032695.7A 2020-01-13 2020-01-13 一种xxe攻击检测方法、系统、设备及计算机存储介质 Active CN113111345B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010032695.7A CN113111345B (zh) 2020-01-13 2020-01-13 一种xxe攻击检测方法、系统、设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010032695.7A CN113111345B (zh) 2020-01-13 2020-01-13 一种xxe攻击检测方法、系统、设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN113111345A true CN113111345A (zh) 2021-07-13
CN113111345B CN113111345B (zh) 2024-05-24

Family

ID=76710009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010032695.7A Active CN113111345B (zh) 2020-01-13 2020-01-13 一种xxe攻击检测方法、系统、设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN113111345B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273772A1 (en) * 1999-12-21 2005-12-08 Nicholas Matsakis Method and apparatus of streaming data transformation using code generator and translator
CN102339252A (zh) * 2011-07-25 2012-02-01 大连理工大学 基于xml中间模型以及缺陷模式匹配的静态检测系统
CN103455476A (zh) * 2012-05-29 2013-12-18 阿里巴巴集团控股有限公司 网络信息的处理方法和抽象语法树的建立方法及其装置
CN103729580A (zh) * 2014-01-27 2014-04-16 国家电网公司 一种检测软件抄袭的方法和装置
US20170078324A1 (en) * 2015-09-15 2017-03-16 International Business Machines Corporation Detecting denial-of-service attacks on graph databases
WO2017056121A1 (en) * 2015-09-28 2017-04-06 Minded Security S.R.L. Method for the identification and prevention of client-side web attacks
CN107463845A (zh) * 2017-07-14 2017-12-12 上海斐讯数据通信技术有限公司 一种sql注入攻击的检测方法、系统和计算机处理设备
CN109067813A (zh) * 2018-10-24 2018-12-21 腾讯科技(深圳)有限公司 网络漏洞检测方法、装置、存储介质和计算机设备
US20190104152A1 (en) * 2017-09-29 2019-04-04 Paypal, Inc. Blind injection attack mitigation
US20190109872A1 (en) * 2017-10-05 2019-04-11 Honeywell International Inc. Intelligent automated security vulnerability detection and analysis for industrial internet of things (iiot) devices
CN109688137A (zh) * 2018-12-27 2019-04-26 深信服科技股份有限公司 一种sql注入攻击的检测方法、系统及相关组件
CN110427754A (zh) * 2019-08-12 2019-11-08 腾讯科技(深圳)有限公司 网络应用攻击检测方法、装置、设备及存储介质
CN110532779A (zh) * 2019-07-19 2019-12-03 中移(杭州)信息技术有限公司 一种漏洞检测的方法、装置、终端及存储介质
CN110581864A (zh) * 2019-11-11 2019-12-17 北京安博通科技股份有限公司 一种sql注入攻击的检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101395809B1 (ko) * 2012-11-01 2014-05-16 단국대학교 산학협력단 웹 서버의 공격 탐지 방법 및 시스템

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273772A1 (en) * 1999-12-21 2005-12-08 Nicholas Matsakis Method and apparatus of streaming data transformation using code generator and translator
CN102339252A (zh) * 2011-07-25 2012-02-01 大连理工大学 基于xml中间模型以及缺陷模式匹配的静态检测系统
CN103455476A (zh) * 2012-05-29 2013-12-18 阿里巴巴集团控股有限公司 网络信息的处理方法和抽象语法树的建立方法及其装置
CN103729580A (zh) * 2014-01-27 2014-04-16 国家电网公司 一种检测软件抄袭的方法和装置
US20170078324A1 (en) * 2015-09-15 2017-03-16 International Business Machines Corporation Detecting denial-of-service attacks on graph databases
WO2017056121A1 (en) * 2015-09-28 2017-04-06 Minded Security S.R.L. Method for the identification and prevention of client-side web attacks
CN107463845A (zh) * 2017-07-14 2017-12-12 上海斐讯数据通信技术有限公司 一种sql注入攻击的检测方法、系统和计算机处理设备
US20190104152A1 (en) * 2017-09-29 2019-04-04 Paypal, Inc. Blind injection attack mitigation
US20190109872A1 (en) * 2017-10-05 2019-04-11 Honeywell International Inc. Intelligent automated security vulnerability detection and analysis for industrial internet of things (iiot) devices
CN109067813A (zh) * 2018-10-24 2018-12-21 腾讯科技(深圳)有限公司 网络漏洞检测方法、装置、存储介质和计算机设备
CN109688137A (zh) * 2018-12-27 2019-04-26 深信服科技股份有限公司 一种sql注入攻击的检测方法、系统及相关组件
CN110532779A (zh) * 2019-07-19 2019-12-03 中移(杭州)信息技术有限公司 一种漏洞检测的方法、装置、终端及存储介质
CN110427754A (zh) * 2019-08-12 2019-11-08 腾讯科技(深圳)有限公司 网络应用攻击检测方法、装置、设备及存储介质
CN110581864A (zh) * 2019-11-11 2019-12-17 北京安博通科技股份有限公司 一种sql注入攻击的检测方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
RACHEL HOGUE: "A Guide to XML eXternal Entity Processing", 《CS.TUFTS.EDU》, pages 1 - 10 *
应宗浩;金海;: "XXE漏洞及其防御策略研究", 科技风 *
应宗浩;金海;: "XXE漏洞及其防御策略研究", 科技风, no. 19, 5 July 2018 (2018-07-05) *
邱永哲;: "XXE漏洞攻击与防御研究", 无线互联科技, no. 06 *

Also Published As

Publication number Publication date
CN113111345B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
CN110688307B (zh) JavaScript代码检测方法、装置、设备和存储介质
CN103853650A (zh) 一种模糊测试的测试用例生成方法及装置
CN109522018A (zh) 页面处理方法、装置及存储介质
CN108900554B (zh) Http协议资产检测方法、系统、设备及计算机介质
CN111835777A (zh) 一种异常流量检测方法、装置、设备及介质
CN114328208A (zh) 代码检测方法及装置、电子设备、存储介质
CN112181924A (zh) 文件转换方法、装置、设备及介质
CN110008462B (zh) 一种命令序列检测方法及命令序列处理方法
CN110020412B (zh) 一种生成imix标准报文的方法、装置及电子设备
CN111078228A (zh) 网页到小程序的转换方法、装置、服务器及存储介质
CN114091118A (zh) 网页防篡改方法、装置、设备及存储介质
CN103118028B (zh) 基于网页解析的安全扫描方法及系统
KR20230115964A (ko) 지식 그래프 생성 방법 및 장치
CN113111345B (zh) 一种xxe攻击检测方法、系统、设备及计算机存储介质
CN116467047A (zh) 针对容器配置合规性的检测方法、装置、存储介质及终端
CN115809267A (zh) 一种用于生成审计结果的方法、设备、介质及程序产品
CA2042824A1 (en) Method and apparatus for interpreting and organizing timing specification information
CN111736848B (zh) 包冲突定位方法、装置、电子设备及可读存储介质
CN113886812A (zh) 检测防护方法、系统、计算机设备及可读存储介质
CN114115908A (zh) 一种指令集生成、程序解析方法装置、设备以及存储介质
CN114329287A (zh) 一种异常链接处理方法、装置、计算机设备和存储介质
CN113051876A (zh) 恶意网址识别方法及装置、存储介质、电子设备
CN112887328A (zh) 一种样本检测方法、装置、设备及计算机可读存储介质
CN113220949A (zh) 一种隐私数据识别系统的构建方法及装置
CN115587364B (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