«Джейлбрейкнутое» устройство Apple - это не только новые возможности, но и дополнительные проблемы с безопасностью самого устройства и работающих на нем приложений. Сегодня мы поговорим о том, что такое джейлбрейк, как он работает и каковы его последствия для системы безопасности.
Итак, jailbreak - это специальная программа для снятия некоторых ограничений безопасности системы посредством эксплойтов. Со временем данное определение четко закрепилось за взломом устройств от компании Apple: iPod, iPad, Apple TV, iPhone. Такое название было дано в связи с основной его целью - взломом песочницы, но песочница эта настолько хорошая, что ее прозвали тюрьмой (jail). Для устройств под управлением ОС Android почти аналогичный процесс называется root’ованием, что связано с конечной целью - работой от пользователя root. Необходимо также не путать эти термины с понятием unlock, под которым подразумевается отвязка оператора сотовой связи, установленного с покупкой телефона. И стоит понимать, что jailbreak зависит от hardware и software: эксплойты, лежащие в его основе, могут использовать особенности как железа, так и программных составляющих. Так что наличие jailbreak под какое-то устройство X с OC Y не означает его работоспособность на устройстве Z с ОС Y или устройстве X с ОС K.
При этом сами jailbreak’и бывают двух типов:
Привязанный означает, что после перезагрузки такого устройства JB пропадает, а в случае непривязанного останется в силе, что гораздо удобнее.
Я бы выделил три основные категории людей, кому вообще нужен jailbreak: разработчики, обычные пользователи и исследователи ИБ.
Первым - чтобы узнавать, что крутится под капотом iOS, использовать ее скрытые возможности и как можно лучше оптимизировать свое приложение (порой и задействовать private API). Вторым - для того, чтобы использовать tweak’и (как правило, написанные первыми). Tweak - это небольшая программка, которая вносит какое-либо изменение в работу iOS для улучшения юзабилити. Это может быть новый набор иконок, вставка новых подсказок в SpringBoard или запоминание пароля для App Store - в общем, все, что кажется удобным и полезным со стороны пользователя, но не реализовано Apple. И наконец, исследователи безопасности нуждаются в джейлбрейке для копания в самой ОС и всем, что там крутится. Самый распространенный сценарий - это анализ защищенности мобильного приложения для iOS. Если ты не в курсе, то все iOS-приложения из App Store защищены DRM и получить расшифрованное приложение можно только в runtime. Данная операция пока возможна только на джейлбрейкнутом устройстве. Да, еще можно было бы сюда добавить госслужбы для шпионажа и атаки неугодных стран и ее лидеров. Например, Обаме его служба безопасности уже запретила использовать iPhone. Существует мнение, что в связи с высоким интересом военных к jailbreak может полностью исчезнуть публичный jailbreak: зачем выкладывать что-то бесплатно, когда тебе готовы отсыпать кучи зелени...
Сама Apple, конечно, относится к jailbreak негативно и предупреждает об этом своих пользователей. Это и очевидно, ведь в закрытую ОС сторонние люди вносят изменения и для сохранения этих изменений нарушают работу системы безопасности ОС - патчат и хучат определенные участки кода. Что, естественно, ведет к нарушению стабильности работы OC - это стоит иметь в виду, когда ты делаешь jailbreak.
JB отключает большинство механизмов безопасности ОС, в связи с этим появляется угроза заражения устройства вредоносным ПО. Это может быть как случайно скачанное вредоносное ПО из Cydia (его там никто не проверяет), так и целенаправленная атака в духе ZitMo, SpitMo, CitMo. Если ты думаешь, что таких проектов не существует, то ты ошибаешься. Есть проект iPhone-Espionage , который включает в себя такой функционал, как:
С позиции комьюнити это, наоборот, яркое и широко обсуждаемое событие, которое не обходят стороной даже такие издания, как Forbes. У разработчиков JB даже есть собственная конференция Worldwide jailbreak con , где они делятся информацией друг с другом. А по данным saurik (создателя Cydia - магазина нелегальных приложений для iOS), на 2 марта 2013 года в мире существовало 23 миллиона джейлбрейкнутых устройств.
Как бы то ни было, весь процесс создания jailbreak со стороны напоминает игру в кошки-мышки между Apple и разработчиками. Одни закрывают уязвимости и вносят новые механизмы безопасности в ОС, а другие ждут релизов и тестируют свои детища.
Хватит прелюдий, начнем погружение в техническую составляющую jailbreak. Давай немного познакомимся с механизмами безопасности iOS, которые встают на пути JB.
Понятное дело, так как в процессе JB приходится эксплуатировать баги повреждения памяти, появляется и необходимость обойти различные механизмы безопасности, нацеленные на затруднение эксплуатации таких уязвимостей. Среди них stack cookie, DEP, ASLR, KASLR и еще ряд других, которые даже не имеют специальных названий. На этом мы не будем останавливаться: это нам никак не поможет детектировать JB на устройстве и, в общем, выходит за рамки данной статьи.
Приступим к нашей основной теме. Чтобы разобраться, как задетектить, имеет устройство JB или нет, нужно понимать, что JB сделал, изменил, оставил после себя. Итак, ты поставил JB - какие новые грани открылись перед тобой?
На этих эффектах мы и будем играть - детектить JB!
Последствие 1: изменения в ФС
/dev/disk0s1 / hfs ro 0 1 /dev/disk0s2 /private/var hfs rw,nosuid,nodev 0 2
/dev/disk0s1 / hfs rw 0 1 /dev/disk0s2 /private/var hfs rw 0 2
После установки JB изменяется /etc/fstab . Директория / становится доступной на запись, а у директории /private/var пропадают биты nosuid, nodev.
Последствие 2: дополнительные утилиты
По умолчанию на iOS-устройстве отсутствует unix shell. Оно и понятно, Apple не закладывала в свои устройства возможность работы с ними из консоли. В связи с этим JB ставит различные полезные программки для упрощения своей установки. В итоге на устройстве появляется куча новых утилит, среди которых утилиты для работы JB, файлы самого JB, различные Bundle, Cydia (как правило, но не обязательно), Mobile Substrate и так далее. Часть из этих новинок можно увидеть в измененном /var/mobile/Library/Caches/com.apple.mobile.installation.plist .
Последствие 3: перерасположение папок
Приложения из App Store ставятся в /var/mobile/Applications , а из Cydia - в /Applications . В связи с тем, что системная директория (/) имеет значительно меньший размер, чем пользовательская (/private/var), и приложения из Cydiа ставятся в системную директорию, возникает проблема с доступным местом. Для ее решения с нужных директорий делают символическую ссылку на пользовательскую директорию, где места предостаточно. В итоге метод имеет следующую формулу: /var/stash + symbolic links. То же самое делается и для /Library/Ringtones , /Library/Wallpaper , /usr/include , /usr/lib/pam , /usr/libexec , /usr/share .
Последствие 4: поломанная песочница
Данные изменения происходят очень низко, на бинарном уровне, и они нам не особо пригодятся, но не сказать о них нельзя. Во-первых, JB патчит Apple Mobile File Integrity Daemon, который отвечает за проверку подписей. Во-вторых, вносит изменения в само ядро:
// Выключаем MAC для процессов security.mac.proc_enforce=0 // Выключаем MAC для Vnode security.mac.vnode_enforce=0
Кто-то может задаться вопросом: зачем мне как разработчику iPhone-приложений проверять, на каком устройстве запущена моя программа? Вопрос хороший и логичный.
Во-первых, чтобы снизить риски для самого пользователя. Если ты разрабатываешь какое-то критичное мобильное приложение, допустим для мобильного банкинга, то в связи с возможностью выполнения на таком устройстве вредоносного ПО ты можешь либо запретить запуск своего приложения, либо ограничить некоторый доступный функционал, например запретить денежные переводы или ограничить их верхним пределом. Я видел такие подходы в российских приложениях для мобильного банкинга. Также это часто используют MDM (Mobile device management) системы.
Во-вторых, не допустить обход ограничений, внесенных в код. Ограничения на клиенте - это зло.
В-третьих, усложнить анализ своего приложения. Кто-нибудь может захотеть изучить алгоритм работы твоей программы, и тут одной статикой не обойтись - нужна и динамика. И вот чтобы ему жизнь медом не казалась, можно либо переставать работать, либо вести по ложному следу.
Какое-то время назад, а именно с iOS 4.0 до 4.2.1, существовала специальная функция в MDM API от Apple для определения JB. Но просуществовала она недолго - меньше шести месяцев. Причины исключения данной функции Apple не комментировала. По одной из версий, данная функция была опасна и сама могла привести к JB-атаке.
Для обращения к URI-схеме можно использовать Objective-C-функцию openURL, а для работы с файлами как Obj-C-функции (BOOL)fileExistsAtPath:(NSString*)path), так и классические С-функции (fopen(), stat() или access()).
Порой для запутывания можно обращаться не к самим файлам, а к их свойствам:
Тут все просто, как и в предыдущем пункте. Опять же можно использовать как Obj-C-функции из класса NSFileManager, так и стандартные С типа statfs(), stat().
Sandbox запрещает приложениям из App Store использовать такие функции, как fork(), popen(), или любую другую C функцию для создания дочернего процесса на устройстве за пределами jail. Так что пытаемся вызвать эти функции и смотрим результат. Или можно выполнить вызов system(), который вернет 0 в случае, если sandbox работает, и 1 - если jailbreak. Это связано с тем, что на устройстве с JB будет присутствовать /bin/sh . Еще более изощренный способ - это использовать dyld imagecount() и dyld get image_name() для просмотра, какие dylibs сейчас загружены, - после JB есть своя специфика. При этом данный метод достаточно сложно пропатчить.
Если можно обнаружить детект, то можно обнаружить и процесс детектирования. А потом его нужным способом изменить:). Можно выделить три основных способа:
Помимо знания, что применять, нужно еще знать, как правильно это применять. Здесь хотелось бы дать несколько советов по защите iOS-приложения.
При этом старайся все security-проверки равномерно распределять по коду, а не проводить только при старте программы. И используй С для критичных функций и функций безопасности - таким образом информация о них не будет отображаться в _objc сегментах.
Для защиты от пиратства приложений можно проверять целостность собственных файлов. Например, целостность исполняемого файла - у всех взломанных/расшифрованных приложений LCENCRYPTION INFO = 0, так как его расшифровывают. Или еще, как вариант, проверять файлы метаданных: iTunesMetadata.plist, SC_Info, Code Signing, Info.plist.
Конечно, идеальной, непреодолимой защиты не существует, и все перечисленные способы лишь усложняют процесс реверс-инжиниринга.
В статье перечислены далеко не все способы детектирования JB на устройстве, но по аналогии ты можешь находить свои и усовершенствовать существующие методы.
Во-первых, существует три режима загрузки iOS: normal boot, DFU (device firmware upgrade) mode и recovery mode. Последние два, если не вдаваться в детали, необходимы для восстановления ОС в определенное состояние. Для обновления ОС через iTunes используется recovery mode. А на приведенном рисунке проиллюстрированы этапы при normal boot.
Во-вторых, при normal boot компоненты системы загружаются в такой последовательности: Bootrom -> LLB -> iBoot -> Kernel -> System Software -> Apps.
На каждом этапе происходит проверка подписи компонента. Атаковать эту цепочку можно на любом из этапов, и чем раньше это будет сделано, тем лучше, так как на более ранних этапах работает меньшее количество механизмов безопасности, которые необходимо будет обойти, и чем ближе к началу, тем ближе к железу. А закрытие уязвимости в hardware-составляющей требует от производителя произвести замену самого железа, то есть время жизни такой уязвимости - до выхода следующей версии устройства.
Наиболее простой способ определить наличие - найти на iPhone, iPod touch или iPad иконку Cydia . На старых поколения iPhone и iPod touch с прошивками младше 3.1.3 вместо Cydia может быть установлен другой менеджер пакетов - например, Icy, Rock Your Phone или Installer.
Чтобы не искать иконку Cydia по папкам, лучше сразу нажать на первом рабочем столе iOS кнопку Home и ввести в строку поиска "Cydia" или название другого менеджера пакетов.
Однако данный способ не даёт полной гарантии, потому что на джейлбрейкнутых iPhone, iPod touch или iPad можно скрывать иконки.
Чтобы замести следы, продавец может спрятать иконку Cydia. Поэтому сначала зайдите в настройки iPhone и посмотрите, есть ли там дополнительные меню, например, "Activator". Если да, то джейлбрейк сделан. Если нет меню, попробуйте стандартные жесты и действия, которыми может вызываться меню доступа к настройкам скрытия иконок:
Помните, что на iPad, iPod touch и Apple TV наличие джейлбрейка ни на что не влияет, потому что эти устройства не бывают залоченными.
Если продавец уверяет, что джейлбрейк не сделан, а вы нашли признаки джейлбрейка, лучше попрощаться. Но если вы всё равно хотите приобрести себе iPhone у такого человека, обязательно .
C Apple TV ситуация обстоит проще: там джейлбрейк обычно можно вычислить по наличию любых сторонних приложений, например:
Существует множество заблуждений о джейлбрейке, многие из которых приходится слышать из года в год. Что из этого правда? Приводит ли джейлбрейк к аннулированию гарантии на iPhone и iPad? Насколько сложно сделать джейлбрейк? Есть ли вообще смысл его делать?
В этой статье перечислены 10 самых распространенных мифов о джейлбрейке. Мы объясним, почему пользователи взламывают свои устройства, и расскажем, чего не стоит опасаться.
Джейлбрейк делается не навсегда. Если вы хотите обратиться в гарантийный отдел, просто используйте Cydia Impactor , чтобы стереть все следы джейлбрейка, либо восстановите iOS «с нуля» через iTunes. После этого Apple не узнает, было ли ваше устройство когда-либо взломано.
Конечно, вы сможете установить множество твиков, и некоторые могут замедлить ваш гаджет. Но если вы будете следить за тем, что вы ставите на свой гаджет, то не столкнетесь с падением производительности. Более того, с помощью твиков можно ускорить работу iPhone.
Опять-таки, вам нужно следить за тем, какие программные разработки вы устанавливаете. Точно так же джейлбрейк может сделать ваш смартфон более защищенным. В частности, разработчики джейлбрейка выпускали обновления с исправлением ошибок в iOS раньше, чем это делала сама Apple. Если вы будете держаться подальше от подозрительных репозиториев, пиратства, сомнительных твиков и не откроете ОС, установив OpenSSH или AFC2, – вы будете в полной безопасности.
На самом деле это не так, никто не вправе запретить вам сделать джейлбрейк своего устройства.
Некоторые считают, что джейлбрейк – это что-то подозрительное, чем занимаются странные личности в темных подворотнях. Но ведь это глупо. Джейлбрейк делают абсолютно разные люди: профессионалы и начинающие, родители, дети, знаменитости и музыканты. Джастин Бибер однажды пользовался iPhone с джейлбрейком.
Джейлбрейк вашего iPhone, iPad или iPod touch займёт меньше времени, чем вы тратите на приготовление утреннего кофе. Поверьте – это очень легко, и каждый без проблем может его сделать.
Джейлбрейк не может быть платным. В интернете можно найти множество обучающих статей и роликов. Если вам предлагают заплатить – вас просто обманывают.
В этом есть доля правды, но игры на смартфоне также плохо влияют на аккумулятор. Если вы будете внимательно подходить к выбору твиков, то сможете сохранить аккумулятор вашего гаджета. Сам факт джейлбрейка не означает, что ваше устройство автоматически будет быстрее разряжаться. Кроме того, существуют твики для увеличения автономности гаджетов.
На самом деле это не так. В то время как некоторые действительно пользуются возможностью устанавливать пиратский софт на взломанные устройства, это определённо не является причиной появления джейлбрейка и поводом его сделать. Большинство прибегает к джейлбрейку, поскольку он позволяет персонализировать iPhone и iPad, а не ради нелегальных приложений.
Можете ли вы установить тему оформления на iPhone с заводской прошивкой? Или запустить видео поверх другого приложения? А может быть Apple разрешает ускорить невозможно медленную анимацию iOS? Можете ли вы получить доступ к файловой системе iPhone? Или записать скринкаст на своем iPhone? Можете ли вы настроить переключатели в Пункте управления? Нет. А ведь всё это можно сделать при помощи джейлбрейк-твиков из Cydia.
А как относитесь к джейлбрейку вы? Слышали ли вы ещё какие-либо мифы? Поделитесь с нами в комментариях!
О совершении джейлбрейка с каждым днём задумывается всё больше пользователей, но поскольку это «взлом чистой воды» многие опасаются его делать. Стоит отметить, что после джейлбрейка устройство получает много новых возможностей, вызывая интерес у пользователей. Jailbreak имеет как преимущества, так и недостатки, ознакомившись с которыми можно сделать вывод, стоит ли взламывать свой гаджет.
Джейлбрейк - процедура взлома операционной системой iOS, позволяющая пользователю получить несанкционированный доступ к файловой системе устройств Apple. Совершается jailbreak посредством выявления уязвимостей системы безопасности Apple, благодаря чему пользователь получает доступ к ранее недоступным системным файлам. После джейлбрейка владелец гаджета под управлением iOS может управлять содержимым файловой системы и устанавливать различные программы из сторонних магазинов приложений, помимо основного от Apple (App Store). Пользователям «взломанных» iPhone и iPad, как и ранее, доступны все функции устройства, включая iTunes и App Store.
Одной из основных функций jailbreak является возможность модификации функций iOS, а также индивидуализация интерфейса iPhone или iPad.
Воспользовавшись джейлбрейком, пользователь получает ещё один дополнительный магазин приложений Cydia, содержащий те приложения, которые в App Store или iTunes отсутствуют. Учитывая то, что благодаря jailbreak появляется возможность модифицировать iOS, то именно в Cydia содержатся все те приложения, которые помогут настроить операционную систему по вкусу пользователя. Также в Cydia огромное количество бесплатных приложений, которые в App Store распространяются платно. Стоит отметить, что все бесплатные программы из Cydia (в народе «твики»), являются всего лишь копиями лицензионных приложений, которые в большинстве случаев платные.
Непривязанный jailbreak совершается один раз и работает до момента выхода следующей перепрошивки. В основе этого типа джейлбрейка находятся уязвимости, которые дают возможность получить доступ к файловой системе во время каждой загрузки гаджета без любого другого вмешательства.
Привязанный jailbreak предоставляет пользователю доступ к файловой системе устройств от Apple только до первого перезапуска или выключения устройства. При перезагрузке гаджета часто встречаются проблемы с его запуском или же устройство запустится, но некоторые твики перестанут работать или вовсе исчезнут.
Для совершения джейлбрейка пользователю нужно скачать бесплатный софт Pangu 9. Прежде чем начать процесс взлома необходимо:
После последующей перезагрузки гаджета процесс джейлбрейка будет успешно завершён, о чём сообщит надпись «Jailbreak completed».
На входящие уведомления во время установки джейлбрейка не реагируйте.
После всех выполненных действий джейлбрейк установлен, причём без использования компьютера и данных об учётной записи Apple ID.
На сегодняшний день существует специальный инструмент, благодаря которому можно удалить джейлбрейк, при этом сбросив все настройки до заводских и не используя никакие перепрошивки.
Прежде, чем приступить к удалению джейлбрейка необходимо совершить ряд действий, а именно:
Проблемы с джейлбрейком встречаются очень часто, но и решения их совсем несложные.
Эта ошибка появляется во время совершения джейлбрейка, тогда как утилита зависает на 45-50%. Для решения проблемы нужно подключить своё устройство к компьютеру, открыть iTunes (должен быть свежей версии) и найти своё гаджет в списке. Далее зайти в «Резервные копии» и снять флажок с пункта «Зашифровать резервную копию iPhone». После проделанных действий нужно повторить попытку совершения джейлбрейка.
Если кнопка «Start» серого цвета и не кликабельная - это означает, что Pangu 9 не разрешает начинать джейлбрейк устройства. Чтобы кнопка «Старт» стала кликабельной необходимо отключить устройство от компьютера и установить последнюю версию iTunes и попробовать снова. Если установлена последняя версия iTunes, но кнопка «Start» всё равно серая - попробуйте запустить iTunes от имени администратора или переподключиться к интернету.
Очень часто случается так, что процедура джейлбрейка прошла успешно и без ошибок, но на экране устройства не появился магазин приложений Cydia. Объясняется это тем, что утилите Pangu вовремя не был разрешён доступ к «Фото». Для решения проблемы стоит лишь заново взломать устройство, разрешив доступ к «Фото» приложению Pangu вручную. Сделав это, на экране гаджета гарантировано появится Cydia.
Бывают случаи, когда джейлбрейк прошёл успешно, никаких ошибок не было, Cydia на экране появилась, но попытка открыть её завершается сразу же после нажатия на иконку. Для решения проблемы нужно сбросить настройки устройства до заводских, после чего обновить версию прошивки (если есть обновление). Далее рекомендуется создать резервную копию или проверить её наличие, если уже была создана и попробовать снова запустить Cydia.
Стоит ли совершать джейлбрейк своего устройства пользователь в состоянии решить самостоятельно, на основе всех преимуществ и недостатков этой процедуры. Возможностей после джейлбрейка появляется огромное количество, чего стоит только настройка интерфейса устройства на свой вкус, но стоит ли ради этого лишать свой iPhone или iPad гарантийного обслуживания - вопрос, которым задаются всё больше пользователей гаджетов под управлением iOS.
Узнайте, как проверить стоит ли Jailbreak. Здесь вы найдете советы и комментарии специалистов, как узнать сделан ли Jailbreak на 6.1.3, как проверить есть ли Джейлбрейк.
Ответ:
Джейлбрейк – это взлом файловой системы iPhone или другой продукции производства компании Apple. Такая процедура может понадобиться в нескольких случаях. Самый безобидный заключается в банальном желании придать своему телефону или гаджету индивидуальности. Получив полный доступ, вы сможете устанавливать любые сторонние программы или редактировать тему оформления.
Во втором случае jailbreak используется для разблокировки «серых телефонов». Чаще всего этим занимаются продавцы цифровой техники. Недобросовестные торговцы таким способом маскируют «разлоченные» телефоны и продают их дороже, под видом официальных. Информация о том, как проверить есть ли Джейлбрейк, может быть необходима при покупке Айфона.
Начать проверку стоит с поиска ярлыка программы Cydia. Если нашли значок, значит джейлбрейк сделан однозначно. Но если вы не смогли найти признаков программы, это не означает отсутствие взлома. Существуют способы маскировки. Некоторые просто помещают сторонние значки в отдельную папку, а другие делают нужные ярлычки невидимыми, с помощью твиков. В таком случае обнаружить программу поможет быстрый поиск. Главное, чтобы была отмечена галочка «в программах», в настройках поиска.
Продвинутые взломщики не используют приложение Cydia для джейлбрейка. Как узнать стоит ли jailbreak в таком случае? Поможет компьютерная программа iFunBox. После установки, необходимо подключить iPone к компьютеру. В разделе iFunbox Classic будет показана вся информации о нем. Если после названия присутствует приписка «Jailed», то устройство не взломано. В противном случае (только название, ничего не дописано), джейлбрейк сделан. Главное, не перепутать.
Еще один способ определения вмешательства в программную среду телефона – это поиск дополнительных меню в настройках устройства. Называться они могут по-разному, например, «Activator» или подобное.
Процедура джейлбрейка немного усложнилась после выхода обновления IOS 6.1.3. В случае неудачи был невозможен откат на предыдущую версию. Но на сегодняшний день такой проблемы нет, взломать можно любую прошивку.