Пользовательские данные не являются разменной монетой. Компания Apple потратила значительные усилия для того, чтобы заслужить себе репутацию, стойко отбиваясь...
// habr.com
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 не подвержены новой уязвимости.
The agency wanted to crack the iPhone of Syed Farook, a suspect in the 2015 San Bernardino shooting. The Apple CEO took a stand.
// www.wired.com
С большой вероятностью вы уже слышали про нашумевший эксплойт checkm8, использующий неисправимую уязвимость в BootROM большинства iDevice-ов, включая iPhone X.
// habr.com
До недавнего времени джейлбрейка для iOS 13 не существовало. Точнее, до тех пор, пока хакер axi0mX не обнаружил уязвимость checkm8 и не объяснил, как можно заюзать ее на благо прогрессивной общественности. Сегодня мы расскажем об этой находке тебе.
// xakep.ru