Security: Android bekommt automatische Speicherinitialisierung

Das soll typische Lücken in C verhindern. Außerdem erhält Android 11 einen neuen Allocator und einen Address Sanitizer für den Kernel.

Artikel veröffentlicht am ,
Android bekommt neue Sicherheitsfunktionen.
Android bekommt neue Sicherheitsfunktionen. (Bild: Justin Sullivan/Getty Images)

Das Android-Team von Google hat in seinem Developers Blog eine Reihe von Sicherheitsverbesserungen für das kommende Android 11 angekündigt. Diese umfassen vor allem Techniken, die die Ausnutzung typischer Fehler der Programmiersprachen C und C++ erschweren oder verhindern sollen. Dazu gehört unter anderem, dass Android künftig eine automatische Speicherinitialisierung nutzen wird.

Stellenmarkt
  1. Ingenieur FH / Bachelor (m/w/d) der Fachrichtung Elektrotechnik, Nachrichtentechnik, Hochfrequenztechnik ... (m/w/d)
    Bayerisches Landeskriminalamt, Königsbrunn
  2. IT Spezialist Identity Management (gn)
    HORNBACH Baumarkt AG, Bornheim bei Landau Pfalz
Detailsuche

Das zugrundeliegende Problem ist, dass es die Programmiersprachen C und C++ nicht forcieren, Variablen bei der Deklaration zu initialisieren. Das heißt, ihnen werden unter Umständen keine Werte zugewiesen. Das ist jedoch nicht definiertes Verhalten und kann etwa dazu führen, dass geschützte Inhalte von Speicherbereichen versehentlich offengelegt oder dass die Speicherbereiche direkt genutzt werden. Beides kann zu Sicherheitslücken führen.

Erst vor wenigen Wochen hatte Microsoft angekündigt, die Speicherinitialisierung für Windows umsetzen zu wollen. Nun folgt also auch Google mit Android. Dafür wird eine Funktion des Clang-Compilers verwendet, der Variablen künftig entweder mit Nullen oder bestimmten Mustern initialisiert. Das Google-Team hat dies für den gesamten Android-Userspace umgesetzt.

Auch der von Android genutzte Linux-Kernel bekommt eine automatische Initialisierung für Stack und Heap. Diese Technik ist bereits Teil des Hauptzweigs von Linux und wurde vom Android-Team auf dessen noch gepflegte Versionen 4.14, 4.19 und 5.4 zurückportiert. Für die Heap-Initialisierung setzt Google auf ein Boot-Flag, das dafür sorgt, neue Speicherbereiche bei der Zuweisung mit Nullen zu überschreiben. Der Stack wird über die Kernel-Option CONFIG_INIT_STACK_ALL initialisiert.

Scudo als Allocator

Golem Akademie
  1. Linux-Systemadministration Grundlagen
    25.-29. Oktober 2021, online
  2. Einführung in die Programmierung mit Rust
    21.-25. März 2022, online
  3. PostgreSQL Fundamentals
    6.-9. Dezember 2021, online
Weitere IT-Trainings

Android nutzt künftig standardmäßig auch das aus dem LLVM-Projekt stammende Werkzeug Scudo als Allocator zur Speicherzuweisung. Damit sollen typische Fehler wie Double free, Arbitrary free, Heap-based buffer overflow und Use-after-free erkannt und verhindert werden. Zwar sei das Werkzeug nicht perfekt und verhindere die Ausnutzung von Lücken nicht komplett, Tests hätten das Team jedoch vom positiven Nutzen überzeugt.

Als Teil von Scudo arbeitet außerdem GWP-ASan, das eventuelle Heap-Speicherfehler finden soll und darüber informiert. Ebenso weiter ausgebaut hat das Android-Team auch die Nutzung seines Hardware-Assisted Address Sanitizer (HWASAN), was mit Android 10 eingeführt wurde und nun auf den Kernel erweitert wird. Genutzt wird dafür ARMs Memory Tagging Extension (MTE).

Die Nutzung von sogenannten Sanitizern in Android hat Google außerdem weiter ausgebaut, etwa zur Nutzung mit der Bibliothek für Fonts oder jener zum Rendern des UIs. Gehärtet hat das Team damit auch seine NFC-Implementierung. Die ebenfalls schon länger genutzte Control-Flow-Integrity (CFI) hat das Team auf den Netzwerk-Daemon und den DNS-Resolver erweitert.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Arduino und Python
Bastler nimmt Audiokassette als Speichermedium für Retro-PC

Die Kassette kann nicht nur Lieder speichern, sondern auch Bitmuster. Ein Bastler baut dafür eine Schnittstelle mit 1,5 KBit/s Datenrate.

Arduino und Python: Bastler nimmt Audiokassette als Speichermedium für Retro-PC
Artikel
  1. Truth Social: Trumps soziales Netz bekommt Probleme mit Hackern und Lizenz
    Truth Social
    Trumps soziales Netz bekommt Probleme mit Hackern und Lizenz

    Hacker starten in Trumps-Netzwerk einen "Online-Krieg gegen Hass" mit Memes. Der Code scheint illegal von Mastodon übernommen worden zu sein.

  2. Bis Ende 2022: VW-Manager müssen wegen Chipkrise Verbrenner fahren
    Bis Ende 2022
    VW-Manager müssen wegen Chipkrise Verbrenner fahren

    2022 werden VWs Manager den Kurs des Unternehmenschefs Herbert Diess nicht fahren können - Elektroautos und Hybride können als Dienstwagen nicht bestellt werden.

  3. Alexa, Siri, Google: Bericht listet von Sprachassistenten gesammelte Daten auf
    Alexa, Siri, Google
    Bericht listet von Sprachassistenten gesammelte Daten auf

    Fünf Sprachassistenten reagieren auf menschliche Kommandos, sammeln aber auch viele Daten über Personen und Geräte - etwa Browserverläufe.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • AOC CQ32G2SE/BK 285,70€ • Dell Alienware AW2521H 360 Hz 499€ • Corsair Vengeance RGB PRO SL 64-GB-Kit 3600 253,64€ • DeepCool Castle 360EX 109,90€ • Phanteks Glacier One 240MP 105,89€ • Seagate SSDs & HDDs günstiger • Alternate (u. a. Thermaltake Core P3 TG Snow Ed. 121,89€) [Werbung]
    •  /