JavaScript Web 应用程序和服务器易受 ReDoS 攻击

JavaScript Web 应用程序和 Web 服务器容易受到称为正则表达式(regex)拒绝服务(ReDoS)的特定类型的漏洞/攻击。当攻击者将大量复杂的文本发送到基于 JavaScript 的 Web 服务器或应用程序的开放输入时,就会发生这些漏洞。

如果服务器组件或应用程序库不是专门设计用于处理各种边缘情况,则攻击者的输入最终会一次阻止整个应用程序或服务器几秒钟或几分钟,而服务器会分析并模式匹配输入。

各种编程语言和 Web 服务器技术在模式匹配操作和 ReDoS 攻击的性能方面存在类似的问题,由于大多数 JavaScript 服务器的单线程执行模型,每个请求都由同一个线程处理,因此在 JavaScript 的情况下它们被夸大了。

2017 年发布的后续研究显示,Node.js 库和应用程序中发现的漏洞总数中有 5% 是 ReDoS 漏洞。在上周的一次安全会议上,ReDoS 问题由于多年未得到解决,在 JavaScript 社区引起重视。来自德国达姆施塔特技术大学(Technical University in Darmstadt, Germany)的两名学者 Cristian-Alexandru Staicu 和 Michael Pradel 表示,他们在流行的 Node.js 模块中发现了 25 个以前未知的漏洞。

5a46c5bbc46207b848f593ca7903fd70070.jpg

Staicu 和 Pradel 说这些漏洞的主要原因是缺乏对正则表达式匹配性能的关注,因为大多数开发人员似乎都专注于准确性,在代码中留下了大量漏洞,攻击者可以使用 ReDoS 攻击来利用这些漏洞。

两人经过进一步研究,设计出了一种在实际网站上检测这些漏洞而无需实际使用 ReDoS 漏洞利用代码的方法。他们使用这种方法扫描 2,846 个流行的基于 Node.js 的站点,显示 339 个大约 12% 的站点容易受到至少一个 ReDoS 漏洞的攻击。研究小组表示,“ReDoS 对这些网站的可用性构成严重威胁,我们会开发用于检测和缓解 JavaScript 中 ReDoS 漏洞的技术。”

编译自:BleepingComputer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值