通过反模式与修复策略提升开发者对正则拒绝服务工具的理解
软件工程
2022-12-16 v1 密码学与安全
人机交互
编程语言
摘要
正则表达式被用于多种用途,包括输入验证和防火墙。遗憾的是,它们也可能导致一种称为 ReDoS(正则表达式拒绝服务)的安全漏洞,其由正则匹配时超线性的最坏情况执行时间引起。鉴于 ReDoS 的严重性和普遍性,已有工作提出了自动检测和修复正则表达式的工具。尽管这些工具在自动化实验中得到了评估,但其可用性尚未被研究;可用性并非先前工作的重点。我们的见解是,如果为现有的正则检测和修复工具补充易受攻击正则表达式的反模式与修复策略,其可用性将得到改善。我们为易受攻击的正则表达式开发了新颖的反模式,以及一组修复它们的策略。我们的反模式和修复策略源于一种新颖的正则无限歧义理论——这是正则易受 ReDoS 攻击的必要条件。我们证明了该理论的可靠性和完备性。我们在自动化实验和手动应用两种场景下评估了反模式的有效性。随后,我们评估了反模式和修复策略在多大程度上提升了开发者对检测和修复工具结果的理解。我们的评估发现,我们的反模式在大型正则表达式数据集(N=209,188)上有效:100% 精确率和 99% 召回率,将当前最优水平(50% 精确率和 87% 召回率)提升了 50% 和 12%。在手动应用(N=20)时,我们的反模式也优于当前最优水平:100% 的开发者能有效应用它们,而当前最优水平仅为 50%。最后,我们的反模式和修复策略提升了开发者使用自动工具的理解程度(N=9):在检测漏洞时从中位数“非常弱”提升至“强”,在修复漏洞时从中位数“非常弱”提升至“非常强”。
引用
@article{arxiv.2212.07979,
title = {Improving Developers' Understanding of Regex Denial of Service Tools through Anti-Patterns and Fix Strategies},
author = {Sk Adnan Hassan and Zainab Aamir and Dongyoon Lee and James C. Davis and Francisco Servant},
journal= {arXiv preprint arXiv:2212.07979},
year = {2022}
}
备注
IEEE Security & Privacy 2023