EDBT 2026 Demo / reviewers in the wild / expert
Johannes Lerch
dblp:128/5813
· DBLP profile ↗
6ranked-venue papers
2as first author
0since 2021 · last 2017
0009-0004-1219-3548ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 2 first-authorSecurity and privacy · 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
6 papers |
Program analysis · 70% Software maintenance and evolution · 20% Program synthesis and code generation · 8% | |
| Network and information security
3 papers |
Web and mobile security · 44% Systems and software security · 33% Authentication and access control · 22% |
Topics — the 14 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
0.7 | 3 | 2016 | Call graph construction for Java libraries · SIGSOFT FSE 2016 Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T) · ASE 2015 FlowTwist: efficient context-sensitive inside-out taint analysis for large codebases · SIGSOFT FSE 2014 |
Program analysis
data flow analysis |
0.5 | 2 | 2016 | Call graph construction for Java libraries · SIGSOFT FSE 2016 Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T) · ASE 2015 |
Authentication and access control
access control |
0.3 | 1 | 2017 | Hardening Java's Access Control by Abolishing Implicit Privilege Elevation · IEEE Symposium on Security and Privacy 2017 |
Web and mobile security
mobile security |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Web and mobile security › mobile security
repackaged app detection |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Software maintenance and evolution › software ecosystems
library identification |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Software maintenance and evolution
software ecosystems |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Program analysis › static analysis
call graph construction |
0.2 | 1 | 2016 | Call graph construction for Java libraries · SIGSOFT FSE 2016 |
Program analysis › static analysis
interprocedural analysis |
0.2 | 1 | 2016 | Call graph construction for Java libraries · SIGSOFT FSE 2016 |
Program synthesis and code generation
code completion |
0.2 | 1 | 2015 | Intelligent Code Completion with Bayesian Networks · ACM Trans. Softw. Eng. Methodol. 2015 |
Program analysis › data flow analysis
field-sensitive analysis |
0.2 | 1 | 2015 | Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T) · ASE 2015 |
Program analysis › static analysis
taint analysis |
0.2 | 1 | 2014 | FlowTwist: efficient context-sensitive inside-out taint analysis for large codebases · SIGSOFT FSE 2014 |
Runtime systems and virtual machines › managed runtime
java runtime |
0.1 | 1 | 2017 | Hardening Java's Access Control by Abolishing Implicit Privilege Elevation · IEEE Symposium on Security and Privacy 2017 |
Systems and software security
information flow control |
0.1 | 1 | 2014 | FlowTwist: efficient context-sensitive inside-out taint analysis for large codebases · SIGSOFT FSE 2014 |
Methods — techniques the papers use, named apart from their topics
tool-assisted adaptation · 0.6library code removal · 0.6fuzzy hashing · 0.6bytecode abstraction · 0.6IFDS · 0.4call graph construction · 0.2control-flow merge analysis · 0.2clustering · 0.2bayesian network · 0.2access path reconstruction · 0.2inside-out analysis · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | CodeMatch: obfuscation won't conceal your repackaged appabstractAn established way to steal the income of app developers, or to trick users into installing malware, is the creation of repackaged apps. These are clones of - typically - successful apps. To conceal their nature, they are often obfuscated by their creators. But, given that it is a common best practice to obfuscate apps, a trivial identification of repackaged apps is not possible. The problem is further intensified by the prevalent usage of libraries. In many apps, the size of the overall code base is basically determined by the used libraries. Therefore, two apps, where the obfuscated code bases are very similar, do not have to be repackages of each other. To reliably detect repackaged apps, we propose a two step approach which first focuses on the identification and removal of the library code in obfuscated apps. This approach - LibDetect - relies on code representations which abstract over several parts of the underlying bytecode to be resilient against certain obfuscation techniques. Using this approach, we are able to identify on average 70% more used libraries per app than previous approaches. After the removal of an app's library code, we then fuzzy hash the most abstract representation of the remaining app code to ensure that we can identify repackaged apps even if very advanced obfuscation techniques are used. This makes it possible to identify repackaged apps. Using our approach, we found that ≈ 15% of all apps in Android app stores are repackages Leonid Glanz, Sven Amann, Michael Eichberg, Michael Reif, Ben Hermann, Johannes Lerch, Mira Mezini |
ESEC/SIGSOFT FSE | 6 |
| 2017 | Hardening Java's Access Control by Abolishing Implicit Privilege ElevationabstractWhile the Java runtime is installed on billions of devices and servers worldwide, it remains a primary attack vector for online criminals. As recent studies show, the majority of all exploited Java vulnerabilities comprise incorrect or insufficient implementations of access-control checks. This paper for the first time studies the problem in depth. As we find, attacks are enabled by shortcuts that short-circuit Java's general principle of stack-based access control. These shortcuts, originally introduced for ease of use and to improve performance, cause Java to elevate the privileges of code implicitly. As we show, this creates many pitfalls for software maintenance, making it all too easy for maintainers of the runtime to introduce blatant confused-deputy vulnerabilities even by just applying normally semantics-preserving refactorings. How can this problem be solved? Can one implement Java's access control without shortcuts, and if so, does this implementation remain usable and efficient? To answer those questions, we conducted a tool-assisted adaptation of the Java Class Library (JCL), avoiding (most) shortcuts and therefore moving to a fully explicit model of privilege elevation. As we show, the proposed changes significantly harden the JCL against attacks: they effectively hinder the introduction of new confused-deputy vulnerabilities in future library versions, and successfully restrict the capabilities of attackers when exploiting certain existing vulnerabilities. We discuss usability considerations, and through a set of large-scale experiments show that with current JVM technology such a faithful implementation of stack-based access control induces no observable performance loss. Philipp Holzinger, Ben Hermann, Johannes Lerch, Eric Bodden, Mira Mezini |
IEEE Symposium on Security and Privacy | 3 |
| 2016 | Call graph construction for Java librariesabstractToday, every application uses software libraries. Yet, while a lot of research exists w.r.t. analyzing applications, research that targets the analysis of libraries independent of any application is scarce. This is unfortunate, because, for developers of libraries, such as the Java Development Kit (JDK), it is crucial to ensure that the library behaves as intended regardless of how it is used. To fill this gap, we discuss the construction of call graphs for libraries that abstract over all potential library usages. Call graphs are particularly relevant as they are a precursor of many advanced analyses, such as inter-procedural data-flow analyses. Michael Reif, Michael Eichberg, Ben Hermann, Johannes Lerch, Mira Mezini |
SIGSOFT FSE | 4 |
| 2015 | Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T)abstractPrecise data-flow analyses frequently model field accesses through access paths with varying length. While using longer access paths increases precision, their size must be bounded to assure termination, and should anyway be small to enable a scalable analysis. We present Access-Path Abstraction, which for the first time combines efficiency with maximal precision. At control-flow merge points Access-Path Abstraction represents all those access paths that are rooted at the same base variable through this base variable only. The full access paths are reconstructed on demand where required. This makes it unnecessary to bound access paths to a fixed maximal length. Experiments with Stanford SecuriBench and the Java Class Library compare our open-source implementation against a field-based approach and against a field-sensitive approach that uses bounded access paths. The results show that the proposed approach scales as well as a field-based approach, whereas the approach using bounded access paths runs out of memory. Johannes Lerch, Johannes Späth, Eric Bodden, Mira Mezini |
ASE | 1 |
| 2015 | Intelligent Code Completion with Bayesian NetworksabstractCode completion is an integral part of modern Integrated Development Environments (IDEs). Developers often use it to explore Application Programming Interfaces (APIs). It is also useful to reduce the required amount of typing and to help avoid typos. Traditional code completion systems propose all type-correct methods to the developer. Such a list is often very long with many irrelevant items. More intelligent code completion systems have been proposed in prior work to reduce the list of proposed methods to relevant items. This work extends one of these existing approaches, the Best Matching Neighbor (BMN) algorithm. We introduce Bayesian networks as an alternative underlying model, use additional context information for more precise recommendations, and apply clustering techniques to improve model sizes. We compare our new approach, Pattern-based Bayesian Networks (PBN), to the existing BMN algorithm. We extend previously used evaluation methodologies and, in addition to prediction quality, we also evaluate model size and inference speed. Our results show that the additional context information we collect improves prediction quality, especially for queries that do not contain method calls. We also show that PBN can obtain comparable prediction quality to BMN, while model size and inference speed scale better with large input sizes. Sebastian Proksch 0001, Johannes Lerch, Mira Mezini |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 2014 | FlowTwist: efficient context-sensitive inside-out taint analysis for large codebasesabstractOver the past years, widely used platforms such as the Java Class Library have been under constant attack through vulnerabilities that involve a combination of two taint-analysis problems: an integrity problem allowing attackers to trigger sensitive operations within the platform, and a confidentiality problem allowing the attacker to retrieve sensitive information or pointers from the results of those operations. While existing static taint analyses are good at solving either of those problems, we show that they scale prohibitively badly when being applied to situations that require the exploitation of both an integrity and confidentiality problem in combination. The main problem is the huge attack surface of libraries such as the Java Class Library, which exposes thousands of methods potentially controllable by an attacker. In this work we thus present FlowTwist, a novel taint-analysis approach that works inside-out, i.e., tracks data flows from potentially vulnerable calls to the outer level of the API which the attacker might control. This inside-out analysis requires a careful, context-sensitive coordination of both a backward and a forward taint analysis. In this work, we expose a design of the analysis approach based on the IFDS algorithm, and explain several extensions to IFDS that enable not only this coordination but also a helpful reporting of error situations to security analysts. Experiments with the Java Class Library show that, while a simple forward taint-analysis approach does not scale even with much machine power, FlowTwist's algorithm is able to fully analyze the library within 10 minutes. Johannes Lerch, Ben Hermann, Eric Bodden, Mira Mezini |
SIGSOFT FSE | 1 |