In this thesis, we study algorithms which can be used to extract, or learn, formal mathematical models from software systems and then using these models to test whether the given software systems satisfy certain security properties such as robustness against code injection attacks. Specifically, we focus on studying learning algorithms for automata and transducers and the symbolic extensions of these models, namely symbolic finite automata (SFAs). In a high level, this thesis contributes the following results: 1. In the first part of the thesis, we present a unified treatment of many common variations of the seminal L* algorithm for learning deterministic finite automata (DFAs) as a congruence learning algorithm for the underlying Nerode c...
We proposes an algorithm to learn automata infinite alphabets, or at least too large to enumerate. W...
Automata learning is a technique that has successfully been applied in verification, with the automa...
Finite automata and finite transducers are used in a wide range of applications in software engineer...
We study the learnability of symbolic finite state automata (SFA), a model shown useful in many appl...
Symbolic finite automata (SFA) allow the representation of regular languages of strings over an infi...
In this paper, we propose a methodology, based on machine learning, for building a symbolic finite s...
Verifying string manipulating programs is a crucial problem in computer security. String operations ...
Automata, the simplest model of computation, have proven to be an effective tool in reasoning about ...
International audienceWe propose algorithms for checking language equivalence of finite automata ove...
Inferring the input grammar accepted by a program is central for a variety of software engineering p...
Bugs in user input sanitation of software systems often lead to vulnerabilities. Among them many are...
Formal models are often used to describe the behavior of a computer program or component. Behavioral...
We introduce a model for mixed syntactic/semantic approximation of programs based on symbolic finite...
Automata, the simplest model of computation, have proven to be an effective tool in reasoning about ...
Most common vulnerabilities in modern software applications are due to errors in string manipulatio...
We proposes an algorithm to learn automata infinite alphabets, or at least too large to enumerate. W...
Automata learning is a technique that has successfully been applied in verification, with the automa...
Finite automata and finite transducers are used in a wide range of applications in software engineer...
We study the learnability of symbolic finite state automata (SFA), a model shown useful in many appl...
Symbolic finite automata (SFA) allow the representation of regular languages of strings over an infi...
In this paper, we propose a methodology, based on machine learning, for building a symbolic finite s...
Verifying string manipulating programs is a crucial problem in computer security. String operations ...
Automata, the simplest model of computation, have proven to be an effective tool in reasoning about ...
International audienceWe propose algorithms for checking language equivalence of finite automata ove...
Inferring the input grammar accepted by a program is central for a variety of software engineering p...
Bugs in user input sanitation of software systems often lead to vulnerabilities. Among them many are...
Formal models are often used to describe the behavior of a computer program or component. Behavioral...
We introduce a model for mixed syntactic/semantic approximation of programs based on symbolic finite...
Automata, the simplest model of computation, have proven to be an effective tool in reasoning about ...
Most common vulnerabilities in modern software applications are due to errors in string manipulatio...
We proposes an algorithm to learn automata infinite alphabets, or at least too large to enumerate. W...
Automata learning is a technique that has successfully been applied in verification, with the automa...
Finite automata and finite transducers are used in a wide range of applications in software engineer...