Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Checkm8. Niedający się załatać exploit na 11 generacji iPhoneów – co potrafi a czego nie?
Krótką informację o pojawieniu się tego eksploita opublikowaliśmy niedawno. Obecnie pojawił się ciekawy wywiad z samym autorem, ujawniającym więcej szczegółów działania. Podsumowując:
- Exploit umożliwia wykonanie dowolnego kodu atakującego na poziomie BootROM-u, zawiera on w zasadzie pierwszy kod który uruchamia się po włączeniu telefonu. Wygląda to niezbyt optymistycznie, bo jak widać kontrolujemy co wydarzy się w trakcie bootowania. Możemy np. zbootować jakąś starszą wersję OS…
- Skąd bierze się kod BootROM-u? Jest „wypalony” na stosownym chipie telefonu. Niemożliwe jest więc proste załatanie tego kodu (w zasadzie tylko przez fizyczną ingerencję w chip). Kod uruchamiany z tego miejsca jest zaufany, posiada też root certyfikaty które używane są do weryfikacji bootowania kolejnych faz (aż do pełnego uruchomienia jądra iOS). Warto zwrócić uwagę na ten fragment: „Several vulnerabilities have been identified in boot ROM code which can be exploited to not only flash our own boot loader but also to bypass the signature checks of every stage”.
- Exploit wymaga fizycznego dostępu do telefonu.
- Czy można ominąć zabezpieczenie telefonu PIN-em? Tak (w starszych telefonach: 4S, 5). Nie – w telefonach od iPhone 6 / 5S w górę. Powodem jest tutaj Secure Enclave, czyli mechanizm chroniący sekrety przez 'zwykłym procesorem’.
- Możliwe jest jednak zaimplantowanie telefonu w ten sposób że wyśle on stosowne dane do atakującego po wpisaniu kodu PIN przez ofiarę.
- Na tej samej zasadzie możliwe jest zainstalowanie keyloggera na telefonie (mimo posiadania najnowszego iOS). Patrz jednak niżej..
- Exploit żyje tylko do czasu wyłączenia telefonu – ponowna infekcja wymaga ponownego fizycznego dostępu.
- Czy telefon można zrootować, jeśli posiada on najnowszy iOS? Tak – wystarczy zbootować inną wersję systemu i ją zrootwać (patrz wyżej). Oznacza to w zasadzie że wszystkie telefony do iPhone X można rootować niezależnie od wersji OS (obecnej lub przyszłej).
–ms
A czy to nie jest ten sam exploit ktorym firma izraelska odblokowywala telefony dla agencji?
A Izrael czasem nie uruchamiał obrazów iOS i brutforcem lecial ?
exploit czy backdoor? na tak niskim poziomie to raczej backdoor. teraz jakby Apple miało honor to powinni zrobić akcję serwisową z usunięciem tego backdoora lub wymianą aparatów na takie bez backdoora. Spora cześć użytkowników kupowała ich telefony z gorszymi parametrami niż u konkurencji płacąc za bezpieczeństwo. Obecnie Apple dostało Checkm8. Zaczynamy nową partię szachów.
Niedawno okazało się, że privacy by design to też fikcja. Czyli Apple to taka pułapka dla uchodźców z innych ekosystemów.
Jaka akcja serwisowa? Bo ktoś może coś wgrać gdy ma odblokowany telefon w ręku? To nie dawaj ludziom odblokowanego telefonu do ręki to jesteś bezpieczny. Syn czy córka nie są zagrożeniem i powodem akcji serwisowej a jak im dasz odblokowany telefon to mogą wysłać do każdego wiadomość lub usunąć każdą apkę. Po prostu nie dawaj nikomu telefonu i po sprawie.
Właśnie, właśnie… Jak zwykle to bywa w takich przypadkach, wymogi do „zainfekowania” urządzenia/systemu czymś takim są jednak dość wygórowane. Bo a). trzeba dać komuś odblokowany telefon, albo kod do niego. b). ten ktoś musi w jakiś sposób dostarczyć na urządzenie i zainstalować ów exploit, a następnie zbootować urządzenie i wpisać kod oraz PIN do karty SIM. c). załóżmy, że chce podmienić system na spreparowany/dziurawy… musi więc go pobrać i „zflashować”, co odrobinę jednak trwa i raczej nie da się tego zrobić w sposób niezauważalny dla użytkownika… d). po zbootowaniu, iPhone znowu poprosi o kod i o PIN do karty, więc nowy obraz systemu musiałby mieć to wyłączone, aby użytkownik się nie zorientował, ale zaraz, bez PINu nie zaloguje się do sieci operatora, więc… trochę klapa.
Reasumując: to trochę tak, jak z „wirusami” na macOS, które wymagają, aby je ktoś uruchomił z poziomu root-a, wcześniej podając hasło do sudo… ok, w teorii mogą zadziałać, są dobre jako POC, ale w praktyce, pozostają głównie w teorii. :)
Do tego, szczególnie teraz po zmianie iOS na wersję 13.x i wprowadzenie w nim wielu zmian, nawet średnio inteligentny użytkownik zauważyłby od razu, że funkcje iOS 13.x jakoś przepadły i telefon „wstał” ze starszym systemem (znając produkty Apple, nie wiem nawet, czy nie nastąpiłaby masa awarii ustawień/aplikacji itd.. bo po tak znaczących zmianach, część rzeczy po prostu nie działaby z nowszymi wersjami plików konfiguracyjnych…
Reasumując: włączyć porządną blokadę systemu (trudny do zgadnięcia kod plus np. Face ID), nigdy nie zostawiać iPhone bez opieki u kogoś, kto zna kod do niego, okresowo go restartować (nie trwa to długo) i pamiętać, którą wersję iOS-a mieliśmy ostatnio – bez przesady, nowe wersje nie ukazują się codziennie. :)
Jeżeli komuś na prawdę zależy na bezpieczeństwie urządzenia to powinien mieć hasło i wyłączone wszystkie inne sposoby blokady. Nawet Face ID nie jest bezpieczny. Co do wirusów na macOS to da się skutecznie infekować system nawet bez uprawnień roota więc uważałbym z tą pewnością siebie. Trzeba zawsze być ostrożnym i nie przeceniać zabezpieczeń swojego sprzętu.
Z tego co ja zrozumiałem to nie musi być telefon włączony i odblokowany. W trakcie uruchamiania kabelkiem USB można wysłać takie sygnały (do tego wlutowanego podatnego chipu), że uruchomi się stara wersja iOS, która jest podatna na różne znane wcześniej metody odblokowania telefonu. Jedyne wyjście to przylutować chipy na nowe lub rozdać nowe telefony.
no co ty bajdurzysz, przecież masz napisane ze exploit uruchamia się na dowolnym telefonie zablokowanym i wyłączonym.
Luka czy backdoor miałem na myśli oczywiście. Ciężki dzień, sorki.
Ale po co o tym mówić? To niedobra jest.