Projektbeschreibung
Ein Forschungsprojekt, welches sich mit der Erkennung von Schwachstellen in C und C++ Code mit Hilfe von Large Language Models befasst.
Das Forschungsprojekt zielt darauf ab, mithilfe von Large Language Models (LLMs) Schwachstellen in C und C++ Code zu erkennen. Obwohl LLMs in anderen Bereichen wie der natürlichen Sprachverarbeitung erfolgreich eingesetzt werden, haben sie bisher noch nicht die gleiche Wirksamkeit bei der Schwachstellenanalyse von Programmcode gezeigt. Dies liegt daran, dass sich die Modelle den Code-Stil der Projekte aneignen, aus denen die Trainingsdaten stammen, was zu einem Generalisierungsproblem führt.
Um dieses Problem anzugehen, konzentriert sich das Projekt auf die Verarbeitung von C und C++ Code, wobei Schwachstellen in einzelnen Funktionen mit maximal 512 Tokens erkannt werden sollen. Der Datensatz des Projekts wurde aus verschiedenen Datensätzen früherer wissenschaftlicher Arbeiten zusammengestellt und zusätzlich mit synthetischen Daten angereichert, die mithilfe von OpenAIs GPT-Modellen generiert wurden. Diese synthetischen Daten erhöhen die Anzahl der mit Schwachstellen behafteten Trainingsdaten und helfen dabei, dass sich die Modelle nicht zu stark an die Code-Stile einzelner Projekte anpassen.
Das Projekt verwendet ausschließlich Modelle, die speziell mit Code vortrainiert wurden, wie GPT, T5 und BERT. Eine detaillierte Vergleichsanalyse soll ermitteln, welche Modelle die beste Performance liefern und welche Ansätze helfen können, das Generalisierungsproblem zu beheben.
Betreuende:
Julian Schanz
Raphael Mayr
Telefon: | +49 821 5586-3512 |
Fax: | +49 821 5586-3499 |
Studierende:
Philipp Gaag
Michael Janzer
Elias Schuler