Хакер - Рождение, расцвет и смерть джейлбрейка. Как на протяжении десяти лет Apple боролась с хакерами и победила
nopaywall
Содержание статьи
Почему появился джейлбрейк?
iPhone (тогда еще просто iPhone, единственный и неповторимый) был действительно революционным устройством. На многие годы вперед он стал эталоном того, как должен выглядеть современный смартфон: большой экран, отсутствие физических кнопок, быстрый и удобный UI, оптимизированный для управления пальцем. Все это стандарты, которым сегодня следует любой производитель смартфонов.
Первый iPhoneПроблема состояла только в том, что за исключением полноценного браузера, мультитач-жестов и проигрывателя, унаследованного еще от iPod, первый iPhone не имел и не умел практически ничего. Никакого App Store, где можно скачать приложение или игру, никакой записи видео, ни системы копирования-вставки. Даже обои на главный экран поставить нельзя.
Джобс хотел, чтобы каждая программа, каждая функция на его устройстве была уникальна, неповторима и совершенна. Но разве возможно обеспечить весь спектр потребностей пользователя в одиночку, когда даже разрабатываемый образец, показанный на презентации, был практически неработоспособен, а ведь для демонстрации функциональности был избран так называемый Gold Way?
Стив Джобс представляет первый iPhoneВ общем, сложилась парадоксальная ситуация: есть устройство, которое наделено колоссальным потенциалом (благодаря основанной на macOS операционной системе, высокой производительности и огромному, по тем временам, сенсорному экрану), да вот только не умеет оно практически ничего. Поэтому вскоре после того, как стало ясно, что получить права root на устройстве не составляет особого труда (это удалось спустя одиннадцать дней после релиза iPhone), хакеры начали думать, как сделать устройство более полезным для его обладателя.
Первые годы Jailbreak
Сам по себе Jailbreak, то есть получение прав root в iOS, по большому счету не давал никаких преимуществ. Систему можно исследовать, заменить стандартные рингтоны или внести правки в системные конфигурационные файлы, но это все. Чтобы по-настоящему расширить функциональность смартфона, нужны были приложения, но, так как ни SDK, ни магазина приложений тогда не существовало, их пришлось изобретать на коленке.
Так появился Installer — инсталлятор приложений, основанный на системе управления пакетов Debian. Чуть позже ему на смену пришла Cydia, которая стала стандартом для установки стороннего софта на все последующие годы. Во многом этому способствовали создатели автоматизированных инструментов джейлбрейка, таких как PwnageTool, которые автоматически устанавливали Cydia на устройство в составе кастомной прошивки.
CydiaINFO
Кастомные прошивки на базе iOS выпускались вплоть до появления устройств с процессорами А5 (то есть до iPhone 4S и iPad 2). Одним из их символов стал надкушенный ананас, пародирующий логотип Apple. Кастомные прошивки позволяли активировать функции, не предусмотренные Apple (например, многозадачность на iPhone 3G), отключать ненужные демоны и языковые пакты. Основной же целью их создания была разлочка телефонов и установка Cydia.
2007–2010 годы справедливо можно назвать золотой эрой джейлбрейка. В одно и то же время могло существовать множество джейлбрейк-утилит для одной и той же версии iOS: QuickPWN, RedSn0w, PwnageTool, Sn0wBreeze, Star — знакомые названия для пользователей iPhone тех лет. Взломать устройство, откатить его на старую версию iOS, разлочить загрузчик или модем тогда было проще простого, и это делал чуть ли не каждый второй пользователь iPhone.
Инструмент QuickPWNСтремительно развивалось и сообщество разработчиков. Благодаря фреймворку MobileSubstrate, позволяющему вносить изменения в компоненты iOS на лету, разработчики могли не только писать приложения, но и модифицировать стандартные приложения, разработанные Apple.
Такие модификации получили имя «твики», и с каждым днем их становилось все больше. Фантазия разработчиков казалась поистине бескрайней: многие шутят, что первый Android, вышедший годом позже, — это просто iPhone с набором джейлбрейк-твиков.
В те годы Jailbreak, вероятно, был очень полезен для Apple. Разработчики сами предлагали варианты решения тех или иных проблем, компании оставалось только выбирать и внедрять лучшее. Релиз App Store в iPhone OS 2.0 не привел ни к краху джейлбрейка, ни к ослаблению его позиций; все приложения в App Store были очень ограничены и малофункциональны.
INFO
Среди первых приложений в Cydia были MobileTerminal — первое и до сих пор самое популярное приложение для доступа к командной строке, BSD subsystem — набор юникс-команд, портированных из BSD, SummerBoard, предшественник WinterBoard, программы для модификации интерфейса, Nullriver Ringtone Pack — набор кастомных рингтонов. Из игр были iPong и порт Doom.
Настоящим прорывом стал JailbreakMe — веб-сайт, использующий уязвимости в браузере iOS: баг в обработке файлов формата TIFF в iPhone OS 1.1.1 и уязвимость в библиотеке FreeType (версии iOS 3.1.2–4.0.1 и 4.3–4.3.3), которая была нужна для обработки шрифтов в PDF-документах. Сайт определял версию iOS и показывал либо специальным образом сформированное изображение в формате TIFF, либо невидимый iFrame с PDF внутри, который при обработке запускал код эксплоита.
Часть кода JailbreakMeСделать джейлбрейк с помощью JailbreakMe было настолько просто, что Apple пришлось заблокировать сайт на уровне роутеров в своих фирменных магазинах. Apple тогда пыталась защитить свои устройства, устраняя самые очевидные баги в новых версиях, но казалась беспомощной в своих попытках уничтожить джейлбрейк. Пользователей предупреждали о необратимости взлома и о принудительной блокировке всех таких устройств, в реальности же откат на стабильную версию прошивки не составлял особого труда.
В 2009 году Apple попыталась объявить джейлбрейк незаконным, опираясь на то, что он нарушает условия лицензионного соглашения. После длительного разбирательства суд отклонил этот иск и разрешил взлом всех телефонов. Но суд не запретил Apple всячески противодействовать этому, а уже с iPhone 4S компания из Купертино начала принимать весьма серьезные защитные меры.
Период расцвета (iOS 4–8)
В 2011 году Apple устранила все известные ошибки в загрузчике, а потому модели 2010 года стали последними с возможностью установки кастомных прошивок. Но еще большее внимание Apple уделила блокировке анлока. Пользователи iPhone 4 с некоторыми версиями модемов лишились возможности отвязки от оператора, в дальнейшем это стало возможно только при помощи прокси-сим, которые приходится докупать отдельно.
Однако хакеров, выпускавших утилиты для джейлбрейка, меньше не становилось. Самые простые и очевидные уязвимости были, конечно, закрыты, однако iOS взламывали уже через месяц-два после релиза прошивки.
Чем больше становилось пользователей iPhone, тем больше появлялось твиков в Cydia. Первые утилиты из главного неофициального магазина были направлены чаще всего на поверхностную кастомизацию внешнего вида и работу с терминалом, а программы, которые можно было свободно выложить в App Store, ушли отсюда еще в 2008–2009 годах. Но в 2010–2015 годах появлялась бездна разнообразных интерфейсных решений. А твиков, активирующих или дезактивирующих какую-либо функцию, было и вовсе неисчислимое количество.
Благодаря MobileSubstrate интерфейс iOS можно было менять до неузнаваемостиИменно в это время наметились ключевые проблемы Cydia. Извлекать какую-либо прибыль из приложений было практически невозможно, что снижало качество выпускаемого софта. Но еще более важной для пользователей была другая проблема. Первые твики нельзя было устанавливать на новые версии iOS. Конечно, появлялось множество альтернатив, но в связи со все большим раздуванием магазина найти их становилось не так-то просто. Между тем в App Store приложения почти всегда были совместимы с предыдущими версиями iOS.
Apple также прикладывала усилия для того, чтобы убить Cydia. Она не только всерьез взялась за повышение безопасности системы, но и оснащала ОС все большей функциональностью и новыми API, с помощью которых разработчики получали доступ к возможностям ОС, ранее доступным только после джейлбрейка.
Разработка джейлбрейк-утилит становилась все сложнее, старые команды хакеров прекращали свою работу. Спасти положение попытались китайцы (Pangu и PP Jailbreak), но они не смогли значительно улучшить дело, и к девятой версии iOS джейлбрейк уже был на грани смерти.
INFO
Несколько идей, которые Apple позаимствовала у джейлбрейк-сообщества. Анимированные обои, внедренные в iOS 7, были ранее реализованы в твиках LivePapers и 3DBoard. Иконку часов оживляла утилита LiveClock. SearchSettings активировал поиск по настройкам. Но самые известные заимствования — это «центр управления» (SBSettings) и панель многозадачности (Auxo и Dash).
Последние годы джейлбрейка
Старания Apple привели к тому, что джейлбрейк стал просто невыгоден. Для обнаружения и эксплуатации новых уязвимостей требовались огромные ресурсы и затраты времени. Такую работу уже мало кто соглашался делать за идею — найденные баги можно было продать Apple или на черном рынке.
Вместо борьбы с хакерами Apple начала переманивать их в свою компанию. В начале 2016 году в Apple ушли Chronic (Уилл Страфак) и p0sixninja (Джошуа Хилл). Тодеско, разработчик утилиты для джейлбрейка iOS 10, тоже неоднократно заявлял о сотрудничестве с «яблочной» командой по безопасности. Кроме того, Apple инициировала программу вознаграждений за отчеты об уязвимостях.
В iOS 9 появилась новая технология защиты системы Rootless, которая свела к минимуму шансы взломщиков. Кроме того, обновления, закрывающие уязвимости, стали выходить буквально через несколько дней после их обнаружения, поэтому к моменту, когда jailbreak-утилита, эксплуатирующая уязвимость, появлялась на свет, использовать ее уже мало кто мог. Продолжили делать джейлбрейк только те, кто поджидал его на старых версиях прошивки.
С выходом iOS 10 все стало еще хуже. Лука Тодеско, на данный момент уже свернувший свою разработку, создал инструмент джейлбрейка Yalu, однако он совместим только с 64-битными устройствами, не включая iPhone 7 и iPhone 7 Plus, и только с iOS 10–10.2. Позднее надстройка над Yalu для iPhone 7 и 7 Plus все-таки появилась (mach_portal), однако если сам Yalu находится в бета-тесте, то mach_portal оказался еще более нестабильным и сырым. Вдобавок эти инструменты выполняли привязанный джейлбрейк, который необходимо активировать каждые семь дней, используя компьютер.
Недавно команда KeenLab, ранее не выпускавшая утилит для взломов, продемонстрировала джейлбрейк iOS 11 и iOS 10.3.2 и заявила, что он работает на всех устройствах. Однако опыт прошлых лет подсказывает, что, даже если это не блеф, разработка все равно может не дойти до обычных пользователей.
KeenLab демонстрирует инструмент джейлбрейка iOS 11Поскольку количество пользователей Cydia стало резко сокращаться, разработка твиков также затухает. Если для iOS 9 еще выходили достойные внимания решения, то в десятой версии все стало совсем скучно: большинство разработчиков не захотели утруждать себя портированием твиков на новую ОС.
В целом для любителей джейлбрейка настали не лучшие времена. Кто-то готов смириться с неудобствами и начать использовать iOS без модификаций и расширений, кто-то переходит на альтернативную платформу. Apple же старается компенсировать утрату, добавляя всё новые функции в свои прошивки.
Как работают последние джейлбрейки
Немногие разработчики утилит для джейлбрейка готовы рассказывать о том, какие уязвимости они использовали для взлома iOS и как работают их инструменты. Но бывают и исключения. В 2016 году хакеры из команды Pangu выступили на конференции Black Hat с презентацией, посвященной взлому iOS версий 7, 8 и 9.
Для взлома iOS 7.1 было достаточно сформировать динамическую библиотеку, а затем подписать ее сертификатом с истекшим сроком и загрузить в системный процесс с помощью прописывания пути до библиотеки в системной переменной DYLD_INSERT_LIBRARIES. Далее библиотека эксплуатировала уязвимость в ядре для получения безграничных прав root.
Apple закрыла брешь, реализовав механизм Team ID validation, запрещающий загрузку сторонних библиотек. Однако для некоторых сервисов компания сделала исключение, чем и воспользовались Pangu для реализации джейлбрейка iOS 8. Pangu 8 внедрялся в neagent, реализующий поддержку сторонних VPN-сервисов.
Apple исправила баг в iOS 8.3. Поэтому ребята из Pangu пошли другим путем и воспользовались уязвимостью в системе обмена сообщениями XPC, а точнее реализации системы обработки сообщений в демоне assetsd. Это старая как мир ошибка парсинга путей к файлам, называемая Path Traversal Vulnerability, — передав демону особым образом сформированный путь, можно было перезаписать любой системный файл.
Эту уязвимость Apple закрыла в iOS 9, и хакеры вновь вернулись к идее использовать механизм загрузки внешних библиотек и в этот раз сформировали цепочку атак, эксплуатирующих сразу несколько уязвимостей. Pangu 9 подключал Developer DiskImage (DDI) с устаревшей уязвимой (но подписанной ключом Apple) версией демона vpnagent, далее использовал очередную уязвимость в XPC для того, чтобы скопировать vpnagent в систему, подключал дебаггер к vpnagent, в результате чего в последний можно было загрузить любую библиотеку на манер Pangu 7. Затем библиотека использовала уязвимость в ядре для отключения sandbox и получения полных прав в системе.
Заключение
Когда около десяти лет назад первый джейлбрейк позволил преодолеть все наложенные Apple ограничения, никто не сомневался в его необходимости. Без джейлбрейка iPhone был обычным телефоном, а с ним превращался в настоящий карманный компьютер.
Времена изменились, смартфоны стали мейнстримом, функциональность iOS расширилась в разы, а выпуск инструментов для джейлбрейка практически прекратился. Так нужен ли джейлбрейк сегодня, в мире, где большинство владельцев iPhone использует его только для общения в соцсетях?
Всем нужен выбор, но каков он должен быть? iOS, вероятно, уникальна по своему уровню безопасности, а без перекрытия джейлбрейк-уязвимостей это никогда не произошло бы. Так что выбор сейчас сохранился — выбор между открытостью и защищенностью.
Читайте ещё больше платных статей бесплатно: https://t.me/nopaywall