Home

- HSR - Institutional Repository

image

Contents

1. 4x Implementation 40 Prototyp GUI Prototyp des GUIs erstellen Elaboration 2 2 41 Prototyp Problem Domain Erster Prototyp Elaboration2 2 42 Prototypen zusammenf h Erarbeiten des Release 0 1 Elaboration2 2 ren 43 MS4 End Of Elaboration Review Prototyp Alpha Elaboration 2 1 44 Ausbau GUI GUI auf Endzustand ausbauen Construction 1 2 45 Ausbau Problem Domain Erweitern des Codes um die wich Construction 1 2 Implementation tigsten Usecases 46 MS5 End Of Construction Review Prototyp Beta Construction 1 1 1 47 Ausbau Features Reser Erweitern des Codes um alle Fea Construction 2 3 ve tures inkl optionale 48 Refactoring Codeoptimierungen durchf hren Construction 2 2 5x Test Bugfixing 50 Test Units Test Cases f r zwingende Funktio Elaboration2 2 nen erarbeiten und ausf hren 51 Usability Tests Usability Tests definieren und Construction 2 3 durchf hren 52 Systemtests Funktionale Systemtests definie Construction 2 2 ren und durchf hren 53 Bugfixing Gefundene Fehler beheben Construction 2 2 6x Dokumentation 60 Benutzerhandbuch Benutzerhandbuch erstellen Transition 3 61 Installationsanleitung Installationsanleitung erstellen Transition 2 62 Dokumentation BA Dokumentation erstellen Transition 2 63 MS6 Abgabe Abgabe Release Candidate und Transition 1 Dokumentation 64 BA Schlusspr sentation Schlusspr sentati
2. a 1 e e e e e e e a 1 1 3 gt gt E SE TNC Server TNC Client 2 3 gt z E w nn RE ee en Tan Te A er a U I U i izo 1 ess Network Access Policy Enforcement Network Access 1 2388 Authority Point Requestor I lt H I U I Client WebBrowser CYGNET REETA IPSec Config DB StrongSwan Client Abbildung 6 1 bersicht der Komponenten Das Malware Database Management Tool Cygnet soll eng mit der bestehenden strongSwan Software zusammenarbeiten Es erweitert die bestehende Konfigurationsdatenbank um ein web basiertes Management Interface das die bisherige Verwaltung via Kommandozeilen tool abl sen soll Zudem wird ein Regelwerk implementiert welches dem Administrator er laubt Richtlinien f r strongSwan Clients festzulegen die vom TNC Server durchgesetzt wer den bevor der Client ins Netzwerk eingelassen wird 6 1 Komponenten 6 1 1 Policy Decision Point PDP In der Abbildung 1 1 zeigt der linke eingerahmte Bereich den Policy Decision Point Die Ap plikation Cygnet befindet sich somit auf einem Server der die Aufgabe hat die Messwerte 13 Juni 2013 Seite 23 118 Bachelorarbeit Malware DB Management Tool Cygnet eines Access Requestors zu sammeln und mithilfe von Policies eine Zugriffsentscheidung zu formulieren Diese Entscheidung wird anschliessend der ausf hrenden Stelle f r de
3. Source These lines should be included after the module s docstring before any other code separated by a blank line above and below Naming Conventions The naming conventions of Python s library are a bit of amess so welll never get this completely consistent nevertheless here are the currently recommended naming standards New modules and packages including third party frameworks should be written to these standards but where an existing library has a different style internal consistency is preferred Descriptive Naming Styles There are a lot of different naming styles It helps to be able to recognize what naming style is being used independently from what they are used for The following naming styles are commonly distinguished b single lowercase letter B single uppercase letter lowercase lower_case_with_underscores UPPERCASE UPPER_CASE_WITH_UNDERSCORES CapitalizedWords or CapWords or CamelCase so named because of the bumpy look of its letters 4 This is also sometimes known as StudlyCaps Note When using abbreviations in CapWords capitalize all the letters of the abbreviation Thus HTTPServerError is better than HttpServerError mixedCase differs from CapitalizedWords by initial lowercase character Capitalized_Words_With_Underscores ugly There s also the style of using a short unique prefix to group related names together This is not used much in Python bu
4. Dateien aus letztem Backup vom letzten Build wiederherstel len und ev auf den neuesten Stand bringen Tabelle 25 6 Risikotabelle 6 R7 Fehleinsch tzung des Aufwandes Beschreibung Zeitplan wird nicht eingehalten da der Aufwand von einzelnen Arbeitspaketen falsch eingesch tzt wurde Massnahmen kritische Arbeitspakete Domainmodell Backup Planung Konfigurationsverwaltung fr hzeitig Elaboration 1 und 2 be arbeiten Vorgehen bei Eintreffen nicht alle geplanten Funktionen und Features umsetzen Mehrarbeit Tabelle 25 7 Risikotabelle 7 13 Juni 2013 Seite 87 118 Bachelorarbeit Malware DB Management Tool Cygnet R8 Ausfall eines Projektmitglieds Beschreibung Ausfall eines Projektmitgliedes aufgrund Krankheit Unfall Studiumabbruch Massnahmen Verantwortlichkeiten in Team klar definieren Vorgehen bei Eintreffen Arbeit innerhalb des bestehenden Teams aufteilen Funkti onsumfang k rzen Tabelle 25 8 Risikotabelle 8 25 3 Risikosch tzung Nr Titel max Eintritts gew Schaden Wsk Schaden h h Projektspezifische Risiken R1 Policy Rule DB Schnittstelle ist nicht praktikabel 40 20 00 8 00 R2 Probleme mit dem Django Framework 80 10 00 8 00 R3 Probleme mit der Datenbank 80 5 00 4 00 R4 Kommunikation Django strongSwan IMV 40 2 00 0 80 Allgemeine Risiken R5
5. O Overview amp Groups A Policies E Enforcements Device Device Info B Devices 1D af6e26eadfeb465e677 8 Packages There are no entries Products Description Dozent X s Device fm Files Statistics Product Select one Assign Groups e Groups Dozenten x ITA 2013 WEE 9 Abbildung 21 6 Cygnet Neues Ger t Zus tzlich kann hier der Device Report eingesehen werden In dieser Ansicht werden die letzten Messergebnisse eines Ger ts angezeigt in welchen Gruppen das Ger t eingeteilt ist und welche Enforcements auf das Ger t wirken Dies kann n tzlich sein um herauszufinden warum ein Ger t blockiert oder isoliert wurde 21 6 Dateien Files In diesem Abschnitt werden die bekannten Dateihashes gespeichert Sie dienen als Refe renzwerte f r File Hash und Dir Hash Richtlinien Dateien und Hashes sind read only Sie k nnen nur gel scht aber nicht bearbeitet oder neu erfasst werden Die zurzeit bekannten und unterst tzten Hash Algorithmen sind e SHA 1 e SHA 1 IMA e SHA 256 e SHA 384 21 7 Pakete Packages Auf dieser Seite werden alle bekannten Software Pakete und deren Versionen aufgelistet Hier kann definiert werden welche Pakete auf der Blacklist stehen und f r die Blacklisted Package Policy Seite 69 getestet werden 13 Juni 2013 Seite 73 118 Bachelorarbeit Malware DB Management Tool Cygnet cygnet Package abrowser Mozilla Firefox File Edit View History Bookmarks Too
6. 3 Requirements 3T E 3 1 Use Case brief DI E 3 2 Supplementary Spec 1T e 4 Analyse 11T 4 1 Domain Model 1T pa e 4 2 System Sequendiagramme 2T 4 3 Analyse Policy 6T gt e 4 4 Externes Design UI 2T gt 5 MS2 Anforderungen und Analyse e 6 Design 7T 6 1 Design Model AT 45 e 6 2 Logische Architektur 45 0 e 6 3 Internes Design 2T a 7 MS3 Review Design 8 Implementation 39T 65 e 8 1 Prototyp GUI 2T 45 8 2 Prototyp Problem Domain 6T 8 3 Prototypen zusammenf hren IT 8 4 MS4 End Of Elaboration e 8 5 Ausbau GUI ST e 8 6 Ausbau Problem Domain Implementation 15T Aa a Kr 8 7 MS5 End Of Constructiont e 8 8 Ausbau Features Reserve 9T 25 e 8 9 Refactoring 1T O 9 Test Bugfixing 8T Ee 9 1 Test Units 3T Se 9 2 Usability Tests 1T 45 9 3 Systemtests DI E e 9 4 Bugfixing 1T 45 10 Dokumentation 14T 10 1 Benutzerhandbuch IT O 10 2 Installationsanleitung 3T GE 10 3 Dokumentation 10T 11 MS6 Abgabe Abbildung 24 1 Gantt Chart Bachelorarbeit Malware DB Management Tool Cygnet 24 4 Arbeitspakete Nr Name Inhalt Iteration Prio Ox Projektmanagement 00 Erhalt Aufgabenstellung Kick off und Einarbeitung Inception 1 01 Projektplan Projektplan wird erstellt Elaboration 1 1 02 Risikomanagement Risikoanalyse und Massnah Elaboration 1 3 men definieren 03
7. on import httplib random from datetime import datetime from models import Session Device Identity 0 Jo Om So MM oo Start url cmd start_session end url cmd end_session Da 13 def start_login params 13 Juni 2013 Seite 51 118 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 Bachelorarbeit Malware DB Management Tool Cygnet on Call start url to invoke cygnet workltem generation con httplib HTTPConnection localhost 8000 url s s start_url Ai join s s k v for k v in params items con request HEAD url response con getresponse if response status 200 raise AssertionError Expected HTTP 200 got HTTP s response status body response read if body raise AssertionError Expceted empty body got s body def finish_login params Call finish url to invoke cygnet result processing con httplib HTTPConnection localhost 8000 url s s end_url amp join s s k v for k v in params items con request HEAD url response con getresponse if response status 200 raise AssertionError Expected HTTP 200 got HTTP s response status body response read if body raise Asse
8. Beim Zuordnungsfeld ist unklar welches Feld die Mitglieder und welches die vorhan denen Elemente darstellt Das Suchfeld kann mit Dateipfaden nicht umgehen Eine Suche nach bin ping6 funk tioniert nicht Beim ndern einer Blacklist Einstellung f r ein Paket wird der Modal Dialog nach kur zer Zeit automatisch ausgeblendet Der Link zum Device Report ist zu klein Das allgemeine Feedback der Testperson war im Grundton positiv Das Design ist konsistent das Plus Symbol f r ein neues Element ist sinnvoll und das Plus als Zeichen allgemein bekannt Es ist gut dass bei Unsicherheit ein Tooltip existiert Die Overview Ansicht ist cool Das Design der Seite ist an sprechend und die Farbverwendung blau ist freundlich Die Farben bei Steue relementen rot gr n f r Buttons sind passend und hilfreich Insgesamt wirken die Seiten allerdings ein wenig leer ausser die bersicht https github com tannerli cygnet commit aa52f8516c467568b33b39be6b5899585145896b https github com tannerli cygnet doc commit c665e5192675b39da28034b441ea6ff9e6f1c4ec 13 Juni 2013 Seite 58 118 Bachelorarbeit Malware DB Management Tool Cygnet 18 3 Testlauf vom 06 Juni 2013 Testperson Urs Baumann Ausbildung Informatiker HSR Bsc Student Englischkenntnisse HSR Englischmodul 3 ca C1 Stand der Software Commit fdec327 Stand der Doku Commit 6f0f94b 4 Instruktionen Schriftlich siehe 18 1 18 3 1 Ergeb
9. Yes if foo startswith bar No if foo 3 bar The exception is if your code must work with Python 1 5 2 but let s hope not Object type comparisons should always use isinstance instead of comparing types directly Yes if isinstance obj int No if type obj is type 1 When checking if an object is a string keep in mind that it might be a unicode string too In Python 2 3 str and unicode have a common base class basestring so you can do if isinstance obj basestring In Python 2 2 the types module has the StringTypes type defined for that purpose e g from types import StringTypes if isinstance obj StringTypes In Python 2 0 and 2 1 you should do from types import StringType UnicodeType if isinstance obj StringType or isinstance obj UnicodeType For sequences strings lists tuples use the fact that empty sequences are false Yes if not seq if seq No if len seq if not len seq Don t write string literals that rely on significant trailing whitespace Such trailing whitespace is visually indistinguishable and some editors or more recently reindent py will trim them Don t compare boolean values to True or False using Yes if greeting No if greeting True Worse if greeting is True References 1 PEP 7 Style Guide for C Code van Rossum 2 http www python org doc essays styleguide html 3 PEP 257 Docstring Conventions Goodger van R
10. Ausfall der Infrastruktur 40 0 50 0 20 R6 Datenverlust 600 0 50 3 00 R7 Fehleinsch tzung des Aufwandes 60 20 00 12 00 R8 Ausfall eines Projektmitglieds 370 0 50 1 85 Summe 1310 58 50 39 7 Tabelle 25 9 Risikoschatzung 13 Juni 2013 Seite 88 118 Bachelorarbeit Malware DB Management Tool Cygnet 26 Pers nliche Berichte 26 1 Stefan Rohner In den letzten 14 Wochen bearbeitete ich mit meinem Kollegen Marco Tanner eine sehr spannende aber zum Teil konzeptuell auch anspruchsvolle Arbeit Wir waren fast immer gleicher Meinung und sehr motiviert ein funktionsf higes Produkt zu entwickeln Sehr an genehm war auch die Zusammenarbeit mit unseren Betreuern Prof Dr Steffen und Tobias Brunner von ITA welche wichtige konzeptuelle Inputs geben konnten Zu den f r mich interessantesten Punkten geh rten unter anderem e Erkennen der Zusammenh ngen der TNC Architektur e Kennenlernen des Python Framework Django e Erstellen des GUI mit modernen Web Frameworks wie JQuery und Twitter s Bootstrap Eine spannende Erfahrung war ausserdem dass die gesamte Entwicklung auf OpenSource Software basierte was ich aus meinem gesch ftlichen Umfeld weniger kenne Der Projekta blauf lief meines Erachtens sehr reibungsfrei ab Den auf unser Projekt abgestimmten RUP erwies sich als sehr hilfreich und auch das Projektmanagement konnten wir gut bew ltigen Obwohl ich das Gef hl hatte dass wir die grundlegende Archite
11. For flowing long blocks of text docstrings or comments limiting the length to 72 characters is recommended The preferred way of wrapping long lines is by using Python s implied line continuation inside parentheses brackets and braces If necessary you can add an extra pair of parentheses around an expression but sometimes using a backslash looks better Make sure to indent the continued line appropriately The preferred place to break around a binary operator is after the operator not before it Some examples class Rectangle Blob def __init__ self width height color black emphasis None highlight 0 if width 0 and height and color red and emphasis strong or highlight gt 100 raise ValueError sorry you lose if width 0 and height and color red or emphasis is None raise ValueError I don t think so values are s s width height Blob __ init__ self width height color emphasis highlight Blank Lines Separate top level function and class definitions with two blank lines Method definitions inside a class are separated by a single blank line Extra blank lines may be used sparingly to separate groups of related functions Blank lines may be omitted between a bunch of related one liners e g a set of dummy implementations Use blank lines in functions sparingly to indicate logical sections Python accepts the control L i e L form feed character
12. Neues Ger t 73 21 7 Cygnet Neues Paket at rs d oe ee Cen E Bee 74 242 1 EE 2 3 ts tok e A et ee At 83 Tabellenverzeichnis 3 1 Aktoren amp Stakeholder e 13 13 Juni 2013 Seite 95 118 Bachelorarbeit Malware DB Management Tool Cygnet Sl POolCy HEN este o d e he O e 30 IE AACUHONS aal a ed a Dub ere ds Bb be ts Sed re ed 31 17 1 UC Test Ergebnisse 54 17 2 U G Test Ergebnisse 2 ns On 2 a7 Ken en ee Ba 55 24 1 Meilensteine 23 2 0 3 4 DE HE e las ai es 82 24 2 Arbeitspakete Teilll 2 0 ats se ea ar Brass eS eS 84 24 3 Arbeitspakete Teil 2 85 25 1 Risikotabelle 1 Sr ses kan ee Be oe a en Bean e 86 25 2 RisiKolabelle2 nu en A eet erden 86 25 3 Risikotabelle 3 us re een ra ee 86 25 4 Risikotabele 4 an aut ans on en lata ale dn de rd te dh ae Good 87 A ls EE 87 25 6 Risikotabele 6 ar al ees O A e amp ba a 87 Seege ut das pr a a o Sie A AS 87 29 9 RISIKOIAbE EB Au a te are A ea ee Io ee 88 20 9L RISIKOSCHAZUNG a en EE 88 Listings II EEN A ee en amp ae e ee ee ae e ee de ee weeds 49 16 1 UnieTes Belehl 2 4 3 au aaa Ae See Gost Gale a es a Ate 51 16 2 Unit Tests Beispielausgabe 29 05 2013 nn 51 CAR AA RA 61 19 2 C0py lOs a A a E eae ee 61 19 3 Dalabases cava od A a A AE 62 19 4 S6t Password il ana E AI a E A SC 62 19 5 S6t PassWord ll 242 Bee Boh Ba ha as E 62 19 6 Apachie Configuration e a a e 63 19 17 ACME restart ra seon tes ea eels d A O th he e EE 63 EE A S
13. from subprocess import Popen PIPE Imports are always put at the top of the file just after any module comments and docstrings and before module globals and constants Imports should be grouped in the following order 1 standard library imports 2 related third party imports 3 local application library specific imports You should put a blank line between each group of imports Put any relevant all specification after the imports Relative imports for intra package imports are highly discouraged Always use the absolute package path for all imports Even now that PEP 328 7 is fully implemented in Python 2 5 its style of explicit relative imports is actively discouraged absolute imports are more portable and usually more readable When importing a class from a class containing module it s usually okay to spell this from myclass import MyClass from foo bar yourclass import YourClass If this spelling causes local name clashes then spell them import myclass import foo bar yourclass and use myclass MyClass and foo bar yourclass YourClass Whitespace in Expressions and Statements Pet Peeves Avoid extraneous whitespace in the following situations Immediately inside parentheses brackets or braces Yes spam ham 1 eggs 2 No spam ham 1 eggs 2 Immediately before acomma semicolon or colon Yes if x 4 print x yi X Y Y X No if x 4 printx NI NN SN X Immed
14. lt barry at python org gt Status Active Type Process Created 05 Jul 2001 Post History 05 Jul 2001 Introduction This document gives coding conventions for the Python code comprising the standard library in the main Python distribution Please see the companion informational PEP describing style guidelines for the C code in the C implementation of Python 1 This document was adapted from Guido s original Python Style Guide essay 2 with some additions from Barry s style guide 5 Where there s conflict Guido s style rules for the purposes of this PEP This PEP may still be incomplete in fact it may never be finished lt wink gt A Foolish Consistency is the Hobgoblin of Little Minds One of Guido s key insights is that code is read much more often than it is written The guidelines provided here are intended to improve the readability of code and make it consistent across the wide spectrum of Python code As PEP 20 6 says Readability counts A style guide is about consistency Consistency with this style guide is important Consistency within a project is more important Consistency within one module or function is most important But most importantly know when to be inconsistent sometimes the style guide just doesn t apply When in doubt use your best judgment Look at other examples and decide what looks best And don t hesitate to ask Two good reasons to break a particular rule 1 When applying the r
15. mentieren Sie was Sie tun und warum Beantworten Sie die in den Instruktionen gestellten Fragen dem Betreuer 18 1 2 Arbeitsanweisungen Der Internetbrowser ist bereits auf der Cygnet Startseite ge ffnet Loggen Sie sich ein Das Passwort lautet password Navigieren Sie zur Gruppenverwaltung Wie viele Gruppen gibt es momentan Wie viele Mitglieder Ger te hat die Gruppe Admins Welches ist die bergeordnete Gruppe der Gruppe Consultants Sie m chten eine neue Gruppe anlegen Nennen Sie sie Customer Support Weisen Sie der Gruppe alle verf gbaren Ger te als Mitglieder zu und speichern Sie die Gruppe ab Versuchen Sie herauszufinden ob sich das Software Paket passwd zur Zeit auf der schwar zen Liste Blacklist befindet 13 Juni 2013 Seite 56 118 Bachelorarbeit Malware DB Management Tool Cygnet Weisen Sie das Paket firefox der schwarzen Liste zu Finden Sie heraus welches Betriebssystem Produkt auf dem Ger t Sales Persons Lap top installiert ist L schen Sie die Datei File bin ping6 Legen Sie eine neue Policy an Nennen Sie sie Exist cat Die Policy soll testen ob eine bestimmte Datei existiert Tipp FileExist Die Datei die Sie testen m chten heisst bin cat Wenn die Policy vom Client Ger t nicht erf llt wird also fehlschl gt soll er geblockt wer den Wenn die Messung nicht durchgef hrt werden kann oder kein Resultat vorhanden is
16. Benutzer hat bereits einen Benutzernamen und ein Passwort erhalten welche als Zugang f r das VPN gen gen Grunds tzlich kann sich jeder Benutzer mit einem beliebigen auch privaten VPN f higen Ger t ins Hochschulnetz einw hlen Da mit die Sicherheit des internen Hochschulnetzes nicht kompromittiert wird wird mithilfe von Cygnet eine Sicherheitsrichtlinie definiert und durchgesetzt Wenn Sie Cygnet in einem Browser ffnen und Ihr Passwort eingeben erscheint als erstes die bersicht cygnet Overview Mozilla Firefox File Edit View History Bookmarks Tools Help cygnet Overview d a O Overview Welcome to Cygnet 2 Groups Cygnet is an extension for the StrongSwan VPN Client and the corresponding server een It allows the definition and enforcement of policies that apply to all VPN clients and B Devices must be achieved in every connection attempt Packages Products a Files B Statistics Getting started Links StrongSwan VPN Clients Clients can be assigned to groups according as operating 0 system company structure or individual preferences of the administrator There can be rules cygnet GithHub Policies defined like all available operating system updates have to be installed on the client or certain applications must not be installed on the client Thus these policies can be applied enforced on the groups Enforcements which gets checked by CYGNET when the client starts a connection attempt str
17. Gruppe Default group hinzugef gt 13 Juni 2013 Seite 74 118 HSR E HOCHSCHULE F R TECHNIK Institute for al RAPPERSWIL Internet Technologies E and Applications Cygnet Projektplan Bachelorarbeit FS2013 Studenten Stefan Rohner Marco Tanner Betreuer Prof Dr Andreas Steffen Tobias Brunner Gegenleser Prof Stefan Keller Experte Dr Ralf Hauser Bachelorarbeit Malware DB Management Tool Cygnet 22 Einf hrung 22 1 Zweck In diesem Dokument werden die Details zur Bachelorarbeit BYOD Malware Database Ma nagement Tool for Android dargelegt und die Projektmeilensteine definiert 22 2 Aufgabenstellung 22 2 1 Beschreibung Die neue BYOD Bring Your Own Device Version des popul ren strongSwan Android VPN Clients erlaubt es auf der Basis der standardisierten Trusted Network Connect TNC Proto kolle den Gesundheitszustand von Android 4 Smartphones und Tablets remote zu bestim men Zur Zeit k nnen offene Serverports erkannt eine Liste aller installierten Apps erfasst die SHA 1 Checksummen von System Programmen und Libraries berechnet und gewisse Ger teeinstellungen berwacht werden Auf der TNC Serverseite wird zur Zeit eine Blacklist von potentiell gef hrlichen Server Apps in einer SQLite Datenbank gespeichert die ber ein Kommandozeilentool rudiment r ver waltet werden kann Clients k nnen ber diese Liste auch zu einen Security Update auf eine neuere Version gezwungen werden Diese L
18. Kubun tu implementiert werden F r diese Ger te sind einige Rahmenbedingungen anders als bei Android Ger ten Beispielsweise muss die eindeutige Identifizierung ohne Android ID gel st werden und auch die Policies m ssen weiter anpassbar sein da es zum Beispiel durchaus blich ist dass Server Applikationen auf Ubuntu installiert sind z B sshd 4 3 4 K3 Mobile Version Das Web UI soll auch auf mobilen Ger ten korrekt resp optimiert dargestellt werden Die Funktionalit t soll so weit m glich komplett mit mobilen Ger ten bedient werden k nnen 4 3 5 K4 Statistiken Es k nnen Statistiken ber die Datenbank wie zum Beispiel Erfolgsquote bei Login Versuchen ber Zeit betrachtet werden 13 Juni 2013 Seite 16 118 Bachelorarbeit Malware DB Management Tool Cygnet 5 Nichtfunktionale Anforderungen 5 1 Leistungsanforderung Das verwendete System hat zwei Hauptaufgaben Erstens m ssen f r jeden VPN bzw strongSwan Login Vorgang die entsprechenden Resultate ausgewertet und die f r das Ge r t geltenden Policy Informationen aktualisiert werden Dies muss in einem Zeitrahmen ge schehen der den Login Prozess f r das Android Ger t nicht merklich verlangsamt Die Ver arbeitung eines Logins sollte daher maximal zwei Sekunden dauern Die zweite Hauptaufgabe besteht im Bereitstellen einer herk mmlichen webbasierten Appli kation zur Verwaltung der Datenbank Die Antwort Zeiten sollten gen gend klein sein dass es sic
19. Malware DB Management Tool Cygnet 4 Funktionale Anforderungen 4 1 Muss Kriterien 4 1 1 MO CRUD Cygnet soll das bestehende Datenbankschema der ipsec config db abbilden erweitern und die g ngigen CRUD Operationen f r den Benutzer in einer Webapplikation bereitstellen 4 1 2 M1 Policy Management Die bestehende Datenbank muss so erweitert werden dass Policies f r Ger te und Ger tegruppen festgelegt werden k nnen Die Policies bestimmen welche Sicherheitspr fungen zu welchem Zeitpunkt ausgef hrt werden Auch diese Funktionen sollen in Cygnet verwalt bar sein 4 1 3 M2 strongSwan Logins Die effektiv geltenden Policies f r ein Ger t sollen als Worklist in einer separatenen ag gregierten Tabelle abgelegt werden damit die strongSwan IMVs einfach darauf zugreifen k nnen Die Resultate der einzelnen Pr fungen sollen durch den IMV in der Datenbank ge speichert werden Nach dem bearbeiten Login Vorgang kann der IMV eine Neuberechnung der Worklist f r das Ger t ausl sen 4 2 Soll Kriterien 4 2 1 SO Authentifizierung mittels Passwort Um sicher zu stellen dass nur befugte Personen Policies und Einstellungen bearbeiten wird die Web Applikation nur mit g ltigem Benutzernamen und Passwort zug nglich sein Als optionale Erweiterung kann ein Read only Zugriff auf gewisse Bereiche m glich sein 4 2 2 S1 REST ful URLs Die URLs von cygnet sollen nach dem Representational State Transfer P
20. as whitespace Many tools treat these characters as page separators so you may use them to separate pages of related sections of your file Encodings PEP 263 Code in the core Python distribution should aways use the ASCII or Latin 1 encoding a k a ISO 8859 1 For Python 3 0 and beyond UTF 8 is preferred over Latin 1 see PEP 3120 Files using ASCII or UTF 8 for Python 3 0 should not have a coding cookie Latin 1 or UTF 8 should only be used when a comment or docstring needs to mention an author name that requires Latin 1 otherwise using x u or U escapes is the preferred way to include non ASCII data in string literals For Python 3 0 and beyond the following policy is prescribed for the standard library see PEP 3131 All identifiers in the Python standard library MUST use ASCII only identifiers and SHOULD use English words wherever feasible in many cases abbreviations and technical terms are used which aren t English In addition string literals and comments must also be in ASCII The only exceptions are a test cases testing the non ASCII features and b names of authors Authors whose names are not based on the latin alphabet MUST provide a latin transliteration of their names Open source projects with a global audience are encouraged to adopt a similar policy Imports Imports should usually be on separate lines e g Yes import os import sys No import sys os it s okay to say this though
21. bestimmte Betriebssystemeinstellungen Deny Schl gt per Definition immer fehl und dient zum Ausschliessen eines Ger ts 13 Juni 2013 Seite 30 118 Bachelorarbeit Malware DB Management Tool Cygnet 9 1 Konfigurieren der Policies 9 1 1 Definition von Gruppen Der Administrator kann seine Client Ger te in Gruppen organisieren die eine Hierarchie unterst tzen Eine Gruppe kann eine Eltern Gruppe haben Richtlinien der Eltern Gruppe werden auf die Kind Gruppe vererbt Eine Einteilung nach Organisationsstruktur Dozen ten Studenten oder nach technischen Eigenschaften Smartphones Tablets oder eine Kombination von Beidem ist so realisierbar Nach Installation von Cygnet existiert bereits eine Default Gruppe die nur umbenannt oder in der Hierarchie eingeordnet aber nicht gel scht werden kann Sie dient als Standard Gruppe f r die Default Policies siehe 9 1 5 9 1 2 Policies In einem zweiten Schritt k nnen Policies definiert werden Eine Policy kann einem Typen aus Tabelle 9 entsprechen Weiter k nnen eine Fail Action und eine Noresult Action angegeben werden Dort stehen vier Optionen zur Auswahl Option Bedeutung ALLOW Es wird empfohlen den Client ins Netz zuzulassen ISOLATE Es wird empfohlen den Client in einem abgesondertes Netz zu isolieren BIOCK Es wird empfohlen dem Client jeglichen Zugriff zu verweigern NONE Keine Empfehlung Tabelle 9 2 Actions Die Fai
22. des Administrators ber HTTP aufgebaut Auf dem Policy Decision Point PDP welcher als Device Node ein Ger teknoten darstellt sind weitere Ausf hrungsknoten untergebracht wie die SQLite Datenbank und der TNC Server die beide mit der Cygnet Software kommunizieren Wie in der Einleitung erw hnt steht der TNC Server mit dem strongSwan Client AR ber den Policy Enforcement Point PEP in Verbindung Eine konkrete Anleitung wie Cygnet zu installieren ist findet sich im Part Deployment Seite 61 13 Juni 2013 Seite 46 118 Bachelorarbeit Malware DB Management Tool Cygnet 14 Entscheidungen 14 1 Verzicht auf Dom nenmodell Es wurde f r das Projekt bewusst auf ein Dom nenmodell verzichtet Ein Dom nenmodell abstrahiert in der Regel die Problemdom ne sprich die Realit t Da aber die Problemdom ne in diesem Fall bereits eine Abstraktion auf hohem Niveau ist wurde kein weiteres Level of indirection aufgesetzt Als gute Diskussionsgrundlage im Gespr ch mit unserem Betreu er diente das Datenmodell der bestehenden Datenbank Es wurde im Projektverlauft stetig erweitert und verbessert 14 2 Redundanzen in Workitems Tabelle Die Schnittstelle zwischen Cygnet und StrongSwan stellte sich als Herausforderung dar deshalb wurden zur Vereinfachung die Workitems Tabelle definiert Sie stellt eine Konsoli dierung der restlichen Cygnet Tabellen dar und bieten den IMVs eine Liste von Auftr gen die abzuarbeiten
23. e Parameter Methode Name Beschreibung Format GET connectionID TNC Connection ID d e Returns Response Code x HTTP 200 OK Workitems created x HTTP 400 Invalid argument Response Format None Response Body None 13 Juni 2013 Seite 43 118 Bachelorarbeit Malware DB Management Tool Cygnet 11 5 2 End Session e URL cmd end_session e Verb HEAD GET e Parameter Methode Name Beschreibung Format GET connectionID TNC Connection ID d e Returns Response Code x HTTP 200 OK Session finished x HTTP 400 Invalid argument x HTTP 404 No such session Response Format None Response Body None 13 Juni 2013 Seite 44 118 Bachelorarbeit Malware DB Management Tool Cygnet 12 Input Validierung Die Validierung von User Input ist ein wichtiges Thema f r Internetapplikationen und kann wenn nicht richtig implementiert eine kritische Schwachstelle sein die potentielle Angreifer ausnutzen k nnen Clientseitig werden alle Formulare mithilfe von Javascript Code auf ihre syntaktische Rich tigkeit gepr ft bei einem Fehler wird der Benutzer darauf hingewiesen und hat die M glich keit den Fehler zu korrigieren Erst nachdem alle Fehler beseitig sind kann der Benutzer das Formular an den Server schicken Doppelte Eingaben in Felder die als unique definiert sind werden via AJAX Request getestet bevor der Benutzer das Formular absenden kann Die clientseitige Pr fung des In
24. etc erhalt er durch Tooltips welche bei einem Mouse Over erscheinen eine Eingabehilfe Uber das entsprechende Feld In der unteren Tabelle stehen dem Admi nistrator Einstellungsm glichkeiten f r der Policy zugewiesenen Gruppen zur Verf gung 13 Juni 2013 Seite 36 118 Bachelorarbeit Malware DB Management Tool Cygnet 10 1 5 Ger teverwaltung o Overview Groups Policies a Devices Packages a Products Statistics Devices Device stes hte lexusnexus tuxator freddy FireFone ubunTool_WS Dese andi android samsons galaX eygnet Main lexusnexus Name software engineer Description android 4 0 ICE CREAM Last fail 31 03 2013 15 07 Membership Group Polieiy default gt Fail Action Default Action u 7 ee software engineers Listening Ports MissingSecurityUpdate Blacklisted Package OSSettings whitelisted devices gt Abbildung 10 5 Gerateansicht Um Ger te den Gruppen und somit den Policies zuzuweisen kann auf der Gerateansicht ein Geratename ausgewahlt werden Hier sind fur den Administrator auch Informationen Uber das Ger t ersichtlich 13 Juni 2013 Seite 37 118 Bachelorarbeit Malware DB Management Tool Cygnet 10 2 Generische Views Django ist nach dem Model Template View MTV Pattern aufgebaut MTV orientiert sich am bekannten Model View Controller Pattern MVC Somit wird die M glichkeit geboten Tem plates f r die
25. manipuliert werden konnten Diese Applikati on dient als Grundlage f r das geplante Cygnet Tool Bestehende Features sollen allesamt bernommen oder erweitert werden 7 1 1 Schnittstelle Cygnet gt IMV Die Datenbank wird auch als Datenablage f r die bestehenden strongSwan IMVs verwen det die ihre Resultate und Referenzwerte darin abspeichern F r diese Zugriffe soll eine Schnittstelle definiert werden damit sich die Datenzugriffe von Cygnet und den IMVs nicht gegenseitig st ren 7 1 2 Stabilit t gegen ber IMVs Cygnet ist als Administrations und Unterst tzungstool f r strongSwan und dessen TNC Server gedacht Daher steht die Funktion des TNC im Vordergrund Eine Fehlfunktion von Cygnet soll daher nicht den Betrieb des strongSwan Gateways beeintr chtigen 7 2 Flexibilit t f r Administratoren Netzwerke gibt es in beinahe beliebiger Vielfalt und mit enorm unterschiedlichen Anforde rungen daher ist auch deren Administration eine entsprechende Herausforderung Cygnet soll dem strongSwan Administrator soweit wie m glich zur Hand gehen und ihn bei der Kon figuration unterst tzen ohne aber seine M glichkeiten einzuschr nken Cygnet soll daher bewusst so implementiert werden dass f r den Administrator jeweils mehr als eine M glich keit existiert eine Richtlinie umzusetzen Die grafische Oberfl che soll jedoch bersichtlich und soweit wie m glich intuitiv bedienbar bleiben 13 Juni 2013 Seite 25 118 Bachelor
26. oh or l uppercase letter eye as single character variable names In some fonts these characters are indistinguishable from the numerals one and zero When tempted to use l use L instead Package and Module Names Modules should have short all lowercase names Underscores can be used in the module name if it improves readability Python packages should also have short all lowercase names although the use of underscores is discouraged Since module names are mapped to file names and some file systems are case insensitive and truncate long names it is important that module names be chosen to be fairly short this won t be a problem on Unix but it may be a problem when the code is transported to older Mac or Windows versions or DOS When an extension module written in C or C has an accompanying Python module that provides a higher level e g more object oriented interface the C C module has a leading underscore e g _socket Class Names Almost without exception class names use the CapWords convention Classes for internal use have a leading underscore in addition Exception Names Because exceptions should be classes the class naming convention applies here However you should use the suffix Error on your exception names if the exception actually is an error Global Variable Names Let s hope that these variables are meant for use inside one module only The conventions are about the same as th
27. sind In der Tabelle sind bewusst Redundanzen eingebaut die Datennor malisierungsregeln verletzen Die Verletzungen wurden in Kauf genommen da die Tabelle nur beim Login eines Clients einige Eintr ge generiert und diese bei erfolgreicher oder auch missgl ckter Verbindung anschliessend wieder gel scht werden Somit ist diese Tabelle f r den Grossteil der Zeit leer 14 3 BLOCK vor ISOLATE Je nach Auslegung ist die Massnahme ISOLATE f r einen Client h rter als BLOCK Nach Auslegung des Projektteams ist aber BLOCK schwerwiegender da der Client bei ISOLATE zumindest einen teilweisen Zugriff auf das Netzwerk bekommt Es wurde daher bewusst darauf verzichtet die Reihenfolge und oder Priorit t dieser Recommendations konfigurierbar zu machen 14 4 Unl schbare Gruppe 1 Es wurde entschieden dass wenn ein Client kein erkennbares Betriebssystem installiert hat oder keine Product Default Gruppen spezifiziert wurde dennoch eine Standard Gruppe zugewiesen werden soll Damit dies zuverl ssig funktionieren kann wurde die Gruppe mit der ID 1 zwar als mutable aber als nicht l schbar definiert 13 Juni 2013 Seite 47 118 Bachelorarbeit Malware DB Management Tool Cygnet 15 N chste Schritte Der Implementierungsaufwand muss sich im Rahmen dieser Bachelorarbeit einschr nken damit die Deadline eingehalten werden kann Hier folgen deshalb Vorschl ge f r m gliche Weiterentwicklungen von Cynget die aus Zeitmangel nicht me
28. starts with a and a single space unless it is indented text inside the comment Paragraphs inside a block comment are separated by a line containing a single Inline Comments Use inline comments sparingly An inline comment is a comment on the same line as a statement Inline comments should be separated by at least two spaces from the statement They should start with a and a single space Inline comments are unnecessary and in fact distracting if they state the obvious Don t do this x x 1 Increment x But sometimes this is useful x x 1 Compensate for border Documentation Strings Conventions for writing good documentation strings a k a docstrings are immortalized in PEP 257 3 Write docstrings for all public modules functions classes and methods Docstrings are not necessary for non public methods but you should have a comment that describes what the method does This comment should appear after the def line PEP 257 describes good docstring conventions Note that most importantly the that ends a multiline docstring should be on a line by itself and preferably preceded by a blank line e g Return a foobang Optional plotz says to frobnicate the bizbaz first For one liner docstrings it s okay to keep the closing on the same line Version Bookkeeping If you have to have Subversion CVS or RCS crud in your source file do it as follows _ version_ Revision 68852
29. user could still gain access by calling Foo _Foo__a Generally double leading underscores should be used only to avoid name conflicts with attributes in classes designed to be subclassed Note there is some controversy about the use of __names see below Constants Constants are usually declared on a module level and written in all capital letters with underscores separating words Examples include MAX_OVERFLOW and TOTAL Designing for inheritance Always decide whether a class s methods and instance variables collectively attributes should be public or non public If in doubt choose non public it s easier to make it public later than to make a public attribute non public Public attributes are those that you expect unrelated clients of your class to use with your commitment to avoid backward incompatible changes Non public attributes are those that are not intended to be used by third parties you make no guarantees that non public attributes won t change or even be removed We don t use the term private here since no attribute is really private in Python without a generally unnecessary amount of work Another category of attributes are those that are part of the subclass API often called protected in other languages Some classes are designed to be inherited from either to extend or modify aspects of the class s behavior When designing such a class take care to make explicit decisions about which attributes ar
30. verschiedenen Seiten anzulegen Diese Django Templates sind einfache Py thon Objekte deren Konstruktor einen String erwartet Mit Hilfe eines Context Objekts wer den dann die Platzhalter im Template beim Rendern der HTML Seite durch die gew nschten Werte ersetzt Ein Master Template bernimmt die Grundgestaltung des GUIs und wird den einzelnen Tem plates vererbt 10 3 GUI Gestaltung durch das Bootstrap Framework Mit dem Bootstrap Framework wird die Oberfl chengestaltung von GUI Elementen wie Grid Systeme Navigationsbereiche Tabellenansichten und Formulare auf HTML und CSS basie rend vereinheitlicht und somit vereinfacht Bootstrap weist eine Kompatibilit t f r alle wich tigen Browser auf und bietet mit diesem sogenannten Responsive Webdesign auch eine dynamische Anpassung der Oberfl chenelemente auf Smartphones und Tablets an 13 Juni 2013 Seite 38 118 Bachelorarbeit Malware DB Management Tool Cygnet 11 Schnittstellen 11 1 Ablauf TNC Prozess Der Verbindungsaufbau wird jeweils von einem Android Ger t ausgel st das sich mit dem VPN Netzwerk verbinden will Der Ablauf wird im folgenden Diagramm dargestellt StrongSwan IMV StrongSwan Client 1 1 startLobin devicelD 1 beginHandshake 1 1 1 getPolicies Policies 1 1 3 store workList 1 3 executeCheck result 1 6 endHandshake consolidateResults 4 store finalResult Abbildung 11 1 Se
31. welches vom ITA gestellt wurde Zur Sicherstellung der Versionskontrolle sowie die Dokumentenverwaltung und das Projekt management wird Git auf Github verwendet Die Zeiterfassung wird von jedem Mitarbeiter selbst ndig mitgef hrt 13 Juni 2013 Seite 78 118 Bachelorarbeit Malware DB Management Tool Cygnet 23 5 2 Tools Folgende Software findet Einsatz in diesem Projekt Django amp Python 2 7 dient als Grundlage f r das geplante Tool e git wird als Versionierungssystem eingesetzt Github com hostet unser Git Repository als private repo nicht ffentlich zug nglich e HIER wird f r das Setzen der Dokumentation verwendet astah f r das Erstellen von UML Diagrammen Dropbox f r den kurzfristigen Austausch von Dateien 23 6 Qualit tsmassnahmen 23 6 1 Projektmanagement Tool Es wird die auf Github zur Verf gung gestellten Issues Funktionen f r das Projektmana gement verwendet Dies erlaubt Meilensteine auf welche Aufgaben zugewiesen sind zu definieren Diese Aufgaben k nnen Mitarbeitern zur Bearbeitung vergeben werden 23 6 2 Dokumentation Erstellte Dokumente werden jeweils vom anderen Teammitglied gegengelesen korrigiert und berarbeitet Zudem sind Dokumenten Reviews im Projektplan ersichtlich bei welchen die Dokumentation zusammen mit dem Betreuer besprochen wird 23 6 3 Code Richtlinien Es ist insbesondere f r Whitespace strukturierte Sprachen wie Python enorm wichtig dass gew
32. 0 0 1 deny from all lt Location gt Listing 19 8 IMV Auth 13 Juni 2013 Seite 63 118 00 Jo om FWD Bachelorarbeit Malware DB Management Tool Cygnet Falls wider Erwarten der Zugriff des IMVs ber eine Netzwerkverbindung geschieht k nn te die Authentisierung mit Apache Basic Authentication realisiert werden Die zugeh rige Konfiguration w rde dann etwa so aussehen lt Location cmd gt AuthType Basic AuthName IMV API Secion AuthUserFile path to htpasswd Require valid user Order allow deny allow from all lt Location gt Listing 19 9 IMV Basic Auth Das htpasswd File kann mit folgendem Befehl erstellt werden Der Benutzer imv_auth wird direkt angelegt Ein Passwort wird interaktiv erfragt gt htpasswd c path to htpasswd imv_auth Listing 19 10 Htpasswd Der IMV kann sich dann mit dem Benutzernamen imv_auth und dem angegebenen Passwort authentisieren 13 Juni 2013 Seite 64 118 HSR E HOCHSCHULE F R TECHNIK Institute for al RAPPERSWIL Internet Technologies E and Applications Cygnet User Manual Bachelorarbeit FS2013 Studenten Stefan Rohner Marco Tanner Betreuer Prof Dr Andreas Steffen Tobias Brunner Gegenleser Prof Stefan Keller Experte Dr Ralf Hauser Bachelorarbeit Malware DB Management Tool Cygnet 20 Einf hrung Dieses Dokument beschreibt die Funktionsweise und Bedienm glichkeiten von Cygnet Es ist an den Endu
33. Code sowie alle Konfigurationsfiles abgelegt und versioniert werden Es ist jederzeit ein lauff hi ger und aktueller Release bereitgestellt da zur Entwicklung von neuen Features auf einem separaten Branch gearbeitet wird Dokumentversionen werden ebenfalls mit Git auf Github versioniert sind jedoch in einem an deren Repository untergebracht damit der Code f r eine sp tere strongSwan Implementierung und die Dokumentation dieser Bachelorarbeit sauber getrennt sind 13 Juni 2013 Seite 80 118 Bachelorarbeit Malware DB Management Tool Cygnet 24 Iterationen und Meilensteine 24 1 Iterationsplanung Diese Bachelorarbeit wird nach einem angepassten Rational Unified Process RUP gef hrt Dieser definiert vier Phasen welche durch Iterationen mehrfach durchlaufen werden Inception Ziel der Inception ist die Definition der Aufgabenstellung des Projektes sowie die Er stellung der Grunddokumente welche w hrend der Durchf hrung ben tigt werden Elaboration 1 Die erste Elaboration Iteration enth lt die Planung des Projektes die Erfassung der Anforderungen und die Erarbeitung der Analyse amp Architektur Elaboration 2 Nach dieser Iteration sollte ein Prototyp Alpha stehen in welchem alle Risiken abge kl rt sind Construction 1 Ist die 1 Construction beendet sollte der Prototyp soweit erweitert sein dass die MUSS Kriterien gem ss Requirements Dokument erf llt sind Beta Construction 2 Bei Bedarf Reserve Ze
34. DocumentRoot var www cygnet lt Directory var www cygnet gt lt Files wsgi py gt Order deny allow Allow from all lt Files gt lt Directory gt ErrorLog APACHE_LOG_DIR error log LogLevel warn CustomLog APACHE_LOG_DIR access log combined lt VirtualHost gt Listing 19 6 Apache configuration Um die Konfiguration zu aktivieren muss der Webserver neu gestartet werden gt sudo service apache2 restart Listing 19 7 Apache restart Cygnet sollte nun f r einen Webbrowser unter http localhost erreichbar sein 19 4 Optional IMV Authentisierung Warnung zu Sicherheitsinstruktionen Die folgenden Konfigurationen gehen von einem Standardsystem aus und sind m glicherweise unvollst ndig oder veraltet Die n tigen Kon figurationen k nnen auf Ihrem System abweichen Bitte gehen Sie vorsichtig vor und kon sultieren Sie die Apache Dokumentation Damit nur ein IMV eine Cygnet Session starten bzw beenden kann muss der Zugriff auf die URLs cmd beschr nkt werden Da f r das Projekt eine SQlite Datenbank verwendet wurde ist davon auszugehen das sowohl Cygnet als auch alle IMVs auf ein und derselben Maschine ausgef hrt werden Es reicht daher aus den Zugriff auf die URLs nur von localhost zu erlauben Das kann mit einer zus tzlichen Direktive in der Apache Konfiguration realisiert werden innerhalb des bestehenden VirtualHosts lt Location cmd gt Order deny allow allow from 127
35. HSR HOCHSCHULE F R TECHNIK Institute for RAPPERSWIL Internet Technologies E al and Applications Cygnet Bachelorarbeit Bachelorarbeit FS2013 Studenten Stefan Rohner Marco Tanner Betreuender Dozent Prof Dr Andreas Steffen Betreuer Tobias Brunner Gegenleser Prof Stefan Keller Experte Dr Ralf Hauser Bachelorarbeit Malware DB Management Tool Cygnet Abstract Ausgangslage Jeder Informatikbetreiber muss sich heute mit der Bring Your Own Device BYOD The matik befassen da die Mitarbeiter mit ihren privaten Notebooks Tablets oder Smartphones auf die Netzwerkdienste ihrer Organisation zugreifen m chten Dies birgt Risiken da die se Ger te nur teilweise kontrolliert werden k nnen Es k nnen aufgrund der vielen unter schiedlichen Ger te und Client Betriebssysteme nur sehr schwer einheitliche Richtlinien f r die Benutzung der Dienste erstellt werden Durch den gleichzeitigen privaten Einsatz der Ger te kann es zu unfreiwilligen Datenfreigaben Leaks kommen Malware die sich auf Client Ger ten w hrend dem privaten Gebrauch einnistet kann sich w hrend der gesch ftli chen Verwendung im Firmennetzwerk verbreiten Die strongSwan VPN L sung versucht mit Implementierung des Trusted Network Connect Standards eine Milderung dieses Problems zu erreichen Die vorliegende Arbeit soll eine M glichkeit bieten innerhalb einer BYOD Umgebung eine m glichst einheitliche Richtlinie f r alle Ger te zu konfi
36. L 79 rec_fail integer 80 rec_noresult integer 81 UNIQUE policy group_id 82 83 CREATE TABLE identities 84 id integer NOT NULL PRIMARY KEY 85 value text NOT NULL 86 5 87 CREATE TABLE sessions 88 id integer NOT NULL PRIMARY KEY 89 connection integer NOT NULL 90 device integer NOT NULL REFERENCES devices id 91 identity integer NOT NULL REFERENCES identities id 92 time datetime NOT NULL 93 rec integer 94 95 CREATE TABLE workitems 96 id integer NOT NULL PRIMARY KEY 97 enforcement integer NOT NULL REFERENCES enforcements id 98 session integer NOT NULL REFERENCES sessions id 99 type integer NOT NULL 00 argument text NOT NULL 01 fail integer 02 noresult integer 03 result text 04 recommendation integer 05 file_id integer REFERENCES files id 06 dir_id integer REFERENCES directories id 07 08 CREATE TABLE results 09 id integer NOT NULL PRIMARY KEY 10 session integer NOT NULL REFERENCES sessions id 1 policy integer NOT NULL REFERENCES policies id 12 result text NOT NULL 13 rec integer NOT NULL 14 architecture models sql 13 Juni 2013 Seite 98 118 PEP 8 Title Style Guide for Python Code Version 68852 Last Modified 2009 01 22 09 36 39 0100 Thu 22 Jan 2009 Author Guido van Rossum lt guido at python org gt Barry Warsaw
37. Missing Update Pr ft ob alle installierten Softwarepakete etwa aus dem Google Play Store auf dem aktu ellsten Stand sind Schl gt fehl wenn ein Update fehlt Missing Security Update Wie Missing Update pr ft aber nur auf sicherheitsrelevante Updates Nicht sicherheitsrele vante Updates d rfen fehlen und die Policy ist trotzdem erfolgreich Blacklisted Package Pr ft ob ein Softwarepaket installiert wurde das vom Administrator auf die Blacklist gesetzt wurde OSSettings Der IMV kontrolliert ob gewisse Betriebssystemoptionen korrekt gesetzt sind Ist von der strongSwan Implementation abh ngig 13 Juni 2013 Seite 71 118 Bachelorarbeit Malware DB Management Tool Cygnet Deny Diese Policy pr ft nichts Sie schl gt per Definition fehl und dient haupts chlich zum definie ren einer Ger te Blacklist 21 4 Enforcements Als dritter und letzter Schritt m ssen die erstellen Gruppen und Policies einander zugeordnet werden Dies kann im Navigationspunkt Enforcements gemacht werden Ein Enforcement setzt eine Policy auf einer Gruppe um cygnet New enforcement Mozilla Firefox File Edit View History Bookmarks Tools Help cygnet Newenforcement K localhost f ts adc CHE Cool O Overview New enforcement 4 Groups A Policies E Enforcements Enforcement El Enforcement Info B Devices Policy Webservers a ft Packages There are no entries Products Group Studenten 3 fm Files Statistic
38. None A bare except clause will catch SystemExit and KeyboardInterrupt exceptions making it harder to interrupt a program with Control C and can disguise other problems If you want to catch all exceptions that signal program errors use except Exception A good rule of thumb is to limit use of bare except clauses to two cases 1 If the exception handler will be printing out or logging the traceback at least the user will be aware that an error has occurred 2 If the code needs to do some cleanup work but then lets the exception propagate upwards with raise try finally is a better way to handle this case Additionally for all try except clauses limit the try cause to the absolute minimum amount of code necessary Again this avoids masking bugs Yes try value collection key except KeyError return key_not_found key else return handle_value value No try Too broad return handle_value collection key except KeyError Will also catch KeyError raised by handle_value return key_not_found key Use string methods instead of the string module String methods are always much faster and share the same API with unicode strings Override this rule if backward compatibility with Pythons older than 2 0 is required Use startswith and endswith instead of string slicing to check for prefixes or suffixes startswith and endswith are cleaner and less error prone For example
39. Qualitatsmassnahmen Definieren von Qualitatsmass Elaboration 1 1 amp Coderichtlinien nahmen und Erarbeiten von Co dierungsrichtlinen 04 Zeitplanung Arbeitszeiteneinteilung Elaboration 1 1 05 Infrastruktur Einrichten der Infrastruktur Elaboration 1 2 06 MS1 Review Projektplan Review und Korrektur Projekt Elaboration 1 1 plan 1x Requirements 10 Use Case brief Erarbeiten aller Use Cases Elaboration 1 2 11 Supplementary Spec Erfassen der nicht funktionalen Elaboration 1 2 Anforderungen 2x Analyse 20 Domain Model Domain Model aus Use Cases Elaboration 1 1 ausarbeiten 21 System Sequenzdiagram Darstellen der wichtigsten inter Elaboration 1 1 me nen Ablaufe 22 Analyse Policy Ausarbeiten der BYOD Policy Elaboration 1 1 Rule Datenbankschnittstelle 23 Externes Design Ul Erstellen der Paper Prototypes Elaboration 1 2 24 MS2 Review Require Review und Korrektur Require Elaboration 1 1 ments Analyse ments Analyse 3x Design 30 Design Model Erstellen des Klassendia Elaboration 2 2 gramms 31 Logische Architektur Festlegen der logischen Struk Elaboration 2 1 tur 32 Internes Design Internes Design festlegen Elaboration 2 2 33 MS3 Review Design Review und Korrektur Architek Elaboration 2 2 tur Design Tabelle 24 2 Arbeitspakete Teil 1 13 Juni 2013 Seite 84 118 Bachelorarbeit Malware DB Management Tool Cygnet
40. ach Auswahl einer Gruppe kann er neben Name und Beschreibung auch die Zugeh rigkeit der Elterngruppe ndern Im unteren Bereich k nnen die Ger te eygnet Group Management Group Management Cam Group Devices default administrators developer e software engineers 4 erp designer field staff whitelisted devices software engineer Group Info Assign Devices Device Pool stes hte andi android lexusnexus tuxator samson s galaX delete group select a parental group from the drop down menu if this is a main group choose NONE Assigned Devices freddy FireFone ubuntool_ws Abbildung 10 3 Gruppenansicht dieser Gruppe hinzugef gt oder entfernt werden 13 Juni 2013 Seite 35 118 Bachelorarbeit Malware DB Management Tool Cygnet 10 1 4 Policy Management eygnet Policies Policy Management o Overview 16 Policy 2 HR Policies a Devices Policy Groups Name Type enter port number h Packages ne Arguments range here a Products Wa OS misc e g 100 1000 Policy 1 Policy 3 Pefault Action 4 Statistics Policy n Group max age Fail Action Default Action default developer erp designer field staff customized action customized action software engineers whitelisted devices Abbildung 10 4 Policyansicht In diesem Bereich verwaltet der Administrator seine Policies Bei den allgemeinen Informa tionen Name Typ
41. agement Tool Cygnet 9 Policy Management Als Policy wird eine einzelne Regel bezeichnet deren Bedingung ein Client zu erf llen hat um ins interne Netzwerk vorgelassen zu werden Die folgenden Typen von Policies sind zur Zeit definiert ID Name Parameter String 0 File Hash File ID 1 Dir Hash Directory ID 2 Listening Port TCP Port Range 3 Listening Port UDP Port Range 4 File Exist File ID 5 Not File Exist File ID 6 Missing Update 7 Missing Security Update 8 Blacklisted Package 9 OS Settings 10 Deny Tabelle 9 1 Policy Typen FileHash Pr ft ob ein File ver ndert wurde indem es seinen Hash mit einem Refe renzwert aus der Datenbank vergleicht DirHash Vergleicht alle FileHashes aller bekannten Dateien im gegebenen Verzeichnis mit den entsprechenden Referenzwerten ListeningPort TCP UDP Pr ft ob auf der angegebenen Port Range Listening Sockets registriert wurden Der Range Parameter h lt sich dabei an das Format d 1 5 d 1 5 Ad 1 5 d 1 5 7 FileExist Pr ft ob die angegebene Datei existiert NotFileExist Pr ft ob die angegebene Datei NICHT existiert MissingUpdate Pr ft ob alle installierten Pakete auf der aktuellsten Version sind MissingSecurityUpdate Pr ft ob alle installierten Pakete die letzten Security Updates erhalten haben BlacklistedPackage Pr ft ob ein unerlaubtes Paket installiert ist OSSettings Kontrolliert
42. aradigma gestaltet werden z B http domain com devices Device ID details 13 Juni 2013 Seite 15 118 Bachelorarbeit Malware DB Management Tool Cygnet 4 2 3 S2 Einfache Analyse f r Administrator Wenn ein Kunde Client sich nicht beim Netzwerk einloggen kann soll es f r den Administra tor einfach ersichtlich sein welche Policies auf den Client wirken und welche davon f r den Misserfolg verantwortlich ist damit dem Kunden in kurzer Zeit geholfen werden kann 4 2 4 S3 Internationalisierung Die Applikation soll internationalisiert sein alle Meldungen und Beschriftungen sollen in aus tauschbaren Resource Files gespeichert sein Die Lokalisierung kann so zu einem sp te ren Zeitpunkt einfach nachgeholt werden 4 3 Kann Kriterien 4 3 1 KO Benutzerunterst tzung So weit m glich unterst tzt Cygnet die Aktionen des Benutzers Das heisst dass vom Be nutzer auszuf llendende Felder mit sinnvollen Standardwerten bef llt sein sollen und dass die Eingaben des Benutzers nach M glichkeit automatisch erg nzt werden Autocompleti on 4 3 2 K1 JSON API Damit zu einem sp teren Zeitpunkt weitere Anwendungen oder Interfaces an die cygnet DB entwickelt werden k nnen soll eine JSON API entwickelt werden damit Daten auch programmatisch ausgelesen und evtl auch geschrieben werden k nnen 4 3 3 K2 Ubuntu Clients Es soll Unterst tzung f r Ubuntu strongSwan Clients und Derivate wie Xubuntu und
43. arbeit Malware DB Management Tool Cygnet 8 Datenbanken Das Datenmodell wurde aus dem bestehenden Modell erarbeitet Namensgebung und Struk tur wurden nach M glichkeit beibehalten Die einzelnen Ausschnitte des Diagramms werden weiter unten genauer beschrieben id Integer name Text A O algorithms A id Integer id Integer name Text name Text 1 data Text id Integer parent Integer workitems id Integer sessions type Integer session Integer id Integer device Integer connectionID Integer time DateTime identity Integer recommendation Action enforcement Integer argument Text fail Action I noresult Action result String recommendation Action id Integer id Integer path Text max_age Integer We y policy Integer group Integer noresult Action fail Action id Integer results name Text type Integer argument Text noresult Action fail Action file Integer dir Integer id Integer session Integer policy Integer result String recommendation Action product file product Integer file Integer measurement Integer device Integer time Integer count Integer count_update Integer count_blacklist Integer f
44. are Pakete sind immer einem Produkt lies Betriebssystem zuge ordnet und k nnen sowohl pro Version als auch global auf eine Blacklist gesetzt werden die als Grundlage f r den Policy Typ Blacklisted Package dient 13 Juni 2013 Seite 32 118 Bachelorarbeit Malware DB Management Tool Cygnet 10 Externes Design 10 1 Paper Prototypes Die folgenden Screenshots geben einen berblick wie das Webinterface von Cygnet sp ter aussehen k nnte 10 1 1 Login eygnet Login Language y Contact CYGNET Welcome to eygnet the tool to administrate your vpn network Abbildung 10 1 Anmeldeseite Startseite der Cygnet Anwendung Der Benutzer gibt hier seine Login Daten ein 13 Juni 2013 Seite 33 118 Bachelorarbeit Malware DB Management Tool Cygnet 10 1 2 Overview 000 eygnet Overview L O gt gt JA E Dies ist die Hauptseite in welcher auf der linken Seite die Navigation zu allen wichtigen Funktionen f hrt Hier erh lt der Administrator diverse wichtige Informationen ber das lau fende System sowie Links zu informativen Webseiten Overview E Statistics Abbildung 10 2 bersicht 13 Juni 2013 Seite 34 118 Bachelorarbeit Malware DB Management Tool Cygnet 10 1 3 Gruppenverwaltung Packages amp Products e Statistics Die Gruppenverwaltung bietet dem Administrator die M glichkeit die Informationen einer Gruppe zu bearbeiten N
45. atabases 19 2 2 Passwort Das Webinterface von Cygnet ist mit einem Passwort gesch tzt Dieses Passwort muss erstmalig gesetzt werden Dies kann mit dem folgenden Befehl gemacht werden wobei meinPasswort durch das effektive Passwort zu ersetzen ist 11 gt cd var ww cygnet gt python manage py setpassword meinPasswort Listing 19 4 Set password N Wenn das Passwort nicht auf dem Terminal dargestellt werden soll kann das Passwort Argument weggelassen werden Es wird interaktiv erfragt und auf der Konsole nicht ausge geben gt cd var ww cygnet gt python manage py setpassword looking for cygnet user in database please enter a new password for cygnet user password updated successfully gt oar o M Listing 19 5 Set password II Dieser Befehl kann auch nachtr glich verwendet werden um das Passwort zur ckzusetzen falls es vergessen wurde 13 Juni 2013 Seite 62 118 CO o Jo Om bk OON oO oO OD Jo om bk ON mW D So h Bachelorarbeit Malware DB Management Tool Cygnet 19 3 Konfiguration Apache Nun muss die Apache Konfiguration angepasst werden Davon ausgehend dass Cygnet die einzige Web Applikation auf dem Server ist kann das in der Datei etc apache2 sites available default gemacht werden WSGIScriptAlias var ww cygnet wsgi py WSGIPythonPath var www cygnet Alias static var ww cygnet cygapp static lt VirtualHost x 80 gt
46. beit Malware DB Management Tool Cygnet 17 2 Testlauf vom 03 Juni 2013 Ergebnisse Use Case 0 Use Case wird vollst ndig abgedeckt Use Case 1 UC1 1 Use Case wird vollst ndig abgedeckt UC1 2 Use Case wird vollst ndig abgedeckt UC1 3 Use Case wird vollst ndig abgedeckt Use Case 2 Use Case wird vollst ndig abgedeckt Tabelle 17 2 UC Test Ergebnisse 2 Alle Use Cases werden abgedeckt Die Anforderungen der Use Cases sind somit erf llt 13 Juni 2013 Seite 55 118 Bachelorarbeit Malware DB Management Tool Cygnet 18 Usability Tests Der folgende Test soll sicherstellen dass das Benutzerinterface selbsterkl rend und ver st ndlich ist ohne ein vorhandenes Wissen ber die Problemdom ne Die Instruktionen sind deshalb entsprechend detailliert verfasst und es steht ein Experte f r R ckfragen zur Verf gung 18 1 Instruktionen 18 1 1 Einleitung Sie sind ein Informatik Systemadministrator der ein Computernetzwerk verwaltet F r diese Aufgabe stehen Ihnen die folgenden Hilfsmittel zur Verf gung e Ein Internet Browser mit Cygnet Verwaltungssoftware e Das Cygnet Benutzerhandbuch als PDF e Diese Instruktionen Bitte bearbeiten Sie die folgenden Anweisungen nach bestem Wissen und Gewissen wenn m glich selbstst ndig Wenn Sie Fragen zum Test Ablauf haben stellen Sie diese bitte bevor sie fortfahren Sprechen Sie w hrend dem Arbeiten Ihre Gedankeng nge und Aktionen laut aus d h kom
47. das sich in ein strongSwan VPN ein w hlen will und von den definierten Cygnet Policies betroffen ist Cygnet Das in dieser Arbeit geplante und entwickelte Produkt Es umfasst eine Web Applikation zur Verwaltung von Policies und eine Schnittstelle zu den strongSwan IMVs Benutzer Der Benutzer von Cygnet Gem ss Anforderungen ein System Administrator oder hn liches Enforcement Erzwingt eine Policy auf einer Gruppe von Clients IMC Information Measurement Collector Sammelt Daten auf dem Client und sendet diese an den IMV zur Verifizierung Erzwingt Policies auf Clientseite IMV Information Measurement Verifier Empf ngt Informationen vom IMC und verifiziert die se Erzwingt Policies auf Serverseite Package Ein Software Paket das auf einem Client installiert ist Kann auf eine schwarze Liste gesetzt werden Policy Eine Richtlinie die ein Client einzuhalten hat wenn er sich ins VPN einw hlen will Product Ein Produkt bzw Betriebssystem das auf einem Client installiert ist strongSwan Eine in C geschriebene Open Source IPSec Implementierung f r Linux und Android TNC Server Trusted Network Connect Server Eine Architektur der Trusted Computing Group f r Network Access Control Der dazugeh rige Server ist im Falle von strongSwan die Verwaltungsinstanz der IMVs 13 Juni 2013 Seite 93 118 Bachelorarbeit Malware DB Management Tool Cygnet e VPN Virtual Private Network Eine verschl sselte Verbind
48. e public which are part of the subclass API and which are truly only to be used by your base class With this in mind here are the Pythonic guidelines Public attributes should have no leading underscores H your public attribute name collides with a reserved keyword append a single trailing underscore to your attribute name This is preferable to an abbreviation or corrupted spelling However notwithstanding this rule cls is the preferred spelling for any variable or argument which is known to be a class especially the first argument to a class method Note 1 See the argument name recommendation above for class methods For simple public data attributes it is best to expose just the attribute name without complicated accessor mutator methods Keep in mind that Python provides an easy path to future enhancement should you find that a simple data attribute needs to grow functional behavior In that case use properties to hide functional implementation behind simple data attribute access syntax Note 1 Properties only work on new style classes Note 2 Try to keep the functional behavior side effect free although side effects such as caching are generally fine Note 3 Avoid using properties for computationally expensive operations the attribute notation makes the caller believe that access is relatively cheap If your class is intended to be subclassed and you have attributes that you do not want subclasses
49. ee e SC 63 19 3 1MV Basic AUT 2 Sok Aedes 2 ta tek a o Bibi 64 19 10 HIRassWd as dos aa a ger ER e EE Sos ars See Blass 64 13 Juni 2013 Seite 96 118 00 Jo om bk Go MM zz GO oO OD Jo Om FWD Q o o o o Oo Oo o o oo bk Ek RRR bk bk Fb Ek o o oO o oo G DD o oh MMMbhM MM MM YD SCO OD Jo Om AON OO oO Oo NO om bk Go DOG OD NO T bk ON CO oO OD Jo Om P oh OC Bachelorarbeit Malware DB Management Tool Cygnet B Listing Datenmodell CREATE TABLE products id integer NOT NULL PRIMARY KEY name text NOT NULL CREATE TABLE devices id integer NOT NULL PRIMARY KEY value text NOT NULL description text product_id integer NOT NULL REFERENCES products id created datetime CREATE TABLE groups_members id integer NOT NULL PRIMARY KEY group_id integer NOT NULL device_id integer NOT NULL REFERENCES devices id UNIQUE group_id device_id CREATE TABLE groups_product_defaults id integer NOT NULL PRIMARY KEY group_id integer NOT NULL product_id integer NOT NULL REFERENCES products id UNIQUE group_id product_id CREATE TABLE groups id integer NOT NULL PRIMARY KEY name varchar 50 NOT NULL parent integer d CREATE TABLE directories id integer NOT NULL PRIMARY KEY path text NOT NULL UNIQUE CREATE TABLE files id integer NOT NULL PRIMARY KEY dir integer NOT NULL REFERENCES directories id name t
50. esch ftsleiter in seiner Freizeit gerne verschiedenste Games und andere Apps aus die teilweise versuchen ihn zu In App K ufen zu bewegen Bild http public domain photos com 13 Juni 2013 Seite 12 118 Bachelorarbeit Malware DB Management Tool Cygnet 3 Use Cases 3 1 Aktoren amp Stakeholder Aktor Stakeholder Interessen System Cygnet M chte jederzeit korrekte konsistente Daten beinhalten Administrator M chte Clients seines strongSwan Netzwerks m glichst einfach verwalten strongSwan IMV M chte Logins von strongSwan Clients und die zugeh rigen Si cherheitschecks abwickeln Android Benutzer M chte sich m glichst schnell und jederzeit in das Netz einw hlen Tabelle 3 1 Aktoren amp Stakeholder 3 2 UCO Login strongSwan Client Ein strongSwan IMV beginnt mit einem Verbindungsaufbau mit einem Client Mittels der Android ID kann er sich die auszuf hrenden Pr fungen f r das Ger t bei Cygnet abholen Er f hrt die Checks durch und schreibt deren Resultate in die passende Cygnet Tabelle Anhand dieser Ergebnisse kann entschieden werden ob das Ger t ins Netz eingelassen wird oder nicht Wenn der Login Vorgang abgeschlossen ist meldet dies der IMV bei Cyg net Cygnet aktualisiert dann anhand der Resultate die Historie des Ger ts und die Policy Bestimmungen f r zuk nftige Login Versuche 3 3 UC1 Einrichten einer Policy Der Administrator m chte ein Regelwerk aufs
51. ext NOT NULL 1 CREATE TABLE algorithms id integer NOT NULL PRIMARY KEY name varchar 20 NOT NULL E CREATE TABLE file_hashes id integer NOT NULL PRIMARY KEY file integer NOT NULL REFERENCES files id product integer NOT NULL REFERENCES products id key integer NOT NULL algo integer NOT NULL REFERENCES algorithms id hash blob NOT NULL CREATE TABLE packages id integer NOT NULL PRIMARY KEY name text NOT NULL UNIQUE blacklist integer NOT NULL CREATE TABLE versions id integer NOT NULL PRIMARY KEY package integer NOT NULL REFERENCES packages id product integer NOT NULL REFERENCES products id release text NOT NULL security bool NOT NULL 13 Juni 2013 Seite 97 118 61 Bachelorarbeit Malware DB Management Tool Cygnet time datetime NOT NULL 62 blacklist integer 63 64 CREATE TABLE policies 65 id integer NOT NULL PRIMARY KEY 66 type integer NOT NULL 67 name varchar 100 NOT NULL UNIQUE 68 argument text 69 rec_fail integer NOT NULL 70 rec_noresult integer NOT NULL 71 file integer REFERENCES files id 72 dir integer REFERENCES directories id 731 74 CREATE TABLE enforcements 75 id integer NOT NULL PRIMARY KEY 76 policy integer NOT NULL REFERENCES policies id 77 group_id integer NOT NULL REFERENCES groups id 78 max_age integer NOT NUL
52. gurieren die von strongSwan durchgesetzt werden kann Technologie Cygnet ist als web basierte Applikation realisiert um die Richtlinien zu definieren Diese speichert Daten in einer SQLite Datenbank welche gleichzeitig zum Datenaustausch mit strongSwan dient F r die Webapplikation wurde auf das Python Framework Django gesetzt in Kombination mit JQuery f r clientseitigen Code Die Applikation ist f r den Einsatz auf ei nem Apache Webserver gedacht Bei der Umsetzung wurde auf eine m glichst generische Implementierung geachtet Die von strongSwan eingesetzten Integrity Measurement Veri fier sind weiterhin nderungen unterworfen und auch die Liste von m glichen Richtlinien ist noch unvollst ndig Cygnet sollte dieser Dynamik gerecht werden Es wurde eine Schnitt stelle zu StrongSwan definiert und implementiert um Arbeitsschritte zwischen Cygnet und strongSwan zu bermitteln und Resultate auszuwerten Dazu geh rt eine Webapplikation um die Richtlinien zu konfigurieren Ergebnis Als Ergebnis liegt eine leicht bedienbare ansprechende Applikation vor die einem Admi nistrator flexible M glichkeiten bietet eine umfassende Sicherheitsrichtlinie f r die Clients seines Netzwerks zu konfigurieren und durchzusetzen 13 Juni 2013 Seite 2 118 Bachelorarbeit Malware DB Management Tool Cygnet Ausblick Die vorliegende Arbeit hatte zum Ziel eine Erweiterung zu strongSwan zu sein daher exis tiert eine gewisse Kopplung zwische
53. h f r den Benutzer responsive anf hlt L ngere Operationen sollten mit einer Art Fortschrittsanzeige visualisiert werden damit der Benutzer nicht das Gef hl bekommt die Applikation reagiere nicht mehr auf seine Eingaben 5 2 Mengenanforderung F r ein grosses VPN Netzwerk k nnen tausende Ger te einen Zugang haben oder bereits mit dem Netzwerk verbunden sein Die Anzahl gleichzeitiger Logins d rfte sich aber selbst bei einem solchen Netzwerk im Rahmen von 1 bis maximal 5 bewegen Diese m ssen ge m ss den oben beschriebenen Leistungsanforderungen abgefertigt werden k nnen Die Datenmenge h ngt davon ab wieviele Ger te und Softwarepakete verwaltet bzw kon trolliert werden Die Anzahl Eintr ge pro Tabelle wird aber kleiner als 100 000 sein was bei weniger als 20 Tabellen selbst f r SQLite als kleinere Datenbank gewertet werden kann 13 Juni 2013 Seite 17 118 Bachelorarbeit Malware DB Management Tool Cygnet 5 3 Qualit tsanforderungen Die geplante Software soll nach der ISO Norm 9126 entwickelt werden Es werden die folgenden Qualit tsmerkmale definiert und umgesetzt 5 3 1 Funktionalit t Angemessenheit Die Applikation soll m glichst alle der genannten Anforderungen erf llen Allf llige weite re Funktionen k nnen hinzugef gt werden falls der Zeitplan es zul sst Dennoch soll die Applikation und die Datenbank schlank und bersichtlich bleiben Richtigkeit S mtliche Inhalte der Datenbank s
54. hr einfliessen konnten 15 1 Weitere Policy Typen dynamische Typen Die Liste der Policy Typen ist momentan hard codiert und bindet die Implementationen von Cygnet und strongswan stark aneinander Die Liste kann auch nicht ver ndert oder erweitert werden ohne den Code an beiden Orten ndern zu m ssen Sinnvoll w re daher die Typen ebenfalls als Tabelle in der Datenbank zu speichern vom Namen bis hin zum Argument und dessen Format 15 2 Lokalisierung Mit der Internationalisierung der Applikation ist der Grundstein f r die Lokalisierung bereits gelegt Nun m ssen noch die konkreten bersetzungen geschrieben werden und eine M g lichkeit f r den Benutzer die Sprache umzustellen eingebaut werden 15 3 Bearbeitung von Enforcements in der Policy Ansicht Es w re f r die Usability von Vorteil wenn man die Enforcements direkt in der Policy Ansicht bearbeiten k nnte beispielsweise mit einer Enforcement Tabelle pro Policy in der man die 1 n Beziehung direkt sieht Der Nutzer kann den mentalen Link zwischen Policy und Gruppe besser machen wenn er die soeben erstellte Policy direkt auf eine oder mehrere Gruppe anwenden kann Auch f r eine sp tere Einarbeitung w re diese Darstellung bersichtlicher 15 4 Unterst tzung f r l ngere Sessions Cygnet geht davon aus dass das Assessment des Clients innert kurzer Zeit geschieht L nger dauernde oder kontinuierliche Messungen wie das vergleichbare Produkte von Mi crosoft bereits
55. i 2013 Seite 41 118 Bachelorarbeit Malware DB Management Tool Cygnet 11 4 2 Gruppendetail e URL groups lt group gt e Verb GET e Parameter Methode Name Beschreibung Format REST group ID der Gruppe d e Returns Response Code HTTP 200 OK x HTTP 404 No such group Response Format HTML 11 4 3 Neue Gruppe e URL groups add e Verb GET e Parameter Keine e Returns Response Code HTTP 200 OK Response Format HTML 11 4 4 Gruppe speichern e URL groups save e Verb POST e Parameter Methode Name Beschreibung Format POST groupld ID der Gruppe optional d POST parent ID der Parent Gruppe optional d POST name Name der Gruppe bs 1 50 POST memberlist IDs von Member Devices d d d e Returns Response Code x HTTP 302 Found Redirect zu groups lt groupID gt Response Format N A 13 Juni 2013 Seite 42 118 Bachelorarbeit Malware DB Management Tool Cygnet 11 4 5 Gruppe l schen e URL groups lt group gt delete e Verb POST e Parameter Methode Name Beschreibung Format POST groupld ID der Gruppe d e Returns Response Code x HTTP 302 Found Redirect zu groups Response Format N A 11 5 API Views Die API Views dienen als Schnittstelle zwischen dem Management IMV und Cygnet Ein Client sollte sich an folgende Definitionen halten 11 5 1 Start Session e URL cmd start_session e Verb HEAD GET
56. iately before the open parenthesis that starts the argument list of a function call Yes spam 1 No spam 1 Immediately before the open parenthesis that starts an indexing or slicing Yes dict key list index No dict key list index More than one space around an assignment or other operator to align it with another Yes x 1 y 2 long_variable 3 No x y long_variable m non UN e Other Recommendations Always surround these binary operators with a single space on either side assignment augmented assignment etc comparisons lt gt lt gt lt gt in not in is is not Booleans and or not Use spaces around arithmetic operators Yes LS 41 submitted 1 X Xx x2 1 hypot2 x x Xx y y c a b x a b No i i 1 submitted 1 x xx2 1 hypot2 x x yxy c a b x a b Don t use spaces around the sign when used to indicate a keyword argument or a default parameter value Yes def complex real imag 0 0 return magic r real i imag No def complex real imag 0 0 return magic r real i imag Compound statements multiple statements on the same line are generally discouraged Yes if foo blah do_blah_thing do_one do_two do_three Rather not if foo blah do_blah_thing do_one do_two do_three While sometimes it s okay to put an if for while with a s
57. implementieren werden nicht unterst tzt Als Beispiel sei hier eine konti nuierliche Messung genannt die regelm ssig den Status der Firewall berwacht und die VPN Verbindung trennt wenn die Firewall deaktiviert wird 13 Juni 2013 Seite 48 118 0 JO Om bk o M L M OO 0 Bachelorarbeit Malware DB Management Tool Cygnet 15 5 Generierung von Formularen und Auto Validierung Die Erzeugung von Formularen und deren Input Validierung wird von Django vereinfacht an geboten und wurde bei dieser Arbeit nicht eingesetzt F r zuk nftige Versionen von Cygnet w re es attraktiver auf die vorhanden Werkzeuge zu setzen anstatt das Rad selber neu zu erfinden 15 6 Action als Enum Durch die ungl ckliche Definition der Actions im Code ben tigt es viel Code um aus dem numerischen Wert in der Datenbank wieder einen lesbaren String zu machen Besser w re das Folgende gewesen was nicht nur weniger Code ben tigt h tte sondern auch besser internationalisierbar gewesen w re NONE 0 ALLOW ISOLATE BLOCK ol CHOICES NONE _ None ALLOW _ Allow ISOLATE _ Isolate BLOCK _ Block action models IntegerField choices CHOICES Listing 15 1 Action 13 Juni 2013 Seite 49 118 HSR E HOCHSCHULE F R TECHNIK Institute for al RAPPERSWIL Internet Technologies E and Applications Cygnet Testprotokolle Bachelorarbeit FS2013 Studen
58. inen leserlichen Algorithmus Namen zu pr sentieren Eine allf llige Erweiterung der Tabelle z B bei der Verabschiedung der SHA 3 Hashfamilie kann so einfach durchgef hrt werden ID Name 65536 SHA1_IMA 32768 SHA1 16384 SHA256 8192 SHA384 0 NONE 13 Juni 2013 Seite 27 118 Bachelorarbeit Malware DB Management Tool Cygnet 8 2 Packages id Integer name Text id Integer name Text blacklist Integer versions id Integer package Integer product Integer release Text security Integer time Integer blacklist Integer Abbildung 8 3 ER Diagramm Packages Betriebssystem Softwarepakete werden in den Tabellen packages und versions gespei chert Die Spalte packages name enth lt den Paketnamen z B mysql common w hrend in der Versionstabelle jeweils die aktuellste Versionsnummer pro Betriebssystem gespeichert wird Es k nnen mehrere Versionseintr ge pro Produkt und Paket existieren je einer f r das aktuellste optionale Update und das aktuellste sicherheitsrelevante Update Ob ein Paket blacklisted ist ist ebenfalls hier gespeichert und kann somit unterschiedlich f r jedes Betriebssystem und jede Programmversion festgelegt werden 13 Juni 2013 Seite 28 118 Bachelorarbeit Malware DB Management Tool Cygnet 8 3 Gruppen amp Policies id Integer name Text devices roups Reger product_id Integer
59. isse Style Guidelines eingehalten werden damit der Code von allen Entwicklern rei bungsfrei zusammenarbeitet Um die Codequalit t hoch zu halten soll sich s mtlicher Python Sourcecode an die PEP Python Enhancement Proposal 8 Richtlinien 1 halten Diese ha ben sich in der Community etabliert und bew hrt Das komplette Dokument findet sich im Anhang Ausserdem wurde am Ende der Elaboration Phase ein Code Review geplant an welchem der Code mit den Betreuer besprochen wird 13 Juni 2013 Seite 79 118 Bachelorarbeit Malware DB Management Tool Cygnet 23 6 4 Tests Unit Testing Damit die Funktionalit t des Programms berpr ft werden kann werden w hrend dem Ent wickeln der Software vor zu Test Units erstellt Diese Tests werden jeweils vor der Imple mentierung einer weiteren Programmfunktion erstellt und anschliessend durchgef hrt Usability Tests Es wird ein potentieller Benutzer ausgew hlt welcher die Software f r die Gebrauchstaug lichkeit berpr ft W hrend diese Person spezifische Aufgaben mit der Software erledigt wird sie dabei beobachtet um Schwierigkeiten bei der Verwendung der Applikation zu fin den Systemtests Systemtests enthalten folgende Ausf hrungen e Stimmt der Login Prozess e Werden die Policy Richtlinien richtig angewendet e Sind alle Use Cases richtig implementiert 23 6 5 Versionskontrolle F r das Projekt wird ein Git Repository auf Github erstellt auf welchem der gesamte
60. iste soll jederzeit entweder manuell oder eventuell durch Anflanschen von Internet basierten Datenbanken aktuell gehalten werden k nnen Auch sollen Hash Referenzwerte von verschiedenen Versionen der Android Sys tem Software verwaltet werden k nnen Weiter soll ber Policies eingestellt werden k nnen welche Gesundheitstests beim Login in ein Firmennetz auf der Basis des fr heren Verhal tens jeweils von einem spezifischen Android Ger t verlangt werden sollen Daf r soll ein Web basiertes Management Tool entwickelt werden das zusammen mit einem Apache Webserver auf einer Linux Plattform laufen soll Die Programmier oder Skriptspra che f r diese Serveranwendung ist frei w hlbar unter der Bedingung dass nur Open Source Software Komponenten verwendet werden 22 2 2 Ziele e Einarbeiten in die Funktionalit t des Android BYOD Clients und in die Trusted Net work Connect Architektur der Trusted Computing Group e Wahl eines geeigneten Open Source Web Server Framework e Definition der BYOD Policy Rule Datenbankschnittstelle 13 Juni 2013 Seite 76 118 Bachelorarbeit Malware DB Management Tool Cygnet e Spezifikation Implementation und Test der Android BYOD Security Management Tool Funktionalit t 22 2 3 Links e Christoph B hler amp Patrick L tscher strongSwan Android 4 Client with Endpoint Assess ment HSR Studienarbeit HS12 http security hsr ch projects SA_2012_strongSwan Android4 Client with Endpoint As
61. isting 19 1 apt get Hinweis Es wird mindestens Django Version 1 5 ben tigt Diese ist bei Ubuntu 13 04 ent halten Wenn ein lteres Ubuntu wie 12 10 verwendet wird muss Django noch manuell ak tualisiert werden Siehe offizielle Django Dokumentation f r eine Anleitung 19 2 Cygnet F r die Installation von Cygnet reicht es das Archiv cygnet zip an eine geeignete Stelle z B var www zu entpacken und den Dateibesitzer auf den Apache User zu setzen gt unzip cygnet zip gt cp r cygnet var ww gt cd gt sudo chown R www data www data cygnet Listing 19 2 Copy files Thttps docs djangoproject com en dev topics instal1 13 Juni 2013 Seite 61 118 Bachelorarbeit Malware DB Management Tool Cygnet 19 2 1 Konfiguration Datenbank Cygnet wird mit zwei Datenbankdateien SQLite ausgeliefert ipsec config db und django db beide im Root Verzeichnis von cygnet zip Der Pfad zu den Datenbanken muss in der Datei var www cygnet settings py angepasst werden dazu muss der NAME Wert richtig gesetzt werden es werden keine relativen Pfad angaben unterst tzt settings py DATABASES f 2 3 4 5 default 6 ENGINE django db backends sqlite3 7 NAME var ww cygnet ipsec config db 8 10 meta 1 ENGINE django db backends sqlite3 12 NAME var ww cygnet django db 13 E Listing 19 3 D
62. it f r die C1 Anhand des Projektstatus wird entschieden wel che weiteren Features realisiert werden Nach der Iteration soll ein Release Candidate bereitstehen Transition Nach der Transition Iteration sollten allf llige Fehler beseitigt und der Code stabilisiert sein Ausserdem ist die Dokumentation der Arbeit fertiggestellt 13 Juni 2013 Seite 81 118 Bachelorarbeit Malware DB Management Tool Cygnet 24 2 Meilensteine Die folgenden Meilensteine wurde f r das Projekt definiert MS Titel Resultat Datum MS1 Projektplan Projektplan erstellt und alle Iterationen in SWO4 kl Daten geplant MS2 Anforderungen und Analyse Abschluss der Anforderungsspezifikation SWO6 und Domainanalyse MS3 Architektur Design Abschluss der Architektur und Designent SWO8 scheide MS4 End Of Elaboration Prototyp festgelegt Release 0 1a Alpha SW10 welcher die Risiken beseitigt MS5 End Of Construction 1 Release 0 1b Beta welcher die wichtigs SW14 ten Features realisiert MS6 Abgabe Release 1 0 SW17 Tabelle 24 1 Meilensteine 13 Juni 2013 Seite 82 118 24 3 Zeitplan Vorgang Aufwand W amp 2013 M r 2013 Apr 2013 Mai 2013 Jun 2013 e 1 Projektmanagement 18T 1 1 Erhalt Aufgabenstellung 2T 1 2 Projektplan IT 1 3 Risikomanagement 45 0 1 4 Qualit tsmassnahmen 4 Coderichtlinien 45 0 1 5 Zeitplanung IT 1 6 Infrastruktur 13T 2 MS1 Projektplan
63. itle cygnet Product Fedora Linux click link Delete click link Cancel addSelection id default_select label TEST GROUP click xpath button Otype button 4 click link Delete clickAndwait link Delete product assertTitle cygnet Products click css button close clickAndwait link Groups assertTitle cygnet Groups clickAndwait link TEST GROUP assertTitle cygnet Group TEST GROUP click css i icon remove icon white clickAndwait link Delete group assertTitle cygnet Groups click css button close Command v Target Find Runs 5 value Failures 0 Log Reference Ul Element Rollup Info y Clear A _____ q Ge info Executing assertTitle cygnet Product Fedora Linux info Executing click link Delete info Executing click link Cancel info Executing addSelection id default_select label TEST GROUP info Executing click xpath button type button 4 info Executing click link Delete info Executing clickAndWait link Delete product info Executing assertTitle cygnet Products info Executing click css button close info Executing clickAndWait link Groups info Executing assertTitle cygnet Groups info Executing clickAndWait link TEST GROUP info Executing JassertTitle cygnet Group TEST GROUP info Executing click css i icon remove icon white info Executing clickAndWait link Delete gr
64. ktur schon sehr fr h sehr realit tsnah definiert hatten konnten ich feststellen dass man erst beim Implementieren die Dinge aus einer anderen Sicht betrachtet und somit auf eine andere Weise gel st h tte So mit mussten wir noch bis am Schluss der Implementationsphase entscheiden ob wir gewis se Dinge noch erweitern bzw anpassen konnten oder diese ganz bleiben lassen mussten Ich finde aber wir haben eine sehr ansprechende Applikation entwickeln k nnen welche wir so gerne f r den Einsatz oder zur weiteren Entwicklung bergeben k nnen Abschliessend kann ich behaupten sehr viel dazugelernt zu haben vor allem im Bereich der Anwendung von Webtechnologien 13 Juni 2013 Seite 89 118 Bachelorarbeit Malware DB Management Tool Cygnet 26 2 Marco Tanner Die Ausschreibung der Bachelorarbeit BYOD Malware Database Management Tool for An droid hatte mich seit Bekanntgabe der Arbeiten angesprochen vor allem wegen der Frei heit eine beliebige technologische Grundlage f r das Projekt w hlen zu d rfen solange es freie Software war Zu dem Zeitpunkt hatte ich aber geplant die Arbeit als Einzelprojekt in Angriff zunehmen da sich mein SA Team aufgel st hatte Auf die Email von Stefan an alle Einzelg nger hatten wir uns zusammengesetzt und ent schieden ein Team zu bilden Obwohl es ein gewisses Risiko darstellt mit jemandem zusammenzuarbeiten den man bis her noch nicht kennt war es auf jeden Fall die richtige Entscheid
65. l Action wird empfohlen wenn der Client die Anforderung der Policy nicht erf llt Die Noresult Action wird angewendet wenn die Policy nicht auf dem Client ausgef hrt werden kann Wenn mehrere Policies auf einen Client wirken und unterschiedliche Empfehlungen abgeben wird die konservativste Empfehlung durchgesetzt BLOCK vor ISOLATE vor AL LOW NONE als Empfehlung macht vor allem in Kombination mit anderen Policies Sinn Wenn keine Policy eine Empfehlung abgibt h ngt die endg ltige Entscheidung von der StrongSwan Implementation ab 9 1 3 Enforcements Als dritter und letzter Schritt werden die Policies und Gruppen mit Enforcements verlinkt Ein Enforcement erzwingt eine Policy auf einer Gruppe Zus tzlich kann angegeben wer den wie oft eine Policy gepr ft werden soll als Anzahl Tage War eine Messung bei einem Client erfolgreich wird die Policy erst wieder gepr ft wenn die letzte Messung weiter als die angegebene Anzahl Tage zur ckliegt So kann der Login Prozess f r Clients die sich an die Regeln halten verk rzt werden Wenn das Ergebnis der letzten Messung nicht erfolgreich war oder kein Resultat vorliegt wird die Messung auf jeden Fall durchgef hrt 13 Juni 2013 Seite 31 118 Bachelorarbeit Malware DB Management Tool Cygnet F r jedes Enforcement kann die Fail oder Noresult Action berschrieben werden um je nach Gruppe unterschiedlich hart zu reagieren Per default wird die Einstellung von der gew hl
66. lags Integer ar_id Integer metadata Integer Abbildung 8 1 ER Diagramm Legende Gr n Neue Tabelle Hellgelb Bestehende Tabelle Dunkelgelb Bestehende Tabelle ver nderte Feld Definitionen Rot Bestehende neu nicht mehr ben tigte Tabelle 13 Juni 2013 Seite 26 118 Bachelorarbeit Malware DB Management Tool Cygnet 8 1 Dateihashes id Integer path Text AN id Integer name Text Lee id Integer dir Integer id Integer name Text SS name Text file hashes file Integer product Integer key Integer algorithm Integer hash Blob id Integer Abbildung 8 2 ER Diagramm Dateien amp Hashes Die in 8 1 gezeigten Tabellen enthalten die Referenzwerte f r Dateihashes die mit den effek tiven Werten auf den strongSwan Clients verglichen werden Die Dateipfade werden in den zwei Tabellen directories und files abgelegt files name ist jeweils nur der basename Suffix der Datei w hrend directories path den Ordnerpfad ohne trailing slash enth lt Die Eintr ge in file_hashes werden ber ihre Beziehung zu products einer bestimmten Betriebssystemversion zugeordnet 8 1 1 Algorithmen Die algorithms Tabelle enth lt genau die folgenden Eintr ge die Prim rschl ssel wurden aus Kompatibilit tsgr nden mit strongSwan so gew hlt Ihr Zweck ist im Wesentlichen dem Administrator im Web Frontend e
67. ld Integer description Text name Text value Blob parent Integer created DateTime EE data Text id Integer enforcements sessions a id Integer id Integer max_age Integer device Integer id Integer policy Integer connectionID Integer type Integer group Integer time DateTime session Integer noresult Action identity Integer enforcement Integer fail Action recommendation Action argument Text fall Action noresult Action result String recommendation Action results id Integer e name Text E Ren type Integer policy Integer argument Text noresult Action result String fail Action recommendation Action file i Integer dir Integer Abbildung 8 4 ER Diagramm Policies Das Kernst ck von Cygnet Die genauen Details sind in einem separaten Kapitel 9 Policy Management auf Seite 30 beschrieben 8 4 Django Metadaten Das Django Framework ben tigt einige eigene Datenbanktabellen um interne Metadaten zu speichern Da mit Cygnet und den strongSwan IMVs bereits zwei Aktoren auf dersel ben Datenbasis arbeiten wurde ein Datenbankrouter in Python realisiert der alle Django Metadaten in eine separate SQLite Datenbank auslagert und Zugriffe darauf entsprechend umlenkt 13 Juni 2013 Seite 29 118 Bachelorarbeit Malware DB Man
68. le Definition der Daten halten Die komplette Definition in g ngiger SQL Notation ist daher im Anhang Seite 93 angeh ngt 11 3 Views und URLs In diesem Abschnitt sind die URLs aufgef hrt die in Cygnet aufrufbar sind Eine URL be schreibt bei Django per Definition nicht eine Datei sondern einen Python Funktionsaufruf eine View der eine HttpResponse kreiert und zur ckgibt Jede Benutzerview ist im Code in mehrere Phasen gegliedert 1 HTTP Operation pr fen implizit via Decorator Parameter parsen amp pr fen Datenbank Operation ausf hren 2 3 4 5 Antwort Kontext aufbauen Antwort an Client senden 13 Juni 2013 Seite 40 118 Bachelorarbeit Malware DB Management Tool Cygnet 11 4 User Views Dies sind die Views welche dem Benutzer pr sentiert werden Sie machen das Frontend f r den Benutzer aus Auf den folgenden Seiten werden exemplarisch die Views f r die Gruppenverwaltung dokumentiert URL Beschreibung groups Gruppen bersicht groups lt ID gt Detailansicht Gruppe groups add Neue Gruppe groups save Gruppe speichern aktualisieren groups lt ID gt delete Gruppe l schen Eine passende Struktur von Views existiert jeweils f r devices policies enforcements packages products und files 11 4 1 Gruppen bersicht e URL groups e Verb GET e Parameter Keine e Returns Response Code x HTTP 200 OK Response Format HTML 13 Jun
69. ll nicht nur als Grundlage zur Entwicklung dienen sondern auch als Nachschlagewerk f r sp tere Entwickler 13 Juni 2013 Seite 19 118 Bachelorarbeit Malware DB Management Tool Cygnet Modifizierbarkeit Es soll bei der Entwicklung darauf geachtet werden zuk nftige Erweiterungen nicht durch Design Entscheide auszuschliessen Einen Teil davon wird durch die geplante JSON API bereits erf llt 5 3 7 Testbarkeit Der geschriebene Code wird mittels Unit Tests getestet Falls zu einem sp teren Zeitpunkt Features hinzugef gt oder ver ndert werden kann mithilfe dieser Tests sichergestellt wer den dass die restlichen Funktionen weiterhin korrekt ausgef hrt werden 5 3 8 bertragbarkeit Anpassbarkeit Die Applikation soll einfach an pers nliche Bed rfnisse angepasst werden k nnen Die meis ten heute g ngigen Browser unterst tzen Custom Stylesheets die viele Anderungen am Look and feel erm glichen Die Applikation soll internationalisiert entwickelt werden Be zeichnungen und Fehlermeldungen sollen in separate Dateien ausgelagert werden die eine sp tere Erweiterung um zus tzliche Sprachen m glich machen Installierbarkeit Die ben tigte Software f r die Applikation sind die folgenden Programme e Apache Webserver e Python 2 7 e Django 1 5 e Ein Webbrowser Alle diese Programme k nnen unter Linux mithilfe eines Paket Managers apt yum auf einfachste Art installiert werden Konformit t Der Python Code rich
70. ls Help cygnet Package abrowser K E localhost p es EJ Google O Overview ae Package abrowser 4 Groups A Policies El Enforcements Package a Package Info Devices Name abrowser Packages a Products Blacklisted a Files Page 101126 Statistics Versions e abrowser Version os Security Registered on Blacklisted abrowser 3 5 0 6 15 2ubuntu9 1 Ubuntu 12 04 Yes Jan 2 2013 12 15 a m No abrowser 3 5 branding abrowser branding acpid adblock plus aiccu SE S Abbildung 21 7 Cygnet Neues Paket Ein Paket kann entweder global blockiert werden oder nur einzelne Versionen davon Wenn die Einstellung global f r das Paket ver ndert wird werden die allenfalls gemachten Konfi gurationen der einzelnen Versionen berschrieben 21 8 Produkte Products Die hier aufgelisteten Produkte sind alle Client Betriebssysteme die bisher bei Clients in stalliert waren Die Liste wird automatisch erg nzt wenn Clients mit einem anderen Be triebssystem auftauchen In diesem Bereich k nnen Standard Gruppen zu Betriebssyste men zugeordnet werden Das bedeutet dass wenn ein neuer Client mit einem bestimm ten Betriebssystem zum ersten Mal eine Verbindung aufbaut werden ihm automatisch die Standard Gruppen des Produkts zugeordnet So kann eine Default Policy f r unterschiedli che Betriebssysteme konfiguriert werden Wenn ein Client ein bisher unbekanntes Betriebssystem installiert hat wird er in die
71. mall body on the same line never do this for multi clause statements Also avoid folding such long lines Rather not if foo blah do_blah_thing for x in lst total x while t lt 10 t delay Definitely not if foo blah do_blah_thing else do_non_blah_thing try something finally cleanup do_one do_two do_three long argument list like this if foo blah one two three Comments Comments that contradict the code are worse than no comments Always make a priority of keeping the comments up to date when the code changes Comments should be complete sentences If a comment is a phrase or sentence its first word should be capitalized unless it is an identifier that begins with a lower case letter never alter the case of identifiers If a comment is short the period at the end can be omitted Block comments generally consist of one or more paragraphs built out of complete sentences and each sentence should end in a period You should use two spaces after a sentence ending period When writing English Strunk and White apply Python coders from non English speaking countries please write your comments in English unless you are 120 sure that the code will never be read by people who don t speak your language Block Comments Block comments generally apply to some or all code that follows them and are indented to the same level as that code Each line of a block comment
72. n Zu griff mitgeteilt Auf dem PDP existieren mehrere sogenannte Integrity Measurement Verifier IMV f r die unterschiedlichen Sicherheitskomponenten Sie vergleichen die bermittelten Messwerte anhand der in den Policies festgelegten Regeln und teilen ihr Ergebnis dem TNC Server im PDP mit Dieser trifft mit den Teilergebnissen eine Gesamtentscheidung ber die Integrit t des Rechnersystems und teilt diese Entscheidung dem Policy Enforcement Point mit 6 1 2 Policy Enforcement Point PEP Stellt das TNC Element am Eintrittspunkt des Netzwerkes dar Seine Aufgaben sind die Ent gegennahme und Weiterleitung von Verbindungsanfragen sowie die Ausf hrung der Hand lungsentscheidung des PDPs 6 1 3 Access Requestor AR Das Rechnersystem Ober das eine Netzwerkverbindung zu einem TNC Netzwerk aufge baut werden soll wird Access Requestor genannt Auf dem Access Requestor befinden sich TNC Komponenten f r Verbindungsanfrage Messwert bermittlung und Messung In dieser Arbeit beschr nken wir den AR auf ein Android Ger t oder einen Rechner mit einer installierten Ubuntu Distribution 13 Juni 2013 Seite 24 118 Bachelorarbeit Malware DB Management Tool Cygnet 7 Ziele amp Prinzipien 7 1 Bestehendes System Zu Beginn der Bachelorarbeit existierte bereits eine Applikation die einen Teil der Funk tionalit t bietet Sie bestand im Wesentlichen aus einer SQLite Datenbank sowie einem Kommandozeilentool mit welchem die Daten
73. n den beiden Produkten Es w re in Zukunft denkbar die Schnittstelle noch generischer zu spezifizieren und in Kollaboration mit der Trusted Com puting Group als Zusatz zu TNC zu definieren so dass auch andere IPSec Implementierungen mit Cygnet zusammenarbeiten k nnten 13 Juni 2013 Seite 3 118 Bachelorarbeit Malware DB Management Tool Cygnet Erkl rung der Eigenst ndigkeit Wir erkl ren hiermit e dass wir die vorliegende Arbeit selber und ohne fremde Hilfe durchgef hrt haben aus ser derjenigen welche explizit in der Aufgabenstellung erw hnt sind oder was mit dem Betreuer schriftlich vereinbart wurde e dass wir s mtliche verwendeten Quellen erw hnt und gem ss g ngigen wissenschaft lichen Zitierregeln korrekt angegeben haben und e dass wir keine durch Copyright gesch tzten Materialien z B Bilder in dieser Arbeit in unerlaubter Weise genutzt haben Rapperswil Jona den 13 Juni 2013 Name Unterschrift Stefan Rohner Name Unterschrift Marco Tanner 13 Juni 2013 Seite 4 118 Bachelorarbeit Malware DB Management Tool Cygnet Inhaltsverzeichnis Anforderungen Einleitung Dilo ZWECK s aod sa re 1 2 Allgemeine Beschreibung Ausgangslage 2 1 Szenario 2 2 Persona IT Administrator Use Cases 3 1 Aktoren amp Stakeholder 3 2 UCO Login strongSwan Client 3 3 UC1 Einrichten einer Policy 3 4 UC2 Logs pr fen Funktionale Anforderu
74. nd der Gesch ftsleiter mit Android Smartphones ausgestattet Die Aussendienst MA s sind zus tzlich mit einem Android Tablet unterwegs Es existiert ein IPSec VPN Netzwerk das den Mitarbeitern auch von unterwegs oder vom Home Office aus Zugriff auf die internen Netzwerkressourcen erm glicht Die Netzwerkadministratoren m chten sicherstellen dass alle Android Clients den Firmenan forderungen entsprechen und keine Sicherheitsrisiken mit sich bringen Sie stellen eine Reihe von Anforderungen auf die jedes Ger t erf llen muss bevor es ins VPN Netzwerk eingelassen wird Die Aussendienstmitarbeiter d rfen keine Server Software installiert haben es sol len keine Listening Sockets vorhanden sein Software Entwickler sind von dieser Ein schr nkung nicht betroffen da sie einen SSH Server f r Ihre Arbeit ben tigen Um Sicherheitsrisiken zu vermeiden soll sichergestellt werden dass alle Mitarbeiter die neuesten Updates f r Ihre Apps installieren Software Entwickler sind teilweise auf bestimmte Versionen Ihrer Apps angewiesen aber auch sie m ssen zumindest die neuesten Sicherheitsupdates installiert haben Wenn Software Updates fehlen soll es den Benutzern doch m glich sein auf das Internet zuzugreifen um die Updates nachtr glich zu installieren Der Zugriff auf Fir menressourcen soll aber verwehrt bleiben Einige Software Entwickler haben ihr Ger t spasseshalber gerootet Diese Ger te sollen im Netzwerk nicht erlaubt
75. ngaben werden auf ihr Format hin gepr ft Der Benutzer wird bei Fehlern visuell dar ber informiert Sollte eine Transaktion fehlschlagen oder ein Default Wert eingesetzt werden soll stets die kon servative sicherere Variante gew hlt werden 5 3 3 Wiederherstellbarkeit Ein Programmabsturz soll die Datenbank in einem konsistenten Zustand belassen Ein Backup der Datenbank kann mit einer simplen File Copy Operation erstellt werden und ebenso einfach zur ckgespielt werden 5 3 4 Benutzbarkeit Verst ndlichkeit Das Webinterface soll f r einen erfahrenen Benutzer ohne Lesen des Manuals verst ndlich und intuitiv bedienbar sein F r weitere Informationen wird eine Bedienungsanleitung erstellt 5 3 5 Effizienz Zeitverhalten Siehe 5 1 Leistungsanforderung Seite 17 Verbrauchsverhalten Das Webinterface soll den Browser nicht wesentlich belasten Auch lokal ausgef hrter Javascript Code sollte auf einem zeitgem ssen Client Computer keinen nennenswerten Teil der Re chenleistung beanspruchen 5 3 6 nderbarkeit Analysierbarkeit Die Applikation soll auch nach Projektabschluss betreubar sein Daher sollen folgende An forderungen erf llt werden e Die Coding Standards sollen eingehalten werden PEP8 siehe auch Projektplan e Klassen und nicht triviale Methoden sollen im Code dokumentiert werden Doc Strings e Das Architekturdokument soll gegen Ende des Projektes dem effektiv implementier ten Programm entsprechen Es so
76. ngen 4 1 Muss Kriterien 4 2 Soll Kriterien 4 3 Kann Kriterien Nichtfunktionale Anforderungen 5 1 Leistungsanforderung 5 2 Mengenanforderung 5 3 Qualit tsanforderungen 5 4 Anforderungen an die Plattform Architektur Einf hrung 6 1 Komponenten Ziele amp Prinzipien 7 1 Bestehendes System 7 2 Flexibilit t f r Administratoren 13 Juni 2013 Seite 5 118 Bachelorarbeit Malware DB Management Tool Cygnet 8 Datenbanken 26 821 Re EE 27 8 2 PACKAGES Lot ds A rs A Era ts Bee Bo hey 28 8 3 Gruppen Policies 2 2 Hmm nn 29 8 4 Django Metadaten Ze u Sri ae RE a a Pa 29 9 Policy Management 30 9 1 Konfigurieren der Policies 31 10 Externes Design 33 1051 Paper Prototypes 32 2 Sees ae be WS ar eas PS 33 10 2 Gerienische Views an pe pose ee Be ee wee eee eal ER 38 10 3 GUI Gestaltung durch das Bootstrap Framework 38 11 Schnittstellen 39 TAD aut SENG PLOZESSS an otr a eta er Se ee ao e 39 Vise Datenmodell e biie ae a oe EE EENG 40 Leer und URLS a2 o ae e in aan ae Pi iia 40 RR Re VIEWS 4 bol EE ee Bee ted 41 SAP DANI CWS 000 fs e ee ae rn an CMe A CAE e 43 12 Input Validierung 45 13 Deployment 46 14 Entscheidungen 47 14 1 Verzicht auf Domanenmodell 47 14 2 Redundanzen in Workitems Tabelle 0 47 14 3 ee 47 14 4 Unl schbare Gruppe fi 47 15 N chste Schrit
77. nisse Die Instruktionen konnten ohne Schwierigkeiten bearbeitet werden Einzig der Wunsch nach Tooltips bei den zwei Zuweisungsbuttons in der Gruppenverwaltung kam auf Herr Baumann hat auf ein pers nliches Statement verzichtet Shttps github com tannerli cygnet commit fdec3278ecb56d3c7a4bc3d626c2ae9155273bc1 https github com tannerli cygnet doc commit 6f0f94b54c223fa4c9e4c960786d93b6f5a1bd33 13 Juni 2013 Seite 59 118 HSR E HOCHSCHULE F R TECHNIK Institute for al RAPPERSWIL Internet Technologies E and Applications Cygnet Deployment Manual Bachelorarbeit FS2013 Studenten Stefan Rohner Marco Tanner Betreuer Prof Dr Andreas Steffen Tobias Brunner Gegenleser Prof Stefan Keller Experte Dr Ralf Hauser A Co M Bachelorarbeit Malware DB Management Tool Cygnet 19 Vorgehensweise Dieses Dokument beschreibt die Vorgehensweise um die Cygnet Applikation auf einem Webserver in Betrieb zu nehmen Die Anleitung wurde mit einem Ubuntu Server 13 04 Ra ring Ringtail getestet Der Einsatz von Cygnet auf hnlichen Linux Systemen sollte kein Problem darstellen 19 1 Server Es wird ein Server ben tigt auf dem folgende Software verf gbar ist e apache2 e python e python django e libapache2 mod wsgi Um die Software zu installieren kann auf einem Terminal der folgende Befehl verwendet werden gt sudo apt get install apache2 python python django libapache2 mod wsgi L
78. ollen jederzeit konsistent und richtig sein Datenbanktrans aktionen sollen das ACID Prinzip erf llen Informationen ber Software Pakete werden von einer externen Quelle eingeholt von deren Korrektheit ausgegangen wird Interoperabilit t Die Applikation soll reibungsfrei mit der bestehende strongSwan Applikation zusammenar beiten Die Daten welche mit strongSwan ausgetauscht werden sollen dasselbe Format haben wie es derzeit implementiert ist Sicherheit Die Verbindung zur Webapplikation soll TLS gesichert stattfinden damit die Kommunikation mit den Clients verschl sselt abl uft Die Datenbank selbst ist nicht verschl sselt Der Zugriff auf die Webapplikation soll grobgranular ber Benutzer bzw Benutzergruppen gesteuert werden k nnen Es gibt mindestens einen Administrationsbenutzer und einen Readonly Benutzer 5 3 2 Zuverl ssigkeit Reife Die Applikation soll strongSwan Logins zuverl ssig und fehlerfrei abwickeln Alle Verwal tungsoperationen sollen mit dem geplanten Webinterface m glich sein Wenn der Cygnet Service nicht in Betrieb ist sollen trotzdem strongSwan Logins m glich bleiben Es wurde bewusst Norm 9126 gew hlt obwohl sie durch ISO 25000 abgel st wurde ISO 9126 ist weniger umfangreich aber dem Projektumfang angemessen 13 Juni 2013 Seite 18 118 Bachelorarbeit Malware DB Management Tool Cygnet Fehlertoleranz Die Webapplikation soll Fehler vom Benutzer nach M glichkeit erkennen Ei
79. on vorbereiten Transition 2 und halten Tabelle 24 3 Arbeitspakete Teil 2 13 Juni 2013 Seite 85 118 Bachelorarbeit Malware DB Management Tool Cygnet 25 Risikomanagement 25 1 Projektspezifische Risiken R1 Policy Rule DB Schnittstelle ist nicht praktikabel Beschreibung Ausarbeitung welche Gesundheitstests beim Login in ein Fir mennetz auf der Basis des fr heren Verhaltens jeweils von einem spezifischen Android Ger t verlangt werden sollen Massnahmen Genaue Analyse der verschiedenen Login Prozessen und Verhalten der Android Pakete Nach Erarbeiten des Konzep tes Review mit Betreuer Vorgehen bei Eintreffen Konzept berdenken und verbessern Tabelle 25 1 Risikotabelle 1 R2 Probleme mit Python Django Framework Beschreibung Die zum Teil f r die Mitarbeiter neuen Technologien ben tigen mehr Zeit f r die Einarbeitung oder unterst tzen m glicher weise geforderte Funktionen nicht Massnahmen Einarbeitung in Internet Technologien Finden von Work Arounds Zeitreserve einplanen Vorgehen bei Eintreffen Mehraufwand Tabelle 25 2 Risikotabelle 2 R3 Probleme mit der Datenbank Beschreibung Das gew hlte Datenbanksystem SQLite unterst tzt nicht al le geforderten Funktionen oder das entworfene Schema h lt Anforderungen nicht aus Massnahmen Fr hes Modellieren eines geeigneten Datenbankschemas und Erstellen eines Prototyp
80. ongswan org strongswan GitHub a Android BYOD Security based on Trusted Network Connect A Wi Trusted Network Connect bz Abbildung 21 1 Cygnet bersicht 13 Juni 2013 Seite 67 118 Bachelorarbeit Malware DB Management Tool Cygnet 21 2 Gruppen ber den ersten Navigationspunkt gelangen Sie auf die Gruppen bersicht Anfangs sind noch keine Gruppen definiert Neue Gruppen k nnen mit dem Hinzuf gen Button blaues Plus Zeichen erstellt werden cygnet Groups G localhost p gt CHR cool O Overview Groups 4 Groups A Policies El Enforcements Group a B Devices Packages Default group Products Files Statistics O ITA 2013 Abbildung 21 2 Cygnet Gruppen Eine Gruppe ist definiert ber Ihren Namen und kann eine bergeordnete Gruppe haben Ein Client der Mitglied in einer Gruppe ist ist automatisch auch Mitglied in allen berge ordneten Gruppen der Gruppe F r das Beispiel werden einzelne Gruppen f r Studenten Dozenten und Mitarbeiter definiert sowie passende Untergruppen Wenn also ein Client Mit glied der Gruppe Assistenten ist gelten f r den Client automatisch auch alle Enforcements der Gruppe Dozenten 13 Juni 2013 Seite 68 118 Bachelorarbeit Malware DB Management Tool Cygnet 2 A m JET 21 3 Richtlinien Policies Overview Groups Policies Enforcements Devices Packages Products Files Statistics Group Sekr Gr
81. operators Also beware of writing if x when you really mean if x is not None e g when testing whether a variable or argument that defaults to None was set to some other value The other value might have a type such as a container that could be false in a boolean context Use class based exceptions String exceptions in new code are forbidden because this language feature is being removed in Python 2 6 Modules or packages should define their own domain specific base exception class which should be subclassed from the built in Exception class Always include a class docstring E g class MessageError Exception Base class for errors in the email package Class naming conventions apply here although you should add the suffix Error to your exception classes if the exception is an error Non error exceptions need no special suffix When raising an exception use raise ValueError message instead of the older form raise ValueError message The paren using form is preferred because when the exception arguments are long or include string formatting you don t need to use line continuation characters thanks to the containing parentheses The older form will be removed in Python 3000 When catching exceptions mention specific exceptions whenever possible instead of using a bare except clause For example use try import platform_specific_module except ImportError platform_specific_module
82. ose for functions Modules that are designed for use via from M import should use the __all__ mechanism to prevent exporting globals or use the older convention of prefixing such globals with an underscore which you might want to do to indicate these globals are module non public Function Names Function names should be lowercase with words separated by underscores as necessary to improve readability mixedCase is allowed only in contexts where that s already the prevailing style e g threading py to retain backwards compatibility Function and method arguments Always use self for the first argument to instance methods Always use cls for the first argument to class methods If a function argument s name clashes with a reserved keyword it is generally better to append a single trailing underscore rather than use an abbreviation or spelling corruption Thus print_ is better than prnt Perhaps better is to avoid such clashes by using a synonym Method Names and Instance Variables Use the function naming rules lowercase with words separated by underscores as necessary to improve readability Use one leading underscore only for non public methods and instance variables To avoid name clashes with subclasses use two leading underscores to invoke Python s name mangling rules Python mangles these names with the class name if class Foo has an attribute named a it cannot be accessed by Foo a An insistent
83. ossum 4 http www wikipedia com wiki CamelCase 5 Barry s GNU Mailman style guide http barry warsaw us software ST YLEGUIDE txt 6 PEP 20 The Zen of Python 7 PEP 328 Imports Multi Line and Absolute Relative Copyright This document has been placed in the public domain Bachelorarbeit Malware DB Management Tool Cygnet Literaturverzeichnis 1 Python Enhancement Proposal 8 http www python org dev peps pep 0008 2 Christoph B hler amp Patrick L tscher strongSwan Android 4 Client with Endpoint Assessment HSR Studienarbeit HS12 http security hsr ch projects SA_2012_strongSwan Android4 Client with Endpoint Assessment pdf 3 Android BYOD Security based on Trusted Network Connect http wiki strongswan org projects strongswan wiki BYOD 4 Trusted Network Connect Architecture http wiki strongswan org projects strongswan wiki TrustedNetworkConnect 5 Trusted Computing Group IF IMV Specification http www trustedcomputinggroup org files static_page_files 1D8CE1B6 1A4B B294 D087F581D114F2DA TNC_IFIMV_v1_3_r13 pdf 6 Django Documentation https docs djangoproject com en 1 5 7 Bootstrap Homepage http twitter github io bootstrap index html 8 jQuery Homepage http jquery com 9 Chosen Homepage http harvesthq github io chosen 13 Juni 2013 Seite 118 118
84. oup info Executing assertTitle cygnet Groups info Executing click css button close Abbildung 16 1 Screenshot Selenium Hinweis Der Einsatz von Chosen f r alle Selektor Elemente hat das Testen mit Seleni um verunm glicht die definierten Selenium Tests dienten bis zur letzten Projektwoche als n tzliche Hilfe um Bugs zu finden aber sind jetzt nicht mehr ausf hrbar 13 Juni 2013 Seite 53 118 Bachelorarbeit Malware DB Management Tool Cygnet 17 Usecase Tests Mit der entwickelten Software sollen alle definierten Usecases durchgef hrt werden k nnen Die Testl ufe um den Deckungsgrad festzustellen wurden vom Projektteam durchgef hrt Die Usecases sind im Kapitel 3 Seite 13 definiert 17 1 Testlauf vom 30 Mai 2013 Ergebnisse Use Case 0 Use Case wird vollst ndig abgedeckt Use Case 1 UC1 1 Use Case wird vollst ndig abgedeckt UC1 2 Use Case wird vollst ndig abgedeckt UC1 3 Use Case wird vollst ndig abgedeckt Use Case 2 Use Case wird nicht abgedeckt siehe 17 1 1 Tabelle 17 1 UC Test Ergebnisse 17 1 1 Resultat Use Case 2 Der Usecase definiert dass die letzten Pr fungen eines Ger ts eingesehen werden k nnen sollen Dies ist momentan nicht der Fall es k nnen nur die allerletzten Ergebnisse betrach tet werden Massnahme Report Ansicht erweitern Siehe https github com tannerli cygnet doc issues 83 13 Juni 2013 Seite 54 118 Bachelorar
85. oup Default group Dozenten Assistenten Studenten Studiengang Landwirtschaft Studiengang Psychologie Mitarbeiter Informatikdienste Sekretariat Abbildung 21 3 Cygnet Beispielgruppen Im n chsten Schritt sollen Richtlinien f r die verschiedenen Gruppen erstellt werden Daf r kann im Navigationspunkt Policies eine neue Richtlinie erstellt werden 13 Juni 2013 Seite 69 118 Bachelorarbeit Malware DB Management Tool Cygnet cygnet New policy Mozilla Firefox File Edit View History Bookmarks Tools Help cygnet New policy ES localhost policies add y CRB Google O Overview New policy amp Groups A Policies El Enforcements Policy D Policy Info Devices Name Webservers 8 Packages There are no entries 3 Products SS Files Statistics All ports can be open have to be closed Type Listening Port TCP except 80 443 8080 Fail Action BLOCK Noresult Action ALLOW ler Si Abbildung 21 4 Cygnet Neue Policy Eine Policy besteht aus folgenden Eigenschaften Eigenschaft Beschreibung Name Name der Policy Typ Typ der Policy siehe 21 3 1 f r mehr Informationen Argument H ngt vom Typ ab Siehe 21 3 1 Fail Aktion Legt fest wie das System reagiert wenn die Richtlinie vom Client nicht erf llt wird Noresult Aktion Legt fest wie das System reagiert wenn eine Messung auf einem Client nicht durchgef hrt werden kann Beide dieser Aktions Felder haben vier Au
86. puts reicht nicht aus ein Angreifer kann jederzeit beliebige HTTP Request kreieren die keiner Javascript Pr fung unterliegen Deshalb wird der Input auf der Serverseite ein zweites Mal berpr ft Tritt bei dieser berpr fung ein Fehler auf reagiert der Server mit einem HTTP Statuscode 400 Bad Request Es gibt keine spezifi sche Fehlermeldung f r den Benutzer Das GUI muss daher gew hrleisten dass keinerlei schlechte Inputs an den Server gelangen 13 Juni 2013 Seite 45 118 Bachelorarbeit Malware DB Management Tool Cygnet 13 Deployment lt lt terminal gt gt AdminPC lt lt server gt gt Policy Decision Point PDP lt lt web server gt gt Apache lt lt component gt gt Cygnet Management Too TNC Server lt lt component gt gt 8 StrongSwan IMV lt lt vpn gateway gt gt Policy Enforcement Point PEP lt lt device gt gt StrongSwan Client AR VPN Abbildung 13 1 Deployment Diagramm In diesem Diagramm ist die physische Verteilung von Komponenten auf Verarbeitungsknoten und die physische Netzwerkkonfiguration zwischen den Knoten ersichtlich Die Komponente Cygnet Management Tool dabei handelt es sich um einen Execution Environment Note EEN ist eine Software Ressource die auf dem PDP Server l uft und die Funktionalit t des Management Tools zur Verf gung stellt Eine physische Verbindung wird zum Webbrowser
87. quenzdiagramm TNC Pr fung 13 Juni 2013 Seite 39 118 Bachelorarbeit Malware DB Management Tool Cygnet 1 2 3 4 Der Verbindungsaufbau wird durch den Android Client ausgel st 1 1 Der Haupt IMV gibt den Login Vorgang bei Cygnet bekannt 1 1 1 Cygnet liest anhand der Gruppenzugeh rigkeiten des Ger ts dessen gelten den Regeln Policies aus 1 1 2 Aus den Policies wird dann die Liste von Workltems errechnet die auf dem Client ausgef hrt werden muss 1 1 3 Die WorkList wird f r den IMV in einer separaten Tabelle in der Datenbank abgelegt 1 2 Der IMV holt sich die WorkList aus der Datenbank 1 3 Die einzelnen Checks werden auf dem Client ausgef hrt und die Resultate an den IMV zur ckgeliefert 1 4 Der IMV speichert die Resultate zu den einzelnen Workltems in der Datenbank 1 5 Anschliessend gibt der IMV die Kontrolle der Datenbank zur ck an Cygnet 1 6 Der IMV signalisiert dem Client das Ende des Handshakes und baut je nach Re sultat die VPN Verbindung auf oder weist den Client ab Cygnet liest die mit Resultaten gef llte WorkList aus Die Resultate werden ausgewertet Und in der Datenbank abgelegt 11 2 Datenmodell SQLite kennt weder formale Datentypen noch wird referentielle Integrit t erzwungen Der OR Mapper von Django forciert die im Modell definierten Anforderungen an die Daten und da nebst Cygnet auch die IMVs auf die Datenbank zugreifen ist es wichtig dass auch diese sich an die forma
88. rtionError Expceted empty body got Gre body def run_test Run the test case device Device objects get value deadbeef identity Identity objects get data tannerli session Session objects create connectionlD random randint 1 65535 device device time datetime today identity identity params params sessionlD session id start_login params Simulate IMV generate some random results for item in session workitems all item error random randint 0 1 item recommendation random choice item fail item noresult item result item save finish_login params print OKT res simIMV py 13 Juni 2013 Seite 52 118 Bachelorarbeit Malware DB Management Tool Cygnet 16 3 Selenium F r das automatisierte Testen der GUI wird das Firefox Plugin Selenium verwendet dass Tests einer Website automatisiert ablaufen l sst und eine Reihe von Assert Befehlen bez g lich des DOM kennt Auch diese Tests werde regelm ssig ausgef hrt um Fehler fr hm g lichst festzustellen Die Tests sind im Ordner selenium mitgeliefert und k nnen mit dem zugeh rigen Plugin durchgef hrt werden products Selenium IDE 2 0 0 File Edit Actions Options Help Base URL http localhost 8000 v gt E DE i e o Test Table Source login Command Target Value groups policies click css div btn group btn group vertical gt button btn lenforce clickAndWait css button btn btn success products assertT
89. s um zu testen ob die Anforde rungen abgedeckt werden k nnen Vorgehen bei Eintreffen Mehraufwand bei Schema nderung oder Datenbank Migration auf z B MySQL Tabelle 25 3 Risikotabelle 3 13 Juni 2013 Seite 86 118 Bachelorarbeit Malware DB Management Tool Cygnet R4 Kommunikation Django strongSwan IMV Beschreibung Kommunikation und Interaktion des Django Frameworks mit strongSwan IMV kann nicht korrekt ausgef hrt werden Massnahmen Proof of Technology fr hzeitig erarbeiten Vorgehen bei Eintreffen Mehraufwand Tabelle 25 4 Risikotabelle 4 25 2 Allgemeine Risiken R5 Ausfall der Infrastruktur Beschreibung HW eines Projektmitgliedes f llt aus Github Server f llt aus Netzwerk Infrastruktur der HSR f llt aus Massnahmen 1 Alternative HW organisieren 2 Kopien auf Arbeitsrechner aktuell halten 3 mehrere M glichkeiten f r Datenaustausch innerhalb des Teams bereithalten Vorgehen bei Eintreffen an Arbeitsplatzrechner in HSR BA Zimmer arbeiten Neuer Git Server aufsetzen Daten ber alternatives Netzwerk Me dien austauschen Tabelle 25 5 Risikotabelle 5 R6 Datenverlust Beschreibung erarbeitete Projekt Artefakte werden lokal unwiderruflich ge ndert oder gel scht Massnahmen Artefakte konsequent unter Versionsverwaltung Github stel len lokale Kopien Vorgehen bei Eintreffen
90. s Max age 3 Fail Action Inherit from policy Noresult Action BLOCK E OITA 2013 WEE DES Abbildung 21 5 Cygnet Neues Enforcement Zusatzlich kann ein Zeitintervall in Tagen angegeben werden das angibt wie oft die Policy getestet werden soll Ein Wert von 3 bedeutet dass die Policy wenn die letzte Pr fung erfolgreich war nur alle 3 Tage gepr ft wird Ein Wert von O bedeutet dass die Policy jedes Mal gepr ft wird Bei einem Enforcement k nnen die Fail Action und Noresult Action berschrieben wer den falls gew nscht Standardm ssig werden die Aktionen von der gew hlten Policy geerbt Wenn ein Client in zwei Gruppen eingeteilt ist auf denen dieselbe Policy angewandt wurde so wird die Policy nur einmal getestet Wenn sich die konfigurierten Aktionen oder das Zei tintervall unterscheiden so wird die drastischere Aktion BLOCK vor ISOLATE vor ALLOW resp das k rzere Zeitintervall angewandt 21 5 Ger te Clients In diesem Bereich werden allen bekannten Clients aufgelistet Die Liste wird automatisch um neue Clients erg nzt Ein Client kann hier Gruppen zugeordnet werden auf denen allenfalls 13 Juni 2013 Seite 72 118 Bachelorarbeit Malware DB Management Tool Cygnet weitere Policies angewandt wurden Es kann ein Beschreibungstext zum Ger t zugeordnet werden um die Wiedererkennbarkeit zu vereinfachen cygnet New device Mozilla Firefox cygnet New device eam localhost a v CBB Coogle
91. sein Gem ss einer Informatik Zeitschrift kursiert zur Zeit ein Android Rootkit das einen Key Logger in die bash integriert und die Logs auf einen externen Server speichert Deshalb soll mittels Datei Hash berpr ft werden ob die bash Kopie des Users infi ziert wurde 13 Juni 2013 Seite 11 118 Bachelorarbeit Malware DB Management Tool Cygnet 2 2 Persona IT Administrator Abbildung 2 1 Freddy Firewall Freddy Firewall ist Netzwerkadministra tor der Examplis er ist 36 Jahre alt und hat eine Lehre als Informatiker Fach richtung Systemtechnik absolviert Er be sch ftigt sich zu 70 mit der firmen internen Netz Infrastruktur die restliche Zeit betreut er das hauseigene ERP System Er arbeitet mit einem Desktop Computer kann aber bei Bedarf von zu hause aus via VPN auf Serverlogs zugrei fen Freddy bevorzugt f r seine Arbeit grafische Tools da er sich so komplexe Systemauf bauten besser vorstellen kann Besonders bei der Konfiguration von Firewalls und oder Switches verl sst er sich lieber auf das mit gelieferte Web Ul als sich kryptische Kommandozeilenbefehle zu merken Seine gr sste Sorge ist eine Attacke durch Hacker welche die Kundendaten oder den Quell code der von der Examplis entwickelten Programme kopieren k nnten Es st rt ihn daher sehr dass er keine Kontrolle hat welche Apps seine Benutzer auf ihren Smartphones und Tablets installieren Insbesondere probiert auch der G
92. ser gerichtet 20 1 Was ist Cygnet Cygnet ist eine Erweiterung f r den strongSwan VPN Client und den dazugeh rigen Server Es erm glicht die Definition und Durchsetzung von Richtlinien die f r alle VPN Clients gel ten und bei einem Verbindungsversuch erf llt werden m ssen StrongSwan VPN Clients Clients k nnen in Cygnet in Gruppen eingeteilt werden nach Betriebssystem Unternehmensstruktur oder pers nlicher Pr ferenz des Administrators Es k nnen Richtlinien Policies definiert werden wie beispielsweise dass alle verf gbaren Betriebssystemupdates auf dem Client installiert sind oder dass gewisse Applikationen auf dem Client nicht installiert sein d rfen Diese Richtlinien k nnen dann auf die Gruppen ange wandt erzwungen Enforcements werden und werden von Cygnet bei einem Verbindungs versuch eines Clients gepr ft D Enforcements erzwingt gilt f r Ba NS EN D O H Client Client Client Abbildung 20 1 bersicht 13 Juni 2013 Seite 66 118 Bachelorarbeit Malware DB Management Tool Cygnet 21 Schritt f r Schritt Anleitung In diesem Kapitel wird anhand eines Beispiels die Einrichtung einer VPN Richtlinie f r eine Unternehmung gezeigt 21 1 Ausgangslage Es wird davon ausgegangen dass bereits eine strongSwan Installation mit Cygnet existiert Siehe 19 Deployment Als Beispiel sei eine Hochschule die einen VPN Zugang f r Studenten Dozenten und Mit arbeiter anbietet Jeder dieser
93. sessment pdf e Android BYOD Security based on Trusted Network Connect http wiki strongswan org projects strongswan wiki BYOD e Trusted Network Connect Architecture http wiki strongswan org projects strongswan wiki TrustedNetworkConnect 22 3 Abgabetermin Der sp teste Abgabetermin ist der Freitag 14 Juni 2013 13 Juni 2013 Seite 77 118 Bachelorarbeit Malware DB Management Tool Cygnet 23 Projektorganisation 23 1 Team Das Projekt wird von Stefan Rohner und Marco Tanner bearbeitet Die Projektleitung wird im Team abgewickelt 23 2 Externe Kontakte Der Auftraggeber des Projekts ist das HSR Institut f r Internet Technologien und Anwen dungen namentlich Prof Dr Andreas Steffen und Tobias Brunner 23 3 Besprechungen Jeweils am Montag um 13 30 treffen sich das Projektteam und die Betreuer zu einem w chentlichen Statusupdate Raum 6 110 ITA 23 4 Arbeitsumfang Die Bachelorarbeit ist als 12 Punkte Modul definiert das bedeutet zw lf mal 25 bis 30 Ar beitsstunden pro Student Das heisst der Umfang der Arbeit sollte zwischen 600 und 720 Arbeitsstunden betragen 23 5 Arbeitsumgebung 23 5 1 Infrastruktur Zur Projektbew ltigung arbeitet jedes Teammitglied mit seinem pers nlichen Laptop so wie dem von der HSR zur Verf gung gestellten Desktop Rechner F r die Entwicklung des Management Tools und die Durchf hrung von realit tsnahen Systemtests steht ein Google Nexus 7 Tablet zur Verf gung
94. swahlm glichkeiten Wenn die Bedingungen der Richtlinie erf llt werden ist die Empfehlung immer ALLOW Aktion Bedeutung NONE Keine Empfehlung ALLOW Erlauben ISOLATE Isolieren in ein Spezialnetz verbinden BLOCK Blockieren Verbindung verweigern Wenn mehrere Richtlinien mit unterschiedlichen Ergebnissen auf einen Client angewandt werden z hlt immer das schlechtere Ergebnis also BLOCK vor ISOLATE vor ALLOW 21 3 1 Policy Typen Die folgenden Policy Typen werden zurzeit von Cygnet unterst tzt 13 Juni 2013 Seite 70 118 Bachelorarbeit Malware DB Management Tool Cygnet File Hash Diese Policy pr ft ob der Hash einer Datei auf dem Client mit dem entsprechenden Re ferenzwert in der Datenbank bereinstimmt Die Datei kann aus einer Auswahlliste ausge w hlt werden Der passende Referenzwert wird anhand des Betriebssystems des Clients bestimmt Dir Hash Wie File Hash aber pr ft s mtliche bekannten Dateien in einem Verzeichnis Listening Port TCP UDP Die Policy pr ft ob auf den angegebenen Ports Listening Sockets er ffnet wurden Die Port Range kann beispielsweise folgendermassen aussehen 21 22 80 443 1000 1500 2048 6000 40000 File Exist Die Policy pr ft ob eine bestimmte Datei auf dem Client existiert Sie schl gt fehl wenn die Datei nicht existiert File Not Exist Wie File Exist aber pr ft ob die Datei NICHT existiert und schl gt fehl wenn die Datei existiert
95. t 22 Einf hrung GEN es dsd Beate EE 22 2 Aufgabenstellung 22 3 Abgabetermin 23 Projektorganisation ZS MICA sr and Sf dove ea le a 23 2 Externe Kontakte 23 3 Besprechungen 23 4 Arbeitsumfang 13 Juni 2013 Seite 7 118 Bachelorarbeit Malware DB Management Tool Cygnet 23 9 Arbeilsumgebund n o ze ae Ste a a er dee 78 23 6 Qualit tsmassnahmen 79 24 Iterationen und Meilensteine 81 24 1 lterationsplanung 2 a ds ee ie et 81 24 2 Meillensteine Ss a A A ay ake Be SE de 82 PASS ZENO a A D ee Aer NN 83 24 4 ArbDeilspakele s 3 45 8 2 SRE AA Gee A A SAS es 84 25 Risikomanagement 86 25 1 Projektspezifische Risiken 86 25 2 Allgemeine Risiken m nn ee 87 25 9 Risik sch tz ng i Gs dc amp ee ae a bi E cd 88 26 Pers nliche Berichte 89 AO EE ER RONNE 3 0 aa e RA A A a ee De 89 26 2 Marco WE ENEE A A ao a Rp 90 VII Appendix 91 A Glossar 93 B Listing Datenmodell 97 C Python Styleguide 99 13 Juni 2013 Seite 8 118 HSR E HOCHSCHULE F R TECHNIK Institute for al RAPPERSWIL Internet Technologies E and Applications Cygnet Requirements Bachelorarbeit FS2013 Studenten Stefan Rohner Marco Tanner Betreuer Prof Dr Andreas Steffen Tobias Brunner Gegenleser Prof Stefan Keller Experte Dr Ralf Hauser Bachelorarbeit Malware DB Management Tool Cygnet 1 Einleitung 1 1 Zweck Dieses Dok
96. t soll der Client isoliert werden Speichern Sie die Policy Erstellen Sie ein neues Enforcement das die zuvor erstellte Policy mit der Gruppe Custo mer Support verbindet Sie m chten dass diese Policy mindestens alle 5 Tage getestet wird Die Aktionen bei einem Fehlschlag oder wenn kein Resultat vorhanden ist sollen von der Policy bernommen werden Speichern Sie das Enforcement Finden und betrachten Sie den Ger tebericht des Ger ts mit der ID a654e8da64 Was ist das letzte Resultat der von Ihnen erstellten Policy Exist cat Wird diese Policy beim n chsten Login getestet Loggen Sie sich aus 13 Juni 2013 Seite 57 118 Bachelorarbeit Malware DB Management Tool Cygnet 18 2 Testlauf vom 01 Juni 2013 Testperson Seraina Pfyl Ausbildung Kaufm nnische Berufslehre HGT Englischkenntnisse First Certificate B2 Stand der Software Commit aa52f85 Stand der Doku Commit c665e51 Instruktionen Schriftlich siehe 18 1 18 2 1 Ergebnisse Die Instruktionen wurden verstanden und grunds tzlich erfolgreich ausgef hrt Folgende Schwierigkeiten traten w hrend der Bearbeitung auf Bei der Gruppen bersicht ist nicht von Anfang an klar wieviele Gruppen z Z existieren Nur die beiden Top Level Gruppen wurden als solche erkannt Zuordnungsfeld Mitglieder zu Gruppe oder Gruppe zu Ger t ist nur dann klar wenn die beiden Felder nebeneinander angeordnet sind Ist das Fenster zu schmal ist es unklar
97. t it is mentioned for completeness For example the os stat function returns a tuple whose items traditionally have names like st_mode st_size st_mtime and so on This is done to emphasize the correspondence with the fields of the POSIX system call struct which helps programmers familiar with that The X11 library uses a leading X for all its public functions In Python this style is generally deemed unnecessary because attribute and method names are prefixed with an object and function names are prefixed with a module name In addition the following special forms using leading or trailing underscores are recognized these can generally be combined with any case convention _single_leading_underscore weak internal use indicator E g from M import does not import objects whose name starts with an underscore single_trailing_underscore_ used by convention to avoid conflicts with Python keyword e g Tkinter Toplevel master class_ ClassName _ double_leading_underscore when naming a class attribute invokes name mangling inside class FooBar __boo becomes _FooBar__boo see below _ double_leading_and_trailing_underscore__ magic objects or attributes that live in user controlled namespaces E g __init__ __import__ or Te Never invent such names only use them as documented Prescriptive Naming Conventions Names to Avoid Never use the characters IT lowercase letter el O uppercase letter
98. te 48 15 1 Weitere Policy Typen dynamische Typen 48 15 2 Lokalisienung c es ls se aa E Ri ea nen 48 15 3 Bearbeitung von Enforcements in der Policy Ansicht 48 15 4 Unterst tzung f r l ngere Sessions 0 nn 48 15 5 Generierung von Formularen und Auto Validierung 49 15 0 Action als EUM esta 24 5 d e A EE ee aS Heed SC 49 lll Testprotokolle 50 16 Unit Tests 51 TO Cie A S82 ra ee a EE DE 51 16 2 IMV Simulator ur ads wir re aa E 26 tie Ge Se 51 TG 3 SEIENIUNN a daa a ee a ee en ie Boe PR Eee 53 13 Juni 2013 Seite 6 118 Bachelorarbeit Malware DB Management Tool Cygnet 17 Usecase Tests 17 1 Testlauf vom 30 Mai 2013 17 2 Testlauf vom 03 Juni 2013 18 Usability Tests 18 1 Instruktionen 18 2 Testlauf vom 01 Juni 2013 18 3 Testlauf vom 06 Juni 2013 IV Deployment Manual 19 Vorgehensweise 19 1 S8erver e a See ae 19 2 Cygnet 2 222er 19 3 Konfiguration Apache 19 4 Optional IMV Authentisierung V User Manual 20 Einf hrung 20 1 Was ist Cygnet 2 mb Schritt f r Schritt Anleitung 21 1 Ausgangslage 21 2 Gruppen re SO 21 3 Richtlinien Policies 21 4 Enforcements 21 5 Gerate Clients 21 6 Dateien Files 21 7 Pakete Packages 21 8 Produkte Products VI Projektmanagemen
99. tellen welche Android Ger te seiner Benutzer sich zu welchen Konditionen ins Netz einw hlen d rfen 3 3 1 UC1 1 Device und Gruppenmanagement Alle Ger te die sich bereits einmal via strongSwan ins Netz eingew hlt haben sind auto matisch im System erfasst Der Administrator teilt die Ger te in logische Gruppen ein die Gruppenstruktur orientiert sich an der Firmenhierarchie oder den unterschiedlichen Sicher heitsstufen die f r Ger te gelten k nnen 13 Juni 2013 Seite 13 118 Bachelorarbeit Malware DB Management Tool Cygnet 3 3 2 UC1 2 Erstellen einer Policy Der Administrator definiert gem ss seinen Sicherheitsanforderungen Policiy Objekte Er legt fest was die Policy pr fen soll und welche Reaktion ausgel st wird wenn die Policy nicht erf llt wird z B Wird das Ger t blockiert 3 3 3 UC1 3 Erzwingen von Policies Die definierten Policies werden den bestehenden Gruppen zugeordnet Jede Gruppe kann beliebig viele Policies aktiviert haben Zus tzlich definiert der Administrator wie oft eine Pr fung durchgef hrt werden soll 3 4 UC2 Logs pr fen Ein Benutzer meldet er k nne sich nicht mehr im VPN anmelden Der Administrator ff net deshalb Cygnet und kontrolliert die Ergebnisse der letzten Login Versuche Er erkennt welche Policy zur Blockierung des Ger ts gef hrt hat und bietet dem Benutzer Hilfestellung beim Erf llen der Policy Bedingungen 13 Juni 2013 Seite 14 118 Bachelorarbeit
100. ten Stefan Rohner Marco Tanner Betreuer Prof Dr Andreas Steffen Tobias Brunner Gegenleser Prof Stefan Keller Experte Dr Ralf Hauser Bachelorarbeit Malware DB Management Tool Cygnet 16 Unit Tests Automatisierte Unit Tests sind ein praktisches Werkzeug um festzustellen ob nderungen im Code unerw nschte Nebeneffekte haben 16 1 Python Django liefert bereits ein Skript das Unit Tests ausf hren kann Der folgenden Befehl f hrt alle definierten Unit Tests aus die sich im File cygapp tests py befinden 1 gt python manage py test cygapp Listing 16 1 Unit Test Befehl Die Tests werden jedesmal ausgef hrt bevor nderungen im Code committed resp gepu shed werden Wenn weitere Funktionalit t hinzukommt wird der Test Code entsprechend erweitert hsr ba cygnet manage py test cygapp Creating test database for alias default Creating test database for alias meta om Ran 11 tests in 0 241s OK Destroying test database for alias default Destroying test database for alias meta oO oO OO 4 o u Listing 16 2 Unit Tests Beispielausgabe 29 05 2013 16 2 IMV Simulator F r die Schnittstellentests mit strongswan wurde ein Python Skript implementiert das einen IMV simuliert und Testergebnisse generiert non A module to simulate a StrongSwan IMV used for testing workitem generation and session handling of cygnet Invoke by calling run_test
101. ten Policy geerbt 9 1 4 Sessions Workitems und Resultate Wenn sich ein Client beim System anmelden will wird von StrongSwan eine neue Session f r das Ger t erzeugt Cygnet generiert zu diesem Zeitpunkt eine Liste von Workitems die eine konkrete Auftragsliste f r die IMVs darstellt Die Workitems sind eine Aggregation aus allen Policies die auf den Client wirken und getestet werden m ssen Die IMVs f hren die Messungen durch und schreiben die Resultate zur ck in die Datenbank Cygnet weist die Resultate der Session zu 9 1 5 Produkte und Default Policies Es wird f r jedes Client Ger t gespeichert welches Produkt lies Betriebssystem instal liert ist Diese Produkte k nnen in Cygnet verwendet werden um eine Richtlinie f r Ger te zu definieren die sich das erste Mal am System anmelden Es k nnen pro Produkt eine oder mehrere Standard Gruppen definiert werden Wenn sich ein neues Ger t anmeldet wird es automatisch aufgrund seines Produkts in die zugeh rigen Standard Gruppen eingeteilt und die darauf wirkenden Enforcements werden auf das Ger t angewandt Wenn ein Ger t mit einem bisher unbekannten Produkt sich anzumelden versucht wird das Produkt bei Cygnet registriert und das Ger t in die immer existierende Standard Gruppe siehe 21 2 eingeteilt 9 1 6 Softwarepakete Versionen und Blacklisting Die Liste von Software Paketen wird automatisch anhand der bei Clients installierten Soft ware aktualisiert Softw
102. tet sich nach den Vorgaben des PEP8 Dokuments siehe Auch Pro jektplan Der restliche Code soll sich m glichst an die g ngigen Standards im Webbereich halten insbesondere valides HTML Markup in generierten Inhalten 13 Juni 2013 Seite 20 118 Bachelorarbeit Malware DB Management Tool Cygnet 5 4 Anforderungen an die Plattform 5 4 1 Open Source Das geplante Tool muss zwingend auf Open Source Software aufbauen als Webserver muss Apache unter Linux verwendet werden 5 4 2 Standardisierung Das Tool soll sich an etablierte Standards halten damit es mit allen g ngigen Browsern vor allem nat rlich Open Source Browser wie Firefox oder Chromium betrachtet und bedient werden kann 5 4 3 Einfaches Setup Die Einrichtung des fertigen Tools soll m glichst simpel gehalten werden oder gar automa tisierbar sein Dies gilt auch f r die zugrundeliegende Plattform 13 Juni 2013 Seite 21 118 HSR E HOCHSCHULE F R TECHNIK Institute for al RAPPERSWIL Internet Technologies E and Applications Cygnet Architektur Bachelorarbeit FS2013 Studenten Stefan Rohner Marco Tanner Betreuer Prof Dr Andreas Steffen Tobias Brunner Gegenleser Prof Stefan Keller Experte Dr Ralf Hauser Bachelorarbeit Malware DB Management Tool Cygnet 6 Einf hrung Policy Decision Point PDP Policy Enforcement Access Requestor AR Point PEP H H U z I 1 o ER 233 g7 1 o I 1 gt UH I U l
103. to use consider naming them with double leading underscores and no trailing underscores This invokes Python s name mangling algorithm where the name of the class is mangled into the attribute name This helps avoid attribute name collisions should subclasses inadvertently contain attributes with the same name Note 1 Note that only the simple class name is used in the mangled name so if a subclass chooses both the same class name and attribute name you can still get name collisions Note 2 Name mangling can make certain uses such as debugging and __getattr__ less convenient However the name mangling algorithm is well documented and easy to perform manually Note 3 Not everyone likes name mangling Try to balance the need to avoid accidental name clashes with potential use by advanced callers Programming Recommendations Code should be written in a way that does not disadvantage other implementations of Python PyPy Jython IronPython Pyrex Psyco and such For example do not rely on CPython s efficient implementation of in place string concatenation for statements in the form a b or a a b Those statements run more slowly in Jython In performance sensitive parts of the library the join form should be used instead This will ensure that concatenation occurs in linear time across various implementations Comparisons to singletons like None should always be done with is or is not never the equality
104. ule would make the code less readable even for someone who is used to reading code that follows the rules 2 To be consistent with surrounding code that also breaks it maybe for historic reasons although this is also an opportunity to clean up someone else s mess in true XP style Code lay out Indentation Use 4 spaces per indentation level For really old code that you don t want to mess up you can continue to use 8 space tabs Tabs or Spaces Never mix tabs and spaces The most popular way of indenting Python is with spaces only The second most popular way is with tabs only Code indented with a mixture of tabs and spaces should be converted to using spaces exclusively When invoking the Python command line interpreter with the t option it issues warnings about code that illegally mixes tabs and spaces When using tt these warnings become errors These options are highly recommended For new projects spaces only are strongly recommended over tabs Most editors have features that make this easy to do Maximum Line Length Limit all lines to a maximum of 79 characters There are still many devices around that are limited to 80 character lines plus limiting windows to 80 characters makes it possible to have several windows side by side The default wrapping on such devices disrupts the visual structure of the code making it more difficult to understand Therefore please limit all lines to a maximum of 79 characters
105. ument erl utert die spezifischen Anforderungen welche aus der Aufgabenstel lung und Gespr chen mit Herrn Steffen f r die geplante Applikation Cygnet erarbeitet wur den 1 2 Allgemeine Beschreibung 1 2 1 Produktfunktion Die Applikation soll die M glichkeit bieten mit einer grafischen Oberfl che Policy Regeln zu administrieren welche ein Whitelisting wie auch ein Blacklisting von Ger ten und deren Software Paketen erm glichen Die Policies sollen in einer Datenbank gespeichert werden und Gesundheitstests f r Android Ger te und die zugeh rigen Resultate werden ebenfalls darin erfasst 1 2 2 Benutzercharakteristik Als Benutzer kommen in erster Linie Netzwerkadministratoren in Frage die ein StrongSwan IPSec Netz betreiben Es ist davon auszugehen dass die Benutzer bereits Erfahrung im Umgang mit Computern und Web Administrations Oberfl chen gesammelt haben 1 2 3 Abh ngigkeiten F r die Erfassung von potentiell gef hrlichen Packages wird eine bereits bestehende Da tenbank verwendet und erweitert Ausserdem wird die StrongSwan IMV und somit auch die implementierte Erweiterung der StrongSwan Android App genutzt Sie erm glicht die Vali dierung von Endger ten 13 Juni 2013 Seite 10 118 Bachelorarbeit Malware DB Management Tool Cygnet 2 Ausgangslage 2 1 Szenario Die Firma Examplis besch ftigt 50 Mitarbeiter Davon sind 25 Aussendienstmitarbeiter 3 IT Administratoren 10 Softwareentwickler u
106. ung die dem Benutzer Zugang ins lokale Netzwerk einer Firma oder Organisation ber einen unsicheren Kanal z B das Internet erm glicht e Workitem Definiert einen Arbeitsauftrag Wird von Cygnet f r IMVs generiert und von diesen ausgef hrt Die Resultate werden zur ck an Cygnet geliefert und dann von Cygnet ausgewertet 13 Juni 2013 Seite 94 118 Bachelorarbeit Malware DB Management Tool Cygnet Abbildungsverzeichnis Bde IELOGAYEILEWAIL isisa tales Sir ee see Bae is EE 12 6 1 bersicht der Komponenten 23 Sole ER Diagtam m Ze cree Ka e dE EE SAK Gow Ate Dee Waals E e 26 8 2 ER Diagramm Dateien 8 Hashes e 27 8 3 ER Diagtamm Packages vr as er ds ee ac 28 84 ER Diagramm Policies 5 3 2 84 82 sa Wan mei an ten 29 10 1 Anmeldeseite zus sn arms da da 33 19 2 UBEISIENLE a 4 ha ob a ar un en re De cha iin 34 10 3 Gruppenansicht ooo 2 ae e dech 35 104 ZRONCYanSIChE a 3 e ee eee SS el ee 36 10 5 Ger teansicht ar E is a ER ae AA 37 11 1 Sequenzdiagramm TNC Pr fung 39 13 1 Deployment Diagramm e e ee ee 46 16 1 Screenshot Selenium nn 53 20 1 bersicht las sa ee de Age ee 66 21 1 Cygnet bersicht za u Bean ae ea er Sone oe 67 21 2 Cygnet Gruppen Sea ed auc aa a ala En a Bee 68 21 3 Cygnet Beispielgruppen 69 21 4 Cygnet Neue PoliCY o e ee 70 21 5 Cygnet Neues Enforcement o e 72 21 6 Cygnet
107. ung unsere F higkeiten haben sich gut erg nzt und die Arbeitsteilung und Planung lief reibungsfrei W hrend sich Stefan haupts chlich auf das Frontend unserer Applikation in Sachen Konzept Design und Umsetzung konzentrierte durfte ich mich dem Backend also dem Datenmodell der Schnitt stelle zur Datenbank und zu strongSwan und der Erstellung von Views in Python widmen W hrend der Arbeit konnte ich viel ber den modernen eleganten Ansatz lernen den Djan go verfolgt um Webseiten schnell und nach dem DRY Prinzip zu erstellen Ein Framework ohne vorherige Erfahrungen zu verwenden birgt immer gewisse H rden Einige Male w h rend des Projektverlaufs wurden wir per Zufall auf Django Features aufmerksam die uns wohl die Arbeit erleichtert h tten aber nicht mehr umgesetzt werden konnten da zu viel Code ge ndert h tte werden m ssen Als Ganzes gesehen bin ich mit unserer Arbeit zufrieden und erachte es als w rdigen Ab schluss f r mein Studium an der HSR Ich bin berzeugt davon dass mir die gesammelten Erfahrungen bei zuk nftigen Projekten von Nutzen sein werden 13 Juni 2013 Seite 90 118 Bachelorarbeit Malware DB Management Tool Cygnet Teil VII Appendix 13 Juni 2013 Seite 91 118 Inhaltsverzeichnis A Glossar B Listing Datenmodell C Python Styleguide 93 97 99 Bachelorarbeit Malware DB Management Tool Cygnet A Glossar Client Unter Client wird ein Android Ger t verstanden

Download Pdf Manuals

image

Related Search

Related Contents

電動式グリースルブリケーター(DC24V)取扱説明書 [ 900289  T'nB CIRJCCBL37133 networking cable  guide de démarrage rapide  送り付(6A迄】 座 安全に関するご注意  Karcher KM 85/50 W B User's Manual  目 次  Samsung F1035JF 用户手册  pdf-Dokument - Universität Bonn  "user manual"  GE JVM1410 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file