Für C existieren bereits mehrere Analysen (z.B. ApproxFlow, Scalable Approximation of Quantitative Information Flow in Programs) die auf Approximate Model Counting basieren. Dabei wird typischerweise mit Hilfe von einem Tool wie CBMC eine SAT-Formel für ein gegebenes Programm erzeugt und dann evaluiert, wie oft diese erfüllbar ist. Damit kann in gewissen Grenzen eine gute Approximation für den Informationsfluss gefunden werden.
Mit JBMC existiert ein relativ neues Werkzeug, dass es ermöglicht auch für Java SAT-Formeln zugenerieren. Mit kleinen Adaptionen kann ApproxFlow hierauf adaptiert werden. Diese Adaption ist zur Zeit noch einfach und kann nur mit einfachen Programmen, die am Ende eine öffentliche Ausgabe haben, umgehen.
Aufgabe:
Ziel dieser Arbeit ist eine auf Approximate Model Counting (konkret dem Paper zu ApproxFlow) basierte Analyse für Java zu entwickeln, welche zusätzlich- öffentliche und private Ausgaben via System.out.println(),
- öffentliche Eingaben
- kontextabhängige Ausrolltiefen für Schleifen
Voraussetzungen
Grundlagen Formaler Logik (z.B. durch die Vorlesung Formale Systeme) sind hilfreichSchlüsselworte
Statische Analyse, Informationsflusskontrolle Veröffentlichungen
Veröffentlichung |
Model Counting Based Quantitative Information Flow for Unbounded Loops and Recursions |
Betreuer
Ehemalige Mitarbeiter |
---|
M.Sc. Johannes Bechberger |