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

Björn Mathis

dblp:202/8379 · DBLP profile ↗
← Back
6ranked-venue papers
4as first author
1since 2021 · last 2023
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 4 first-authorSecurity and privacy · 1 · 1 since 2021

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
5 papers
Software testing · 69% Program analysis · 31%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 13 heaviest of 13, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing
fuzzing
1.532023
Systematic Assessment of Fuzzers using Mutation Analysis · USENIX Security Symposium 2023
Learning input tokens for effective fuzzing · ISSTA 2020
Parser-directed fuzzing · PLDI 2019
Software testing
test generation
1.132020
Learning input tokens for effective fuzzing · ISSTA 2020
Parser-directed fuzzing · PLDI 2019
Dynamic tainting for automatic test case generation · ISSTA 2017
Program analysis
dynamic analysis
1.032020
Mining input grammars from dynamic control flow · ESEC/SIGSOFT FSE 2020
Learning input tokens for effective fuzzing · ISSTA 2020
Dynamic tainting for automatic test case generation · ISSTA 2017
Program analysis › static analysis
taint analysis
0.722020
Learning input tokens for effective fuzzing · ISSTA 2020
Dynamic tainting for automatic test case generation · ISSTA 2017
Software testing › fuzzing
fuzzer benchmarking
0.712023
Systematic Assessment of Fuzzers using Mutation Analysis · USENIX Security Symposium 2023
Software testing › fuzzing
grammar-based fuzzing
0.412020
Learning input tokens for effective fuzzing · ISSTA 2020
Program analysis › dynamic analysis
input grammar inference
0.412020
Mining input grammars from dynamic control flow · ESEC/SIGSOFT FSE 2020
Software testing › fuzzing › input generation
seed generation
0.412020
Learning input tokens for effective fuzzing · ISSTA 2020
Software testing
test input generation
0.412020
Mining input grammars from dynamic control flow · ESEC/SIGSOFT FSE 2020
Systems and software security › program analysis
dynamic analysis
0.312017
Detecting information flow by mutating input data · ASE 2017
Systems and software security › information flow control
information flow analysis
0.312017
Detecting information flow by mutating input data · ASE 2017
Systems and software security › information flow tracking
taint analysis
0.312017
Detecting information flow by mutating input data · ASE 2017
Software testing
mutation testing
0.212023
Systematic Assessment of Fuzzers using Mutation Analysis · USENIX Security Symposium 2023

Methods — techniques the papers use, named apart from their topics

dynamic tainting · 0.7mutation analysis · 0.7lexical analysis · 0.4grammar mining · 0.4dynamic control flow analysis · 0.4coverage-guided fuzzing · 0.4mutation-based analysis · 0.3
YearPublicationVenuePosition
2023 Systematic Assessment of Fuzzers using Mutation Analysis
Philipp Görz, Björn Mathis, Keno Hassler, Emre Güler, Thorsten Holz, Andreas Zeller, Rahul Gopinath
USENIX Security Symposium2
2020 Learning input tokens for effective fuzzing
abstract
Modern fuzzing tools like AFL operate at a lexical level: They explore the input space of tested programs one byte after another. For inputs with complex syntactical properties, this is very inefficient, as keywords and other tokens have to be composed one character at a time. Fuzzers thus allow to specify dictionaries listing possible tokens the input can be composed from; such dictionaries speed up fuzzers dramatically. Also, fuzzers make use of dynamic tainting to track input tokens and infer values that are expected in the input validation phase. Unfortunately, such tokens are usually implicitly converted to program specific values which causes a loss of the taints attached to the input data in the lexical phase. In this paper, we present a technique to extend dynamic tainting to not only track explicit data flows but also taint implicitly converted data without suffering from taint explosion. This extension makes it possible to augment existing techniques and automatically infer a set of tokens and seed inputs for the input language of a program given nothing but the source code. Specifically targeting the lexical analysis of an input processor, our lFuzzer test generator systematically explores branches of the lexical analysis, producing a set of tokens that fully cover all decisions seen. The resulting set of tokens can be directly used as a dictionary for fuzzing. Along with the token extraction seed inputs are generated which give further fuzzing processes a head start. In our experiments, the lFuzzer-AFL combination achieves up to 17% more coverage on complex input formats like json, lisp, tinyC, and JavaScript compared to AFL.
Björn Mathis, Rahul Gopinath, Andreas Zeller
ISSTA1
2020 Mining input grammars from dynamic control flow
abstract
One of the key properties of a program is its input specification. Having a formal input specification can be critical in fields such as vulnerability analysis, reverse engineering, software testing, clone detection, or refactoring. Unfortunately, accurate input specifications for typical programs are often unavailable or out of date.
Rahul Gopinath, Björn Mathis, Andreas Zeller
ESEC/SIGSOFT FSE2
2019 Parser-directed fuzzing
abstract
To be effective, software test generation needs to well cover the space of possible inputs. Traditional fuzzing generates large numbers of random inputs, which however are unlikely to contain keywords and other specific inputs of non-trivial input languages. Constraint-based test generation solves conditions of paths leading to uncovered code, but fails on programs with complex input conditions because of path explosion. In this paper, we present a test generation technique specifically directed at input parsers. We systematically produce inputs for the parser and track comparisons made; after every rejection, we satisfy the comparisons leading to rejection. This approach effectively covers the input space: Evaluated on five subjects, from CSV files to JavaScript, our pFuzzer prototype covers more tokens than both random-based and constraint-based approaches, while requiring no symbolic analysis and far fewer tests than random fuzzers.
Björn Mathis, Rahul Gopinath, Michaël Mera, Alexander Kampmann, Matthias Höschele, Andreas Zeller
PLDI1
2017 Dynamic tainting for automatic test case generation
abstract
Dynamic tainting is an important part of modern software engineering research. State-of-the-art tools for debugging, bug detection and program analysis make use of this technique. Nonetheless, the research area based on dynamic tainting still has open questions, among others the automatic generation of program inputs.
Björn Mathis
ISSTA1
2017 Detecting information flow by mutating input data
abstract
Analyzing information flow is central in assessing the security of applications. However, static and dynamic analyses of information flow are easily challenged by non-available or obscure code. We present a lightweight mutation-based analysis that systematically mutates dynamic values returned by sensitive sources to assess whether the mutation changes the values passed to sensitive sinks. If so, we found a flow between source and sink. In contrast to existing techniques, mutation-based flow analysis does not attempt to identify the specific path of the flow and is thus resilient to obfuscation. In its evaluation, our MUTAFLOW prototype for Android programs showed that mutation-based flow analysis is a lightweight yet effective complement to existing tools. Compared to the popular FlowDroid static analysis tool, MutaFlow requires less than 10% of source code lines but has similar accuracy; on 20 tested real-world apps, it is able to detect 75 flows that FlowDroid misses.
Björn Mathis, Vitalii Avdiienko, Ezekiel O. Soremekun, Marcel Böhme, Andreas Zeller
ASE1