Angelo Laub hat in seiner Präsentation auf dem 21c3 (via fscklog) sechs Sicherheitslücken in OS X demonstriert. Im einzelnen nennt er:
- Steigerung der User-Rechte über die Systemeinstellungen
- Falsche Rechte auf den StartupItems
- Klartext-Passworte in der Auslagerungsdatei
- DOS-Verwundbarkeit durch Personal Filesharing
- Mach Injection und
- die bekannten getarnten Executables
Grund genug, einen genaueren Blick auf die einzelnen Punkte zu werfen:
Die getarnten Executables – also Programme mit dem Symbol eines Dokuments zählen dem Grunde nach nicht als Sicherheitslücke.
Gegen das Problem, dass Preference-Panes so ziemlich alles mit einem Mac machen können, hilft erstmal ein Haken in Systemeinstelungen: Sicherheit: »Für das Freigeben jeder geschützten Systemeinstellung ein Kennwort verlangen«. Diese privilege escalation vulnerability wurde von Angelo Laub an Apple gemeldet, eine Reaktion steht bisher aus. Nicht ganz elegant an dieser Stelle, sowohl von Laub als auch von Apple.
Malware könnte durch inkonsistente Rechte auf dem Ordner /Library/StartupItems bereits beim Booten gestartet werden. Diese Gefahr kann durch Einfügen von z. B. chown -R root:wheel /Library/StartupItems in /etc/rc oder /etc/daily reduziert werden. Dies ist allerdings nur ein Workaround. Jeder Installer darf die Rechte wieder ändern. Warum das Festplattendienstprogramm diese Rechte nicht reparieren kann, bleibt als Frage an Apple offen.
Die Klartextpasswörter in der Auslagerungsdatei sollten als mediumkritisch betrachtet werden. Sie lassen sich nur mit Admin-Rechten einsehen.
Auch die Denial-Of-Service-Verwundbarkeit des Personal-Filesharings ist keine wirkliche Gefährdung. DOS-Attacken über das Vollschreiben von Festplatten sind eher in Gigabit-Netzen gefährlich, jedoch nicht im derzeit einstelligen Megabit-Internet. Der Gast-Account, der stets Dateien in den Ordner /Öffentlich/Briefkasten/ schreiben darf, lässt sich durch die Änderung des Key guestAccess von true/ auf false/ in der Datei Library/Preferences/com.apple.AppleFileServer.plist deaktivieren.
Ganz und gar nicht lecker ist jedoch, dass es Laub gelungen sein soll, Programm-Code zur Laufzeit in beliebige Programme einzuschleusen – ohne Buffer-Overflow etc. Die Objective-C Runtime Library lässt den Austausch von ganzen Methoden zu, auch wenn der Source Code nicht bekannt ist. Davon betroffen sind sämtlich OS X Programme, z. B. der Finder oder Safari. Erschreckend an dieser »Mach Injection« ist, dass sie vollständig ohne Root-Rechte auskommt und ohne Kennworteingabe in der Benutzerumgebung funktioniert.
Harmlose Programme lassen sich offenbar um unerwünschte Funktionen erweitern. Damit ist ein perfekter Nährboden für »wirkliche« OS X-Viren gegeben. Einen Proof-of-Cocept-Wurm hat Laub im Rahmen seiner Präsentation bereits gezeigt, der entsprechende Source-Code soll lt. Laub »soon available« sein.
In Verbindung mit den anderen, von Laub aufgezeigten o. g. Schwachstellen, ergibt sich eine erhöhte Gefährdungslage für alle OS X-Rechner, wenngleich auf einem abstrakten Niveau. Sollte Laubs Demo-Wurm vor einem entsprechenden Update – wobei eine überarbeitete Objective-C Library nicht mal eben vom Himmel fallen wird – von Apple verfügbar werden, ist aber eine konkrete Gefährdung nicht auszuschließen.