Компания
389,42
рейтинг
15 ноября 2014 в 00:43

Разработка → Apple прокомментировала ситуацию с уязвимостью Masque в iOS

На этой неделе компания FireEye опубликовала информацию, относящуюся к т. н. «Masque» уязвимости в iOS. Уязвимость позволяет установить вредоносное приложение поверх уже существующего, причем это новое приложение получит доступ ко всем файлам предыдущего. Это при условии того, что устанавливаемое приложение будет иметь тот же самый идентификатор «bundle identifier», который iOS & OS X используют для идентификации приложений на уровне ОС, например, при доставке им обновлений. Уязвимости подвержены все версии iOS начиная с 7.1.1, включая, последнюю iOS 8.1.1 beta.



В сценарии атаки с использованием этой уязвимости, пользователю в сообщении приходит ссылка на установку вредоносного приложения, которое маскируется под легитимное. Как и в случае с вредоносным ПО iOS/Wirelurker, о котором мы писали здесь, для установки приложения (IPA-контейнер) на iOS без jailbreak, вредоносная программа должна использовать метод «enterprise provisioning» и устанавливаемый файл должен быть подписан цифровым сертификатом выданным Apple. Это новое приложение должно иметь «bundle identifier» уже установленного приложения (но не того, которое является «родным» для iOS), что позволит ему при установке получить доступ ко всем файлам старого и в дальнейшем отправить их на сервер атакующих.

У нового приложения нет возможности перезаписать встроенное изначально в iOS приложение, например, браузер Safari или Mail, однако, используя общеизвестные «bundle identifier» других приложений, оно может получить доступ ко всем его конфиденциальным данным. Это могут быть данные онлайн-банкинга, личные сообщения и любая другая информация, которая интересует злоумышленников.

Преимущество метода «enterprise provisioning» заключается в том, что приложение, поставляемое по этой схеме можно не отправлять на подтверждение его безопасности компании Apple, как в случае с App Store. Кроме этого, для устройств без jailbreak это является практически единственным способом установки приложения на iOS в обход App Store. Подразумевается, что приложение будет подписано сертификатом, выданном компанией Apple, и этого достаточно для подтверждения его легитимности.

We designed OS X and iOS with built-in security safeguards to help protect customers and warn them before installing potentially malicious software. We're not aware of any customers that have actually been affected by this attack. We encourage customers to only download from trusted sources like the App Store and to pay attention to any warnings as they download apps. Enterprise users installing custom apps should install apps from their company's secure website.

Apple

Apple также обновила информацию по схеме «enterprise provisioning» в своей статье support.
Автор: @esetnod32
ESET NOD32
рейтинг 389,42

Похожие публикации

Комментарии (40)

  • +41
    Если уязвимостью считается то, что пользователь может установить себе вредоносную программу, самостоятельно подтвердив её установку, и дав права… Похоже я нашёл ещё несколько платформ, на которых есть похожая уязвимость =)
    • –19
      Во всех системах этого нет, тк там производится проверка подписи приложения.
      • +7
        Приложение как раз подписано верно и сертификатом, который выдала сама Apple.
    • –7
      Да, мы живем в век, когда пользователей мало беспокоит то, что завтра их пароль 123123 сбрутят, но в данной ситуации действует принцип скрытой угрозы. Здесь нужно обладать параноидальным убеждением, как у меня, что нет ни одной надежной системы безопасности, и трижды проверять все то, с чем соприкасаешься. Но, если человек приобрел iДевайс, это значит, что он выбрал то всеми обожествляемое удобство, которым последние славятся. А значит, он рассчитывает, как любят говорить у меня на работе, «все делать в один клик».
      • +25
        Когда вирус устанавливается «в один клик» — это не вирус. Хороший, годный вирус устанавливается без всяких кликов =)
        • +4
          То есть, это я к чему. Представим себе такую воображаемую корпорацию, в которой отделу дали задание «Разработать вирус под iOS». Просто мысленный эксперимент. Я бы не месте руководства такой вирус не принял.
    • +1
      За остальные не скажу, но Андроид не позволяет ставить приложение с другой подписью поверх уже установленного. пользователю придётся удалить легитимное и поставить фейковое. данные приложения при этом не будут сохранены.
      Правда были баги и в этой системе тоже.
    • 0
      у вас есть ios устройство? я как то видел установку приложения, подписанного enterprise сертификатом, на айфон с публичного сайта. клик по ссылке — установка приложения на спрингборд. я не помню наличие запроса для подтверждения.
      проверьте, пожалуйста, на эмуляторе gameboy из ссылки ниже.
      • +1
        Подтверждение спрашивает, эмулятор не устанавливается, видимо что-то сломано…
        • 0
          okay, подтверждение уже хорошо, значит память меня подвела. И по крайней мере тихой установки не произойдёт.
          • 0
            По крайней мере с iOS 6 всегда спрашивало прежде чем ставить.
      • 0
        Да что там, Джейлбрейк, помнится, с сайта ставился. Абсолютно безопасных систем не бывает, да ещё динамично развивающихся.
        • 0
          тот джейлбрейк использовал ошибку, которая была оперативно устранена
          а безошибочных приложений, действительно не бывает
  • +3
    Странная уязвимость. Где злоумышленник возьмёт enterprise сертификат? Его выдают с очень серьёзными проверками и отзовут сразу же, как только услышат про злоупотребление.
    • 0
      это только в случае обнаружении зловреда человеком, знающим что такое enterprise profile, и куда писать для его отзыва. при локальном распространении или даже таргетированных атаках высока вероятность оставаться не обнаруженным вплоть до достижения цели.
      • 0
        Согласен. Ну а что делать-то? Для многих целей нужно писать свои приложения без всяких AppStore-ов. Это я вообще о концепции enterprise приложений. С тем, что устройство должно при переустановке приложения проверять, что старый сертификат того же типа, что и новый, я согласен. Это баг и уязвимость,
    • 0
      Какими проверками, простите? Достаточно открыть любое предприятие в любой стране, мне для валидации даже не позвонили.
      • 0
        Вам выдали enterprise сертификат? Наша компания полгода с ними бодалась, 2 раза звонили нам с Америки, пока выдали обычный сертификат.
        • 0
          Видимо, вам не повезло. Такой сертификат выдают на раз два. Достаточно предоставить все данные на юридическое лицо и по телефону сказать «ай нид сертификэт ту мэйк инхауз апликатионс». У нас это заняло недели две и большую часть времени просто ожидали, когда нам позвонят, и когда предоставят собственно сертификат после звонка.
          • 0
            Понятно, будем знать.
  • 0
    Эм, так вроде какой-то эмулятор gameboy у меня еще года полтора назад спокойно ставился в обход appstore.

    А вот и он — www.gba4iosapp.com
    • 0
      Подписан сертификатом от ChinaVDI(Beijing)Technology Co.,Ltd. Я думаю, если написать в эппл, сертификат отзовут.
      • 0
        Эппл вроде уже отозвала. Точнее не отозвала, а сделала невалидным с определенной даты. Если перевести время назад — приложение с отозванным сертификатом можно установить.
    • 0
      тут дело не в самом факте установки, а в сохранении данных ранее установленного легитимного.
  • +1
    Кто-нибудь знает, как сделать приложение с чужим bundle id? Это ведь надо создать такое приложение в своём аккаунте (на developer.apple.com), а Apple там не даёт добавлять bundle id, который уже существует.
    • +1
      Разве что с wildcard provisioning profile попробовать.
    • 0
      так тут речь об установке не из apple store.
      • +2
        неважно откуда устанавливается приложение, bundle id для него создается на developer.apple.com. А там Вам не позволят использовать уже существующий bundle id.
        Как написали выше, возможен вариант с использованием wildcard bundle id, но я не уверен, что приложение с wildcard bundle id (например, ru.habrahabr.*) перезапишет приложение с explicit bundle id (например, ru.habrahabr.habr). Думается мне, что они станут раздельно.
        • 0
          А нет, все-таки работает вариант с wildcard bundle id, ниже описал шаги для воспроизведения.
  • 0
    Я пробовал подобное на 5-й оси, кажется, и такое не проходило (новое приложение просто затирало данные старого). Правда у меня был не энтерпрайз сертификат.
  • 0
    Ну такие приложения не первый день существуют.
  • +3
    Работает эта тема, только что проверил на своем приложении из AppStore:
    В приложении из аппстора стоит bundle id com.becoast.gcar. На developer.apple.com в enterprise аккаунте создал wildcard bundle id: com.becoast.* (com.becoast.gcar — не позволяет создать, так как уже используется). Далее создал соответствующий provision профиль. В тестовом приложении указал bundle id: com.becoast.gcar и подписал его с provision для com.becoast.*. Залил на девайс, в результате приложение из аппстора перезаписано тестовым.
    • 0
      Не, так не интересно, оба приложения подписаны с помощью одного аккаунта
      • +1
        Упс, проверил на Adobe Reader, приложение спокойно получает доступ к чему не должно, IOS8
      • +1
        Я использовал два акааунта, один enterprise для подписи тестового приложения, второй аккаунт девелопера, которым подписывались приложение из app store, они никак между собой не связаны
        • +1
          Был не прав, не нужен даже энтерпрайз аккаунт, проверил на Adobe Reader
          • 0
            Для полной степени уязвимости все-таки понадобится enterprise, иначе не получится распространять «вирус».
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Моя первая мысль была такая же. Не вижу случаев, где такое решение могло бы стать узким или неудобным местом.
  • 0
    Опять же, пользователю сначала надо подтвердить, что он доверяет фирме, на которую выдан enterprize сертификат. Для этого выскакивает весьма заметный диалог. Конечно, последующие установки от этого разработчика пойдут без подтверждения, но первый раз подтвердить всё же придётся.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка