8:36
29/11/2017

Wczoraj wieczorem informowaliśmy na naszym Facebooku i Twitterze o poważnym błędzie w macOS. Osoba, która ma fizyczny (lub zdalny, przez Screen Sharing) dostęp do komputerów Apple z zainstalowanym systemem macOS High Sierra (10.13.1) może uzyskać uprawnienia roota. Jak?

Na ekranie wyboru użytkowników kliknij Other:

Wpisz w login “root” …i naciśnij Enter. I tyle!

A jeśli tzw. Fast User Switching nie jest aktywny, ale masz uprawnienia użytkownika w systemie, to wystarczy że wywołasz dowolną kontrolkę, która posiada symbol kłódki. Np. wchodząc w System Preferences -> Users & Groups. Jeśli następnie klikniesz w kłódkę i jako login wpiszesz “root”, a hasło pozostawisz puste, to naciśnięcie Entera (albo kilkukrotne kliknięcie w przycisk “Unlock”) także zaloguje Cię na roota.

Ustalmy fakty. Aby uzyskać najwyższe uprawnienia, atakujący musi:

  • Mieć fizyczny (lub zdalny przez Screen Sharing) dostęp do czyjegoś komputera, który jest na ekranie blokady i który posiada włączone Fast Account Switching.
  • Mieć dostęp do lokalnego konta użytkownika.

Jeśli komputer jest wyłączony, nie ma możliwości zalogowania się na roota z ekranu FileVaulta. Obejście nie zadziała także, jeśli w systemie ktoś zmienił wcześniej hasło do konta roota. Ustawienie jakiegokolwiek hasła uniemożliwia atak, więc zachęcamy Was do tego.

Mam High Sierrę — co robić, jak żyć?

Zaloguj się na konto roota i ustaw hasło, wpisując w terminalu

sudo passwd root

Skąd ten błąd?

Błąd wczoraj na Twitterze ogłosił @lemiorhan i spłynęła na niego (zasłużenie) fala krytyki za tzw. public disclosure i brak poinformowania wcześniej o dziurze producenta. Ale jak się okazuje, @lemiorhan może wcale nie być odkrywcą tej luki, bo od 13 listopada był on publicznie dostępny na forum developerów Apple.

A żartom nie było końca

Na tak groteskowy błąd internet zareagował w bardzo przewidywalny sposób:

Amazing! Apple wprowadziło logowanie bez konieczności podawania hasła. Takie szybkie! Takie wygodne! Niedługo wystarczy spojrzeć na ekran aby go odblokować!

Windows, Xbox i Linux miały podobnie zabawne podatności

Na koniec przypomnijmy, że podobnej klasy błędy pozwalające na ominięcie konieczności logowania były odkrywane także na innych systemach. Na Xboksa dziecko zalogowało się po prostu naciskając spację. Dziura w Grubie2 dawała z kolei możliwość zalogowania się do systemów Linux naciskając 28 razy klawisz backspace… No i oczywiście kultowe obejście wymogu logowania w Windows:

Przeczytaj także:

42 komentarzy

Dodaj komentarz
  1. Ja na ekranie logowania nie mam opcji “other” – więc jestem chroniony :D

    • Nie ;)

    • Połowicznie. Zalogować się nie możesz przy logowaniu użytkownika, bo nie ma opcji Other. Ale jak jesteś zalogowany to w ustawieniach Preferencji gdzie wymagana jest autoryzacja możesz już podać roota bez hasła.

  2. Pierwsza rzecz jaką zrobiłem po odbiorze nowego kokbuka to było ustawienie hasła roota. Jakoś nie mam zaufania do kont bez haseł, gdziekolwiek.

  3. @Sebastian
    to Ci sie tylko wydaje ze jestes :) koledzy z niebezpiecznika nie napisali dokladnie jak dostac… tego ‘other’ – ale ja Ci napise :D :D :D

    – user jest zalogowany, ekran zablokowany
    – wyloguj, prosba o podanie hasla i usera zalogowanego uzytkownika
    – podajemy root (ten user jest defaultowo niedostepny podczas normalnego logowania i nie aktywny w ustawieniach uzytkownikow, nie widac go)
    – w miejscu hasla klikamy kilkakrotnie szybko backspace, komp jakby sie zwiesza z bialym paskiem przez caly ekran… tak u mnie bylo bynajmniej, po resecie jest other, wpisujesz root bez hasla i jestes zalogowany jako System Administrator z pelnymi uprawnieniami :D :D : D

    • bynajmniej!=przynajmniej

  4. Ale odblokowanie opcji bezpieczeństwa (np. w preferencjach systemowych) ma każdy. 10.13 bez update’a .1 też podatny.

  5. Ogłoszenie na Twitterze w wykonanniu @lemiorhan zostało niesłusznie skrytykowane. Takiego producenta nie pownno się informować o czymś co jest jego psim obowiązkiem, tj. by działało dobrze i było bezpieczne. W końcu, bierze za to niebotyczne pieniądze (co jest jeszcze normalne), ale na domiar tego, nie pozostawia użytkownikom wyboru, stosując wredną technikę “vendor lock-in”. Zapłaci kilka milionów albo miliardów odszkodwań to się nauczy, że jeśli mieczem wojujesz, to od miecza giniesz.
    Ale ludzie nadal będą używali tego beznadziejnego oprogramowania, wmawiając sobie, że jest bezpieczne, nowoczesne i ładne.
    To trochę tak, jakby ubrać się w komiczny i niepraktyczny strój, ale od popularnego projektanta i przewracać się o niego, serwować sobie otarcia na całym ciele, dostawać uczulenia od dziwnego materiału i twierdzić jednocześnie, że strój jest to super wygodny i praktyczny.
    Mnie to ni grzeje, ni ziębi czy macie Maci, tylko czasem nie mogę wyjść z podziwu jak ludzie ochoczo zakładają sobie chomąto na szyję i chcą być prowadzenie na pasku, ponieważ ktoś im wmówił, że to złoty naszyjnik leczący choroby.

    • Czyli biorąc duże pieniądze taka firma nie ma prawa się pomylić?

      Nie ogłaszanie publicznie dziur jest elementem etyki. Nie musisz się jej trzymać, ale potem nie dziw się, że ktoś nazywa cię [tu miało być niecenzuralne słowo] ;)

    • A na czym w tym przypadku polega lock-in, bo nie bardzo rozumiem.

    • Gdyby tak zrobiono z Open Source’owym OpenSSL i jego heartbleedem to by była jazda, co nie? W końcu do ich psi obowiązek aby działało dobrze skoro to oprogramowanie zabezpiecza połączenia dużej części Internetu, nie wspominając o tym, że mają dziesiątki tysięcy ludzi, którzy mogą przeglądać kod.

    • @Mieszko na tym, że macOS zainstalujesz tylko na przesadnie drogim, o słabej mocy sprzęcie ©®Apple a nie na dowolnym komputerze spełniającym wymagania.

    • Teoretycznie Mac OS X można zainstalować na pececie posiadającym UEFI i zgodne peryferia… tylko trzeba trochę zakombinować i oczywiście jest to wbrew postanowieniom umowy użytkownika OS X, która mówi, że można go zainstalować tylko na “Apple-labeled PC” :D
      Z drugiej strony – w EOG (i chyba nie tylko) dopuszczalne jest modyfikowanie plików systemowych w celu interoperacyjności :)

  6. Mam macOS High Sierra zainstalowany na komputerze i jakoś nie mogę tego zrobić. Naciśnięcie “unlock” w kontrolce od razu zmienia root na moją nazwę użytkownika i odmawia dostępu.

    • Kliknij na pole z hasłem i dopiero wciśnij unlock – pierwszy raz nie zadziała, drugi już tak.

    • Po 3-4 próbach przejdzie logowanie i wejdzie na roota.

    • a nie masz przypadkiem hasła roota? ;)

  7. Z tym, że “kultowego logowania w Windows” chyba nikt nie nazywał zabezpieczeniem. To służyło tylko do wczytania własnych ustawień (które zresztą też nie były chronione).

  8. W QuiteRss przy “otwórz w przeglądarce” (space) ww. artykuł zamyka cały program.
    Dziwne, bo wszystkie wcześniejsze strony www otwiera prawidłowo – tylko właśnie ta zamyka całość.

  9. Zmiana hasła root dla mniej zaawansowanych użytkowników.
    1) Logujemy na konto root [nazwa: root, hasło: (puste)]
    2) Preferencje systemowe->użytkownicy i grupy
    3) Klikamy “zmień hasło”.

    Nadal nie wiem jak włączyć logowanie przez opcje “other” gdy mamy wybrane logowanie przez listę użytkowników.

    PS. Czy w opcji logowania przez nazwę/hasło możecie wpisywać polskie znaki w nazwie użytkownika, np. Jarosław. Ja nie mogłem :)

  10. Bug w Grubie nie dawał NIC. Tzn dawał podzbiór basha przy cały czas zaszyfrowanym dysku, aka. Grub recovery mode.
    Błąd zabawny, ale niegroźny

  11. “Błąd wczoraj na Twitterze ogłosił @lemiorhan i spłynęła na niego (zasłużenie) fala krytyki za tzw. public disclosure i brak poinformowania wcześniej o dziurze producenta.” – to teraz już oficjalnie strzelamy do posłańców?

    Można dyskutować, czy powinno się takie błędy zatajać, żeby producent “miał czas zareagować”, ale krytykować człowiek, że ogłosił coś światu? Na dodatek coś, co jak się okazuje było już wcześniej ogłoszone?

    No i najważniejsze: gdyby ludzie masowo i charytatywnie nie “chronili zadków” producentów, to może by się oni bardziej przykładali do kwestii bezpieczeństwa. Teraz często jest tak: wyjdzie błąd, to się go obsłuży przy kolejnej wersji, bo przecież i tak nikt o nim nie wie. A że kolejna wersja może będzie za kwartał? No to pech (użytkowników).

    Dla porównania: jak odkrywają np. problem z hamulcami w samochodzie, albo wybuchające baterie, to nikt tego nie zataja, do czasu aż producent zdąży wszystkim “po cichu” naprawić problem w ramach “dodatkowego przeglądu”…

    • Tak wymaga dobra praktyka, niezależnie od firmy czy błędu, zazwyczaj odkrycie można opublikować dopiero po 7 dniach, w przypadku bardziej poważnych błędów odkrywcy dogadują się z firmą ile (przynajmniej w granicach rozsądku) potrzebują na łatkę. Musisz pamiętać że wszystkim firmą zdarzają (Google, Microsoft, Apple, Facebook).
      Zresztą sam się zastanów, producent dostaje określony czas na wydanie aktualizacji a odkrywca i tak będzie mógł to opublikować (sytuacja win-win). A tak zanim firma zdązy coś zrobić już mogą ucierpieć użytkownicy.

      Zachowanie odkrywcy było bardzo nieodpowiedzialne! I krytyka jest jak najbardziej słuszna. Do takich celów powstał bugbounty.

    • @nn – od 13 listopada minęło więcej niż 7 dni, więc gość jest czysty.

    • Z samochodami to akurat nie trafione porównanie bo była nie raz afera z tym, że jednak producent olewał poprawianie wady fabrycznej samochodu, nawet tej zagrażającej życiu i bezpieczeństwu pasażerów.

    • @Lukasz

      wlasnie dlatego, ze odkrywcy sie dogadali z producentem.

  12. Powyższy komentarz to tylko moja osobista opinia, a ich tyle jest co d..p, parafrazując klasyka. Krytyka krytyki jak najbardziej wskazana. Ja nie rozgłaszam informacji o dziurach w systemach, bo nie mam na to czasu. Tylko zauważam pewne nieścisłości i zastanawiam się czy aby krytyka jest słuszna, a wydaje mi się, że nie. Moja opinia, możesz mieć inną.

    Firma prawo ma się pomylić, ale bierze takie pieniądze by do takich sytuacji nie dopuszczać, a już szczególnie do tak rażących. Co innego jak nie będzie działało coś, a co innego kiedy można się dostać do komputera i to na tak wysokim poziomie.
    Jeśli ludzie kupują super samochody za kilkaset tysięcy i ktoś dowie się, że mają nieprzykręcone koła, bo takie z fabryki wyszły, to co jest lepsze: ukryć to i powiadomić fabrykę, czy trąbić na lewo i prawo, że taki jest problem?
    A ogłaszanie lub nie ogłaszanie to, tak kwestia etyki, ale jest ona względna. Każdy ma prawo nazwać kogo chcesz kim chcesz. Ja osobiście tylko dziwię się, bo trąbi mi się, że te systemy są ach i och, a tu takie kwiatki. Ja na szczęście nie muszę nic ogłaszać lub nie ogłaszać, bo po prostu nie korzystam. Raz musiałem i nigdy nie powtórzę tego eksperymentu. Wkurza tylko ciągłe bezkrytyczne podejście wielu osób i brak refleksji. Ale nikogo nie zmuszę.

  13. OK, ale czy można zalogować się bez hasła tylko jeśli konto roota nie miało ustawionego hasła? Ja miałem dawno temu jakieś ustawione i widzę, że teraz nie mogę bez hasła wejść zgodnie z krokami z artykułu.

  14. Znajomi testowali i u jednego działa od 1wszego podejścia a u 2giego wcale. Ten 2gi nie ma szyfrowanej partycji. Czyzby NSA? ;)

  15. „No i oczywiście kultowe obejście wymogu logowania w Windows”

    Tylko że to nie była luka bezpieczeństwa tylko feature pozwalająca pominąć logowanie do zasobów sieciowych w Windowsach 9X. Te systemy nie miały koncepcji oddzielnych kont użytkowników w rozumieniu separacji uprawnień.

    • FAT32 w ogóle nie oferował separacji uprawnień :)

  16. Gdyby komuś się przydała, to napisałem instrukcję krok po kroku jak zmienić hasło roota z poziomu GUI: http://ciderhouse.it/jak-zmienic-haslo-root-w-macos/

    • A można po prostu wpisać `sudo passwd root` w terminalu :P Naprawdę nawet najgłupsi makowcy nie powinni mieć z tym problemu. A przynajmniej mniejszy problem niż szukanie po tysiącach opcji w preferencjach

  17. No i naprawili ;)
    Życzyłbym sobie aby Microsoft łatał równie szybko…

  18. Jest już oficjalna łata na ten problem. Build 17B1002.

  19. Hej,
    Warto może napisać, iż jeśli ktoś samolubnie używał maka i ma jednego usera ustawionego fabrycznie + wyłączone konto gościa, to jest bezpieczny. Mak nie pozwala na wpisanie czegokolwiek w pole usera, jest to zablokowane. Obcy sie nie zaloguje.
    Oczywiście jak juz sie zalogujesz, przy kontrolkach root bez hasla dziala, wtopa jest jak nic :)

  20. Jest i poprawka, co ciekawe, sposób w jaki to załatali jest dość zabawny ;)

    When you install Security Update 2017-001 on your Mac, the build number of macOS will be 17B1002. Learn how to find the macOS version and build number on your Mac.

    If you require the root user account on your Mac, you will need to re-enable the root user and change the root user’s password after this update.

  21. Na moim Mac-u nie działa 10.13.1 (17B1002).
    Próba wprowadzenia pustego hasła dla root “wstrząsa” tylko okienko.

  22. Hah, wiedziałem żeby pozostać z El Capitan :P

  23. Dziś pojawiła się łatka rozwiązująca tą podatność. System powiadomił mnie, że są dostępne aktualizację, zaznaczyłem aby nie instalować od razu tylko aby system przypomniał mi jutro. Po minucie wyskoczyło powiadomienie, że aktualizacja zabezpieczeń została zainstalowana. Z jednej strony dobrze, że apple szybko zareagowało bo upublicznieniu tej luki. Z drugiej strony nie ładnie, że apple instaluje coś na moim laptopie bez mojego pozwolenia.

  24. “Zaloguj się na konto roota i ustaw hasło, wpisując w terminalu

    sudo passwd root”

    Czy ja dobrze widzę? Na maku będąc root’em trzeba używać sudo?

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: