26.11.2012 Aufrufe

Jahresbericht informatik 2009 - KIT – Fakultät für Informatik

Jahresbericht informatik 2009 - KIT – Fakultät für Informatik

Jahresbericht informatik 2009 - KIT – Fakultät für Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Die Institute der <strong>Fakultät</strong> und ihre Forschungsvorhaben<br />

Wird ein möglicher illegaler Fluss angezeigt, kann mit den am Lehrstuhl entwickelten<br />

Pfadbedingungen eine Formel generiert werden, die <strong>für</strong> den Informationsfluss notwendig<br />

ist. Ist diese Formel lösbar, berechnet ein sog. Constraint Solver einen Satz möglicher<br />

Eingaben <strong>für</strong> das Programm (einen sog. Zeugen), die den illegalen Fluss auslösen. Stellt<br />

sich aber heraus, dass diese Formel keine Lösung besitzt, ist die gemeldete Verletzung nur<br />

ein falscher Alarm und kann ignoriert werden. Dadurch können wiederum mehr realistische<br />

Programme als sicher zertifiziert werden als durch Slicing alleine.<br />

Kann ein Programm auf mehreren Prozessorkernen gleichzeitig rechnen, was von aktuellen<br />

Multicoreprozessoren ermöglicht wird, gestaltet sich die Programmanalyse deutlich<br />

komplizierter. Am Lehrstuhl wurden deswegen gezielt Analysen entwickelt, die auch die<br />

präzise Informationsflusskontrolle von solch nebenläufigen Programmen erlauben. Neben<br />

der eigentlichen Analyse des Programms kommt es hier auch entscheidend auf präzise<br />

Slicingalgorithmen an.<br />

Quis custodiet ipsos custodes?<br />

(A. Lochbihler, D. Lohner, D. Wasserrab)<br />

Software-Sicherheitsanalysen sind heute unverzichtbar. Aber: Quis custodiet ipsos custodes?<br />

Soll heißen: Wer bewacht die Wächter? Die theoretischen Korrektheitsforderungen an<br />

Sicherheitsanalysen sind seit langem bekannt, aber viele Verfahren werden ohne<br />

Korrektheitsbeweis publiziert, etliche nur mit einem manuellen. Maschinengeprüfte<br />

Korrektheitsbeweise gibt es nur <strong>für</strong> einige einfache Verfahren zur Software-<br />

Sicherheitsprüfung. Um diesen Mangel zu beheben, sollen maschinengeprüfte<br />

Korrektheitsbeweise <strong>für</strong> neue präzise Techniken (teils hier am Lehrstuhl entwickelt) <strong>für</strong><br />

sprachbasierte Softwaresicherheitsprüfungen, im Speziellen <strong>für</strong> die Informationsflusskontrolle<br />

(IFC), erstellt werden. IFC verwendet die Semantik eines Programms, um illegale<br />

Informationsflüsse zu erkennen, z.B. die Herausgabe von geheimer Information an die<br />

Öffentlichkeit. Mittels IFC lassen sich z.B. Trojaner und Keylogger erkennen, die geheime<br />

Daten des Systems ausspionieren und über das Internet an die Öffentlichkeit verschicken.<br />

Zur Formalisierung der entsprechenden Algorithmen und Korrektheitsaussagen wird der<br />

Theorembeweiser Isabelle/HOL verwendet. Für diesen Theorembeweiser existieren bereits<br />

formale Semantiken <strong>für</strong> die Kerne von Java (inklusive Compiler und JVM) und C++. Die<br />

Java Semantik wurde von uns um Arrays und Threads erweitert, sowohl auf Quell- als auch<br />

auf Bytecodeebene; die Korrektheit der Semantiken wurde auch <strong>für</strong> die Erweiterungen<br />

gezeigt. Die Verifikation des erweiterten Compilers erforderte einen neuen Beweisansatz,<br />

der es uns nun ermöglicht, einfach Ergebnisse der Programmanalysen zwischen Quell- und<br />

den erzeugten Bytecodeprogrammen zu übertragen.<br />

Eine grundlegende Programmanalyse, die in der IFC Verwendung findet, ist Slicing.<br />

Nachdem bereits ein sprachunabhängiges Framework <strong>für</strong> dynamisches und statisch intraprozedurales<br />

Slicing plus Korrektheitsbeweis in Isabelle/HOL erstellt wurde, wurde dieses<br />

Framework um den interprozeduralen Slicing-Algorithmus von Horwitz, Reps und Binkley<br />

78

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!