首页> 外文学位 >Automatic verification of string manipulating programs.
【24h】

Automatic verification of string manipulating programs.

机译:自动验证字符串处理程序。

获取原文
获取原文并翻译 | 示例

摘要

In this dissertation, we investigate the string verification problem: Given a program that manipulates strings, we want to verify assertions about string variables. We formalize the string verification problem as reachability analysis of string systems and demonstrate that the string analysis problem is undecidable in general. We present sound automata-based symbolic string analysis techniques for automatic verification of string manipulating programs. String analysis is a static analysis technique that determines the values that a string expression can take during program execution at a given program point. This information can be used to detect security vulnerabilities and program errors, and to verify that program inputs are sanitized properly.Most important Web application vulnerabilities, such as SQL Injection, Cross Site Scripting and Malicious File Execution, are due to inadequate manipulation of string variables. We use our automata-based string analysis techniques to detect and prevent such vulnerabilities in web applications. Our approach consists of three phases: Given an attack pattern, we first conduct a vulnerability analysis to identify if strings that match the attack pattern can reach security-sensitive functions. Next, we compute the vulnerability signature which characterizes all input strings that can exploit the discovered vulnerability. Given the vulnerability signature, we then construct sanitization statements that (1) check if a given input matches the vulnerability signature and (2) modify the input in a minimal way so that the modified input does not match the vulnerability signature. Our approach is capable of generating relational vulnerability signatures (and corresponding sanitization statements) for vulnerabilities that are due to more than one input.We extend our automata-based approach to analyze systems with both string and integer variables. We present a composite symbolic verification technique that combines string and size analyses with the goal of improving the precision of both. Our composite analysis automatically discovers the relationships among the integer variables and the lengths of the string variables. Finally, we present a relational string verification technique based on multi-track automata and abstraction. Our approach is capable of verifying properties that depend on relations among string variables.We have developed a tool called STRANGER that implements our automata-based symbolic string analysis approach. STRANGER can be used to find and eliminate string-related security vulnerabilities in PHP applications.
机译:在本文中,我们研究了字符串验证问题:给定一个处理字符串的程序,我们想验证有关字符串变量的断言。我们将字符串验证问题形式化为字符串系统的可达性分析,并证明字符串分析问题通常是不可确定的。我们提出了基于声音自动机的符号字符串分析技术,用于字符串操作程序的自动验证。字符串分析是一种静态分析技术,它确定字符串表达式在给定程序点的程序执行过程中可以采用的值。此信息可用于检测安全漏洞和程序错误,并验证程序输入是否已正确清理。大多数重要的Web应用程序漏洞(例如SQL注入,跨站点脚本和恶意文件执行)是由于对字符串变量的操作不当造成的。 。我们使用基于自动机的字符串分析技术来检测和预防Web应用程序中的此类漏洞。我们的方法包括三个阶段:给定一种攻击模式,我们首先进行漏洞分析,以识别与攻击模式匹配的字符串是否可以到达对安全敏感的功能。接下来,我们计算漏洞特征码,该特征码表征可以利用发现的漏洞的所有输入字符串。给定漏洞签名,我们然后构造清理语句,该声明(1)检查给定输入是否与漏洞签名匹配,以及(2)以最小方式修改输入,以使修改后的输入与漏洞签名不匹配。我们的方法能够为由于多个输入导致的漏洞生成相关的漏洞签名(以及相应的清除语句)。我们扩展了基于自动机的方法来分析具有字符串和整数变量的系统。我们提出了一种组合符号验证技术,该技术结合了字符串和大小分析,以提高二者的精度。我们的复合分析会自动发现整数变量与字符串变量的长度之间的关系。最后,我们提出了一种基于多轨自动机和抽象的关系字符串验证技术。我们的方法能够验证依赖于字符串变量之间关系的属性。我们开发了一种名为STRANGER的工具,该工具实现了基于自动机的符号字符串分析方法。 STRANGER可用于查找和消除PHP应用程序中与字符串相关的安全漏洞。

著录项

  • 作者

    Yu, Fang.;

  • 作者单位

    University of California, Santa Barbara.;

  • 授予单位 University of California, Santa Barbara.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2010
  • 页码 239 p.
  • 总页数 239
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号