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