MacOS absichern/Betriebssystemkonfiguration

From macwrench

Dieser Teil der Artikelreihe "Mac OS X absichern" widmet sich den Möglichkeiten für grundelegende Konfigurationen des Betriebssystems und dessen Bordwerkzeugen. Das umfasst neben der Vergabe von Benutzerrechten auch die sinnvolle Rechteverteilung auf Benutzerkonten und zeigt Möglichkeiten auf, persönliche Daten durch Verschlüsselung vor den Augen neugieriger Zeitgenossen zu schützen.

Benutzeraccounts[edit]

Bei der Installation von Mac OS X (ebenso wie bei der vorinstallierten Variante auf ausgelieferten Macs) sind standardmäßig die folgenden Benutzerkonten vorhanden:

  • ein bei der erstmaligen Konfiguration angelegter Benutzer, im Folgenden als "Standardbenutzer" bezeichnet
  • ein Benutzer "root", der zunächst jedoch deaktiviert ist (aus gutem Grund)

Der Benutzer "root"[edit]

Menü "Sicherheit" im NetInfo Manager zur (De-)Aktivierung des root-Benutzerkontos

... ist der allmächtige System-Administrator und besitzt die umfassendsten Rechte im System. Aus diesem Grund ist er standardmäßig deaktiviert und muss bei Bedarf aktiviert sowie mit einem Passwort versehen werden. Dies erfolgt entweder über die Eingabe von

passwd root

im Terminal oder über das Bordwerkzeug "NetInfo Manager" im Menü "Sicherheit" (siehe Screenshot rechts). Auf diesem Weg kann das root-Konto auch wieder deaktiviert werden.

Bei der "normalen" Systemnutzung wird jedoch kaum der Bedarf bestehen, diesen Benutzer zu aktivieren - zumal von einer laufenden Verwendung des Kontos ohnehin dringend abzuraten ist. Fehler können durch die umfassenden Rechte recht schnell gravierende Folgen haben. Derzeit ist die Anzahl der wirksamen Schädlinge zwar minimal bis nicht existent, das könnte sich jedoch bei einer größeren Verbreitung des Mac OS schnell ändern. Bei Schädlingsbefall über ein solches Konto genießt dieser dann dieselben Privilegien und kann erheblichen Schaden anrichten.

der Standardbenutzer[edit]

Das bei der Erstkonfiguration während der Installation angelegte Benutzerkonto ist standardmäßig Mitglied der Gruppe "admin", darf also das System verwalten. Dies ist am Untertitel "admin" in der Benutzerübersicht der Systemeinstellungen (PrefPane "Benutzer") zu erkennen. Benutzer dieser Gruppe haben zwar lange nicht die Rechte eines "root", besitzen jedoch auch weitreichende Rechte bezüglich der Systemverwaltung und -konfiguration sowie der Anwendungsinstallation.

Da für den täglichen Gebrauch solche Rechte - wie beispielsweise das Schreiben in das Programmverzeichnis /Applications/ - nicht vonnöten sind, ist das Anlegen eines nicht-priviligierten Benutzers dringend anzuraten. Ein Schädling könnte auf diesem Wege beispielsweise Programme manipulieren und sich dort einnisten. Da jedoch von Mac OS X mindestens ein Administrator-Konto (unabhängig von root) gefordert wird, empfiehlt sich das Anlegen eines weiteren Accounts. Bei sicherheitskritischen Funktionen kann im Passwortdialog dann derjenige Account verwendet werden, der über Administrator-Privilegien verfügt. Das hat den Vorteil, dass eventuell eingeschleuste Schädlinge nur mit den geringen Rechten des "Standardbenutzers" operieren können und daher keinen Zugriff auf das Betriebssystem besitzen.

Erstellen eines Administrator Benutzerkontos

Die Erstellung eines solchen Kontos geht wie folgt:

  1. Erstellen eines weiteren Kontos im "Benutzer"-PrefPane der Systemeinstellungen (z.B.: "admin")
  2. Dieses Konto mit Admin-Rechten ausstatten (Haken im Feld "Der Benutzer darf diesen Computer verwalten")
  3. Anschließend unter diesem Benutzer anmelden (der "Standardbenutzer" muss dazu abgemeldet werden, ein Benutzerwechsel genügt also nicht)
  4. In den Benutzereigenschaften des "Standardbenutzers" den beschiebenen Haken entfernen.

Dieser Admin-Benutzer sollte ein anderes Passwort bekommen als der "Standardbenutzer, im Zweifelsfall ist über das Schlüsselsymbol neben dem Passwort-Eingabefeld der Kennwort-Assistent zu verwenden. Mehr Informationen zu sicheren Passwörtern sind im Artikel "Regeln für Passwörter" verfügbar.
Ab jetzt kann man etwas gefahrloser am Mac arbeiten, für die Installation von Systemupdates oder bei anderen Tätigkeiten, die admin-Rechte erfordern, werden fortan die Benutzerdaten des Administrators verwendet.

Starten von Programmen mit höheren Privilegien[edit]

Einige Anwendungen benötigen jedoch höhere Privilegien, um funktionieren zu können. Obwohl die meisten davon wohl von den Mac OS X Bordmitteln Gebrauch machen und beim Start einen Passwort-Dialog anbieten, ist das bei einigen nicht der Fall.

Kommandozeilenprogramme[edit]

Bei Terminal-Anwendungen (reinen Kommandozeilenprogrammen) ist das recht einfach, solche Programme sind einfach mit Hilfe des Befehls sudo in einem anderen Benutzerkontext zu starten:

sudo <KOMMANDO>

Cocoa- und Carbon-Apps[edit]

Normalerweise werden Mac OS X Anwendungen von Terminal aus mit Hilfe des Kommandos Open gestartet. In Verbindung mit sudo funktioniert das jedoch nicht, da in diesem Fall lediglich der Befehl sudo mit Administratorrechten gestartet wird, open jedoch nicht

sudo open -a TextEdit

Ebenso lassen sich auch keine Hintergrundprozesse mit Hilfe des Operators & ausführen, wenn eine vorherige Authentifizierung notwendig ist (wenn der aktuell angemeldete Benutzer keine Administrationsrechte besitzt):

sudo open -a TextEdit &

Cocoa Apps

Um Cocoa-Apps also mit Rootrechten vom Terminal aus zu starten, muss der vollständige Pfad angegebem werden. Beispielsweise so:

sudo "/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal"

Um ein Programm im Hintergrund laufen zu lassen, ist der Parameter -b zu verwenden:

sudo -b /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal

Carbon Apps

Um Carbon-Apps mit Rootrechten zu starten, ist beispielsweise folgende Aufrufsyntax zu verwenden:

sudo -b /System/Library/Frameworks/Carbon.framework/Versions/Current/Support/LaunchCFMApp '/Applications/BBEdit Lite 6.1/BBEdit Lite 6.1 for OS X'

Die Pfade zum jeweiligen Programm sind natürlich dementsprechend anzupassen.

sudo für Benutzer ohne Administratorrechte[edit]

Hierbei ist jedoch anzumerken, dass durch die oben vorgenommene Veränderung der Benutzerrechte (der Standardbenutzer ist ja nun kein admin mehr) jedoch ein Zwischenschritt notwendig geworden ist, da standardmäßig nur root sowie die Benutzer der Gruppe admin sudo benutzen dürfen. Auch der direkte Wechsel in den root-Kontext via

su

funktioniert als Standardbenutzer nun nicht mehr.

Abhilfe-Möglichkeit 1:
Zuerst der Wechsel in den Kontext des neuen Administrators, anschließende Verwendung von sudo:

su admin
sudo KOMMANDO

Abhilfe-Möglichkeit 2:
Aufnehmen des Standardbenutzers in die sudo-Konfigurationsdatei /etc/sudoers, was über die Eingabe des folgenden Kommmandos im Terminal erfolgt:

sudo -e /etc/sudoers

beispielsweise durch Einfügen der folgenden Zeile im Abschnitt "User privilege specification":

$USERNAME    ALL=(ALL) ALL

$USERNAME ist dabei durch den Benutzernamen (Kurznamen) des jeweiligen Standardbenutzers zu ersetzen. Mehr Informationen zu sudo und der Konfigurationsdatei /etc/sudoers sind den jeweiligen Manpages sudo und sudoers zu entnehmen.

Damit verbundene Einschränkungen[edit]

Mit den geringeren Benutzerprivilegien gehen allerdings auch einiges an Komfort verloren:

su / sudo[edit]

Es kann mittels su nicht mehr direkt zum Benutzer "root" gewechselt werden (siehe oben). Es muss also ein Umweg über den oben angelegten Admin-Benutzer erfolgen, um root-Rechte zu erlangen. Alternativ kann die sudo Konfigurationsdatei " sudoers" angepasst werden, damit diese Funktion wiederhergestellt wird.

AFP Freigaben[edit]

AFP-Freigaben (das sog. "Personal File Sharing") von angeschlossenen Volumes (sowohl intern als auch extern via USB oder Firewire) werden nicht mehr automatisch erzeugt. Das bedeutet, dass man auf einem entfernten Rechner nur noch die Benutzerverzeichnisse einbinden kann.

Abhilfe schafft hier der AutomountMaker, mit dem sich AFP-Shares anlegen und bearbeiten lassen.

Alternativ bietet sich die Verwendung des "Windows File Sharing" (via Samba/SMB) an, das über die Kondfigurationsdatei smb.conf angepasst werden kann. Informationen und Tipps zu Samba gibt es mehr als Genug im Internet, mit Supinfo Share Manager existiert zudem ein graphisches Tool dafür.

Weitere Möglichkeiten[edit]

Das Hilfsprogramm Super Empty Trash (Freeware) ermöglicht das Leeren des Papierkorbes in einem höheren Benutzerkontext, ohne dazu den Benutzer wechseln zu müssen.

Pseudo X (Shareware, $15) ermöglicht das Starten von Anwendungen in einem anderen Benutzerkontext durch einfaches Drag-and-Drop des Anwendungs-Icons.

Rechteverwaltung des Betriebssystems[edit]

Ein wichtiger Punkt setzt an der Vergabe für Zugriffsrechte an, mit denen Benutzer die verschiedenen Dateien und Verzeichnisse nutzen können. In obigem Abschnitt über die Benutzerkonten wurde bereits deutlich, warum zuviele Rechte im Schadensfall sehr gefährlich werden können, insbesondere wenn diese Rechte sich auf wichtige Systemdateien erstrecken.

In Mac OS X existiert daher die Möglichkeit, die Zugriffsrechte nicht nur der Systemdateien sondern auch der verschiedenen installierten Applikationen zu reparieren. Um den Sinn dieser Funktion zu verstehen, folgt zunächst ein kleiner Einschub über Zugriffsrechte:

Benutzerrechte eines Ordners im Finder-Info-Dialog

Der Zugriff auf die verschiedenen Dateien und Verzeichnisse eines Datenträgers wird durch verschiedene Faktoren bestimmt, die in der Regel vom Benutzer unbemerkt festgelegt werden - beispielsweise beim Erstellen eines neuen Ordners oder beim Speichern eines Briefes.

Diese Rechte ergeben sich in erster Linie aus den Benutzerdaten, also aus dessen Namen und der Benutzergruppe, der er zugehört (z.B. admin). Eine Liste aller Gruppen befindet sich in der Datei "/etc/group", wobei die meisten davon für den Anwender ohne Belang sind.

Die herkömmliche Rechtevergabe[edit]

richtet sich nach den folgenden Faktoren:

  • Besitzer der Datei (bzw. des Verzeichnisses)
  • Gruppe, in der der Besitzer Miglied ist
  • Zugriffsrechte wie z.B. Lesen, Schreiben, Ausführen

Diese Daten können im Finder für einzelne Dateien oder ganze Verzeichnisinhalte im über die Tastenkombination <KB>apfel + i</KB> erreichbaren Informations-Fenster (bzw. <KB>apfel + alt + i</KB> für eine mit <KB>apfel</KB> oder <KB>shift</KB> erfolgte Dateiauswahl) oder mit Hilfe der Kommandozeilentools chown (Besitzer und Gruppe) und chmod (Zugriffsrechte) verändert werden.

Diese Angaben erfolgen im Terminal entweder in der Form r/w/x (read, write, execute) oder in der sog. Oktalschreibweise, wobei die folgenden Werte existieren:

4 = lesen (r)
2 = schreiben (w)
1 = ausführen (x)

Diese Werte werden dann nach dem Schema

Benutzer - Gruppe  - Andere

addiert, je nachdem welche Rechte eingeräumt werden sollen - Lesen und Schreiben ergibt also 4+2 = 6. Die Zugriffsrechte des Ordners aus dem obigen Finder-Dialog sähen dann nach diesem Schema so aus:

755 hagbard:hagbard 

da im Finder-Dialog das Attribut "ausführen" nicht darstellt wird.

Die r/w/x Schreibweise Im Terminal (über das Kommando " ls -l" darstellbar) sieht das dann so aus:

drwxr-xr-x   2 hagbard  hagbard     68 Jun 29 13:48 Neuer Ordner

was diesem Schema folgt:

d r w x r w x r w x
– ––––– ––––– –––––
|   |     |     |_ Alle Anderen
|   |     |
|   |     |_ Gruppe des Besitzers
|   |
|   |_ Username des Besitzers
|
|_ Es handelt sich um ein Verzeichnis

Das vorangestellte "d" zeigt hier an, dass es sich um ein Verzeichnis (directory) handelt. Bei einer herkömmlichen Datei würde an dessen Stelle ein "-" zu finden sein. Gesetzt und verändert werden können diese Attribute dann mit Hilfe von chmod auf mehrere Arten:

chmod +x dateiname
chmod 755 dateiname

Rechtevergabe mit ACL[edit]

Mit Mac OS 10.4 (Tiger) führte Apple als Erweiterung des oben beschriebenen Rechtevergabesystems mit Benutzergruppen die sogenannten ACLs (Access Control Lists) ein. Da jedoch auf einem einfachen Desktopsystem der Bedarf von ACLs eher gering sein wird, sollen diese hier nur kurz und der Vollständigkeit halber beschrieben werden. Bei Systemen mit einer größeren Anzahl an Benutzern und Diensten stößt das herkömmliche Gruppensystem hingegen recht schnell an seine Grenzen.

Bei den ACLs kommen dieselben Wekzeuge zum Einsatz wie im obigen Verfahren (Finder, chmod, chown). Allerdings existiert mit Sandbox (Freeware) ein praktisches Tool für die einfache Zuweisung von Rechten via ACL. Da ACLs in der Client-Version von Mac OS X standardmäßig deaktiviert sind, müssen sie unter Verwendung des Kommmandozeilentools fsaclctl mit dem folgenden Kommando im Terminal (oder alternativ auch mit Hilfe von Sandbox) aktiviert werden - im folgenden Beispiel für das Mac OS Systemvolume:

sudo fsaclctl -p / -e

Das Kommando akzeptiert dabei die folgenden Optionen:

Verwendung: fsaclctl -p path | -a  [-e enable] [-d disable] [-v]

-p          path to filesystem mount point
-a          operate on all relevant volumes
-e          enable access control lists on this filesystem
-d          disable access control lists on this filesystem
-v          print version

Die Ausgabe der ACL-Rechtevergabe erfolgt im Terminal mit dem Kommando

ls -el

Weitere Informationen zum Thema finden sich am Ende des Artikels.

Volume-Zugriffsrechte reparieren[edit]

Reparatur der Zugriffsrechte im Festplatten-Dienstprogramm

Während die Rechtevergabe bei persönlichen Daten eher dazu dient, die Dateien und Verzeichnisse vor anderen Benutzern zu verbergen, spielt sie für Systemdateien eine wesentlich wichtigere Rolle. Wenn bereits unprivilgeierte Benutzer auf wichtige Systemkonfigurationen schreibenden Zugriff haben, kann bei Schädlingsbefall schnell ein erheblicher Schaden auftreten. Um dem engegenzuwirken, bietet das Festplatten-Dienstprogramm (Disk Utility.app) die Möglichkeit, die Zugriffsrechte zu reparieren. Dabei werden die Rechte wieder auf die ursprünglichen Werte zum Zeitpunkt der Installation zurückgesetzt, was anhand der sogenannten "Receipts" erfolgt - diese befinden sich in Form von ".pkg" Archiven in den folgenden Ordnern: für Dateien in für alle Benutzer allgemein zugänglichen Ordnern, z.B. /Applications:

/Library/Receipts

für Dateien, die während der Installation im Benutzerverzeichnis erstellt wurden:

~/Library/Receipts

Die Receipts werden bei der Installation erzeugt und sollten daher auch keinesfalls gelöscht werden. Sie bieten - neben eventuell während der Installation angelegter logfiles - außerdem die Möglichkeit, Anwendungen sauber und vollständig zu deinstallieren. Diese Dateien lassen sich beispielsweise mit dem folgenden Befehl (im Beispiel für iPhoto) auslesen:

lsbom /Library/Receipts/iPhoto.pkg/Contents/Archive.bom

ein kleiner Ausschnit daraus:

./Applications/iPhoto.app/Contents/Info.plist   100664  0/80    2414    2087592638
./Applications/iPhoto.app/Contents/MacOS        40775   0/80
./Applications/iPhoto.app/Contents/MacOS/iPhoto 100775  0/80    10413768        792702777
./Applications/iPhoto.app/Contents/MacOS/photocd        100775  0/80    149816  2893041223
./Applications/iPhoto.app/Contents/NetServices  40775   0/80
./Applications/iPhoto.app/Contents/NetServices/Bundles  40775   0/80

Eine Reparatur der Zugriffsrechte empfiehlt sich erfahrungsgemäß auch vor und nach jedem größeren Systemupdate, um Probleme durch fehlerhaft gesetzte Rechte von vornherein auszuschließen. Im Disk Utility erfolgt das wie im obigen Screenshot ersichtlich, alternativ kann dies auch mit einem der zahlreichen für Mac OS X verfügbaren Systemwartungs-Tools wie z.B. OnyX durchgeführt werden.

Programmzugriffe einschränken[edit]

"Kindersicherung": Programmzugriffe für einzelne Benutzer einschränken

Für gelegentliche Gast-Benutzer oder für die öffentliche Nutzung - beispielsweise bei Vorträgen, an der Uni oder auf Partys (wenn das [i,Mac,Power]Book wieder als Jukebox herhalten muss) - empfiehlt es sich, einen neuen Benutzer anzulegen, dem man nur den Zugriff auf bestimmte Programme erlaubt. Ein solcher Benutzer wird dann "Verwalteter Benutzer" genannt, wordurch das Risiko, durch irgendwelche Spielereien und eventuelle Nettigkeiten von Partygästen Datenverluste zu erleiden, minimiert werden kann.

Konfiguration:

Die Konfiguration dieser Funktion erfolgt ebenfalls in der Benutzerkonfiguration der Systemeinstellungen und trägt dort den netten Namen "Kindersicherung". Dort können bestimmte Anwendungen - wie z.B. Safari, iTunes oder der Finder - ausgewählt und der Zugriff konfiguriert werden. Dabei stehen folgende Punkte zur Auswahl:

  • einzelne Programme: Mail, iChat, Safari und Dictionary
  • Finder.app & System

Während die im ersten Punkt gelisteten Anwendungen spezifische und für sie sinnvolle Einstellungen erlauben, können mit dem Punkt "Finder.app & System" wesentlich umfangreichere Einstellungen vorgenommen werden, z.B.:

  • nur einen funktionell eingeschränkten Finder zur Verfügung stellen
  • Auswahl verschiedener Programmdateien, die ausgeführt werden dürfen
  • Einschränkungen für Dock, Systemsteuerung, Drucker und Hilfsprogramme
  • CDs/DVDs brennen erlauben bzw. verbieten

Fallstricke:

Dabei ist zu beachten, dass viele Programme - wie beispielsweise MS Office - das Ausführen von Programmen erlauben. Dies unterliegt dann nicht mehr den hier festgelegten Einschränkungen und erlaubt somit den freien Zugriff aufs System (natürlich im Rahmen der Benutzerrechte, über die das jeweilige Konto verfügt), was verhindert werden soll. Terminal.app gehört also in oben beschriebenen Szenarien definitiv nicht auf die Liste der freigegebenen Programme ...

Viele der kleinen Hilfsprogramme - wie beispielsweise für das Entpacken von ZIP Archiven - befinden sich nicht im Applikationsordner /Applications/ sondern sind im Verzeichnis

/System/Library/CoreServices

zu finden. Diese sind gegebenenfalls für die Nutzung freizuschalten, um dem verwalteten Benuter die entsprechenden Funktionalitäten zur Verfügung zu stellen. Einige der wichtigsten sind dabei:

BOMArchiveHelper.app Entpacken von ZIP-Archiven
DiskImageMounter.app Einbinden (Mounten) von Disk Images (.dmg) auf dem Desktop (bzw. in das Verzeichnis /Volumes/)
HelpViewer.app Darstellung von Hilfedokumenten verschiedener Anwendungen
Jar Launcher.app Starten von Java-Anwendungen, die als .jar Archiv vorliegen
einige Assistenten wie z.B. Bluetooth Assistent oder Netzwerk-Assistent

Datenverschlüsselung[edit]

Mit Hilfe der Rechteverwaltung ist es möglich, den Zugriff weiterer Systembenutzer auf persönliche Daten zu verhinden. Im Falle eines Diebstahls jedoch ist es ohne Weiteres möglich, durch Übernahme eines Benutzerkontos oder einfach durch Ausbauen der Festplatte an die Daten heranzukommen. Eine effektive Möglichkeit, dies zu verhindern, bietet sich mit der Verschlüsselung der Daten. Dabei muss jedoch erwähnt werden, dass dieser Sicherheitsgewinn mit einer unter Umständen erheblich geringeren Systemperformance erkauft wird, da ja bei jedem Zugriff die Daten entschlüsselt und für das Schreiben wieder verschlüsselt werden müssen.

Mac OS bringt dafür bereits einiges an Funktionalitäten von Haus aus mit, im Wesentlichen sind dies:

  1. verschlüsselte Disk-Images
  2. FileVault - Verschlüsselung des Benutzerverzeichnisses

verschlüsselte Backups[edit]

DiskImages können in verschlüsselter Form als Backup-Medium dazu verwendet werden, um unauthorisierten Zugriff durch Dritte zu verhindern. Dies erfolgt entweder - wie üblich - mit dem Festplatten-Dienstprogramm (vor 10.3: Disk Copy.app) oder aber mit Hilfe eines einfachen Automator-Workflows.

Einfacher Automator Workflow zum Erstellen eines Disk Images

Automator-Workflow zur Erstellung von DiskImages:

Im Bild rechts ist dazu ein einfacher Workflow abgebildet, der über die Optionsfelder in der Aktion "Create Disk Images from Files" noch angepasst werden kann. Alle dort aktivierten Felder erscheinen dann bei der späteren Nutzung in einem Fenster.

Anschließend ist der Workflow als Finder-PlugIn zu speichern (via <KB>apfel + alt + s</KB> als Plugin für Finder) und ist fortan über einen Rechtsklick (<KB>ctrl</KB>-Klick) im Finder-Kontextmenü "Automator" verfügbar. Dadurch werden die aktuell markierten Dateien in einem (ggf. auch verschlüsselten) DiskImage zusammengeführt, das anschließend auf dem Desktop landet.

Dabei sollte jedoch auch in regelmäßigen Abständen ein unverschlüsseltes Disk Image erzeugt werden, um im Falle eines fehlerhaften/dekeften Images (so etwas kann aus eigener Erfahrung durchaus vorkommen) keinen Datenverlust zu erleiden. Das ist besonders ärgerlich, wenn man an seine eigenen Daten nicht mehr herankommt, weil diese nur noch in verschlüsselter Form vorliegen.


Mitwachsende Images für die laufende Ablage[edit]

Im Festplatten-Dienstprogramm lassen sich auch sogenannte "sparse images" erzeugen. Das sind Disk-Images, die mit dem Inhalt mitwachsen und sind an der Dateiendung ".sparseimage" erkennbar.

Der Vorteil dabei ist der geringere Platzbedarf, da nicht laufend ein komplettes Backup erstellt wird (wie oben). Der große Nachteil ist, dass die Daten immer nur genau einmal vorhanden sind - nämlich im besagten sparseimage. Hier ist es also unbedingt empfehlenswert, laufend eine Kopie anzufertigen um im Fall eines defekten Images (was bei eventuellen Abstürzen oder Stromausfällen während eines Schreibvorganges durchaus passieren kann) keinen Datenverlust zu erleiden.

Erstellt wird es im Festplattendienstprogramm, wobei hier die Größenangabe etwas irreführend ist: sie beschreibt die Größe, die das Image beim Erstellen besitzt. Als Format ist "Mitwachsendes Image" auszuwählen (unter Mac OS 10.3.9 heisst es "Einfaches Image") und gegebenenfalls die Verschlüsselung zu aktivieren.

FileVault[edit]

Das grundlegende Prinzip von FileVault ist genau dasselbe: es handelt sich prinzipiell um ein verschlüsseltes, mitwachsendes Image, in dem jedoch das gesamte Benutzerverzeichnis (also z.B. /Users/hagbard/) abgelegt ist. Es wird beim Anmeldevorgang automatisch eingebunden und steht somit vollständig transparent zur Verfügung. Zur Verschlüsselung wird - wie bei allen verschlüsselten DiskImages - der Standard AES-128 (Advanced Encryption Standard, Schlüssellänge: 128 Bit) verwendet.

Aktivierung von FileVault in den Systemeinstellungen (PrefPane "Sicherheit")

Aktivieren von FileVault[edit]

Aktiviert wird die Funktion im Feld "Sicherheit" der Systemeinstellungen, zur Verschlüsselung dient dabei das Anmeldekennwort des jeweiligen Benutzers. Das Hauptkennwort dient dazu, im Fall des Verlustes von Anmeldekennwörtern dennoch an die Daten heranzukommen - dazu wird nach dreimaligem erfolglosen Anmeldeversuch die Option angeboten, ein neues Kennwort unter Verwendung des Hauptkennwortes anzulegen.

Das Image befindet sich anschließend im Verzeichnis /Users/$BENUTZERNAME, z.B.:

/Users/hagbard.sparseimage

Ändern des Kennwortes[edit]

Falls das Anmeldekennwort geändert wird, verwendet Mac OS X wieder die herkömmliche, unverschlüsselte Art der Datenspeicherung. Die Daten im verschlüsselten Image sind weiterhin nur über das alte Kennwort erreichbar. Andernfalls wäre es einem Dieb möglich, über den Start mit einer bootfähigen CD/DVD das Anwenderkennwort zurückzusetzen und somit an seine Daten zu gelangen.

Leere Bereiche im Image freigeben[edit]

Bei häufiger Nutzung und regelmäßigem Erzeugen und Löschen von Dateien wächst das Image laufend mit. Allerdings gibt es nach einer Löschoperation verfügbaren Speicher nicht automatisch frei, so dass das Image kleiner werden würde.

Dies kann jedoch manuell erfolgen, und zwar mit Hilfe des Kommandozeilentools hdiutil. Dazu ist im Terminal folgendes einzugeben:

hdiutil compact $SPARSEIMAGE

also z.B.

hdiutil compact /Users/hagbard.sparseimage

Hinweise zur Verwendung von FileVault[edit]

Gerade bei der Verwendung von FileVault sind - wie generell bei der Nutzung verschlüsselter Disk Images - einige Dinge zu beachten:

  • Das Hauptkennwort muss sich unbedingt vom Benutzerpasswort unterscheiden, ansonsten ist diese zusätzliche Sicherungsmaßnahme wirkungslos.
  • Bei der Verwendung großer Dateien wächst das Image sehr schnell an und belegt unnötig viel Platz. Solche Dateien sollten also nicht im Benutzerverzeichnis abgelegt werden.
  • Bei vielen Zugriffen sinkt die Verarbeitungsgeschwindigkeit durch die Ver- und Entschlüsselungsvorgänge spürbar
  • Es sollten regelmäßig Klartext-Backups angefertigt werden, um bei Datenträger- und Image-Defekten keine Datenverluste zu erleiden.
  • Die Verwendung des verschlüsselten ("sicheren") virtuellen Speichers in Verbindung mit FileVault wird dringend empfohlen, da ansonsten die Anmeldekennwörter aus der temporören Auslagerungsdatei des Systems ausgelesen werden können - Mac OS X legt diese nämlich standardmäßig in unverschlüsselter Form ab. Sie dienen als "virtueller Speicher, um gerade nicht im Arbeitsspeicher benötigte Programmbereiche auf die Festplatte auszulagern.

Zusammenfassung - Sicherheitsrelevante Systemeinstellungen[edit]

Generell empfiehlt es sich, die folgenden Systemeinstellungen von Mac OS X zu verwenden, einige davon wurden bereits in diesem Artikel detaillierter beschrieben.

Systemeinstellungen mit Authentifizierung[edit]

Um die Optionen als Standardbenutzer verändern zu können, muss das PrefPane erst mit einem Administrator-Account freigeschaltet werden. Dadurch wird verhindert, das durch versehentliches Verlassen der Systemeinstellungen im entsperrten Modus Änderungen durch Dritte erfolgen können.

Bei Administratoren jedoch bleiben die Systemeinstellungen entsperrt. Um dies zu verhindern, ist im PrefPane "Sicherheit" das Feld bei der Option "Kennwort verlangen für die Freigabe von geschützten Systemeinstellungen" zu aktivieren.

Die Freischaltung erfolgt dann durch einen Klick auf das Vorhängeschloss links unten im Fenster und ist bis zum Beenden der Anwendung "Systemeinstellungen" gültig. Aus diesem Grund sollte die Anwendung auch nach erfolgter Konfiguration immer geschlossen oder gesperrt werden.

Systemeinstellungen - Benutzer[edit]

Anmelde-Optionen: Beschreibung:
Autom. anmelden als ... Deaktivieren, um keinen unauthorisierten Zugriff zu ermöglichen.
Anmeldefenster zeigt an ... Name und Kennwort, dadurch muss ein Angreifer nicht nur das Passwort sondern auch den Benutzernamen wissen.
Kennwort-Merkhilfe anzeigen: Deaktivieren, um einem Angreifer nicht unnötig Hilfestellungen zu geben. Generell empfiehlt es sich, diese Information im Benutzerkonto nicht anzugeben.

Systemeinstellungen - Sicherheit[edit]

Optionen: Beschreibung:
Kennwort beim Beenden des Ruhezustandes oder des Bildschirmschoners aktivieren, insbesondere bei der Nutzung von tragbaren Geräten unterwegs.
Automatisches Anmelden deaktivieren: Aktivieren (siehe oben)
Kennwort verlangen für die Freigabe von geschützten Systemeinstellungen: Aktivieren. Diese Einstellung ist nur relevant für Benutzer mit Administratorrechten, da hier die Systemeinstellungen nach dem Beenden nicht automatisch wieder gesperrt werden.
Abmelden nach X Minuten Inaktivität: Empfehlenswert bei Systemen, die nur gelegentlich kurz benutzt werden und an für Andere zugänglichen Orten stehen. Alternativ kann bei Systemen, die hauptsächlich von einer Person genutzt werden, dazu auch ein Bildschirmschoner mit Passwortschutz verwendet werden
Sicheren virtuellen Speicher verwenden: Aktivieren, um das Auslesen von Passwörtern aus der Auslagerungsdatei durch weitere Systembenutzer zu verhindern (siehe oben)

Systemeinstellungen - Sharing[edit]

Mehr Informationen dazu sind im nächsten Teil der Artikelreihe zu finden. Generell gilt hier, nur diejenigen Dienste zu aktivieren, die wirklich benötigt werden. Im mobilen Betrieb - vor allem bei aktiviertem WLAN (Airport) oder Bluetooth - sind alle Dienste zu deaktivieren und die Firewall zu aktivieren!

Auch selbst erstellte Regeln im Tab "Firewall" sind entsprechend zu deaktivieren!

Firewall / Weitere Optionen: Beschreibung:
UDP-Verkehr blockieren Eingehende UDP (User Datagram Protocol) Verbindungen werden dadurch generell blockiert. UDP ist ein Kommunikationsprotokoll wie TCP, jedoch leichtgewichtiger, ressourcenschonender und ohne Sicherheitsfunktionen wie Sicherung der Datenübertragung, Verbindungsmanagement oder andere Korrekturmechanismen. Aus diesem Grund wird es in der Regel für Dienste wie Audio oder Video Streaming, Instant-Messaging und ähnlichem eingesetzt, bei denen hohe Bandbreite und geringe Verzögerungen wichtiger sind als eventuell verloren gegangene einzelne Pakete. (Anm. d. Red.: die Beschreibung in der Apple-Hilfe ist reichlich irreführend, zumindest bis incl. Mac OS 10.4.7)
Firewall-Protokollierung aktivieren Diese Option bietet die Möglichkeit, bei Angriffsversuchen die Vorgehensweise und das Ziel des Angreifers anhand der verwendeten Protokolle, Adressen und Ports nachzuvollziehen. Die Aufzeichnungen sind anschließend in der Konsole (Konsole.app, der Logfile-Viewer von Mac OS X; Ein Klick auf das Symbol "Protokolle" in der Symbolleiste öffnet die Übersicht aller Protokolle) oder in der Datei "/var/log/ipfw.log" zu finden.

In öffentlichen Netzwerken (z.B. WLAN-Hotspots, Uni-Netzen etc.) können die Protokolle allerdings recht schnell sehr groß werden, da gewisse Dienste und Protokolle (z.B. SMB/CIFS) für ihre "Geschwätzigkeit" bekannt sind.

Tarn-Modus aktivieren Bei Aktivierung dieser Option (auch als "Stealth Mode" bekannt) werden bei Verbindungsanfragen an Dienste, die auf dem Mac nicht laufen/gestartet sind, keine Fehlermeldungen geschickt (was normalerweise der Fall wäre). Diese Vorgehensweise soll verhindern, dass ein Angreifer durch "blinde Verbindungsversuche" Informationen über das System sammeln kann, die er später für einen Angriff (z.B. über bekannte Sicherheitslücken) ausnutzen kann. Wenn keinerlei Dienste offen sind, soll der Mac also praktisch "unsichtbar" sein, aktivierte Dienste sind jedoch weiterhin nutzbar.

Es sollte allerdings beachtet werden, dass die suggerierte "Sicherheit" durch die Aktivierung dieser Option in der Realität nicht gegeben ist. So verletzt die Aktivierung dieser Option z.B. RFC 792. Der Tarnmodus kann auch alleine deshalb schon nicht funktionieren, da der Router beim Provider kein "Destination unreachable" zurück liefert, sobald der Rechner im Providernetz eingewählt ist. Im Zweifel weiß ein Angreifer also das dort ein Rechner steht, welcher ICMP-Pakete dropt.

Das Internet Sharing (Internet-Freigabe) ist im mobilen Betrieb unbedingt zu deaktivieren!

Systemeinstellungen - Netzwerk[edit]

Netzwerkkonfiguration in den Systemeinstellungen (PrefPane "Netzwerk")

Gerade im mobilen Betrieb sind nur diejenigen Netzwerkschnittstellen zu aktivieren, die auch wirklich verwendet werden. Dadurch ist es einem Angreifer nicht möglich, eventuelle Sicherheitslücken der Treiber auszunutzen um in einen Computer einzubrechen (siehe Meldung auf golem.de: "Angriff auf WLAN-Treiber mit einfachsten Mitteln").

Netzwerkkonfiguration "kein Netzwerk" zur Deaktivierung aller Netzwerkschnittstellen

Außerdem empfiehlt sich für solche Fälle, eine eigene Netzwerk-Konfiguration "kein Netzwerk" anzulegen. Dadurch können über das Apfel-Menu (Eintrag "Umgebung") sehr schnell alle Netzwerkschnittstellen deaktiviert werden. Um eine solche Netzwerkumgebung anzulegen, sind einfach in der Anzeige "Netzwerk-Konfigurationen" alle Schnittstellen zu deaktivieren (siehe Grafik rechts).

Weitere Hinweise zur Konfiguration von Netzwerk, Airport und Bluetooth werden im weiteren Verlauf dieser Artikelreihe beschrieben.

Ältere Versionen absichern[edit]

TODO: collect info && write this, consider moving this to a separate article

Da ältere Versionen (Vorvorgängerin der jeeils aktuellen Version und älter) keine Sicherheitsupdates mehr bekommen, sollte man sich spätestens nach einem Jahr ohne solche Patches Gedanken über eine weitergehende Absicherung des Systems machen - insbesondere dann, wenn man sich häufig an verschiedenen, öffentlichen oder anderweitig nicht-privaten Netzwerken (WiFi, Mobilfunk, VPN, ...) anmeldet.

Oftmals ist jedoch ein macOS Update gar nicht möglich, da die Hardware nicht mehr unterstützt wird und ein Wechsel zu Linux aus anderen Gründen nicht möglich/erwünscht ist. Dann sollte man das beste aus der Situation machen und das alte System so gut es geht anzupassen - abgesehen von entsprechenden Verhaltensweisen in der Nutzung von Software und Internetdiensten.

Ideen dafür[edit]

  • Nutzung von Paketfiltern/Firewalls (Little Snitch, BlockBlock, ...)
  • Obiges in Verbindung mit einer guten Filter-/Blockliste für Trackerdienste, insbesondere die von Peter Lowe's (stellt auch eine subscription für Little Snitch bereit)
  • Sonstige Sicherheits- und Administrationsweerkzeuge wie beispielsweise die von objective-see.org
  • Schlüsselbund-Apps für Passwörter (MacPass, KeePassXC, ...)
  • Betriebssystemdienste absichern und ggf. austauschen (z.B. SSH/SFTP, wie SMB, VNC, ...) bzw. parallel bereitstellen und die Systemdienste deaktivieren
  • Sicherheitskritische Betriebssystemkomponenten absichern und austauschen, insbeso. OpenSSH (hier sollte die mitgelieferte Version wirklich ersetzt und nicht nur durch eine parallele Installaiton via homebrew ergänzt werden, sonst nutzt macOS weiterhin die alte Version und ist damit angreifbar!)
  • macOS Dienstprogramme, die keine Aktualisierungen mehr erfahren, so gut es geht durch aktuelle Drittpogramme ersetzen. Safari wird beispielsweise oftmals auch für ältere macOS Versionen noch eine gewisse Zeit lang weitergepflegt, anschließend/alternativ kann man auch die Entwicklerbuilds von Webkit nutzen. Beispiele: Firefox, Thunderbird, ...
  • Evtl.: Nutzung eines Systemaccounts mit reduzierten Rechten, die z.B. die Nutzung von macOS-eigenen Dienstprogrammen ausschließt. Alternativ ist sicherlich auch deren Deinstallation möglich
  • Safari/WebKit dürften eine härtere Nuss sein, da letzteres auch von sehr vielen Drittprogrammen für die Darstellung von HTML-Inhalten und SVG-Grafiken genutzt wird. Das dürfte daher auch das kritischste Einfallstor für etwaige Schädlingssoftware sein. Lässt sich vermutlich nur durch angepasstes Nutzungsverhalten begrenzen, allerdings muss man dazu wissen wo das überall verwendet wird, beispielsweise auch für die in viele Programme integrierte Dokumentation.
  • Es sollte gut überlegt werden, Apple Dienste wie iCloud, iCloud Keychain, Find My, ... usw, auf älteren, nicht mehr weitergepflegten macOS Versionen weiterzunutzen. Alleine die Pflege einer vollständigen Firewall-Filterliste dafür ist recht aufwändig, da diese eine Vielzahl an Verbindungen zu verschiedensten Adressen aufbauen können müssen um einwandfrei funktionieren zu können.
Service Name
Screen Sharing replacement or maybe even in-place update possible
File Sharing replacement or maybe even in-place update possible
Printer Sharing replacement or maybe even in-place update possible
Remote Login replacement or maybe even in-place update possible
Remote Management replacement or maybe even in-place update possible
Remote Apple Events Don't use it, no replacement
Bluetooth Sharing TBD
Internet Sharing TBD
Content Sharing Don't use it, no replacement
Media Sharing
a.k.a. "iTunes Library Sharing"
Don't use it, use a third party replacement like Plex
Web Sharing
Only in OS X Lion and earlier
replacement or maybe even in-place update possible

Core System Components[edit]

Various kinds of open-source components are not only being shipped with macOS but are in fact an integral part of it. Some of these components such as LibreSSL (or its origin OpenSSL) are being used throghout the system and by all kinds of applicatioms and thus should be considered highly critical for hardening the whole system. Others are being used to offer all kinds of additional services such as "File Sharing" or "ScreenSharing". These can often be easily replaced by being disabled and replaced by another 3rd party product - preferably free and open-source.

Wishlist for topics to cover here:

  • OpenSSL/LibreSSL (important side note: OS X El Capitan (Version 10.11) was the first version being shipped with LibreSSL, earlier versions use OpenSSL instead)
  • OpenSSH (macOS Service "Remote Login")
  • PHP
  • Python
  • Perl

System Services[edit]

  • Samba (macOS Service "File Sharing")
  • Apache HTTP Server (Apple Service "Web Sharing" in Mac OS X Lion and earler; onlt the GUI has beem removed in MacOS X Mountain Lion while the Apache HTTP Server is still present)
  • CUPS (macOS Service "Printer Sharing")
  • SANE (Scanner Sharing as part of the macOS Service "Printer Sharing")
  • VNC (macOS Services "Screen Sharing" and "Remote Management")

3rd Party Replacements for macOS Services[edit]

  • File Sharing via AFP (Apple File Protocol): netatalk

TBD[edit]

  • Internet Sharing (which is in fact ot really an actual "service" but a configuration enabling other devices to use a mac's internet connection via IPv4/IPv6 routing)
  • Bluetooth Sharing

macOS Services which should NOT be used any more[edit]

... Services which should be considered insecure due to a lack of replacements. You should either use them with caution, limit access to them via properly configured Packet Filters and Firewalls/IDS or stop using them altogether:

  • Media Sharing (a.k.a. "iTunes Library Sharing")
  • Content Caching
  • Remote Apple Events (should be disabled anyway)
  • iCloud Keychain Sharing
    Consider using shared KeePass files which you can synchronize easily across all of your devices. You can use a conventional, self-hosted file sharing service such as WebDAV or Owncloud/Nextcloud - maybe even within your local network so your sensitive data never leaves the premises. Or you can use reliable, privacy-compliant online services like the mailbox.org Cloud Storage, which is using Open-Xchange for that. I am personally not a big fan of proprietary closed source third party online services for pretty obvious reasons, but that's up to you.

Drittprogramme absichern[edit]

Weitere Informationen[edit]

Tools[edit]

  • Objective-See source of several amazing and free privacy tools like KnockKnock, Lulu or Oversight
  • Murus2 Firewall, a UI for the builtin macOS packet filter. The free Lite version filters outgoing traffic only, which makes it an ideal companion for LuLu or Little Snitch (Mini).

Self-hosted Services[edit]

  • FreshRSS, a free, self-hostable feeds aggregator
  • Pi-hole, Network-wide Ad Blocking

Other Services[edit]

  • Hostux Publicly hosted services such as a public encrypted DNS service, a disposable email inbox, and many more.

Unix Grundlagen[edit]

OSXFAQ: Mac OS X Unix Tutorial:

Datei-Zugriffsrechte[edit]

OSXFAQ: Advanced Mac OS X Unix:

ACLs in Mac OS X[edit]

Encrypting/Signing[edit]

  • age: A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
  • minisign: A dead simple tool to sign files and verify signatures.

see also: