19、正则表达式拒绝服务攻击及SMTP洪泛攻击研究

正则表达式拒绝服务攻击及SMTP洪泛攻击研究

正则表达式拒绝服务攻击分析

在正则表达式匹配中,攻击者可以通过多次注入数据来成倍增加匹配时间,从而发动攻击。虽然在最坏情况下,检查正则表达式是否具有指数级运行时间的复杂度可能很高,但这并不意味着这种分析毫无意义。就像在函数式语言(如ML和Haskell)中的类型检查,虽然复杂度高,但在实际应用中,由于最坏情况很少出现在真实代码中,所以仍然能高效工作。

相关工作
  • 基于算法复杂度的拒绝服务(DoS)攻击已经有了相关研究。回溯式正则表达式匹配器的指数级运行时间行为也被讨论过,有些研究还展示了如何利用此漏洞对入侵检测/防御系统(如Snort)发动DoS攻击。这些研究提出的解决方案主要是修改正则表达式和/或匹配算法,但它们主要关注带有反向引用的正则表达式,这是我们尚未探索的领域。
  • 目前有一些工具可以帮助程序员找到易受攻击的正则表达式,其中微软的SDL Regex Fuzzer和RegexBuddy是比较实用的工具。RegexBuddy提供调试模式,可检测所谓的“灾难性回溯”,但这种可视化调试方法只有在提前知道攻击字符串时才有效。而SDL Fuzzer专门用于分析正则表达式漏洞,它通过模糊测试(即对生成的字符串序列进行暴力匹配)来检测长时间运行的情况。然而,该工具对某些表达式进行分类可能需要长达四分钟的时间,且其输出仅报告表达式在给定时间内未能执行完成的情况,难以确定表达式中的确切问题。

与这些工具不同,我们的静态分析方法无需运行表达式,就能在几秒钟内对数千个正则表达式进行分类,并能精确指出导致漏洞的Kleene表达式,还允许程序员使用恶意输入序列测试匹配器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值