[发明专利]一种XXE攻击检测方法、装置、电子设备及存储介质有效
申请号: | 201911414859.6 | 申请日: | 2019-12-31 |
公开(公告)号: | CN113127862B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 张宏飞;黄忠强;文成龙 | 申请(专利权)人: | 深信服科技股份有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F40/253 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王兆林 |
地址: | 518055 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 xxe 攻击 检测 方法 装置 电子设备 存储 介质 | ||
本申请公开了一种XXE攻击检测方法,通过对待检测的XML文档进行语法分析,可得到该XML文档中各实体之间的引用关系,从而便于根据该引用关系判断出该XML文档中是否存在XXE攻击。相比于仅能够通过指令集禁止相关功能实现防范XXE攻击的现有技术,本方案提供了一种通过对XML文档内容进行分析发现存在的XXE攻击的方案,进而可以有针对性的对其中存在的XXE攻击部分进行防范和处理,使得正常的外部实体调用得以正常进行,减少对系统正常运行的影响。本申请还同时公开了一种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攻击中的循环调用攻击;
或,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深信服科技股份有限公司,未经深信服科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911414859.6/2.html,转载请声明来源钻瓜专利网。