28.11.2012 Aufrufe

Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh

Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh

Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh

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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!