Login
Newsletter
Werbung

Do, 31. August 2017, 11:55

Software::Android

Die Schutzmechanismen des Kernels in Android Oreo

Sami Tolvanen vom Android-Security-Team hat beschrieben, welche neuen Schutzmechanismen der Kernel der neu erschienenen Android-Version 8.0 »Oreo« nutzt. Alle Maßnahmen sind bereits im offiziellen Linux-Kernel, Google hat dieses Mal offenbar keine neuen Entwicklungen hinzugefügt.

Android 8 »Oreo«

Google

Android 8 »Oreo«

Wenige Tage nach der Freigabe von Android 8.0 »Oreo« liegt nun eine Beschreibung Schutzmechanismen des Android-Kernels vor. Wie Sami Tolvanen vom Android-Security-Team schreibt, haben die Sicherheitsmaßnahmen für eingebaute Programme und Apps in Android dazu geführt, dass Angreifer wieder verstärkt nach Sicherheitslücken im Kernel Ausschau halten. Als Konsequenz wurden ein Drittel der im vergangenen Jahr gefundenen Sicherheitslücken in Android im Kernel entdeckt. In Android 8.0 »Oreo« wurden daher weitgehende weitere Maßnahmen ergriffen, um den Kernel zu »härten« und die Anzahl und die möglichen Auswirkungen von Sicherheitslücken zu verringern.

Die Beschreibung ergänzt den Artikel vom letzten Jahr, der die Sicherheitsmechanismen im Kernel bis einschließlich Android 7.0 »Nougat« beschrieb. Android 7 forderte von den Apps, Systemaufrufe mit seccomp-bpf zu filtern, wenn sie Eingaben verarbeiten, und baute auf SELinux zum generellen Schutz des Kernels, das um eine Filterung von ioctl-Aufrufen erweitert wurde. Einige dieser Maßnahmen waren neu und wurden in den offiziellen Linux-Kernel übernommen. Android 8 hingegen enthält keine zusätzlichen Eigenentwicklungen, sondern übernimmt vier Maßnahmen aus dem offiziellen Kernel.

Die erste Maßnahme verstärkt die Adressprüfung beim Kopieren von Daten zwischen Kernel und Anwendungen. Fehlende oder falsche Prüfungen an dieser Stelle waren seit 2014 für 45% aller Kernel-Lücken in Android verantwortlich. Dieser Hardended usercopy-Patch wurde von Linux 4.8 übernommen und auf alle Android-Kernel ab Version 3.18 zurück portiert.

Die zweite Maßnahme ist eine Emulation von »Privileged Access Never (PAN)« für Geräte, die dies in der Hardware nicht unterstützen. PAN wurde bereits vor einem Jahr eingeführt, griff aber kaum, weil die meiste Hardware, auf der Android läuft, keine Unterstützung dafür bietet. Nun wurde für solche Hardware eine Emulation in Software geschaffen, in Linux 4.3 für ARM und und Linux 4.10 für ARM64. PAN verhindert, dass der Kernel auf den gesamten Speicher aller Anwendungen zugreifen kann, was überflüssig ist und Angriffsmöglichkeiten schafft.

Kernel Address Space Layout Randomization (KASLR) ist die Erweiterung der zufallsgesteuerten Adresszuweisungen an Apps auf den Kernel selbst. Die Maßnahme macht es Angreifern unmöglich, die Adressen ihrer Angriffsziele im Voraus zu wissen, und im Idealfall sehr schwer, diese dynamisch zu ermitteln. KASLR für ARM64 wurde in Linux 4.6 eingebaut und in Android auch auf Linux 4.4 zurückportiert.

Die letzte Maßnahme ist, so viel Kernel-Speicher wie möglich nach der Initialisierung vor Änderungen zu schützen. Sie ist seit Linux 4.6 verfügbar und in Android wiederum ab Linux 3.18.

Die Reduktion der Angriffsfläche in Android Oreo ist den Entwicklern zufolge besonders auch deshalb bedeutsam, da 85% der bekannt gewordenen Kernel-Sicherheitslücken in Treibern steckten, die von den Herstellern hinzugefügt werden. Auf diese hat in der Regel außer dem Hersteller niemand Einfluss, daher ist es wichtig, dass diese Fehler, selbst wenn sie weiter bestehen, das System nicht mehr gefährden können.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung