четверг, 4 октября 2012 г.

Свежая серьезная уязвимость в Android

Как вы уже, наверное, слышали, в  Android обнаружена новая достаточно серьезная уязвимость.
Суть ее состоит в том, что встроенный по умолчанию диалер не понимает разницы между телефонными номерами и USSD-кодами. Вторая часть проблемы состоит в том, что для части USSD кодов не нужно нажимать кнопку "позвонить". Почему это серьезная  проблема ? Потому, что в системе Android есть такая замечательная вещь, как TEL протокол, который позволяет набирать телефонный номер из текста в браузере. И внедрив на любую веб страничку незамысловатый код вроде можно преподнести пару крайне неприятных сюрпризов всем, кто ее посетит на устройстве с системой Android. Например, можно убить SIM-карту или сбросить настройки устройства до первоначальных заводских, параллельно стерев все данные. Не очень радужные перспективы?
Как утверждает открыватель сего феномена, уязвимости подвержена практически вся линейка android 2.х, 3.х, 4.х... Т.е. все современные смартфоны и планшеты. Сам автор говорит о Samsung, HTC, Motorola и Sony Ericsson, но не исключает уязвимость других устройств.
Сам я попробовал на двух устройствах: Samsung и HTC - эксплоит прекрасно работает на обоих устройствах.
Убедиться в защищенности/незащищенности вашего любимого девайса можно зайдя с него на страницу http://www.isk.kth.se/~rbbo/testussd.html. Тот же адрес в виде QR-кода:

В случае, если устройство уязвимо, вы увидите ваш IMEI.
Если кода не увидели - можно спокойно спать пока не найдется другая уязвимость. Если же ваше устройство попало в печальное большинство, выходов несколько:
  • Фантастический сценарий. Ждем обновления от производителя устройства. До этого момента в интернет с устройства ни ни! Почему сценарий фантастический? Потому, что обновление должно быть от производителя телефона, на разработчиков операционной системы. А эти ребята крайне не заинтересованны копаться в прошивках уже проданных устройств. Не нравится? Дырявое? Так ему же уже 6 месяцев на рынке! Хочешь хороший девайс без багов? Купи новый "имярек III 10G S HD XL Sensasion One XC+++" и будет тебе всемирное счастье на 6 месяцев. Ну, в общем, понятно.
  • Если TEL протокол не дорог вам как память, установите бесплатное приложение TelStop, которое можно найти на Google Play. Судя по отзывам на приложение, оно проблему решает, но установка не без танцев с бубном (описание танцев там же).
  • Можно установить альтернативный диалер, обязательно протестировав его на уязвимость по вышеописанному сценарию.
  • Вариант, на который я наткнулся случайно сам, тестируя уязвимость. На обоих моих устройствах код прекрасно работал как на встроенном браузере, так и в Firefox. Однако, когда я попробовал данный фокус с Opera Mini - чудо не случилось. То ли Opera не поддерживает TEL протокол, то ли это баг, то ли уже закрыли дырку... В общем не работает в ней зловредный код. Так что, пока это - мой браузер по умолчанию.

2 комментария:

  1. Статья интересная, только страница, похоже, куда-то переехала:
    http://www.isk.kth.se/~rbbo/testussd.html - The address wasn't understood

    ОтветитьУдалить
  2. На страницу нужно заходить с телефона/ планшета на андроид. Браузер на компьютере не понимает TEL.

    ОтветитьУдалить