Безопасность и конфиденциальность iOS
Операционная iOS система использует множество функций безопасности как аппаратного , так и программного обеспечения , от процесса загрузки до биометрии.
Безопасная загрузка
[ редактировать ]Перед полной загрузкой iOS существует низкоуровневый код, который запускается из загрузочного ПЗУ . проверить, что низкоуровневый загрузчик подписан Apple Root CA. открытым ключом Его задача — перед запуском Этот процесс предназначен для обеспечения того, чтобы на устройстве iOS не могло быть запущено никакое вредоносное или иное несанкционированное программное обеспечение. После того, как загрузчик низкого уровня завершает свои задачи, он запускает загрузчик более высокого уровня, известный как iBoot . Если все пойдет хорошо, iBoot продолжит загрузку ядра iOS, а также остальной части операционной системы. [1]
Безопасный анклав
[ редактировать ]Secure Enclave — это сопроцессор , который присутствует в устройствах iOS и является частью чипов A7 и более новых версий, используемых для защиты данных. Он включает в себя пользовательские данные, относящиеся к Touch ID , Face ID и Apple Pay , а также другие конфиденциальные данные. [2] Целью Secure Enclave является обработка ключей и другой информации, например биометрических данных, которая достаточно чувствительна, чтобы ее не обрабатывал процессор приложений (AP). Он изолирован аппаратным фильтром, поэтому точка доступа не может получить к нему доступ. [2] Он разделяет ОЗУ с точкой доступа, но его часть ОЗУ (известная как TZ0) зашифрована. Сам защищенный анклав представляет собой флэш-память процессорного ядра AKF объемом 4 МБ, называемую процессором защищенного анклава (SEP), как описано в патентной заявке Apple 20130308838 . Используемая технология аналогична TrustZone/SecurCore от ARM , но содержит собственный код для ядер Apple KF в целом и SEP в частности. Он также отвечает за генерацию ключа UID на чипах A9 или новее, который защищает хранящиеся пользовательские данные. [ нужна ссылка ]
Он имеет собственный безопасный процесс загрузки, обеспечивающий его полную безопасность. аппаратный генератор случайных чисел В состав этого сопроцессора также включен . Secure Enclave каждого устройства имеет уникальный идентификатор, который встроен в SoC во время производства и не может быть изменен. Начиная с устройств A9 , уникальный идентификатор генерируется генератором случайных чисел Secure Enclave и никогда не раскрывается за пределами устройства. Этот идентификатор используется для создания временного ключа, который в этой шифрует память части системы. Secure Enclave также содержит счетчик повторов для предотвращения атак методом перебора . [1]
SEP находится в дереве устройств в разделе IODeviceTree:/arm-io/sep и управляется драйвером AppleSEPManager. [3]
В 2020 году были обнаружены недостатки безопасности в SEP, что вызвало опасения по поводу таких устройств Apple, как iPhone. [4]
Идентификатор лица
[ редактировать ]Face ID — это сканер лица, встроенный в вырез на iPhone моделях X , XS , XS Max , XR , 11 , 11 Pro , 11 Pro Max , 12 , 12 Mini , 12 Pro , 12 Pro Max , 13 , 13 Mini . 13 Pro , 13 Pro Max , 14 и 14 Plus . В iPhone 14 Pro , 14 Pro Max , IPhone 15 , IPhone 15 Plus , IPhone 15 Pro и IPhone 15 Pro Max он встроен в Dynamic Island . [5] Его можно использовать для разблокировки устройства, совершения покупок и входа в приложения, а также других функций. При использовании Face ID только временно сохраняет данные о лицах в зашифрованной памяти Secure Enclave, как описано выше. устройства Главный процессор или любая другая часть системы не могут получить доступ к необработанным данным, полученным от датчика Face ID. [1]
Код доступа
[ редактировать ]Устройства iOS могут иметь пароль, который используется для разблокировки устройства, внесения изменений в настройки системы и шифрования содержимого устройства. До недавнего времени они обычно состояли из четырех цифр. Однако, поскольку разблокировка устройств с помощью отпечатка пальца с помощью Touch ID стала более распространенной, шестизначные пароли теперь являются стандартными для iOS с возможностью вернуться к четырем или использовать буквенно-цифровой пароль. [1]
Touch ID
[ редактировать ]Touch ID — это сканер отпечатков пальцев, который встроен в кнопку «Домой» и может использоваться для разблокировки устройства, совершения покупок и входа в приложения, а также других функций. При использовании Touch ID только временно сохраняет данные отпечатков пальцев в зашифрованной памяти Secure Enclave, как описано выше. устройства Как и в случае с Face ID, основной процессор или любая другая часть системы не могут получить доступ к необработанным данным отпечатков пальцев, полученным от датчика Touch ID. [1]
Рандомизация макета адресного пространства
[ редактировать ]Рандомизация структуры адресного пространства (ASLR) — это низкоуровневый метод предотвращения атак на повреждение памяти, таких как переполнение буфера . Он предполагает размещение данных в случайно выбранных местах памяти, чтобы затруднить прогнозирование способов повреждения системы и создания эксплойтов. Благодаря ASLR ошибки приложения с большей вероятностью приведут к сбою приложения, чем к незаметной перезаписи памяти, независимо от того, является ли поведение случайным или злонамеренным. [ нужна ссылка ]
Неисполняемая память
[ редактировать ]iOS использует ARM архитектуры функцию «Выполнять никогда» (XN) . Это позволяет помечать некоторые части памяти как неисполняемые, работая вместе с ASLR для предотвращения атак переполнения буфера, включая атаки возврата в libc . [1]
Шифрование
[ редактировать ]Как упоминалось выше, одно из применений шифрования в iOS — в памяти Secure Enclave . Когда на устройстве iOS используется пароль, содержимое устройства шифруется. Это делается с помощью аппаратной реализации AES 256, которая очень эффективна, поскольку размещается непосредственно между флэш-накопителем и оперативной памятью. [1]
iOS в сочетании со своим специальным оборудованием использует крипто-уничтожение при стирании всего контента и настроек путем уничтожения всех ключей в « стираемом хранилище». Это делает все пользовательские данные на устройстве криптографически недоступными. [6]
Брелок
[ редактировать ]Связка ключей iOS — это база данных данных для входа в систему, которая может использоваться всеми приложениями, написанными одним и тем же человеком или организацией. [1] Этот сервис часто используется для хранения паролей для веб-приложений. [7]
Безопасность приложений
[ редактировать ]Сторонние приложения, например распространяемые через App Store, должны иметь код, подписанный сертификатом, выданным Apple . В принципе, это продолжает цепочку доверия на всем пути от упомянутого выше процесса безопасной загрузки до действий приложений, установленных на устройстве пользователями. Приложения также изолированы в «песочнице» , что означает, что они могут изменять данные только в своем индивидуальном домашнем каталоге, если им явно не дано разрешение поступать иначе. Например, они не могут получить доступ к данным, принадлежащим другим приложениям, установленным пользователем на устройстве. В iOS имеется очень обширный набор элементов управления конфиденциальностью с возможностью управления возможностью приложений получать доступ к широкому спектру разрешений, таких как камера, контакты, фоновое обновление приложений, сотовые данные и доступ к другим данным и службам. Большая часть кода в iOS, включая сторонние приложения, выполняется от имени «мобильного» пользователя, не имеющего привилегий root . Это гарантирует, что системные файлы и другие системные ресурсы iOS останутся скрытыми и недоступными для установленных пользователем приложений. [1]
App Store обходит
[ редактировать ]Компании могут подать заявку в Apple на получение сертификатов корпоративного разработчика. Их можно использовать для подписи приложений, чтобы iOS устанавливала их напрямую (иногда это называется « загрузкой неопубликованных приложений »), без необходимости распространения приложения через App Store. [8] Условия их предоставления ясно указывают на то, что их можно использовать только для компаний, которые желают распространять приложения непосредственно среди своих сотрудников. [8]
Примерно в январе–феврале 2019 года выяснилось, что ряд разработчиков программного обеспечения злоупотребляли сертификатами корпоративных разработчиков для распространения программного обеспечения напрямую среди лиц, не являющихся сотрудниками, минуя App Store. Было установлено, что Facebook злоупотреблял сертификатом корпоративного разработчика Apple для распространения среди несовершеннолетних пользователей приложения, которое предоставляло Facebook доступ ко всем личным данным на их устройствах. [9] [10] [11] Google злоупотреблял сертификатом корпоративного разработчика Apple для распространения приложения среди взрослых для сбора данных с их устройств, включая незашифрованные данные, принадлежащие третьим лицам. [12] [8] AltStore , AppValley , Panda Helper, TweakBox и TutuApp злоупотребляют сертификатами корпоративных разработчиков для распространения приложений, предлагающих пиратское программное обеспечение . [13]
Сетевая безопасность
[ редактировать ]iOS поддерживает TLS как низкого, так и высокого уровня с API-интерфейсами для разработчиков. По умолчанию платформа App Transport Security (ATS) требует, чтобы серверы использовали как минимум TLS 1.2. Однако разработчики могут переопределить эту структуру и использовать свои собственные методы общения по сети. Когда Wi-Fi включен, iOS использует случайный MAC-адрес , чтобы никто не мог отследить устройства, перехватывающие беспроводной трафик. [1]
Двухфакторная аутентификация
[ редактировать ]Двухфакторная аутентификация — это опция в iOS, гарантирующая, что даже если посторонний человек знает комбинацию Apple ID и пароля, он не сможет получить доступ к учетной записи. Он работает, требуя не только Apple ID и пароль, но и код подтверждения, который отправляется на iDevice или номер мобильного телефона, о котором уже известно, что ему можно доверять. [1] Если неавторизованный пользователь пытается войти в систему, используя Apple ID другого пользователя, владелец Apple ID получает уведомление, которое позволяет ему запретить доступ к нераспознанному устройству. [14]
Усиленное распределение памяти
[ редактировать ]iOS имеет усиленный распределитель памяти, известный как kalloc_type
который был представлен в iOS 15 . Поскольку ядро XNU в основном написано на небезопасных для памяти языках, таких как C и C++ , [15] kalloc_type
разработан для устранения большого количества уязвимостей , возникающих в результате использования этих языков в ядре. Чтобы добиться этого, kalloc_type
реализует средства смягчения последствий, такие как изоляция типов, чтобы предотвратить путаницу типов и переполнения буфера уязвимости предотвращение повышения привилегий . . В конечном счете, целью является [16]
Ссылки
[ редактировать ]- ^ Jump up to: а б с д и ж г час я дж к Apple Inc. (май 2016 г.). «Руководство по безопасности iOS» (PDF) . Apple.com . Архивировано (PDF) из оригинала 27 февраля 2016 г.
- ^ Jump up to: а б «Безопасный анклав» . Поддержка Apple . Проверено 22 июня 2023 г.
- ^ «Дамп реестра ввода-вывода» . winocm благ . Архивировано из оригинала 23 сентября 2013 года . Проверено 11 августа 2020 г.
- ^ Эспосито, Филипе (1 августа 2020 г.). «Новый «не поддающийся исправлению» эксплойт, предположительно обнаруженный в чипе Apple Secure Enclave, вот что это может означать» . 9to5Mac . Архивировано из оригинала 5 ноября 2021 года . Проверено 5 ноября 2021 г.
- ^ «Все приложения и функции поддерживаются Dynamic Island» . ТехСпарк . 9 ноября 2022 года. Архивировано из оригинала 1 ноября 2022 года . Проверено 9 ноября 2022 г.
- ^ «Крипто-уничтожение с использованием стираемого хранилища в iOS на сайте stanford.edu» . Архивировано из оригинала 11 сентября 2018 года . Проверено 21 сентября 2018 г.
- ^ «Задачи службы связки ключей iOS» . Разработчик Apple . Архивировано из оригинала 20 декабря 2016 года . Проверено 6 декабря 2016 г.
- ^ Jump up to: а б с Уиттакер, Зак (февраль 2019 г.). «Все, что вам нужно знать о Facebook и скандале с приложением Google» . ТехКранч . Архивировано из оригинала 11 января 2023 года . Проверено 20 февраля 2019 г.
- ^ Констин, Джош (29 января 2019 г.). «Facebook платит подросткам за установку VPN, который шпионит за ними » ТехКранч . Архивировано из оригинала 7 марта 2020 года . Проверено 20 февраля 2019 г.
- ^ Оуэн, Малкольм (30 января 2019 г.). «Apple отозвала сертификаты корпоративного разработчика Facebook после нарушений [u]» . AppleInsider . Архивировано из оригинала 21 февраля 2019 года . Проверено 20 февраля 2019 г.
- ^ Уоррен, Том; Кастренакес, Якоб (30 января 2019 г.). «Apple блокирует Facebook запуск внутренних приложений iOS» . Грань . Архивировано из оригинала 3 февраля 2021 года . Проверено 20 февраля 2019 г.
- ^ Уиттакер, Зак; Констин, Джош; Лунден, Ингрид (30 января 2019 г.). «Google прекратит продавать сборщиков данных через черный ход Apple» . ТехКранч . Архивировано из оригинала 16 декабря 2019 года . Проверено 20 февраля 2019 г.
- ^ «Лазейка позволяет устанавливать пиратские приложения на Apple iPhone» . Новости Эн-Би-Си . Рейтер. 14 февраля 2019 года. Архивировано из оригинала 20 февраля 2019 года . Проверено 20 февраля 2019 г.
- ^ «Двухфакторная аутентификация для Apple ID» . Поддержка Apple . Архивировано из оригинала 20 декабря 2016 года . Проверено 6 декабря 2016 г.
- ^ «ХНУ» . Гитхаб . Дистрибутивы Apple OSS. Архивировано из оригинала 17 ноября 2022 года . Проверено 17 ноября 2022 г.
- ^ «На пути к следующему поколению безопасности памяти XNU: kalloc_type» . Блог Apple по безопасности . 27 октября 2022 года. Архивировано из оригинала 16 ноября 2022 года . Проверено 17 ноября 2022 г.