Проверка Уязвимости Masque В Ios

Недавно опубликовано статья , относящийся к так называемому.

«Маскирующие» уязвимости в iOS. Выдержка из статьи:

«Уязвимость позволяет установить вредоносное приложение поверх существующего, и это новое приложение получит доступ ко всем файлам предыдущего.

При этом предполагается, что устанавливаемое приложение будет иметь тот же «идентификатор пакета», который iOS и OS X используют для идентификации приложений на уровне ОС, например, при доставке для них обновлений.

Это касается всех версий iOS, начиная с 7.1.1, включая последнюю бета-версию iOS 8.1.1».

Как человек, знакомый с сертификатами Enterprise не понаслышке, мне определенно хотелось опровергнуть/доказать этот факт. Итак, что известно о лицензии Enterprise: 1. Выдается исключительно компаниям (не частным лицам, Подробная информация ); 2. Для получения лицензии Enterprise необходимо предоставить Apple очень серьезный пакет документов.

Так указать несуществующую компанию не получится; 3. Выдаются корпоративные лицензии исключительно для внутреннего использования.

Тот факт, что некоторые приложения распространяются таким образом, рискует исключить компанию из программы iOS Developer Enterprise Program; 4. Установка приложения с сайта возможна через файл манифеста и только по HTTPS; 5. При установке приложения, подписанного лицензией Enterprise, пользователю предлагается сообщение «Вы уверены, что хотите установить приложение «Имя_приложения», подписанное сертификатом «Название_компании»Э», при этом Название_компании берется из сертификата.

Чтобы проверить наличие уязвимости, попробуем проследить путь злоумышленника.

Чтобы подписать приложение, вам необходимо создать Provisioning Profiles: Создание профилей обеспечения

Проверка уязвимости Masque в iOS

Следующий шаг — указание App ID: Выберите идентификатор приложения

Проверка уязвимости Masque в iOS

Но для того, чтобы указать его, вам необходимо создать этот App ID: Создайте идентификатор приложения

Проверка уязвимости Masque в iOS

На изображении показано, что при создании идентификатора приложения с помощью идентификатор «Идентификатор пакета», аналогичный другому приложению, выдает ошибку.

Общий: Вы можете получить профили обеспечения только с идентификатором приложения, который, в свою очередь, не может быть создан с уже зарегистрированным «идентификатором пакета».

А без Provisioning Profiles мы не сможем подписать приложение.

2 шаг Существует еще один способ создать идентификатор приложения «Идентификатор приложения с подстановочным знаком».

На сайте компании написано:

Это позволяет вам использовать один идентификатор приложения для сопоставления нескольких приложений.

Чтобы создать идентификатор приложения с подстановочным знаком, введите звездочку (*) в качестве последней цифры в поле «Идентификатор пакета».

Создание идентификатора приложения с подстановочным знаком

Проверка уязвимости Masque в iOS

Мы создаем собственный идентификатор приложения с подстановочными знаками, точно такой же, как у приложения, которое мы хотим заменить.

В последней части App ID (обычно название приложения) пишем (*).

Создан идентификатор приложения с подстановочными знаками

Проверка уязвимости Masque в iOS

Далее мы создаем профиль для нашего нового идентификатора приложения.

Создание собственных профилей обеспечения

Проверка уязвимости Masque в iOS

Таким образом, мы получили App ID, создали для него Distribution Provisioning Profiles и можем безопасно подписать с его помощью наше приложение.

Итак, создадим проект в Xcode и укажем для него следующие параметры: Создать проект в Xcode

Проверка уязвимости Masque в iOS

Проект представляет собой пустое приложение с одним представлением.

Итак, установленная на телефоне программа красуется на рабочем столе: Рабочий стол с приложением, которое планируем заменить

Проверка уязвимости Masque в iOS

Подключаем телефон и собираем наше приложение.

Напомню, что наше приложение имеет точно такой же App ID, что и приложение, которое мы хотим заменить.

После сборки приложения мы получаем следующий рабочий стол: Desktop, наше приложение успешно заменяет Target

Проверка уязвимости Masque в iOS

Приложение действительно зависло.

Уязвимость начинает подтверждаться.

Теперь мне интересно, а как насчет данных? Откройте всем известное приложение iTools. Обратите внимание на версию приложения — она изменилась, но сборка осталась прежней (в Xcode — build==1): Вот как выглядит наше приложение в iTools

Проверка уязвимости Masque в iOS

Скопируйте содержимое и откройте приложение архиватором.

И наблюдаем: всё, что было ДО переустановки, осталось на месте! ДО : Исходная структура папок приложения

Проверка уязвимости Masque в iOS

ПОСЛЕ : Структура папок после замены приложения

Проверка уязвимости Masque в iOS

В результате мы получили App ID и создали для него Distribution Provisioning Profiles. Мы создали простое (пустое) приложение и установили его на телефон.

Все данные, которые хранились в приложении, теперь находятся в руках нашего приложения! Если мы соберем архив и подпишем его созданным профилем, то можно будет распространять приложение, например, через сайт или в рассылке.

Пользователь увидит сообщение «Вы уверены, что хотите установить приложение «App_Name», подписанное сертификатом «Company_Name»Э», где Company_Name взято из сертификата.

Если пользователя не смущает тот факт, что известное приложение, которое он установил из AppStore, таким странным образом пытается обновиться, да еще и подписано сертификатом какой-то неизвестной ему компании, такой пользователь установит это приложение и передать его данные третьим лицам.

P.S. Что именно можно «получить» из приложения таким способом? То же, что и при просмотре теми же iTools, например, но удаленно.

В комментариях к статье жду советов по шифрованию важной информации, хранящейся на телефоне (в песочнице приложений), способы защиты от такого «проникновения» в ваши приложения.

Теги: #MASQUE #iOS #уязвимость #информационная безопасность #разработка iOS

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.