针对漏洞的可靠补丁生成
密码学与安全
2018-06-13 v2
摘要
安全漏洞是现存最关键的软件缺陷之一。因此,它们需要正确且快速部署的补丁。这催生了一种强调可靠性和广泛适用性的自动补丁生成方法。为应对这一挑战,我们提出Senx,其使用三种新颖的补丁生成技术为越界读/写漏洞创建补丁。Senx使用符号执行从目标应用的源代码中提取表达式以合成补丁。为降低补丁的运行时开销,它使用循环克隆和访问范围分析来分析涉及这些漏洞的循环,并将补丁提升到循环之外。对于跨多个函数的漏洞,Senx使用表达式翻译来翻译表达式,并将其放置在所有值均可用以创建补丁的函数作用域中。这使得Senx能够修补具有复杂循环和过程间依赖的漏洞,而先前基于语义的补丁生成系统无法处理此类漏洞。我们已使用该方法实现了原型。我们的评估表明,Senx生成的补丁成功修复了来自11个应用的42个真实世界漏洞中的76%,这些应用包括各种用于操作图形/媒体文件的工具或库、一种编程语言解释器、一个关系数据库引擎、一组用于创建和管理二进制程序的编程工具集合,以及一组基本的文件、shell和文本操作工具。Senx产生的所有补丁都是可靠的,并且在其分析将不足的情况下Senx会正确中止补丁生成。
引用
@article{arxiv.1711.11136,
title = {Sound Patch Generation for Vulnerabilities},
author = {Zhen Huang and David Lie},
journal= {arXiv preprint arXiv:1711.11136},
year = {2018}
}