S.E. Verwer
Please Note
87 records found
1
On 140 single-line-substitution bugs from Defects4J 2.1, Find2Fix patches 33 bugs against Cardumen's 24, a 37.5% increase, with five bugs it gains requiring nested templates. Weighting the grammar by frequency and locality fixes 3 more bugs than an uninformed BFS enumeration, but the effect is not significant (p=0.25). Correct (not overfit) patches rise only from 2 to 5. Pattern-based grammars are thus effective for constructing a repair search space, but not (yet?) as a complete repair technique when used as in this thesis without a stronger patch-acceptance criterion. ...
On 140 single-line-substitution bugs from Defects4J 2.1, Find2Fix patches 33 bugs against Cardumen's 24, a 37.5% increase, with five bugs it gains requiring nested templates. Weighting the grammar by frequency and locality fixes 3 more bugs than an uninformed BFS enumeration, but the effect is not significant (p=0.25). Correct (not overfit) patches rise only from 2 to 5. Pattern-based grammars are thus effective for constructing a repair search space, but not (yet?) as a complete repair technique when used as in this thesis without a stronger patch-acceptance criterion.
Evaluating Extended Automata for Sequential Regression
A comparison against standard baselines
A Novel Algorithm for Automata Learning via Databases
Scaling Beyond Memory Constraints
Monte Carlo Tree Search for Deterministic Finite Automaton Inference
A New Search Strategy for the Red-Blue Framework
In this thesis, our aim is to design different implementations of a data structure that supports distinguish queries (DistinguishQueryDataStructure), and compare them through theoretical and experimental analysis.
To this end, we introduce the double trie, and show that using this data structure, it is possible to reduce distinguish queries to set intersection queries.
Then we design three different implementations of DistinguishQueryDataStructure, one of which uses a trie based approach with depth-first search, and two of which are based on the double trie.
Our experimental analysis shows that a double trie-based method can compete with, and even outperform in some cases the trie and depth-first-search-based approach. ...
In this thesis, our aim is to design different implementations of a data structure that supports distinguish queries (DistinguishQueryDataStructure), and compare them through theoretical and experimental analysis.
To this end, we introduce the double trie, and show that using this data structure, it is possible to reduce distinguish queries to set intersection queries.
Then we design three different implementations of DistinguishQueryDataStructure, one of which uses a trie based approach with depth-first search, and two of which are based on the double trie.
Our experimental analysis shows that a double trie-based method can compete with, and even outperform in some cases the trie and depth-first-search-based approach.
software can help fix bugs or prevent malicious intent from third parties. One way to detect these anomalies is by making use of pdfa’s. Pdfa learning an extension of dfa learning can be used to construct a model of an application given some logs of the application. To build a pdfa, a probabilistic deterministic finite automata, various algorithms in combination with extra parameters can be used. In this paper we will use the FlexFringe framework to look into these so called search orders to answer the question: What are good search orders in extended state machine learning for anomaly detection? We looked into the Alergia and RTI+ algorithm on data with and without time information. Our main conclusions are that Alergia together with the blueblue parameter works best for creating a model for anomaly detection. ...
software can help fix bugs or prevent malicious intent from third parties. One way to detect these anomalies is by making use of pdfa’s. Pdfa learning an extension of dfa learning can be used to construct a model of an application given some logs of the application. To build a pdfa, a probabilistic deterministic finite automata, various algorithms in combination with extra parameters can be used. In this paper we will use the FlexFringe framework to look into these so called search orders to answer the question: What are good search orders in extended state machine learning for anomaly detection? We looked into the Alergia and RTI+ algorithm on data with and without time information. Our main conclusions are that Alergia together with the blueblue parameter works best for creating a model for anomaly detection.
The variants are implemented in FlexFringe and evaluated on several time-series classification datasets and the CTU-13 network traffic dataset. Hyperparameters are selected using validation data, and final performance is measured on test sets using accuracy, specificity, EDFA size, and final-state consistency. The results show that Gini-based refinement can improve the structural quality of learned EDFAs compared to RTI by producing smaller automata and more class-consistent final states while maintaining competitive accuracy. The weighted variant achieves the best average EDFA accuracy among the proposed variants, although among the Gini variants, higher consistency often comes at the cost of larger automata. These findings suggest that Gini impurity is a promising basis for heuristic evaluation in EDSM-based EDFA learning, especially when interpretable and class-consistent automata are desired ...
The variants are implemented in FlexFringe and evaluated on several time-series classification datasets and the CTU-13 network traffic dataset. Hyperparameters are selected using validation data, and final performance is measured on test sets using accuracy, specificity, EDFA size, and final-state consistency. The results show that Gini-based refinement can improve the structural quality of learned EDFAs compared to RTI by producing smaller automata and more class-consistent final states while maintaining competitive accuracy. The weighted variant achieves the best average EDFA accuracy among the proposed variants, although among the Gini variants, higher consistency often comes at the cost of larger automata. These findings suggest that Gini impurity is a promising basis for heuristic evaluation in EDSM-based EDFA learning, especially when interpretable and class-consistent automata are desired
System Under Oath
Learning Microservice Architectures
This thesis investigates the challenges associated with learning systems based on microservice architectures. First, we present a framework for generating valid API requests across interacting services. Next, we address system flakiness during learning through the introduction of Two-Phase Equivalence Querying with adaptive sampling. Finally, to explain the non-deterministic behavior observed in microservice systems, we introduce the concept of State Drift, which captures state changes caused by internal communication between services.
To conclude this thesis, we apply the techniques developed throughout this work to a real-world software system. The system learned is an implementation of OAuth provided by Ubiqu. This case study demonstrates how our proposed techniques can be used in industry and highlights the practical challenges that remain when applying stateful learning to microservice architectures. ...
This thesis investigates the challenges associated with learning systems based on microservice architectures. First, we present a framework for generating valid API requests across interacting services. Next, we address system flakiness during learning through the introduction of Two-Phase Equivalence Querying with adaptive sampling. Finally, to explain the non-deterministic behavior observed in microservice systems, we introduce the concept of State Drift, which captures state changes caused by internal communication between services.
To conclude this thesis, we apply the techniques developed throughout this work to a real-world software system. The system learned is an implementation of OAuth provided by Ubiqu. This case study demonstrates how our proposed techniques can be used in industry and highlights the practical challenges that remain when applying stateful learning to microservice architectures.
Modeling Behavior Patterns in Microservice Applications
Practical Applications Using Finite State Machines
Despite its advantages, microservices are notoriously known to be difficult to debug when software failures occur. Developers often struggle to identify the underlying cause of a failure due to the distributed nature of microservices. In fact, certain software failures only emerge when complex interconnected interactions are triggered between microservices. Therefore, it is becoming increasingly important to develop monitoring tools to streamline the process of determining the underlying cause of problems detected within microservices.
The AssureMOSS project, part of the EU Horizon 2020 Research Program, focuses on
delivering various tools or approaches to enhance security at various phases of the microservice development life-cycle. This dissertation, conducted as part of the AssureMOSS project, primarily investigates runtime monitoring of microservices to detect anomalies such as cyber-attacks and discrepancies between observed behaviors and the intended behaviors specified in the source code.
A key project requirement is using lightweight interpretable machine learning models to aid the understanding of detected software failures. State machines, also known
as Finite State Automata, have proven to be practical models for modeling behaviors of various software systems. Furthermore, these models are considered to be inherently interpretable as one can visualize the behaviors exhibited by a system. For this reason, state machines are a suitable choice for monitoring microservice applications. This dissertation explores how state machines can be applied to address challenges across various phases of the microservices development life-cycle.
Part I explores how state machines can be utilized to monitor the runtime of microservices for anomalies. In particular, the studies conducted in Part I focus on detecting network anomalies, such as network attacks, within microservice applications. Part I first introduces ENCODE in Chapter 2, an encoding algorithm designed to preprocess NetFlow records, making them suitable for learning state machine models. Chapter 3 demonstrates how state machines can be learned from NetFlow data collected from microservices and evaluate their effectiveness in detecting various network attacks targeting microservices deployed in a Kubernetes cluster. Finally, Chapter 4 introduces SEQUENT, a novel anomaly detection approach that dynamically uses state visit frequencies to compute anomaly scores for behaviors observed at test time. SEQUENT addresses several limitations within the approach employed in Chapter 3, offering practical applications such as ranking and clustering alerts to understand detected anomalies better. Results suggest that SEQUENT achieved considerably better performance than the approach presented in Chapter 3.
Part II of this dissertation explores how state machines can detect discrepancies (non-
conformances) between the observed runtime behaviors of microservices and the intended behaviors specified in the source code. Chapter 5 introduces CATMA, a lightweight tool for conducting conformance analysis on microservices applications. CATMA uses state machines to capture observed behaviors and compares them against insights derived from Dataflow Diagrams, representing the intended behaviors specified in the source code. This comparison reveals any non-conformances, and CATMA provides human-readable explanations for these non-conformances to aid developers with identifying potential starting points to debug their microservices applications. CATMA’s pilot study shows promising performance results and provides valuable insights to developers. Additionally, CATMA made a small impact in the open-source software community by identifying and fixing a
non-conformance detected in an open-source project.
Finally, Part III of this dissertation explores how state machines can guide an Evolutionary Algorithm in the automated generation of test cases for the REST APIs of microservices. Chapter 6 introduces MISH, a search heuristic that continuously learns a state machine model from log statements from microservices. These models are then used to generate more effective system-level test cases. MISH extracts various insights from the state machine to compute the fitness of test cases, which the Evolutionary Algorithm uses to generate better test cases. MISH demonstrates promising results in using state machines to guide an evolutionary algorithm toward generating more effective test cases, even outperforming a state-of-the-art search algorithm, MOSA, in specific scenarios. Additionally, a preliminary study suggests that integrating MISH as a part of MOSA could enhance the quality of system-level tests, creating an interesting future research direction.
This dissertation demonstrates the effectiveness of state machines in modeling the behavioral patterns of microservices across various practical applications, including monitoring, validation, and testing. Consequently, multiple toolchains and algorithms were developed to evaluate the models’ efficacy and to facilitate the use of state machines in representing the behavioral patterns of software systems. ...
Despite its advantages, microservices are notoriously known to be difficult to debug when software failures occur. Developers often struggle to identify the underlying cause of a failure due to the distributed nature of microservices. In fact, certain software failures only emerge when complex interconnected interactions are triggered between microservices. Therefore, it is becoming increasingly important to develop monitoring tools to streamline the process of determining the underlying cause of problems detected within microservices.
The AssureMOSS project, part of the EU Horizon 2020 Research Program, focuses on
delivering various tools or approaches to enhance security at various phases of the microservice development life-cycle. This dissertation, conducted as part of the AssureMOSS project, primarily investigates runtime monitoring of microservices to detect anomalies such as cyber-attacks and discrepancies between observed behaviors and the intended behaviors specified in the source code.
A key project requirement is using lightweight interpretable machine learning models to aid the understanding of detected software failures. State machines, also known
as Finite State Automata, have proven to be practical models for modeling behaviors of various software systems. Furthermore, these models are considered to be inherently interpretable as one can visualize the behaviors exhibited by a system. For this reason, state machines are a suitable choice for monitoring microservice applications. This dissertation explores how state machines can be applied to address challenges across various phases of the microservices development life-cycle.
Part I explores how state machines can be utilized to monitor the runtime of microservices for anomalies. In particular, the studies conducted in Part I focus on detecting network anomalies, such as network attacks, within microservice applications. Part I first introduces ENCODE in Chapter 2, an encoding algorithm designed to preprocess NetFlow records, making them suitable for learning state machine models. Chapter 3 demonstrates how state machines can be learned from NetFlow data collected from microservices and evaluate their effectiveness in detecting various network attacks targeting microservices deployed in a Kubernetes cluster. Finally, Chapter 4 introduces SEQUENT, a novel anomaly detection approach that dynamically uses state visit frequencies to compute anomaly scores for behaviors observed at test time. SEQUENT addresses several limitations within the approach employed in Chapter 3, offering practical applications such as ranking and clustering alerts to understand detected anomalies better. Results suggest that SEQUENT achieved considerably better performance than the approach presented in Chapter 3.
Part II of this dissertation explores how state machines can detect discrepancies (non-
conformances) between the observed runtime behaviors of microservices and the intended behaviors specified in the source code. Chapter 5 introduces CATMA, a lightweight tool for conducting conformance analysis on microservices applications. CATMA uses state machines to capture observed behaviors and compares them against insights derived from Dataflow Diagrams, representing the intended behaviors specified in the source code. This comparison reveals any non-conformances, and CATMA provides human-readable explanations for these non-conformances to aid developers with identifying potential starting points to debug their microservices applications. CATMA’s pilot study shows promising performance results and provides valuable insights to developers. Additionally, CATMA made a small impact in the open-source software community by identifying and fixing a
non-conformance detected in an open-source project.
Finally, Part III of this dissertation explores how state machines can guide an Evolutionary Algorithm in the automated generation of test cases for the REST APIs of microservices. Chapter 6 introduces MISH, a search heuristic that continuously learns a state machine model from log statements from microservices. These models are then used to generate more effective system-level test cases. MISH extracts various insights from the state machine to compute the fitness of test cases, which the Evolutionary Algorithm uses to generate better test cases. MISH demonstrates promising results in using state machines to guide an evolutionary algorithm toward generating more effective test cases, even outperforming a state-of-the-art search algorithm, MOSA, in specific scenarios. Additionally, a preliminary study suggests that integrating MISH as a part of MOSA could enhance the quality of system-level tests, creating an interesting future research direction.
This dissertation demonstrates the effectiveness of state machines in modeling the behavioral patterns of microservices across various practical applications, including monitoring, validation, and testing. Consequently, multiple toolchains and algorithms were developed to evaluate the models’ efficacy and to facilitate the use of state machines in representing the behavioral patterns of software systems.
Ensemble Techniques for DFA Learning
DFA Ensembles without Suitability Metrics
Adapting the EDSM Algorithm for Ensemble Learning
A Machine Learning Approach to DFA Inference
Ensemble techniques for (P)DFA learning
Effect of changing the sequence orders on DFA ensembles learned via EDSM
A theoretical analysis of optimal and heuristic methods for DFA learning
Bachelor’s Degree Thesis
Ensemble Techniques for PDFA Learning
Diversity-Driven Ensemble Learning with the Alergia Algorithm
Decision Tree Learning
Algorithms for Robust Prediction and Policy Optimization
Decision trees were popularized in the 1980s and extensively studied, but there is still room for improvement. The most popular algorithms for learning decision trees are fast but do not necessarily lead to the best performance. They are not robust, meaning tiny changes in the data can negatively influence the quality of their predictions. Also, the existing algorithms cannot be directly applied to problems where multiple sequential predictions have to be made. Therefore, this dissertation studies several techniques for learning decision trees for robustness and sequential decision making problems.
In Part I of the dissertation, we consider the problem of optimizing decision trees to make good predictions while being robust to small changes in the data. In Chapter 4, we tackle the problem of learning good decision trees quickly in this setting. We improved the runtime of an existing algorithm by speeding up one of the key operations. In Chapter 5, we solve the problem of finding the best possible robust decision tree. The idea is to formulate the problem as an Integer-Linear Program, a special mathematical problem that can be solved with highly optimized algorithms. In Chapter 6, we propose a method that allows learning of models that are more flexible in terms of robustness, i.e., by allowing data changes in different shapes. To create an efficient algorithm, we optimize only the model’s predictions, not the model’s question part. Finally, in Chapter 7, we use techniques for improving data privacy to enable robustness against another kind of data change: someone adding or removing data.
Part II of this dissertation is about sequential decision making problems. In these settings, we control a device or agent that tries to achieve some goal in a potentially uncertain environment. Sequential decision making problems are significantly different from the supervised learning problems considered in Part I since the data is not pre-collected. This class of problems encompasses many real-life problems; one of the simplest of those could be a thermostat that measures the temperature in a room and needs to decide whether to turn a heater on or off constantly. Highly complex problems such as self-driving cars can be modeled similarly. We aim to find a controller represented by a simple decision tree for such problems. Such a controller is called a policy, and by representing it with a small decision tree, humans can understand it. In Chapter 9, we assume that we have a perfect mathematical description of the problem and use it to find the best possible decision tree via Integer Programming techniques. Later in Chapter 10, we assume that we can only interact with the environment and do not have a mathematical description of the problem. In this setting, we find good policies by iteratively updating the tree to achieve better scores using gradient information.
In our research, we have developed various algorithms for learning decision trees in settings that are hard to optimize with existing methods: robust predictions and sequential decision making. We hope that our work on decision tree learning for these settings allows human-understandable machine learning to be used in more real applications in the future. By improving model understanding and robustness, we aim to enable machine learning systems that humans can trust.
...
Decision trees were popularized in the 1980s and extensively studied, but there is still room for improvement. The most popular algorithms for learning decision trees are fast but do not necessarily lead to the best performance. They are not robust, meaning tiny changes in the data can negatively influence the quality of their predictions. Also, the existing algorithms cannot be directly applied to problems where multiple sequential predictions have to be made. Therefore, this dissertation studies several techniques for learning decision trees for robustness and sequential decision making problems.
In Part I of the dissertation, we consider the problem of optimizing decision trees to make good predictions while being robust to small changes in the data. In Chapter 4, we tackle the problem of learning good decision trees quickly in this setting. We improved the runtime of an existing algorithm by speeding up one of the key operations. In Chapter 5, we solve the problem of finding the best possible robust decision tree. The idea is to formulate the problem as an Integer-Linear Program, a special mathematical problem that can be solved with highly optimized algorithms. In Chapter 6, we propose a method that allows learning of models that are more flexible in terms of robustness, i.e., by allowing data changes in different shapes. To create an efficient algorithm, we optimize only the model’s predictions, not the model’s question part. Finally, in Chapter 7, we use techniques for improving data privacy to enable robustness against another kind of data change: someone adding or removing data.
Part II of this dissertation is about sequential decision making problems. In these settings, we control a device or agent that tries to achieve some goal in a potentially uncertain environment. Sequential decision making problems are significantly different from the supervised learning problems considered in Part I since the data is not pre-collected. This class of problems encompasses many real-life problems; one of the simplest of those could be a thermostat that measures the temperature in a room and needs to decide whether to turn a heater on or off constantly. Highly complex problems such as self-driving cars can be modeled similarly. We aim to find a controller represented by a simple decision tree for such problems. Such a controller is called a policy, and by representing it with a small decision tree, humans can understand it. In Chapter 9, we assume that we have a perfect mathematical description of the problem and use it to find the best possible decision tree via Integer Programming techniques. Later in Chapter 10, we assume that we can only interact with the environment and do not have a mathematical description of the problem. In this setting, we find good policies by iteratively updating the tree to achieve better scores using gradient information.
In our research, we have developed various algorithms for learning decision trees in settings that are hard to optimize with existing methods: robust predictions and sequential decision making. We hope that our work on decision tree learning for these settings allows human-understandable machine learning to be used in more real applications in the future. By improving model understanding and robustness, we aim to enable machine learning systems that humans can trust.
This research proposes a complementary method leveraging inter-host distances that localise the outlying hosts, logs and the time frames, which require more advanced analysis. By relying on a variant of a prominent statistical method in the field of authorship attribution - Burrows Delta - the approach enhances transparency in identifying deviating hosts, logs and time frames. Hence, the proposed solution offers an understandable complementary method that preserves integrability by being a log-based method while enabling understandable pinpointing of the specific hosts, logs and time frames that warrant further advanced analysis. By providing insights into the behaviour of the hosts over time, a temporal summarisation for security analysts is provided, relaxing their need to go through all the log files to understand the hosts' behaviour.
The results show that a complementary method based on the textual content of the metadata of the logs provides alternative insight into the activities of the hosts than the attributes. Moreover, the behaviour defined by the proposed method requires less extensive lookup than the behaviour defined by attributes. The inter-host distances based on the textual content allow understandable localisation of the host behaviour over time. Hence, this research provides an understandable method that will summarise the behaviour of the hosts over time, which enables the localisation of the logs requiring more advanced, in-depth analysis, and thereby reducing the amount of logs security analists need to consider during a compromise. ...
This research proposes a complementary method leveraging inter-host distances that localise the outlying hosts, logs and the time frames, which require more advanced analysis. By relying on a variant of a prominent statistical method in the field of authorship attribution - Burrows Delta - the approach enhances transparency in identifying deviating hosts, logs and time frames. Hence, the proposed solution offers an understandable complementary method that preserves integrability by being a log-based method while enabling understandable pinpointing of the specific hosts, logs and time frames that warrant further advanced analysis. By providing insights into the behaviour of the hosts over time, a temporal summarisation for security analysts is provided, relaxing their need to go through all the log files to understand the hosts' behaviour.
The results show that a complementary method based on the textual content of the metadata of the logs provides alternative insight into the activities of the hosts than the attributes. Moreover, the behaviour defined by the proposed method requires less extensive lookup than the behaviour defined by attributes. The inter-host distances based on the textual content allow understandable localisation of the host behaviour over time. Hence, this research provides an understandable method that will summarise the behaviour of the hosts over time, which enables the localisation of the logs requiring more advanced, in-depth analysis, and thereby reducing the amount of logs security analists need to consider during a compromise.