Jailbreak checker — как обезопасить свое iOS-приложение
Привет! Меня зовут Тоня, я продуктовый разработчик в продукте QIWI Кошелек. Недавно мы делали задачу по предотвращению рисков в связи с использованием приложения с Jailbreak. Хочу рассказать о трудностях, с которыми столкнулись на пути, и о том, как мы их разрешили.
Кто такой этот ваш Jailbreak?
Наверное, каждый хоть раз слышал слово jailbreak, но давайте разберемся, зачем это нужно, чем опасно и как его обнаружить.
Дословно jailbreak переводится как «побег из тюрьмы» или «взлом». Данный термин, как правило, используется в отношении iOS. Простыми словами — это использование уязвимостей устройства для получения полного доступа к операционной системе. Из-за такого полного доступа к системе появляется и доступ до keychain, который становится уже не таким защищенным. После взлома у пользователя появляется доступ к альтернативным сторам, из которых можно скачать приложения, не проходившие ревью в App Store. Одним из самых популярных таких альтернативных сторов является Cydia, который чаще всего сразу же устанавливается в момент взлома устройства.
Зачем его отслеживать?
После джейлбрейка у мошенников появляется возможность взлома устройства по нескольким причинам. Приложения, которые становится возможным скачать в результате джейлбрейка, не проверяются никем, в отличие от случая с App Store, поэтому могут быть небезопасны. Также Apple не поддерживает устройства с jailbreak, из-за чего после взлома они перестают получать важные обновления, в том числе обновления системы безопасности. В случае взлома устройства компания Apple аннулирует гарантию на него, и при поломке его уже нельзя будет отремонтировать в официальном сервисе.
Чем же это может быть опасно для вашего приложения? Если оно работает с персональными данными либо с денежными средствами — следует, как минимум, предупредить пользователя о том, что это небезопасно. Тем более, это будет небезопасно, если ваше приложение используется в качестве двухфакторной аутентификации. Так как устройство не получает необходимые обновления безопасности, это упрощает для мошенников получение доступа к данным, например с использованием приложений, которые не проходили ревью от Apple.
Мы реализовывали проверку устройства на JailBreak, прежде чем предоставить пользователю возможность подключить себе Apple Pay, для того, чтобы избежать быстрого и простого доступа мошенников к картам. Но с уходом Apple Pay эта проблема стала уже не такой актуальной.
В памятке Центрального банка о мерах по обеспечению безопасности при работе в системе дистанционного банковского обслуживания физических лиц Банка России сказано следующее:
В целях минимизации рисков при использовании Системы дистанционного банковского обслуживания Банк просит клиентов для обеспечения безопасности их денежных средств не выполнять операции по повышению привилегий или взлому операционной системы мобильного устройства (получение root-прав для Android, установка jailbreak для iOS), на котором установлено или планируется установка мобильного приложения. Не устанавливать мобильное приложение на устройство, которое уже получило такие привилегии.
Данный пункт памятки приводит нас к тому, что в банковских приложениях необходимо отслеживать jailbreak и предупреждать пользователя о всех рисках, связанных со взломом.
Как же его отследить?
Есть несколько признаков того, что на телефоне настроен jailbreak. Вот так реализовали проверку мы:
- Наличие альтернативных сторов на устройстве. В первую — очередь проверка стора Cydia. Сделать это можно несколькими способами. Например, проверить, устройство на наличие обработчика протокола cydia:// : вот так:
static func hasCydiaInstalled() -> Bool < return UIApplication.shared.canOpenURL(URL(string: "cydia://")!) >Либо можно просто проверить, установлены ли сторонние сторы на устройстве. Вот список таких сторов: private static var suspiciousAppsPathToCheck: [String] < return [ "/Applications/Cydia.app", "/Applications/blackra1n.app", "/Applications/FakeCarrier.app", "/Applications/Icy.app", "/Applications/IntelliScreen.app", "/Applications/MxTube.app", "/Applications/RockApp.app", "/Applications/SBSettings.app", "/Applications/WinterBoard.app", ] >
Для того чтобы узнать, есть ли эти приложения на устройстве, нужно проверить с помощью FileManager, существует ли какой-нибудь файл на устройстве из списка, написанного ранее.
for path in suspiciousAppsPathToCheck where FileManager.default.fileExists(atPath: path)
- Проверить устройство на наличие подозрительных файлов. К списку таких файлов можно отнести следующие:
static var suspiciousSystemPathsToCheck: [String] < return [ "/Library/MobileSubstrate/DynamicLibraries/LiveClock.plist", "/Library/MobileSubstrate/DynamicLibraries/Veency.plist", "/private/var/lib/apt", "/private/var/lib/apt/", "/private/var/lib/cydia", "/private/var/mobile/Library/SBSettings/Themes", "/private/var/stash", "/private/var/tmp/cydia.log", "/System/Library/LaunchDaemons/com.ikey.bbot.plist", "/System/Library/LaunchDaemons/com.saurik.Cydia.Startup.plist", "/usr/bin/sshd", "/usr/libexec/sftp-server", "/usr/sbin/sshd", "/etc/apt", "/bin/bash", "/Library/MobileSubstrate/MobileSubstrate.dylib" ] >
Проверка на наличие этих файлов осуществляется так же, как и проверка на наличие подозрительных сторов — с помощью FileManager:
static func isSuspiciousSystemPathsExists() -> Bool < for path in suspiciousSystemPathsToCheck < if FileManager.default.fileExists(atPath: path) < return true >> return false >
Список таких файлов и приложений может постепенно пополняться. Наиболее актуальные списки можно найти на разных ресурсах в открытом доступе, например вот тут.
- Проверить, может ли приложение создавать или изменять файлы, которые находятся за пределами изолированной среды приложения. Например, может ли приложение записать текст в файл в каталоге /private . Если ошибок во время выполнения этого действия не возникнет — устройство взломано:
static func canEditSystemFiles() -> Bool < let jailBreakText = "Device is JailBroken " do < try jailBreakText.write(toFile: "/private/jailbreak.txt", atomically: true, encoding: .utf8) return true >catch < return false >>
- Также проверить доступ к подозрительным файлам можно проверить с помощью функции fopen() :
if UnsafeMutablePointer(fopen("/bin/bash", "r")) != nil || UnsafeMutablePointer(fopen("/Library/MobileSubstrate/MobileSubstrate.dylib", "r")) != nil || UnsafeMutablePointer(fopen("/usr/sbin/sshd", "r")) != nil || UnsafeMutablePointer(fopen("/etc/apt", "r")) != nil || UnsafeMutablePointer(fopen("/Applications/Cydia.app", "r")) != nil
По итогам всех проверок можно сказать — если хоть в одном из мест вернулось true, то мы можем утверждать, что на этом девайсе JailBreak.
Как предупредить пользователя и обезопасить приложение?
Лучше всего отловить пользователя с JailBreak до того, как он получит доступ к персональным данным или к денежным средствам. В нашей ситуации достаточно было лишь предупредить пользователя об опасности и сохранить данные о том, что он принял риски.
Для этого мы проверяем устройство пользователя еще до того, как он успел войти в свой аккаунт. После чего в случае согласия на риски мы локально на устройстве сохраняем время и факт согласия.
Также локальное хранилище помогает без авторизации отследить, предупреждали ли мы уже этого пользователя о рисках, или нет, чтобы каждый раз не показывать ему предупреждение при входе.
А как теперь все протестить?
Если вы уже попробовали эти проверки, наверняка заметили, что на симуляторе каждый раз показывается, что настроен JailBreak. Это происходит из-за того, что срабатывает проверка на открытие «/bin/bash» .
Это упрощает тестирование и отладку работы проверки на JailBreak, но при этом создает проблемы для автотестов и для дальнейшей работы с симулятором. Исправить это можно простой проверкой на таргет устройства, на котором запущено приложение, до того, как начать проверять на наличие JailBreak на устройстве:
#if targetEnvironment(simulator) return false #else // все остальные проверки #endif
А для того, чтобы написать автотесты на данную фичу, мы просто добавили новый булевый аргумент запуска приложения, который кидаем из автотестов и проверяем его перед началом всех проверок на JailBreak.
P.S.
Когда только реализовывали фичу, нам казалось, что в 2023 году уже никто не взламывает свои телефоны, но к нашему удивлению аналитика показала, что таких случаев достаточно. Поэтому данная задача потерять свою актуальность еще не успела.
Полезные ссылки
- Статья про способы проверки на jailbreak
- Наиболее полный список проверок на гитхабе
Проверяем, заражен ли Ваш iPhone вредоносным ПО
Может ли iPhone заразиться вирусами? В статье я расскажу, как провести сканирование вашего iPhone на наличие вредоносных программ и как удалить с него вирус в случае обнаружения.
Автор: Danny Maiorca, внештатный технический писатель iPhone хорошо известен своими мерами безопасности: защита от вредоносных программ, предлагаемая Apple, является одной из основных причин, по которой люди покупают данные устройства. Будьте внимательны, ваш телефон не защищен от угроз на 100 процентов. Далее я расскажу, каким образом можно обнаружить и удалить вирусы с iPhone.
Могут ли айфоны заражаться вирусами?
Итак, могут ли айфоны заражаться вирусами? Если ответить кратко, то да. Конечно, заражение iPhone вредоносным ПО случается реже, чем смартфонов Android. Тем не менее подобные инциденты все же происходят. Вредоносное ПО, попавшее на ваш iPhone, может нанести серьезный ущерб. В некоторых случаях зловред доставит незначительные неудобства вроде быстрой разрядки аккумулятора. Однако, если произошла кража личных данных, как вы понимаете, все гораздо серьезнее. В любом случае вы все равно можете минимизировать ущерб. Давайте сначала узнаем, как обнаруживать вредоносные программы на iPhone.
Как вредоносное ПО влияет на iPhone?
Как и в случае с компьютерными вирусами, вредоносное ПО часто снижает производительность вашего iPhone. Вы можете заметить, что батарея стала разряжаться быстрее, чем раньше. Конечно, на время автономной работы могут влиять и другие факторы, например, более холодная погода и возраст вашего устройства. Если вы заметили, что теперь вам требуется чаще заряжать телефон, советую произвести сканирование на наличие вредоносных программ. Когда на ваш телефон воздействует вредоносное ПО, устройство быстрее перегревается. Опять же, существуют и другие причины перегрева телефона, такие как перезарядка или большое количество запущенных приложений. Однако, если на телефоне установлено вредоносное ПО, он будет работать с большей нагрузкой и серьезно перегреваться. Разряженные батареи и перегрев телефона , несомненно, являются важными проблемами. Но пока они не станут критичными, вы, вероятно, даже не подумаете об обновлении телефона. Более серьезным последствием вредоносного ПО на iPhone является то, что ваш телефон в конечном итоге вообще перестанет работать. Особо хочу отметить, что вредоносное ПО, заразившее iPhone, скорее всего повлияет не только на работу устройства. Злоумышленники могут украсть ваши пароли и другие конфиденциальные данные. Киберпреступники продадут похищенную информацию или будут использовать для взлома ваших учетных записей.
Как проверить iPhone на вирусы или вредоносное ПО?
Если вам кажется, что айфон заражен вредоносным ПО, ознакомьтесь с инструкциями, приведенными ниже. Вот несколько практических способов проверить ваш iPhone на наличие вирусов или вредоносных программ.
Проверьте наличие незнакомых приложений
Один из самых простых способов обнаружить вредоносное ПО на вашем iPhone — проверить, нет ли на телефоне каких-либо незнакомых приложений. Вам следует искать приложения, которые вы не загружали и которые не являются приложениями Apple по умолчанию. Просмотрите файлы и папки на главном экране. Если вы ничего не видите, но все еще сомневаетесь, загляните в настройки iPhone. Возможно, там вам удастся найти что-то незнакомое.
Проверьте, был ли произведен джейлбрейк на вашем устройстве
Количество возможностей, которые пользователь получает после джейлбрейка, делают данную процедуру очень привлекательной. Однако, я вам крайне не советую ее производить. Помимо аннулирования гарантии, вы также сделаете свой iPhone более уязвимым для вредоносного ПО. Конечно, вы могли купить подержанное устройство и не знать, что оно подверглось джейлбрейку . Однако, для защищенности iPhone не имеет значения, сделали вы джейлбрейк самостоятельно или подозреваете, что данную процедуру выполнил кто-то другой. Проверка наличия джейлбрейка — один из шагов к выявлению вируса. Узнать, был ли произведен джейлбрейк вашего телефона, непросто. Одним из возможных признаков является наличие приложения Cydia. Данное приложение доступно только на взломанных устройствах iOS.
Проверьте счета за телефон

Если на вашем iPhone установлено вредоносное ПО, телефон ежемесячно использует больше данных, чем планировалось. В случае превышения суммы, установленной тарифным планом, вы получите больший счет на оплату. Еще одним возможным признаком наличия вредоносного ПО на вашем iPhone являются странные входящие или исходящие вызовы, которые вы не совершали или не помните, когда принимали. Опять же, подобные звонки могут привести к неожиданно большому счету. Проверьте, сколько данных вы использовали, перейдя в Settings > Mobile Network и прокрутив вниз до Mobile Data . Кроме того, вы можете обратиться к своему оператору мобильной связи.
Проверьте свободное место в хранилище (Storage Space)

Память вашего телефона может быть практически заполнена из-за большого количества приложений или фотографий. Но если оставшееся пространство для хранения значительно меньше, чем предполагалось, ваш iPhone возможно заражен вредоносным ПО. Чтобы проверить объем памяти, перейдите в Settings > General > iPhone Storage .
Как избавиться от вируса на вашем iPhone
Если вы сделали все вышеперечисленное и подозреваете, что ваш iPhone заражен, действовать нужно незамедлительно. Ниже приведены несколько простых инструкций как избавиться от вируса на устройстве.
Перезагрузите iPhone
В некоторых случаях перезагрузка iPhone поможет избавиться от вредоносных программ. Каким образом вы это сделаете, зависит от устройства. Например, если на вашем iPhone есть кнопка «Home», удерживайте ее и кнопку включения / выключения. Делайте это, пока ваш телефон не выключится и не включится снова. Если на вашем iPhone нет кнопки «Home», вы все равно можете принудительно перезагрузить iPhone и перевести его в режим восстановления. Если перезагрузка iPhone не работает, попробуйте вместо этого восстановить заводские настройки.
Удалите необычные приложения
Если вы заметили приложения, которых не должно быть на вашем телефоне, их удаление должно помочь избавить ваш телефон от вредоносных программ. Для этого удерживайте иконку, пока не будет выделено отдельное приложение, а затем нажмите Remove App. Вы также можете удалить все приложения, которые вы не загружали из App Store. В дальнейшем вам следует воздерживаться от загрузки приложений, не относящихся к App Store.
Очистите историю

Очистка вашей истории в Safari поможет избавиться от вирусов на iPhone. Кроме того, вы защищаете себя от кражи паролей и других данных. Чтобы очистить историю, перейдите в Settings> Safari. Затем прокрутите вниз до Clear History и Website Data.
Воспользуйтесь ПО для обеспечения безопасности
Антивирус, установленный на вашем iPhone, обнаружит и удалит любые вредоносные программы. Если на вашем устройстве нет антивируса, скачайте достойный пакет безопасности и проверьте ваш iPhone на вредоносное ПО.
Замените свой iPhone
Если вы сделали все возможное, но так и не смогли очистить iPhone от вредоносного ПО, скорее всего, вам придется заменить устройство. Поскольку в большинстве случаев вредоносное ПО создается пользователями и связано с джейлбрейком, гарантия Apple на вашу проблему не распространяется.
Действуйте быстро, если подозреваете, что ваш iPhone заражен вредоносным ПО
Хотя данные случаи редки, ваш iPhone может быть заражен вирусами и другими видами вредоносных программ. Поэтому важно знать, как действовать в таком случае. Проверьте, действительно ли ваш iPhone заражен вредоносным ПО. Если обнаружите, что проблема кроется в неправильном использовании устройства, подумайте, что вы делаете не так. Однако, если ваш телефон заражен, избавиться от вредоносного ПО можно разными способами. После очистки устройства от зловредов используйте только приложения из App Store!
Как узнать, сделан ли джейлбрейк на iPhone, iPad, iPod Touch или Apple TV

Так же отмечу, что в сети ходит описание способа определения джейла программой iFunBox, данный софт не всегда правильно отображает наличие или отсутствие джейлбрейка, поэтому не рекомендую верить этой информации.
Опасаться джейлбрейка не стоит, всегда можно просто восстановить iPhone, iPad или iPod Touch через iTunes, кроме тех случаев, когда вам пытаются продать официально залоченый iPhone для работы в сетях только конкретного оператора связи. Сейчас такие телефоны практически не продают на территории России, но всегда можно обезопасить себя проверкой модели iPhone и поискать в интернете, залочена данная модель под какого-либо оператора или нет, например model A1428 (iPhone 5) официально разлочена (Sim-Free).
Как определить джейлбрейк Apple TV
Джейл на Apple TV можно определяется только одним способом – присуствие сторонних программ. Если вы видите в интерфейсе девайса RSS, XBMC, Last.fm или нечто подобное, то перед вами девайс с джейлбрейком.
Jailbreak
Джейлбрейк — это процедура взлома iPhone ради получения доступа к его файловой системе. Благодаря этому можно снять многие ограничения iOS, в том числе на использование альтернативных магазинов ПО.
Взломанные Айфоны получают возможность устанавливать особые приложения, которые называются твиками. Они позволяют менять и настраивать системные функции iOS практически любым образом.
Поскольку джейлбрейк представляет собой взлом iOS, Apple не одобряет его и лишает гарантии владельцев тех устройств, которые решаются на выполнение этой процедуры. В компании объясняют это тем, что джейлбрейк делает явными все системные уязвимости iPhone, позволяя получить над ним удалённый контроль.
Может ли джейлбрейк вернуть Сбербанк Онлайн и Apple Pay на iPhone в России
Кирилл Пироженко
обновлено 12.01.2023
С момента своего появления и до сегодняшнего дня iOS была закрытой системой. У пользователей и сторонних программ отсутствует доступ к системным файлам. По умолчанию каждое установленное приложение занимает свой кусочек в памяти и может расширять его по мере увеличения количества загруженных данных. При этом просто перенести файл из программы в программу нельзя. Его можно только скопировать. джейлбрейк эти барьеры убирает, открывая доступ системным файлам и позволяя их изменять.
Выйдет ли джейлбрейк для iOS 15? Вы будете удивлены
Иван Герасимов
Мы уже многое рассказали про iOS 15 за эти месяцы: по-прежнему многие с недоверием относятся к этой версии операционной системы, но в ней понемногу открываются новые нюансы: мало того, что iOS 15 и вправду содержит много мелких фишек и ориентирована на будущее, но для нее до сих пор нет джейлбрейка. В общем-то, джейлбрейк для iOS — дело давно минувших лет. Apple прислушивается к пользователям и делает свою систему все более открытой, так что смысл в пиратской iOS пропал сам по себе. Кроме того, iOS 15 стала намного безопаснее, чем предыдущие версии. Рассказываем, что нужно знать о джейлбрейке iOS 15, точнее, о том, почему он невозможен.
iOS 13.5 только вышла, а для неё уже выпустили джейлбрейк
Иван Кузнецов
Удивительно, как быстро меняются наши предпочтения. Если ещё лет 7-10 назад считалось вполне нормальным сделать джейлбрейк своего iPhone или iPad, чтобы расширить его функциональность и получить доступ к бесплатному софту, то сегодня будет довольно сложно найти тех, кто согласится на взлом ради этих сомнительных преимуществ. Впрочем, это не значит, что желающих обойти защиту iOS нет совсем. Ведь ради кого-то же хакеры регулярно создают соответствующий инструментарий, денно и нощно изучая наиболее податливые уязвимости ОС.
Пользователям iOS 13 угрожает фальшивый джейлбрейк
Иван Кузнецов
Несмотря на то что джейлбрейк давно перестал быть чем-то обыденным, всё ещё остаются пользователи, которые с нетерпением ждут, когда хакеры отыщут в iOS лазейку и позволят обмануть защитные механизмы операционной системы. В большинстве своём это либо гики, либо исследователи в области кибербезопасности, использующие взломанные iPhone для поиска скрытых уязвимостей. Однако иногда попадаются и те, чья цель – это бесплатные приложения, заполучить которые они могут только с помощью джейлбрейка. Они-то и становятся жертвами мошенников, которые только и надеются на любителей халявы.
В продажу выходят Lightning-кабели для взлома компьютеров Mac
Иван Кузнецов
Времена, когда iPhone нельзя было взломать, снова подошли к концу. Теперь эту операцию легко можно провернуть несколькими способами в зависимости от того, что нужно взломщику. Если его цель проследить за жертвой — подойдёт вредоносный сайт, если нужно украсть данные — пригодится эксплойт для iMessage, автоматически загружающий на устройство вирусный компонент. А что делать, если нужно получить доступ к Mac, который защищён куда более эффективно? Пожалуй, лучше, чем поддельный кабель под названием O.MG, инструмента не найти.
iOS 12.4 официально взломана. Кто виноват?
Иван Кузнецов
Apple уделяет большое значение обновлениям своих операционных систем и издавна прививает это же чувство своим пользователям. Поэтому в Купертино всегда советуют устанавливать все апдейты без исключения, даже если они, на первый взгляд, не включают в себя новых функций. В компании объясняют это соображениями безопасности, поскольку практически каждая новая сборка ОС содержит в себе исправления тех или иных уязвимостей. Но иногда что-то идёт не так и обновления вместо того, чтобы защищать, подвергают пользователей серьезному риску.
Вышел джейлбрейк на iOS 12.4. Как установить?
Максим Костенков
В былые времена многие продвинутые пользователи с нетерпением ждали выхода джейлбрейка, чтобы расширить возможности своих iPhone и iPad. Тогда взлом был просто жизненно необходим, ведь многие важные функции просто отсутствовали в iOS. Сегодня интерес к этой сфере практически сошел на нет — поскольку мобильная операционная система от Apple «обросла» множеством полезных опций. Однако, если вы ещё являетесь сторонником джейлбрейка, то у нас есть хорошие новости.
Выпущен джейлбрейк для iOS 12.2. Как установить?
Максим Костенков
С каждым годом джейлбрейк становится всё менее и менее актуальным. Этому поспособствовало сразу несколько факторов: высокая безопасность системы, уход ключевых хакеров и, разумеется, само развитие операционной системы. За последние годы iOS ушла далеко вперед в плане своих возможностей, и пользователи просто не видят нужды в установке джейлбрейка. Однако, если вы всё еще остаетесь приверженцем взлома — эта инструкция для вас.
Для watchOS 5 выйдет джейлбрейк. Но зачем?
Максим Костенков
В ближайшее время для watchOS 5 может выйти полноценный джейлбрейк. Разработкой инструмента для взлома часов занимается хакер скрывающимся под псевдонимом ethanpepro. Есть большие сомнения в целесообразности данной затеи: какие дополнительные возможности сможет привнести инструмент для взлома, учитывая, что речь идёт о таком нишевым продукте как Apple Watch?
Вышел джейлбрейк для iOS 12-12.1.2. Как установить?
Максим Костенков
Несколько лет назад джейлбрейк был действительно популярен — пользователи с нетерпением ждали выхода инструментов для взлома ОС. Со временем мобильная операционная система Apple обросла новыми функциями и опциями, и нужда во взломе системы постепенно отпала. Впрочем, если вы всё еще горите желанием установить джейлбрейк, спешим вас порадовать — такая возможность есть.