Michael Schlichtig promovierte erfolgreich zum Thema „Helping Java Developers Reduce Cryptographic API Misuses“ bei Prof. Dr. Eric Bodden. Dazu gratulieren wir herzlich!
Zusammenfassung der Arbeit:
Software ist heute in nahezu allen Bereichen präsent, beispielsweise im Bezahlvorgang an der Kasse oder in der Patientenakte. Auch im Chat mit Freunden kommt Software zum Einsatz. Um die Sicherheit zu gewährleisten, nutzen Entwicklerinnen und Entwickler kryptografische Bibliotheken. Die korrekte Anwendung dieser Bibliotheken erweist sich jedoch als anspruchsvoller als zunächst angenommen. Die Schnittstellen sind komplex, und eine sichere Konfiguration erfordert spezialisiertes Fachwissen. Bereits ein kleiner Fehler kann dazu führen, dass die Verschlüsselung keinen Schutz mehr bietet. Statische Analysewerkzeuge sollen solche Fehler verhindern. Sie analysieren den Quellcode, ohne ihn auszuführen, und melden potenziell unsichere Stellen. Im praktischen Einsatz ist der Nutzen jedoch häufig begrenzt. Die Werkzeuge erzeugen oft Fehlalarme, erläutern ihre Warnungen unzureichend und unterstützen bei der zentralen Frage, wie eine Korrektur vorzunehmen ist, die Entwicklerinnen und Entwickler nicht ausreichend. Vor diesem Hintergrund untersucht die vorliegende Arbeit, welche Anforderungen ein solches Werkzeug erfüllen muss, um im praktischen Einsatz tatsächlich hilfreich zu sein. Eine umfassende Untersuchung bestehender Werkzeuge bildet die Grundlage: 36 UsabilityKriterien, die in sechs Kategorien unterteilt sind. Darauf aufbauend folgen die weiteren Beiträge. FUM definiert, was eine Fehlanwendung ist. CamBench ermöglicht einen Vergleich der Zuverlässigkeit, mit der Werkzeuge solche Fehlanwendungen erkennen. LLM-SASTRepair nutzt große Sprachmodelle, um Reparaturvorschläge zu generieren, und überprüft diese anschließend mittels statischer Analyse. FPPredictor filtert Fehlalarme heraus. Diese Komponenten sind im Prototyp SecAI integriert: acht Usability-Funktionen, die alle sechs Kategorien abdecken. Die zentrale Erkenntnis dieser Arbeit ist, dass Analyse und Bedienoberfläche nicht unabhängig voneinander entwickelt werden können. nicht getrennt voneinander entwickeln. Eine Oberfläche kann nur zeigen, was die Analyse ihr liefert.