https://www.golem.de/2002/146639-222227-222226_rc.jpg
Jann Horn beschreibt einen vermeidbaren Fehler von Samsung und zieht daraus Schlüsse für das Android-Ökosystem.(Bild: Samsung)

Android-Hersteller bauen Fehler in Security-Funktionen ein

Mit eigenen Änderungen der Android-Gerätehersteller am Kernel und an Sicherheitsfunktionen schleichen sich auch vermeidbare Fehler ein, schreibt ein Google-Entwickler. Grund sei die fehlenden Zusammenarbeit mit der Linux-Kernel-Community.

by

Die eigenen Änderungen am Linux-Kernel durch Android-Gerätehersteller sind für Nutzer wie auch für Android-Hersteller Google oft ein nerviges Ärgernis. Wie der Sicherheitsforscher Jann Horn nun im Blog von Googles Project Zero schreibt, sind diese Erweiterungen durch die Gerätehersteller aber auch eine "häufige Quelle von Sicherheitslücken".

Um deren Ausnutzung zu verhindern oder zumindest die Gefahr dafür zu reduzieren, arbeite Google selbst an einigen Sicherheitsmechanismen. Dazu werde etwa der Zugriff bestimmter Prozesse auf Gerätetreiber verhindert, was über die Hardwareabstraktionsschicht HAL forciert werde. Darüber hinaus gebe es viele Standardschnittstellen des Kernels wie für USB- oder PCI-Geräte, die die Pflege und Absicherung vereinfachen könnten, so Horn.

"Leider ist es schwieriger, die Angriffsfläche zu reduzieren, die entsteht, wenn Anbieter die Kernfunktionalität des Kernels ändern", heißt es weiter. Der Entwickler führt dies exemplarisch an einem kürzlich gefundenen Fehler im Kernel eines Samsung-Telefons aus. Dieser zusätzliche Code sei laut Horn aber die Kosten nicht wert. Immerhin werde damit die Angriffsfläche erhöht und es erschwere es, den Kernel auf neuere Upstream-Versionen zu updaten, was laut Horn eigentlich sehr viel häufiger passieren sollte, als es derzeit der Fall ist.

Upstream für Android wäre besser

Horn beschreibt danach sehr ausführlich logische Fehler und einen Speicherfehler in Samsungs selbst erstelltem Kernel-Subsystem Process Authenticator. Zum erfolgreichen Ausnutzen der Lücken greift Horn auf einen weiteren Fehler zurück, der bereits im Herbst 2018 vom Entwickler selbst gefunden wurde.

Dieser Fehler ist im Hauptzweig des Linux-Kernels schnell behoben worden sowie auch im sogenannten Android-Common-Kernel. Auf dem untersuchten Samsung-Gerät ist der Patch aber auch ein Jahr später noch nicht angekommen. Google selbst hatte im vergangenen Jahr mit ähnlichen Problemen zu kämpfen.

Zwar sind die von Horn beschriebenen Fehler nun behoben. Der Forscher ist sich aber sicher, dass die Veränderung des Linux-Kernels ohne Rücksprache mit den Maintainern des Hauptzweigs subtile Probleme verursachen könnte.

Und wenn Hersteller diese schon durchführen, sollten sie besser im Upstream-Zweig eingepflegt oder als Userspace-Funktion umgesetzt werden, was Sicherheitsvorteile biete. Horn habe auch schon in der Vergangenheit die Macher von Linux-Distributionen für ihren Umgang mit Patches und eigenen Erweiterungen kritisiert. Unter Android sei die Situation aber noch viel schlimmer, heißt es in dem Blogeintrag.

"Im Idealfall sollten alle Anbieter unterstützte Upstream-Kernel verwenden und häufig deren Updates einpflegen", schreibt Horn. Dies ist jedoch mit neuen Android-Telefonen der Hersteller auch nach mehr als zehn Jahren Arbeit an dem System noch nicht möglich. Google versucht jedoch mit Zertifizierungen und zwingenden Schnittstellen dafür zu sorgen, dass künftig zumindest ein generisches Kernel-Image auf vielen verschiedenen Android-Geräten läuft.