ReDoS漏洞的高性能检测工具
正则表达式(regexes)广泛用于计算机科学的不同领域。然而,正则表达式拒绝服务(ReDoS)漏洞形成了一类常见且严重的算法复杂性攻击。现有的ReDoS漏洞检测工具由于缺乏正式的、全面的ReDoS漏洞检测条件,存在精度不高或召回率低的缺陷。
软件所陈海明教授带领的研究团队开发了高性能的ReDoS漏洞检测工具。
他们的研究发表在 2021 年 USENIX 安全研讨会上。
通过对海量ReDoS-vulnerable regexes的检测,Chen的团队提出了ReDoS-vulnerability检测条件,即ReDoS-vulnerability patterns,并给出了正式触发这些模式的必要条件。
在此基础上,他们开发了静态和动态相结合的ReDoS-漏洞检测算法,并设计了ReDoS-漏洞检测工具ReDoSHunter。
ReDoSHunter 可以在一个易受攻击的正则表达式中查明多个根本原因,规定漏洞的程度并生成攻击触发字符串等。它在具有 37,651 个正则表达式的 Corpus、RegExLib 和 Snort 数据集上实现了 100% 的准确率和召回率。
在检测公共漏洞和暴露 (CVE) 中公开确认的实际漏洞时,ReDoSHunter 可以检测 100% 与 ReDoS 相关的 CVE。
在他们之前的研究中,Chen 的团队提出了一个示例编程框架 FlashRegex,用于通过合成或修复给定示例来生成反 ReDoS 正则表达式。它是第一个将正则表达式合成和修复与 ReDoS 漏洞意识相结合的框架。
FlashRegex 可以有效地生成或修复没有 ReDoS 漏洞的正则表达式,并且在修复的正则表达式中有 0 个 ReDoS 漏洞。
这项名为“FlashRegex:从示例中推导出反ReDoS正则表达式”的研究已在 ASE 2020 上发布。
标签: