Zoom dla komputerów Mac łata błąd powodujący rootowanie – zaktualizuj teraz! Inteligencja danych PlatoBlockchain. Wyszukiwanie pionowe. AI.

Zoom dla komputerów Mac łata błąd get-root – zaktualizuj teraz!

Na dobrze znanej imprezie poświęconej bezpieczeństwu DEF CON w Las Vegas w stanie Nevada w zeszłym tygodniu badacz cyberbezpieczeństwa Mac Patrick Wardle ujawnił „zakorzenienie” podniesienie uprawnień Błąd (EoP) w Zoom for Mac:

W tweecie, który nastąpił po jego przemówieniu [2022], Wardle zauważył:

Obecnie nie ma łatki [:FRIED-EGG EYES DEPICTING ALARM EMOJI:] [:EDVARD MUNCH SCREAM EMOJI:]

Zoom od razu pracował nad poprawką na usterkę, która została ogłoszona następnego dnia w Zoom biuletyn bezpieczeństwa ZSB-22018, zdobywając gratulacje odpowiadać od Wardle'a w procesie:

Mahalos do @Zoom, aby uzyskać (niesamowicie) szybką naprawę! [:OBYDWIE RĘCE PODNIESIONE W CELU ŚWIĘTOWANIA I PORUSZAJĄC SIĘ O EMOJI:] [:DŁONIE PRZYCIŚNIĘTE RAZEM NA ZNAK EMOJI DUCHOWEJ DOBREJ WOLI:]

Ujawnienie dnia zerowego

Biorąc pod uwagę pozorną szybkość i łatwość, z jaką Zoom był w stanie wyemitować łatkę dla błędu, nazwaną CVE-2022-28756, pewnie zastanawiasz się, dlaczego Wardle nie powiedział wcześniej Zoomowi o błędzie, wyznaczając dzień wystąpienia jako ostateczny termin ujawnienia szczegółów.

Dałoby to Zoomowi czas na wydanie aktualizacji wielu użytkownikom komputerów Mac (lub przynajmniej udostępnienie jej tym, którzy wierzą w łatać wcześnie / łatać często), eliminując w ten sposób lukę między wyjaśnianiem światu przez Wardle'a, jak nadużywać błędu, a łataniem błędu.

W rzeczywistości wydaje się, że Wardle zrobił wszystko, co w jego mocy, aby ostrzec Zooma o tym błędzie, a także o kilku powiązanych ze sobą wadach w procesie automatycznej aktualizacji Zooma kilka miesięcy temu.

Wardle wyjaśnia oś czasu ujawnienia błędu w slajdy z jego wykładu DEF CONi wyświetla strumień aktualizacji Zoom związanych z wykrytymi przez niego wadami.

Miecz obosieczny

Błędy, o których mówił Wardle, dotyczyły ogólnie mechanizmu automatycznej aktualizacji Zooma, części dowolnego ekosystemu oprogramowania, która jest trochę mieczem obosiecznym – potężniejszą bronią niż zwykły miecz, ale odpowiednio trudniejszą w bezpiecznym posługiwaniu się.

Automatyczne aktualizowanie jest niezbędnym elementem każdej nowoczesnej aplikacji klienckiej, ponieważ ułatwia i przyspiesza dystrybucję krytycznych poprawek, pomagając w ten sposób użytkownikom niezawodnie zamykać luki w cyberbezpieczeństwie.

Jednak automatyczne aktualizowanie niesie ze sobą morze zagrożeń, nie tylko dlatego, że samo narzędzie do aktualizacji zazwyczaj wymaga dostępu do systemu na poziomie root.

Dzieje się tak, ponieważ zadaniem aktualizatora jest nadpisanie oprogramowania aplikacji (coś, czego zwykły użytkownik nie powinien robić) i być może uruchomienie uprzywilejowanych poleceń systemu operacyjnego w celu dokonania konfiguracji lub innych zmian na poziomie systemu.

Innymi słowy, jeśli programiści nie będą ostrożni, samo narzędzie, które pomoże im zapewnić aktualność i bezpieczeństwo ich podstawowej aplikacji, może stać się przyczółkiem, z którego atakujący mogą podważyć zabezpieczenia, nakłaniając aktualizator do uruchamiania nieautoryzowanych poleceń z uprawnieniami systemowymi .

W szczególności programy do automatycznej aktualizacji muszą zadbać o weryfikację autentyczność pakietów aktualizacji, które pobierają, aby powstrzymać atakujących po prostu przed podawaniem im fałszywego pakietu aktualizacji wraz z dodatkowym złośliwym oprogramowaniem.

Muszą także utrzymywać integralność plików aktualizacji, które ostatecznie wykorzystują, aby lokalny atakujący nie mógł podstępnie zmodyfikować „zweryfikowanego bezpiecznego” pakietu aktualizacji, który został właśnie pobrany w krótkim okresie między jego pobraniem a aktywacją.

Obejście kontroli autentyczności

Jak wyjaśnia Wardle w swoim papier, jednym z błędów, które odkrył i ujawnił, była luka w pierwszym kroku wymienionym powyżej, gdy automatyczny aktualizator Zooma próbował zweryfikować autentyczność właśnie pobranego pakietu aktualizacji.

Zamiast używać oficjalnych interfejsów API macOS do bezpośredniej weryfikacji podpisu cyfrowego pobrania, programiści Zoom zdecydowali się przeprowadzić uwierzytelnianie pośrednio, uruchamiając narzędzie macOS pkgutil --check-signature w tle i sprawdzanie wyników.

Oto przykład pkgutil wyjście, używając starej wersji Zoom.pkg pakiet oprogramowania:

$ pkgutil --check-signature Zoom.pkg Pakiet "Zoom.pkg": Status: podpisany przez certyfikat programisty wydany przez firmę Apple do dystrybucji Podpisany zaufanym znacznikiem czasu dnia: 2022-06-27 01:26:22 +0000 Łańcuch certyfikatów : 1. Developer ID Instalator: Zoom Video Communications, Inc. (BJ4HAAB9B3) Wygasa: 2027-02-01 22:12:15 +0000 SHA256 Odcisk palca: 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ----------------------------------- ------------------------------------- 2. Urząd certyfikacji ID dewelopera wygasa: 2027-02-01 22:12:15 +0000 SHA256 Odcisk palca: 7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 F2 9C 88 CF B0 B1 BA 63 58 7F -------- -------------------------------------------------- -------------- 3. Apple Root CA Wygasa: 2035-02-09 21:40:36 +0000 SHA256 Odcisk palca: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

Niestety, jak odkrył Wardle, dekompilując kod weryfikujący podpis Zooma, aktualizator Zoom nie przetworzył pkgutil dane w taki sam sposób, jak zrobiliby to ludzcy obserwatorzy.

Sprawdzilibyśmy dane wyjściowe, postępując zgodnie z przydatną sekwencją wizualną w danych wyjściowych.

Najpierw szukamy pożądanego statusu, np. signed by a developer certificate issued by Apple for distribution.

Następnie znaleźlibyśmy podtytuł Certificate Chain:.

Na koniec sprawdziliśmy, czy łańcuch składał się z tych trzech sygnatariuszy we właściwej kolejności:

  1. Zoom Video Communications, Inc. 2. Urząd certyfikacji ID dewelopera 3. Apple Root CA

Co zaskakujące, kod Zoom po prostu zweryfikował, czy każdy z powyższych trzech ciągów (nawet nie sprawdzając własnego unikalnego identyfikatora Zooma BJ4HAAB9B3) pokazał się gdzieś na wyjściu z pkgutil.

Tak więc tworzenie pakietu o absurdalnej, ale poprawnej nazwie, takiej jak Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg nakłoni weryfikatora pakietów do znalezienia poszukiwanych „łańcuchów tożsamości”.

Pełna nazwa pakietu jest wyświetlana w pkgutil nagłówek wyjściowy w pierwszym wierszu, gdzie nieszczęsny „weryfikator” Zoom dopasuje wszystkie trzy ciągi tekstowe w niewłaściwej części danych wyjściowych.

W ten sposób kontrola „bezpieczeństwa” mogłaby zostać ominięta.

Częściowa poprawka

Wardle mówi, że Zoom ostatecznie naprawił ten błąd, ponad siedem miesięcy po tym, jak go zgłosił, na czas DEF CON…

…ale po nałożeniu łatki zauważył, że w procesie aktualizacji wciąż istnieje luka.

Aktualizator próbował zrobić właściwą rzecz:

  • 1. Przenieś pobrany pakiet do katalogu, którego właścicielem jest root, i tym samym teoretycznie niedostępne dla każdego zwykłego użytkownika.
  • 2. Zweryfikuj podpis kryptograficzny pobranego pakietu, za pomocą oficjalnych interfejsów API, a nie za pomocą bodge dopasowującego tekst przeciwko pkgutil wyjście.
  • 3. Rozpakuj pobrany plik pakietu, w celu zweryfikowania jego numeru wersji, aby zapobiec atakom downgrade.
  • 4. Zainstaluj pobrany plik pakietu, korzystając z uprawnień administratora w procesie automatycznej aktualizacji.

Niestety, mimo że katalog używany do przechowywania pakietu aktualizacji był własnością roota, próbując zabezpieczyć go przed wścibskimi użytkownikami próbującymi podważyć plik aktualizacji, gdy był używany…

… nowo pobrany plik pakietu został „zapisywalny na całym świecie” w nowej lokalizacji (efekt uboczny pobrania ze zwykłego konta, a nie przez roota).

Dało to lokalnym atakującym lukę w modyfikacji pakietu aktualizacji po jego podpis cyfrowy został zweryfikowany (krok 2), bez wpływu szczegóły sprawdzania wersji (krok 3), ale tuż przed instalator przejął kontrolę nad plikiem pakietu, aby przetworzyć go z uprawnieniami administratora (krok 4).

Ten rodzaj błędu jest znany jako warunki wyścigu, ponieważ osoby atakujące muszą tak zaplanować zakończenie, aby wrócić do domu tuż przed rozpoczęciem instalatora, a zatem muszą przemycić złośliwe zmiany tuż przed nim.

Usłyszysz również tego typu lukę, o której mowa w egzotycznie brzmiącym akronimie TOCTOU, skrót od od sprawdzenia do czasu użycia, nazwa, która jest wyraźnym przypomnieniem, że jeśli sprawdzisz swoje fakty z dużym wyprzedzeniem, mogą być nieaktualne, zanim się na nich oprzesz.

Problem TOCTOU polega na tym, że firmy wynajmujące samochody w Wielkiej Brytanii nie proszą już tylko o okazanie prawa jazdy, które mogło zostać wydane nawet 10 lat temu i od tego czasu mogło zostać zawieszone lub anulowane z różnych powodów, najprawdopodobniej z powodu niebezpiecznej lub nielegalnej jazdy z Twojej strony. Wraz z licencją fizyczną należy również przedstawić jednorazowy kod alfanumeryczny „dowód niedawnej ważności”, wydany w ciągu ostatnich 21 dni, aby zmniejszyć potencjalną lukę TOCTOU z 10 lat do zaledwie trzech tygodni.

Poprawka jest już dostępna

Według Wardle'a Zoom zapobiegł teraz temu błędowi, zmieniając prawa dostępu do pliku pakietu aktualizacji, który został skopiowany w kroku 1 powyżej.

Dostęp do pliku używanego do sprawdzania podpisów, walidacji wersji i ostatecznej instalacji na poziomie administratora jest teraz ograniczony przez cały czas tylko do konta root.

Spowoduje to usunięcie sytuacji wyścigu, ponieważ nieuprzywilejowany atakujący nie może zmodyfikować pliku między końcem kroku 2 (weryfikacja powiodła się) i początek kroku 4 (rozpoczyna się instalacja).

Aby zmodyfikować plik pakietu w celu oszukania systemu, aby dał ci uprawnienia roota, musisz mieć już uprawnienia roota, więc nie potrzebujesz tego rodzaju błędu EoP.

Problem TOCTOU nie ma zastosowania, ponieważ sprawdzenie w kroku 2 pozostaje ważne do momentu rozpoczęcia używania pliku, nie pozostawiając żadnego okna możliwości, aby sprawdzenie stało się nieważne.

Co robić?

Jeśli używasz Zoom na Macu, otwórz aplikację, a następnie na pasku menu przejdź do zoom.us > Check for Updates...

Jeśli aktualizacja jest dostępna, pojawi się nowa wersja i możesz kliknąć [Install] aby nakleić plastry:

Zoom dla komputerów Mac łata błąd powodujący rootowanie – zaktualizuj teraz! Inteligencja danych PlatoBlockchain. Wyszukiwanie pionowe. AI.

Wersja, którą chcesz, to 5.11.5 (9788) lub później.


Znak czasu:

Więcej z Nagie bezpieczeństwo