Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh
Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh
Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
QUAD:<br />
BB0 (ENTRY) (in: , out: BB2)<br />
BB2 (in: BB0 (ENTRY), out: BB3, BB8)<br />
1 NEWARRAY T3 Int32[], IConst: 2, LInt32;[]<br />
2 MOVE_I R1 int, IConst: 0<br />
3 NULL_CHECK T-1 , R0 String[]<br />
4 BOUNDS_CHECK R0 String[], IConst: 1, T-1 <br />
5 ALOAD_I T4 int, R0 String[], IConst: 1, T-1 <br />
6 NULL_CHECK T-1 , R0 String[]<br />
7 BOUNDS_CHECK R0 String[], IConst: 0, T-1 <br />
8 ALOAD_I T5 int, R0 String[], IConst: 0, T-1 <br />
9 IFCMP_I T4 int, T5 int, LE, BB8<br />
BB3 (in: BB2, out: BB7)<br />
10 MOVE_I R2 int, IConst: 0<br />
11 GOTO BB7<br />
BB7 (in: BB3, BB6, out: BB8, BB4)<br />
:<br />
BB1 (EXIT) (in: BB2, out: )<br />
Abb. 3: Beispiel für eine C#-Datei: Darstellung im Quadcode.<br />
In diesem Zusammenhang wurde von <strong>CC</strong> eine Anforderungs- und Machbarkeitsanalyse<br />
sowie eine Aufwandsabschätzung zur Herstellung eines solchen Compilers durchgeführt.<br />
Dazu wurde die für die Programmiersprache Java schon vorhandene Lösung, der<br />
JVM2QUAD-Compiler, analysiert und parallel verschiedene Open-Source-Projekte und<br />
verschiedene Spezifikationen untersucht, die sich mit dem Handling von CIL-Bytecode<br />
befassen. Dazu gehören unter anderem ILDump, JaCIL, IKVM, MS Rotor, MBEL und Mono.<br />
Der CIL2QUAD-Compiler wurde schließlich auf Basis <strong>des</strong> quelloffenen Bytecodeparsers<br />
MBEL (Microsoft Bytecode Engineering Library, [MBEL 2008]) entworfen und entwickelt –<br />
dies schloss Implementierung und Test ein. Die Entscheidung für MBEL ergab sich u. a.<br />
auch aus der Implementierungssprache Java, die eine einfache Integration in das SecFlow-<br />
Framework gewährleistete. Während der Entwicklung zeigte sich, dass MBEL an einigen<br />
Stellen nicht vollständig implementiert ist. Die Bibliothek wurde entsprechend ergänzt.<br />
Zusätzlich unterzog <strong>CC</strong> die Komponente einem Profiling und optimierte diese – auch im<br />
Hinblick auf die Performance – auf Basis der Ergebnisse weiter. Die Unabhängigkeit <strong>des</strong><br />
CIL2QUAD-Compilers und damit auch <strong>des</strong> SecFlow-Analyse-Backends von einer konkreten<br />
CLR-Implementierung konnte so erreicht werden.<br />
Mit Unterstützung <strong>des</strong> Projektpartner IESE wurde schließlich der CIL2QUAD-Compiler von<br />
<strong>CC</strong> in das SecFlow-Framework integriert. Kritische Codebereiche wurden besprochen und<br />
nötige Anpassungen der Schnittstelle vorgenommen.<br />
Anbindung weiterer Programmiersprachen<br />
Neben der Analyse von Java- und .NET-Programmen erscheint auch die Prüfung von<br />
Quelltexten in der Programmiersprache PHP als lohnenswerte Zielsetzung für SecFlow.<br />
Mit der Anbindung der Programmiersprache PHP wird es nicht nur möglich sein,<br />
Anwendungen, die in dieser heute als hochgradig unsicher geltenden Programmiersprache<br />
erstellt wurden bzw. werden, auf sicherheitskritische Datenflüsse zu analysieren. Es wird<br />
zudem aufgrund <strong>des</strong> hohen Verbreitungsgra<strong>des</strong> in der Entwickler Community und der zahlreichen<br />
Implementierungen zur Anhebung <strong>des</strong> allgemeinen Sicherheitsstandards von Web-<br />
Anwendungen beitragen.<br />
Im Rahmen <strong>des</strong> Projektes wurde von IESE und <strong>CC</strong> die Möglichkeit der Erweiterung <strong>des</strong><br />
SecFlow-Kerns für die Programmiersprache PHP analysiert. Im Rahmen einer Diplomarbeit<br />
bei IESE wurde eine prototypische, wenn auch nicht voll ausgereifte Unterstützung für die<br />
Programmiersprache PHP realisiert [Nicolay 2008]. Dabei konnte nachgewiesen werden,<br />
Datei<br />
SecFlow_<strong>Gesamt</strong>schlussbericht_V10.odt<br />
Version<br />
1.0<br />
Datum<br />
2009-02-02<br />
Bearbeiter/in<br />
Dana Richter<br />
Seite<br />
14 von 27