Ochrona integralności systemu
Deweloperzy | Apple Inc. |
---|---|
Pierwsze wydanie | 16 września 2015 |
System operacyjny | System operacyjny Mac |
W zestawie z | OS X El Capitan (OS X 10.11) i nowsze |
Typ | Oprogramowanie zabezpieczające komputer |
Strona internetowa |
System Integrity Protection ( SIP , czasami określany jako rootless ) to funkcja bezpieczeństwa systemu operacyjnego macOS firmy Apple , wprowadzona w systemie OS X El Capitan (2015) (OS X 10.11). Zawiera szereg mechanizmów, które są wymuszane przez jądro . Centralnym elementem jest ochrona plików i katalogów należących do systemu przed modyfikacjami przez procesy bez określonego „uprawnienia”, nawet jeśli są wykonywane przez użytkownika root lub użytkownika z uprawnieniami roota ( sudo ).
Apple twierdzi, że użytkownik root może być znaczącym czynnikiem ryzyka dla bezpieczeństwa systemu, szczególnie w systemach z jednym kontem użytkownika , na którym ten użytkownik jest również administratorem. SIP jest domyślnie włączony, ale można go wyłączyć.
Uzasadnienie
Apple twierdzi, że ochrona integralności systemu jest niezbędnym krokiem w celu zapewnienia wysokiego poziomu bezpieczeństwa. Podczas jednej z WWDC inżynier Apple, Pierre-Olivier Martel, opisał nieograniczony dostęp do konta root jako jedną z pozostałych słabości systemu, mówiąc, że „[dowolny] element złośliwego oprogramowania to jedno hasło lub luka w zabezpieczeniach od przejęcia pełnej kontroli nad urządzeniem ”. Stwierdził, że większość instalacji systemu macOS ma tylko jedno konto użytkownika, które koniecznie zawiera poświadczenia administracyjne, co oznacza, że większość użytkowników może udzielić uprawnień administratora każdemu programowi, który o to poprosi. w takim systemie zostanie wyświetlony monit i zostanie wprowadzone hasło do konta — które według Martel jest często słabe lub nie istnieje — bezpieczeństwo całego systemu jest potencjalnie zagrożone. Ograniczenie uprawnień administratora nie jest bezprecedensowe w systemie macOS. Na przykład wersje systemu macOS wersje starsze niż Mac OS X Leopard wymuszają poziom 1 bezpiecznego poziomu , funkcja bezpieczeństwa wywodząca się z BSD i jego pochodnych, na której częściowo opiera się macOS.
Funkcje
Ochrona integralności systemu obejmuje następujące mechanizmy:
- Ochrona zawartości i uprawnień systemu plików do plików systemowych i katalogów;
- Zabezpieczenie procesów przed wstrzyknięciem kodu , załącznikami w czasie wykonywania (np. debugowanie ) i DTrace ;
- Ochrona przed niepodpisanymi rozszerzeniami jądra („kext”).
Ochrona integralności systemu chroni pliki i katalogi systemowe, które są oflagowane do ochrony. Dzieje się tak albo przez dodanie rozszerzonego atrybutu pliku do pliku lub katalogu, albo przez dodanie pliku lub katalogu do /System/Library/Sandbox/rootless.conf
albo przez oba. Wśród chronionych katalogów są: /System
, /bin
, /sbin
, /usr
(ale nie /usr/local
). Dowiązania symboliczne z /etc
, /tmp
i /var
do /private/etc
, /private/tmp
i /private/var
są również chronione, chociaż katalogi docelowe same w sobie nie są chronione. Większość preinstalowanych aplikacji Apple w folderze /Applications
jest również chroniona. Jądro , XNU , zatrzymuje wszystkie procesy bez określonych uprawnień do modyfikowania uprawnień i zawartości oflagowanych plików i katalogów, a także zapobiega wstrzykiwaniu kodu, dołączaniu środowiska uruchomieniowego i DTrace w odniesieniu do chronionych plików wykonywalnych .
Od OS X Yosemite rozszerzenia jądra, takie jak sterowniki , muszą być podpisane kodem z określonym uprawnieniem Apple. Deweloperzy muszą poprosić Apple o identyfikator programisty z takim uprawnieniem. Jądro odmawia uruchomienia , jeśli obecne są niepodpisane rozszerzenia, pokazując użytkownikowi zamiast tego znak zakazu . Mechanizm ten, nazwany „podpisywaniem kext”, został zintegrowany z ochroną integralności systemu.
Ochrona integralności systemu będzie również oczyszczać niektóre zmienne środowiskowe podczas wywoływania programów systemowych, gdy działa SIP. Na przykład SIP oczyści LD_LIBRARY_PATH i DYLD_LIBRARY_PATH przed wywołaniem programu systemowego, takiego jak /bin/bash, aby uniknąć wstrzyknięcia kodu do procesu Bash.
Konfiguracja
Katalogi domyślnie chronione przez SIP obejmują:
/System
/sbin
/kosz
/ usr
/Aplikacje
/usr
jest chroniony z wyjątkiem podkatalogu /usr/local
. /Applications
jest chroniony dla aplikacji preinstalowanych z systemem Mac OS, takich jak Kalendarz, Zdjęcia, Safari, Terminal, Konsola, App Store i Notatki.
Ochronę integralności systemu można wyłączyć (w całości lub częściowo) spoza partycji systemowej . W tym celu Apple udostępnia narzędzie wiersza poleceń csrutil
, które można uruchomić z okna terminala w systemie odzyskiwania lub z rozruchowego dysku instalacyjnego systemu macOS, który dodaje argument rozruchowy do pamięci NVRAM urządzenia . Dotyczy to wszystkich instalacji El Capitan lub macOS Sierra na urządzeniu. Podczas instalacji systemu macOS instalator przenosi wszelkie nieznane komponenty z oflagowanych katalogów systemowych do /Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/
. Uniemożliwiając dostęp do zapisu w katalogach systemowych, uprawnienia do plików systemowych i katalogów są utrzymywane automatycznie podczas aktualizacji oprogramowania Apple. W rezultacie naprawa uprawnień nie jest dostępna w Narzędziu dyskowym i odpowiedniej operacji diskutil
.
Przyjęcie
Odbiór ochrony integralności systemu był mieszany. Macworld wyraził obawę, że Apple może przejąć pełną kontrolę od użytkowników i programistów w przyszłych wersjach i powoli przesuwać politykę bezpieczeństwa macOS w kierunku mobilnego systemu operacyjnego Apple iOS , po czym instalacja wielu narzędzi i modyfikacji wymaga jailbreaku . Niektóre aplikacje i sterowniki nie będą działać w pełnym zakresie lub w ogóle nie będą działać, chyba że funkcja zostanie wyłączona tymczasowo lub na stałe. Ars Technica zasugerował, że może to nieproporcjonalnie wpłynąć na mniejszych programistów, ponieważ więksi mogą pracować bezpośrednio z Apple. Zauważyli jednak również, że zdecydowanie większość użytkowników, w tym użytkownicy zaawansowani , nie będzie miała powodu, aby wyłączyć tę funkcję, mówiąc, że „prawie nie ma wad”.