Об эксплоитах для iOS, bootrom и конфликте с Geohot
Недавний релиз jailbreak от Geohot’а для устройств на базе Apple A4 вызвал большой резонанс в кругах Dev Team. Большинство разработчиков упрекало Джорджа Хотца в эгоистичности его намерений, тщеславии и недальновидности. Почему же это произошло?
limera1n — untethered jailbreak от geohot использует вторую известную уязвимость в bootrom всех новых iOS устройств. Ранее, в сентября этого года, члены Dev Team pod2g и posixninja раскопали и частично документировали первую известную уязвимость в bootrom Apple A4 устройств. Теперь Apple известно о существовании обоих уязвимостей, которые, вероятно, будут закрыты со следующей аппаратной ревизией устройств.
Все дело в том, что bootrom (или SecureROM) — это небольшой загрузчик, который вызывается iPhone/iPad как только вы включаете устройство. Bootrom обычно прошит в read-only NAND (флеш-память), который прошивается на заводе при изготовлении устройства. Все последующие обновления iOS никак не затрагивают этот участок памяти: обновить bootrom возможно только с новой аппаратной ревизией устройств. Вот почему все найденные уязвимости в данном участке кода стратегически важны.
После завершения работы bootrom передает управление загрузчику iBoot. iBoot — это загрузчик второй стадии, задача которого провести частичную инициализацию устройства, загрузить ядро iOS и передать ему управление. iBoot легко перешивается при обновлении iOS, по этому все найденные в нем уязвимости носят временный характер.
Весь цепочечный процесс загрузки iOS выглядит приблизительно так: bootrom -> iBoot -> iOS
Открытая уязвимость в bootrom всегда является гарантией того, что рано или поздно jailbreak будет осуществлен. Уязвимости в iBoot или iOS ненадежны и закрываются Apple при обновлении iOS. Кроме того jailbreak, который выполняется посредством уязвимости в iBoot как правило является tethered, т.е. после перезагрузки устройства jailbreak необходимо выполнить заново.
После спешного релиза limera1n Dev Team отложили выход greenpois0n для того, чтобы скрыть реализацию эксплоита bootrom — SHAtter от Apple до следующего поколения устройств, в котором 100% будет закрыта уязвимость, которую использует geohot.
Если вам интересна данная тематика, в следующий раз мы можем рассмотреть принцип работы эксплоитов для осуществления jailbreak.
Источник
Так ли безопасен ваш iPhone? Обзор уязвимостей и тайных ходов в iOS
Пользовательские данные не являются разменной монетой. Компания Apple потратила значительные усилия для того, чтобы заслужить себе репутацию, стойко отбиваясь от ФБР и прочих представителей силовых структур, ищущих возможность произвольного сбора данных владельцев iPhone.
В 2016 г. Apple отказалась ослабить защиту iOS для того, чтобы ФБР могла разблокировать iPhone стрелка из Сан-Бернардино. Завладев смартфоном Сайеда Фарука и промахнувшись десять раз с набором четырехзначного PIN кода, правоохранители тем самым заблокировали смартфон. Тогда в ФБР потребовали, чтобы Apple создала специальную ОС, в которой возможно подобрать код безопасности методом перебора.
Поначалу все складывалось не в пользу Apple, окружной суд Соединенных Штатов по Калифорнии встал на сторону силовых ведомств. Apple подала апелляцию, началась волокита, и в итоге заседания судебное разбирательство на этом прекратилось по инициативе ФБР.
В конце концов, федералы добились своего с помощью Cellebrite — частной израильской компании, специализирующейся в цифровой криминалистике, заплатив за это дело более миллиона долларов США. К слову, в смартфоне ничего не нашли.
Странным образом четыре года спустя история повторилась почти точь-в-точь. В январе 2020 г. не абы кто, а Генеральный Прокурор США Уильям Барр попросил компанию помочь следователям получить доступ к содержимому двух iPhone, использованных во время стрельбы в военно-морской авиабазе в Пенсаколе, штат Флорида, в декабре 2019 года. Не удивительно, что из Apple последовал очередной отказ.
Стоит подчеркнуть, что в обоих случаях речь шла не об одноразовой передаче информации со стороны Apple. С этим как раз все в порядке, компания передает метаданные, резервные копии с iCloud при официальных и санкционированных запросах правоохранительных органов. Отказ встречают требования создать и предоставить универсальную отмычку, особую прошивку iOS, позволяющей разблокировать конфискованные смартфоны.
Именно это обстоятельство вызывает наибольшее противодействие руководства Apple и лично CEO Тима Кука, которые резонно полагают, что нет и не может быть доброкачественных бэкдоров, и что комплексная защита своей мобильной платформы бывает лишь первой свежести. Отмычка в хороших руках очень скоро становится отмычкой в руках сомнительных, а возможно, она там будет и с самого первого дня.
Итак, мы теперь знаем, что iOS не имеет специальных лазеек, созданных для силовых структур. Означает ли это, что iPhone неуязвим для проникновения и кражи данных?
BootROM уязвимость checkm8
В конце сентября 2019 г. исследователь информационной безопасности с ником axi0mX опубликовал на Github ресурсе код эксплойта практически для всех устройств производства Apple с чипами версий A5 — A11. Особенность найденной уязвимости состоит в том, что она находится на аппаратном уровне и никакими обновлениями ПО её невозможно устранить, так как она прячется в самом механизме защиты безопасной загрузки BootROM, a. k. a. SecureROM.
Модель загрузки iOS с презентации Apple на WWDC 2016 г.
В момент холодной загрузки первым из read-only памяти запускается SecureROM, причем это самый доверенный код в Application Processor и поэтому он выполняется без каких-либо проверок. В этом кроется причина того, что патчи iOS тут бессильны. И также крайне важно, что SecureROM отвечает за переход устройства в режим восстановления (Device Firmware Update) через интерфейс USB при нажатии специальной комбинации клавиш.
Переход iOS в режим DFU.
Уязвимость Use-after-Free возникает, когда вы ссылаетесь на память после того, как она была освобождена. Это может привести к неприятным последствиям, таким как сбой программы, непредсказуемые значения, или как в данном случае — выполнение стороннего кода.
Для начала, чтобы понять механизм эксплойта, нам нужно понять, как работает системный режим восстановления. При переходе смартфона в режим DFU в момент инициализации выделяется буфер I/O и создается USB-интерфейс для обработки запросов к DFU. Когда установочный пакет 0x21, 1 поступает по USB-интерфейсу на этапе USB Control Transfer, код DFU после определения адреса и размера блока копирует данные буфера I/O в загрузочную область памяти.
Структура USB Control Transfer Setup Packet.
Соединение по USB остается активным до тех пор, пока длится загрузка образа прошивки, после чего оно завершается в штатном режиме. Однако существует и нештатный сценарий выхода из режима DFU, для этого нужно отправить сигнал DFU abort по коду bmRequestType=0x21, bRequest=4. При этом сохраняется глобальный контекст указателя на буфер данных и размер блока, тем самым возникает классическая ситуация уязвимости Use-after-Free.
Checkm8 по существу эксплуатирует уязвимость Use-after-Free в процессе DFU, чтобы разрешить выполнение произвольного кода. Этот процесс состоит из нескольких этапов, но один из самых важных известен, как фэн-шуй кучи, который тасует кучу специальным образом, чтобы облегчить эксплуатацию уязвимости.
Запуск команды ./ipwndfu -p на MacOS.
В практическом плане все сводится к переводу iPhone в режим DFU и запуску простой команды ./ipwndfu -p. Результат действия Python скрипта состоит в снятии блокирования с несанкционированным доступом ко всей файловой системе смартфона. Это дает возможность устанавливать ПО для iOS из сторонних источников. Так злоумышленники и правоохранители могут получить доступ ко всему содержимому украденного или изъятого смартфона.
Хорошая новость состоит в том, что для взлома и установки стороннего ПО, требуется физический доступ к телефону от Apple и кроме того, после перезагрузки все вернется на место и iPhone будет в безопасности — это т. н. привязанный джейлбрейк. Если у вас на границе отобрали смартфон и затем вернули его, лучше лишний раз не испытывать судьбу и перезагрузиться.
iCloud и почти защищенные бэкапы
Выше уже было сказано, что в последнем противостоянии FBI с Apple из-за перестрелки в Пенсаколе, компания отдала в руки правоохранителей, резервные копии iCloud с телефонов подозреваемых. Тот факт, что в ФБР не стали воротить носом говорит о том, что эти данные, в отличие от заблокированного iPhone, были вполне пригодны для исследования.
Наивно полагать, что это единичный случай. Только за первое полугодие 2019 г. следователи 1568 раз получали доступ к почти 6000 полновесных резервных копий iCloud пользователей яблочных смартфонов. В 90% обращений из гос. структур компания предоставляла некоторые данные из iCloud, а таких обращений всего было около 18 тыс. за тот же период.
Это стало возможным после того, как Apple без лишнего шума два года назад свернула проект по обеспечению сквозного шифрования пользовательских резервных копий iCloud. Есть свидетельства в пользу того, что это было сделано после давления со стороны ФБР. Впрочем, есть также основания полагать, что отказ мотивирован желанием избежать ситуации, когда пользователи из-за забытого пароля не могут получить доступ к собственным данным iCloud.
В результате компромисса с силовыми структурами и пользователями возникла мешанина, в которой не очевидно, какие данные в iCloud надежно сокрыты, а какие — так себе. По крайней мере, можно сказать, что сквозное шифрование применяется для следующих категорий.
- Домашние данные.
- Медицинские данные.
- Связка ключей iCloud (включая сохраненные учетные записи и пароли).
- Платежные данные.
- Накопленный словарный запас QuickType Keyboard (необходима iOS v.11).
- Screen Time.
- Данные Siri.
- Пароли Wi-Fi.
Все же остальное, включая Messages, возможно, могут прочитать сотрудники Apple и компетентные органы.
Новая уязвимость на аппаратном уровне
Китайская команда разработчиков Pangu Team неделю назад сообщила о найденной неустранимой неисправности, на этот раз в чипе SEP (Secure Enclave Processor). В зоне риска находятся все устройства iPhone процессорах А7-А11.
SEP хранит ключевую, в буквальном смысле слова, информацию. К ним относятся криптографические функции, ключи аутентификации, биометрические данные и профиль Apple Pay. Он делит часть оперативной памяти с Application Processor, но другая ее часть (известная, как TZ0) зашифрована.
Последовательность загрузки SEP.
Сам SEP представляет собой стираемое 4MB процессорное ядро AKF (вероятно, Apple Kingfisher), патент № 20130308838. Используемая технология аналогична ARM TrustZone / SecurCore, но в отличие от нее содержит проприетарный код для ядер Apple KF в целом и SEP в частности. Он также отвечает за генерацию ключей UID на А9 и более новых чипах, для защиты пользовательских данных в статике.
SEP имеет собственный загрузочный ROM и он так же, как и SecureROM / BootROM защищен от записи. То есть уязвимость в SEPROM будет иметь такие же неприятные и неустранимые последствия. Комбинируя дыру в SEPROM с эксплойтом checkm8, о котором уже выше было сказано, можно изменить регистр отображения I/O для обхода защиты изоляции памяти. В практическом плане это дает возможность злоумышленникам заблокировать телефон без возможности его разблокировать.
Хакеры Pangu продемонстрировали, что они могут использовать ошибку в контроллере памяти, управляющем содержимым регистра TZ0. Всех деталей и исходного кода они не стали раскрывать, надеясь продать свою находку компании Apple.
Известный уже нам исследователь ИБ axi0mX написал в Твиттере, что уязвимостью в SEPROM можно воспользоваться лишь при физическом доступе к смартфону, как и в случае с checkm8. Точнее сама возможность манипуляций с содержимым регистра TZ0 зависит от наличия дыры в SecureROM / BootROM, так как после штатной загрузки iPhone изменить значение регистра TZ0уже нельзя. Новые модели iPhone с SoC A12/A13 не подвержены новой уязвимости.
Источник
Обнаружен эксплоит bootROM, позволяющий получить джейлбрейк на старых iPhone
Специалист по безопасности под ником axi0mX, на днях обнаружил эксплоит checkm8, который позволяет получить «вечный» джейлбрейк на старых моделях iPhone. По его словам, эту дыру в безопасности нельзя исправить простым обновлением, поскольку она существует на аппаратном уровне — в bootROM, устройстве, которое загружает iOS при запуске iPhone. Единственный способ ее исправить — выпустить новый чип, что, собственно, и сделала Apple в новых iPhone.
Уязвимости подвержены модели начиная с iPhone 4S и заканчивая iPhone X, т.е. сотни миллионов устройств по всему миру. По словам самого axi0mX — это не совсем эксплоит, а то, что может сделать старые модели еще лучше. В свою очередь, у checkm8 есть несколько минусов, которые явно идут вразрез со словами axi0mX.
EPIC JAILBREAK: Introducing checkm8 (read «checkmate»), a permanent unpatchable bootrom exploit for hundreds of millions of iOS devices.
Most generations of iPhones and iPads are vulnerable: from iPhone 4S (A5 chip) to iPhone 8 and iPhone X (A11 chip). https://t.co/dQJtXb78sG
Во-первых, чтобы получить доступ к данным iPhone должен быть подсоединен к компьютеру по USB, причем доступ нужно обновлять после каждой перезагрузки устройства. Справедливости ради, в будущем сообщество талантливых хакеров может и найти способ обоцти это ограничение, чтобы использовать checkm8 исключительно как стартовую точку. Во-вторых, при джейлбрейке значительно ослабляется защита смартфона от стороннего воздействия, т.е. используя checkm8, хакеры могут спокойно обойти защиту iCloud или блокировку телефона,а также позволить им установить на смартфон фейковую версию iOS, чтобы легко получать нужную информацию.
Сама Apple пока никак не прокомментировала этот эксплоит, но неясно, что компания в целом может сделать с этой уязвимостью. Решение может быть не только дорогим, но и невозможным для смартфонов, выпущенных раньше, чем iPhone 8.
Источник