Angriffsszenario auf dem Mac: Apps automatisch über den Browser starten
Apple unterstützt auf dem Mac das Öffnen von Programmen durch URL-Schemas: Klickt der Nutzer auf einen Link zu Apple Music, öffnet der Mac automatisch iTunes und zeigt das hinterlegte Musikstück an. Auch Dritthersteller-Programme können solche URL-Schemas hinterlegen, so dass ein Klick auf einen bestimmten Link eine App eines Drittherstellers startet.
Sobald ein Programm auf den Mac kopiert oder heruntergeladen wird, sucht macOS die Beschreibungsdatei der App nach solchen URL-Schemas ab und registriert diese in einer Datenbank. Klickt der Nutzer nun einen solchen Link an, öffnet macOS die passende App zu dem URL-Schema. Das Blog
objective-see.com hat ein mögliches Angriffsszenario veröffentlicht, wie Hacker dieses Verhalten mit wenig Interaktion durch den Anwender ausnutzen und Code auf dem Mac ausführen können.
In der Standardeinstellung entpackt Safari nach dem Herunterladen ZIP-Archive sofort, ohne zuvor den Inhalt zu analysieren. Mittels Javascript ist es Angreifern möglich, bei Besuch einer Webseite ein ZIP-Archiv in den Downloads-Ordner des Macs herunterzuladen – Safari entpackt daraufhin die ZIP-Datei ohne Nachfrage. Enthält dieses ZIP-Archiv ein Programm, analysiert macOS auch hier sofort die URL-Schemas, die in der Beschreibungsdatei der App enthalten sind und nimmt diese in die Datenbank der registrierten URL-Schemas auf. Einem Angreifer ist es somit möglich, dem Nutzer ein Schadprogramm unterzuschieben – allerdings müsste dies der Nutzer manuell starten. Hierfür könnte ein Hacker eine zweite Schwachstelle ausnutzen, um das Programm mit wenig Nutzerinteraktion zu starten.
Da die URL-Schemas der gerade erst heruntergeladenen App bereits von macOS registriert wurden, kann ein Hacker nun durch dieselbe Webseite, welche die App heruntergeladen hat, eine URL mit diesem Schema öffnen. Mittels Javascript ist es einfach möglich, den Browser eine neue URL mit dem registrierten Schema öffnen zu lassen. Dies führt zu einer Nachfrage von Safari, ob die App geöffnet werden soll:
Leider lässt sich der Text aber durch Hacker anpassen, so dass nicht der Name der App, sondern ein frei wählbarer Text in der Nachfrage erscheint:
Nachdem der Nutzer auf "Erlauben" geklickt hat, öffnet sich das Programm auf dem Mac – Gatekeeper präsentiert nun eine Nachfrage, ob die App tatsächlich geöffnet werden soll. Aber auch hier ist die Bezeichnung der App völlig frei durch einen Angreifer wählbar, so dass er einen bekannten App-Namen wie beispielsweise "Pages.app" verwenden kann.
Erfahrene Nutzer werden hier mit Sicherheit auf "Abbrechen" klicken – weniger Technik-affine Anwender können mit geschickt gewählten Namen aber leicht dazu verleitet werden, die Option "Öffnen" zu wählen. Danach ist es dem Angreifer möglich, Code auf dem Mac auszuführen – ohne Sandbox und mit vollen Rechten des aktuell angemeldeten Nutzers.
Apple könnte das Problem recht einfach beheben, indem erst nach Start eines Programms URL-Schemas in die Datenbank von macOS aufgenommen werden – nicht schon beim Herunterladen oder Kopieren eines Programms. So müsste der Anwender erst das Programm manuell starten, bevor tatsächlich Code des Angreifers ausgeführt wird.