Ochrona integralności systemu

Ochrona integralności systemu
Deweloperzy Apple Inc.
Pierwsze wydanie 16 września 2015 ; 7 lat temu ( 2015-09-16 )
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 developer .apple .com /library /archive /documentation /Security /Conceptual /System _Integralność _Protection _Guide /Introduction /Introduction .html

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

Prohibited sign (a circle with a single line crossing through it) that is shown during the boot process when the system is not allowed to proceed.
Symbol zakazu ” jest wyświetlany, gdy system macOS nie może ukończyć procesu rozruchu . Może się to zdarzyć, gdy włączone jest podpisywanie kext, a użytkownik zainstalował niepodpisane rozszerzenie jądra .

Ochrona integralności systemu obejmuje następujące mechanizmy:

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”.

Zobacz też

Linki zewnętrzne