System Integrity Protection (SIP) to ogólna polityka bezpieczeństwa, której celem jest zapobieganie modyfikowaniu plików i procesów systemowych przez osoby trzecie. Aby to osiągnąć, ma następujące pojęcia:
- Ochrona systemu plików
- Ochrona rozszerzenia jądra
- Ochrona środowiska wykonawczego
Ochrona systemu plików
SIP uniemożliwia stronom innym niż Apple dodawanie, usuwanie lub modyfikowanie katalogów i plików przechowywanych w niektórych katalogach:
/bin
/sbin
/usr
/System
Apple zaznaczył, że programiści mają dostęp do następujących katalogów:
/usr/local
/Applications
/Library
~/Library
Wszystkie katalogi z /usr
wyjątkiem /usr/local
są chronione przez SIP.
Pliki i katalogi chronione SIP można dodawać, usuwać lub zmieniać za pomocą pakietu instalacyjnego podpisanego przez własny urząd certyfikacji Apple. Umożliwia to Apple wprowadzanie zmian w częściach systemu operacyjnego chronionych przez SIP bez konieczności zmiany istniejących zabezpieczeń SIP.
Dane urzędy certyfikacji są zastrzeżone przez Apple na ich własny użytek; Pakiety instalacyjne podpisane identyfikatorem programisty nie mogą zmieniać plików ani katalogów chronionych protokołem SIP.
Aby określić, które katalogi są chronione, Apple zdefiniował obecnie dwa pliki konfiguracyjne w systemie plików. Podstawowy znajduje się w poniższej lokalizacji:
/System/Library/Sandbox/rootless.conf
gdzie rootless.conf
zawiera listę wszystkich aplikacji i katalogów najwyższego poziomu, które SIP chroni.
Aplikacje
SIP chroni podstawowe aplikacje, które OS X instaluje w aplikacjach i aplikacjach. Oznacza to, że nie będzie już możliwe usuwanie aplikacji instalowanych przez system OS X, nawet z wiersza poleceń podczas korzystania z uprawnień administratora.
Katalogi
SIP chroni również wiele katalogów i dowiązań symbolicznych poza nimi, /Applications
a najwyższy poziom tych katalogów jest również wymieniony w rootless.conf
.
Oprócz zabezpieczeń, Apple zdefiniował również wyjątki od ochrony SIP w pliku rootless.conf, a wyjątki te są oznaczone gwiazdkami. Te wyjątki od ochrony SIP oznaczają, że można dodawać, usuwać lub zmieniać pliki i katalogi w tych lokalizacjach.
Wśród tych wyjątków są:
/System/Library/User Template
- gdzie OS X przechowuje katalogi szablonów, których używa podczas tworzenia folderów domowych dla nowych kont.
/usr/libexec/cups
- gdzie OS X przechowuje informacje o konfiguracji drukarki
Apple uważa ten plik za swój i wszelkie zmiany w nim wprowadzone przez osoby trzecie zostaną zastąpione przez Apple.
Aby zobaczyć, które pliki są chronione przez SIP, użyj ls
polecenia z kreską O w Terminalu:
ls -O
Pliki chronione SIP będą oznaczone jako ograniczone .
Należy pamiętać, że nawet jeśli dowiązanie symboliczne jest chronione przez SIP, nie musi to oznaczać, że katalog, do którego prowadzą łącze, jest chroniony przez SIP. Na poziomie głównym dysku rozruchowego El Capitan w systemie OS X znajduje się kilka dowiązań symbolicznych chronionych przez SIP, wskazujących katalogi przechowywane w katalogu o nazwie root private
.
Jednak podczas private
sprawdzania zawartości katalogu katalogi wskazywane przez te dowiązania symboliczne nie są chronione przez SIP i zarówno one, jak i ich zawartość mogą być przenoszone, edytowane lub zmieniane przez procesy z wykorzystaniem uprawnień administratora.
Oprócz listy wyjątków SIP, którą wprowadził Apple rootless.conf
, istnieje druga lista wyjątków SIP. Ta lista zawiera wiele katalogów i nazw aplikacji dla produktów innych firm. rootless.conf
Ta lista wykluczeń jest podobna do Apple i wszelkie zmiany stron trzecich zostaną zastąpione przez Apple.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
Ochrona środowiska wykonawczego
Zabezpieczenia SIP nie ograniczają się do ochrony systemu przed zmianami systemu plików. Istnieją również wywołania systemowe, których funkcjonalność jest obecnie ograniczona.
- task_for_pid () / Processor_set_tasks () kończy się niepowodzeniem z EPERM
- Mach specjalne porty są resetowane przy exec (2)
- Różne zmienne środowiskowe są ignorowane
- Sondy DTrace są niedostępne
Jednak SIP nie blokuje kontroli przez programistę własnych aplikacji podczas ich opracowywania. Narzędzia Xcode będą nadal pozwalały na sprawdzanie i debugowanie aplikacji podczas procesu programowania.
Aby uzyskać więcej informacji na ten temat, polecam przejrzeć dokumentację programistyczną Apple dotyczącą SIP .
Ochrona rozszerzenia jądra
SIP blokuje instalację niepodpisanych rozszerzeń jądra. Aby zainstalować rozszerzenie jądra w systemie OS X El Capitan z włączonym SIP, rozszerzenie jądra musi:
- Być podpisanym przy użyciu ID dewelopera do podpisywania certyfikatu Kexts
- Zainstaluj w / Library / Extensions
Jeśli instalujesz niepodpisane rozszerzenie jądra, SIP musi być najpierw wyłączone.
Aby uzyskać więcej informacji na temat zarządzania SIP, spójrz na poniższy link:
Ochrona integralności systemu - dodanie kolejnej warstwy do modelu bezpieczeństwa Apple
sudo
a monitowanie o hasło działało normalnie / poprzednio / oczekiwano. Prawdopodobnie odpowiedź brzmi: „przez większość czasu nie zauważysz; kiedy to zrobisz, zauważysz trudny”.