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.
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]