Affiliation:
1. University of Virginia, Charlottesville, VA, USA
Abstract
Reasoning about string variables, in particular program inputs, is an important aspect of many program analyses and testing frameworks. Program inputs invariably arrive as strings, and are often manipulated using high-level string operations such as equality checks, regular expression matching, and string concatenation. It is difficult to reason about these operations because they are not well-integrated into current constraint solvers.
We present a decision procedure that solves systems of equations over regular language variables. Given such a system of constraints, our algorithm finds satisfying assignments for the variables in the system. We define this problem formally and render a mechanized correctness proof of the core of the algorithm. We evaluate its scalability and practical utility by applying it to the problem of automatically finding inputs that cause SQL injection vulnerabilities.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
12 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Accelerating Legacy String Kernels via Bounded Automata Learning;Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems;2020-03-09
2. SEGATE: Unveiling Semantic Inconsistencies between Code and Specification of String Inputs;2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE);2019-11
3. Automated String Constraints Solving for Programs Containing String Manipulation Functions;Journal of Computer Science and Technology;2017-11
4. Deciding Type-Based Partial-Order Constraints for Path-Sensitive Analysis;ACM Transactions on Software Engineering and Methodology;2015-05-13
5. Automata-Based Model Counting for String Constraints;Computer Aided Verification;2015