Wie sicher ist Firefox OS?

Sicherheit des mobilen Mozilla-Betriebssystems fragwürdig

19. September 2013, 6:16 Uhr | LANline/jos

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. In seinem Blog nahm Peter Pi, Threats Analyst bei Trend Micro, ausführlich dazu Stellung.

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-basierende Laufzeit-Engine, in der Nutzer Apps ablaufen lassen können, die HTML, Javascript und andere Web-Techniken einsetzen.

Im Allgemeinen verfügt Firefox laut Pi über ein gutes Berechtigungs-Management für Apps, doch können Kernprozesse (mit mehr Privilegien) Ziele für Exploits werden. Zudem seien manche HTML-5-Features anfällig für mögliche Schwachstellen.

Überblick über die Firefox-OS-Architektur

Das Firefox OS soll Web-basierende Anwendungen mit der darunterliegenden Hardware verbinden. Dafür nutzt es einen integrierten Stack, der aus den in Bild 1 beschriebenen Schichten besteht.

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 dar. Die Apps bestehen aus HTML5, CSS, Javascript, Images, Medien etc.

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 sind nur vom Hersteller auf dem Gerät vorinstallierbar.

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 etc.).

Auch kommunizieren die Apps nur mit dem B2G-Prozess (Boot to Gecko, Bild 2) 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.

Ausnutzen 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 beliebigen Code 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-basierende Botnets. Diese HTML-5-Angriffe werden über den Hauptspeicher laufen und daher für herkömmliche Anti-Malware-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 für die eigenen Apps.

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

Bild 1. Firefox OS-Stack

Bild 2. Die Gecko-Schicht umfasst 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.

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Dögel IT-Management

Matchmaker+