首页> 外文会议>IEEE Symposium on Security and Privacy >Using Safety Properties to Generate Vulnerability Patches
【24h】

Using Safety Properties to Generate Vulnerability Patches

机译:使用安全属性生成漏洞补丁

获取原文

摘要

Security vulnerabilities are among the most critical software defects in existence. When identified, programmers aim to produce patches that prevent the vulnerability as quickly as possible, motivating the need for automatic program repair (APR) methods to generate patches automatically. Unfortunately, most current APR methods fall short because they approximate the properties necessary to prevent the vulnerability using examples. Approximations result in patches that either do not fix the vulnerability comprehensively, or may even introduce new bugs. Instead, we propose property-based APR, which uses human-specified, program-independent and vulnerability-specific safety properties to derive source code patches for security vulnerabilities. Unlike properties that are approximated by observing the execution of test cases, such safety properties are precise and complete. The primary challenge lies in mapping such safety properties into source code patches that can be instantiated into an existing program. To address these challenges, we propose Senx, which, given a set of safety properties and a single input that triggers the vulnerability, detects the safety property violated by the vulnerability input and generates a corresponding patch that enforces the safety property and thus, removes the vulnerability. Senx solves several challenges with property-based APR: it identifies the program expressions and variables that must be evaluated to check safety properties and identifies the program scopes where they can be evaluated, it generates new code to selectively compute the values it needs if calling existing program code would cause unwanted side effects, and it uses a novel access range analysis technique to avoid placing patches inside loops where it could incur performance overhead. Our evaluation shows that the patches generated by Senx successfully fix 32 of 42 real-world vulnerabilities from 11 applications including various tools or libraries for manipulating graphics/media files, a programming language interpreter, a relational database engine, a collection of programming tools for creating and managing binary programs, and a collection of basic file, shell, and text manipulation tools.
机译:安全漏洞是现有的最严重的软件缺陷之一。当被识别时,程序员的目标是生产能够尽快防止漏洞的补丁程序,从而激发了对自动程序修复(APR)方法自动生成补丁程序的需求。不幸的是,大多数当前的APR方法都无法实现,因为它们使用示例近似了防止漏洞所需的属性。近似导致补丁无法完全修复漏洞,甚至可能引入新的错误。相反,我们建议基于属性的APR,它使用人类指定的,与程序无关的和特定于漏洞的安全属性来导出安全漏洞的源代码补丁。与通过观察测试用例的执行情况近似得出的属性不同,此类安全属性是精确而完整的。主要挑战在于将此类安全属性映射到可实例化到现有程序中的源代码补丁中。为了应对这些挑战,我们建议使用Senx,它具有一组安全属性和一个触发漏洞的单个输入,可以检测到该漏洞输入违反的安全属性并生成强制实施该安全属性的相应补丁,从而删除了该漏洞。脆弱性。 Senx通过基于属性的APR解决了一些挑战:它确定了必须评估以检查安全属性的程序表达式和变量,并确定了可以对其进行评估的程序范围,它生成了新代码以选择性地计算调用现有条件时所需的值程序代码会导致不良的副作用,并且它使用一种新颖的访问范围分析技术来避免将补丁放置在可能会导致性能开销的循环内。我们的评估表明,Senx生成的补丁程序成功修复了来自11个应用程序的42个真实世界漏洞中的32个,其中包括用于处理图形/媒体文件的各种工具或库,编程语言解释器,关系数据库引擎,用于创建的编程工具集合和管理二进制程序,以及基本文件,shell和文本操作工具的集合。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号