Android N: Neue Mediaserver-Architektur soll Sicherheitslücken wie Stagefright verhindern
Im letzten Jahr hat der Stagefright-Bug die Android-Welt in Atem gehalten und hätte es ermöglicht, die nahezu volle Kontrolle über bis zu 1 Milliarde Android-Geräte zu übernehmen. Schuld war ein sehr anfälliger Mediaserver, der Dateien ohne Nachfrage geöffnet und den enthaltenen Code ausgeführt hat. Mit Android N will Google nun sicher stellen, dass sich ein solches Szenario nicht wiederholt.
Letztes Jahr im Sommer wurde sowohl Google als auch alle Android-Nutzer von einer schweren Lücke in Android kalt erwischt: Der im Betriebssystem enthaltene Mediaserver ist für die Verarbeitung von Bildern und Videos zuständig und öffnet vollautomatisch und ohne zutun des Nutzers alle eingehenden Dateien und verarbeitet diese. Ist in einer Datei, die etwa per MMS kommen kann, Schadcode enthalten, wird dieser ausgeführt und ermöglicht den vollen Zugriff auf das Mikrofon, die Kamera und weitere Ressourcen.
Das große Problem an dieser Lücke war es bzw. ist es, dass der Mediaserver so tief ins Betriebssystem integriert ist, dass dieser nicht über den Play Store aktualisiert werden konnte. Google hatte die Lücke längst gestopft, aber um den Fix auf die Smartphones der Nutzer zu bringen war man auf die updatefaulen Smartphone-Hersteller angewiesen. Dies zeigte auch das eigentliche große Problem hinter der Android-Fragmentierung auf, und was es bedeutet dass Google selbst keinen Einfluss auf die Updates der Smartphones hat.
A root cause analysis showed that the libstagefright bugs primarily occurred in code responsible for parsing file formats and media codecs. This is not surprising—parsing complex file formats and codecs while trying to optimize for speed is hard, and the large number of edge cases makes such code susceptible to both accidental and malicious malformed inputs
In Android N soll sich das ganze nicht wiederholen:
Damit sich ein solches Szenario nicht noch einmal wiederholt, hat man für das kommende Betriebssystem Android N nun vorgesorgt: Während der Mediaserver bisher die volle Kontrolle über alle Medien hatte, wird dieser in Android N nun in viele kleine Prozesse aufgeteilt: Der Kamera-Teil hat nur noch Zugriff auf die Kamera, der Zugriff auf Bluetooth ist nur noch für den Audio-Teil möglich usw. Dadurch wird sicher gestellt, dass selbst bei einem Angriff des Mediaservers nicht mehr der volle Zugriff gewährt wird.
The cameraserver may access the camera, only the audioserver may access Bluetooth, and only the drmserver may access DRM resources. This means that compromising libstagefright would grant the attacker access to significantly fewer permissions and also mitigates privilege escalation by reducing the attack surface exposed by the kernel
Auch der Schutz der einzelnen Mediaserver-Komponenten vor solchen Angriffen wurde verbessert: In vielen Fällen werden solche komplizierten Algorithmen über die „Integer Overflows“ überlistet, also über Zahlenwerte die die Grenzen der Variablen übersteigen und so unvorhergesehene Dinge tun können. Im gesamten Mediaserver werden sowohl positive als auch negative Integer-Werte ständig überwacht und ein Overflow durch diesen höhergestellten Prozess verhindert.
Das Grundproblem, dass der Mediaserver nicht über die Play Services aktualisiert werden kann, hat Google damit zwar nicht gelöst, aber der potenzielle Schaden wird schon einmal stark eingeschränkt. Eine 100%ige Sicherheit wird es niemals geben, aber wenn Google selbst die Kontrolle über die Updates des Betriebssystems – gerade von solchen kritischen Komponenten – übernehmen würde, ließen sich sicherlich einige Probleme lösen.
GoogleWatchBlog bei Google News abonnieren | GoogleWatchBlog-Newsletter