Visible to the public Automated Test Generation from Vulnerability Signatures

TitleAutomated Test Generation from Vulnerability Signatures
Publication TypeConference Paper
Year of Publication2014
AuthorsAydin, A., Alkhalaf, M., Bultan, T.
Conference NameSoftware Testing, Verification and Validation (ICST), 2014 IEEE Seventh International Conference on
Date PublishedMarch
KeywordsAlgorithm design and analysis, Approximation methods, attack string discovery, authoring languages, Automata, automata theory, automata-based static string analysis techniques, automata-based test generation, automated test case generation, automatic vulnerability signature computation, Databases, digital signatures, HTML, insecure Web applications, path coverage, program diagnostics, program testing, scripting languages, security, state, static string analysis undecidability, string analysis, Testing, transition, validation and sanitization, vulnerability signatures, web services
Abstract

Web applications need to validate and sanitize user inputs in order to avoid attacks such as Cross Site Scripting (XSS) and SQL Injection. Writing string manipulation code for input validation and sanitization is an error-prone process leading to many vulnerabilities in real-world web applications. Automata-based static string analysis techniques can be used to automatically compute vulnerability signatures (represented as automata) that characterize all the inputs that can exploit a vulnerability. However, there are several factors that limit the applicability of static string analysis techniques in general: 1) undesirability of static string analysis requires the use of approximations leading to false positives, 2) static string analysis tools do not handle all string operations, 3) dynamic nature of the scripting languages makes static analysis difficult. In this paper, we show that vulnerability signatures computed for deliberately insecure web applications (developed for demonstrating different types of vulnerabilities) can be used to generate test cases for other applications. Given a vulnerability signature represented as an automaton, we present algorithms for test case generation based on state, transition, and path coverage. These automatically generated test cases can be used to test applications that are not analyzable statically, and to discover attack strings that demonstrate how the vulnerabilities can be exploited.

URLhttps://ieeexplore.ieee.org/document/6823881
DOI10.1109/ICST.2014.32
Citation Key6823881