Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh
Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh
Gesamt-Schlussbericht des Verbundprojektes Deutsch - CC Gmbh
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>des</strong> Werkzeugs bis zu seinen Ausgaben. Neben Informationen, die die Arbeit mit dem<br />
SecFlow-Framework vereinfachen, bietet das Handbuch auch einige Beispiele.<br />
Bewertung von Analysegüte und Performanz<br />
Zur Absicherung der Richtigkeit der Analyseergebnisse und zur Verifizierung der<br />
Werkzeugfunktionalität <strong>des</strong> erstellten Prototyps wurde die SecuriBench Micro [SecuriBench<br />
2006] benutzt, eine von der Stanford University veröffentlichte Sammlung von kurzen<br />
Programmbeispielen mit charakteristischen Problemfällen für statische Quellcodeanalysen.<br />
Neben der Unterstützung der laufenden Regressionstests während der Weiterentwicklung<br />
<strong>des</strong> Prototyps gewährleisteten diese Testfälle eine objektive Bewertung der Fähigkeit <strong>des</strong><br />
SecFlow-Frameworks, kritische Datenflüsse zu erkennen und dabei möglichst wenige falschpositive<br />
oder falsch-negative Befunde zu ermitteln.<br />
Für die Programmiersprache Java wurden 128 an die [SecuriBench 2006] angelehnte<br />
Testfälle ausgeführt. 110 Testfälle lieferten das korrekte, vollständige Ergebnis; 12 Testfälle<br />
ergaben einen falsch-positiven Befund und 6 Testfälle einen falsch-negativen Befund. Somit<br />
wurden etwa 86 Prozent der kritischen Datenflüsse richtig identifiziert bei einer Quote von<br />
weniger als 9,4 Prozent falsch-positiven Resultaten.<br />
Eine vergleichbare, ebenfalls auf [SecuriBench 2006] basierende Testsuite wurde von den<br />
Kooperationspartnern SHE und <strong>CC</strong> auch für die Programmiersprache C# konzipiert. Auch<br />
für diese Testfälle wurde eine vergleichbare Testabdeckung und Werkzeuggüte erzielt.<br />
Damit wurde für diese Testfallsammlungen das ursprüngliche Ziel, möglichst viele<br />
Datenflussprobleme zu erkennen und dabei weniger als 50 Prozent falsch-positive Befunde<br />
zu liefern, erreicht. Ob die erzielte Genauigkeit in der Praxis auch bei sehr umfangreichen<br />
Quellprogrammen ähnlich positiv bleibt, muss sich noch erweisen.<br />
Nach derzeitigem Befund bleibt die Performanz <strong>des</strong> Werkzeugs bisher hinter den im Projekt<br />
gesetzten Erwartungen zurück. Zu einem Teil ist dies der Zeitnot geschuldet, die leider ein<br />
umfangreicheres Feintuning einzelner Komponenten bzw. Konzepte verhinderte. Die<br />
Projektpartner sind zuversichtlich, dass die Analyseregeln noch signifikantes<br />
Optimierungspotential bergen, das in Zukunft noch erschlossen werden soll. Allerdings zeigt<br />
die allgemeine Erfahrung auch, dass statische Datenflussanalyse offenbar ein inhärent<br />
schwieriges Problem darstellt. Ein Indiz dafür liefern zum Beispiel auch Erfahrungsberichte<br />
von Anwendern verschiedener freier oder kommerziell vertriebener Analysewerkzeuge: Alle<br />
bekannten Analyseansätze leiden entweder unter geringer Analyseschärfe, einer hohen<br />
Rate falsch-positiver Befunde oder unter beschränkter Analysegeschwindigkeit — meist<br />
unter allen genannten Defiziten in unterschiedlichem Maße. Daher ist auch im günstigsten<br />
Fall nicht zu erwarten, dass ein Analysewerkzeug ein rundum befriedigen<strong>des</strong><br />
Analysevermögen hat. Nach heutigem Kenntnisstand werden Datenflussanalysen immer<br />
erheblichen Beschränkungen unterliegen.<br />
Werkzeugvalidierung<br />
Neben den oben beschriebenen "kleinen" Testfällen war es notwendig, die Funktionalität und<br />
Einsatzfähigkeit <strong>des</strong> Werkzeugs unter praxisnahen Bedingungen zu erproben. Dazu wurden<br />
insbesondere von den Praxispartnern ICT und SHE verschiedene Testfälle definiert, die<br />
Verwundbarkeiten in der Realität darstellen.<br />
ICT mit seinem Know-how bezüglich J2EE-Plattformen und Internet-Anwendungen stellte<br />
dafür Teile seines Content Management System I<strong>CC</strong>ontent zur Verfügung, in dem gezielt<br />
Verwundbarkeiten in verschiedenen Klassen eingebaut wurden. Die eingebauten<br />
Schwachstellen wurden so aufgebaut, dass sie aus verschiedenen Gefahrenbereichen<br />
stammen. So wurden insbesondere Schwachstellen aus den wichtigen Bereichen Command<br />
Injection, Error-Handling und Austausch von Systemparametern in die Testklassen<br />
eingebaut. SHE als Spezialist für Anwendungen in den Programmiersprachen C# und .NET<br />
stellte eine Testanwendung in einer alternativen Sprache (.Net) mit entsprechenden<br />
Eigenschaften zur Verfügung.<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 />
18 von 27