Symbolic string verification: An automata-based approach

被引:0
|
作者
Yu, Fang [1 ]
Bultan, Tevfik [1 ]
Cova, Marco [1 ]
Ibarra, Oscar H. [1 ]
机构
[1] Univ Calif Santa Barbara, Dept Comp Sci, Santa Barbara, CA 93106 USA
来源
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present an automata-based approach for the verification of string operations in PHP programs based on symbolic string analysis. 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 verify that string values are sanitized properly and to detect programming errors and security vulnerabilities. In our string analysis approach, we encode the set of string values that string variables can take as automata. We implement all string functions using a symbolic automata representation (MBDD representation from the MONA automata package) and leverage efficient manipulations on MBDDs, e.g., determinization and minimization. Particularly, we propose a novel algorithm for language-based replacement. Our replacement function takes three DFAs as arguments and outputs a DFA. Finally, we apply a widening operator defined on automata to approximate fixpoint computations. If this conservative approximation does not include any bad patterns (specified as regular expressions), we conclude that the program does not contain any errors or vulnerabilities. Our experimental results demonstrate that our approach works quite well in checking the correctness of sanitization operations in real-world PHP applications.
引用
收藏
页码:306 / 324
页数:19
相关论文
共 50 条
  • [1] Automata-based symbolic string analysis for vulnerability detection
    Yu, Fang
    Alkhalaf, Muath
    Bultan, Tevfik
    Ibarra, Oscar H.
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2014, 44 (01) : 44 - 70
  • [2] Automata-based symbolic string analysis for vulnerability detection
    Fang Yu
    Muath Alkhalaf
    Tevfik Bultan
    Oscar H. Ibarra
    [J]. Formal Methods in System Design, 2014, 44 : 44 - 70
  • [3] An automata-based approach to CSCW verification
    Papadopoulos, C
    [J]. INTERNATIONAL JOURNAL OF COOPERATIVE INFORMATION SYSTEMS, 2004, 13 (02) : 183 - 209
  • [4] An Automata-Based Symbolic Approach for Verifying Programs on Relaxed Memory Models
    Linden, Alexander
    Wolper, Pierre
    [J]. MODEL CHECKING SOFTWARE, 2010, 6349 : 212 - 226
  • [5] Automata-based symbolic scheduling for looping DFGs
    Haynal, S
    Brewer, F
    [J]. IEEE TRANSACTIONS ON COMPUTERS, 2001, 50 (03) : 250 - 267
  • [6] Automata-Based Model Counting for String Constraints
    Aydin, Abdulbaki
    Bang, Lucas
    Bultan, Tevfik
    [J]. COMPUTER AIDED VERIFICATION, PT I, 2015, 9206 : 255 - 272
  • [7] A Technique for Automata-based Verification with Residual Reasoning
    Azzopardi, Shaun
    Colombo, Christian
    Pace, Gordon
    [J]. PROCEEDINGS OF THE 8TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT (MODELSWARD), 2020, : 237 - 248
  • [8] On the timed automata-based verification of Ravenscar systems
    Ober, Iulian
    Halbwachs, Nicolas
    [J]. RELIABLE SOFTWARE TECHNOLOGIES - ADA-EUROPE 2008, 2008, 5026 : 30 - +
  • [9] Automata-based verification of programs with tree updates
    Peter Habermehl
    Radu Iosif
    Tomáš Vojnar
    [J]. Acta Informatica, 2010, 47 : 1 - 31
  • [10] Automata-based verification of programs with tree updates
    Habermehl, Peter
    Iosif, Radu
    Vojnar, Tomas
    [J]. ACTA INFORMATICA, 2010, 47 (01) : 1 - 31