使用正则表达式的程序中DoS漏洞的静态检测(扩展版)
密码学与安全
2017-01-17 v1 形式语言与自动机理论
编程语言
软件工程
摘要
在算法复杂性攻击中,恶意方利用算法的最坏情况行为导致拒绝服务(denial-of-service)。一个突出的算法复杂性攻击是正则表达式拒绝服务(ReDoS),其中攻击者利用脆弱的正则表达式,提供精心构造的输入字符串,触发匹配算法的最坏情况行为。本文提出一种自动发现程序中ReDoS漏洞的技术。具体而言,我们的方法自动识别程序中的脆弱正则表达式,并确定“恶意”输入字符串是否能与脆弱正则表达式匹配。我们已将提出的方法实现在名为REXPLOITER的工具中,并在Java Web应用中发现了41个可利用的安全漏洞。
引用
@article{arxiv.1701.04045,
title = {Static Detection of DoS Vulnerabilities in Programs that use Regular Expressions (Extended Version)},
author = {Valentin Wüstholz and Oswaldo Olivo and Marijn J. H. Heule and Isil Dillig},
journal= {arXiv preprint arXiv:1701.04045},
year = {2017}
}