Home
Benutzerhandbuch SecFlow Ermittlung
Contents
1. variable flows meaning flows where content is not changed var ableflow DestType DestMember DestContext Dest DestPath SrcType SrcMember SrcContext Src SrcPath A cs_dependency Operation DestType DestMember DestLocation DestContext Dest DestPath SrcType SrcMember _ SrcContext Src Srcrath Itransform Operation DestType DestMember DestLocation base case a variable points to some location if it is defined in a var able gen var ablepointsto Type Member ObjectContext ObjectRegister Object ObjectId variablegen Type Member ObjectContext ObjectRegister Object Objectla induction step A variable points to an object if there is a flow from a variable pointing to this object var ablepointsto Type Member ObjectContext ObjectRegister Object OpJectId z variableflow Type Member ObjectContext ObjectRegister ValueType ValueMember ValueContext ValueRegister var ablepointsto ValueType ValueMember ValueContext ValueRegister Object Objectld Abb Auszug aus der Datei rules datalog 5 5 Pfad Datei out Der Test generiert eine Datei mit dem Suffix out Diese beinhaltet in XML Form die gefundenen verwundbaren Pfade und deren Subelemente Quellen Elemente Senken o EN ir d H 7 A 3 ae LLIIO ep foenre sedan I k sinn ma nn 1 Pa lt expression gt reg getParameter quot name qu ta Far ton m yr
2. Master V3 0 Muster VO 1 Sec FLOW Benutzerhandbuch SecFlow Ermittlung sicherheitskritischer Datenfl sse in Quellcode JK DR Version 1 0 2008 11 27 SecFlow_Benutzerhandbuch_V10 odt rlage VO 1 _S_PH_GE_Copyright 3 0 Master V3 0 Mustervo Diese Dokument wurde im Rahmen des SecFlow Projektes durch CC GmbH erstellt Ohne ausdr ckliche schriftliche Genehmigung von CC GmbH darf kein Teil dieser Unterlagen f r irgendwelche Zwecke vervielf ltigt oder bertragen werden unabh ngig davon auf welche Art und Weise oder mit welchen Mitteln elektronisch oder mechanisch dies geschieht CC GmbH bernimmt f r diese Unterlagen keine Garantie irgendwelcher Art einschlie lich aber nicht beschr nkt auf die Nutzbarkeit f r den geplanten Einsatzzweck CC GmbH ist nicht haftbar f r Fehler die in diesen Unterlagen enthalten sein k nnten und die daraus ggf entstehenden Sch den Die in diesem Dokument enthaltenen Informationen k nnen ohne vorherige Ank ndigung jederzeit ge ndert werden CC GmbH Wiesbaden 2008 Alle Rechte vorbehalten Inhaltsverzeichnis Zweck und Struktur des Dokuments 2202022000000000n00nanunnnnununnunun0n annnnnunnnnnnen 6 Das SECEIOW PFOJEKE ee ee ee ee ee 7 2 1 Problemstellung und Zielrichtung des Droiekts coomonoononocnononcnos T 22 SOROLLA AAA ER 8 Architektur des AnalySesySteMS ooncocnccocccocococococonocanenanonnconnncnnnnnnarennrenarenanenano AEN 10 E
3. by Latina CH ere htmi 1 O8 zip Text Editor gt Here you can manage the libraries that will be available for analysis E i summaries jvm lst system Editor E a Default Editor b TE TestProject Abb ffnen des SecFlow Projekt Editors Bearbeiten einer Konfigurationsdatei Libraries Analysis XMLs Flow Directories amp hi Mit dem SecFlow Project Editor ist es m glich eine Konfigurationsdatei zu editieren Im SecFlow Project Editor existieren 3 im Fall von Java bzw 4 Panels im Fall von NEI D Y Libraries Analysis XMLs Flow Directories Abb Panels des SecFlow Projekt Editors Panel Umgebung Beschreibung 1 Libaries NET Die zu analysierenden Klassen und n tige Systembibliotheken Java Nur die zu analysierenden Klassen 2 Analysis NET Entry Methoden f r die Analyse Java Entry Methoden f r die Analyse 3 XMLs NET XML Dateien mit Debuginformationen Java Panel nicht vorhanden 4 Flow NET Ordner mit ben tigten Flow Dateien Directories Java Ordner mit ben tigten Flow Dateien Datei SecFlow_Benutzerhandbuch_V10 odt Bearbeiter in Seite JK DR 24 von 67 Version Datum 1 0 2008 11 27 4 4 2 SecFlow Project Editor Der SecFlow Project Editor erlaubt es die Analyse genauer zu spezifizieren Libraries Panel Das Libraries Panel zeigt die f r die Analyse n tigen NET Assemblies Unter NET sind im Gegensatz
4. lt http www gnu org licenses gt verwiesen SecFlow Unsecure dataflow detection and analyzation framework Copyright 2008 SecFlow www secflow org This program is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 of the License or at your option any later version This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this program If not see lt http www gnu org licenses gt Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 8 von 67 Das SecFlow Framework beinhaltet und verwendet freie Software zum Teil auch modifizierte Teile anderer Hersteller Diese Software wird entsprechend der und unter den originaren Lizenzbedingungen der Hersteller weitergegeben Im einzelnen betrifft dies folgende Produkte und Lizenzen Produkt Lizenz Joeq LGPL JavaBDD LGPL bddbddb LGPL Eclipse EPL Mbel LGPL Jasper iReport APACHE2 0 pdb2xml Mike Stall Die genannten Produkte sind mit ihren Lizenzbedingungen in der Datei THIRDPARTYLICENSEREADME txt aufgef hrt
5. Project Package Select a wizard Properties securitytests Wizards type filter text CG Class Interface 28 Java Project b gt General b SJava NET Configuration Java Configuration a New File a amp File Create a new file resource Enter or select the parent folder securitytests a o Gi E net secflow applications net secflow control net secflow control2 net secflow flows net 12 net secflow test net Enet secflow woda Bd sec uritytests E TestProject gt b p b net secflow fows gt b p gt Advanced gt gt 7 lt Back ue Emish Cancel Abb Anlegen einer Konfigurationsdatei J C zeg Die angelegte Datei zeigt sich danach im Package oder Navigation Explorer und ist durch das SecFlow Symbol gt gekennzeichnet Die Datei ist mit dem SecFlow Project Editor verkn pft Dieser kann durch Doppelklick auf die Dateibezeichnung oder ber das Kontextmen Men punkt Open With SecFlow Project Editor ge ffnet werden Datei Version Datum Bearbeiter in SecFlow Benutzerhandbuch _V10 odt 1 0 2008 11 27 JK DR Seite 23 von 67 en securitytests 2 settings kin gt code Elb resource sre E classpath p b b p p p E db E project yp Arrays clr secflow E 3 Arrays clr secflow 3 50 E ecbuild xml a e Libraries mp properties Secflow Project Editor
6. Sollte diese Datei nicht auffindbar sein wird an den jeweiligen Herstellers verwiesen Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 9 von 67 3 Architektur des Analysesystems Das SecFlow Werkzeug dient der Analyse von Software auf eingabebasierte Sicherheitsschwachstellen Die Architektur sieht vor dass Software verschiedener Quellsprachen analysiert werden kann Aktuell unterst tzt das Werkzeug die Programmiersprachen Java und C wobei jeweils der Bytecode JBC Java bzw CIL NET Assembly analysiert wird Der Zwischencode muss bei der Generierung vom Compiler mit Debuginformationen angereichert werden Dieser erste Schritt der nicht zum SecFlow Werkzeug geh rt sondern von konventionellen Compilern erledigt wird wird unter der Bezeichnung Preprocessing zusammengefasst Die Sprachkomponente Language Component bersetzt den stackbasierten sprach abh ngigen Bytecode in die registerbasierte sprachunabh ngige Zwischensprache Quad siehe unten Abschnitt 3 2 und Kap 5 6 Der so entstehende Zwischencode dient als Schnittstelle zu nachfolgenden SecFlow Komponenten Er beinhaltet die Datenbasis f r die sp tere Analyse Die Adapterkomponente Adapter Component bersetzt den Zwischencode in relationale Tupel Diese Tupel bilden im Quadcode enthaltene Zusammenh nge ab Datenfluss Summaries sind Modelle externer Funktion die nicht direkt analysiert we
7. bookid GS DE E een A AAA EE ac ae EES 00027 00028 sqlouery sqlQuery bookId SOL Befehl wird zusammengebaut 20454947052 1 2 1 i bookld Y y e ma cc fc e CCRN L 20454948294 1 4 GL 1 i _ new java lang StringBuilder java lang String valueOt GELECT A gt CSA a a Eet AAA a N UUUZs 00020 PrintWritcr out null 00031 try out response getWriter 00032 catch LUException el el printstacklrace return 00033 00034 out println lt html gt lt head gt lt title gt Book List lt title gt lt head gt lt hady gt 00035 00035 Connection conn null Statement stat null ResultSet rs null 00037 00038 tryf 00039 Class forName dbDriver f load driver 000410 conn DrivorManager gotConnection dbURL dbUscr dbPwd 00041 sLal coun crealeSlalemenl 00042 00043 Wier wird in kritische SQL Senke geschrieben 00044 rs slal exreculeQOnery sqlQuery J f Zeile 47 ar ARAUARA ad Mi MS ee ee ee ea ee ei 00042 ebria ler oo rss n i 3 3 1 00045 out print Authar 1 r2s getString 1 00047 out print subject rs yetstring 2 5 00042 ol para rad G8 Tori Pil Sl r r g 33 3 5 00040 out println hr gt 00050 00041 D 00052 catch Exception e f e printotacklrace 00053 000 14 eul prini beri A orador stil mlS 00055 000565 H 000127 D Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 53 vo
8. zugeh rigem Pfad Identifier Quelltextzeilennummer des Auftretens und Ausdruck Der Identifier Source ID setzt sich aus einer 10stelligen Zahl der korrespondierenden Pfad ID und der Stelle des Elementes im Pfad zusammen Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 35 von 67 5 Detaillierte Darstellung der gefundenen Pfadesenken mit Identifier zugeh rigem Pfad Identifier Quelltextzeilennummer des Auftretens und Ausdruck Der Identifier Sink ID setzt sich aus einer 10stelligen Zahl der korrespondierenden Pfad ID und der Stelle des Elementes im Pfad zusammen 6 Detaillierte Darstellung der gefundenen Pfadebereiniger mit Identifier zugeh rigem Pfad Identifier Quelltextzeilennummer des Auftretens und Ausdruck Der Identifier Sanitizer ID setzt sich aus einer 10stelligen Zahl der korrespondierenden Pfad ID und der Stelle des Elementes im Pfad zusammen FF a ENEE ELE E erlabe EST a Gi Sanitizers3 java E securibench micro sanitizers De ee A MA MEER O SS Cer Mee A o 1 tl wo Il ep ll sw Meel L eet EE EE Found Mh mt E FL ade 1002 Humber of Vulnerable Paths 1 D o 1 2 WW 1003 Humber of Sources 1 D 1 10 100 I 1004 Humber of Sinks 1 D 1 10 100 I 1005 Number of Sanitizers 1 D 1 10 100 1010 Maximum Path Length H OK 1015 Average Path Length B OK 1020 Affected Lines of Co
9. 1003 Metric 1004 Metric 1005 Metric 1010 Metric 1015 Metric 1020 Server Tasks Team Usage Data Collector H Walidation E ML Restore Defaults Apply o oe Abb Externe Viewer Pfadangaben Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 20 von 67 4 3 Preprocessing 4 3 1 PDB2XML Die SecFlow Analyse erlaubt die R ckreferenzierung der Ausgabeelemente in den Sourcecode Unter NET existiert das Problem das nur die MS NET Compiler ausreichende Debuginformationen mit Sourcecode Zeilennummern generieren Die Debuginformationen von Compilern wie Mono reichen nicht dazu aus um eine R ckreferenzierung zu garantieren Die Zeileninformationen werden ber eine XML Datei mit den n tigen Daten zur Verf gung gestellt Diese XML Datei wird aus den durch einen MS NET Compiler generierten pdb und Assembly Dateien generiert Dazu wurde das von Mike Stall realisierte Tool pdb2xml http blogs msdn com jmstall erweitert Das Tool ist nur unter MS Windows ausf hrbar und zu analysierende Projekte sind entsprechend vorzubereiten Fehlende oder falsche Bibliotheken und pdb Dateien werden vom Programm erkannt und angezeigt pdb2Xml lt input dll exe gt lt output xml gt lt net path gt lt input dll exe gt Assembly Datei mit Suffix dll oder exe lt output xml gt Name der Ausgabedatei lt net path gt NET Bibliothekspfade getrennt durch
10. Arrays4 dli securitytests src net net securibenchimicro arrays WW Arrays5 dll securitytests src net net securibench micro arrays al Arrays6 dll securitytests src net net securibenchimicro arrays u Arrays dll securitytests src net net securibenchimicro arrays R Libraries Analysis XMLs Flow Directories Abb Anaysis Panel NM S F F S So Sa ANIL e Panel Unter Java sind Debuginformationen wie Sourcefile oder Zeilenzuordnung in der Klassendatei enthalten Unter NET sind diese Informationen nicht im Assembly enthalten Aussagekraftige Debuginformationen finden sich nur in den pdb Dateien die von Microsoft NET Compilern erzeugt werden Diese enthalten hnliche Debuginformationen wie die Java Klassendateien Die pdb Dateien werden mit dem Windows Tool pdb2xml in ein vom Framework lesbares XML Format gebracht Diese XML Dateien k nnen ber das Panel ausgew hlt werden Die Buttons auf der rechten Seite erm glichen es die Liste zu bearbeiten Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch _V10 odt 1 0 2008 11 27 JK DR 26 von 67 Sy Arrays clr secflow 4 E Debug XMLs Here you can manage the XML files D securitytests srcinetMmet securibenchimicrolarrays Arrays1 ml D securitytestsisreinetinetisecuribenchimicrolarrays rraysi10 xml Ed E DIS D securitytestsisreinetinetisecuribenchimicrolarraysl rrays2 xml x securitytestsisreinetinetlisecur
11. DE A A 11 E e ie nl ell ele sica de anne 12 A o lA O TO To 12 ck SUMMA Y KOMpPON ti eier en 13 e E a WE e nn ee un EE 13 3 0 FIISIKOMPODENIE re ee nn 14 3 7 PrasentatiONSKOMPONe MMe nroranennnnnnanenenon 14 Benutzerschnittstelle Eclipse PlUginS oooocconncconnciocnccncnconcnnonnncnannnnannnnnnnon ENN 15 4 Komponenten des PIUJIN Sasetari ar a S 15 A Tl ss EA 16 A2 FOWE ONON Eee ne ee 16 Ao NOMMOUFATIONSCOMON EE 16 4 1 4 PrasentatiONSKOMpONENTe ooccocccoccccccoccconiccncocnconoonnnononanonanonnn eeeeeeaeseees 17 4 2 Systemvoraussetzungen und Installaton anne nenn 17 4 AS E a enable 17 AA Za A E 18 4 3 22PIEBIOCESSING nern Due en 22 AI A DEBIAN ee ee ee er et ne 22 4 4 gt AUSt hren der Analyse de 23 4 4 1 kontgouratonsdateen nenne Geeeeeesees 23 4A 2 2 SECFIOW PIOJECH ele EE 26 AA 9 72 A A 29 O IN N 29 ASNO VIEW ee ee 29 E FON NTON Tea a a 30 4 9 Ds POW e End lte 32 Aa ENT 34 EDER LEE 34 e Ee Leute EE 36 Konfigurations Ausgabe Dateilen ooococccccnnnccnococcnccnnnnoncnonancnnancnnnanenan seeaesansneeneaeeaess 39 51 KOHTIgUrations Datel SseclloW n ne ae e 39 9 2 2 2 OWDI EN NOW re Se ea na at 39 5 2 1 Syntax einer FLOW D lel u 2 u unn a 40 CC GmbH Wiesbaden 2008 Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR iil 5 3 relation datalog Definition von HRelatonen 0000 nennen 44 SecFlow Benutzerhandbuch_V10 o
12. DYNLINK Getfield Lade von einem Objekt Feld GETFIELD I F L D A B getDest C S Z getBase GETFIELD I F L D A B getField C S Z DYNLINK getGuard Putfield Speichere in einem Objekt Feld PUTFIELD I F L D A B getBase C S Z getSrc PUTFIELD I F L D A B getField C S Z DYNLINK getGuard ALoad Lade Wert aus Array ALOAD_ I L F D A B C S getDest getindex getGuard AStore Speichere Wert in Array ASTORE I L F D A B C getValue S getBase getindex getGuard ALength Lange eines Arrays ARRAYLENGTH getDest getSrc BoundsCheck Array Bereichs Pr fung BOUNDS_CHECK getRef getindex getGuard NullCheck Nullpointer Pr fung NULL CHECK getDest getSrc ZeroCheck O Pr fung ZERO_CHECK getDest getSrc StoreCheck ASTORE_CHECK getRef getElement getGuard New Object instanzieren NEW getDest getlype NewArray Array instanzieren NEWARRAY getDest getSize getlype CheckCast Typpr fung CHECK CAST getDest getSrc getl ype InstanceOf Instanzprufung INSTANCEOF getDest getSrc getlT ype Invoke Methodenaufruf INVOKEVIRTUAL_ V I F setParam L D A getDest INVOKESTATIC_ V I F L getMethod D A getParam INVOKEVIRTUAL_ V I F getParamList L D A DYNLINK INVOKESTATIC_ V LF L D A DYNLINK INVOKESPECIAL V I F L D A DYNLINK INVOKEINTERFACE V I F L D A Jsr Aufruf einer Subroutine JSR getDest getlarget Datel SecFlow_Benutzerhandbuch_V10 odt Version 1 0 Datum 2008 11 27 Bearbeiter in JK D
13. auf der Zielseite links data s SeEring Enis Src data enth lt ein Datum aus this src Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 40 von 67 Senken gt an Attribut binden Die Definition einer Senke erfolgt durch eine Verkn pfung eines Attributs mit einem Senkenausdruck Sink JavaString z B chis snk Sink thie Nach dieser Operation ist this snk an die HT TP Senke gebunden Bis auf weiteres definieren wir die m glichen Senken Ausdrucke noch nicht Derzeit verwerdet werden e HTTP Senke ist eine HTTP Adressangabe Redirect Forward e FILESYSTEM Senke ist das Dateisystem SQL Senke ist eine SQL Datenbank e REFLECTION Senke ist eine reflektive Funktion e SYSTEM Senke ist ein Systemaufruf gt verkn pfen Die Verkn pfung einer Senke eines Objekts mit der Senke eines anderen Objekts erfolgt durch den Verkn pfungsoperator zwischen den an die jeweilige Senke gebundenen Attributen dieser Objekte z B this snk sink snk Danach ist die Senke die urspr nglich an sink snk gebunden war nun auch an this snk gebunden gt schreiben In eine Senke k nnen Daten in Form eines Objekts geschrieben werden lt Dabei steht die Senke auf der Zielseite links Das Datum steht als Argument eines funktionalen Ausdrucks auf der Quellseite rechts wobei der Name der Funktion identisch mit dem erwarteten Objekttyp ist thtsisak l
14. damit immer st rker ins Zentrum der Software Entwicklung Ein wichtiger Ansatz dabei ist der Einsatz von Werkzeugen zum automatischen Aufdecken von Sicherheitsschwachstellen im Quelltext der Software denn solche Werkzeuge lassen sich eine problemlose Benutzbarkeit vorausgesetzt einfach in einen Entwicklungsprozess integrieren und auch f r bereits existierende Legacy Software nutzen Eine zentrale Klasse von Angriffen auf Software beruht auf vom Angreifer geschickt gew hlten Eingabedaten die ohne ausreichende Pr fung als Parameter f r sicherheits Kritische Operationen der Software benutzt werden Ein Angreifer tippt zum Beispiel in das Benutzernamen Feld einer Anmeldeseite keinen normalen Namen sondern einen SQL Datenbank Befehl und die dahinter stehende Anwendung leitet diesen Namen ungepr ft an eine Datenbank weiter die den Befehl dann unwissentlich ausf hrt und dadurch Schaden nimmt Solche ungepr ften Datenfl sse von Eingaben zu kritischen Operationen m ssen in der Software gefunden werden um sie dann durch Einf gen geeigneter Pr fungen entsch rfen zu k nnen Von Hand ist dies fehler anf llig und teuer Ziel des SecFlow Projekts ist daher die Entwicklung eines flexiblen und konfigurierbaren Werkzeugs zur Ermittlung ungepr fter sicherheitskritischer Kontroll und Datenfl sse in Quelltext Neben dem Schutz vor Angriffen Security verbessert eine solche Eliminierung ungepr fter Datenfl sse auch die allgemeine Fehler
15. extends BarioTestCasa inplements MicroTastCama 00021 private static final String FIELD MAME name 6022 00023 protected void deet HttpsertlatRequest rag BrtpeervletResponse resp throws Icexosption DOD24 String a Cp getParanstor FIELD NAHE DEOS DDD3p EOI resp sandRodirect WLEncodar encode usar nama UTE 8 OK si Slement 1C E Xpress ion 709 0 d See KEE ____ q_ gt _ _ Jn _ E tr e EEE TARF 7 TE Eat ako EA AE 9 2 ke e el et nn pr iren u E a me a a ELETERE H 00029 00030 public String getDsscription 1 CEDA L return safe redirect 00032 H 06033 00034 public int getVulnarabilityCount 66035 ratura 5 0003 6 H Abb Report Auszug Detail bersicht Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 37 von 67 5 Konfigurations Ausgabe Dateien 5 1 Konfigurations Datei secflow Die Konfigurations Datei erlaubt es Testf lle festzulegen Die Dateien besitzen das Suffix secflow und sind im XML Format abgelegt Es existieren 3 Unterbereiche Im ersten Bereich sind die f r die Analyse ben tigten Bibliotheken angegeben ber den Schalter selected kann die Analyse und die Angabe von Klassen im Bereich classes weiter eingeschr nkt werden Der zweite Bereich nimmt die f r die Zeilenr ckverfolgung n tigen Debugdateien auf Dieser Bereich ist in der aktuellen Version nur f r die NET Analyse in
16. location locations register registers sink registers type types input transtorm O C M Le Object Type LEE at M LI Ehe operation O initiates a Transformation of O to type Type it transform replace LSystem Data Common DbCommand ExecuteNonQuery I 6 LSystem Data Common DbCommand ExecuteNonQuery I 6 transform operation operations type types member members location locations object objects type types input Abb Auszug aus der Datei relation datalog 5 4 rules datalog Definition von Regeln Mit der Regel Datei lassen sich Ergebnistupel zur Analyse selbst definieren Von ihnen ist prim r die Qualit t der Analyse und ihrer Ergebnisse abh ngig Die Analyseregeln werden in Datalog wiedergegeben F r eine Modifikation der Regeln sind daher erweiterte Kenntnisse dieser Programmiersprache unbedingt notwendig F r weitere Informationen zu Datalog wird auf entsprechende Literatur verwiesen 1 2 Nachfolgend ist ein Auszug aus der Regel Datei mit zus tzlichen Inline Kommentaren abgebildet Die vollst ndige inline kommentierte Datei ist im SecFlow Sourcepaket enthalten und entsprechend verf gbar Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 43 von 67 class objects are implicitly generated variablegen UEypes 0 Dest Ob ect 0 N type2register Type Dest A type2Zobject Type Object
17. nken und es besser an die Bed rfnisse von SecFlow anpassen zu k nnen Die Anpassung von Joeq wurde haupts chlich hinsichtlich der F higkeit zur Analyse mehrerer Programmiersprachen durchgef hrt Die Sprachkomponente bersetzt die durch das Preprocessing gewonnene Programmdarstellung in einen Zwischencode in der Sprache Quad Quad enth lt nur primitive weitgehend atomare Operationen und ist somit geeignet verschiedene Quellsprachen abzubilden F r NET und Java existieren zwei unabh ngige Sprachplugins Quad Generatoren die die Transformation von Bytecode bzw NET Assembly in Quadcode durchf hren Die typische Funktionalit t eines Sprachplugins wird nachfolgend am Beispiel des Java Plugins charakterisiert e Die Sprachkomponente parst den Bytecode und entwickelt daraus einen Abstrakten Syntaxbaum AST e Die Sprachkomponente parst den Bytecode der Typen die direkt oder indirekt von den bereits vorhandenen ASTs referenziert werden e Die Sprachkomponente erzeugt Quadcode der die SSA Static Single Assignment Eigenschaft erf llt d h dass jede im Quadcode verwendete Variable nur an genau einer Stelle zugewiesen wurde e Die Sprachkomponente stellt alle erzeugten Informationen nachfolgend als Codegraph bezeichnet uber die API zur Verf gung 3 3 Adapterkomponente Die Adapterkomponente berf hrt die Informationen im Codegraph in ein deduktives Datenbankmodell Die Adapterkomponente schreibt alle Relationen platzsparend a
18. vor allem Joeq 8 und BDDBDDB 7 Joeq ist ein Java Compiler Framework inklusive einer Java Virtual Machine Die virtuelle Maschine betreffenden Teile wurden aus dem Framework entfernt Weitere Anpassungen von Joeg betreffen haupts chlich die F higkeit zur Analyse mehrerer Programmiersprachen Die Analyse des Daten und Kontrollflusses wurde in der logisch relationalen Programmiersprache Datalog implementiert Zur Ausf hrung des Datalog Codes wird die deduktive Datenbank BDDBDDB Binary Desicion Diagrams Based Deductive DataBase benutzt 10 Die Architektur von BDDBDDB wurde erweitert so dass Daten aus beliebigen Quellen gelesen werden k nnen Um eine relativ einfache Bedienbarkeit der Software sowie die Darstellung der Ergebnisse in einer leicht verst ndlichen Art und Weise zu erreichen wurden die SecFlow Komponenten in Eclipse als weit verbreitetes und anerkanntes Entwicklungssystem integriert 2 2 SecFlow Lizenz SecFlow wird als freie Software zur Verf gung gestellt und steht unter der GNU GPL General Public License Version 3 vom 29 Juni 2007 Es darf damit unter den Bedingungen der GNU General Public License wie von der Free Software Foundation ver ffentlicht weitergegeben und modifiziert werden entweder gem Version 3 der Lizenz oder jeder sp teren Version Eine Kopie der GNU License wird mit SecFlow zusammen ausgeliefert Sie befindet sich in der Datei COPYING txt Sollte diese Datei nicht auffindbar sein wird auf
19. 0044 sqlQuery Te EECH 7 Ca Sta ay NE AR Guard Overview ata E SAA Ea PERO e er EE SAS SNS RAE ASA TARDA A AS O E E E Perea eae 1 AAA IS Sanitizer Overview AA AAA GER ege Le 23 Eesen Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 52 von 67 Ea ii a RA A EELER been l Annotated Source Code 1 I Source 1 WC Appi java ER ict net icteam cms utils Line Code 00001 package ict net icteam cms utils 00002 00003 import Jjava io IOException 00004 import Java iv PrintWriter 00005 import Jjava sql Connecrion 000065 import jJava sql DrivorManagor 00007 import Jjava sql ResultSet 00008 import java sql statement UUUUD 00010 import javaz servlet http littpServlet ool import JjJavaxz servlet http HttpServletRequest 0001z import javax servlet http HtteservletResponse 00013 00014 public class Appl extends HttpServlet f 00015 00016 protected woid dolot HttpScrwloetPoguset roquost HttpScrvleotReepones roeponeo 00017 00018 00019 String AbuRL jdbc mysgl localhost 33208 shopbDk 00020 String dbDriver com mysqgl idbc Driver vuoz string dbUser snop 00022 String UsPwel myShop Password 00023 String sqlQguery SELECT author subject text FROM thRook WHERE bookTh 00024 00025 Hier wird aus unsicheren HITTP Quelle gelesen Eed 00025 String bookId request getParameter bookId Zeile 29 4549469141111 1 1 request getParameter
20. Auswahl muss unter Available Software der hinzugef gte Pfad und die Unterknoten markiert werden Die Installation wird mit dem Button Install gestartet Im Anschluss sollte Eclipse neu gestartet werden Hinweis Bei der Installation m ssen die Lizenzbedingungen von SecFlow akzeptiert werden N here Informationen zu den Lizenzbedingungen finden Sie in Kap 2 2 Bei erfolgreicher Installation ist das Eclipse Men um den Punkt SecFlow erweitert Zudem sind das SecFlow Symbol und die Plugin Eigenschaften unter dem Men punkt Unter Help About Eclipse SDK zu finden Feature Plug ins E E Ioj si Plug ins contributed by Feature net sechlouw tools Feature Sig Provider Plug in Mame version FS secflow org SecPlow 0 1 1 net sectlow tools BE secflow org SecFlow Help Plug In 0 1 1 net seclow tools help BE secflow org SecFlow Pathview Plug in 0 1 1 net secflow tools plugins path EG sechlow org SecFlow Summary Plug in 0 1 1 net sectlow tools plugins Flow Legal Info Show Stoning Inka Abb Plugin Eigenschaften Uber den Men punkt Window Preferences Secflow Framework werden die Verzeichnisse f r die Datalog Dateien sowie f r die Dateien mit den Spezifikationen der potentiellen Gefahrenquellen f r Sources und Sinks angegeben siehe Abb Framework Einstellungen Werden keine Verzeichnisse ausgew hlt so werden die Dateien automatisch in einem tempor ren Verzeichnis abge
21. NTLR nach der Summary Spezifikation generierten Parser eingelesen und in ein f r das SecFlow Framework verarbeitbares Objekt Mapping gewandelt werden F r das geplante Eclipse Plugin ergab sich die Forderung dass es die Struktur von Summary Dateien darstellen sowie syntaktische Fehler in diesen erkennen kann Zus tzlich gibt es die M glichkeit f r ein Entwicklungsprojekt die g ltigen die fehlenden und auch die unvollst ndigen Summary Dateien anzuzeigen und deren Erstellung bzw Bearbeitung zu unterst tzen Mit dem Flow Generator ist es m glich unter Angabe der Quelldatei automatisch Templates f r Summary Dateien zu erzeugen Diese beinhalten ein an die Gegebenheiten die jeweiligen Bibliotheksfunktion angepasstes Grundger st zur Darstellung des entsprechenden Datenflussmodells Diese Grundge st kann dann vom Anwender mit den entsprechenden Datenflussinformationen gef llt werden Datenfl sse selbst werden damit nicht generiert 4 1 2 Flow Editor Der Flow Editor beinhaltet drei verschiedene Eclipse Views Die Library View zeigt die in einem Projekt verf gbaren Bibliotheksklassen an ber die Library View ist es m glich den Flow Generator aufzurufen und neue Summary Dateien zu generieren Die Flow View zeigt die f r ein Projekt verf gbaren Summary Dateien Weiterhin bietet sie Funktionen um fehlende und unvollst ndige Summary Dateien bezogen auf Methoden im aktuellen Projekt zu bestimmen Die Flow Outline View zeigt
22. Outline View angzeigt dann ist sie fehlerhaft erstellt Datei SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 32 von 67 Version Datum Bearbeiter in Seite 4 5 4 Result View Die Result View zeigt grundlegende Informationen zu einem Analyselauf Betriebssystem Linux 32 64Bit Windows 32 64Bit Verwendete Hardware CPU Hauptspeicher Analysestatus Speicherverbrauch Dauer Ergebnis Pfadangaben NET Java Version BDD Konfiguration gt gt 9 4 Kalkulierte Analysedauer Optional k nnen Ausgaben der Relationen angezeigt werden 4 5 5 Path View Die Path View enth lt eine detailierte bersicht der Ergebnispfade d h der verwundbaren Pfade Die Inhalte ergeben sich aus den generierten out Dateien in Verbindung mit den entsprechenden Sourcen Ein Click auf ein angezeigtes Pfadelement Stellen die Daten auf dem Weg von der Quelle zur Senke durchlaufen ffnet den Sourceeditor und setzt eine Markierung im entsprechenden Quelltext Somit ist eine Traversierung der angezeigten Pfadelemente im Quelltext m glich Dies erm glicht es dem Entwickler relativ einfach Sanitizer zur Absicherung des Datenflusses an den entsprechenden Elementen in den Sourcecode einzubringen ber die Path View l sst sich die Reportgenerierung ansteuern Die in der Panel bersicht angezeigten Buttons erlauben die Reportausgabe in verschiedenen Formaten siehe Kap 5 path 2008 10 04_22 21 17 0ut 3 path ou
23. R Seite 47 von 67 Operator Kurz Beschreibung Unterklassen Methoden Ret R cksprung von einer internen RET getlarget Subroutine Return Rucksprung von der aktuellen RETURN V I F L D A getSrc Methode THROW_A Monitor MONITORENTER getSrc MONITOREXIT 5 6 2 Operanden in Quad Operand Beschreibung RegisterOperand Abstrakte Speicherstelle IConstOperand Integer Konstante 32 bit FConstOperand Floating Point Konstante 32 bit LConstOperand Long Integer Konstante 64 bit DConstOperand Double precision Floating Point Konstante 64 bit AConstOperand Object Referenz MethodOperand Zielmethode eines Methodenaufrufs ParamListOperand Parameterliste fur einen Methodenaufruf FieldOperand Objekt Feld verbunden mit get put TypeOperand Typenoperande fur Typenprufbefehl ConditionOperand Bedingung in Verbindung mit einem Bedingten Sprungbefehl TargetOperand Ziel eines Sprungbefehls BasicBlockTableOperand Sprungzieltabelle f r die Verwendung in Switch Befehlen Datel SecFlow_Benutzerhandbuch_V10 odt Version Datum Bearbeiter in Seite 1 0 2008 11 27 JK DR 48 von 67 Verwendungsbeispiele 6 1 SQL Injection Art der betroffenen Bibliotheken Beschreibung Klasse Ein Servlet baut eine SQL Query mit Hilfe eines ungepr ften Parameters auf Der Parameter kann einen weiteren zus tzlichen SQL Befehl enthalten d
24. Semikolon Das folgende Bild zeigt das pdb2xml Tool im Kontext des Preprocessings MS Visual Studio 2003 oder h her NET Projekt csproj src MS Compiler Linker NET Assembly Debuginformation dil exe pdb pdb2xml XML mit Debuginformation 4 le Abb pdb2xml im Kontext des Preprocessings Datel Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 21 von 67 4 4 Ausfuhren der Analyse Zur erfolgreichen Durchf hrung einer SecFlow Analyse m folgendes Vorgehen beachtet werden 1 Die Auswahl eines geeigneten Projektes inklusive Sourcen und Debuginformationen 2 Import des Projektes in den Eclipse Workspace 3 Konfiguration einer Analyse mittels SecFlow Konfigurationseditor 4 Generierung und Bearbeitung von fehlenden oder unvollst ndigen Flow Dateien 5 Ausf hren der Analyse 6 Anzeige der verwundbaren Pfade sicherheitskritische Pfade in der Path View und Reports Inden nachfolgenden Kapiteln werden die Schritte 3 6 detailliert dargestellt 4 4 1 Konfigurationsdateien Die SecFlow Analysen wurden urspr nglich mittels JUnit Tests ausgef hrt Um dem Anwender mehr Flexibilit t und eine bessere bersicht zu gestatten wurden Konfigurationsdateien eingef hrt Mit diesen ist es m glich eine Analyse genauer zu spezifizieren Anlegen einer Konfigurationsdatei Die Konfigurationsdatei kann b
25. a lune Palusie ra d key toolt p value always val Operation id 5276605230 gt lt Hile gt securibench micro datastructures Datastructuresi java tile gt lt scope gt Lsecuribench micro datastructures Datastructures8d doGet V lt scope gt ag Element ssion gt name lt expression gt lt variable id 5276606040 gt lt Tile gt securibench micro datastructures Datastructures java lt file gt Sse gt Lsecuribench micro datastructures Datastructures doGet Senke pat paths Abb Beispiel einer Pfad Datei Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 44 von 67 Der strukturelle Aufbau der Datei ist e Das Wurzelelement der Datei ist paths O Das Attribut count gibt die Anzahl der path Tochterelemente an e paths kann 0 bis n path Elemente einschlie en O Das Element id Gibt die Anzahl der path Tochterelemente an e path kann 1 bis n variable Elemente und O bis n operation Elemente beinhalten 9 6 Das variable Element besteht aus der id und weiteren Subelementen O Das Attribut id ist ein eindeutiger Bezeichner der verschiedene Variablen von einander trennt Das Subelement File nennt den Pfad der Quelldatei in dem sich das Element befindet Das Subelement Scope zeigt auf die Stelle innerhalb der Quelldatei an welcher sich das Element befindet Das Subelement Line zeigt auf die Zeile innerhalb der Quelldatei a
26. adcode e vulnerable verd chtige Senken im Quadcode e criticalpath Quellen und Senken die miteinander verbunden sind e visiblecriticalelements Elemente auf einem criticalpath e usedregister2expression bersetzung von Quadregister nach Quellcode Ausdruck e usedlocation2line bersetzung von Quadcodeindex nach Zeilennummer Das Zusammenf gen dieser Fragmente zu Datenflusspfaden bernimmt die Filterkomponente 3 6 Filterkomponente Die Filterkomponente f gt die von der Analysekomponente erzeugten Relationentupel Vulnerable Sources and Sinks zu einem Quadcodepfad zusammen bersetzt den Quadcodepfad in Quellcodenotation Path Resolution und eliminiert triviale oder redundante Pfadsequenzen Path Filtering Der Eliminierungsschritt ist notwendig weil verschiedene Quad Variablen gleiche Quellcode Ausdr cke darstellen k nnen Da der Anwender Quellcode bevorzugt w rde eine Direkt bersetzung zweier solcher Variablen zur Folge haben dass der gleiche Ausdruck mehrfach ausgegeben wird Das Endergebnis der Filterung ist eine Menge duplikatfreier als kritisch eingestufter Pfade Vulnerable Paths abgelegt im XML Format Datei out In dieser Datei sind Informationen zu der Analyse dem Pfad und seinen Elementen abgelegt Die XML Datei ist im Kapitel 5 5 weiter beschrieben 3 7 Pr sentationskomponente Die Pr sentationskomponente sorgt f r eine benutzerfreundliche Aufbereitung der Analysergebnisse aus der von der Filterkomponente ber
27. ariable genutzt wird meist um damit Optimierungen durchzuf hren und ungenutzten Code zu identifizieren Position im Quadcode verwaltete Daten mit Garbage Collection Dereferenzierte Daten werden wieder freigegeben und zur ckgesetzt Micosoft Bytecode Engineering Library API zum Parsen Editieren und Erstellen von Net Dateien Eine Net kompatible Entwicklungs und Laufzeitumgebung die auf der CLI basiert und Net auf Unix artigen Systemen lauff hig macht Pr fung eines Wertes auf null damit wird das Vorhandensein eines Wertes getestet Eine Software Plattform von Microsoft die eine Laufzeitumgebung verschiedene APIs und Dienstprogramme umschlie t Unterst tzt momentan die Sprachen ASP Net Visual Basic C und J Stellen im verwundbaren Pfad die von den Eingabedaten auf ihrem Weg von der Quelle zur Senke durchlaufen werden Quelle und Senke selbst sind auch Pfadelemente Points To Analyse ist eine statische Programmanalyse die potentielle Beziehungen zwischen Pointern und Daten eines Programms berechnet Program Query Language Vorg nger Basic Block im Kontrollflussgraph Einfacher elementarer Datentyp Eine Programmiersprache die als Maschinensprache eines Logik Prozessors bezeichnet wird da sie auf den mathematischen Grundlagen der Pr dikatenlogik beruht Ein Prolog Programm ist eine Sammlung von so genannten Horn Klauseln Diese Form der Analyse beschreibt welche Wertedefinitionen eine bestimmte Wertedefini
28. as cl Library securitytests sro net net securibench microf bas c Bas cl dil gt Classes method name Page_Load returns Y4 gt params lt param type LSystem Object gt lt param tppe L5ystemEventArgs f gt params gt f me tho d method name ctor returns Y gt params gt method af class classes vi secflow config Abb Konfigurationsdatei secflow Der strukturelle Aufbau der Datei ist 4 Das Wurzelelement der Datei ist sec flow config 4 libraries kann 0 bis n library Elemente einschlie en 4 classes kann 0 bis n class Elemente einschlie en class kann O bis n method Elemente einschlie en 4 flow _directories kann 0 bis n flow_directory Elemente einschlie en 5 2 Flow Dateien flow Da jedes Quellprogramm auch Bibliotheken und andere Module nutzt die zum Teil nicht im Quelltext vorliegen oder nicht analysiert werden sollen muss dem Analyse Werkzeug mitgeteilt werden wo die Grenzen des Analyseumfangs liegen Gerade f r die nicht zu analysierenden Teile muss dem Werkzeug bekannt gegeben werden wie die Parameter des externen Modules zu bewerten sind Dazu muss grob Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 38 von 67 skizziert werden was mit den Eingabeparametern in der Methode passiert und wie das Ergebnis zu Stande kommt Die Spezifizierung solcher Datenflusseigenschaften einer Methode werd
29. ava security AlgorthmParametersSpi dei java security AllPermission e java securty AllPermissioncollection aa java security AlPermissionCollection 1 A ry java security AuthProvider Ca java security BasicPermission Ta java security BasicPermissionCollection ry java security Certificate ry java securty CodeSigner de java security CodeSource Abb Librarysicht f r ein JVM Projekt Durch einen Rechtsklick auf einen oder mehrere markierte Eintr ge in der Library View lassen sich zu den ausgew hlten Eintr gen Summary Dateien generieren S ee yee EE java security riscos Tea java security AlgorthmParametersSpi T java security AlPermisston i java security AllPermissionCollection bo java security AlPermissiontolection 1 ei java security AuthProvider bei java security BasicPermission dei java security BasicPermissionCollection ei java security Certificate Ca java security CodeSigner ei java security CodeSource Abb Summary Dateien generieren 4 5 2 Flow View Die Flow View zeigt die f r ein Projekt verf gbaren Summary Dateien an Weiterhin bietet sie Funktionen um fehlende und unvollst ndige Summary Dateien im aktuellen Projekt zu bestimmen DODO e Abb Flow View Symbole Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 29 von 67 Die folgende Tabelle zeigt eine bersicht mit den in der Flow View verf gba
30. bjekt ist valide an einem bestimmten Punkt in der Programmausf hrung falls es entweder aus einer vertrauensw rdigen Quelle stammt konstante Daten sind z B immer valide oder irgendwann vor diesem Punkt im oben be schriebenen Sinne validiert wurde Daten die direkt oder indirekt aus einer nicht vertrauensw rdigen Quelle stammen sind damit invalid und auch das Ergebnis der Verkn pfung eines validen Operanden mit einem invaliden Operanden ist selbst wieder invalid Wertetyp Virtueller Methodenaufruf Sicherheitskritischer Datenfluss siehe Vulnerability Schwachstelle Hier Abfolge von Methoden und Zuweisungen die es erlauben da ungefilterte Daten von externen Quellen an sicherheitsrelevante Senken weitergereicht werden Verpackung Hier Klassendefinition die eine andere Klasse einschlie t um beispielsweise eine andere Schnittstelle f r die Klasse bieten zu k nnen Weit verbreitete Prolog Variante Cross Site Scripting XSS bezeichnet das Ausnutzen einer Computersicherheitsl cke indem Informationen aus einem Kontext in dem sie nicht vertrauensw rdig sind in einen anderen Kontext eingef gt werden in dem sie als vertrauensw rdig eingestuft sind Aus diesem vertrauensw rdigen Kontext kann dann ein Angriff gestartet werden Die Bezeichnung Cross Site leitet sich von der Art ab wie diese Attacke webseiten bergreifend ausgef hrt wird auf einer vom Angreifer kontrollierten Seite steht beispielsweise ein pr par
31. dargelegt Dazu z hlt auch die Beschreibung der Motivation und Zielsetzung des Projektes Kapitel 3 geht auf die Architektur der Software und die wichtigsten angewandten Prinzipien zur Durchf hrung der Analyse ein Es war Vorgabe an die Architektur sieht vor dass der Softwarekern des Werkzeugs sprachunabh ngig funktioniert und durch jeweils sprachabh ngige Plugin Module Software verschiedener Quellsprachen analysiert werden kann Die Analyse wird dabei auf dem jeweiligen Bytecode JBC Java bzw CIL NET ausgef hrt Der sprachabh ngige stackbasierte Bytecode wird in die registerbasierte sprachunabh ngige Zwischensprache Quad bersetzt Diese Darstellung wird in weiteren Schritten in verschiedene Datenbankrelationen zerlegt Aus diesen Relationen wird schlie lich der Datenflusspfad abgeleitet Die SecFlow Komponenten wurden in die Eclipse IDE integriert Die Konfiguration und die Ergebnisdarstellung werden ber ein entsprechendes Eclipse Plugin bereitgestellt Der Aufbau des Plugins sowie die Funktionen seiner einzelnen Komponenten werden im vierten Kapitel dargelegt Wichtige Dateien die die Konfiguration des Werkzeugs und seine Ausgabe betreffen werden in Kapitel 5 kurz beschrieben Der Benutzer erh lt Informationen die die Arbeit mit dem SecFlow Framework vereinfachen und die Erweiterung und Modifizierung der Analyse bei einer Weiterentwicklung des Tools unterst tzen sollen Dazu z hlen u a die kurze Darstellung der Zwischensprac
32. de 3 1 5 10 100 OR BEZ ZT EE EE E Ee EE EE Tt ZE Path Overview EE MRE ERSTE A EEE SE eg ES E BEE Begn _______ g BE E 1 H 00024 00027 NAAA A E A AAA T sees Source Overview ee NI er al Fee Eet rs EEN A SIE E El ALE Si 4477237488 1 1 1 00024 req getParameter name A A ts z EE ENEE Al 6 HE E EA A La O ooo EPA E AP a ee ee ee eee NS 4477238948 1 9 1 00027 java net URLEncoder encode new java lang StringBuffer user append VA ENEE A O AS Fj L ___ Sanitizer Overview ad PO E Ed E ah E E awe SAA IAN e E Ee SH Erro RIE ETE E eet ee 6845052676 1 8 1 DI Ze Test Abb Report Gesamt bersicht Die angezeigten Elemente aus 3 bis 6 sind ber Hyperlinks mit der Detailsektion der betroffenen Quelltextstelle verbunden Im Detailbereich des Reports werden die analysierten Quelltexte abgebildet Entsprechend der gefundenen Pfade Quellen Elemente und Senken werden weitere Anmerkungen hinzugef gt In Rportausgaben in HTML bzw PDF Format sind die Verbindungen zwischen den einzelnen Elementen ber Querverweise dynamisiert Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch Vi odt 1 0 2008 11 27 JK DR 36 von 67 VAULA INPOIT STU LOOCO LODO BAILA ro DOOLA inport securibenchb mioro MicroTastCara DODIS COOLE gra 00017 ecrvlet description safa redirect DDDIR earvlat volo_ocount For DDDIR o si 00020 public clase Sanitizorea
33. den daher SSA basierten Zwischencode Statische Analyse Hier Die statische Analyse ist ein Softwaretest bei dem bestimmte Eigenschaften hier Schwachstellen anhand des vorliegenden Quellcodes erkannt werden k nnen Statischer Methodenaufruf Aufruf einer statischen Methode ohne Kenntnis der Objektinstanz Statische Initialisierer sind Code Bl cke die ausgef hrt werden wenn statische Felder deklariert werden Nachfolge Basic Block im Kontrollflussgraph Datei in der ein oder mehrere Tupel mit Datenflu beschreibungen FLOWSs definiert werden Parser f r Summary Files Tempor res Register Geordnete Zusammenstellung von Objekten deren Elemente eine festgelegte Reihenfolge haben im Gegensatz zur ungeordneten Menge a b c Unverwaltete Daten ohne Garbage Collection referenzierte Daten werden nach der Dereferenzierung nicht wieder automatisch freigegeben Datei SecFlow_Benutzerhandbuch_V10 odt 1 0 Bearbeiter in Seite JK DR 61 von 67 Datum 2008 11 27 Version Validierung Value Type Virtual Call Vulnerable path Vulnerability Wrapper XSB Prolog XSS Zwischencode Die Validierung von Daten stellt sicher dass die zunachst nicht vertrauensw rdigen Daten aus den externen Quellen auf ihre Zul ssigkeit berpr ft werden bevor sie in der Regel indirekt ber eine verkettete Beeinflussung beliebig vieler anderer Datenobjekte in eine Senke einflie en d rfen Ein Dateno
34. die Objektstruktur einer zur Bearbeitung im Eclipse Editor geladenen Summary Datei Sie dient der Darstellung e der Klassenabhangigkeiten e der lokalen typenlosen Variablen e der verwendeten Methoden und deren Parameter sowie e von Quellen und Senken Die Views werden in Kapitel 4 5 n her beschrieben 4 1 3 Konfigurationseditor Der Konfigurationseditor dient zur Konfiguration der Analyse dem Management der zu analysierenden Quellen sowie der Organisation der ben tigten Ressourcen Dazu wird eine entsprechende Konfigurationsdateien erstellt ber den Konfigurationseditor wird die Ausf hrung der Analysen gestartet Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 16 von 67 4 1 4 Prasentationskomponente Dem Anwender werden zwei Werkzeuge zur Darstellung der SecFlow Ergebnisse zur Verf gung gestellt Die Path View bereitet die Ausgaben des SecFlow Werkzeugs auf und stellt sie dem Entwickler in optisch und logisch aufbereiteter Form dar Aus ihr kann der Anwender die ermittelten sicherheitskritischen Pfade und deren Elemente ablesen Die View stellt die Schnittstelle zwischen der SecFlow Ausgabe und dem analysierten Quelltext dar Die angezeigten Pfadelemente sind mit den Quelltextabschnitten verkn pft und erm glichen es in die betroffene Codezeile in der analysierten Source zu navigieren Die angezeigten Informationen beschr nken sich auf die f r die A
35. dings of Programming Languages and Systems Third Asian Symposium APLAS 2005 Tsukuba Japan November 2005 J Whaley Context Sensitive Pointer Analysis using Binary Decision Diagrams Ph D thesis Stanford University March 2007 J Whaley Joeq A Virtual Machine and Compiler Infrastructure In Science of Computer Programming Journal 2005 J Whaley Joeq A Virtual Machine and Compiler Infrastructure In Proceedings of the Workshop on Interpreters Virtual Machines and Emulators San Diego CA June 2003 Pages 58 66 10 J Whaley D Avots M Carbin M S Lam Using Datalog with Binary Decision Diagrams for Program Analysis In Proceedings of Programming Languages and Systems Third Asian Symposium APLAS 2005 Tsukuba Japan November 2005 11 J Whaley M S Lam Cloning Based Context Sensitive Pointer Alias Analysis Using Binary Decision Diagrams In Proceedings of Program Language Design and Implementation PLDI Washington DC June 2004 Joeq bddbddb http suif stanford edu jwhaley pbd2xml http blogs msdn com jmstall Jasper iReport www jasperforge org Quad http cycleserv2 csail mit edu Harpoon quads quads pdf Quad http suif stanford edu courses cs243 j0eq quad_overview html SecFlow www secflow org SecFlow www sourceforge net Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 63 von 67
36. dt 1 0 2008 11 27 JK DR iv 5 4 rules datalog Definition VON Regen 44 A r 2 2 DS A a LE OO II eine 45 5 6 Quad und semnekomponenten ererenranonerennanonenens 46 9 0 e OPeratoren e ars ii Debian 47 Oil O peranden IN OU a i ida ainauaneeeas 49 VEFWENGUNGSDECIS Dll unica A dd a 50 0 12 3 GOES A A EE EE 50 A A A E 56 ROSS Io Oia 61 Literatur und Linksammlung 2220 2000n000n0nnunnnnnnnnnnen nnnnunnnnnnnnnunnnnunnnnnnnn 66 O CC GmbH Wiesbaden 2008 Version Datum Bearbeiter in Seite Revisionsliste Kapitel Inhalt Datum verantwortlich Alle Ersterstellung 27 11 2008 SecFlow CC GmbH Wiesbaden 2008 SecFlow_Benutzerhandbuch_V10 odt Version 1 0 Datum 2008 11 27 Bearbeiter in JK DR Seite 1 Zweck und Struktur des Dokuments SecFlow ist ein Werkzeug zur Ermittlung sicherheitskritischer Datenfl sse in Quellcode Derzeit ist das Tool in einer Beta Version f r die Programmiersprache Java und alle NET Sprachen insbesondere C verf gbar In diesem Dokument werden die grundlegenden Informationen zum Aufbau des Tools und seiner Bedienung widergegeben Das SecFlow Framework entstand im Rahmen eines Forschungsprojektes im F rderprogramm Software Engineering 2006 des BMBF In Kapitel 2 des vorliegenden Benutzerhandbuches werden die Rahmenbedingungen und Hintergr nde zur Entstehung von SecFlow kurz
37. e Be Element En Sink Senke Die einzelnen Spalten der View beinhalten folgende Angaben Spalte Beschreibung Variable ld Element Identifier Project Eclipse Projektbezeichner Package Namensraum der betroffenen Klasse File Name der Sourcecodedatei Line Zeilennummer in der Sourcecodedatei Expression Betroffener Programmausdruck Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 34 von 67 4 6 Reporting Die Reportgenerierung in SecFlow basiert auf der Reportingengine JasperReports und Report www jasperforge org Das Tool iReport bietet eine GUI Oberfl che zur Erstellung und Bearbeitung von JasperReports Das Subreport Konzept von Report gestattet es einzelne Komponenten eines Reports und den Report selbst in anderen Reports wiederzuverwenden Dadurch ist es m glich das Aussehen und die Ausgaben des Reportings ohne gro en Aufwand zu ndern und zu erweitern Die Reportausgabe wird ber die Buttons in der Path View siehe Kap 4 5 5 angesteuert Die Reports zeigen die Analyseergebnisse in aufbereiteter Form und dienen dazu die Analyseergebnisse in kompakter Form darzustellen so dass sie nicht nur f r den Entwickler sondern auch f r andere Adressaten verst ndlich sind Neben der Gesamt bersicht ist es je nach Ausgabeformat auch m glich den Pfad mittels Linkfelder in den ausgegebenen Sourcen zu traversieren Die fa
38. e der Flow View wird die aktuell ausgew hlte Analysekonfiguration angezeigt Der Ausgabe hat folgende Struktur lt Projekt gt lt Konfigurationdatei gt lt Analyseumgebung gt 1135 Flow 3 E e ausgewahlte E Analysekonfiguration Die Analyse wird mit dem Button Run SecFlow Analysis im Eclipse Toolbar gestartet L 4 5 Views Eclipse Views erlauben es Informationen geordnet anzuzeigen und ihnen Operationen zuzuweisen Die Views sollen bei der Konfiguration Vorbereitung Ausf hrung und Ergebnisanzeige unterst tzen 4 5 1 Library View Der Library View zeigt die fur ein Projekt verf gbaren Bibliotheksklassen externe Funktionen an Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 28 von 67 Problems Javadoc Declaration Error Log EI Console 7 Paths fe Library AC A Search gt Flow eet E E System Met DefaultCertPolicy ge system Net DefautPorts dei System Net DeflatevWrapperStream ee system Net DelayedRegex gei System Net DelegatedStream System Net DigestClient Ca System Net DirectProxy e System Net Dns jResolveAsyncResult el System Hei Dms i system Net DnsPermission Ca System Net DnsPermission ttrikute Abb Librarysicht f r ein CLR Projekt Ei Problems 1 Javadoc IS Declaration 67 Error Log E Console 7 Paths wa Library ER Search 2 Flow zo ei java security AlgorithmParameters E ei j
39. e genutzt wird die beim Ablauf eines Programmes beschritten werden k nnen Sie werden unter anderem zur Programmoptimierung eingesetzt Den Wurzelknoten kann man sich als Startpunkt des Computer Programmes den Exit Knoten als seinen Endpunkt vorstellen Wenn von einem Knoten mehrere Kanten wegf hren der Knoten also Quelle mehrerer gerichteter Kanten ist so entspricht das einer Verzweigung Schleifen finden sich als Zyklen in Kontrollflussgraphen wieder Visitor ber den CFG traversiert den CFG hierarchisch und f hrt je nach Instrumentierung verschiedene Aktionen durch CIL Common Intermediate Language Fr her Microsoft Intermediate Language Eine von Menschen lesbare Zwischensprache zu der die Sprachen des Net Frameworks kompiliert werden und aus der der Bytecode abgeleitet wird Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 58 von 67 CLI CLR CLS CTS Code Cache Constraint Context Datalog Datalog Relation Delegate Dominator Node Dominator Frontier ECMA 335 Exception False Positive Flow Guard Intermediate Code Kante CFG Common Language Infrastructure Die Infrastruktur unter den Microsoft Sprachen des Net Frameworks und Mono Beschreibt einen zweistufigen Prozess bei dem eine Ausgangssprache wie C in die Common Intermediate Language kompiliert wird und von dort aus Uber die Laufzeitumgebung in ausfuhrbare Programme
40. e validated data must follow type conventions enable enables encoded parts of the data revokes sanitize split result is the source splitted in parts slice result is a part of the source replace result is the source with replaced parts chain result is a combination of the sources translate result is a syntactical translation into another representation e g ISO UTF8 todata result is a semantic translation from a text into another representation 9 9 totext result is a semantic translation from a representation into text 9 9 Zur Analyse von Programmcode ist es n tig m glichst viele Informationen ber ein Programm in strukturierter Form vorliegen zu haben Im SecFlow Framework werden diese Informationen in einer Deduktiven Datenbank gespeichert Diese hat den Vorteil das auch rekursive Programmteile abgebildet werden k nnen Die logisch relationale Programmiersprache Datalog wird dazu verwendet komplexe Muster aus Programmcode auszulesen Die Analyseregeln wurden in der logisch relationalen Programmiersprache Datalog implementiert Datalog ist die einfachste Logiksprache f r relationale Datenbanken Datalog ist der Sprache PROLOG sehr hnlich ber den Regelinterpreter eine Weiterentwicklung des Werkzeuges BDDBDDB werden die Regeln in einer Deduktiven Datenbank verwaltet Das Datenbankschema wird durch die Files relations datalog und rules datalog dargestellt 5 3 relation datalog Definition von Relatio
41. eitgestellten Ausgabedatei im XML Format Die verwundbaren Pfade vulnerable paths werden bersichtlich dargestellt und im Quelltext der analysierten Software markiert Dar ber hinaus k nnen Reports in verschiedenen Formaten generiert werden Die Pr sentationskomponente ist Bestandteil der SecFlow Benutzerschnittstelle die als Eclipse Plugin realsisiert wurde Die Beschreibung erfolgt im nachfolgenden Kapitel 4 Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 14 von 67 4 Benutzerschnittstelle Eclipse Plugins Das bereitgestellte Eclipse Plugin stellt die Benutzeroberflache f r das SecFlow Framework dar Es bietet Funktionen zur Konfiguration des Analyseprojekts zur Ausf hrung und Ergebnisdarstellung sowie Funktionen zur Bearbeitung von Summary Dateien auch Flow Dateien genannt zur Abbildung externer Funktionen 4 1 Komponenten des Plugins Die SecFlow Komponenten wurden in der Eclipse IDE integriert Die Konfiguration und die Ergebnisdarstellung werden ber ein entsprechendes Eclipse Plugin bereitgestellt Dieses besteht aus einem Flow Generator zur Generierung von Template Summary Dateien einem Flow Editor zur Bearbeitung von Summary Dateien einem Konfigurationseditor zur Festlegung der Eingabeparameter und zur Ausf hrung der Analyse sowie einer Reporting Komponente zur Ergebnisdarstellung Das Eclipse Plugin wird ber eine speziell f r SecFlow entwic
42. emWeb dll securitytestelibinetframework msecaorlib d a securitytestsfibinetframework System dll Libraries Analysis XMLs Flow Directories Abb Libraries Panel Button Beschreibung 1 Bibliothek aus dem Workspace hinzuf gen 2 Externe Bibliothek hinzuf gen 3 Bibliothek entfernen 4 Fehlende Bibliotheken anzeigen Die Funktion dieses Buttons bezieht sich auf die per Checkbox ausgewahlten Assembly Dateien Analysis Panel Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 25 von 67 Das Panel Analysis erm glicht es Entry Methoden auszuw hlen die als Startpunkte f r die Suche nach kritischen Datenfl ssen dienen Die angezeigten Klassen und Methoden sind ber die Auswahl auf dem Libraries Panel festgelegt Er Arrays clr secflow x Y ml Analysis Available Libraries Here you can manage the libraries their sources will be available in Available Sources 7 Tei All Libraries RH 2 Arrays dll securitytests src net net securibench micro arrays 7 we D v El securibench v v H micro v arrays Ki we me Arrays ctor OM v Page_Load LSystem ObjectLSystem EventArgs JW m Arrays10 dll securitytests src net net securibench micro arrays m Arrays 2 dll securitytests src netinet securibenchimicro arrays IT Arrays3 dll securitytests src net net securibench micro arrays m
43. en Datenflussbeschreibung oder Flow Spezifikation genannt Sie wird in den Flow Dateien vorgenommen ACHTUNG Zur erfolgreichen Analyse eines Programms m ssen alle nicht zu analysierenden Methoden in entsprechenden Flow Dateien dargestellt werden 5 2 1 Syntax einer FLOW Datei Grundstruktur Die Grundstruktur einer flow Datei ist wie folgt namedeclarations summary lt Name gt lt attributes gt lt initializer constructors methods gt gt Namensdeklaration lt Name gt lt Java String gt gt Summary summary lt Name gt lt supertypes gt lt attributes gt lt initializer constructors methods gt gt Attribute lt AttributeName gt gt Konstruktoren Konstruktoren werden genauso notiert wie in Java oder C und entsprechen auch deren Semantik lt SummaryName gt lt argumentlist gt lt code java gt gt Methoden Methoden werden genauso notiert wie in Java und entsprechen auch deren Semantik lt Returntype gt lt Methodname gt lt argumentlist gt lt code gt gt Lokale Variablen Lokale Variablen werden implizit bei der ersten Verwendung definiert Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 39 von 67 Zugriffe auf Attribute k nnen nur ber den vollst ndigen Objekt Pfad relativ zur umgebenden Aktion erfolgen result lt source attribute result ist lokale Variable this resu
44. ents one can invoke all of the methods in a delegate s invocation list with that set of arguments Knoten in einem Kontrollflu amp graphen durch den alle Relationen zu einem dominierten Knoten f hren Die Grenzknoten in einem Kontrollflu amp graphen bis zu der sich Dominanzrelationen erstrecken Spezifikation der Common Language Infrastructure CLI Ausnahmezustand meist genutzt im Hinblick auf unvorhergesehene Systemzust nde Fehler innerhalb eines Programms Eine f lschlich gemachte positive Aussage in diesem Kontext ein sicherer Datenflu der als unsicher erkannt wird Beschreibungssprache zur Spezifikation von Datenfl ssen Konstruktion deren Kontrollfluss ausschlie t dass unsichere Daten ber sie hinweg flie en k nnen Zwischencode der aus einer anderen Programmiersprache abgeleitet wird und zur Kompatibilit t mit einem Compiler oder einer Laufzeitumgebung dient Repr sentiert einen Sprung im Kontrollfluss Datei SecFlow_Benutzerhandbuch_V10 odt 1 0 Version Datum Bearbeiter in Seite 2008 11 27 JK DR 59 von 67 Liveness Analysis Location managed Data Mbel Mono Null Check NET Pfadelement Points To Analyse PQL Predecessor Primitive Prolog Reaching Definition Analysis Reflection Reflective Call Register Factory Register Graph Reverse Post Order Rule Runtime Analysis Code Analyse bei der festgestellt wird wie h ufig und wie lang eine V
45. er das Kontextmen im Package oder Navigation Explorer von Eclipse angelegt werden Dazu wird der jeweilige Projektkopf ausgew hlt und das Kontextmen mittels Rechtsklick ge ffnet Im Kontextmen wird der Men punkt New Other SecFlow gew hlt Es ffnet sich der Dialog New mit dem Ordner SecFlow Dieser enth lt die 2 Optionen NET Configuration und Java Configuration Die erstere erzeugt eine leere Datei mit dem Suffix clr secflow f r die Analyse von NET Projekten die letztere erzeugt eine Datei mit dem Suffix jvm secflow f r die Analyse von Java Projekten Nach Auswahl einer der beiden Konfigurationen ffnet sich ein Dialog zur Vergabe des Dateinamens Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 22 von 67 2 securitytests i Java Project gt 2 settings nae Project gt kin Open in New Window b code SI Package Hs E bk Elb SS Class Interface gt resource Delete Ti b sre Move Enum classpath Rename E Annotation db Source Folder gay Import eS project a Folder gy Export ecbuild xml F File mp properties Refresh Untitled Text File 8 Close Project src html 1 08 zip nn eh 2 Close Unrelated Projects my Other Eir N i E summaries jvm Ist Team F Compare With F Restore from Local History b 12 TestProject 2008 10 06_1 path
46. er von der Anwendung unwissentlich ausgef hrt werden und damit ungewollte nachsichziehen kann Ausgangscode des Beispiels Reaktionen public class Appl extends HttpServlet protected void doGet HttpServletRequest request HttpServletResponse response String dbURE dbcrmysql localhost 3306 shopDb String dbDriver com mysql jdbc Driver String dbUser SDOD String dbPwd myShopPassword String sqlQuery SELECT author subject text FROM tbBook WHERE bookID bookId Hier wird aus einer unsicheren HTTP Quelle gelesen String bookId request getParameter sqlQuery sqlQuery bookId SOL Befehl wird zusammengebaut PrintWriter out null try out response getWriter catch IOException el el printStackTrace return out println lt html gt lt head gt lt title gt Book List lt title gt lt head gt lt body gt Connection conn null Statement stat null ResultSet rs null tryt Class forName dbDriver load driver conn DriverManager getConnection dbURL dbUser dbPwd stat conn createStatement rs stat executeQuery sqlQuery Hier wird in eine kritische SOL Senke geschrieben while rs next out print Author rs getString 1 OUL print Subject rs getString 2 Out print Text rs getstring 3 o t println lt br gt catch Exception e e printStackTrace out printlnt l
47. ere Werte ersetzt werden showsplash org eclipse platform launcher XXMaxPermSize 256M framework plugins org eclipse osgi 3 4 2 R34x 120080826 1230 Jar vmargs Dosqgi requiredJavaVers on 1 5 Xms256m Xmx1024m Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 17 von 67 Von SecFlow k nnen optional Reports in verschiedenen Ausgabeformaten pdf html odt xls generiert werden F r die Anzeige in einem bestimmten Format werden ggf zus tzliche Programme ben tigt die nicht im Lieferumfang von SecFlow enthalten sind 4 2 2 Installation Das SecFlow Eclipse Plugin wird als Eclipse Updatesite f r die Installation zur Verf gung gestellt Die nachfolgende Installationsbeschreibung basiert auf Eclipse 3 4 1 und beschreibt u a das Standardvorgehen zur Updatesite Installation Bei der Verwendung anderer Versionen von Eclipse kann es daher zu Abweichungen in einzelnen Installationschritten kommen F r die Installation mu Eclipse gestartet werden ber den Men punkt Help Software Updates wird das Fenster Software Updates and Add ons ge ffnet In der Registerkarte Available Software den Button Add Site best tigen Im nachfolgenden Dialogfenster mu ber Local der Installationspfad File net secflow tools updatesite gesetzt werden Der Installationspfad muss die Ordner plugins und features enthalten Nach der
48. gewandelt wird Common Language Runtime Eine Laufzeitumgebung ahnlich der Java Virtual Machine die in in Common Intermediate Language geschriebenen Code ausfuhrbar macht Common Language Specification Eine Spezifikation die beschreibt welche Eigenschaften eine Sprache haben mu um nach CIL kompiliert werden zu k nnen Common Type System Eine allgemeine Spezifikation wie Typen im Speicher definiert und reprasentiert werden sollen Dient der Interoperabilitat verwandter Sprachen die sich ihr unterwerfen Der Quad Code wird unter Umstanden erst On the Fly erzeugt der Code Cache cached diesen erzeugten Code fur spatere Verwendung Bedingungen und Einschrankungen Haufig im Zusammenhang von Eingabevalidierungen genutzt bei denen Constraints die Grenzen der Werte darstellen Eine inhaltlich zusammenh ngende Sammlung von Daten die einen Zustand in einem Ablauf Ablauf darstellen Datalog ist eine Datenbank Programmiersprache die Prolog syntaktisch und semantisch hnelt Datalog Pr dikat In C kann man Delegate Variablen wie Methodenzeiger verwenden Zus tzlich unterst tzen C Delegates weitere Operationen Auch in Objective C werden Delegates verwendet Sie werden verwendet um vom Delegierer vordefinierte Mitteilungen Notifications an ein Delegate zu senden A reference type such that an instance of it can encapsulate one or more methods in an invocation list Given a delegate instance and an appropriate set of argum
49. hat und keine weiteren Sprungbefehle enth lt Der Basic Block ist meist die Basiseinheit welche bei der Compiler Optimierung zur Anwendung kommt Basic Blocks bilden die Eck oder Knotenpunkte innerhalb des Kontrollflussgraphen Binary Decision Diagram Bin rer Entscheidungsbaum bei dem in einer Abfolge von bin ren hierarchischen Entscheidungen ein Ergebnis gesucht wird BDDs eignen sich gut um die charakteristische Funktion einer Menge darzustellen Binary Decision Diagram Based Deductive Database Eine deduktive Datenbank mit Regelinterpreter Relationen werden nicht als Tupelmengen dargestellt sondern als BDDs Relationale Operatoren werden nicht als Mengenoperationen sondern als logische Operationen durchgef hrt Die Konvertierung eines Typs in einen anderen allgemeineren Typ Beispielsweise das Verpacken von primitiven int Werten in Integer Typen Ein Puffer berlauf wird erreicht wenn die Daten die in einen Puffer geschrieben werden gr er sind als der Puffer Unter Umst nden kommt es dabei zu einem berschreiben der dem Puffer folgenden Speicherinhalte siehe Buffer Overflow siehe Callgraph Die Knoten des Callgraphs sind die Methoden und Aufrufstellen des betrachteten Systems Die Kanten des Callgraphs verbinden Aufrufstellen mit den Aufgerufenen Methoden oder im Falle virtueller Aufrufe Methodenmengen siehe Control Flow Graph Control Flow Graph Kontrollflussgraph der zur Darstellung aller m glichen Pfad
50. he Quad sowie die kurze Beschreibung der Datalog Dateien die die Analyseregeln beinhalten und deren Inhalte f r die G te und Qualit t der Anayseergebnisse ma geblich verantwortlich sind Einige Beispiele zur Anwendung der Analyse mit SecFlow sind in Kapitel 6 zu finden Diese kurzen Beschreibungen von m glichen Anwendungsf llen sollen dabei helfen den Analyseverlauf besser nachvollziehen zu k nnen Kapitel 7 enth lt ein Glossar mit den Erkl rungen der wichtigsten fachspezifischen Begriffe die in diesem Handbuch Verwendung finden oder f r die Verst ndlichkeit der skizzierten Konzepte und L sungen hilfreich sind Zitierte Fachliteratur und interessante Artikel und Webseiten sind im abschlie enden Kapitel 8 aufgelistet Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 6 von 67 2 Das SecFlow Projekt Seit 2003 unterst tzt das Bundesministerium f r Bildung und Forschung BMBF mit der Forschungsoffensive Software Engineering 2006 Forschungsvorhaben zur St rkung der Softwaretechnik in Deutschland Dadurch sollen insbesondere softwareentwickelnde kleine und mittlere Unternehmen KMU zu mehr Anstrengungen in der Forschung und Entwicklung angeregt und besser in die Lage versetzt werden auf Ver nderungen rasch zu reagieren und den erforderlichen Wandel aktiv mitzugestalten Zuwendungen des BMBF sollen Forschungsarbeiten unterst tzen die ohne F rderung nicht d
51. ibenchimicrolarraysi rrays3 xml D securitytests src netinet securibenchimicro arrays Arrays4 xml D securtytests src net net securibenchimicro arrays Arrayso xml D securitytests src netnet securibenchimicro arrays Arrays6 xml D securitytests src netnet securibenchimicro arrays Arrays xml D securitytestsisreinetinetisecuribenchimicrolarraysl rrayss xml x securitytestsisreinetinetlisecuribenchimicrolarraysi rraysd xml Libraries Analysis XMLs Flow Directories Abb XMLs Panel Button Beschreibung 1 Debugdatei aus dem Workspace hinzuf gen 2 Debugdatei entfernen Flow Directories Panel Das Panel Flow Directories erlaubt die Auswahl von Ordnern die Flowdateien enthalten Der Inhalt der ausgew hlten Ordner wird in der Gesamt bersicht der Flow View sichtbar Die Buttons auf der rechten Seite erm glichen es die Liste zu bearbeiten Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 27 von 67 Arrays clr secflow K y Flow Flow Directories Here you can manage the Flow Directories net secflow flows netiresourceinet20 E ONO Libraries Analysis dl e Flow Directories Abb Flow Directories Panel Button Beschreibung 1 Verzeichnis Flow Dateien aus dem Workspace hinzuf gen 2 Externes Verzeichnis f r Flow Dateien hinzuf gen 3 Verzeichnis entfernen 4 4 3 Ausf hrung In der Buttonleist
52. ierter Hyperlink der zur vermeintlich vertrauensw rdigen Website einer meist ahnungslosen dritten Partei f hrt Cross Site Scripting wird manchmal auch CSS abgek rzt hat jedoch nichts mit der Cascading Style Sheet Technologie zu tun die weit h ufiger CSS genannt wird Um Verwechslungen zu vermeiden sollte daher die Abk rzung XSS benutzt werden Siehe Intermediate Code Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 62 von 67 1 2 3 4 5 6 7 8 9 Literatur und Linksammlung S Ceri G Gottlob and L Tanca Logic Programming and Databases Springer Verlag Surveys in Computer Science Berlin Heidelberg New York 1990 C J Date An Introduction to Database Systems 6th ed Addison Wesley 1990 R Elmasri and S B Navathe Fundamentals of Database Systems 2nd ed Benjamin Cummings 1994 M Lam M Martin B Livshits J Whaley Securing Web Applications Using Static and Dynamic Information Flow Tracking In ACM Sigplan 2008 Workshop on Partial Evaluation and Program Manipulation San Francisco CA January 2008 M S Lam J Whaley V B Livshits M Martin D Avots M Carbin C Unkel Context Sensitive Program Analysis as Database Queries In Proceedings of Principles of Database Systems PODS Baltimore Maryland June 2005 B Livshits J Whaley M S Lam Reflection Analysis for Java In Procee
53. in der Klasse Statement u A das Schreiben in eine Senke diese wurde in der java sql Connection flow als SQL Senke definiert summary Statement sinksql sourcesql ResultSet executeQuery String query this sinksgl lt String query result lt ResultSet result tuple lt result sohreiben in die Senke lt string Chis sourcesdq sqlexception msg lt query Report Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 51 von 67 E E RA NS A E ER SER ae NR Analysis Report wm mm wm emm wm et vm em wm mmm mm wm mm vm mm vm mm e mi SS Se E I ga aa oe e ith ict net icteam cms utils A a O a Re A NR a ae ea A NAO 1 aaa SecurityMetrics i Metric y o Mei hn oK iy it wm Eu 11 Metric KE Dee ee Fl Ve Bel Ba Bea Kee l Grade 1 1002 Number of Vulnerable Paths 0 0 1 2 W 1003 Number of Sources 1 0 1 10 100 1004 Number of Sinks 1 0 1 10 100 1005 Number of Guards 0 0 1 10 100 OK 1010 Maximum Path Length 6 OK 1015 Average Path Length 6 OK 1020 Affected Lines of Code 3 1 5 10 100 OK ET N EE EE E DEE EE 1 AA EE Path Overview ee A Bere een IN Br ze 1 6 00026 00044 644 Be m a aa aa a aaa a ama EE aa AENA EEN Source Overview LL ESOO GES Beben een 20454946914 1 1 1 00026 request getParameter bookld A EE ia ee EE EE EE 1 WEE Sink Overview ee GEET dee GE Ee e 20454948432 1 6 1 0
54. kelte Eclipse Update Site bereitgestellt Einen berblick ber die einzelnen Komponenten und ihre Zusammenh nge bietet die nachfolgende Abbildung Eclipse Plugin Konfiguration Konfiguration Editor f Konfigurationsdatei Ausf hrung Summary Dateien Template Summary Datei Analyse Framework Library View Flow View Flow Outline View Flow Generator Flow Editor Pr sentationskomponente Ergebnisdaten Out Path View Sourcesprung Reportausgabe Ausgabe l Reporting Engine Jasper Externe Viewer Metriken Word Excel etc Abb Aufbau des Eclipse Plugins Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch _V10 odt 1 0 2008 11 27 JK DR 15 von 67 4 1 1 Flow Generator Summary Dateien auch Flow Dateien genannt sind eine abstrakte Darstellung von Bibliotheksfunktionen und den dort vorhandenen Datenfl ssen Sie steigern die Analyseperformance indem sie komplexe Datenflusse von Bibliotheksfunktionen komprimiert abbilden und erm glichen es Quellen und Senken innerhalb von Bibliotheksfunktionen Ein und Austrittspunkte eines kritischen Pfades festzulegen Werden Methoden nicht abgebildet oder nicht richtig abgebildet kann dies dazu f hren dass Datenfl sse nicht analysiert werden k nnen Kritische Informationen k nnen somit verloren gehen Summary Dateien Flow Dateien sind Textdateien die von dem Summary Parser einem durch A
55. legt Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 18 von 67 Button Beschreibung 1 Verzeichnis fur die Datalogdateien 2 Auswahl des Projektverzeichnisses net secflow control ressources generated ACHTUNG Bei Auswahl dieses Felde m ssen die Datalog Dateien in dieses Verzeichnis kopiert werden 3 Verzeichnis der Sourcen Datei consideredsources conf A Verzeichnis der Sink Datei consideredsinks conf Preferences type filter text General Ant Communications Help Install Update Java Plug in Development RegEx Tester Run Debug Sechow Framework I Path view GL Reporting Server Tasks Team Usage Data Collector Validation AML Framework ee Regelverzeichnis Werzeichnis C workspaceliese_test_trunkinet secflow control CAworkspacelruntime EclipseApplication net sec low test netlconsideredsinks conf Browse GC Restore Defaults Apply oe Abb Framework Einstellungen Der Pathout Ordner f r die auszugebenden Pfaddateien muss in Eclipse ber den Men punkt Window Preferences Secflow Path View unter Out File Settings Output Path of out Files eingetragen werden Hier sollte resource out als Pfad angegeben werden In der PathView werden dann immer alle Ausgabepfade im Workspace durchscannt und die enthaltenen Dateien angezeigt Datei Version SecFlo
56. ls Binary Decision Diagrams BDDs auf die Festplatte Dazu traversiert der Instruction Translator den Codegraph An jedem Knoten im Codegraph an dem analyserelevante Zusammenh nge beschrieben werden emittiert die Adapterkomponente ein passendes Relationentupel Structural Information Hinweis Der Begriff Relation wird f r die Bezeichnung von Datalog Pr dikaten verwendet Beispiel e Die Adapterkomponente traversiert einen Klassenknoten Folgende Knoten h ngen mit diesem Klassenknoten zusammen o Knoten f r Sichtbarkeit und Zugriffskontrolle public protected private static abstract o Methodenknoten o Instanzvariablenknoten o Obertypknoten e Jeder Zusammenhang wird als Tupel einer passenden Relation emittiert Datel Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 12 von 67 o Attribut Klasse in classattributes o Methode Klasse in methodsofclass o Instanzvariable Klasse in fieldsofclass o Oberklasse Klasse in superclasses In einem zweiten Schritt traversiert der Callgraph Exporter den Codegraph und analysiert dabei die Aufrufbefehle im speziellen die dort gefundenen Beziehungen zwischen Aufrufstelle und Aufrufziel Diese werden zun chst in Form eines Callgraphs angeordnet Dieser Callgraph wird dann hnlich dem Verfahren von Lam Whaley 5 in eine Kontext Relation umgewandelt die sp ter bei der kontextsensitiven Points to Analyse ben tig
57. lt lt source result ist Attribut gt Code Code besteht aus Anweisungen die durch Zeilenwechsel getrennt sind also nicht etwa durch ein Semikolon statement l statement2 Iterator iterator result lt Iterator result element lt this element lt result Quelle gt an Attribut binden Die Definition einer Quelle erfolgt durch eine Verkn pfung eines Attributs mit einem Quellenausdruck Source JavaString Z B thas sre Source HTTP Nach dieser Operation ist die HTTP Quelle an das Attribut this src gebunden Bis auf weiteres definieren wir die m glichen Quellen Ausdr cke noch nicht Derzeit verwendet werden e HTTP Quelle ist ein HT TP Aufruf Web Formular HTTP Zeile e FILESYSTEM Quelle ist das Dateisystem e SQL Quelle ist eine SQL Datenbank gt mit anderer Quelle verkn pfen Die Verkn pfung einer Quelle eines Objekts mit der Quelle eines anderen Objekts erfolgt durch den Verkn pfungsoperator zwischen den an die jeweilige Quelle gebundenen Attributen dieser Objekte z B this ere gt source s 6c Danach ist die Quelle die urspr nglich nur an source src gebunden war nun auch an this src gebunden gt lesen Aus einer Quelle k nnen Daten in Form eines Objekts gelesen werden lt Dabei steht die Quelle auf der Quellseite rechts als Argument eines funktionalen Ausdrucks wobei der Name der Funktion identisch mit dem gelieferten Objekttyp ist Das Datum steht
58. n 67 6 2 XSS Cross Site Scripting Art der betroffenen Bibliotheken Klasse Beschreibung Das Servlet entnimmt den User Namen aus einem ungepr ften http Request Parameter Der Parameter kann schadlichen HTML Code bzw JavaScript Code enthalten Ausgangscode des Beispiels public class App2 extends HttpServlet protected void doGet HttpServletRequest request HttpServletResponse response String userName request getParameter userName Hier wird aus unsicheren HTTP Quelle gelesen PrintWriter out null try out response getWriter ein Writer mit HTML Senke catch IOException e e printStackTrace return out println lt html gt lt head gt lt head gt lt body gt lt hl gt Welcome out println userName Schreiben in HTML Senke out println lt h1 gt lt body gt lt html gt Flowfiles javax servlet http HttpServietRequest flow Im Beispielcodes wird aus unsicheren Quelle gelesen Dies muss durch eine Flow Datei beschrieben werden Die Flow Datei sieht wie folgt aus Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 54 von 67 summary HttpServletRequest ServletRequest http parameter parameterName Initialisierung this http source HTTP HTTP Quelle Definition this parameter lt String this http Parameter liest aus HTTP Q
59. n welcher sich das Element befindet Das Subelement Expression zeigt auf den Ausdruck innerhalb der Quelltextzeile an welcher sich das Element befindet Das Subelement attribute einhaltet den Verweis zur Wissensbasis bez glich des Elements Dieses Subelement gibt es nur bei Quellen Das Subelement threat bezeichnet den Gefahrentyp des Elementes Dieses Subelement gibt es nur bei Quellen und Senken Das zus tzliche Element operation beschreibt die Art des Flusses name sowie die Flussrichtung from to der Daten zwischen Variablen F r die detaillierte Darstellung der verschiedenen Attributwerte von name wird auf die Seiten der Stanford Universitat1 http suif stanford edu jwhaley verwiesen Quad und seine Komponenten Zur internen Programmdarstellung werden Kontrollflussgraphen eingesetzt Sie bestehen aus Basic Bl cken einfacher Befehlsrepr sentationen genannt Quads Quads bestehen aus einem Operator und bis zu vier Operanden F r eine tiefergehende Betrachtung von Quad verweisen wir auf das Dokument http cycleserv2 csail mit edu Harpoon quads quads pdf sowie auf http suif stanford edu courses cs243 joeq quad_overview html Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 45 von 67 5 6 1 Operatoren in Quad Operator Kurz Beschreibung Unterklassen Methoden Move Wert zwischen zwei Pseudo MOVE EIDA getMoveOp Regis
60. nen Die Relations Datei enth lt die grundlegenden strukturellen Informationen der Relationen Tabellendefinitionen d h die Spezifikation der gew nschten Ergebnistupel des Interpreters Ein Relationsname DB Name wird dabei als Pr dikat mit Argumenten Eintr ge der Datenbank dargestellt Nachfolgend ist ein Auszug aus der Relations Datei mit zus tzlichen Inline Kommentaren abgebildet Die vollst ndige inline kommentierte Datei ist im SecFlow Sourcepaket enthalten und entsprechend verf gbar ACHTUNG Die Datei ist nur im Zusammenhang mit Sourcecode nderungen zu erweitern und zu ndern Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 42 von 67 Source EC M Ly Inpueregsister SreRegister Newlyoe iff at Cp Mp 5 Inputregister is filled with a new piece of data of type NewType coming from SrcRegister SOouUree l LJjavax servlerL http httrpservlerRequsst N 28 this parameterName this http Ljava lang String source type types member members location locations register registers src registers type types input sink C M L Register SinkRegister ComsumptionType iff at Cr M Li Register flows to the sink SinkRegister being interpreted as type Comsumptiontype it e Sink Ul javaz1lo PrintNriter oprintin Ejavya lang string V 2 ser Ens peine ts Vite wa Land String Sink type types member members
61. nts System Web Ul DataSourceSelectArguments ES Object Object Object A Felder amp query amp con Gi Methoden o SqlDataSource o set_Connectionstring System String str O set_SelectCommand System String query o set DataSourceMode SystemWWeb UlWebControls SqlbataSourceMode mode O Select System Web Ul DataSourceSelectArguments args Ep Select result next de fraunhofer iese flow ast In 1533333ithis con sourcedb Le Se lectthis con sinkdb lt de fraunhofer iese flow ast Outes 2040a6 this query Abb Expandierte Ansicht der Flow Dateien In der View finden sich folgende Icons CARO Icon Bezeichnung Aktueller Eintrag ist der Bezeichner f r eine Summary Datei Importliste 4 Import A Feld bwz Felderliste Methodenliste Methode Ep Source Quelle En Sink Senke 4 5 3 Flow Outline View Die Flow Outline View zeigt eine strukturierte Ubersicht ber eine Flowdatei Die View soll den Entwickler dabei unterst tzen korrekte Flowdateien zu erstellen Die Auswahl eines Elements ffnet im Sourceeditor die entsprechende Datei und markiert den betroffenen Sourcecode nderungen an der Flow Datei werden direkt in der Outline View bernommen Datei SecFlow_Benutzerhandbuch_V10 odt Version 1 0 Datum 2008 11 27 Bearbeiter in JK DR Seite 31 von 67 a DE Outline 230 E hd Inet secflow flows jvmresou
62. nzeige im Quelltext relevanten Inhalte wie zum Beispiel Element Identifier oder Zeilennummer Dar ber hinaus k nnen auch weitere Statistiken bez glich der Ausgabe des SecFlow Werkzeugs ermittelt werden Diese kann der Anwender ber die Verwendung der Reporting Engine erhalten Aus der Path View heraus ist es m glich Reports in HTML Hypertext Markup Language PDF Portable Document Format ODT OpenDocument Text und XLS Excel Spreadsheet zu erstellen Ein Report fasst den analysierten Quelltext und die Ausgabe des SecFlow Werkzeugs zu einem Dokument zusammen und macht einzelne Referenzen zwischen Quelltext und SecFlow Ausgabe optisch kenntlich Weitere Informationen zur Path View sind in Kapitel 4 5 3 zum Reporting in Kapitel 4 6 zu finden 4 2 Systemvoraussetzungen und Installation 4 2 1 Systemvoraussetzungen F r die Installation und Verwendung von SecFlow wird folgende Systemumgebung empfohlen Betriebssystem Windows XP 32 bit Linux oder h her Java 1 6 muss unterst tzt werden Da das Framework sehr speicherlastig arbeitet wird der Einsatz eines 64 bit OS empfohlen CPU Hauptspeicher 1GB oder mehr Speicherplatz ca 40MB plus Speicherplatz f r Ausgabedateien Software Java SE Development Kit JDK Version 5 oder h her Eclipse 3 4 1 Build id 12008091 1 1700 oder h her Hinweis Die Speicheroptionen von Eclipse sollten in der Datei eclipse ini im Eclipse Homeverzeichnis wie folgt angepasst bzw durch h h
63. paga poa ao perso hats mal Metric Metric i Actual oe Il oll ow tl eil e I Meine mm 1 Description Found I I Grade m Co ren re rn ee a rf oo 1002 Mumber of Vulnerable Paths 1 VW 1003 Mumber of Sources 1 1004 Number of Sinks 1 1005 Number of Sanitizers 0 OK 1010 Maximum Path Length 3 OK 1015 Average Path Length 3 OK 2 OK 1020 Affected Lines of Code 1 5 10 100 EEE TEE AA TETAS zt A E EE EE Path Overview ee Kraemer ESS dra MATA EEE t Lo PAHO eh BEE p A End _ PAR eis LU 1 3 00021 00029 1000 ZA 4 AAA A A AS Source Overview e NA IS eer POS PES IATA ANNA 7 Bee sourcetID j LESHHD _ Line _ Expresson ee EEN 22 220 0005 J 23098034048 1 1 1 000271 request geiParameter userName Ee SCH J GE HEEN PASOS 7 a Se Ee ee SE ee EE Lo PRI _ Line _ Expression A So J 2098634112 1 3 1 00029 userName Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 56 von 67 i ee e re ee DEM ee i e rn ren re fr ee a ee i oM DOcOL package ict ioc 00002 00003 import java io IOException 00004 import jawa io Prin e riter 200005 import jawa sql Connection 00008 import jawa eql DOriverManager 09007 import jawa eqgl Etatement 20004 import java sql Resmult et 00009 00010 import javax servlet http HrtpEervlet 00011 import javax gerviet http Http amp erwletHeq
64. ramm hinein gelangen also jede Art von blichen Eingabeoperationen z B Empfang von Daten aus einer Netzwerkverbindung aber auch alle Zugriffe auf externe Aufruf parameter Umgebungsvariable das Dateisystem etc Quellen k nnen Teil der Programmiersprache sein z B die Aufrufparameter der main Funktion in C der Standardbibliothek der Sprache z B die scanf Funktion in C angeh ren oder verschiedensten Bibliotheken zum Zugriff auf das Betriebssystem auf Middleware oder auf anwendungsspezifische Funktionen entstammen SQL Injektion engl SQL Injection bezeichnet das Ausnutzen einer Sicherheitsl cke in Zusammenhang mit SQL Datenbanken die durch mangelnde Maskierung oder berpr fung von Metazeichen in Benutzereingaben entsteht Der Angreifer versucht dabei ber die Anwendung die den Zugriff auf die Datenbank bereitstellt eigene Datenbankbefehle einzuschleusen Sein Ziel ist es dabei Daten in seinem Sinne zu ver ndern oder Kontrolle ber den Server zu erhalten Static Single Assignment Spezielle Klasse von Zwischencode Sie zeichnet sich dadurch aus dass im Zwischencode jede Variable statisch nur einmal zugewiesen wird Dadurch werden Datenabh ngigkeiten zwischen Befehlen explizit dargestellt was f r viele Optimierungen von Vorteil ist Die Quellprogramme vieler Programmiersprachen lassen sich ohne gr eren Aufwand in eine SSA Darstellung transformieren Viele Moderne Compiler darunter der GNU C Compiler verwen
65. rbliche Darstellung wurde so gew hlt dass es m glich ist die Pfade auf einfache Art und Weise nachzuvollziehen Die Gesamt bersicht im Report ist in Sektionen unterteilt Sektion Beschreibung 1 Neben der berschrift findet man hier die analysierten Quellen und die Angabe aus welchem Quellpaket diese stammen 2 Die Metrik bersicht beinhaltet statische Informationen bez glich der Testergebnisse Anhand vorkonfigurierter Schwellenwerte f r OK I Informationen W Warning E Error undS Severe werden die kumulierten Analyseergebnisse bewertet Die Bewertung ist in der Spalte Metric Grade wiedergegeben Zur Zeit werden folgende Metriken unterst tzt 1002 Number of Vulnerable Paths Anzahl der gefundenen verwundbaren Pfade 1003 Number of Sources Anzahl der verschiedenen Pfadquellen 1004 Number of Sinks Anzahl der verschiedenen Pfadsenken 1005 Number of Sanitizer Anzahl der verschiedenen Pfadprotektoren Operationen die die Verlasslichkeit von Daten herstellen 1010 Maximum Path Length Anzahl der Pfadelemente des langsten Pfades 1015 Average Path Length Durchschnittliche Anzahl der Pfadelemente 1020 Affected Lines of Code Anzahl der betroffenen Quelltextzeilen 3 Detaillierte Darstellung der gefundenen Pfade mit Identifier Lange des Pfads Quelltextzeilennummer des Pfadanfang Quelltextzeilennummer des Pfadendes 4 Detaillierte Darstellung der gefundenen Pfadequellen mit Identifier
66. rce sdk1 6java sql Statement flow SE S SS Deklarationen 4 Statement java sql Statement String java lang String ResultSet java sql ResultSet SOLException java sql SQLException Felder sinksql 4 sourcesq se u Methoden O Statement S execute java lang String query executeUpdate java lang String query executeUpdatel java lang String query int index executeUpdate java lang String query int columns executellpdate java lang String query java long String columns executeQuery java lang String query e close Ep executeQuery fresult tuple java lang String this sourcesql executetthis sinksql java lang String query ku executeUpdatethis sinksql lt java lang String query be executeUpdatethis sinksql lt java Jong Gring query ku executeUpdate his sinksql java lang String query ku executelUlpdatefthis sinksql java lang String query ku executeGueryAhis sinksql lt e java lang String query Abb Outline View Die in der folgenden Tabelle aufgelisteten Icons beschreiben die verschieden Strukturelemente der ausgew hlten Flowdatei Icon Bezeichnung Verzeichnispfad der Flowdatei Deklarationen Deklaration mit Synonym und Langbezeichnung A Feld bwz Felderliste Gei Methodenliste Methode mit Bezeichner und Signatur Ep Source Quelle En Sink Senke HINWEIS Wird eine Summary Datei nicht im Flow
67. rden k nnen Sie m ssen manuell spezifiziert werden Die Summarykomponente Summary Component bersetzt die Datenfluss Summaries und macht sie damit f r das Werkzeug verf gbar Die Analysekomponente Analysis Component f hrt die eigentliche Datenflussanalyse durch und berechnet aus den zuvor generierten Tupeln und den von der Summary komponente bersetzten Datenfluss Summaries eine Rohform der kritischen Pfade Das Ergebnis der Analysekomponente sind verschiedene Datenbankrelationen welche tupelweise ausgelesen werden K nnen Die Filterkomponente Filter Component entwickelt aus den Ergebnisrelationen der Analysekomponente einen Graphen und extrahiert aus diesem Graphen einen redundanzfreien Datenflusspfad Der Pfad wird in XML Format ausgegeben In der Pr sentationskomponente Presentation Component k nnen die Pfade die im XML Format ausgegeben wurden visualisiert werden Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 10 von 67 Java Platform Trana ation to Intenmediate Representa on I Adapter Component I Analysis Component Summary Component Tuples Containing Tuples Containing f Flow Specifications Analysis Rules for Po heto 413 iE Rule Engine Datatow Aiahtk Flow Compiler Flual Aece mb h Unerability Analysis Filter Cohponent amp Sinks Presa ch Com Presentation for Wuin erable Paths Abb Architekt
68. ren Funktionen Sektion Beschreibung 1 Dieser Bereich der Flow View zeigt das aktuell f r die Analyse aktive Projekt und die Analyseumgebung JVM oder CLR Der Bereich ist in die Kategorie Projektname links und Analyseumgebung rechts aufgegliedert lt Projektname gt lt Analyseumgebung gt 2 Dieser Knopf hat zwei Zust nde ER Summary Dateien zusammengefaltet Objekteigenschaften ausgeblendet E Detailansicht der Summary Dateien Objekteigenschaften eingeblendet 3 Summary Dateien anzeigen die Sourcen und Senken enthalten 4 Alle f r ein Projekt n tigen aber fehlenden Summary Dateien und Summary Dateien mit fehlenden Methoden anzeigen 5 Alle f r ein Projekt n tigen Summary Dateien anzeigen Das folgende Bild zeigt die zusammen gefalltete Darstellung der im Projektrahmen vorhandenen Summary Dateien Die einzelnen Bezeichner geben den Projektpfad und den Dateinamen wieder Beispiel net secflow flows resource net20 System Char flow bezeichnet die Summary Datei System Char flow die sich im Unterordner resource net20 des Projektes net secflow flows befindet 7 Problems Javadoc l Declaration Error Log El Console 7 Paths DE Library 47 Search Flow a CR K Sr SS eg Sg eg S Sg S Ss net secflow flows resource net20 System Collections DictionaryEntry flow net secflow flows resource net20 System Collections Hashtable flow AIN net secflow flows reso
69. sicherheit Safety da auch viele Fehler in Folge von ungl cklichen Eingaben mit aufgedeckt werden Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 7 von 67 Das im Projekt entwickelte Framework findet die Datenfl sse in Programm Quelltexten die von nicht vertrauensw rdigen externen Datenquellen Quellen zu Aufrufen sicherheits kritischer programmexterner Operationen Senken f hren ohne dass die Daten auf ihrem Weg von der Quelle durch das Programm zur Senke validiert d h auf Konformit t mit der vom Programm erwarteten Syntax und Semantik gepr ft werden Das Framework setzt auf Methoden der statischen Analyse auf d h die Analyseergebnisse werden allein durch eine Untersuchung des Quell bzw Bytecodes nicht aber durch Ausf hrung der zu untersuchenden Software gewonnen Die Projektpartner haben sich entschieden den Schwerpunkt auf Web Anwendungen zu setzen Als Ziel Programmiersprachen wurden Java sowie C und ASP NET Active Server Pages NET Version realisiert Auch die weiterf hrenden Programmiierplattformen dieser beiden Sprach Welten J2EE Java 2 Enterprise Edition und Microsoft NET die f r Server Anwendungen in der Praxis meist unverzichtbar sind k nnen in gleicher Weise analysiert werden Bei der Realisierung des Werkzeuges wurden Teile verschiedener Open Source Software im Framework adaptiert und integriert Zu nennen sind dabei
70. t variable jd Project Package File Line Expression E Path 1 securitytests lp 3005551958267600 securitytests net securibench micro basic Basic21 aspx cs A4 Lnetsecuribene i 3005551958305608 securitytests net securibench micro basic Basic21 aspx cs 24 name i 3005551958305608 securitytests net securibench micro basic Basic21 aspx cs 30 name Le 3005551958410520 securtytests net securibench micro basic Basic21 aspx cs 20 System String C Path 2 securitytests Ep 3003118137240728 securtytests net securibench micro basic Basic35 aspx cs 35 Lnetisecuribence Y h Path 3 securitytests Ep 3000964331687560 securtytests net securibench micro session Session2 aspx cs 23 Lnet securibenc i 3000964331726072 securitytests net securibench micro session Session aspx cs 23 name i 3000964331726072 securitytests net securibench micro session Session2 aspx cs 29 name i 3004866869252600 securitytests net securibench micro session Sessioni aspx cs 32 Session get_lter i 3004866869253264 securitytests net securibench micra session Sessioni aspx cs 32 System String Abb Path View Ausschnitt Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 33 von 67 Die in der folgenden Tabelle aufgelisteten Icons beschreiben die verschieden Pfadelemente Icon Bezeichnung al Pfad Ep Source Quell
71. t String data data flie t in die Senke Datenfl sse gt Erhaltende Datenfl sse Konservative Datenfl sse sind Datenfl sse bei denen im Ziel des Flusses dasselbe Datum ankommt das in der Quelle bereitgestellt wurde Daten auf einem erhaltenden Fluss werden also nicht ver ndert Erhaltende Datenfl sse haben folgende Syntax target lt lt Source gt Dabei durfen beliebige Ausdrucke fur source und target verwendet werden Wenn das Ziel der R ckgabewert der Funktion ist so muss target ausgelassen werden KS lt source Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 41 von 67 gt Generative Datenfl sse Generative Datenfl sse sind Datenfl sse bei denen das Quelldatum eine Objekterzeugung ist Sie haben folgende Syntax lt target gt lt Type Erzeugung in einer Variablen lt Type Erzeugung als R ckgabewert gt Modifizierende Datenfl sse Modifizierende Datenfl sse sind Datenfl sse bei denen im Ziel des Flusses eine Modifikation der Quellen darstellt Modifizierende Datenfl sse haben folgende Syntax lt target lt lt modiftiername gt lt sre gt y lt Sre gt de Zu einer Variablen lt lt modifiername gt lt src gt lt src gt zum R ckgabewert Derzeit sind folgende Modifier definiert sanitize sanitized data cannot affect sinks of the sanitation type validat
72. t body gt lt html gt Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 49 von 67 Flowfiles javax servlet http HttpServletRequest flow Im Beispielcode wird aus einer unsicheren Http Quelle gelesen Da diese nicht durch SecFlow analysiert werden kann mu sie durch eine Flow Datei beschrieben werden Die Flow Datei sieht wie folgt aus summary HttpServletRequest ServletRequest ATEO parameter parameterName imiticlisisti s f this hetp source HTTP HTTP Quelle Definition this parameter lt String this http Parameter liest aus HTTP Quelle this parameterName lt String this http String getParameter String parametername lt this parameter Datenfluss aus HTTP Quelle java sql Connection flow Diese Summary definiert die kritische Senke summary Connection sinksql sourcesql this sinksql sink SQL Definition SQL Senke ch s so rcesal source SOL Statement createStatement result lt Statement result sinksql this sinksql Die Quelle des hier erzeugten Statements ist eine SOL Quelle result sourcesql this sourcesgl lt result Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 50 von 67 java sql Statement flow Folgende FLOW Datei beschreibt die Datenflusse
73. t wird siehe dazu unter 3 5 Analyse Komponente 3 4 Summarykomponente Eine Forderung an das SecFlow Werkzeug stellt die Sicherstellung der Analysierbarkeit einer Anwendung dar auch dann wenn nicht alle Teile dieser Anwendung im Analyseumfang enthalten sind Insbesondere soll auch darauf verzichtet werden k nnen Bibliotheken von Drittanbietern in den Analyseumfang einzubeziehen Voraussetzung daf r ist dass alle nicht zu analysierenden Teile des Programms durch Datenfluss Spezifikationen Summaries bzw Flow Spezifications beschrieben wurden Die Spezifikation von Summaries erfolgt in der Datenfluss Spezifikationssprache Flow siehe Kap 5 2 Diese Sprache die sich an die Syntax moderner objektorientierter Sprachen anlehnt dr ckt aus welche Datenfl sse von einer speziellen Methode erzeugt werden Sie kann also zur kompakten Charakterisierung der relevanten Datenfluss Eigenschaften des eigentlichen Codes dienen ohne dass der Code selbst in die weiteren Analysen einbezogen werden muss Dateien in der Sprache Flow k nnen mit einem eigens dazu entwickelten Flow Editor bequem erzeugt und ge ndert werden Der Flow Compiler bersetzt manuell zu erstellende Summaries in Tupel wie sie von der Analysekomponente ben tigt werden Flow enth lt keine Funktionsaufrufe und somit entf llt auch die Behandlung des Callgraphs 3 5 Analysekomponente In der Analysekomponente laufen die Tupel aus der Adapterkomponente und der Summary komponente z
74. teressant da die Assemblydateien die ben tigten Debug und Zeileninformationen nicht enthalten Im Gegensatz dazu enthalten die Java Klassendateien bereits die n tigen Informationen Der dritte Bereich enth lt Klassen und Methoden die vom Framework analysiert werden sollen lt aml versinn LO encoding UTF 8 gt lt sect Low config lt libraries gt library selected false gt securitytestsflibf netf ramework System Data dll Library library selected false gt securitytests Tibf netf ramen o rk System Drawing Design dll libra ry gt library selected false securitytests Lib netframework System Drawing dll lt library gt library selected false gt securitytestsflibf netf ramework System Web dll Library Bibliotheken library selected false gt securitytestsflibf netf ramework System XML dll Lib rary gt Egan library selected false securatytests Lib netframework System configuration dll Library library selected false gt securitytestsflibf netf ramework System dil l brary library selected false securitytests lib netframework mscorl b dll Libra ry gt library selected true securitytests sro net netf securibench micro basic Basicl dlle library flibraries gt debug_files Debug debug _ f ile securitytests sre net net securibench mic ro bas c Bas cl amlet debug file gt debug files Dateien lt classes gt lt class name Lnetf securibench mic ro bas c B
75. tern verschieben getDest getSrc Binary Bin re Anweisung mit 2 Quellen ADD I L F D getDest und einem Ziel SUB I L F D getSrc1 MUL_ I L F D getSrc2 DIV_ I L F D REM _ I L F D AND IL OR_ I L XOR_ I L SHL_ I L SHR_ I L USHR_ I L CMP_ L F D Unary Unare Anweisung mit einer NEG I F L D getDest Quelle und einem Ziel INT 2LONG getSrc INT 2FLOAT INT 2DOUBLE LONG 2INT LONG 2FLOAT LONG 2DOUBLE FLOAT 2INT DOUBLE 2LONG DOUBLE 2FLOAT INT 2BYTE INT 2CHAR INT 2SHORT OBJECT 2INT INT 2OBJECT FLOAT 2INTBITS INTBITS 2FLOAT DOUBLE 2FLOAT DOUBLE 2LONGBITS LONGBITS 2DOUBLE Goto Unbedingter Sprung GOTO getTarget IntlfCmp Bedingter Sprung IFCMP_ I A getSrc1 getSrc2 getCond getlarget TableSwitch Table Switch Index TABLESWITCH setTarget getSrc getDefault getLow getlarget getlargetTable LookupSwitch Lookup Switch Key LOOKUPSWITCH setMatch setlarget getSrc getMatch getlarget getValueTable getlargetTable Getstatic Lade von einem statischen Feld GETSTATIC_ 1 F L D A getDest GETSTATIC IF L D Aj_ getField DYNLINK Datel SecFlow_Benutzerhandbuch_V10 odt Version 1 0 Datum Bearbeiter in 2008 11 27 JK DR Seite 46 von 67 Operator Kurz Beschreibung Unterklassen Methoden Putstatic Speichere in einem statischen PUTSTATIC_ I F L D A getSrc Feld PUTSTATIC I F L D A getField
76. tion im Programmablauf unmittelbar erreichen k nnen Aufruf und Instantiierung von Klassen und Methoden ber ihre jeweilige Bezeichnung zur Laufzeit Reflektiver Aufruf einer Klasse und oder einer Methode Factory Objekt das Stackregister verwaltet also anlegt und zur Verf gung stellt Graphen Darstellung der Register Umdrehen der Ordnung nach der die Objekte eingegeben wurde Hier Datalog Regel Laufzeitanalyse Sanitizer Methoden die unabh ngig von ihrer Effektivit t Daten um gef hrliche Eingaben bereinigen Signature Die Signatur ist eine Beschreibung der Schnittstellen von Methoden oder Klassen Datei Version Datum Bearbeiter in Seite SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 60 von 67 Sink Source SQL Injection SSA Static Analysis Static Call Static Initializer Successor Summary File Summary Parser Temporary Register Tupel unmanaged data Eine Senke aus Sicht des betrachteten Programms ist jede Operation bei der Daten aus dem Programm einen sicherheitskritischen Ablauf au erhalb des Programms beeinflussen Typischerweise sind dies Operationen deren Daten als Eingabeparameter bestimmter Systemfunktionen z B von Betriebssystem Kommandozeilenaufrufen Datenbankoperationen oder zu Manipulationen externer Prozesse dienen Hier Eine Quelle aus Sicht des betrachteten Programms ist jede Operation durch die Daten von au erhalb des Programms in das Prog
77. uelle this parameterName lt String this http String getParameter String parametername lt this parameter Datenfluss aus HTTP Quelle javax servlet http HttpServletResponse flow Diese Flow Datei beschreibt die Datenfl sse in der Klasse HttpServletResponse Es wird ein Writer zur ckgeliefert der eine HTML Senke darstellt Im folgenden Flow wird die HTML Senke definiert und der entsprechende Writer damit verkn pft Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 55 von 67 summary HttpServletResponse ServletResponse http html writer aus ServlerResponse flow this http sink HTTP this html sink HTML html ist eine HTML Senke this writer lt PrintWriter this writer print this html der zur ckgegebenen Writer schreibt in die HTML Senke aus ServlerResponse flow PrintWriter getWriter Der oben definierte Writer wird zur ckgeliefert lt this writer Report Im folgenden Report werden die Quelle Source Overview und die Senke Sink Overview sowie die Anzahl der kritischen Pfade Path Overview richtig erkannt und protokoliert Die Quelle befindet sich in der Zeile 21 und die Senke in 29 Es gibt nur einen kritischen Pfad ore EEE nee FE Tma er App java WK icLice A A Ei agen be EHER SE a STN LSS Ad A E a ehe ee T EE EE Esas PAPAS AN a paseo
78. uest 000132 import jawax gervlet htep HetpSerwletHhesponse 00013 import jawax servlet http Hetpgession 00014 00b15 jtt Cross Site Boripting 00016 public class Appl extends Hetp erviet 00017 00014 protected woid doGet HttpbervletRequest request HttphervletResponse response 00019 00020 Z Hier wird aus unsicheren HTTP Quelle gelesen 00021 String userName request getParameter i userHame em sem Y 00022 00023 PrintWriter out mull 00024 000235 try out response getWriter PEP catch IOException e e print tackTrace return 09027 000230 cut printin html chead head cbodys chl Weloome J 00029 out printlnl userName E userName K 00030 out printin lt hls lt bodys lt htmls 000371 00032 00033 Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 57 von 67 7 Glossar Assembly Basic Block BDD BDDBDDB Boxing Buffer Overflow Buffer Overrun CAG Callgraph CFG Control Flow Graph CFG Navigator bersetzte Programmklassen werden als ausf hrbare Programme in sogenannten Assemblies zusammengefasst und bereitgestellt vergleichbar mit Jar Dateien in Java Diese haben typischerweise die altbekannten Endungen exe oder dll sind intern jedoch v llig anders strukturiert Code welcher nur einen Einsprung und einen Ausgangspunkt
79. ur des Analysesystems Post Prooessing Presentation 3 1 Preprocessing Der sprachabhangigen Analyse vorgeschaltet sind die Preprocessing Schritte Um die Unscharfe bei der Quellcodeubersetzung mit Parser zu vermeiden wurde im Fall von Java und NET entschieden Bytecode aus kompilierten Quellen als Grundlage zu verwenden Beide Sprachen sind so konzipiert dass sie den Quellcode zunachst in einen generischen universellen Bytecode bersetzen Die Spezifikation des Bytecodes ist weitestgehend starr und robust gegen nderungen in der Quellsprache Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 11 von 67 Eingelesen werden im Fall von Java die class Dateien im Fall von NET die d und exe Dateien Diese Dateien werden zuvor mit einem konventionellen Java bzw NET Compiler aus dem Quellcode generiert In beiden F llen muss zus tzlich Debuginformation bereit gestellt werden damit sp ter die Zeilenr ckverfolgung gew hrleistet ist Java stellt diese Debuginformation direkt im Bytecode dar Bei NET sind sie in der Program Database pdb als separate Datei verf gabr 3 2 Sprachkomponente Der Kern der Sprachkomponente entstand aus dem Joeq Compiler Framework 8 In Joeq ist eine Java Virtual Maschine integriert Die JVM bzw die sie betreffenden Teile wurden aus dem Framework herausgel st um es auf die fur SecFlow notwendige Funktionalit t zu beschr
80. urcenet20 System Char flow a net secflow flows resource net20 System Collections ArrayList flaw net sectlow flowsfresourcemet20 System Collections Generic Collection flaw net secflow flowsfresourcemet20 System Collections Generic Enumerable flow net sectlow flowsfesourcemet20 System Collections Generic LinkedList flaw net secflow flows tesourcemet20 System Collections Generic LinkedListNode flow net secflow flows resource net20 System Collections Generic List flaw net secflow flows resource net20 System Collections Collection flow lo Abb Gefaltete Ansicht der Flow Dateien Durch einen Rechtsklick auf einen oder mehrere markierte Eintr ge in der Flow View lassen sich zu den ausgew hlten Eintr gen Summary Dateien generieren Expandierte Ansicht der Flow Dateien mit Objekteigenschaften Datei SecFlow_Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 30 von 67 Version Datum Bearbeiter in Seite 12 Problems En Javadoc al Declaration Error Log EI Console K Paths w Library lt Search ES Flow x gt iv net secflow flows resource net20 System Web Ul WebCortrols SqlDataSource flow a 5 Deklarationen 4 String System String ar SqlDataSource System Web UlMWebCortrols SqlDataSource itt SqlConne ction System Data SqlClient SqlConnection itt SqlDataSourceMode System Web Ul WebControls SqlDataSourceMode ES IEnumerable System Collections Enumerable i DataSource SelectArqume
81. urchgef hrt werden k nnten vgl www softwarefoerderung de 2003 erfolgte die erste Auswahlrunde zur Forschungsoffensive Das SecFlow Projekt Security Flow wurde im Rahmen der zweiten Auswahlrunde zur Forschungsoffensive 2006 in den Kreis der f rderw rdigen Vorhaben aufgenommen Innerhalb der Forschungsoffensive Software Engineering 2006 des BMBF ist SecFlow dem Themenbereich II Korrektheit Sicherheit und Zuverl ssigkeit von Software Systemen inkl Safety zugeordnet SecFlow ist ein Verbundprojekt an dem insgesamt vier Verbundpartner beteiligt sind e Fraunhofer Institut f r Experimentelles Software Engineering IESE Kaiserslautern e ICT Solutions AG ICT Trier e SHE Informationstechnologie AG SHE Ludwigshafen e CC GmbH CC Wiesbaden Das Projekt wurde im November 2008 beendet Ergebnis des Forschungsprojektes ist ein Prototyp des SecFlow Werkzeuges inklusive sprachspezifischer Plugin Module f r Java und C ASP NET zur Sicherheitsanalyse von Programm Quelltexten in diesen Programmier sprachen Er wird als Open Source Software zur Verf gung gestellt 2 1 Problemstellung und Zielrichtung des Projekts Je st rker softwarebasierte Systeme in einer vernetzten Welt miteinander gekoppelt werden desto mehr Angriffspunkte f r b swillige Manipulationen entstehen auch und desto weitreichender werden die m glichen Folgen eines solchen Angriffs f r das Gesamtsystem Die Sicherheit von Software gegen Angriffe r ckt
82. usammen Die Analyseregeln wurden in der logisch relationalen Programmiersprache Datalog implementiert Der Kern dieser Komponente ist ein Regelinterpreter Rule Engine der eine Deduktive Datenbank verwaltet Es handelt sich hierbei um eine Weiterentwicklung des Werkzeugs BDDBDDB 10 Wie jede Datenbank besteht auch diese Deduktive Datenbank aus einem Schema und Daten Das Schema ist unterteilt in e Relationsdefinitionen relations datalog entspricht Tabellendefinitionen in SQL Datenbanken siehe weiter Kap 5 3 e Regeldefinitionen rules datalog entspricht Views in SQL Datenbanken siehe weiter Kap 5 4 Mit diesem Regelinterpreter werden folgende Schritte nachvollzogen e Berechnung der Points to Information welche Variable welcher Pfad zeigt auf welches Objekt durch Nachvollziehen des Variablenflusses e Berechnung der kontextsensitiven Methodenaufrufe durch Verkn pfung der Methodenaufrufe mit ihrer Kontextinformation e bertragung der Kontextinformationen vom Methodenaufruf auf die aufgerufene Methode und ihre Operationen Datei Version Datum Bearbeiter in Seite SecFlow Benutzerhandbuch_V10 odt 1 0 2008 11 27 JK DR 13 von 67 e Synthese des Datenflusses durch Interpretation der nun kontextsensitiven Operationen unter Ber cksichtigung von datenfluss unterbrechenden Operationen Sanitizer Guards Das Ergebnis dieser Analyse besteht aus folgenden Relationen e untrusted verd chtige Quellen im Qu
83. w_Benutzerhandbuch_V10 odt 1 0 Datum 2008 11 27 Bearbeiter in JK DR Seite 19 von 67 BR type Filter text Path View ct F General Out File Settings el EE Output Path of out Files resource faut Communications Highlighting Colors For Path view Source Color Element Color Guard Color Sanitizer Color MA Sink Color SS Help Install Update Java Plug in Development Regex Tester Run Debug Secflow 2 Framework El Path view E Reporting Server Tasks Tearn Usage Data Collector Yalidakior E XML Restore Defaults Apply 2 on Abb Einstellung zum Ausgabepfad Die Symbole f r die Reportgenerierung in der Path View werden erst aktiv wenn die entsprechenden externen Viewer ber den Men punkt Window Preferences Secflow Path View Reportiing aktiviert wurden lol type Filter kext Reporting ci F General Path settings Ant ate HTML viewer executable Web Browser ZProgrammellnternet Explorertiexplore exe Browse Communications Help POF viewer executable ProgrammelAdobelReader 9 0 Reader AcroRd32 exe Browse Install Update Java ODT viewer executable OpenOffice Writer C Programme OpenOffice org 2 program swriker exe Browse Plug in Development 15 viewer executable ExcelfOpenOffice Calc Browse RegEx Tester Run Debug SecFlow u Framework l Path view E Reporting Metric 1002 Metric
84. zu Java die passenden NET Standard Assemblies hinzuzuf gen Die Checkboxen links neben den Assemblybezeichnern erlauben es ein Assembly zur Analyse hinzuzuf gen Die im Assembly vorhandenen Klassen und Methoden werden dar ber hinaus auf dem Analysis Panel ausw hlbar Im Beispiel wurde darauf verzichtet die Systembibliotheken auszuw hlen da sie im allgemeinen durch Flow Dateien abgebildet werden Auf dem Analysis Panel sind sie somit nicht sichtbar Die Buttons auf der rechten Seite erm glichen es die Liste zu bearbeiten Arrays clr sectlow x A Libraries Library Listing Here you can manage the libraries that will be available for analysis e securtytestsisrchhetinetisecuribenchimicrofarrays rraysi d WW ny securitytests src net net securibenchimicrofarrays Arrays1 0 dl e securitytestsisremetmetsecuribench microlarrays Arrays2 dll el securitytests sre netmet securibenchimicro arrays Arrays3 dl p el securitytests sre net net securibenchimicro arrays Arrays4 dl e AONO el securtytests sreMnetinet securibenchimicro arrays Array sal el securitytests src netMmet securibenchimicro arrays Arrays6 all ry securitytests src netMmet securibenchimicro arrays Arrays dl x Ea a a Sl xa Ea a a el securitytests sre netMmet securibenchimicro arrays Arrayss all a el securitytests srcMmetnetfsecuribench micro arrays Arrays3 ell E el securitytestsfibinetframework Syst
Download Pdf Manuals
Related Search
Related Contents
db-cemdur MANUAL DE INSTALAÇÃO E UTILIZAÇÃO DO CONSULTÓRIO Samsung LW17N13W Bruksanvisning 取扱説明書 ワゴン用後付汚物缶 TB-1251 Zanussi ZOD370 User's Manual CardLight FELT Version User Manual Thank you for choosing our Mode d`emploi et d`entretien des machines à Intel Xeon W3520 Yamaha MG16/6FX Owner's Manual Copyright © All rights reserved.
Failed to retrieve file