Mamy złą informację dla fanów urządzeń firmy z logo nadgryzionego jabłka, do których też się zaliczamy:) Jak to w cyberbezpieczeństwie bywa, co jakiś czas odkrywane są nowe podatności w systemach Windows, rzadziej w Linux , o których piszemy na Kapitanie. Przyszedł czas na MacOS. Odkryta podatność jest o tyle ciekawa, że przedstawił ją konkurent Apple – Microsoft. Z pewnością był to odwet na nasze częste artykuły o nowych podatnościach w „durszlaku”;) Oczywiście to jest żart i cieszymy się, że Microsoft stale ulepsza swój system i również kibicujemy jego wielkiemu sukcesowi na rynku.
Błąd w zabezpieczeniach SIP na MacOS
Pod koniec października Microsoft odkrył krytyczną lukę w zabezpieczeniach systemu macOS, która według badacza zespołu Microsoft 365 Defender Research, Jonathana Bar-Ora, mogła zostać wykorzystana do zainstalowania rootkita na docelowych Macbookach. Luka została zidentyfikowana w mechanizmie zabezpieczeń systemu macOS – System Integrity Protection (SIP). Badania sugerują, że może to umożliwić atakującym zainstalowanie interfejsu sprzętowego w celu nadpisania plików systemowych lub zainstalowania niewykrywalnego, trwałego złośliwego oprogramowania.
„Oceniając procesy macOS uprawnione do omijania zabezpieczeń SIP, natrafiliśmy na demona system_installd, który ma wysokie uprawnienie com.apple.rootless.install.inheritable. Dzięki temu uprawnieniu każdy proces podrzędny system_installd będzie w stanie całkowicie ominąć ograniczenia systemu plików SIP” — wyjaśnił Bar-Or w poście na blogu.
Luka dotyczyła również mechanizmu podpisywania pakietów i sposobu instalacji skryptów poinstalacyjnych. Według Jonathana cyberprzestępca może utworzyć „specjalnie spreparowany plik”, aby przejąć kontrolę nad procesem instalacji.
Krótko o SIP
Ochrona Integralności Systemu (SIP) to technologia zabezpieczeń w systemie macOS występująca od wersji OS X El Capitan, która ma na celu zapobieganie modyfikowaniu chronionych plików i folderów na komputerze Mac przez potencjalnie złośliwe oprogramowanie. Ochrona integralności systemu ogranicza konto użytkownika root i ogranicza działania, które użytkownik root może wykonywać na chronionych częściach systemu operacyjnego Mac. SIP to taki „odpowiednik” mechanizmu User Account Control (UAC) w systemie Windows. O omijaniu UAC pisaliśmy ostatnio tutaj. W systemie MacOS, aby oprogramowanie podczas instalacji mogło uzyskać dostęp na poziomie administratora do systemu koniczne jest podanie nazwy i hasła administratora. Dzięki temu może ono modyfikować lub zastępować dowolny plik systemowy lub aplikację. Ochrona Integralności Systemu SIP obejmuje ochronę następujących części systemu:
- /System
- /usr
- /bin
- /sbin
- /var
- Aplikacje preinstalowane z systemem OS X
Ścieżki i aplikacje, które aplikacje i instalatory innych firm mogą nadal pisać, obejmują:
- /Applications
- /Library
- /usr/local
Zgodnie z informacją podawaną przez Apple „Ochrona Integralności Systemu została zaprojektowana tak, aby umożliwić modyfikowanie tych chronionych części wyłącznie przez procesy podpisane przez Apple i mające specjalne uprawnienia do zapisywania w plikach systemowych, takich jak aktualizacje oprogramowania firmy Apple i instalatory firmy Apple. Aplikacje pobrane ze sklepu AppStore już działają z ochroną integralności systemu. Inne oprogramowanie innych firm, jeśli jest w konflikcie z ochroną integralności systemu, może zostać odłożone na bok podczas uaktualniania do systemu OS X El Capitan lub nowszego.”
Jak atakujący mogą ominąć SIP?
SIP jest również nazywany trybem pracy bez root (ang. rootless). Blokuje system od użycia root’a, używając piaskownicy Apple do ochrony macOS i zawiera wiele zmiennych opartych na pamięci. Wewnętrznie jest kontrolowany przez następujące zmienne NVRAM:
- csr-active-config: maska bitowa włączonych zabezpieczeń
- csr-data: przechowuje konfigurację netboot
Tych zmiennych nie można legalnie modyfikować w trybie bez odzyskiwania. Dlatego jedynym uzasadnionym sposobem wyłączenia SIP jest uruchomienie systemu w trybie odzyskiwania i wyłączenie SIP. Włączanie lub wyłączanie SIP odbywa się za pomocą wbudowanego narzędzia csrutil, które może również wyświetlać stan SIP:
W naszym przypadku widać włączoną ochronę na systemie MacOS.
Bar-Or zauważył, że Apple znacznie poprawiło ograniczenia, aby wzmocnić SIP przed takimi atakami na przestrzeni lat, z których najbardziej godnym uwagi jest ograniczenie systemu plików.
Opisywana i odkryta przez niego nowa luka powiązana jest aktualizacjami systemu, które wymagają nieograniczonego dostępu do katalogów chronionych protokołem SIP. Apple wprowadziło określony zestaw uprawnień w celu obejścia kontroli SIP zgodnie z projektem. Badacz Microsoft uważa, że problem był poważny i nazwał go Shrootless.
POC i Exploit
Badacz stworzył w pełni funkcjonalny exploit typu proof-of-concept (POC) w celu pokazania obejścia SIP. Wykorzystuje on następujący scenariusz:
- Pobiera pakiet podpisany przez Apple (za pomocą wget), o którym wiadomo, że zawiera skrypt poinstalacyjny
- Skrypt umieszcza złośliwy kod w ścieżce „/etc/zshenv”, który sprawdza swój proces nadrzędny. Jeśli jest to „system_installd”, to możliwy jest zapis do zastrzeżonych lokalizacji na dysku.
- Wywołuje narzędzie instalatora, aby zainstalować pakiet.
Poniżej prezentujemy wynik działania exploit’a, któremu udało się zastąpić listę wykluczeń rozszerzeń jądra.
Co dalej z problemem?
Apple zostało powiadomione o usterce i podatność została natychmiast załatana. Luka jest kolejnym z coraz częstszych kierunków ataków, które mogą być wykorzystywane przez cyberprzestępców. Sklasyfikowana jako CVE-2021-30892 została poprawiona w aktualizacjach macOS Monterey 12.0.1, Security Update 2021-007 Catalina, macOS Big Sur 11.6.1. Zalecamy oczywiście jak najszybszą aktualizacje Waszych urządzeń.