stringtranslate.com

iBoot

iBoot — это загрузчик второго уровня для всех продуктов Apple . [3] Он заменяет старый загрузчик BootX . По сравнению со своим предшественником, iBoot улучшает аутентификацию, выполняемую в цепочке загрузки. [2]

Для компьютеров Mac на базе x86 процесс загрузки начинается с запуска кода, хранящегося в защищенном загрузочном ПЗУ UEFI (этап 1). Загрузочное ПЗУ выполняет две основные задачи: инициализировать системное оборудование и выбирать операционную систему для запуска ( компоненты POST и UEFI). Для компьютеров Mac на базе ARM загрузочное ПЗУ не включает UEFI. [4]

Для iOS , iPadOS и ARM macOS процесс загрузки начинается с запуска загрузочного ПЗУ устройства. Загрузочное ПЗУ загружает низкоуровневый загрузчик (LLB), который является загрузчиком этапа 1, и загружает iBoot. Если все пойдет хорошо, iBoot продолжит загрузку ядра iOS, iPadOS или macOS, а также остальной части операционной системы. [5] [6] Если iBoot не загружается или не проверяет iOS, iPadOS или macOS, загрузчик переходит в режим DFU ( обновление прошивки устройства ) [ 7 ] ; в противном случае он загружает оставшиеся модули ядра . [2]

В macOS x86 iBoot находится в /System/Library/CoreServices/boot.efi. [8] После загрузки ядра и всех драйверов, необходимых для загрузки, загрузчик запускает процедуру инициализации ядра. На этом этапе загружено достаточное количество драйверов, чтобы ядро ​​могло найти корневое устройство. [9]

Безопасность памяти

Apple изменила набор инструментов компилятора C , который используется для сборки iBoot, чтобы повысить безопасность памяти , начиная с iOS 14 . Это усовершенствование предназначено для смягчения целых классов распространенных уязвимостей повреждения памяти, таких как переполнение буфера , эксплуатация кучи , уязвимости путаницы типов и атаки с использованием после освобождения . Эти изменения потенциально могут помешать злоумышленникам успешно повысить свои привилегии для запуска вредоносного кода, например, при атаке, включающей выполнение произвольного кода . [10]

Инцидент с утечкой исходного кода

в 2018 году часть исходного кода iBoot для iOS 9 просочилась на GitHub , [11] затем Apple направила GitHub запрос на удаление репозитория из-за авторских прав ( DMCA ) с требованием удалить репозиторий. Предполагалось, что ответственность за утечку несет сотрудник Apple. Однако Apple это не подтвердила.

Рекомендации

  1. ^ «Исходный код Дарвина 9.2» . Apple Inc. Архивировано из оригинала 21 сентября 2020 года . Проверено 19 января 2020 г.
  2. ^ abc Райан, Питер Ю.А.; Наккеш, Дэвид; Кискатер, Жан-Жак (17 марта 2016 г.). Новые взломщики кодов: очерки, посвященные Дэвиду Кану по случаю его 85-летия. Спрингер. ISBN 9783662493014.
  3. ^ Хейс, Даррен Р. (17 декабря 2014 г.). Практическое руководство по компьютерным криминалистическим расследованиям. Сертификация Pearson IT. ISBN 9780132756150.
  4. ^ «Процесс загрузки для устройств T2, M1 и iOS» .
  5. ^ Apple Inc. (май 2016 г.). «Руководство по безопасности iOS» (PDF) . apple.com . Архивировано (PDF) из оригинала 27 февраля 2016 г.
  6. ^ «Процесс загрузки Mac с процессором Apple — Служба поддержки Apple» . Январь 2024 г.
  7. ^ «Поддержка iFixit: восстановление DFU» . я чиню это . Проверено 29 сентября 2019 г.
  8. ^ «reFIt - Процесс загрузки Intel Mac» . refit.sourceforge.net . Проверено 26 августа 2017 г.
  9. ^ «Процесс ранней загрузки». разработчик.apple.com . Проверено 26 августа 2017 г.
  10. ^ «Реализация iBoot с безопасностью памяти» . Безопасность платформы Apple . Яблоко . Проверено 25 января 2023 г.
  11. ^ «Apple подтверждает утечку исходного кода iPhone» . Новости BBC . 9 февраля 2018 г.

Внешние ссылки