r   e   k   l   a   m   a
r   e   k   l   a   m   a

Słabość nowego generatora liczb pseudolosowych w iOS 7 otwiera drogę do jailbreaku

Strona główna AktualnościOPROGRAMOWANIE

Najnowsza, oznaczona numerem 7.1 aktualizacja systemu iOS nie tylko przyniosła sporą liczbę ulepszeń dla użytkowników iPhone'ów i iPadów, ale też usunęła wszystkie luki wykorzystywane do łamania zabezpieczeń i uwolnienia w ten sposób urządzeń Apple'a. Jailbreak Evasi0n7, działający na iOS 7.0.x, pod iOS-em 7.1 po prostu nie zadziała. Wygląda jednak na to, że ostatnie prace Cupertino, mające na celu wzmocnienie zabezpieczeń jego urządzeń mobilnych, niezamierzenie wprowadziły do systemu błąd, który otworzyć może drogę do bardzo interesujących exploitów.

Mówiąc otwarcie, Apple popsuło generator liczb pseudolosowych (PRNG) iOS-a 7, używany podczas uruchamiania systemu. Informacje o tym przedstawił Tarjei Mandt z firmy Azimuth Security w trakcie konferencji CanSecWest w Vancouver. Jego zdaniem nowy PRNG jest deterministyczny i trywialnie łatwy do siłowego złamania.

Generator iOS-a 7 zasilany jest za pomocą liniowego generatora kongruencyjnego (LCG), klasycznego algorytmu, który choć jest chętnie wykorzystywany w standardowych bibliotekach (ze względu na szybkość działania i łatwość implementacji), nie jest uznawany za bezpieczny. Przy pewnych kombinacjach parametrów jego wyniki szybko stają się okresowe, znane są też ogólne metody obliczania parametrów i przewidywania zachowań takich generatorów poprzez obserwację ich wyników.

r   e   k   l   a   m   a

Szczegóły ataku zostały przedstawione w artykule pt. Revisiting iOS Kernel (In)Security: Attacking the early random() PRNG, dostępnym tutaj. W skrócie problem tkwi w tym, że zastosowana w iOS-ie 7 jako PRNG funkcja early_random() jest w stanie wygenerować zaledwie 219 unikatowych wyników, z maksymalnym okresem 217, znacznie poniżej rozmiarów 64-bitowej przestrzeni wynikowej, co pozwala napastnikowi bez większego wysiłku przewidzieć wygenerowane wartości.

Jak podkreśla Mandt, udało się ustalić, że nawet pozbawiony uprawnień administracyjnych napastnik, uwięziony nawet w najbardziej restrykcyjnym sandboksie, może odtworzyć wyniki generatora i zrekonstruować ziarno. Dysponując tą informacją, jest w stanie obejść wszystkie zabezpieczenia przed exploitami pamięci, które wykorzystywały early_random(), otwierając iOS-a na ataki wcześniej wydawałoby się niemożliwe.

Warto wspomnieć, że Apple o problemie dowiedziało się dopiero z wystąpienia odkrywcy podczas CanSecWest, tak jakby chciał on, by twórcy jailbreaków dla iOS-a mieli dobry start. Zazwyczaj odkrycia takie ujawniane są odpowiednio wcześniej producentom oprogramowania, by mieli dość czasu na przygotowanie łatek. Czemu Mandt tak zrobił? Być może po prostu nie bardzo wierzy w kryptograficzną wiedzę Apple.

To bowiem nie pierwsza wpadka Cupertino w dziedzinie kryptografii: w procesie startu iOS-a 6 używany był również dość zawodny generator, gromadzący entropię wyłącznie z licznika zegara procesora. Liniowy generator kongruencyjny wykorzystano właśnie w nadziei, że zapewni on lepszą entropię dzięki dobrze rozumianemu algorytmowi. Miesiąc temu dowiedzieliśmy się zaś, że błąd w szyfrowaniu SSL pozwalał na ataki man-in-the-middle przeciwko wszystkim użytkownikom iOS-a i OS-a X każdemu, kto dysponował certyfikatem podpisanym przez zaufany urząd certyfikacji.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.