Demo Data from EDBT 2026 / reviewers in the wild / expert
Rody Kersten
dblp:89/9118 · also Rody W. J. Kersten
· DBLP profile ↗
7ranked-venue papers
2as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4Artificial intelligence and machine learning · 1Systems, architecture and hardware · 1 · 1 first-authorSecurity and privacy · 1 · 1 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
2 papers |
Software testing · 78% Program analysis · 22% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 6 heaviest of 6, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software testing
fuzzing |
0.6 | 2 | 2018 | Badger: complexity analysis with fuzzing and symbolic execution · ISSTA 2018 POSTER: AFL-based Fuzzing for Java with Kelinci · CCS 2017 |
Program analysis › cost analysis
complexity analysis |
0.3 | 1 | 2018 | Badger: complexity analysis with fuzzing and symbolic execution · ISSTA 2018 |
Software testing › fuzzing
coverage-guided fuzzing |
0.3 | 1 | 2017 | POSTER: AFL-based Fuzzing for Java with Kelinci · CCS 2017 |
Software testing › fuzzing
greybox fuzzing |
0.3 | 1 | 2017 | POSTER: AFL-based Fuzzing for Java with Kelinci · CCS 2017 |
Systems and software security › vulnerability discovery
fuzzing |
0.1 | 1 | 2017 | POSTER: AFL-based Fuzzing for Java with Kelinci · CCS 2017 |
Systems and software security
vulnerability discovery |
0.1 | 1 | 2017 | POSTER: AFL-based Fuzzing for Java with Kelinci · CCS 2017 |
Methods — techniques the papers use, named apart from their topics
program instrumentation · 0.6symbolic execution · 0.3fuzzing · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Complexity vulnerability analysis using symbolic executionabstractSummary We describe techniques based on symbolic execution for finding software vulnerabilities that are due to algorithmic complexity. Such vulnerabilities allow an attacker to mount denial‐of‐service attacks to deny service to benign users or to otherwise disable a software system. The techniques use an efficient guided symbolic execution of a program to compute bounds on the worst‐case complexity (for increasing input sizes) and to generate test values that trigger the worst‐case behaviours. The resulting bounds are fitted to a function to obtain a prediction of the worst‐case program behaviour at any input size. Scalability is achieved by using path policies that guide the symbolic execution towards worst‐case paths. The policies are learned from the worst‐case results obtained with exhaustive exploration at small input sizes and are applied to guide exploration at larger input sizes, where unguided exhaustive exploration is not possible. To achieve precision in the analysis, the path policies take into account the history of choices made along the path when deciding which branch to execute next. Furthermore, the computation is contextpreserving, meaning that the decision for each branch depends on the history computed with respect to the enclosing method. We further report preliminary results on a complementary technique that uses machine learning for building the path policies that guide the search. The techniques are implemented in open‐source projects that build on the Symbolic Pathfinder tool for analysing Java programs. Experimental evaluation shows that the techniques can find vulnerabilities in complex Java programs and can outperform previous symbolic approaches. Kasper Søe Luckow, Rody Kersten, Corina Pasareanu |
Softw. Test. Verification Reliab. | 2 |
| 2018 | Badger: complexity analysis with fuzzing and symbolic executionabstractHybrid testing approaches that involve fuzz testing and symbolic execution have shown promising results in achieving high code coverage, uncovering subtle errors and vulnerabilities in a variety of software applications. In this paper we describe Badger - a new hybrid approach for complexity analysis, with the goal of discovering vulnerabilities which occur when the worst-case time or space complexity of an application is significantly higher than the average case. Yannic Noller, Rody Kersten, Corina Pasareanu |
ISSTA | 2 |
| 2018 | A Cloud-Based Execution Framework for Program Analysis
Daniel Balasubramanian, Dmitriy Kostyuchenko, Kasper Søe Luckow, Rody Kersten, Gabor Karsai |
SEFM | 4 |
| 2017 | POSTER: AFL-based Fuzzing for Java with KelinciabstractGrey-box fuzzing is a random testing technique that has been shown to be effective at finding security vulnerabilities in software. The technique leverages program instrumentation to gather information about the program with the goal of increasing the code coverage during fuzzing, which makes gray-box fuzzers extremely efficient vulnerability detection tools. One such tool is AFL, a grey-box fuzzer for C programs that has been used successfully to find security vulnerabilities and other critical defects in countless software products. We present Kelinci, a tool that interfaces AFL with instrumented Java programs. The tool does not require modifications to AFL and is easily parallelizable. Applying AFL-type fuzzing to Java programs opens up the possibility of testing Java based applications using this powerful technique. We show the effectiveness of Kelinci by applying it on the image processing library Apache Commons Imaging, in which it identified a bug within one hour. Rody Kersten, Kasper Søe Luckow, Corina Pasareanu |
CCS | 1 |
| 2017 | Symbolic Complexity Analysis Using Context-Preserving HistoriesabstractWe propose a technique based on symbolic execution for analyzing the algorithmic complexity of programs. The technique uses an efficient guided analysis to compute bounds on the worst-case complexity (for increasing input sizes) and to generate test values that trigger the worst-case behaviors. The resulting bounds are fitted to a function to obtain a prediction of the worst-case program behavior at any input sizes. Comparing these predictions to the programmers' expectations or to theoretical asymptotic bounds can reveal vulnerabilities or confirm that a program behaves as expected. To achieve scalability we use path policies to guide the symbolic execution towards worst-case paths. The policies are learned from the worst-case results obtained with exhaustive exploration at small input sizes and are applied to guide exploration at larger input sizes, where un-guided exhaustive exploration is no longer possible. To achieve precision we use path policies that take into account the history of choices made along the path when deciding which branch to execute next in the program. Furthermore, the history computation is context-preserving, meaning that the decision for each branch depends on the history computed with respect to the enclosing method. We implemented the technique in the Symbolic PathFinder tool. We show experimentally that it can find vulnerabilities in complex Java programs and can outperform established symbolic techniques. Kasper Søe Luckow, Rody Kersten, Corina Pasareanu |
ICST | 2 |
| 2017 | Quantified Heap Invariants for Object-Oriented ProgramsabstractHeap and data structures represent one of the biggest challenges when applying model checking to the analysis of software programs: in order to verify (unbounded) safety of a program, it is typically necessary to formulate quantified inductive invariants that state properties about an unbounded number of heap locations. Methods like Craig interpolation, which are commonly used to infer invariants in model checking, are often ineffective when a heap is involved. To address this challenge, we introduce a set of new proof and program transformation rules for verifying object-oriented programs with the help of space invariants, which (implicitly) give rise to quantified invariants. Leveraging advances in Horn solving, we show how space invariants can be derived fully automatically, and how the framework can be used to effectively verify safety of Java programs. Temesghen Kahsai, Rody Kersten, Philipp Rümmer, Martin Schäf |
LPAR | 2 |
| 2014 | ResAna: a resource analysis toolset for (real-time) JAVAabstractSUMMARY For real‐time and embedded systems, limiting the consumption of time and memory resources is often an important part of the requirements. Being able to predict bounds on the consumption of such resources during the development process of the code can be of great value. In this paper, we focus mainly on memory‐related bounds. Recent research results have advanced the state of the art of resource consumption analysis. In this paper, we present a toolset that makes it possible to apply these research results in practice for (real‐time) systems enabling JAVA developers to analyse symbolic loop bounds, symbolic bounds on heap size and both symbolic and numeric bounds on stack size. We describe which theoretical additions were needed in order to achieve this. We give an overview of the capabilities of the RESANA (Radboud University Nijmegen, The Netherlands) toolset that is the result of this effort. The toolset can not only perform generally applicable analyses, but it also contains a part of the analysis that is dedicated to the developers' (real‐time) virtual machine, such that the results apply directly to the actual development environment that is used in practice. Copyright © 2013 John Wiley & Sons, Ltd. Rody Kersten, Bernard van Gastel, Olha Shkaravska, Manuel Montenegro, Marko C. J. D. van Eekelen |
Concurr. Comput. Pract. Exp. | 1 |