0xelitesystem/regex-redos-checker
GitHub: 0xelitesystem/regex-redos-checker
基于浏览器的单文件 ReDoS 检测工具,通过五类启发式检测器识别正则表达式中的灾难性回溯结构并合成最小化恶意输入进行实际性能验证。
Stars: 0 | Forks: 0
# regex-redos-checker
基于浏览器的灾难性回溯和易受 ReDoS 攻击的正则表达式检测工具。只需粘贴一个模式,即可获取最可能导致指数级或多项式级性能爆炸的结构分析结果,此外还配备了一个恶意输入合成器,能够生成最简字符串以演示最坏情况。
**在线演示:** https://0xelitesystem.github.io/regex-redos-checker/
单个 HTML 文件,采用渗透测试报告的美学风格(默认浅色主题,支持深色模式切换)。无构建步骤,无依赖,无网络调用。
## 检测内容
针对解析后的模式应用五种检测器:
1. **嵌套量词**,如 `(a+)+`, `(a*)*`, `(a+)*` 及其变体。典型的指数级爆炸情况。
2. **带有重叠备选项的量词组**,如 `(a|a)*`, `(a|ab)*`, `(\w|\d)*`。呈多项式级增长;对长输入不利。
3. **同一字符类上量词组后跟量词**,如 `a*a*b`, `\d+\d+`。呈多项式级增长。
4. **无锚点且带有频繁失败后缀的贪婪量词**,如 `.*foo`, `.+\d`。对于长的不匹配输入具有灾难性。
5. **包含量词组的环视**,如 `(?=(a+)+b)`。经常被忽略,因为环视“不消耗字符”但仍然会回溯。
## 恶意输入合成
对于每个检测到的脆弱结构,该工具会生成一个最小演示字符串,并针对受控大小的输入(默认为 10 到 30 个字符;用户可安全地上调至上限)运行该正则表达式。它会报告流逝的实际时间。具有灾难性的模式将达到上限,并在页面卡死之前被检测器终止。
## 基准测试
带有秒表的可选手动测试输入框。适用于将标记出的模式与提议的更安全的重写版本进行并排比较。
## 严重性等级
| 标签 | 含义 |
|-----|---------|
| critical | 在输入 ≤ 30 个字符时表现出指数级爆炸 |
| high | 表现出多项式级爆炸;在用户输入上是可行的 DoS 攻击向量 |
| medium | 存在脆弱结构,但合成的输入在测试规模下未触发爆炸 |
| low | 模式效率低下,但不可利用 |
| info | 未检测到脆弱结构;模式看起来安全 |
## 本工具不包含的内容
它不是 `recheck` 或 `safe-regex` 的静态分析等价物。它实现了一小部分检测器,用于捕获最常见的生产环境 ReDoS 漏洞;复杂的模式可能会漏网。它还在 JavaScript 正则表达式引擎中运行,其回溯行为与 PCRE、RE2、.NET 或 Python 的 `re` 不同,在 JS 中安全的模式在 Java 中可能仍然危险。请将其作为发布到 JavaScript 运行时(浏览器、Node、边缘工作者)的模式的初步检查工具。
## 隐私
模式和测试输入仅保留在浏览器中。无分析,无存储。
## 示例
标题栏的按钮中预置了五个示例:一个良性模式(通过)、一个经典的嵌套量词案例、一个多项式级重叠案例、一个带有失败后缀的无锚贪婪量词,以及一个取自已发布 CVE 的真实案例。
## 相关代码库
10 个代码库安全审计集合的一部分。
基于浏览器的审计工具:
- [iam-policy-analyzer](https://github.com/0xelitesystem/iam-policy-analyzer)
- [terraform-security-linter](https://github.com/0xelitesystem/terraform-security-linter)
- [kubernetes-manifest-security-scanner](https://github.com/0xelitesystem/kubernetes-manifest-security-scanner)
- [session-cookie-auditor](https://github.com/0xelitesystem/session-cookie-auditor)
参考集合:
- [incident-response-runbooks](https://github.com/0xelitesystem/incident-response-runbooks)
- [ai-llm-security-audit](https://github.com/0xelitesystem/ai-llm-security-audit)
- [api-security-audit-checklist](https://github.com/0xelitesystem/api-security-audit-checklist)
- [secrets-leak-response-runbook](https://github.com/0xelitesystem/secrets-leak-response-runbook)
- [threat-modeling-worksheets](https://github.com/0xelitesystem/threat-modeling-worksheets)
## 更多
作为单文件浏览器工具和通俗语言参考目录的一部分,全部采用 MIT 许可证且无依赖:[0xelitesystem.github.io](https://0xelitesystem.github.io/)。由 [elitesystem.ai](https://elitesystem.ai) 构建。
## 许可证
MIT。详见 [LICENSE](LICENSE)。
标签:ReDoS检测, Web安全, 前端工具, 加密, 后端开发, 多模态安全, 数据可视化, 漏洞扫描器, 蓝队分析, 配置错误