Share
Beitragsbild zu Google-Forscher entdecken Sicherheitslücken bei macOS-Sandboxen durch gezielte Analyse von Mach-IPC

Google-Forscher entdecken Sicherheitslücken bei macOS-Sandboxen durch gezielte Analyse von Mach-IPC

12. Mai 2025

Täglich verarbeiten hochprivilegierte System-Daemons unter macOS mehrere Hundert Interprozesskommunikationsnachrichten (IPC). Manche dieser Daemons nehmen dabei Daten auch aus Sandbox-Umgebungen oder von unprivilegierten Prozessen entgegen – ein potenzielles Einfallstor für Angreifer.

Ein Google-Sicherheitsforscher hat sich genau dieses Szenario zunutze gemacht. In einer aktuellen Analyse zeigt er, wie sich Mach-IPC-Nachrichten als Angriffsvektor einsetzen lassen, um gezielt nach Schwachstellen für sogenannte Sandbox-Escapes zu suchen – also Mechanismen, mit denen sich Prozesse aus ihren geschützten Umgebungen befreien können.

Mithilfe eines selbst entwickelten Fuzzing-Harness, dynamischer Instrumentierung sowie umfassender statischer und dynamischer Analysen gelang es dem Forscher, eine kritische Typkonflikt-Schwachstelle im Coreaudiod-Daemon von macOS aufzuspüren. Die Untersuchung beleuchtet nicht nur den technischen Ansatz, sondern geht auch auf Herausforderungen und notwendige Kompromisse während des Forschungsprozesses ein.

Für den Forscher war es der erste Ausflug in die Welt der macOS-Sicherheitsanalyse und des Fuzzing-Toolings. Mit seinem Beitrag will er anderen den Einstieg erleichtern und praktische Einblicke in die Methodik geben.

Im Rahmen seiner Forschung zu Sandbox-Escape-Schwachstellen unter macOS hat ein Google-Sicherheitsforscher mehrere Werkzeuge entwickelt, darunter einen maßgeschneiderten Fuzzing-Harness. Diese Tools stehen nun unter Open Source auf GitHub zur Verfügung: CoreAudioFuzz bei Project Zero

Der Ansatz: Wissensbasiertes Fuzzing

Für das Projekt kam ein hybrider Analyseansatz zum Einsatz, der automatisiertes Fuzzing mit manuellem Reverse Engineering kombiniert – eine Methodik, die als „wissensbasiertes Fuzzing“ bezeichnet wird. Inspiriert vom erfahrenen Sicherheitsforscher Ned Williamson, soll dieser Ansatz das Beste aus beiden Welten vereinen: die Effizienz automatisierter Testverfahren und die Präzision tiefer technischer Analyse.

Während das Fuzzing eine breite Palette an Eingaben generierte und systematische Fehler aufspürte, wurde in Phasen stagnierender Codeabdeckung auf manuelle Untersuchung zurückgegriffen. Dabei half die detaillierte Analyse nicht nur beim Verständnis der internen Abläufe, sondern auch bei der zielgerichteten Weiterentwicklung des Fuzzing-Harness.

Zwei zentrale Vorteile hebt der Forscher hervor:

  1. Stetiger Fortschritt – Der iterative Zyklus verhindert, dass die Forschung ins Stocken gerät.

  2. Tiefes Systemverständnis – Das manuelle Reverse Engineering vermittelt ein fundiertes Wissen über die Codebasis und erleichtert die Triagierung sicherheitsrelevanter Abstürze.

Der Arbeitsprozess gliederte sich in folgende Phasen:

  • Identifikation potenzieller Angriffsvektoren

  • Auswahl eines konkreten Ziels

  • Entwicklung eines Fuzzing-Harness

  • Durchführung von Fuzzing und Erfassung von Abstürzen

  • Analyse der Abstürze und der erreichten Codeabdeckung

  • Anpassung und Verbesserung des Test-Setups

  • Wiederholung der letzten Schritte zur Verfeinerung

Warum Mach IPC im Fokus steht

Ein zentrales Angriffsziel war die Interprozesskommunikation (IPC) in macOS – insbesondere Mach-IPC. Diese Mechanismen ermöglichen den Datenaustausch zwischen Prozessen und fungieren damit potenziell als Brücke von eingeschränkten, sandboxed Prozessen zu privilegierten Systemdiensten. Gerade in Browser-Sandboxen, wo der direkte Zugriff auf das Betriebssystem unterbunden ist, stellt IPC einen attraktiven Angriffsvektor für sogenannte Sandbox Escapes dar.

„Als Angriffsvektor für diese Untersuchung habe ich Mach-Messages ausgewählt, die niedrigste IPC-Komponente im MacOS-Betriebssystem. Ich habe mich vor allem dafür entschieden, weil ich die IPC-Mechanismen von MacOS auf ihrer grundlegendsten Ebene verstehen wollte und weil Mach-Messages in der Vergangenheit immer wieder Sicherheitsprobleme verursacht haben.“

Mach IPC: Der stille Risikofaktor im Herzen von macOS

Im Zentrum des Apple-Betriebssystems macOS arbeitet ein unscheinbarer, aber zentraler Mechanismus: Mach IPC. Dieser Kommunikationsdienst ermöglicht den Datenaustausch zwischen Anwendungen und Systemprozessen – darunter hochprivilegierte Daemons, die im Hintergrund eine Vielzahl kritischer Funktionen steuern. Viele dieser Dienste verarbeiten hunderte IPC-Nachrichten pro Sekunde – teils auch von nicht privilegierten oder sandboxed Prozessen. Genau hier setzen potenzielle Angriffsvektoren an.

Ein Team von Google Project Zero hat sich gezielt mit dieser Thematik befasst und dabei den Audio-Dienst coreaudiod ins Visier genommen – ein komplexer System-Daemon, der für die Verwaltung der Audio-Hardware unter macOS verantwortlich ist. Insbesondere der zugehörige Mach-Service com.apple.audio.audiohald erwies sich als besonders interessant für tiefergehende Sicherheitsanalysen.

Die Forscher entdeckten eine kritische Typverwirrungsschwachstelle, bei der manipulierte IPC-Nachrichten aus einer Sandbox heraus einen Speicherzugriff außerhalb des vorgesehenen Bereichs verursachen konnten – mit potenziellen Auswirkungen auf Systemintegrität und Sicherheit.

Wissensbasiertes Fuzzing statt reiner Automatisierung

Anstatt sich ausschließlich auf klassische, automatisierte Fuzzing-Tools zu verlassen, nutzten die Sicherheitsforscher einen wissensbasierten Ansatz. Diese Methodik kombiniert gezieltes Reverse Engineering mit der Flexibilität von Fuzzing und erwies sich als besonders wirksam, um tief im System liegende Schwachstellen zu entdecken.

Der mehrstufige Analyseprozess sah dabei folgendermaßen aus:

  • Identifikation von Angriffsvektoren: Mithilfe von Tools wie sbtool und der Analyse von Sandbox-Profilen wurde geprüft, auf welche Mach-Dienste aus einer Sandbox heraus zugegriffen werden kann.

  • Zielauswahl: Aus der Vielzahl von Daemons wurden gezielt jene mit hohem Privilegenniveau und erreichbaren Schnittstellen ausgewählt.

  • Entwicklung eines Fuzzing-Harness: Das Team erstellte ein eigenes Test-Framework, das das CoreAudio-Framework laden und gezielt Message-Handler aufrufen konnte – eine Grundlage für systematisches und zielgerichtetes Fuzzing.

  • Analyse und Iteration: Durch dynamische Instrumentierung, Absturzanalysen und Optimierung des Fuzzing-Harness gelang es, die Abdeckung schrittweise zu erhöhen und schließlich verwertbare Schwachstellen zu identifizieren.

Offener Beitrag zur Sicherheitsforschung

Die dabei entwickelten Tools und der Fuzzing-Harness wurden unter Open Source veröffentlicht und stehen der Community zur Verfügung: Project Zero – CoreAudioFuzz

Die Entdeckung zeigt einmal mehr, wie entscheidend eine präzise Validierung von IPC-Nachrichten ist – insbesondere bei Systemprozessen mit weitreichenden Berechtigungen. Sandbox-Escapes gehören zu den begehrtesten Schwachstellen sowohl für Angreifer als auch für Verteidiger. Googles Forschung hebt einen systemischen Risikobereich hervor und liefert wertvolle Impulse für die Weiterentwicklung von macOS-Sicherheitsmechanismen.

Mit ihrer Arbeit setzt das Project Zero-Team nicht nur neue Maßstäbe in der Analyse von Betriebssystem-Architekturen, sondern leistet auch einen direkten Beitrag zur Erhöhung der Gerätesicherheit für Millionen von Nutzerinnen und Nutzern weltweit.

Empfehlungen an Apple: Bessere Typprüfung gegen Sicherheitslücken

Um zukünftige Typverwirrungen – wie jene im Rahmen der Untersuchung von coreaudiod – wirksam zu verhindern, empfehlen die Forscher von Google Project Zero eine Überarbeitung sicherheitskritischer Systemfunktionen wie CopyObjectByObjectID. Konkret sollte Apple in Erwägung ziehen, solche Funktionen um eine explizite Typprüfung zu erweitern.

Ein möglicher Ansatz: Die Funktion erhält als zusätzliches Argument den erwarteten Objekttyp. Vor der Rückgabe wird dann überprüft, ob das geladene Objekt tatsächlich diesem Typ entspricht. Dieses Prinzip ähnelt bewährten Verfahren aus der Deserialisierung, bei denen Template-Parameter genutzt werden, um Typsicherheit zu garantieren – und ungewollte Typkonflikte frühzeitig zu verhindern.

Quelle: Breaking the Sound Barrier Part I: Fuzzing CoreAudio with Mach Messages


Bild/Quelle: https://depositphotos.com/de/home.html


Teile diesen Beitrag: