Filtern
Erscheinungsjahr
Dokumenttyp
- Diplomarbeit (14)
- Studienarbeit (13)
- Bachelorarbeit (8)
- Dissertation (7)
- Masterarbeit (6)
- Ausgabe (Heft) zu einer Zeitschrift (6)
Sprache
- Deutsch (39)
- Englisch (14)
- Mehrsprachig (1)
Schlagworte
- Java (3)
- model-based (3)
- Autonome Fahrzeuge (2)
- BPMN (2)
- Computersimulation (2)
- Echtzeitsystem (2)
- Echtzeitsysteme (2)
- Fahrerassistenzsystem (2)
- Modellfahrzeug (2)
- Petri-Netz (2)
Institut
- Institut für Softwaretechnik (54) (entfernen)
In dieser Arbeit wurde erstmalig das Gebiet der funktionalen, system-level Web Testing Tools analysiert. Aus 194 Toolkandidaten wurden 23 Tools zur Analyse ausgewählt. Die entwickelte Methodik verwendet die Benutzerhandbücher der Tools, um ein Featuremodel zu erzeugen, dass die Features aller Tools abbildet. Insgesamt wurden 313 Features identifiziert, klassifiziert und beschrieben. Die Features wurden in 10 Kategorien unterteilt und werden mit 16 Featurediagrammen dargestellt.rnDie Ergebnisse können technologische Entscheidungsprozesse unterstützen, indem ein Überblick einerseits über die Tools auf dem Markt und andererseits über die neusten Entwicklungen im Bereich des funktionalen, system-level Web Testing bereitgestellt wird.
101worker ist die modulare Wissensverarbeitungskomponente des 101companies-Projektes. Durch organisches Wachstum des Systems, statt Beachtung von bewährten Software-Design-Prinzipien, haben sich Wartungs- und Leistungsprobleme entwickelt. Diese Arbeit beschreibt diese Probleme, entwirft Anforderungen für das Refactoring des Systems und beschreibt und analysiert schließlich die resultierende Implementierung. Die Lösung involviert die Zusammenfassung von verstreuten und redundanten Informationen, aufsetzen von Unit- und funktionalen Test-Suiten und Inkrementalisierung der Busarchitektur von 101worker.
Paketmanager für Quellcode wie zum Beispiel Cabal verwalten unter anderem die Abhängigkeiten zwischen Paketen. Softwareprojekte nutzen jedoch selten sämtliche Funktionalitäten, die ihre Abhängigkeiten bereitstellen. Das führt zur unnötigen Kompilation unbenutzter Code-Fragmente und zu vermeintlichen Versionskonflikten, wo gar keine Konflikte sind. In zwei Fallstudien zeigen wir, wie relevant diese zwei Probleme sind. Danach beschreiben wir, wie wir sie vermeiden können, indem wir Abhängigkeiten nicht zwischen ganzen Paketen, sondern zwischen einzelnen Code-Fragmenten feststellen.
Wurden Echtzeitanwendungen früher meist auf hochspezialisierter Hardware und mit eigens dafür entwickelten Betriebssystemen ausgeführt, so wird heutzutage oft auch handelsübliche Hardware eingesetzt, auf dem eine Variante des Linux-Kernels läuft.
Im Rahmen dieser Arbeit wurden Testverfahren aufgestellt und in Form einer Echtzeitanwendung implementiert, welche verschiedene Leistungsmerkmale des Linux-Kernels im Hinblick auf dessen Echtzeitfähigkeit messen.
Diese Tests wurden auf drei verschiedenen Kernel-Versionen ausgeführt. Anschließend wurden die Ergebnisse der Testreihen miteinander verglichen.
Mapping ORM to TGraph
(2017)
Object Role Modeling (ORM) is a semantic modeling language used to describe objects and their relations amongst each other. Both objects and relations may be subject to rules or ORM constraints.
TGraphs are ordered, attributed, typed and directed graphs. The type of a TGraph and its components, the edges and vertices, is defined using the schema language graph UML (grUML), a profiled version of UML class diagrams. The goal of this thesis is to map ORM schemas to grUML schemas in order to be able to represent ORM schema instances as TGraphs.
Up to this point, the preferred representation for ORM schema instances is in form of relational tables. Though mappings from ORM schemas to relational schemas exist, those publicly available do not support most of the constraints ORM has to offer.
Constraints can be added to grUML schemas using the TGraph query language GReQL, which can efficiently check whether a TGraph validates the constraint or not. The graph library JGraLab provides efficient implementations of TGraphs and their query language GReQL and supports the generation of grUML schemas.
The first goal of this work is to perform a complete mapping from ORM schemas to grUML schemas, using GReQL to sepcify constraints. The second goal is to represent ORM instances in form of TGraphs.
This work gives an overview of ORM, TGraphs, grUML and GReQL and the theoretical mapping from ORM schemas to grUML schemas. It also describes the implementation of this mapping, deals with the representation of ORM schema instances as TGraphs and the question how grUML constraints can be validated.
Da Software heute nahezu alle Bereiche des Alltags durchdringt, ist Sicherheit von Softwaresystemen ein wichtigeres Anliegen als je zuvor. Die Sicherheit eines Softwaresystems zu bewerten stellt in der Praxis jedoch eine Herausforderung dar, da nicht viele Metriken existieren, die Sicherheitseigenschaften von Sourcecode auf Zahlenwerte abbilden. Eine geläufige Annahme ist, dass das Auftreten von Sicherheitslücken in Korrelation mit der Qualität von Software-Designs steht, allerdings fehlt es momentan an klaren Belegen für diese Annahme. Der Nachweis einer vorhandenen Korrelation kann dazu beitragen die Messung von Programmsicherheit zu optimieren, da man dann gezielt Qualitätsmetriken zum Messen von Sicherheit einsetzen könnte. Zu diesem Zweck wurden in dieser Arbeit für 50 Android-Apps aus dem Open Source-Bereich drei Sicherheits- und sieben Qualitätsmetriken, sowie Korrelationen zwischen diesen Metriken berechnet. Bei den Qualitätsmetriken handelt es sich um einfache Code-Metriken bis hin zu High-Level-Metriken, wie objektorientierte Antipatterns, die zusammen ein umfassendes Bild der Qualität vermitteln. Um die Sicherheit darzustellen wurden zwei Sichtbarkeitsmetriken zusammen mit einer Metrik, die die minimale Rechteanforderung mobiler Applikationen berechnet, ausgewählt. Es wurde festgestellt, dass auf Basis der betrachteten Evaluationsprojekte deutliche Korrelationen zwischen den meisten Qualitätsmetriken liegen. Zu den Sicherheitsmetriken wurden dahingegen keine signifikanten Korrelationen gefunden. Es werdendiese Korrelationen und deren Ursachen diskutiert und auf dieser Basis Empfehlungen formuliert.
Datenflussmodelle in der Literatur weisen oftmals einen hohen Detailgrad auf, der sich auf die auf den Modellen durchgeführten Datenflussanalysen überträgt und diese somit schwerer verständlich macht. Da ein Datenflussmodell, das von einem Großteil der Implementierungsdetails des modellierten Programms abstrahiert, potenziell leichter verständliche Datenflussanalysen erlaubt, beschäftigt sich die vorliegende Masterarbeit mit der Spezifikation und dem Aufbau eines stark abstrahierten Datenflussmodells und der Durchführung von Datenflussanalysen auf diesem Modell. Das Modell und die darauf arbeitenden Analysen wurden testgetrieben entwickelt, sodass ein breites Spektrum möglicher Datenflussszenarien abgedeckt werden konnte. Als konkrete Datenflussanalyse wurde unter anderem eine statische Sicherheitsprüfung in Form einer Erkennung unzureichender Nutzereingabenbereinigungen durchgeführt. Bisher existiert kein Datenflussmodell auf einer ähnlich hohen Abstraktionsebene. Es handelt sich daher um einen einzigartigen Lösungsentwurf, der Entwicklern die Durchführung von Datenflussanalysen erleichtert, die keine Expertise auf diesem Gebiet haben.
Absicherung der analytischen Interpretation von Geolokalisierungsdaten in der Mobilfunkforensik
(2019)
Zusammenfassung
Lokalisierungsdienste gehören mit zu den wesentlichen Merkmalen moderner mobiler Endgeräte. Neben der Tatsache, dass Standortdaten zur Rekonstruktion eines Bewegungsprofils genutzt werden können, steigt der Anteil der zu untersuchenden Geräten mit entsprechender Ausstattung im Rahmen von polizeilichen Ermittlungen enorm an.
Motivation
Ziel dieser Arbeit ist es, tiefergehendes Wissen um Geolokalisierungsfragen im Bereich der Mobilfunkforensik aufzubauen, um die in den Geräten gespeicherten Standortdaten forensisch auswertbar zu machen. Darüber hinaus sollen Werkzeuge entwickelt werden, die die spezifischen Bedürfnisse der Strafverfolgungsbehörden berücksichtigen.
Probleme
Die Prozesse der Geolokalisierung in Smartphones sind komplex. Um seine Position zu lokalisieren zu können, müssen verschiedene Referenzsysteme wie z. B. GPS, Funkzellen oder WLAN-hotspots in unterschiedlicher Art und Weise verknüpft werden. Der gesamte Lokalisierungsmechanismus ist geistiges Eigentum der Hersteller und nicht mit dem Ziel forensischer Auswertungen entstanden. Ein grundlegendes Problem der forensischen Untersuchung ist, dass hauptsächlich Referenzpunkte anstelle reeller Gerätepositionen gespeichert werden. Darüber hinaus bestehen die Geolokalisierungsinformationen aus Bits und Bytes bzw. numerischen Werten, die zuverlässig an ihre Bedeutung geknüpft werden müssen. Die gewonnenen Lokalisierungsdaten sind ferner lückenhaft und stellen lediglich einen Teil des gesamten Prozesses bzw. der Gerätenutzung dar. Dieser Datenverlust muss bestimmt werden, um eine zuverlässige Aussage hinsichtlich der Vollständigkeit, Integrität und Genauigkeit der Daten zu ermöglichen. Zu guter Letzt muss, wie für jedes Beweismittel einer kriminalistischen Untersuchung, gesichert sein, dass eine Manipulation der Daten bzw. Fehler bei der Positionsschätzung des Gerätes keinen nachteiligen Einfluss auf die Auswertung haben.
Forschungsfragen
Im Zusammenhang mit Lokalisierungsdiensten in modernen Smartphones kommt es im forensischen Alltag immer wieder zu ähnlichen Fragestellungen:
* Lassen sich Standorte zu jedem beliebigen Zeitpunkt ermitteln?
* Wie genau sind die ermittelten Geodaten des Smartphones?
* Werden Standortdaten aus Smartphones vor Gericht Bestand haben?
Forschungsansatz
Zur besseren Nachvollziehbarkeit der Prozesse in modernen Smartphones und um die Qualität und Zuverlässigkeit von Geolokalisierungsdaten zu bewerten, sollen Standortdaten verschiedener Plattformen sowohl theoretisch analysiert als auch praktisch während der Lokalisierung betrachtet werden. Der Zusammenhang zwischen Daten und Entstehungskontext wird mithilfe experimenteller Live-Untersuchungen sowie Desktop- und nativen Anwendungen auf den mobilen Endgeräten untersucht werden.
Ergebnis
Im Rahmen dieser Arbeit konnten mithilfe der entwickelten Werkzeuge die forensische Untersuchung verbessert sowie die analytische Interpretation von Geodaten von- bzw. direkt auf modernen Smartphones durchgeführt werden. Dabei hat sich ein generisches Modell zur Beurteilung der Qualität von Standortdaten herauskristallisiert, das sich allgemein auf die ermittelten Geodaten aus mobilen Endgeräten anwenden lässt.
Softwaresysteme haben einen zunehmenden Einfluss auf unser tägliches Leben. Viele Systeme verarbeiten sensitive Daten oder steuern wichtige Infrastruktur, was die Bereitstellung sicherer Software unabdingbar macht. Derartige Systeme werden aus Aufwands- und Kostengründen selten erneuert. Oftmals werden Systeme, die zu ihrem Entwurfszeitpunkt als sicheres System geplant und implementiert wurden, deswegen unsicher, weil sich die Umgebung dieser Systeme ändert. Dadurch, dass verschiedenste Systeme über das Internet kommunizieren, sind diese auch neuen Angriffsarten stetig ausgesetzt. Die Sicherheitsanforderungen an ein System bleiben unberührt, aber neue Erkenntnisse wie die Verwundbarkeit eines zum Entwurfszeitpunkt als sicher geltenden Verschlüsselungsalgorithmus erzwingen Änderungen am System. Manche Sicherheitsanforderungen können dabei nicht anhand des Designs sondern nur zur Laufzeit geprüft werden. Darüber hinaus erfordern plötzlich auftretende Sicherheitsverletzungen eine unverzügliche Reaktion, um eine Systemabschaltung vermeiden zu können. Wissen über geeignete Sicherheitsverfahren, Angriffe und Abwehrmechanismen ist grundsätzlich verfügbar, aber es ist selten in die Softwareentwicklung integriert und geht auf Evolutionen ein.
In dieser Arbeit wird untersucht, wie die Sicherheit langlebiger Software unter dem Einfluss von Kontext-Evolutionen bewahrt werden kann. Der vorgestellte Ansatz S²EC²O hat zum Ziel, die Sicherheit von Software, die modellbasiert entwickelt wird, mithilfe von Ko-Evolutionen wiederherzustellen.
Eine Ontologie-basierende Wissensbasis wird eingeführt, die sowohl allgemeines wie auch systemspezifisches, sicherheitsrelevantes Wissen verwaltet. Mittels einer Transformation wird die Verbindung der Wissensbasis zu UML-Systemmodellen hergestellt. Mit semantischen Differenzen, Inferenz von Wissen und der Erkennung von Inkonsistenzen in der Wissensbasis werden Kontext-Evolutionen erkannt.
Ein Katalog mit Regeln zur Verwaltung und Wiederherstellung von Sicherheitsanforderungen nutzt erkannte Kontext-Evolutionen, um mögliche Ko-Evolutionen für das Systemmodell vorzuschlagen, welche die Einhaltung von Sicherheitsanforderungen wiederherstellen.
S²EC²O unterstützt Sicherheitsannotationen, um Modelle und Code zum Zwecke einer Laufzeitüberwachung zu koppeln. Die Adaption laufender Systeme gegen Bedrohungen wird ebenso betrachtet wie Roundtrip-Engineering, um Erkenntnisse aus der Laufzeit in das System-Modell zu integrieren.
S²EC²O wird ergänzt um eine prototypische Implementierung. Diese wird genutzt, um die Anwendbarkeit von S²EC²O im Rahmen einer Fallstudie an dem medizinischen Informationssystem iTrust zu zeigen.
Die vorliegende Arbeit leistet einen Beitrag, um die Entwicklung und Wartung langlebiger Softwaresysteme in Bezug auf ihre Sicherheit zu begleiten. Der vorgestellte Ansatz entlastet Sicherheitsexperten bei ihrer Arbeit, indem er sicherheitsrelevante Änderungen des Systemkontextes erfasst, den Einfluss auf die Sicherheit der Software prüft und Ko-Evolutionen zur Bewahrung der Sicherheitsanforderungen ermöglicht.
Für die Entwicklung sicherer Softwaresysteme erweitert UMLsec die UML durch die Definition von Sicherheitsanforderungen, die erfüllt sein müssen. In Klassendiagrammen können Attribute und Methoden von Klassen Sicherheitseigenschaften wie secrecy oder integrity haben, auf die nicht authorisierte Klassen keinen Zugriff haben sollten. Vererbungen zwischen Klassen erzeugen eine Komplexität und werfen die Frage auf, wie man mit der Vererbung von Sicherheitseigenschaften umgehen sollte. Neben der Option in sicherheitskritischen Fällen auf Vererbungen zu verzichten, gibt es im Gebiet der objektorientierten Datenbanken bereits viele allgemeine Recherchen über die Auswirkungen von Vererbung auf die Sicherheit. Das Ziel dieser Arbeit ist es, Ähnlichkeiten und Unterschiede von der Datenbankseite und den Klassendiagrammen zu identifizieren und diese Lösungsansätze zu übertragen und zu formalisieren. Eine Implementierung des Modells evaluiert, ob die Lösungen in der Praxis anwendbar sind.