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.

Die Filterkomponente (Filter Component) entwickelt aus den Ergebnisrelationen der<br />

Analysekomponente einen Graphen und extrahiert aus diesem Graphen einen redundanzfreien<br />

Datenflusspfad. Der Pfad wird in XML-Format ausgegeben. In der Präsentationskomponente<br />

(Presentation Component) können diese Pfade visualisiert werden.<br />

Sprachmodule: Compiler nach QUAD<br />

Java-Bytecode JBC nach Quad<br />

Für die Programmiersprache Java war das Sprachmodul, der Compiler vom Java-Bytecode<br />

JBC nach Quad, in Joeq bereits vorhanden (der sogenannte JVM2QUAD-Compiler).<br />

.NET-Bytecode CIL nach Quad<br />

Um auch Programme in anderen Programmiersprachen als Java analysieren zu können,<br />

müssen entsprechende Compiler nach Quad erstellt werden. Ein lohnen<strong>des</strong> Ziel für<br />

Sicherheitsanalysen sind die auf der .NET-Plattform von Microsoft implementierten<br />

Programmiersprachen (u. a. C#, Visual Basic .NET). Für alle diese Sprachen existieren<br />

bereits Compiler von der Quellsprache in den .NET-Bytecode "Common Intermediate<br />

Language" (genannt CIL), eine erweiterte Byteco<strong>des</strong>prache (siehe auch Abbildung 2). CIL-<br />

Bytecode dient als Zwischensprache für viele verschiedene Quellsprachen (neben den oben<br />

genannten .NET-Sprachen auch Java und PHP) und ist Bestandteil der CLR (Common<br />

Language Runtime), einer nach ECMA 335 vorliegenden Spezifikation für eine<br />

Ausführungsumgebung. CLR wurde von Microsoft als Alternative zur Java VM (JVM)<br />

vorangetrieben, es liegen dazu auch Implementierungen als Open Source vor (z. B, Mono,<br />

MS Rotor).<br />

Im Projekt wurde daher beschlossen, die Sicherheitsanalyse basierend auf dem .NET-<br />

Bytecode CIL aufzusetzen, damit konnte SecFlow gleichzeitig für eine Vielzahl von<br />

Sprachen erweitert werden. Aus dieser Tatsache entstand die Notwendigkeit für einen<br />

entsprechenden Compiler von CIL-Bytecode in den Zwischencode Quad, dem sogenannten<br />

CIL2Quad Compiler (vgl. Abbildungen 2 und 3).<br />

C#<br />

using System;<br />

using System.IO;<br />

namespace sample<br />

{<br />

class MainClass<br />

{<br />

public static void Main(string[]<br />

args)<br />

{<br />

int[] iArray = new int[2];<br />

Int32 i32 = new Int32();<br />

iArray[0] = 2;<br />

iArray[1] = i32;<br />

if(!(iArray[1]

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!