Kommentar zur Sicherheit von Android 4.3 Warum stellt Google die Patches für WebView ein?

Autor / Redakteur: Tod Beardsley* / Stephan Augsten

Für die Ankündigung, die WebView-Komponente in älteren Android-Versionen nicht mehr mit Updates zu versorgen, hat Google vergangene Woche für Aufsehen gesorgt. Immerhin ist die am weitesten verbreitete Version 4.3, Codename Jelly Bean, davon betroffen. Als Penetrationstester kennt Rapid7 die Auswirkungen im Detail.

Um die Sicherheit von Android 4.3 alias Jelly Bean und frühere Versionen ist es künftig nicht gut bestellt.
Um die Sicherheit von Android 4.3 alias Jelly Bean und frühere Versionen ist es künftig nicht gut bestellt.
(Bild: Google / Archiv)

Im vergangenen Jahr haben der unabhängige Sicherheitsforscher Rafay Baloch (von „Rafay's Hacking Articles“) und Joe Vennix von Rapid7 fast routinemäßig Android-WebView-Exploits herausgebracht, die sowohl auf veröffentlichten als auch eigenen Erkenntnissen basierten.

Mittlerweile enthält Metasploit dank Rafay, Joe und anderen Mitgliedern der Open-Source-Sicherheitscommunity elf solcher Exploits. Diese Exploits betreffen im Allgemeinen „nur“ Android 4.3 und frühere Versionen – entweder das native Android 4.3 oder mit 4.3-WebView-Kompatibilität erstellte Apps.

WebView ist die Kernkomponente, die zur Darstellung von Webseiten auf Android-Geräten verwendet wird. Es wurde in Android KitKat (4.4) durch eine aktuellere WebView-Version auf Chromium-Basis ersetzt, die auch der beliebte Chrome-Browser nutzt.

Trotz dieser Änderung werden Android-Sicherheitslücken sicherlich weiterhin auftreten und wohl nicht so schnell geschlossen werden. Dies liegt an der neuen Vorgehensweise des Android-Sicherheitsteams von Google, über die bisher nur wenig berichtet wurde: Google stellt keine Sicherheitspatches für Schwachstellen mehr bereit, die nur Versionen von Androids nativem WebView vor 4.4 betreffen.

Das heißt, Google unterstützt jetzt nur die aktuelle Android-Version (Lollipop oder 5.0) und die vorhergehende Version (KitKat oder 4.4). Für Jelly Bean (4.0 bis 4.3) und frühere Versionen wird Google der Sicherheitsabteilung (security@android.com) zufolge keine WebView-Sicherheitsaktualisierungen mehr liefern.

Wenn bei Android 4.3 neue Schwachstellen erkannt wurden, wurden diese von Google bis vor kurzem noch ziemlich schnell beseitigt. Schließlich nutzten die meisten Anwender bis Dezember 2013 noch die Android-Version „Jelly Bean“. Das letzte Jelly-Bean-Release wurde vor knapp über einem Jahr im Oktober 2013 herausgebracht. Deshalb wurde auch der universelle Cross-Site-Scripting-Bug behoben, wie aus dem Android-Änderungsprotokoll hervorgeht und auf Rafays Blog berichtet wurde.

Google über die Bereitstellung von Patches für Versionen vor KitKat

Auf die Meldung einer neuen Schwachstelle in WebView-Versionen vor 4.4 reagierten die Sicherheitsexperten von Google dann mit dieser Mitteilung:

„Wenn die betroffene Version [von WebView] älter als 4.4 ist, entwickeln wir die Patches generell nicht selbst, aber wir prüfen gerne Patches, die mit dem Fehlerbericht bei uns eingehen. Wir benachrichtigen zwar die OEMs, aber abgesehen davon sind wir nicht in der Lage, uns um Berichte zu kümmern, die Versionen vor 4.4 betreffen, sofern die Berichte nicht schon einen Patch enthalten.“

Google liefert also für 4.3 keine Patches mehr. Eine Nachricht, die Stirnrunzeln auslöst. Mir ist kein anderes Programm zur Reaktion auf Schwachstellen bekannt, bei dem derjenige, der den Fehler meldet, auch einen eigenen Patch liefern soll. Genau dies scheint jedoch Googles Position zu sein.

Diese Änderung der Sicherheitsrichtlinien mutet so bizarr an, dass ich zuerst nicht glauben konnte, dass es wirklich die offizielle Vorgehensweise von Google ist. Deshalb bin ich der Sache nachgegangen und habe um Bestätigung gebeten. Als Antwort erhielt ich eine nahezu identische Aussage von security@android.com:

„Wenn die betroffene Version [von WebView] älter als 4.4 ist, entwickeln wir die Patches generell nicht selbst, informieren Partner jedoch über das Problem [...] Wenn Patches mit dem Bericht eingereicht oder im AOSP veröffentlicht werden, stellen wir sie Partnern auch gern zur Verfügung.“

In einer Klarstellung bestätigte das Android-Sicherheitsteam zumindest, dass andere Komponenten vor KitKat, wie z. B. die Multi-Media-Player, weiterhin mit rückportierten Patches rechnen können.

Jelly Bean ist schlichtweg zu alt

Google begründet die Änderung seiner Vorgehensweise damit, dass es keine Geräte von Drittanbietern, auf denen der Android-Browser läuft, mehr zertifiziert. Der beste Weg, die Sicherheit von Android-Geräten zu gewährleisten, sei es, sie auf die neueste Android-Version zu aktualisieren.

Anders gesagt ist Googles Standpunkt, dass Jelly Bean-Geräte zu alt sind, um unterstützt werden – schließlich liegen sie zwei Versionen hinter dem aktuellen Lollipop-Release. Auf den ersten Blick scheint dies eine vernünftige Entscheidung zu sein. Den Support für ein Softwareprodukt, das zwei Versionen hinterherhinkt, aufrecht zu erhalten, wäre sowohl für proprietäre als auch Open Source-Software ziemlich ungewöhnlich.

Viele Anbieter stellen sogar den Support ein, sobald die nächste Version veröffentlicht wird, und viele haben gar keine klaren Richtlinien zum Ende der Lebensdauer (EOL). Interessanterweise haben weder Google noch Apple EOL-Richtlinien für Android oder iOS veröffentlicht, während Microsoft und BlackBerry definitive Angaben zum Ende des Lebenszyklus und der Einstellung des Verkaufs ihrer Produkte machen.

Die meisten Android-Geräte sind gefährdet

Dieses Vorgehen mag in der Branche zwar üblich sein, wie sieht die Situation jedoch in der Praxis aus? Mit einem Blick auf Googles eigene monatliche Statistik zur Versionsverbreitung lässt sich die Vorstellung, es gebe nur noch wenig Geräte mit einer Android-Version vor KitKat, einfach widerlegen.

Stand 5. Januar 2015 lief die aktuelle Android-Version laut dem Googles Android Developer Dashboard auf weniger als 0,1 Prozent der Geräte am Markt. Lollipop erscheint in der Übersicht überhaupt noch nicht. Das ältere KitKat-Release hat rund zwei Fünftel des gesamten Android-Marktanteils.

Damit sind die verbleibenden 60 Prozent also „Legacy“-Geräte, die Google nicht mehr mit Sicherheitspatches unterstützt. Folgt man den von Gartner und dem WSJ veröffentlichten Zahlen zur Smartphone-Verteilung, so kommt man zu dem Schluss, dass es heute über 930 Millionen Android-Smartphones gibt, die von Google nicht mehr mit offiziellen Security-Patches unterstützt werden.

Wirtschaftlichkeit von Upgrades

Ich gehe davon aus, dass zudem die Anwender, die zurzeit Sicherheitslücken auf Geräten vor KitKat und ohne Chromium-WebView ausgesetzt sind, genau diejenigen sind, die höchstwahrscheinlich nicht in der Lage sind, „auf die neueste Android-Version zu aktualisieren“, um Security Patches zu erhalten.

Das neueste Google Nexus wird für ungefähr 660 US-Dollar verkauft, während bei der Suche nach „Android Smartphone“ auf Amazon an erster Stelle ein Gerät für unter 70 US-Dollar angezeigt wird. Das ist ein nahezu zehnfacher Preisunterschied, der auf zwei völlig unterschiedliche Anwendergruppen hinweist. Auf der einen Seite gibt es Nutzer, die gern bereit sind, mehrere hundert Dollar für ein Smartphone auf den Tisch zu legen, während andere nicht viel mehr als 100 US-Dollar ausgeben wollen oder können.

Beides zusammen – die Zweidrittelmehrheit der Anwender mit jetzt nicht mehr unterstützten Geräten und die Tatsache, dass diesen Anwendern ein Aufrüsten, d. h. ein Geräteneukauf, in der Praxis nicht möglich ist – bedeutet, dass jede neue Anfälligkeit, die im „veralteten“ Android entdeckt wird, auf dem Massenmarkt für lange Zeit ein Einfallstor für Exploits bieten wird.

Massenmarkt-Exploits im Vormarsch

Das sind natürlich gute Nachrichten für Penetrationstester. Der Zugriff auf Unternehmensdaten wird auf Android-Smartphones in vielen Fällen kinderleicht sein, und ich rechne damit, dass Penetrationstests zunehmend diese Geräte ins Visier nehmen werden. Es sind leider auch gute Nachrichten für Kriminelle, aus dem einfachen Grund, dass echte Betrüger sowieso vor nichts haltmachen.

Open-Source-Sicherheitsforscher veröffentlichen routinemäßig Schwachstellendetails und funktionierende Exploits. Dahinter steht die Hoffnung, dass diese Art von öffentlicher Diskussion und Enthüllung sowohl Anbieter als auch Nutzer auf die von Kriminellen genutzten Praktiken aufmerksam macht.

Durch das Publizieren dieser Sicherheitslücken sind es Anwender mittlerweile gewohnt, dass Hersteller sich der Sache annehmen und hinreichende Schutzmaßnahmen implementieren. Wenn der ursprüngliche Anbieter jedoch nicht bereit ist, Sicherheitslücken zu stopfen, selbst wenn diese offengelegt wurden, bleiben reguläre Nutzer leider permanent gefährdet.

Patches selbst entwickeln?

In diesem Zusammenhang ist es wichtig, darauf hinzuweisen, dass Android ein Open-Source-Betriebssystem ist. Gerätehersteller, Serviceprovider, Einzelhändler und sogar enthusiastische Anwender haben daher durchaus die Möglichkeit, eigene Patches zu schmieden. Das scheint heute teilweise auch schon so gehandhabt zu werden. Ein Sicherheitsproblem bei Version 4.3 kann beispielsweise nur Geräte von Kyocera, aber nicht von Samsung betreffen, selbst wenn beide das „gleiche“ Betriebssystem aufweisen.

Dies ist zwar generell eines der Kernversprechen von Open-Source-Software und insbesondere von Android, es lässt sich jedoch nicht feststellen, wie häufig dieses Patching tatsächlich erfolgt und wie effektiv die nicht von Google stammenden Patches bei Schwachstellen „alter“ Geräte in Zukunft sein werden.

Von Google bereitgestellte Android-Updates müssen bereits heute schon von Geräteherstellern und Netzbetreibern zuerst genehmigt werden. Ich kann mir nicht vorstellen, dass sich dieser Prozess verbessert, wenn sich Google selbst aus dem Patching-Geschäft verabschiedet hat. Denn es ist wenig wahrscheinlich, dass AT&T oder Motorola einen Patch übernehmen, der von irgendeinem Typen im Internet stammt.

Keine Patches = kein Eingeständnis

Erschwerend kommt hinzu, dass Google grundsätzlich keine Android-Schwachstellen veröffentlicht oder öffentlich kommentiert, selbst wenn diese im Rahmen angemessener Offenlegungsverfahren gemeldet wurden. Stattdessen sind Android-Entwickler und -Nutzer darauf angewiesen, dass Dritte etwaige Sicherheitslücken und ihre Auswirkungen erklären und in Open-Source-Repositories möglicherweise ein Patch veröffentlicht wird.

Google hat zum Beispiel unlängst CVE-2014-8609, eine Schwachstelle auf SYSTEM-Ebene, die das Offenlegen von Informationen ermöglichte, lediglich durch eine Patch-Commit-Meldung im Lollipop-Quellcode-Repository öffentlich anerkannt. Da Google jetzt beschlossen hat, keine Patches für „alte“ Android-WebView-Versionen mehr bereitzustellen, wird es Sicherheitsrisiken bei Geräten mit Betriebssystem-Versionen vor KitKat vermutlich überhaupt nicht mehr öffentlich eingestehen.

Google sollte Entscheidung nochmals überdenken

Die technischen Teams von Google gehören in vielerlei Hinsicht zu den besten, die es gibt, unter anderem was die Android-Entwicklung anbetrifft. Es ist daher äußerst besorgniserregend, dass sie sich in diesem Bereich nicht mehr um die Sicherheit kümmern werden. Als Softwareentwickler weiß ich aber natürlich auch, dass die Unterstützung alter Versionen meiner Software viel Aufwand verursacht.

Ich kann Googles Entscheidung, für Legacy-Software nicht mehr die Verantwortung zu übernehmen, durchaus nachempfinden. Allerdings vertraut auch nicht eine Milliarde Menschen ihre persönlichen Daten einer alten Version meiner Software an. In Anbetracht dessen hoffe ich, dass Google seine Entscheidung nochmals überdenkt, sobald die nächste die Datensicherheit gefährdende Schwachstelle bekannt wird.

* Tod Beardsley arbeitet als Sicherheitsforscher und Penetration Tester bei Rapid7.

(ID:43160476)