Apples Safari führt Shell-Skripte automatisch aus.

Die Diskussionen über den ersten Virus für Mac OS X sind noch nicht verstummt, schon ist eine neue Schwachstelle in Apples Betriebssystem aufgetaucht.

In Pocket speichern vorlesen Druckansicht 336 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Andreas Beier

Die Diskussionen über den ersten Virus für Mac OS X sind noch nicht verstummt, schon ist eine neue Schwachstelle in Apples Betriebssystem aufgetaucht. Wurzel allen Übels ist wieder einmal die Option "'Sichere' Dateien nach dem Laden öffnen" in Apples Web-Browser Safari, die standardmäßig angeschaltet ist. Sie sorgt dafür, dass das System beispielsweise Bilder und Filme nach dem Download automatisch mit dem für sie zuständigen Programm anzeigt oder Zip-Archive entpackt. Findet Safari nach dem Auspacken eines Zip-Archivs darin als sicher angesehene Dateien, öffnet es diese. Bei aktiven Inhalten wie Programmen oder Shell-Skripten holt es beim Anwender eine Starterlaubnis ein -- so weit, so gut.

Problematisch wird es jedoch, wenn man ein Shell-Skript ohne die so genannte Shebang-Zeile in ein Zip-Archiv verpackt. Wie Michael Lehn herausgefunden und auf einer Web-Seite demonstriert hat, erkennt Safari dann nicht mehr, dass es sich um potenziell gefährliche Inhalte handelt und führt die Kommandos ohne Nachfrage aus.

Normalerweise gibt eine Shebang-Zeile wie "#!/bin/bash" an, welcher Interpreter das Skript ausführen soll. Dafür, dass ein Shebang-loses Shell-Skript dennoch im Terminal landet und eine Shell die Befehle ausführt, sorgt ein anderer Mac-OS-Mechanismus. Hat man den Mac-OS-Finder einmal angewiesen, ein Skript mit dem Terminal zu öffnen, merkt sich das System diese Zuordnung. Wenn man dem Skript nun eine Endung wie "jpg" oder "mov" verpasst und es in ein Zip-Archiv verpackt, enthält dieses auch eine spezielle Verwaltungsdatei mit der Zuordnung. Das Betriebssystem auf einem anderen Mac weiß deshalb, dass es eine Datei mit dem Terminal zu öffnen hat -- unabhängig von seiner Endung und dem Symbol, das der Finder für sie anzeigt. Das Terminal leitet Skripte ohne Interpreteranweisung einfach an die Standard-Shell bash weiter.

Als Sofortmaßnahme gegen derartige Angriffe empfiehlt es sich, die Option "'Sichere' Dateien nach dem Laden öffnen" im Bereich "Allgemein" der Safari-Einstellungen abzuschalten. Alternative Web-Browser wie Camino oder Firefox kennen eine solche automatische Öffnen-Funktion gar nicht erst. Man kann sie zwar durch eine Refresh-Anweisung im Html-Quelltext einer Web-Seite ebenfalls dazu bringen, eine Datei automatisch auf den Rechner zu laden, das automatische Öffnen unterbleibt bei ihnen jedoch. Da der Finder das Dateisymbol anhand der Dateiendung wählt, sollte man bei heruntergeladenen Dateien stets im Informationsfenster oder der Spaltendarstellung sicherstellen, dass unter Dateiart der erwartete Typ steht.

Da der Finder die Information, welches Programm eine Datei öffnen soll, in ein Zip-Archiv als absoluten Pfad einbaut, hilft es ferner, das Terminal aus /Programme/Dienstprogramme in ein anderes Verzeichnis zu verschieben. Um Problemen bei System-Updates, die auch das Terminal betreffen, aus dem Weg zu gehen, sollte man es vor dem Einspielen von Updates an seinen alten Platz zurücklegen. Außerdem sollte man nicht mit einem Administratorkonto arbeiten; siehe Sichere Bescheidenheit in c't 16/2005, Seite 176.

Ob Ihr System anfällig ist, können Sie über eine Demo auf heise Security ausprobieren. Sie versucht, ein Terminal-Fenster zu öffnen und den Inhalt eines Verzeichnisses anzuzeigen. Dies geschieht mit Safari auf einem System mit Mac OS X in der Standardkonfiguration ohne Rückfrage beim Anwender. Das Skript könnte genauso gut alle Dateien löschen, auf die der angemeldete Benutzer Schreibrechte hat. Bislang sind noch keine Web-Seiten bekannt, die diese Schwachstelle bösartig ausnutzen; das kann sich jedoch jederzeit ändern.

Siehe dazu auch: (adb)

  • [ticker:69862 Apple Safari Browser Automatically Executes Shell Scripts] auf heise online