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

Najnowsza, oznaczona numerem 7.1 aktualizacja systemu iOS nietylko przyniosła sporą liczbę ulepszeń dla użytkownikówiPhone'ów i iPadów, ale też usunęła wszystkie lukiwykorzystywane do łamania zabezpieczeń i uwolnienia w ten sposóburządzeń Apple'a. Jailbreak Evasi0n7, działający na iOS7.0.x, pod iOS-em 7.1 po prostu nie zadziała. Wygląda jednakna to, że ostatnie prace Cupertino, mające na celu wzmocnieniezabezpieczeń jego urządzeń mobilnych, niezamierzenie wprowadziłydo systemu błąd, który otworzyć może drogę do bardzointeresujących exploitów.

17.03.2014 15:11

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

Obraz

Generator iOS-a 7 zasilany jest za pomocą liniowego generatorakongruencyjnego (LCG), klasycznego algorytmu, który choć jestchętnie wykorzystywany w standardowych bibliotekach (ze względu naszybkość działania i łatwość implementacji), nie jest uznawanyza bezpieczny. Przy pewnych kombinacjach parametrów jego wynikiszybko stają się okresowe, znane są też ogólne metody obliczaniaparametrów i przewidywania zachowań takich generatorów poprzezobserwację ich wyników.

Szczegóły ataku zostały przedstawione w artykule pt. RevisitingiOS Kernel (In)Security: Attacking the early random() PRNG, dostępnymtutaj.W skrócie problem tkwi w tym, że zastosowana w iOS-ie 7 jako PRNGfunkcja early_random() jest w stanie wygenerować zaledwie219 unikatowych wyników, z maksymalnym okresem 217, znacznieponiżej rozmiarów 64-bitowej przestrzeni wynikowej, co pozwalanapastnikowi bez większego wysiłku przewidzieć wygenerowanewartości.

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

Warto wspomnieć, że Apple oproblemie dowiedziało się dopiero z wystąpienia odkrywcy podczasCanSecWest, tak jakby chciał on, by twórcy jailbreaków dla iOS-amieli dobry start. Zazwyczaj odkrycia takie ujawniane są odpowiedniowcześniej producentom oprogramowania, by mieli dość czasu naprzygotowanie łatek. Czemu Mandt tak zrobił? Być może po prostunie bardzo wierzy w kryptograficzną wiedzę Apple.

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

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (16)