Abdulbaki Aydin

dblp:147/0425 · DBLP profile ↗
← Back
8ranked-venue papers
4as first author
0since 2021 · last 2018
—ORCID · none

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

Software engineering, systems software and programming languages · 8 · 4 first-authorTheory of computation · 1 · 1 first-author

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 · 83% Software testing · 12% Debugging and program repair · 5%
Network and information security
3 papers
Hardware security and side channels · 32% Privacy and data protection · 24% Web and mobile security · 18%
Theoretical computer science
2 papers
Automated reasoning and model checking · 57% Automata and formal languages · 43%

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

TopicWeightPapersLastEvidence papers
Program analysis
symbolic execution
0.932018
Parameterized model counting for string and numeric constraints · ESEC/SIGSOFT FSE 2018
Constraint normalization and parameterized caching for quantitative program analysis · ESEC/SIGSOFT FSE 2017
String analysis for side channels with segmented oracles · SIGSOFT FSE 2016
Program analysis
constraint solving
0.622018
Parameterized model counting for string and numeric constraints · ESEC/SIGSOFT FSE 2018
Constraint normalization and parameterized caching for quantitative program analysis · ESEC/SIGSOFT FSE 2017
Program analysis › constraint solving
model counting
0.622018
Parameterized model counting for string and numeric constraints · ESEC/SIGSOFT FSE 2018
Constraint normalization and parameterized caching for quantitative program analysis · ESEC/SIGSOFT FSE 2017
Program analysis › data flow analysis › value analysis
string analysis
0.422016
String analysis for side channels with segmented oracles · SIGSOFT FSE 2016
Semantic differential repair for input validation and sanitization · ISSTA 2014
Hardware security and side channels
side-channel attack
0.322017
String analysis for side channels with segmented oracles · SIGSOFT FSE 2016
Constraint normalization and parameterized caching for quantitative program analysis · ESEC/SIGSOFT FSE 2017
Automata and formal languages
finite automata
0.312018
Parameterized model counting for string and numeric constraints · ESEC/SIGSOFT FSE 2018
Program analysis
quantitative program analysis
0.312017
Constraint normalization and parameterized caching for quantitative program analysis · ESEC/SIGSOFT FSE 2017
Privacy and data protection › information leakage
information leakage quantification
0.212016
String analysis for side channels with segmented oracles · SIGSOFT FSE 2016
Software testing › test coverage
path coverage
0.212015
Automatically computing path complexity of programs · ESEC/SIGSOFT FSE 2015
Software testing
test coverage
0.212015
Automatically computing path complexity of programs · ESEC/SIGSOFT FSE 2015
Automated reasoning and model checking
model counting
0.212015
Automata-Based Model Counting for String Constraints · CAV (1) 2015
Automated reasoning and model checking › constraint solving
string constraint solving
0.212015
Automata-Based Model Counting for String Constraints · CAV (1) 2015
Systems and software security › secure software development
input validation
0.212014
Semantic differential repair for input validation and sanitization · ISSTA 2014
Web and mobile security
web security
0.212014
Semantic differential repair for input validation and sanitization · ISSTA 2014
Debugging and program repair
automated program repair
0.212014
Semantic differential repair for input validation and sanitization · ISSTA 2014
Program analysis
static analysis
0.212014
Semantic differential repair for input validation and sanitization · ISSTA 2014
Authentication and access control
password security
0.112016
String analysis for side channels with segmented oracles · SIGSOFT FSE 2016
Program analysis › program representation
control flow graph
0.112015
Automatically computing path complexity of programs · ESEC/SIGSOFT FSE 2015

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

model counting · 1.1parameterized caching · 0.6group theory · 0.6constraint normalization · 0.6symbolic execution · 0.5string analysis · 0.5SMT solving · 0.5cyclomatic complexity · 0.2automata-based model counting · 0.2asymptotic analysis · 0.2NPATH complexity · 0.2symbolic string analysis · 0.2patch synthesis · 0.2automata · 0.2
YearPublicationVenuePosition
2018 Parameterized model counting for string and numeric constraints
abstract
Recently, symbolic program analysis techniques have been extended to quantitative analyses using model counting constraint solvers. Given a constraint and a bound, a model counting constraint solver computes the number of solutions for the constraint within the bound. We present a parameterized model counting constraint solver for string and numeric constraints. We first construct a multi-track deterministic finite state automaton that accepts all solutions to the given constraint. We limit the numeric constraints to linear integer arithmetic, and for non-regular string constraints we over-approximate the solution set. Counting the number of accepting paths in the generated automaton solves the model counting problem. Our approach is parameterized in the sense that, we do not assume a finite domain size during automata construction, resulting in a potentially infinite set of solutions, and our model counting approach works for arbitrarily large bounds. We experimentally demonstrate the effectiveness of our approach on a large set of string and numeric constraints extracted from software applications. We experimentally compare our tool to five existing model counting constraint solvers for string and numeric constraints and demonstrate that our tool is as efficient and as or more precise than other solvers. Moreover, our tool can handle mixed constraints with string and integer variables that no other tool can.
Abdulbaki Aydin, William Eiers, Lucas Bang, Tegan Brennan, Miroslav Gavrilov, Tevfik Bultan, Fang Yu 0001
ESEC/SIGSOFT FSE1
2017 Visual Configuration of Mobile Privacy Policies
Abdulbaki Aydin, David Piorkowski, Omer Tripp, Pietro Ferrara 0001, Marco Pistoia
FASE1
2017 Constraint normalization and parameterized caching for quantitative program analysis
abstract
Symbolic program analysis techniques rely on satisfiability-checking constraint solvers, while quantitative program analysis techniques rely on model-counting constraint solvers. Hence, the efficiency of satisfiability checking and model counting is crucial for efficiency of modern program analysis techniques. In this paper, we present a constraint caching framework to expedite potentially expensive satisfiability and model-counting queries. Integral to this framework is our new constraint normalization procedure under which the cardinality of the solution set of a constraint, but not necessarily the solution set itself, is preserved. We extend these constraint normalization techniques to string constraints in order to support analysis of string-manipulating code. A group-theoretic framework which generalizes earlier results on constraint normalization is used to express our normalization techniques. We also present a parameterized caching approach where, in addition to storing the result of a model-counting query, we also store a model-counter object in the constraint store that allows us to efficiently recount the number of satisfying models for different maximum bounds. We implement our caching framework in our tool Cashew, which is built as an extension of the Green caching framework, and integrate it with the symbolic execution tool Symbolic PathFinder (SPF) and the model-counting constraint solver ABC. Our experiments show that constraint caching can significantly improve the performance of symbolic and quantitative program analyses. For instance, Cashew can normalize the 10,104 unique constraints in the SMC/Kaluza benchmark down to 394 normal forms, achieve a 10x speedup on the SMC/Kaluza-Big dataset, and an average 3x speedup in our SPF-based side-channel analysis experiments.
Tegan Brennan, Nestan Tsiskaridze, Nicolás Rosner, Abdulbaki Aydin, Tevfik Bultan
ESEC/SIGSOFT FSE4
2016 String analysis for side channels with segmented oracles
abstract
We present an automated approach for detecting and quantifying side channels in Java programs, which uses symbolic execution, string analysis and model counting to compute information leakage for a single run of a program. We further extend this approach to compute information leakage for multiple runs for a type of side channels called segmented oracles, where the attacker is able to explore each segment of a secret (for example each character of a password) independently. We present an efficient technique for segmented oracles that computes information leakage for multiple runs using only the path constraints generated from a single run symbolic execution. Our implementation uses the symbolic execution tool Symbolic PathFinder (SPF), SMT solver Z3, and two model counting constraint solvers LattE and ABC. Although LattE has been used before for analyzing numeric constraints, in this paper, we present an approach for using LattE for analyzing string constraints. We also extend the string constraint solver ABC for analysis of both numeric and string constraints, and we integrate ABC in SPF, enabling quantitative symbolic string analysis.
Lucas Bang, Abdulbaki Aydin, Quoc-Sang Phan, Corina Pasareanu, Tevfik Bultan
SIGSOFT FSE2
2015 Automata-Based Model Counting for String Constraints
Abdulbaki Aydin, Lucas Bang, Tevfik Bultan
CAV (1)1
2015 Automatically computing path complexity of programs
abstract
Recent automated software testing techniques concentrate on achieving path coverage. We present a complexity measure that provides an upper bound for the number of paths in a program, and hence, can be used for assessing the difficulty of achieving path coverage for a given method. We define the path complexity of a program as a function that takes a depth bound as input and returns the number of paths in the control flow graph that are within that bound. We show how to automatically compute the path complexity function in closed form, and the asymptotic path complexity which identifies the dominant term in the path complexity function. Our results demonstrate that path complexity can be computed efficiently, and it is a better complexity measure for path coverage compared to cyclomatic complexity and NPATH complexity.
Lucas Bang, Abdulbaki Aydin, Tevfik Bultan
ESEC/SIGSOFT FSE2
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
ICST1
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
ISSTA2