Security-Check: Wie sicher ist OS X Lion?
Mac OS X gilt als sicheres Betriebssystem, doch noch vor einigen Monaten genoss es nach Expertenmeinung diesen Ruf zu unrecht. Lion ist zwar nicht fehlerfrei, die neue Systemversion beseitigt aber viele Probleme mit Stumpf und Stiel.
Im vergangenen Winter entzauberten Mac & i und c't den Ruf von Snow Leopard als "sicheres" Betriebssystem. Viele Schutzmechanismen, mit denen Apple vollmundig warb, waren nur halbherzig und unzureichend implementiert. Zahlreiche System- und Programm-Einstellungen waren auf Komfort statt auf Sicherheit getrimmt. Was hat sich mit OS X 10.7 geändert?
Speicherschutz
Insbesondere zeigte die Address Space Layout Randomization (ASLR) erhebliche Schwachpunkte, und damit genau jene Technik, die es einem Bösewicht erschweren soll, seinen Angriff auf einem System überhaupt ausführbar zu gestalten. Solange bekannte Systemfunktionen immer an derselben Speicheradresse anzutreffen sind, kann auch bösartige Software sie aufrufen und für andere Zwecke missbrauchen. ASLR sorgt dafür, dass diese bei jedem Systemstart an einer anderen Adresse stehen.
Waren unter Snow Leopard wichtige Teile des Betriebssystems und der Speicherarchitektur trotz ASLR eben nicht randomisiert im Speicher abgelegt, so kann Lion hier endlich punkten: Vom Stack bis zu den Bibliotheken wird alles zufällig im Speicher verteilt. Neben dem Betriebssystem kommen auch mit neueren Xcode-Versionen kompilierte Programme (Binaries) in den Genuss der ASLR. Sie werden als so genannte Position Independent Executables (PIE) erzeugt, sofern der Entwickler das entsprechende Linker-Flag (siehe Bild) nicht bewusst geändert hat. Überprüfen lässt sich das zum Beispiel mit
otool -arch x86_64 -hvr /Applications/Safari.app/Contents/MacOS/Safari
Unter den angezeigten Flags sollte "PIE" auftauchen. Kommt Ihr System mit diesem Befehl nicht zurecht, mĂĽssen Sie zuerst die Apple Developer Tools installieren.
Ein weiteres Kernstück der Sicherheitsarchitektur, die Data Execution Prevention (DEP), sorgt dafür, dass im Arbeitsspeicher explizit nur für Code, nicht aber für Daten vorgesehene Bereiche ausführbar sind. Erst mit Lion steht DEP auch 32-bittigen Prozessen auf dem Heap zur Verfügung. Damit erstreckt sich DEP erstmals auf tatsächlich alle Speicherbereiche unabhängig von ihrer Bit-Breite.