一种基于动静态结合的ReDoS漏洞检测方法与系统技术方案

技术编号:38567181 阅读:31 留言:0更新日期:2023-08-22 21:04
本发明专利技术公开一种基于动静态结合的ReDoS漏洞检测方法与系统,涉及网络安全领域,通过分析病理性LS的语义特征,对ReDoS漏洞进行建模,创建ReDoS漏洞的正则表达式细粒度表示结构以对攻击串结构特征精准刻画,再通过ReDoS漏洞的静态检测和动态验证,实现高准确率与高召回率的ReDoS漏洞检测。率的ReDoS漏洞检测。率的ReDoS漏洞检测。

【技术实现步骤摘要】
一种基于动静态结合的ReDoS漏洞检测方法与系统


[0001]本专利技术涉及网络安全领域,具体涉及一种基于动静态结合的ReDoS漏洞检测方法与系统。

技术介绍

[0002]正则表达式作为软件与系统开发中的核心组件与基础技术,其应用领域和规模日益扩大,但同时也带来了安全性方面的挑战。正则表达式拒绝服务(ReDoS)是一种算法复杂度攻击,对于易受攻击的正则表达式,攻击者可以精心构造字符串来触发正则匹配算法的超线性时间复杂度,从而造成拒绝服务攻击,影响系统的可用性。这种漏洞具有攻击成本低、利用难度小、防御难度高等特点。
[0003]近年来,国内外提出了各种各样的ReDoS漏洞检测技术。其中,融合了静态检测技术和动态检测技术优点的混合检测技术具有较好的表现。然而,目前的混合检测技术仍然存在以下两个显著缺陷:(1)ReDoS漏洞模式的构建不够完善,导致现有混合检测技术存在高漏报率的问题。现有的漏洞建模方法是基于脆弱性循环子正则表达式(即带有量词的子正则表达式,以下简写为病理性LS)的结构特征来总结的,缺乏对LS特征的全局理解。例如,对于LS^(r本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于动静态结合的ReDoS漏洞检测方法,其特征在于,包括以下步骤:根据病理性LS的语义特征对ReDoS漏洞进行建模,预定义若干种ReDoS漏洞模式;创建ReDoS漏洞的正则表达式细粒度表示结构,其由前缀、中缀、后缀这三种子正则表达式构成的三段式结构和两个干扰项构成,其中中缀子正则表达式即病理性子正则表达式,干扰项是指潜在影响攻击串生成的干扰子正则表达式;基于所述细粒度表示结构,枚举所有潜在的干扰类型并构建消除相应干扰的攻击串生成约束条件;将待检测的正则表达式转换为统一的抽象语法树,根据所述细粒度表示结构确定正则表达式中所有候选病理性LS,并判断候选病理性LS符合哪种ReDoS漏洞模式,进而提取候选漏洞信息;为每个候选漏洞信息根据其干扰类型增加相应的攻击串生成约束条件,并生成满足该约束条件的攻击串;动态验证待检测正则表达式,如果其匹配攻击串的匹配步数超过一阈值,则判定存在ReDoS漏洞。2.如权利要求1所述的方法,其特征在于,根据病理性LS展开过程中所有子正则表达式之间存在公共匹配字符串这一语义特征,对ReDoS漏洞进行建模。3.如权利要求1或2所述的方法,其特征在于,预定义三种ReDoS漏洞模式:EOLS,指数级漏洞,正则表达式中存在包含两个不同子正则表达式的病理性LS,并且两个子正则表达式存在公共匹配字符串;POLS,多项式级漏洞,正则表达式以无行首锚点的子正则表达式r1起始,当r1=αβ,其中α、β是子正则表达式,且β是病理性LS,符合以下两个条件之一时:(1)α为空;(2)L()表示正则表达式所接收的语言,∑表示字母表;PTLS,多项式级漏洞,对于正则表达式αβγ,其中α和γ是病理性LS,符合以下两个条件之一时:(1)β为空且α和γ存在公共匹配字符串;(2)α、γ、αβ或βγ存在公共匹配字符串。4.如权利要求1所述的方法,其特征在于,所述细粒度表示结构表示为其中表示前缀子正则表达式,表示病理性子正则表达式,表示后缀子正则表达式,θ1和θ2是两个干扰项。5.如权利要求4所述的方法,其特征在于,所述攻击串的表示为w=xy
n
z,其中z,其中n表示y重复次数,攻击串L()表示正则表达式所接收的语言。6.如权利要求5所述的方法,其特征在于,判断候选病理性LS符合哪种ReDoS漏洞模式的步骤包括:首先,提取正则表达式的所有的候选病理性LS,将每个LS视为病理性...

【专利技术属性】
技术研发人员:李页霆王欣熠黄帅霖肖扬邹燕燕霍玮
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1