
Mac-Tipp: Dateizugriff am Mac – Zugriffskontrolle entschlüsselt (weitgehend)


Rechner, die ständig im Netz sind, sind potenziellen Gefahren ausgesetzt: Unbewusst installierte Schadsoftware kann versuchen, gespeicherte Informationen auszulesen, um sie an Unbefugte zu senden. Um das zu verhindern, setzt Apple auf strikte Zugriffskontrollen: Programme dürfen nur auf Dateien und Ordner zugreifen, bei denen Anwender
explizit eine Erlaubnis erteilt hat. Darüber wachen zwei Mechanismen: „Transparency, Consent & Control“ (TCC) sowie ein dateibasiertes erweitertes Attribut. Letztere wurde mit macOS Catalina im Jahr 2019 eingeführt und von Apple nicht weiter dokumentiert. Dank intensiver Forschung konnte Howard Oakley nun umfangreiche Details
ans Licht bringen – inklusive einer einfachen Methode, das erweiterte Attribut de facto zurückzusetzen.
Oakley programmierte für diesen Zweck ein eigenes Programm namens
Insent. Diese Sandbox-freie App dient lediglich dem Zweck, Dateizugriffe einzurichten sowie zu überprüfen, sowohl für den Zugriff über „Consent“ (der in Systemeinstellungen unter Datenschutz & Sicherheit widerrufen werden kann) sowie Intent (für den es bisher keinen für den Nutzer zugänglichen Weg zurück gibt). Intent-gesteuerte Dateizugriffe hinterlassen allerdings ihre Spuren in den erweiterten Dateiattributen (xattr): Ein Eintrag namens „MACL“ protokolliert, welche Programme ein Finder-Objekt nutzen dürfen.
Kryptischer InhaltDeren Inhalt erwies sich anfangs als harter Brocken. Erst durch eine vergleichende Analyse umfangreicher Datenmengen offenbarten sich einzelne Elemente. Die ersten zwei Bytes eines MACL-Eintrags stellen den Header dar, welcher wiederum zwei Mustern folgt:
- Das erste Byte enthält eine Zahl, welche wahrscheinlich eine Art Versionierung darstellt: Im Jahr 2019 wurde ausschließlich „01“ ausgegeben, bis ins Jahr 2025 stieg diese auf 08 an. In einem solchen Fall besteht das zweite Byte entweder aus 00 oder 40.
- Das erste Byte ist auf 00 gesetzt, enthält also keine Versionsnummer. In diesem Fall beobachtete Oakley drei unterschiedliche Werte für das zweite Byte: 43, 81 oder C1.
Oakley interpretiert diese Header-Bytes als Information, wie sich dieses eine (programmspezifische) MACL-Attribut auswirkt: „08 00“ etwa gewähre Lesezugriff auf ein geschütztes Verzeichnis und dessen Inhalte.
Einzigartige KennungNach den beiden Header-Bytes folgt eine Kennung im Format UUID (Version 4), somit eine Zufallskennung von 122 Bit Länge. Diese ist App-spezifisch, aber nicht nur das: Sie wird unter Einbezug der Kennung des aktuellen Nutzers und der Session erstellt. Dadurch lässt die UUID nicht ohne Weiteres auf die ursprüngliche App schlussfolgern. Derlei Kennungen erscheinen in Sammelsätzen von bis zu vier solcher MACL-Attribute; ein Viererpaket nimmt 72 Bytes ein. Sie werden anscheinend niemals entfernt.
Die Struktur des erweiterten Attributs mit dem Namen „MACL“.
Neustart macht die Erlaubnis ungültigHoward Oakley machte eine interessante Beobachtung: Zumindest in macOS 26.4 (Tahoe) verliert ein MACL-Eintrag seine Gültigkeit, sobald der Nutzer seinen Mac neu startet. Der xattr-Eintrag bleibt zwar erhalten, doch er funktioniert nicht mehr, da die UUID dank der neuen Session ihre Gültigkeit verloren hat. Somit können Nutzer tatsächlich mit einfachen Mitteln die „Intent“-Zugriffserlaubnis (mittels „Datei-öffnen“-Dialog) widerrufen.
Besser wäre DokumentationEs hat über sechs Jahre gedauert, bis die Bedeutung und Funktionsweise des MACL-Attributs entschlüsselt wurde – und sich damit eine einfache Möglichkeit offenbarte, den Dateizugriff für Programme ohne Sandbox-Beschränkungen zurückzusetzen. Einfacher wäre es gewesen, wenn Apple mit offenen Karten gespielt und von vornherein die Funktionsweise dokumentiert hätte.