Nachrichten

IBM findet kritische Sicherheitslücke in Android

Mobile | HT4U.net
IBMs Sicherheitsexperten haben eine kritische 0-Day-Lücke (CVE-2015-3825) in Android entdeckt und konnten darüber beliebige Apps mit den privilegierten Rechten des System-Server-Prozesses ausführen. Auf einigen Geräten verschafften sich die Forscher sogar Kernel-Rechte durch das Laden beliebiger Kernel-Module. Die Schwachstelle steckt in Android 4.3 bis 5.1 sowie in der ersten Vorschauversion von Android M. Damit sind zirka 55 Prozent aller Android-Geräte gefährdet.

Die beiden Forscher Or Peles und Roee Hay haben die Arbeit von Jann Horn aufgegriffen und sich im Android-Framework auf die Suche nach einer serialisierbaren Klasse gemacht, welche die Finalize-Methode sowie ein Feld, das sie unter ihre Kontrolle bringen können, enthält. Unter 13.321 Klassen wurden sie zweimal fündig, wobei die Klasse OpenSSLX509Certificate letztendlich zum Erfolg führte: Sie enthält nämlich den Zeiger mContext, welchen die Forscher übernehmen konnten, um eine beliebige Speicheradresse zu überschreiben. Den Sicherheitsexperten kam hierbei zugute, dass unter Android alle Apps und auch ein paar Dienste Abkömmlinge des Zygote-Prozesses sind. Da alle Äste dieses Prozesses dasselbe Speicherlayout verwenden, ist die Würfelung der Speicheradressen ziemlich nutzlos.

Dank des Schreibzugriffs konnten sie den Zeiger einer Rückruffunktion auf system_server austauschen und diesen dann aufrufen, um die Kontrolle über den Programmzähler zu erlangen. Der Programmzähler wird dann auf ein Tool gelenkt, welches Stack-Zugriffe umbiegt und mit rücksprungorientierter Programmierung (ROP) einen Speicherbereich als ausführbar reserviert – system_server verfügt über die hierfür benötigten Rechte. Im Anschluss muss nur noch der eigene Programmcode in den ausführbaren Bereich kopiert und gestartet werden. Nun können die Sicherheitsforscher beliebige Apps überschreiben, Daten abgreifen, Zugriffskontrollen manipulieren sowie Kernel-Module laden. Dieser Angriff lässt sich auf alle mit dem Android-Framework erstellten Apps und Dienste anwenden, welche Intents oder andere zwischenprozessliche Kommunikationen annehmen.

Auf der Suche nach weiteren angreifbaren Klassen wurden die beiden Sicherheitsexperten auch in sechs Entwicklungspaketen (SDKs) – Jumio (CVE-2015-2000), MetaIO (CVE-2015-2001), PJSIP PJSUA2 (CVE-2015-2003), GraceNote GNSDK (CVE-2015-2004), MyScript (CVE-2015-2020) und esri ArcGis (CVE-2015-2002) – fündig. Mit Ausnahme von esri ArcGis nutzen alle Pakete das Tool SWIG, um die Interoperabilität zwischen C/C++-Code und Hochsprachen wie Java zu erreichen. Wenn ein Entwickler SWIG schlecht konfiguriert, erzeugt das Tool angreifbaren Code, bei dem sich die Klassen swigCPtr und swigCMemOwn von einem Angreifer übernehmen lassen.

Google hat bereits reagiert und mContext in OpenSSLX509Certificate als transient gekennzeichnet, so dass sich das Feld nicht mehr übernehmen lässt. Den Patch gibt es aber nur für Android 4.4 bis 5.1 sowie für Android M ab Build MPZ79M. Für Android 4.3 ist hingegen kein Update geplant, und wann die Flicken in Form von Firmware-Updates auf den Geräten der Benutzer landen, steht wieder einmal in den Sternen. Auch die Schwachstellen in den sechs SDKs wurden zwischenzeitlich behoben, und die Entwickler von SWIG haben in der Version 3.0.7 sichergestellt, dass fehlerhafte Einstellungen nicht zu verwundbarem Code führen.

Autor: mid
[]







Stichworte zur Meldung: Kritische Android Betriebssystem Google Aufgetaucht