Joschua Schilling

Joschua Schilling, M. Sc.

Department of Computer Science
Chair of Computer Science 1 (IT Security Infrastructures)

Room: Room 12.134
Martensstraße 3
91058 Erlangen

I studied computer science and hold a M.Sc. (with distinction) from FAU Erlangen-Nürnberg. Currently, I am a PhD candidate in Tilo‘s system security and software protection group.
My main research interests include, but are not limited to Software & System Security. Currently, I am especially interested in vulnerability research, static, dynamic and hybrid source code and binary analysis.

Open Theses (Bachelor / Master) and Projects

If you are enrolled as a computer science student at FAU, I can directly supervise your thesis. I can also supervise your Master Project as part of the IT-Security Projekt. Currently, I have some open topics (also listed here). However, not all possible topics are always listed publicly. So if you are interested in my field of research or already have an idea, just drop me an email (Joschua.Schilling@fau.de) and we can talk about it. Feel free to contact me in German or English.

Preferable Type: Bachelor/Master Thesis, it may be possible to convert it to a Master Project

Fuzzing is a technique used to detect bugs and vulnerabilities in software. For the program under investigation different inputs are automatically generated and supplied to the program [1]. In directed fuzzing, the fuzzing process is steered towards previously defined targets within the program [2]. Recent work [3, 4] has shown that directed fuzzing can outperform more traditional coverage-guided approaches due to specific target selection.
In the scope of this thesis a directed fuzzer should be implemented, which works on LLVM-IR code. LLVM-IR is an intermediate code representation used in the LLVM compiler project (clang) [5]. The implemented fuzzer receives LLVM-IR as an input and should be able to target specific points of interest. Hence, an instrumentation tool for these points of interests should be developed. The target locations themselves can be manually selected or gained from existing static analysis tools/sanitizers/etc and do not have to be determined in the scope of this thesis.

Prerequisites:

High motivation, interest in fuzzing and state of the art vulnerability research, previous experience with fuzzing or LLVM-IR is beneficial but not needed

[1] https://ieeexplore.ieee.org/abstract/document/8371326

[2] https://dl.acm.org/doi/abs/10.1145/3133956.3134020

[3] https://www.usenix.org/conference/usenixsecurity20/presentation/osterlund

[4] https://ieeexplore.ieee.org/abstract/document/9152682

[5] https://llvm.org/docs/LangRef.html

Preferable Type: Master Projekt

SAST (Static Application Security Testing) Tools [1] werden genutzt, um Sicherheitslücken im Source Code von Programmen bereits während der Entwicklung zu finden. In den letzten Jahren hat sich in diesem Bereich eine Vielzahl an OpenSource und kommerziellen Lösungen etabliert, die sich in ihrem Umfang, ihrer Ausrichtung und ihren Kapazitäten teils stark voneinander unterscheiden. Zur Evaluierung [2,3] dieser Tools werden primär Test Suites mit automatischen generierten Testcases (z.B. Juliet Test Suite [4]) genutzt. Diese künstlich erstellten Testcases können die Anforderungen an moderne SAST Tools jedoch nur unzureichend abbilden, da sich diese Art von Testfällen substantiell von Sicherheitslücken in echten Softwareprodukten unterscheiden. Daher ist es sinnvoll auch Sicherheitslücken in echten Softwareprojekten mit einzubeziehen [5,6]. Im Rahmen dieses Projekts soll eine Test Suite mit Sicherheitslücken aus OpenSource C/C++ Projekten aufgebaut werden, die diesen Prozess vereinfacht. Hierzu soll neben dem ursprünglichen Quellcode, auch eine minimale Version der Sicherheitslücke erstellt werden, die nur die notwendigen Codefragmente enthält, aber gleichzeitig kompilierbar bleibt. Zum Finden geeigneter Sicherheitslücken kann auf umfangreiche CVE-Datenbanken [7,8] zugegriffen werden. Abschließend kann die erstellte Test Suite genutzt werden um verschiedene OpenSource Tools miteinander zu vergleichen.

Prerequisites:
Hohe Motivation, Erfahrung mit Sicherheitslücken/C/C++/Build Systemen ist von Vorteil

[1] https://owasp.org/www-community/Source_Code_Analysis_Tools

[2] https://ieeexplore.ieee.org/abstract/document/8531281

[3] https://www.sciencedirect.com/science/article/pii/S1877050920312023

[4] https://samate.nist.gov/SRD/testsuite.php

[5] https://www.sciencedirect.com/science/article/abs/pii/S0950584915001366

[6] https://ieeexplore.ieee.org/abstract/document/7509496

[7] https://www.cvedetails.com/index.php

[8] https://cve.mitre.org/cve/search_cve_list.html

Publications

2020