Специалисты Калифорнийского университета в Санта-Барбаре и Технологического института Джорджии рассказали о новой опасной проблеме, которая представляет опасность для всех устройств на базе Android, вплоть до новейшей версии 7.1.2. Так как в наше время уязвимостям и техникам принято давать названия, метод атак поучил имя «Плащ и кинжал» (Cloak & Dagger) и собственный официальный сайт, на котором исследователи опубликовали все подробности своей работы.

Специалисты предупреждают, что атака по методу «Плащ и кинжал» позволяет вредоносному приложению незаметно перехватить управление устройством и похить приватную информацию жертвы, включая пароли, списки контактов, PIN-коды, логи чатов и так далее.

При этом «Плащ и кинжал» не эксплуатирует какие-либо уязвимости в экосистеме Android. Вместо этого атака злоупотребляет системой выдачи прав приложениям, обращая в свою пользу безобидные на первый взгляд функции. Речь идет о SYSTEM_ALERT_WINDOW и BIND_ACCESSIBILITY_SERVICE. Дело в том, что если приложение было загружено из официального каталога Google Play, система даже не спросит пользователя о том, нужно ли выдать ему данные права. Фактически эти права считаются «специальными», и даже если они нужны приложению, пользователь все равно может увидеть сообщение, что никаких разрешений не требуется (no permission required).

Первое разрешение позволит злоумышленникам перекрывать окна других приложений легитимным оверлеем. Второе разрешение, также известное как a11y, призвано помочь людям, страдающим нарушениями зрения, и позволяет управлять устройством посредством голосовых команд, а также прослушивать, а не просматривать контент. Учитывая, что разрешение SYSTEM_ALERT_WINDOW выдается приложению сразу же, незаметно включить BIND_ACCESSIBILITY_SERVICE не составляет труда.

Перед какими типами атак уязвимы разные версии Android

Исследователи пишут, что после получения двух этих разрешений, злоумышленники могут делать все, что им заблагорассудится. Далее атака может развиваться в сторону кликджекинга (clickjacking), фишинга, перехвата нажатий на клавиши, незаметной установки дополнительных приложений, которые фактически будут работать «в режиме Бога» (то есть получат максимальные привилегии). Также злоумышленники смогут тайно разблокировать устройство и выполнять произвольные действия, при этом держа экран отключенным.

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

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

О проблеме, связанной с SYSTEM_ALERT_WINDOW, ранее уже писали другие специалисты. Так, исследователи компании Check Point сообщали, что согласно их данным, 74% вымогателей, 57% адвари и 14% банковских троянов эксплуатируют недочеты в системе выдачи разрешений, а SYSTEM_ALERT_WINDOW – одна из главных проблем.

И хотя разработчики Google уже давно знают о происходящем, речь идет не о простой уязвимости, которую можно легко исправить. Поэтому разобраться с проблемами в системе выдачи прав планируют не раньше релиза Android O, который запланирован на третий квартал 2017 года. В частности ограничить злоупотребление SYSTEM_ALERT_WINDOW будет призвана новая функция TYPE_APPLICATION_OVERLAY, которая появится в новой версии ОС.

А пока «исправления» нет, самый простой способ защитить себя — запрещать использование SYSTEM_ALERT_WINDOW и BIND_ACCESSIBILITY_SERVICE. Сделать это можно в настройках ОС (Settings → Apps → Gear symbol → Special access → Draw over other apps, а также  Settings → Accessibility → Services ).



11 комментарий

  1. GreenCross88

    26.05.2017 at 23:16

    А как выключить на Android 6.0.1?

    • Мария Нефёдова

      Мария Нефёдова

      27.05.2017 at 00:06

      Цитируя оффсайт проблемы:
      Android 6.0.1:
      — «draw on top» permission: Settings → Apps → «Gear symbol» (top-right) → Draw over other apps.
      — a11y: Settings → Accessibility → Services: check which apps require a11y.

  2. Radjah

    28.05.2017 at 18:38

    Но ведь всё равно атака упирается в подкидывание левого приложения на устройство.

    • Sergo

      29.05.2017 at 12:04

      Да, но способ имбоват потому что это приложение может быть полностью легитимным, находиться в Google Store и запрос таких прав не требуется.

  3. Inject0r

    29.05.2017 at 08:20

    А эта атака разве актуальна для 6 версии? Ведь все эти операции выполняются незаметно только лишь благодаря функции многооконности в семерке

    • Radjah

      29.05.2017 at 10:10

      Это не многооконность, а наложение. Типа того, как Jasmine IM рисовал входящие сообщения поверх всего.

  4. Juni Cortez

    30.05.2017 at 09:30

    В заголовке написано актуальна для всех, а по ссылке инструкции для отключения только для 5.1.1 и выше.
    Для старых версий неактуально или же просто там нет встроенного функционала контроля за разрешениями?

    • Radjah

      30.05.2017 at 10:44

      Про пятый не знаю, не было у меня устройств с ним, а вот в 4.4 точно никаких ручек в настройках не было для разрешений. Можно было выключать с рутом через «pm disable».

    • Lmar

      30.05.2017 at 17:57

      Похоже даже в 5.1.1 нет средств отключения

  5. Jek3

    01.06.2017 at 16:48

    а можно это обнаружить из моей программы?

Оставить мнение