Preventing Automated Obfuscation Attacks on Software Plagiarism Detectors
Typ | Bachelorarbeit oder Masterarbeit | |
---|---|---|
Aushang | Ausschreibung Preventing Automated Obfuscation Attacks on Software Plagiarism Detectors.pdf | |
Betreuer | Wenden Sie sich bei Interesse oder Fragen bitte an: Robin Maisch (E-Mail: maisch@kit.edu, Telefon: +49-721-608-47376) |
Thema
Motivation
JPlag ist ein Werkzeug, das Ähnlichkeiten zwischen Quelltextdateien findet, um Plagiate in einer Menge von Software-Programmen zu finden. JPlag vergleicht dabei nicht nur den Quelltext an sich, sondern arbeitet auf der Programmstruktur entsprechend der Syntax der jeweiligen Programmiersprache. Dies macht JPlag robust gegen viele Plagiatsarten und deren Verschleierung. Darüber hinaus kann JPlag verwendet werden, um gestohlenen Quelltext zu erkennen. Unterstützt werden derzeit u.A. die Programmiersprachen Java, C#, Kotlin, Rust und Go. JPlag wird international in Universitäten und Schulen eingesetzt. Mehr Informationen zu JPlag finden sich im Wiki, welches Teil des Open-Source-Repositorys ist.
Aufgabenstellung
JPlag analysiert den Quelltext auf der Ebene von Quelltext-Graphen wie dem abstrakten Syntaxbaum (AST). Dabei werden syntaktische und semantische Elemente des Quellcodes in sog. Tokens umgewandelt. Diese Methode ist zwar robust gegen die meisten Arten der Verschleierung, dennoch gibt es verschiedene Möglichkeiten, die Token-Struktur so zu verändern, dass Plagiate schlechter automatisch erkannt werden. Ihre Aufgabe ist es, den JPlag-Ansatz zu erweitern und so noch vielseitiger gegen die Verschleierung von Plagiaten vorzugehen. Dafür halten wir ständig eine Reihe von Ansätzen aus der aktuellen Plagiatsforschung für Abschlussarbeiten bereit. Sprechen Sie uns gerne an!
Kenntnisse
- Benötigte Kenntnisse: Java, Git.
- Hilfreiche Kenntnisse: C/C++, Compilerbau-Grundlagen.
Wir bieten
- Beitrag zu einem etablierten Open-Source-Projekt
- Enger Bezug zum Entwicklungsprozess von JPlag
- Intensive Betreuung durch das Entwicklerteam
- Freiraum für individuelle Lösungsansätze
- Möglichkeit zur Publikation der Ergebnisse
English Translation
Motivation
JPlag is a tool designed to detect similarities between source code files, primarily to identify instances of plagiarism in a collection of software programs. Rather than simply comparing the raw source code, JPlag analyzes the program structure based on the syntax of the respective programming language. This approach makes JPlag robust against many types of plagiarism and obfuscation techniques. Additionally, JPlag can be used to detect stolen source code.
Currently, it supports programming languages such as Java, C#, Kotlin, Rust, and Go, among others. JPlag is widely used in universities and schools around the world.
For more information about JPlag, visit the Wiki, which is part of the open-source repository.
Task
JPlag analyzes source code at the level of source code graphs, such as the Abstract Syntax Tree (AST). In this process, syntactic and semantic elements of the source code are transformed into so-called tokens. This method is robust against most forms of obfuscation; however, there are various ways to modify the token structure to make plagiarism harder to detect automatically.
Your task will be to extend JPlag’s approach, making it even more versatile in tackling plagiarism obfuscation. We continuously maintain a variety of current research approaches on plagiarism detection that are available for thesis projects. Feel free to reach out to us!
Skills
- Required skills: Java, Git.
- Helpful skills: C/C++, compiler construction basics.
We offer
- Contribution to an established open source project.
- Close relation to the JPlag development process
- Intensive supervision from the development team
- Freedom for individual approaches to solutions
- Possibility to publish the results