Wie sicher ist Firefox OS?

Originalartikel von Peter Pi, Threats Analyst

Mit Firefox OS unternimmt Mozilla einen ersten Vorstoß in den Markt der mobilen Betriebssysteme. Angesichts der steigenden Zahl der mobilen Bedrohungen, vor allem für die Android-Plattform, stellt sich die Frage, wie sicher das neue Betriebssystem ist.

Der Vertrieb des Betriebssystems hat bereits begonnen: ZTE verkauft entsprechende Geräte über eBay und Telefonica kümmert sich um den südamerikanischen Markt.

Firefox OS nutzt einen Linux-Kernel und bootet in eine Gecko-basierte Laufzeit-Engine, in der Nutzer Apps ablaufen lassen können, die HTML, JavaScript und andere Webtechniken einsetzen.

Im Allgemeinen verfügt Firefox über ein gutes Berechtigungsmanagement für Apps, doch können Kernprozesse (mit mehr Privilegien) Ziele für Exploits werden. Zudem sind HTML 5-Eigenschaften anfällig für mögliche Schwachstellen.

Überblick über die Firefox OS-Architektur

Das Firefox OS soll webbasierte Anwendungen mit der darunterliegenden Hardware verbinden. Dafür nutzt es einen integrierten Technologie-Stack, der aus den folgenden Schichten besteht:

 

Bild 1. Firefox OS-Stack

 Gonk umfasst den Linux-Kernel, Systembibliotheken, Firmware und Gerätetreiber.

Gecko ist die Anwendungslaufzeit-Schicht, die das Framework für die App-Ausführung liefert, und enthält die Web-APIs für den Zugriff auf die Funktionen des mobilen Geräts.

Gaia stellt die Web Apps-Suite für die Nutzererfahrung. Die Apps bestehen aus HTML5, CSS, JavaScript, Images, Medien usw.

Die Gecko-Schicht fungiert als Vermittler zwischen Web Apps (in der Gaia-Schicht) und dem Handy. Auch ist sie für die Durchsetzung der Berechtigungen zuständig und verhindert den Zugrifff auf nicht autorisierte Anfragen.

Applikationssicherheit

Firefox OS hat sein eigenes Design für die Anwendungsschicht und kennt drei Arten von Apps: gehostete, privilegierte und zertifizierte Apps. Gehostete Apps können von jeder Website ohne weitere Überprüfung installiert werden. Damit erhalten die Apps keine weiteren Berechtigungen, neben denen, die bereits auf der Website vorhanden sind. Privilegierte Apps dürfen mehr Berechtigungen anfordern, doch sie müssen überprüft und vom Market signiert werden. Zertifizierte Apps schließlich haben die meisten Berechtigungen und können nur vom Hersteller auf dem Gerät vorinstalliert werden.

Bild 2. Die Gecko-Schicht beinhaltet einen B2G-Prozess (Boot-to-Gecko), der mit hohen Privilegien im Hintergrund läuft. Jede App läuft in einem Content-Prozess mit niedriger Autorität. Jede Anfrage einer App an das Gerät muss erst durch den B2G-Prozess, der die Berechtigungen der App prüft.

 Sandboxing

Firefox OS bietet ausführliches Sandboxing. Jede App läuft in ihrem eigenen Worker Space und kann lediglich auf die Web APIs und Daten zugreifen, für die es berechtigt ist. Das Gleiche gilt auch für die zu dem Worker Space gehörigen Ressourcen (indizierte DBs, Cookies, Offline-Speicher usw.).

Auch kommunizieren die Apps nur mit dem B2G-Prozess und nicht mit anderen Prozessen oder Apps. Sie laufen nicht unabhängig von B2G und können einander auch nicht „öffnen“. Die „Kommunikation“ zwischen den Apps verläuft indirekt und wird von B2G vermittelt.

Ausnützen des B2G-Prozesses

Gelingt es einem Angreifer in den B2G-Prozess einzudringen, so kann er High-Level-Berechtigungen erlangen – ähnlich dem Root-Zugriff.

Kürzlich wurde eine Sicherheitslücke in Firefox 17 öffentlich, die dazu genutzt werden konnte Zufallscode auszuführen. Es ist erwiesen, dass diese Lücke auch den B2G-Prozess zum Absturz bringen kann und die Kontrolle über den IP (Instruction Pointer) ermöglicht. Somit könnte ein Angreifer Zufallscode mit den Privilegien des B2G-Prozesses auf dem Gerät ausführen. Auch die Mozilla-Dokumentation selbst nennt die Ausnützung des B2G-Prozesses als mögliche Gefahr für Firefox OS, weil der Content-Prozess „schmutzige“ Daten an den B2G-Prozess senden kann.

HTML 5-Schwachstellen

Die Apps für Firefox OS verwenden HTML 5, und daher ist es wahrscheinlich, dass die Sicherheitslücken der Auszeichnungssprache für Angriffe auf das mobile Betriebssystem künftig missbraucht werden. Laut einigen Forschern lassen sich HTML 5-Funktionen für Heap Spraying einsetzen. Mit dem HTML 5-Befehl Uint8ClampedArray kann der Hauptspeicher sehr effizient gefüllt werden. Auch ist es damit einfach, eine stabile Adresse zu finden, die mit der Payload gefüllt wird.

Trend Micro hat in einem früheren Forschungspapier bereits aufgezeigt, wie HTML 5 verschiedentlich missbraucht werden kann, etwa für Spamming, nicht autorisierte Bitcoin-Generierung, Phishing und Browser-basierte Botnets. Diese HTML 5-Angriffe werden über den Hauptspeicher gehen und daher für herkömmliche Antimalware-Lösungen eine Herausforderung darstellen.

HTML 5 wird immer beliebter, unabhängig vom Betriebssystem, und daher werden immer mehr Apps und Websites die Technik nutzen. Amazon akzeptiert auch schon HTML 5-Apps.

Weitere Informationen liefert der Forschungsbericht „HTML5 Overview: A Look At HTML5 Attack Scenarios”.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*