Обзор шифрования и защиты данных
Безопасная последовательность загрузки, а также функции обеспечения безопасности системы и приложений помогают следить за тем, чтобы на устройстве запускались только надежные приложения и фрагменты кода. В устройствах Apple также реализованы дополнительные функции шифрования для защиты данных пользователей даже в случае компрометации других частей системы безопасности (например, в случае пропажи устройства или запуска ненадежного кода). Все эти функции имеют большое значение для пользователей и ИТ-администраторов, поскольку они обеспечивают защиту личной и корпоративной информации, а также предоставляют средства для мгновенного и полного удаленного стирания в случае потери или кражи устройства.
На устройствах iOS и iPadOS используется технология шифрования файлов, также именуемая технологией защиты данных, в то время как для защиты данных на компьютере Mac с процессором Intel применяется технология шифрования томов под названием FileVault. На компьютерах Mac с чипом Apple используется гибридная модель, которая поддерживает технологию защиты данных, но с двумя оговорками. Самый низкий уровень защиты (класса D) не поддерживается, а используемый по умолчанию уровень защиты (класса C) использует ключ тома и работает так же, как и FileVault на Mac с процессором Intel. Во всех случаях основой иерархии ключей является специализированный процессор Secure Enclave, а выделенный модуль AES поддерживает шифрование на полной скорости и позволяет не раскрывать долговременные ключи шифрования ядру операционной системы или центральному процессору (где они могут быть скомпрометированы). (Для защиты ключей шифрования FileVault на Mac с процессором Intel и чипом T1 или без Secure Enclave не используется специализированный чип.)
Помимо использования функции защиты данных и FileVault, которые помогают предотвратить несанкционированный доступ к данным, ядра операционной системы Apple также обеспечивают защиту и безопасность. Ядро использует средства контроля доступа, чтобы помещать приложения в песочницу (что ограничивает доступ приложения к данным на основе установленных критериев). Ядро также использует механизм, который называется Data Vault (вместо того чтобы ограничивать запросы, которые может делать приложение, этот механизм ограничивает доступ к данным, которые находятся в одном приложении, но запрашиваются другим).
Источник
Так ли безопасен ваш 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 не подвержены новой уязвимости.
Источник
Обзор защиты данных
Компания Apple использует специальную технологию защиты данных, хранящихся во флеш-памяти на устройствах с системой на кристалле Apple, таких как iPhone, iPad, Apple Watch , Apple TV , и компьютер Mac с чипом Apple. Технология защиты данных позволяет устройству реагировать на штатные события, такие как поступление телефонного вызова, а также обеспечивает более высокий уровень шифрования данных пользователей. Некоторые системные приложения, такие как Сообщения, Почта, Календарь, Контакты и Фото, а также медданные, используют технологию защиты данных по умолчанию, а приложения сторонних разработчиков получают ее автоматически.
Реализация
Технология защиты данных реализована путем построения и контроля иерархии ключей, и она основана на технологиях аппаратного шифрования, встроенных в устройства Apple. Защита данных организована на уровне файлов: каждому файлу назначается один из классов защиты, а доступность определяется разблокированием ключей класса. Файловая система Apple (APFS) позволяет дополнительно разделять ключи по диапазонам (различные фрагменты файла могут иметь разные ключи).
Функция защиты данных создает новый 256-битный ключ («ключ файла») при создании файла в томе данных и передает его аппаратному AES-модулю, который использует этот ключ для шифрования файла при записи во флеш-память. На устройствах с чипами A14 и M1 для шифрования используется AES-256 в режиме XTS, где 256-битный ключ для каждого файла проходит через функцию формирования ключа (специальное издание NIST 800-108) для получения 256-битной поправки и 256-битного ключа. Поколения устройств с системами на кристалле от A9 до A13, S5 и S6 используют AES-128 в режиме XTS, в котором 256-битный ключ файла разделяется для получения 128-битной поправки и 128-битного ключа шифрования.
На компьютере Mac с чипом Apple для технологии защиты данных по умолчанию установлен класс C (см. раздел Классы защиты данных), однако при этом используется ключ тома, а не ключ диапазона или ключ файла. Фактически это эффективно воспроизводит модель безопасности FileVault для защиты пользовательских данных. Однако чтобы привязать иерархию ключей шифрования к паролю и получить полную защиту, пользователи все равно должны включить FileVault. Разработчики могут выбрать более высокий класс защиты, в котором используется ключ файла или ключ диапазона.
Источник