Add Thesis

Sicherheitsanalyse eines App-gesteuerten Smart Home Systems

Written by Anonymous

Paper category

Bachelor Thesis

Subject

Computer Science

Year

2016

Abstract

2.1.1 Aufbau des Betriebssystems Android wird auf Basis von Linux entwickelt und lässt sich in drei Schichten einteilen Nachfolgend eine kurze Einführung [19; 21] Der Linux-Kernel stellt laut Linux-Foundation die Grundlage des Android-Betriebssystems dar System. Der Linux-Kernel stellt die Low-Level-Funktionen des Betriebssystems bereit. Von Unix übernommene Benutzersysteme mit Discretionary Access Control (DAC) interessieren sich besonders für den Sicherheitsbegriff. Die Middleware aus speziell geschriebenen Bibliotheken basiert auf dem Linux-Kernel, beispielsweise für installierte Anwendungen, Laufzeitumgebung und Kommunikationsmöglichkeiten (Inter Component Communication, ICC). Die oberste Ebene des Android-Systems wird durch installierte Anwendungen repräsentiert. Diese basieren auf Middleware und verwenden, wie von Middleware bereitgestellte ICC, um miteinander zu kommunizieren 2 Anwendungsstruktur Die für Android entwickelte Anwendung ist in Java geschrieben und läuft auf Android-Geräten. Anstatt jedoch die Java Virtual Machine (JVM) zu verwenden, handelt es sich um eine von zwei Android-spezifischen virtuellen Ausführungsumgebungen {je nach Android-Version ist dies entweder die Dalvik Virtual Machine oder die Android Runtime (ART) seit Android 5.0 [ 3 ] Android-Anwendungen bestehen aus verschiedenen Modulen und Komponenten, die verschiedene Aufgaben der Anwendung übernehmen. Es gibt vier verschiedene Arten von Komponenten, von denen nur Aktivitäten an der folgenden Arbeit interessiert sind. Jede Aktivität bietet eine Benutzeroberfläche. Aktivitäten können sich gegenseitig aufrufen, jedoch kann immer nur eine Aktivität aktiv sein [21]. Die einzelnen Komponenten der Anwendung oder verschiedene Anwendungen können über ICC miteinander kommunizieren [19; 21] Die neue Anwendung wird als Android-Anwendungspaket (.apk) installiert. Dieses Paket enthält eine .dex-Datei (Dalvik Executable Format). Hier sind alle Bytecodes der Anwendung zusammengefasst. Die Tatsache, dass DVM und ART nur eine .dex-Datei benötigen, um das Programm auszuführen, ist einer der Unterschiede zu JVM, die eine Ordnerstruktur mit Bytecode-Dateien (.class) für jede einzelne Klasse erfordert [19] . Auch der Programmstart von JVM und DVM/ART ist unterschiedlich. Der Entwickler markierte die Aktivität als Einstiegspunkt [6] und nicht als Hauptmethode im DVM / ART-Projekt. Jede installierte Anwendung erhält eine eigene Benutzerkennung im Linux-Dateisystem und ein ihr zugeordnetes eigenes Home-Verzeichnis, in dem die Anwendungsdaten enthalten sind [21]. Anwendungen können Daten in Unterordnern speichern, die Einstellungen von SharedPreferences API1 werden auch in Unterordnern des Hauptverzeichnisses als erweiterbare Auszeichnungssprachendateien (.xml-Dateien) gespeichert. 2.1.3 Sicherheitskonzept Das Sicherheitskonzept von Android lässt sich nach [19] in fünf Punkte unterteilen: Discretionary Access Control (DAC), Sandbox, Berechtigungsmechanismus, Komponentenpaketierung und Anwendungssignatur DAC ist vollständig vom Linux-Kernel abgeleitet. Das Dateisystem unterstützt und verwaltet den Eigentümer sowie die Lese-, Schreib- und Ausführungsberechtigungen für alle Dateien auf drei Arten: für den Eigentümer, für die Gruppe und für alle. Prüfen Sie beim Zugriff auf eine Datei, ob der zugreifende Benutzer über die Attribute Eigentümer, Gruppe oder Eigentümer die erforderliche Berechtigung zum Lesen, Schreiben oder Ausführen besitzt. Anwendungen werden in einer sogenannten Sandbox voneinander isoliert. Dafür wird DAC verwendet: Systemdateien gehören "system\" oder "root\", aber jede Anwendung hat ihre eigene Benutzer-ID, die sich von "system\" und "root\" unterscheidet. Die Anwendungsdaten jeder Anwendung werden nur der besitzenden Anwendung über den DAC bereitgestellt. Damit eine Anwendung auf eine Datei zugreifen kann, muss diese explizit (für sie) freigegeben werden. Android verwendet einen Berechtigungsmechanismus für Anwendungen. Dieser verwaltet die verschiedenen Berechtigungen, die die Anwendung anfordern kann, wie z. B. Zugang zum Internet, zur Kamera oder zum Telefon. Die angeforderte Berechtigung kann nur geändert werden, wenn die Anwendung installiert ist. Um die erforderlichen Berechtigungen zu erhalten, müssen die Systembenutzer diesen Berechtigungen bei der Installation der Anwendung zustimmen. Die Verweigerung der Zustimmung verhindert die Installation. Standardmäßig sind die Komponenten, aus denen jede Anwendung besteht, für alle auf dem System installierten Anwendungen sichtbar. Die Komponentenkapselung kann verwendet werden, um den Zugriff auf bestimmte Komponenten einzuschränken. Einerseits können Sie eine einzelne Komponente als privat deklarieren, andererseits können Sie die öffentliche Bereitstellung von Komponenten für die gesamte Anwendung verbieten.Jede Android-Anwendung muss bei der Bereitstellung vom Entwickler signiert werden. Dazu kann ein selbstsigniertes Zertifikat verwendet werden. Die Signatur ist in der .apk-Datei enthalten und kann vom Endbenutzer überprüft werden. Anwendungssignaturen können auch signaturbasierte Berechtigungen in ICC aktivieren. 2.1.4 Root-Berechtigung "Root\ bezeichnet ein Benutzerkonto mit allen verfügbaren Berechtigungen in der Unix- und Linux-Welt. Daher hat der Root-Benutzer volle Zugriffsberechtigungen und wird dem System ernsthaften Schaden zufügen. Der Benutzer wird normalerweise nicht als täglicher Benutzer verwendet Benutzerkonto, aber nur für Verwaltungsaufgaben Da Android-Geräte auf dem Linux-Kernel basieren, können sie auch Root-Benutzer haben. Read Less