Internship Project
Computer Sciences

The FuzzingHUB project

Institution
Humboldt-Universität zu Berlin
Subject Area
Software Engineering Group
Availability
Position filled
Project Supervisor(s)
Prof. Lars Grunske
Academic Level
Advanced undergraduate students (from third year) 
Master's students 
Ph.D. students 
Language
English
Further Information
Project Type
Academic Research
Project Content
The secure operation of our software programs and apps is important for our everyday life. Fuzzing, in particular greybox fuzzing, is currently a state-of-the-art technique in security testing. By applying evolutionary algorithms and a lightweight instrumentation of the code, greybox fuzzing is able to generate inputs that trigger bugs and crashes in modern software systems. The instrumentation helps the fuzzer to select inputs for further mutations that exercise new program locations. The random mutation operators allow the fuzzer to generate uncommon and unexpected inputs that make the program crash. A common problem of fuzzing is the large number of generated inputs that represent invalid program inputs due to the random nature of the mutation process. Additionally, fuzzing lacks the ability to reach deeper in the program’s logic, since its limited information about the programs internal structure. This project shall build on existing fuzzing research, and design and implement new fuzzing strategies to handle the described issues. This includes new strategies inspired by grammar-based fuzzing and also hybrid fuzzing techniques that leverage static analysis to guide the fuzzing process.
Tasks for Interns
  • Design & implementation of new fuzzing approaches;
  • Experimental evaluation; 
  • Preparation of paper submission to report the results of the project to the top conferences in software engineering like ICSE, ASE and FSE
Academic Level
Advanced undergraduate students (from third year) 
Master's students 
Ph.D. students 
Requirements
  • Advanced knowledge in software engineering and software testing techniques; 
  • Advanced knowledge in search-based software testing methods and evolutionary algorithms is required;
  • Basic knowledge of fuzzing techniques would be a nice to have; 
  • Excellent programming skills in at least one of the following languages: Java, C++, C#.
Back to Project List

For more information on the Humboldt Internship Program or the project, please contact the program coordinator.