System Integrity Protection (SIP) ist eine umfassende Sicherheitsrichtlinie, mit der verhindert werden soll, dass Systemdateien und -prozesse von Dritten geändert werden. Um dies zu erreichen, hat es die folgenden Konzepte:
- Dateisystemschutz
- Kernel-Erweiterungsschutz
- Laufzeitschutz
Dateisystemschutz
SIP verhindert, dass andere Parteien als Apple Verzeichnisse und Dateien, die in bestimmten Verzeichnissen gespeichert sind, hinzufügen, löschen oder ändern können:
/bin
/sbin
/usr
/System
Apple hat angegeben, dass die folgenden Verzeichnisse für Entwickler verfügbar sind:
/usr/local
/Applications
/Library
~/Library
Alle Verzeichnisse mit /usr
Ausnahme von /usr/local
sind durch SIP geschützt.
Es ist möglich, SIP-geschützte Dateien und Verzeichnisse über ein Installationspaket hinzuzufügen, zu entfernen oder zu ändern, das von Apples eigener Zertifizierungsstelle signiert ist. Auf diese Weise kann Apple Änderungen an SIP-geschützten Teilen des Betriebssystems vornehmen, ohne die vorhandenen SIP-Schutzfunktionen ändern zu müssen.
Die betreffende Zertifizierungsstelle wird von Apple für den eigenen Gebrauch reserviert. Von der Entwickler-ID signierte Installationspakete können keine SIP-geschützten Dateien oder Verzeichnisse ändern.
Um festzulegen, welche Verzeichnisse geschützt sind, hat Apple derzeit zwei Konfigurationsdateien im Dateisystem definiert. Die primäre befindet sich an der folgenden Stelle:
/System/Library/Sandbox/rootless.conf
Dabei werden rootless.conf
alle Anwendungen und die oberste Ebene der Verzeichnisse aufgelistet, die von SIP geschützt werden.
Anwendungen
SIP schützt die Kern-Apps, die OS X in Applications und Applications Utilities installiert. Dies bedeutet, dass die von OS X installierten Anwendungen nicht mehr gelöscht werden können, auch nicht über die Befehlszeile, wenn Root-Berechtigungen verwendet werden.
Verzeichnisse
SIP schützt auch eine Reihe von Verzeichnissen und Symlinks außerhalb von /Applications
und die oberste Ebene dieser Verzeichnisse ist ebenfalls in aufgeführt rootless.conf
.
Zusätzlich zu den Schutzmaßnahmen hat Apple in der Datei rootless.conf einige Ausnahmen für den SIP-Schutz definiert. Diese Ausnahmen sind mit Sternchen gekennzeichnet. Diese Ausnahmen vom SIP-Schutz bedeuten, dass es möglich ist, Dateien und Verzeichnisse an diesen Standorten hinzuzufügen, zu entfernen oder zu ändern.
Zu diesen Ausnahmen gehören:
/System/Library/User Template
- wo OS X die Vorlagenverzeichnisse speichert, die es beim Erstellen von Basisordnern für neue Konten verwendet.
/usr/libexec/cups
- wo OS X Druckerkonfigurationsinformationen speichert
Apple betrachtet diese Datei als ihre und die Änderungen, die Dritte daran vornehmen, werden von Apple überschrieben.
Um zu sehen, welche Dateien durch SIP geschützt wurden, verwenden Sie den ls
Befehl mit dem Bindestrich O in Terminal:
ls -O
SIP-geschützte Dateien werden als eingeschränkt gekennzeichnet .
Es ist wichtig zu wissen, dass selbst wenn ein Symlink durch SIP geschützt ist, dies nicht zwangsläufig bedeutet, dass das Verzeichnis, zu dem sie verlinken, durch SIP geschützt ist. Auf der Stammebene eines OS X El Capitan-Startlaufwerks befinden sich mehrere SIP-geschützte Symlinks, die auf Verzeichnisse verweisen, die im genannten Stammverzeichnis gespeichert sind private
.
Wenn jedoch der Inhalt des private
Verzeichnisses untersucht wird, werden die Verzeichnisse, auf die diese Symlinks verweisen, nicht durch SIP geschützt, und sowohl sie als auch ihr Inhalt können von Prozessen unter Verwendung von Root-Rechten verschoben, bearbeitet oder geändert werden.
Neben der Liste der von Apple festgelegten SIP-Ausnahmen rootless.conf
gibt es eine zweite Liste der SIP-Ausnahmen. Diese Liste enthält eine Reihe von Verzeichnissen und Anwendungsnamen für Produkte von Drittanbietern. Ähnlich wie bei rootless.conf
dieser Ausschlussliste werden Änderungen von Apple und Drittanbietern von Apple überschrieben.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
Laufzeitschutz
Der Schutz von SIP beschränkt sich nicht nur auf den Schutz des Systems vor Dateisystemänderungen. Es gibt auch Systemaufrufe, deren Funktionalität jetzt eingeschränkt ist.
- task_for_pid () / processor_set_tasks () schlagen mit EPERM fehl
- Mach spezielle Ports auf exec (2) zurückgesetzt
- dyld-Umgebungsvariablen werden ignoriert
- DTrace-Sonden nicht verfügbar
SIP blockiert jedoch nicht die Überprüfung der eigenen Anwendungen durch den Entwickler, während diese entwickelt werden. Mit den Tools von Xcode können Apps weiterhin während des Entwicklungsprozesses überprüft und debuggt werden.
Weitere Informationen hierzu finden Sie in der Entwicklerdokumentation von Apple für SIP .
Kernel-Erweiterungsschutz
SIP blockiert die Installation von nicht signierten Kernel-Erweiterungen. Um eine Kernel-Erweiterung unter OS X El Capitan mit aktiviertem SIP zu installieren, muss eine Kernel-Erweiterung:
- Sie müssen mit einer Entwickler-ID für das Signing Kexts- Zertifikat signiert sein
- Installieren Sie in / Library / Extensions
Wenn Sie eine nicht signierte Kernel-Erweiterung installieren, muss SIP zuerst deaktiviert werden.
Weitere Informationen zum Verwalten von SIP finden Sie unter folgendem Link:
Systemintegritätsschutz - Hinzufügen einer weiteren Ebene zum Apple-Sicherheitsmodell
sudo
und Passwortabfrage haben wie gewohnt / bisher / erwartet funktioniert. Wahrscheinlich lautet die Antwort also: "Meistens werden Sie es nicht bemerken. Wenn Sie dies tun, werden Sie es schwer bemerken."