Початковий код завантажувача iOS з'явився на GitHub

Користувач Reddit опублікував вихідний код деяких компонентів iOS, що відповідають за завантаження операційної системи під час включення пристрою. Код відноситься до версій iOS 9.3.X, але цілком ймовірно, що його частини можуть використовуватися і в більш пізніх версіях системи. Публікація коду у відкритому доступі може допомогти фахівцям знайти вразливості в системі, зазначає видання Motherboard.


Зазвичай під час включення пристрою користувач відразу бачить екран завантаження операційної системи, але насправді процес включення складається з безлічі етапів. Спочатку низькорівнева прошивка ініціалізує обладнання і завантажує в оперативну пам'ять завантажувач операційної системи. Після цього завантажувач завантажує в пам'ять ядро системи, яке вже займається завантаженням і налаштуванням інших компонентів, необхідних для повноцінної роботи комп'ютера, наприклад, драйверів. Крім цього в більшості сучасних комп'ютерів і смартфонів є компонент, який не дає запускати завантажувач та інший код, якщо він не підписаний виробником. Це дозволяє захистити пристрій від шкідливого коду.


Зазвичай Apple не публікує вихідні коди таких компонентів своїх операційних систем, але тепер частина з них з'явилася в мережі. Їх опублікував один з користувачів Reddit 22 вересня 2017 року, але ЗМІ звернули увагу на це повідомлення тільки після того, як код опублікували на GitHub. В опублікованому архіві міститься внутрішня документація і вихідний код деяких компонентів iOS, таких, як драйвери, але головні з них - це вихідний код первинного завантажувача SecureROM і основного завантажувача операційної системи iBoot. Якщо ввімкнено пристрій, спочатку запускається саме SecureROM і перевіряє наступні компоненти, в тому числі і iBoot.

Варто відзначити, що опубліковані вихідні коди відносяться до версій iOS 9.3.X, а на більшості iOS-пристроїв встановлена більш пізня версія. Крім цього, користувачі Reddit зазначили, що в архіві не вистачає деяких файлів, необхідних для компіляції працюючої версії iBoot. Тим не менш, оскільки частини коду можуть використовуватися в компонентах більш нових версій, публікація вихідних кодів цих компонентів може призвести до декількох наслідків.

По-перше, дослідники в галузі комп'ютерної безпеки і зловмисники зможуть аналізувати раніше недоступний вихідний код і шукати вразливості, які можуть бути присутніми і в останніх версіях iOS. По-друге, багато в чому саме на обході механізмів захисту під час завантаження системи заснований джейлбрейк - операція, що дозволяє розширити можливості iOS-пристроїв. Відповідно, знання про те, як саме влаштовані ці механізми, може допомогти знайти нові способи злому. Також публікація вихідного коду SecureROM важлива ще з однієї причини - він прошитий в самому чіпі (системі на кристалі) і не може бути оновлений разом зі звичайним оновленням iOS, навіть якщо в ньому знайдуть критичну вразливість.

Менше місяця тому на серверах Apple сталася помилка, через яку старі версії iOS на деякий час стали знову підписаними. Завдяки цьому деякі користувачі змогли встановити набагато старіші версії системи на свої пристрої, хоча зазвичай компанія припиняє підписувати старі версії після виходу нових.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND