- Что значит ненадежные приложения на айфоне
- Что делать, если не удается проверить программу на iphone
- Ipa файл
- Блокировка контента из интернета
- Возможность изменять другие настройки и функции
- Динамическая инструментализация (dynamic insrtumentation)
- Дополнительная информация
- Как включить ограничения для приложений на iphone.
- Как запретить приложению доступ на iphone
- Как правильно устанавливать сторонние программы
- Как правильно установить корпоративные программы
- Как разрешить доступ приложению на iphone
- Каким приложениям можно разрешать доступ на iphone
- Локальная аутентификация
- Ограничение использования siri для поиска в интернете
- Ограничения для приложения game center
- Подготовка окружения
- Полезные ссылки
- Предотвращение доступа к ненормативному контенту и возрастной ценз
- Проблемы с доступом приложений
- Рекомендуем
- Разрешения 101
- Рекомендуем
- Руководство пользователя ipad
- Сотовая данных
- Уведомления
- Управление отслеживанием в приложениях на iphone
- Управление разрешениями одного приложения
- Установка и запуск
Что значит ненадежные приложения на айфоне
Все программы на айфон устанавливаются через App Store. Но не всегда в этом магазине удается найти необходимое пользователю ПО. Это касается тех, кто использует телефон для корпоративных целей. Нередко для ведения бизнеса необходимо решать особые задачи при помощи узкоспециализированных приложений.
Что делать, если не удается проверить программу на iphone
Причинами, почему не удается проверить программу iOS могут быть:
- блокировка адреса интернет-провайдером;
- санкции, например, многие приложения не могут пройти проверку в Китае или Северной Корее.
Чтобы справиться со сбоями в их работе нужно воспользоваться дополнительными утилитами — Shadowrocket и VPN. Далее поможет следующая пошаговая инструкция:
Ipa файл
Теперь нам нужно приложение для тестирования. Если мобильные приложения и находятся в скоупе для исследования по программе Bug Bounty, то максимум, что мы получим, — ссылку на официальный магазин приложений для платформы.
Мы можем попробовать перехватить трафик запущенного приложения и использовать разного рода инструменты, но для полноценного анализа желательно иметь IPA файл — аналог APK файла для Android. Чем ближе к оригинальному, тем лучше.
Находим IPA файл. Получить IPA файл можно несколькими способами:
Использовать приложения для управления устройством с компьютера (например, iTunes или Apple Configurator 2). Они скачивают приложения из App Store, а потом заливают на девайс. Но можно поймать момент, когда файл уже скачан на компьютер из App Store, но еще не залит на девайс, и скопировать его.
Установить приложение из App Store, а потом сдампить (например, через frida-ios-dump). Этот способ сработает только с джейлбрейкнутым девайсом, и в данном случае будут отсутствовать файлы с мета-информацией для App Store.
Использовать сайты с IPA файлами. Но там вы, скорее всего, найдете уже неоригинальный файл и исследовать его на безопасность будет не так интересно, но все еще полезно для использования.
Как получить IPA файл с помощью Apple Configurator 2:
Блокировка контента из интернета
iOS и iPadOS могут автоматически фильтровать содержимое веб-сайтов, чтобы ограничить доступ к материалам для взрослых в Safari и приложениях на вашем устройстве. Можно также добавить определенные веб-сайты в список разрешенных или заблокированных либо же предоставить доступ только к разрешенным веб-сайтам. Выполните указанные ниже действия.
- Перейдите в меню «Настройки» и выберите функцию «Экранное время».
- Нажмите «Контент и конфиденциальность», а затем введите пароль к функции «Экранное время».
- Нажмите «Ограничения контента», а затем — «Веб-содержимое».
- Выберите вариант «Неограниченный доступ», «Лимит сайтов для взрослых» или «Только разрешенные веб-сайты».
В зависимости от предоставленного доступа может потребоваться добавить определенные сведения, например адрес веб-сайта, который необходимо заблокировать.
Возможность изменять другие настройки и функции
Разрешить изменение других настроек и функций можно так же, как и в случае с настройками конфиденциальности.
- Перейдите в меню «Настройки» и выберите функцию «Экранное время».
- Нажмите «Контент и конфиденциальность». При необходимости введите пароль.
- В разделе «Разрешить изменения» выберите функции или настройки, которые можно изменять, а затем — «Разрешить» или «Не разрешать».
Вот некоторые настройки и возможности, изменение которых можно разрешить.
Динамическая инструментализация (dynamic insrtumentation)
Вот основные инструменты динамической инструментализации:
Эти инструменты помогают разбирать приложения в режиме выполнения: смотреть память приложения, используемые ресурсы, локальные хранилища, базы данных, Keychain, тестировать джейлбрейк и SSL пиннинг.
Посмотрим на пример простого обхода джейлбрейка с помощью Frida. Мы уже разобрали реализацию одного из вариантов обнаружения джейлбрейка в приложении DVIA-v2, но на самом деле для его обхода нам достаточно информации из class-dump. В приложении есть класс JailbreakDetection и метод isJailbroken, который возвращает значение типа boolean.
Попробуем заменить возвращаемое значение с помощью кода для Frida:
if (ObjC.available) {
var hook = ObjC.classes.JailbreakDetection["isJailbroken"];
console.log("registering hook");
Interceptor.attach(hook.implementation, {
onLeave: function(retval) {
console.log("replacing return value");
retval.replace(ptr("0x0"));
}
});
}
Cкрипт проверяет доступность API для Objective-C (ObjC.available), ищет метод isJailbroken класса JailbreakDetection и регистрирует его для перехвата. На выходе из метода заменяем возвращаемое значение на 0 (false), что в данном случае будет означать то, что девайс не джейлбрейкнут.
Такие простые вещи обходятся любым готовым инструментом. Если готовый инструмент не подходит, то придется написать свой скрипт.
Например, популярный вопрос на StackOverflow — как распознать джейлбрейк. Можно предположить, что этот или аналогичный код встречается во многих приложениях. В такой ситуации мы просто пишем больше своего кода:
const pathes = [
"/Applications/Cydia.app",
"/Library/MobileSubstrate/MobileSubstrate.dylib",
"/bin/bash",
"/usr/sbin/sshd",
"/etc/apt",
"/private/var/lib/apt/"
];
var fileExistsAtPathHook = ObjC.classes.NSFileManager["- fileExistsAtPath:"];
Interceptor.attach(fileExistsAtPathHook.implementation, {
onEnter: function(args) {
this.bypass = false;
var path = ObjC.Object(args[2]).toString();
for (var i = 0; i < pathes.length; i ) {
if (path.includes(pathes[i])) {
this.bypass = true;
console.log("fileExistsAtPath bypass: " path);
break;
}
};
},
onLeave: function(retval) {
if (this.bypass) {
console.log("fileExistsAtPath bypassed");
retval.replace(ptr("0x0"));
}
}
});
var canOpenURLHook = ObjC.classes.UIApplication["- canOpenURL:"];
Interceptor.attach(canOpenURLHook.implementation, {
onEnter: function(args) {
this.bypass = false;
var url = ObjC.Object(args[2]).toString();
if (url.includes("cydia")) {
this.bypass = true;
console.log("canOpenURLHook bypass: " url);
}
},
onLeave: function(retval) {
if (this.bypass) {
console.log("canOpenURLHook bypassed");
retval.replace(ptr("0x0"));
}
}
});
Используя такой подход, можно обойти более продвинутый джейлбрейк, чтобы дальше заниматься исследованием приложения.
Также на джейбрейкнутом девайсе можно попробовать обойти Touch ID с использованием Objection и команды “ios ui biometrics_bypass”.
Это пример использования готового скрипта, но написать такой код самостоятельно тоже можно: мы просто запустили похожий скрипт, используя инструмент с вшитым набором скриптов. Подкладываем неправильный отпечаток и перехватываем его. Операционная система отвечает, что доступа нет, но complete hook заканчивается, и нам удается пройти аутентификацию в приложении. Можно ознакомиться с кодом приложения тут.
Теперь рассмотрим Cycript. Этот инструмент по функциональности похож на предыдущие, но также может помочь связать элементы UI с кодом.
Допустим, что в приложении есть кнопка, и нам нужно понять, какой метод в коде вызывается при ее нажатии. Мы подключаемся к приложению, смотрим, какие кнопки есть в этом UI, находим его по какому-то лейблу и смотрим, какой у него целевой объект (target):
cy# var buttons = choose(UIButton)
cy# buttons[8].titleLabel.text
@"Jailbreak Test 1"
cy# buttons[8].allTargets
[NSSet setWithArray:@[#"<DVIA_v2.JailbreakDetectionViewController: 0x1058308f0>"]]]
cy# buttons[8].allControlEvents
64
cy# target=[buttons[8].allTargets anyObject]
#"<DVIA_v2.JailbreakDetectionViewController: 0x1058308f0>"
cy# [buttons[0] actionsForTarget:target forControlEvent:UIControlEventTouchUpInside]
@["jailbreakTest1Tapped:"]
Рассмотрим подробнее, что же тут происходит:
Выбираем все объекты класса UIButton.
Находим нужную нам кнопку по надписи на ней (см. titleLabel).
Находим, что является целевым объектом для действия по данной кнопке (см. allTargets). Получаем класс JailbreakDetectionViewController.
Смотрим, какие типы действий может обрабатывать данная кнопка (см. allControlEvents). Выясняем, что кнопка умеет обрабатывать нажатие, UIControlEventTouchUpInside (UIControlEventTouchUpInside = 1 << 6 = 64).
Вызываем метод actionsForTarget с известными нам данными и получаем имя метода: jailbreakTest1Tapped.
При нажатии на кнопку “Jailbreak Test 1” происходит вызов метода jailbreakTest1Tapped класса JailbreakDetectionViewController. Так мы можем соединить элементы интерфейса с соответствующим кодом и заниматься реверсом этих частей приложения.
Дополнительная информация
Организации и учебные заведения часто используют профили, позволяющие включать ограничения. Чтобы узнать, установлен ли профиль на вашем устройстве, перейдите в меню «Настройки» > «Основные» > «Профили». За дополнительной информацией обратитесь к администратору или лицу, настраивавшему профиль.
Как включить ограничения для приложений на iphone.
Эту функцию можно использовать для того, чтобы определенный пользователь, не смог использовать приложение не по его назначению.
Настроить ограничение можно следующим образом:
- Сначала необходимо зайти в настройки мобильного устройства;
- Затем потребуется найти пункт «Основные», в котором нужно открыть пункт «ограничения»;
- Пользователь должен придумать четырёхзначный пароль, который отличается от кода на экране блокировки;
- Теперь можно настроить ограничение по желанию владельца. Например, можно отключить встроенные покупки в приложениях, найдя пункт «встроенные покупки».
После того, как изменения будут сделаны, ограниченные программы пропадут с рабочего экрана.
Как запретить приложению доступ на iphone
Для того, чтобы запретить стороннему приложению доступ на iPhone потребуется, также зайти в настройки и найти там раздел «основные». После этого нужно зайти в «профили», «корпоративное приложение». В этом разделе необходимо найти стороннее приложение, которому пользователь хочет ограничить доступ на мобильном устройстве, и выключить пункт «доверять этому разработчику».
Как правильно устанавливать сторонние программы
Владельцы iPhone устройств могут скачивать различные программы из сторонних сайтов, но при этом им необходимо учитывать определенные нюансы. Например, довольно часто на таких сайтах размещаются утилиты, несущие в себе вредоносное программное обеспечение. Они могут стать причиной сбоев в работе мобильного устройства.
Важно! Если после установки стороннего приложения владельца просят предоставить данные его банковской карты, то приложение лучше удалить.
Устанавливать такие программы можно, используя iTunes, а также ipa-файлы. Для того, чтобы сделать это потребуется подключить смартфон к компьютеру, используя кабель, а затем найти необходимый файл и переместить его в iTunes.
После установки программы потребуется синхронизировать ее с телефон. А для того, чтобы она работала необходимо разрешить ей доступ к iPhone.
Как правильно установить корпоративные программы
В App Store приложения не предназначены для общего пользования, поэтому приходится их искать на сторонних ресурсах. Каждый желающий может открыть собственный магазин, аналогичный App Store. Некоторые организации создают отдельный профиль для своих сотрудников, чтобы у них был доступ к рабочим программам. В этом случае пользователи могут быть уверенными в безопасности своих устройств.
Другая категория подобных магазинов также предлагает большой выбор корпоративных программ. Однако их владельцы не всегда проверяют утилиты. Поэтому отсутствует гарантия безопасности данных пользователя. Для ее реализации достаточно купить готовый профиль в интернете.
Как разрешить доступ приложению на iphone
При запуске стороннего утилита, который не имеет разрешения, на экране смартфона всплывает уведомление «ненадежный корпоративный разработчик».
Разрешить доступ к любому стороннему утилиту можно в настройках мобильного устройства. Сделать это можно следующим образом:
- Сначала нужно запустить настройки на смартфоне iPhone, а после зайти в раздел «основные»;
- Затем пользователь должен найти пункт «профили», также он может называться по-другому – «профили и управление устройствами». Необходимо отметить, что этот пункт не появится до тех пор, пока пользователь не установит на свое устройство стороннюю программу;
- После этого нужно зайти в раздел «корпоративное приложение», где потребуется нажать на имя разработчика этого приложения;
- На этом этапе должна появиться надпись: «Доверять данному разработку». Необходимо нажать «разрешать».
После того, как пользователь сделает эти действия, он сможет запустить и использовать сторонний утилит на своем устройстве.
Также, перед тем как разрешать доступ определенной программе на смартфоне, у пользователя должен быть доступ к интернету.
Каким приложениям можно разрешать доступ на iphone
Разрешать доступ на мобильном устройстве стоит только тому утилиту, которое обладает хорошей репутацией и не несет в себе вирусные программы. Это могут утилиты, созданные лично пользователем, или же программы, которые необходимы для узкой специализации.
Не стоит скачивать на смартфон сомнительное приложение, поскольку оно может стать причиной программных сбоев в системе iPhone.
Локальная аутентификация
При установке на девайс приложения сначала просят пройти полноценную аутентификацию: ввести имя пользователя, пароль, подтвердить номер по SMS. Дальше пользователь может поставить четырехзначный пароль и использовать биометрию. Такую аутентификацию на устройстве будем называть локальной.
Есть разные варианты локальной аутентификации:
Ограничение использования siri для поиска в интернете
Чтобы ограничить возможности Siri, выполните следующие действия.
- Перейдите в меню «Настройки» и выберите функцию «Экранное время».
- Нажмите «Контент и конфиденциальность», а затем — «Ограничения контента».
- Прокрутите вниз до пункта Siri и выберите нужные настройки.
Можно ограничить следующие возможности Siri.
- Поиск контента в Интернете: запретите Siri выполнять поиск в Интернете.
- Ненормативная лексика: запретите Siri отображать ненормативную лексику.
Ограничения для приложения game center
Чтобы ограничить возможности приложения Game Center, выполните следующие действия.
- Перейдите в меню «Настройки» и выберите функцию «Экранное время».
- Нажмите «Контент и конфиденциальность», а затем — «Ограничения контента».
- Прокрутите вниз до пункта Game Center и выберите нужные настройки.
Можно ограничить следующие возможности приложения Game Center.
- Многопользовательские игры: исключите возможность играть в многопользовательские игры, разрешите играть только с друзьями или с любыми пользователями.
- Добавление друзей: исключите возможность добавлять друзей в Game Center.
- Связаться с друзьями: исключите возможность делиться списком друзей пользователя Game Center с играми сторонних разработчиков.
- Запись экрана: исключите возможность записывать изображение с экрана и звук.
- Многопользовательские игры рядом: исключите возможность включать настройку для игр рядом.
- Обмен личными сообщениями: исключите возможность пользоваться голосовым чатом, а также отправлять или получать пользовательские сообщения с приглашениями в игру или в друзья.
- Изменения видимости профиля: исключите возможность изменять настройки конфиденциальности профиля.
- Изменения аватара и псевдонима: исключите возможность изменять аватары и псевдонимы в Game Center.
Подготовка окружения
Для начала нужно подготовить окружение.
Вот что для этого необходимо:
Компьютер-хост. В идеале это должен быть MacOS, потому что с другой операционной системой возникнут сложности с установкой и запуском специализированного ПО.
Джейлбрейкнутый тестовый девайс с желаемой версией iOS. iOS симулятор, который поставляется в комплекте с Xcode, не подойдет, так как он предназначен для запуска приложений, собранных под x86 архитектуру. Релизные версии приложений, предназначенные для запуска на реальном девайсе, собираются под ARM. Поэтому приложения, загруженные из Apple App Store, не получится запустить в симуляторе iOS.
Сеть Wi-Fi, которая разрешает трафик от клиента к клиенту (или подход SSH через USB).
Перехватывающий прокси (Burp Suite, Charles, mitmproxy и т.д.).
Это набор максимум: на самом деле можно работать и не на MacOS, и не на джейлбрейкнутом устройстве, но будут дополнительные сложности: отсутствие нужных инструментов, необходимость переподписывать приложение с использованием сертификата разработчика и т.д.
Джейлбрейк. Для тестирования желательно сделать джейлбрейк девайса.
Краткая инструкция выглядит так:
Найти подходящее тестовое устройство и сделать резервную копию.
Проверить, что для установленной версии iOS есть джейлбрейк.
Выбрать подходящий вариант (по этой ссылке можете почитать про сравнение между Tethered/Untethered).
Джейлбрейкнуть, следуя инструкции к выбранному способу: например, Checkra1n или Unc0ver.
Если хотите узнать подробно о том, как работают джейлбрейки, почитайте статью с техническим анализом эксплойта для checkm8 от Digital Security. Там много интересных подробностей.
Полезные приложения. Теперь на девайс можно поставить приложения, которые нельзя установить на iPhone без джейлбрейка. Для этого нужно установить Cydia. Установка будет отличаться в зависимости от выбранного джейлбрейка, просто следуйте инструкции.
Вот некоторые полезные приложения:
Прокси. Следующий обязательный шаг — это настройка прокси для перехвата трафика приложения на устройстве.
Логика этого процесса аналогична настройке перехвата для браузера:
Полезные ссылки
В статье мы поверхностно рассмотрели инструменты и подходы, используемые при анализе мобильных приложений. Материал основан на подходах и рекомендация из OWASP Mobile Security Testing Guide — это подробное руководство по тестированию безопасности мобильных приложений под iOS и Android.
Практические примеры я взял из Damn Vulnerable iOS App (DVIA-v2) — одного из тестовых приложений, на котором можно оттачивать навыки и экспериментировать.
Также для закрепления материала из статьи советую посмотреть GimmeFlag — iOS приложение с простыми CTF-like заданиями на статический анализ. Для решения заданий достаточно минимального набора инструментов, наличие iOS девайса (как и Mac OS) не требуется.
Предотвращение доступа к ненормативному контенту и возрастной ценз
Можно также предотвратить воспроизведение музыки с ненормативным контентом и просмотр фильмов или телешоу с определенным возрастным цензом. Приложения также имеют возрастной ценз, который можно изменить с помощью ограничений в отношении контента.
Чтобы ограничить доступ к ненормативному контенту и применить возрастной ценз, выполните следующие действия.
- Перейдите в меню «Настройки» и выберите функцию «Экранное время».
- Нажмите «Контент и конфиденциальность», а затем — «Ограничения контента».
- Выберите настройки для каждой функции или настройку в разделе «Разрешенный контент магазина».
Ниже приведены типы контента, доступ к которому можно ограничить.
- Возрастной ценз: выберите страну или регион в разделе возрастного ценза, чтобы к контенту автоматически применялся соответствующий возрастной ценз для этого региона.
- Музыка, подкасты и новости: исключите возможность воспроизводить музыку, видеоклипы, подкасты и новости с ненормативным контентом.
- Музыкальные видеоклипы: исключите возможность искать и просматривать музыкальные видеоклипы
- Музыкальные профили: исключите возможность предоставлять друзьям общий доступ к тому, что вы слушаете, и отображать то, что слушают они
- Фильмы: исключите фильмы с определенным возрастным цензом.
- Телешоу: исключите телешоу с определенным возрастным цензом.
- Книги: исключите контент с определенным возрастным цензом.
- Приложения: исключите приложения с определенным возрастным цензом.
Проблемы с доступом приложений
Если у пользователя появились определенные проблемы с доступом приложений, то он может самостоятельно отрегулировать это в настройках своего iPhone. Для этого необходимо сделать следующее:
- В настройках пользователь должен найти раздел «конфиденциальность». В этом разделе он может увидеть полный список утилит, которые имеют доступ к iPhone;
- Далее необходимо коснуться необходимого приложения для того, чтобы настроить уровень его доступа. Также его можно запретить.
После этого проблема с доступом к программам должна быть решена.
Кроме того, если у пользователя возникли определенные проблемы с доступом к утилитам, то он может попробовать удалить их, а потом заново установить. Также может помочь выгрузка программы.
Помимо этого, по ссылке можно посмотреть видео, в котором подробно рассказано о том, что делать если не получается получить доступ к утилиту:
Разрешения 101
Как правило, хорошо разработанное приложение запрашивает разрешение, прежде чем оно сделает что-то, для чего потребуется разрешение. Приложения часто настраиваются, чтобы объяснить, почему они запрашивают разрешение. Например, приложение может запрашивать доступ к вашей библиотеке фотографий только при попытке прикрепить фотографию.
если вы согласны, приложение будет иметь разрешение навсегда – или до тех пор, пока вы не удалите его самостоятельно. Если вы не согласны, приложение никогда не сможет запросить это разрешение снова – это устраняет проблему, когда приложение постоянно запрашивает разрешение на то, что вы не хотите, чтобы оно делало. Вы все еще можете дать приложению разрешение после этого, но вам придется посетить экран настроек системы.
Некоторые приложения ведут себя плохо. Например, вы можете открыть мобильную игру и сразу же увидеть запрос на отправку push-уведомлений. Если только вы не хотите, чтобы вас обижала эта игра, просто скажите нет. Если разработчик не объясняет, для чего будет использоваться разрешение, и вы не понимаете, почему оно полезно, скажите «нет». Вы всегда можете активировать разрешение позже, если вам это нужно.
Рекомендуем
Руководство пользователя ipad
- Добро пожаловать!
- Поддерживаемые модели
- 12,9‑дюймовый iPad Pro (5‑го поколения)
- iPad Pro (12,9 дюйма, 4-го поколения)
- iPad Pro (12,9 дюйма, 3-го поколения)
- iPad Pro (11 дюймов, 3-го поколения)
- iPad Pro (11 дюймов, 2-го поколения)
- iPad Pro (11 дюймов, 1-го поколения)
- iPad Pro (12,9 дюйма, 1-го и 2-го поколения)
- iPad Pro (10,5 дюйма)
- iPad Pro (9,7 дюйма)
- iPad Air (4-го поколения)
- iPad Air (3-го поколения)
- iPad Air 2
- iPad (9‑го поколения)
- iPad (8-го поколения)
- iPad (7-го поколения)
- iPad (6-го поколения)
- iPad (5-го поколения)
- iPad mini (6‑го поколения)
- iPad mini (5-го поколения)
- iPad mini 4
- Что нового в iPadOS 15
- Быстрые команды
- Акции
- Советы
- Авторские права
Сотовая данных
Вы можете выбрать, какие приложения имеют возможность использовать сотовые данные. Это полезно, если у вас есть план данных с очень небольшим количеством данных, и вы пытаетесь сохранить его в максимально возможной степени. Вы можете указать некоторым приложениям не использовать сотовые данные, и они будут обновлять и выполнять другие задачи только при подключении к W-iFi.
Для управления этим разрешением откройте приложение «Настройки», коснитесь категории «Сотовая связь» и прокрутите вниз до списка приложений. Вы можете видеть, сколько сотовых данных использует каждое приложение, и отключить доступ к сотовым данным для определенных приложений.
В отличие от других разрешений, это разрешение предоставляется автоматически. Когда вы устанавливаете приложение, оно получает доступ к сотовым данным, если вы не пришли сюда и не отключили эту опцию.
Уведомления
Приложения также должны запрашивать разрешение на отправку push-уведомлений. Откройте приложение «Настройки» и коснитесь категории «Уведомления», чтобы узнать, какие приложения имеют право отправлять вам уведомления. Вы можете точно управлять тем, как эти уведомления появляются – отображаются ли они на экране блокировки, есть ли звук или нет, или есть только значок.
Приложения, для которых вы отключили уведомления, появятся в самом низу списка здесь, в разделе «Не включать». Выберите одно из этих приложений и включите для него уведомления, если вы хотите теперь видеть уведомления из приложения, для которого вы не разрешили ранее.
Управление отслеживанием в приложениях на iphone
Управление разрешениями одного приложения
Есть несколько способов управления разрешениями. Вы можете просмотреть экран «Настройки», чтобы просмотреть различные типы конфиденциальности и разрешений на уведомления, чтобы узнать, какое приложение имеет какое разрешение. Если вы особенно обеспокоены определенным типом разрешений – возможно, вы не хотите, чтобы вас беспокоили уведомления, или вы хотите сэкономить заряд батареи, сводя к минимуму приложения, имеющие разрешение на обновление в фоновом режиме – это полезно.
Вы также можете просто посмотреть на одно приложение, посмотреть, какие у него есть разрешения, и включить или отключить их. Для этого откройте приложение «Настройки» и прокрутите вниз список приложений в самом низу.
Нажмите на приложение, и вы увидите разрешения, которые оно хочет. Здесь вы можете включить или отключить отдельные разрешения для определенных приложений.
Установка и запуск
Мы сделали статический анализ. Теперь попробуем запустить приложение на джейлбрейкнутом девайсе и посмотреть, что оно делает.
Первая проблема, с которой мы сталкиваемся, — установка. Для пользователей есть один официальный способ это сделать — App Store. Для организаций существуют разные enterprise-решения, которые могут распространять приложение внутри компании в обход AppStore на девайсах, в которых уже включены MDM и т.д.
Нам это не нужно, поэтому попробуем поставить приложение (например, AppSync Unified), которое позволит устанавливать неподписанные файлы, файлы с невалидной подписью или с возможностью переподписать файл.
Самый простой вариант для этой задачи — Xcode (Window — Devices and Simulators) или Cydia Impactor (но в связи с последними изменениями от Apple у меня он не работает, вот тут есть информация про ошибки).
Также неподписанное приложение можно установить, используя специальное приложение на девайсе. Например, через Filza: загрузить IPA на девайс (например, через SFTP), найти IPA файл и нажать “Install”.
Теперь попробуем запустить. При запуске приложения можно столкнутся с тем, что разработчики попытались заблокировать запуск на джейлбрейкнутом девайсе либо выдают предупреждения при каждом запуске или даже во время работы приложения.
Один из простых способов обхода подобных предупреждений — использование специальных приложений (например, Liberty Lite), но это сработает только в случае простых механизмов обнаружения. Более сложные способы разберем в этой статье в разделе про инструменты динамической инструментализации.