iBoot
Разработчик(и) | Apple Инк. |
---|---|
Операционная система | Дарвин , macOS , [1] iPadOS и iOS [2] |
Платформа | х86 , ARM |
Тип | Загрузчик |
Лицензия | Собственное программное обеспечение |
iBoot второго уровня — это загрузчик для всех Apple . продуктов [3] Он заменяет старый загрузчик BootX . По сравнению со своим предшественником, iBoot улучшает аутентификацию, выполняемую в цепочке загрузки. [2]
Для x86 на базе компьютеров Mac процесс загрузки начинается с запуска кода, хранящегося в защищенном UEFI загрузочном ПЗУ (этап 1). Загрузочное ПЗУ выполняет две основные задачи: инициализировать системное оборудование и выбирать операционную систему для запуска ( компоненты POST и UEFI). Для компьютеров Mac на базе ARM загрузочное ПЗУ не включает UEFI. [4]
Для iPhone , iPad и компьютеров Mac на базе ARM процесс загрузки начинается с запуска загрузочного ПЗУ устройства. Загрузочное ПЗУ загружает Низкоуровневый загрузчик ( LLB ), который является загрузчиком этапа 1 и загружает iBoot. Если все пойдет хорошо, iBoot продолжит загрузку ядра iOS , iPadOS или macOS, а также остальной части операционной системы. [5] [6] macOS, загрузчик переходит в DFU ( прошивки устройства ) обновление Если iBoot не загружается или не проверяет iOS, iPadOS или . [7] режим; в противном случае он загружает оставшиеся модули ядра . [2] Начиная с Apple A7 и Apple M1 , LLB хранится на флэш-памяти NAND iPhone или iPad или на твердотельном накопителе Apple Silicon Mac.
На компьютерах Mac x86 iBoot находится в /System/Library/CoreServices/boot.efi
. [8] После загрузки ядра и всех драйверов, необходимых для загрузки, загрузчик запускает процедуру инициализации ядра. На этом этапе загружено достаточное количество драйверов, чтобы ядро могло найти корневое устройство. [9]
Безопасность памяти
[ редактировать ]Apple изменила C компилятора набор инструментов , который используется для сборки iBoot, чтобы повысить безопасность памяти, начиная с iOS 14 . Это усовершенствование предназначено для смягчения целых классов распространенных уязвимостей повреждения памяти, таких как переполнение буфера , эксплуатация кучи , уязвимости путаницы типов и атаки с использованием после освобождения . Эти изменения потенциально могут помешать злоумышленникам успешно повысить свои привилегии для запуска вредоносного кода, например, при атаке, включающей выполнение произвольного кода . [10]
Инцидент с утечкой исходного кода
[ редактировать ]часть исходного кода iBoot для iOS 9 утекла в 2018 году на GitHub , [11] Затем Apple направила GitHub запрос из-за авторских прав ( DMCA на удаление репозитория ). Предполагалось, что ответственность за утечку несет сотрудник Apple. Однако Apple это не подтвердила.
Ссылки
[ редактировать ]- ^ «Исходный код Дарвина 9.2» . Apple Inc. Архивировано из оригинала 21 сентября 2020 года . Проверено 19 января 2020 г.
- ^ Перейти обратно: а б с Райан, Питер Ю.А.; Наккеш, Дэвид; Кискатер, Жан-Жак (17 марта 2016 г.). Новые взломщики кодов: очерки, посвященные Дэвиду Кану по случаю его 85-летия . Спрингер. ISBN 9783662493014 .
- ^ Хейс, Даррен Р. (17 декабря 2014 г.). Практическое руководство по компьютерным криминалистическим расследованиям . Сертификация Pearson IT. ISBN 9780132756150 .
- ^ «процесс загрузки для устройств T2, M1 и iOS» .
- ^ Apple Inc. (май 2016 г.). «Руководство по безопасности iOS» (PDF) . apple.com . Архивировано (PDF) из оригинала 27 февраля 2016 г.
- ^ «Процесс загрузки Mac с процессором Apple — Служба поддержки Apple» . Январь 2024 г.
- ^ «Поддержка iFixit: восстановление DFU» . iFixit . Проверено 29 сентября 2019 г.
- ^ «reFIt — Процесс загрузки Intel Mac» . refit.sourceforge.net . Проверено 26 августа 2017 г.
- ^ «Процесс ранней загрузки» . разработчик.apple.com . Проверено 26 августа 2017 г.
- ^ «Реализация iBoot с безопасностью памяти» . Безопасность платформы Apple . Яблоко . Проверено 25 января 2023 г.
- ^ «Apple подтверждает утечку исходного кода iPhone» . Новости Би-би-си . 9 февраля 2018 г.
Внешние ссылки
[ редактировать ]- Mac OS X на osxbook.com