Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Muath Alkhalaf

dblp:53/5594 · DBLP profile ↗
← Back
8ranked-venue papers
3as first author
0since 2021 · last 2014
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 3 first-authorTheory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
5 papers
Program analysis · 84% Debugging and program repair · 16%
Network and information security
5 papers
Systems and software security · 68% Web and mobile security · 32%

Topics — the 10 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.752014
Semantic differential repair for input validation and sanitization · ISSTA 2014
ViewPoints: differential string analysis for discovering client- and server-side input validation inconsistencies · ISSTA 2012
Verifying client-side input validation functions using string analysis · ICSE 2012
Systems and software security › secure software development
input validation
0.322014
Semantic differential repair for input validation and sanitization · ISSTA 2014
ViewPoints: differential string analysis for discovering client- and server-side input validation inconsistencies · ISSTA 2012
Web and mobile security
web security
0.322014
Semantic differential repair for input validation and sanitization · ISSTA 2014
ViewPoints: differential string analysis for discovering client- and server-side input validation inconsistencies · ISSTA 2012
Program analysis › data flow analysis › value analysis
string analysis
0.322014
Semantic differential repair for input validation and sanitization · ISSTA 2014
Generating Vulnerability Signatures for String Manipulating Programs Using Automata-Based Forward and Backward Symbolic Analyses · ASE 2009
Debugging and program repair
automated program repair
0.212014
Semantic differential repair for input validation and sanitization · ISSTA 2014
Systems and software security
vulnerability patching
0.112011
Patching vulnerabilities with sanitization synthesis · ICSE 2011
Systems and software security
vulnerability discovery
0.112009
Generating Vulnerability Signatures for String Manipulating Programs Using Automata-Based Forward and Backward Symbolic Analyses · ASE 2009
Systems and software security › vulnerability analysis
vulnerability signature generation
0.112009
Generating Vulnerability Signatures for String Manipulating Programs Using Automata-Based Forward and Backward Symbolic Analyses · ASE 2009
Program analysis › dynamic analysis
dynamic slicing
0.012012
Verifying client-side input validation functions using string analysis · ICSE 2012
Web and mobile security
web application vulnerability
0.012011
Patching vulnerabilities with sanitization synthesis · ICSE 2011

Methods — techniques the papers use, named apart from their topics

symbolic string analysis · 0.4patch synthesis · 0.4automata · 0.4regular expression policy specification · 0.3dynamic slicing · 0.3deterministic finite automata · 0.3automata-based string analysis · 0.3vulnerability signature computation · 0.2automata-based static string analysis · 0.2automata-based forward and backward symbolic analysis · 0.2
YearPublicationVenuePosition
2014 Automated Test Generation from Vulnerability Signatures
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.
Abdulbaki Aydin, Muath Alkhalaf, Tevfik Bultan
ICST2
2014 Semantic differential repair for input validation and sanitization
abstract
Correct validation and sanitization of user input is crucial in web applications for avoiding security vulnerabilities and erroneous application behavior. We present an automated differential repair technique for input validation and sanitization functions. Differential repair can be used within an application to repair client and server-side code with respect to each other, or across applications in order to strengthen the validation and sanitization checks. Given a reference and a target function, our differential repair technique strengthens the validation and sanitization operations in the target function based on the reference function. It does this by synthesizing three patches: a validation, a length, and a sanitization patch. Our automated patch synthesis algorithms are based on forward and backward symbolic string analyses that use automata as a symbolic representation. Composition of the three automatically synthesized patches with the original target function results in the repaired function, which provides stronger validation and sanitization than both the target and the reference functions.
Muath Alkhalaf, Abdulbaki Aydin, Tevfik Bultan
ISSTA1
2014 Automata-based symbolic string analysis for vulnerability detection
Fang Yu 0001, Muath Alkhalaf, Tevfik Bultan, Oscar H. Ibarra
Formal Methods Syst. Des.2
2012 Verifying client-side input validation functions using string analysis
abstract
Client-side computation in web applications is becoming increasingly common due to the popularity of powerful client-side programming languages such as JavaScript. Clientside computation is commonly used to improve an application's responsiveness by validating user inputs before they are sent to the server. In this paper, we present an analysis technique for checking if a client-side input validation function conforms to a given policy. In our approach, input validation policies are expressed using two regular expressions, one specifying the maximum policy (the upper bound for the set of inputs that should be allowed) and the other specifying the minimum policy (the lower bound for the set of inputs that should be allowed). Using our analysis we can identify two types of errors 1) the input validation function accepts an input that is not permitted by the maximum policy, or 2) the input validation function rejects an input that is permitted by the minimum policy. We implemented our analysis using dynamic slicing to automatically extract the input validation functions from web applications and using automata-based string analysis to analyze the extracted functions. Our experiments demonstrate that our approach is effective in finding errors in input validation functions that we collected from real-world applications and from tutorials and books for teaching JavaScript.
Muath Alkhalaf, Tevfik Bultan, Jose L. Gallegos
ICSE1
2012 ViewPoints: differential string analysis for discovering client- and server-side input validation inconsistencies
abstract
Since web applications are easily accessible, and often store a large amount of sensitive user information, they are a common target for attackers. In particular, attacks that focus on input validation vulnerabilities are extremely effective and dangerous. To address this problem, we developed ViewPoints--a technique that can identify erroneous or insufficient validation and sanitization of the user inputs by automatically discovering inconsistencies between client- and server-side input validation functions. Developers typically perform redundant input validation in both the front-end (client) and the back-end (server) components of a web application. Client- side validation is used to improve the responsiveness of the application, as it allows for responding without communicating with the server, whereas server-side validation is necessary for security reasons, as malicious users can easily circumvent client-side checks. ViewPoints (1) automatically extracts client- and server-side input validation functions, (2) models them as deterministic finite automata (DFAs), and (3) compares client- and server-side DFAs to identify and report the inconsistencies between the two sets of checks. Our initial evaluation of the technique is promising: when applied to a set of real-world web applications, ViewPoints was able to automatically identify a large number of inconsistencies in their input validation functions.
Muath Alkhalaf, Shauvik Roy Choudhary, Mattia Fazzini, Tevfik Bultan, Alessandro Orso, Christopher Krügel
ISSTA1
2011 Patching vulnerabilities with sanitization synthesis
abstract
We present automata-based static string analysis techniques that automatically generate sanitization statements for patching vulnerable 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 the security-sensitive functions. Next, we compute vulnerability signatures that characterize all input strings that can exploit the discovered vulnerability. Given the vulnerability signatures, 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.
Fang Yu 0001, Muath Alkhalaf, Tevfik Bultan
ICSE2
2010 Stranger: An Automata-Based String Analysis Tool for PHP
Fang Yu 0001, Muath Alkhalaf, Tevfik Bultan
TACAS2
2009 Generating Vulnerability Signatures for String Manipulating Programs Using Automata-Based Forward and Backward Symbolic Analyses
abstract
Given a program and an attack pattern (specified as a regular expression), we automatically generate string-based vulnerability signatures, i.e., a characterization that includes all malicious inputs that can be used to generate attacks. We use an automata-based string analysis framework. Using forward reachability analysis we compute an over-approximation of all possible values that string variables can take at each program point. Intersecting these with the attack pattern yields the potential attack strings if the program is vulnerable. Using backward analysis we compute an over-approximation of all possible inputs that can generate those attack strings. In addition to identifying existing vulnerabilities and their causes, these vulnerability signatures can be used to filter out malicious inputs. Our approach extends the prior work on automata-based string analysis by providing a backward symbolic analysis that includes a symbolic pre-image computation for deterministic finite automata on common string manipulating functions such as concatenation and replacement.
Fang Yu 0001, Muath Alkhalaf, Tevfik Bultan
ASE2