Участники команды Google Project Zero раскрыли подробности о пяти из шести найденных ими уязвимостей в iOS. Все они позволяли проводить удаленные атаки на систему без взаимодействия с пользователем. Компания исправила ошибки в последнем обновлении системы, 12.4, которое вышло 22 июля. Тем не менее сведения об одном из багов, CVE-2019-8641, до сих пор не разглашаются, так как патч не смог полностью его закрыть.

Уязвимости обнаружила Натали Сильванович (Natalie Silvanovich) — она уже помогала исправлять ошибки в смартфоне Galaxy S6 Edge и мессенджере WhatsApp. Два бага исследовательница нашла совместно с Сэмюэлем Гроссом (Samuel Groß), который ранее участвовал в конкурсе для «белых» хакеров Pwn2Own в 2017 и 2018 годах, пытаясь взломать браузер Safari.

Наиболее подробно Сильванович рассказала об уязвимости CVE-2019-8646, позволяющей удаленно считывать файлы с устройства или получать доступ к содержащимся в памяти сведениям. По словам эксперта, проблема связана с программой iMessage, которая пыталась десериализовать объекты класса _NSDataFileBackedFuture, даже при включенном безопасном шифровании.

«Этот класс представляет собой объект с файловой поддержкой NSData, который загружает локальный файл в память при вызове оператора [NSData bytes], — поясняет Сильванович. — Во-первых, потенциально это может привести к нежелательному доступу к локальным файлам. Во-вторых, это позволяет создать объект NSData, длина которого будет отличаться от длины его байтового массива, что может привести и к считыванию данных за пределами границ, и к их потенциальной записи».

В качестве демонстрации исследовательница разработала PoC-эксплойт, однако подчеркнула, что последствия реальной атаки могут оказаться гораздо серьезнее.

Ошибка CVE-2019-8624 также связана с чтением за пределами границ, однако находится в функции Digital Touch в watchOS и затрагивает все версии устройства. Эту проблему исправили в выпуске watchOS 5.3.

Четыре оставшихся бага могут привести к выполнению произвольного кода без участия пользователя. Все они связаны с iMessage, и злоумышленнику для атаки нужно лишь отправить на устройство жертвы вредоносное сообщение — чтобы код запустился, ей достаточно открыть его и просмотреть.

Об этих ошибках известно следующее:

  • CVE-2019-8647 — использование данных после освобождения памяти, существует во фреймворке Core Data, связана с небезопасной десериализацией в NSArray при использовании метода initArithWoCoder.
  • CVE-2019-8662 (найдена совместно с Сэмюэлем Гроссом) — использование данных после освобождения памяти, существует в функции QuickLook.
  • CVE-2019-8660 (найдена совместно с Сэмюэлем Гроссом) — повреждение памяти в Core Data и компоненте Siri, может вызвать неожиданное завершение работы приложения или выполнение произвольного кода.
  • CVE-2019-8641 — подробности не разглашаются.

Информация о подобных багах высоко ценится на рынке эксплойтов. К примеру, американская компания Zerodium, которая специализируется на покупке информации об уязвимостях нулевого дня и их последующей перепродаже правительству или крупным организациям, могла бы заплатить не менее 1 млн долларов за каждую из найденных ошибок. Подтверждением этому служит прейскурант на официальном сайте организации.

Категории: Кибероборона, Уязвимости