Evaluating Token-Based Software Plagiarism Detectors Against Obfuscation Attacks

Aus SDQ-Wiki
Ausschreibung (Liste aller Ausschreibungen)
Jplag-logo.png Typ Masterarbeit
Aushang Ausschreibung Evaluating Token based Plagiarism Detection.pdf
Betreuer Wenden Sie sich bei Interesse oder Fragen bitte an:

Timur Sağlam (E-Mail: saglam@kit.edu, Telefon: +49-721/608-47380), Sebastian Hahner (E-Mail: hahner@kit.edu)

Thema

Hintergrund

JPlag ist ein Werkzeug, welches Ähnlichkeiten zwischen Quelltextdateien findet, um Plagiate in einer Menge von Software-Programmen zu finden. JPlag vergleicht dabei nicht nur den Quelltext an sich, sondern ist sich der Syntax der Programmiersprache und damit der Programmstruktur bewusst. Daher ist JPlag robust gegen viele Plagiatsarten und deren Verschleierung. Unterstützt werden derzeit die Programmiersprachen Java, C\#, C, C++, Python und Scheme. JPlag wird international in Universitäten und Schulen eingesetzt. Darüber hinaus kann JPlag verwendet werden, um gestohlenen Quelltexte zu erkennen. Mehr Informationen zu JPlag finden sich im Wiki, welches Teil des Open-Source-Repositorys ist.

Motivation

Um Plagiatsdetektoren resilient gegen Verschleierungsangriffe zu machen, werden verschiedene Abwehrmechanismen untersucht. Es ist jedoch nicht trivial, verschiedene Varianten eines Plagiatsdetektors systematisch zu evaluieren. In der Literatur wird oft wahllos für einen Datensatz eine Schranke gewählt, welche willkürlich bestimmt, wann ein Plagiat während der Evaluation als erkannt gilt. Damit lassen sich zwar leicht Precision, Recall und das F1-Maß ermitteln, jedoch hängt das Ergebnis primär von der Wahl der Schranke ab. Viel geeigneter sind jedoch Metriken, welche den Unterschied zwischen Plagiaten und Non-Plagiaten quantifizieren, ohne eine binäre Klassifikation (Plagiat, kein Plagiat) zu machen. Ein simples Beispiel ist hierbei die Median-Distanz der Plagiate und Non-Plagiate. Dies ermöglicht nicht nur ein Urteil, ob ein Ansatz besser ist als ein anderer, sondern auch darüber, wie viel besser ein Ansatz ist.

Aufgabenstellung

In dieser Abschlussarbeit sollen geeignete Metriken aus anderen Forschungsgebieten (z.B. Clustering, Machine Learning) identifiziert, auf Plagiatserkennung übertragen und verglichen werden. Zudem soll ein Benchmark-Framework entworfen und implementiert werden, welches es erlaubt verschiedene Varianten von JPlag mit verschiedenen Datensätzen und geeigneten Metriken zu evaluieren. Zusätzlich könnten dann vollautomatisch grafische Aufbereitung stattfinden (e.g. Box-Plots).

Kenntnisse

  • Benötigte Kenntnisse: Java, Git.
  • Hilfreiche Kenntnisse: Grundlagen Data Science, Cluster-Analyse, Machine Learning, R, Plotting mit ggplot2.

Wir bieten

  • Beitrag zu einem etablierten Open-Source-Projekt
  • Enger Bezug zum Entwicklungsprozess von JPlag
  • Freiraum für individuelle Lösungsansätze
  • Möglichkeit zur Publikation der Ergebnisse

English Translation

Background

JPlag is a tool that finds similarities between source code files to find plagiarism in a set of software programs. JPlag not only compares the source code itself but is also aware of the syntax of the programming language and thus the program structure. Therefore, JPlag is robust against many types of plagiarism and their obfuscation. The programming languages Java, C\#, C, C++, Python, and Scheme are currently supported. JPlag is used internationally in universities and schools. However, it can also be used to detect stolen source code. More information on JPlag can be found in the wiki, which is part of the open-source repository.

Motivation

Various defense mechanisms are being investigated to make plagiarism detectors resilient to obfuscation attacks. However, it is not trivial to systematically evaluate different variants of a plagiarism detector. In the literature, a threshold is often randomly chosen for a dataset, which arbitrarily determines when plagiarism is considered detected during evaluation. While this makes it easy to determine Precision, Recall, and the F1 measure, the result depends primarily on the choice of threshold. Much more suitable, however, are metrics that quantify the difference between plagiarism and non-plagiarism without making a binary classification (plagiarism, no plagiarism). A simple example here is the median distance between plagiarism and non-plagiarism. This allows not only a judgment on whether one approach is better than another but also on how much better an approach is.

Task

In this thesis, suitable metrics from other research areas (e.g., clustering, machine learning) are to be identified, applied to plagiarism detection, and compared. Furthermore, a benchmark framework shall be designed and implemented, which allows evaluating different variants of JPlag with different datasets and suitable metrics. In addition, fully automated graphical processing (e.g. box plots) could occur.

Skills

  • Required skills: Java, Git.
  • Helpful skills: Basics of Data Science, cluster analysis, machine learning, R, plotting with ggplot2.

We offer

  • Contribution to an established open-source project.
  • Close relation to the JPlag development process
  • Freedom for individual approaches to solutions
  • Possibility of publishing the results