Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Johannes Lerch

dblp:128/5813 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.732016
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.522016
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.312017
Hardening Java's Access Control by Abolishing Implicit Privilege Elevation · IEEE Symposium on Security and Privacy 2017
Web and mobile security
mobile security
0.312017
CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017
Web and mobile security › mobile security
repackaged app detection
0.312017
CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017
Software maintenance and evolution › software ecosystems
library identification
0.312017
CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017
Software maintenance and evolution
software ecosystems
0.312017
CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017
Program analysis › static analysis
call graph construction
0.212016
Call graph construction for Java libraries · SIGSOFT FSE 2016
Program analysis › static analysis
interprocedural analysis
0.212016
Call graph construction for Java libraries · SIGSOFT FSE 2016
Program synthesis and code generation
code completion
0.212015
Intelligent Code Completion with Bayesian Networks · ACM Trans. Softw. Eng. Methodol. 2015
Program analysis › data flow analysis
field-sensitive analysis
0.212015
Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T) · ASE 2015
Program analysis › static analysis
taint analysis
0.212014
FlowTwist: efficient context-sensitive inside-out taint analysis for large codebases · SIGSOFT FSE 2014
Runtime systems and virtual machines › managed runtime
java runtime
0.112017
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.112014
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
YearPublicationVenuePosition
2017 CodeMatch: obfuscation won't conceal your repackaged app
abstract
An 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 FSE6
2017 Hardening Java's Access Control by Abolishing Implicit Privilege Elevation
abstract
While 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 Privacy3
2016 Call graph construction for Java libraries
abstract
Today, 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 FSE4
2015 Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T)
abstract
Precise 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
ASE1
2015 Intelligent Code Completion with Bayesian Networks
abstract
Code 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 codebases
abstract
Over 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 FSE1